CreatureLib/src/Battling/Models/BattleResult.hpp

25 lines
967 B
C++
Raw Permalink Normal View History

2019-12-15 10:52:10 +00:00
#ifndef CREATURELIB_BATTLERESULT_HPP
#define CREATURELIB_BATTLERESULT_HPP
namespace CreatureLib::Battling {
class BattleResult {
bool _conclusiveResult;
u8 _winningSide;
2019-12-15 10:52:10 +00:00
BattleResult(bool conclusiveResult, u8 winningSide)
2019-12-15 10:52:10 +00:00
: _conclusiveResult(conclusiveResult), _winningSide(winningSide) {}
public:
static BattleResult Inconclusive() { return BattleResult(false, 0); }
static BattleResult Conclusive(u8 winner) { return BattleResult(true, winner); }
2019-12-15 10:52:10 +00:00
static BattleResult Empty() { return BattleResult(false, 0); }
/// Whether or not the battle has ended with a conclusive result.
bool IsConclusiveResult() const noexcept { return _conclusiveResult; }
2019-12-15 10:52:10 +00:00
/// Get the index of the side that has won the battle. Only valid if the battle has a conclusive result.
u8 GetWinningSide() const noexcept { return _winningSide; }
2019-12-15 10:52:10 +00:00
};
}
#endif // CREATURELIB_BATTLERESULT_HPP