26 lines
870 B
C++
26 lines
870 B
C++
#ifndef BATTLE_H
|
|
#define BATTLE_H
|
|
|
|
#include "pokemon.h"
|
|
|
|
namespace PokEng {
|
|
|
|
// High-level type system functions for easy use
|
|
template <Generation Gen = Generation::I>
|
|
inline uint32_t calculateTypeDamage(uint32_t baseDamage, Type attackType, const PokemonTypes& defenderTypes) {
|
|
return calculateDamage<Gen>(baseDamage, attackType, defenderTypes);
|
|
}
|
|
|
|
template <Generation Gen = Generation::I>
|
|
inline uint32_t calculateTypeDamage(uint32_t baseDamage, Type attackType, Type defenderType) {
|
|
return calculateDamage<Gen>(baseDamage, attackType, PokemonTypes(defenderType));
|
|
}
|
|
|
|
template <Generation Gen = Generation::I>
|
|
inline uint32_t calculateTypeDamage(uint32_t baseDamage, Type attackType, Type defenderType1, Type defenderType2) {
|
|
return calculateDamage<Gen>(baseDamage, attackType, PokemonTypes(defenderType1, defenderType2));
|
|
}
|
|
|
|
} // namespace PokEng
|
|
|
|
#endif |