Reworks ScriptSources so we can get individual scripts on a source. Fixed OnEndTurn making no sense.
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
Signed-off-by: Deukhoofd <Deukhoofd@gmail.com>
This commit is contained in:
@@ -113,9 +113,9 @@ bool Battle::CreatureInField(ArbUt::BorrowedPtr<Creature> creature) const {
|
||||
void Battle::ForceRecall(uint8_t side, uint8_t index) { _sides[side]->SetCreature(nullptr, index); }
|
||||
|
||||
size_t Battle::ScriptCount() const { return 1; }
|
||||
void Battle::GetActiveScripts(ArbUt::List<ScriptWrapper>& scripts) {
|
||||
scripts.Append(ScriptWrapper::FromSet(&_volatile));
|
||||
}
|
||||
void Battle::GetActiveScripts(ArbUt::List<ScriptWrapper>& scripts) { GetOwnScripts(scripts); }
|
||||
|
||||
void Battle::GetOwnScripts(ArbUt::List<ScriptWrapper>& scripts) { scripts.Append(ScriptWrapper::FromSet(&_volatile)); }
|
||||
|
||||
void Battle::SwitchCreature(uint8_t sideIndex, uint8_t index, Creature* c) {
|
||||
auto side = this->_sides[sideIndex];
|
||||
|
||||
@@ -79,6 +79,7 @@ namespace CreatureLib::Battling {
|
||||
|
||||
size_t ScriptCount() const override;
|
||||
void GetActiveScripts(ArbUt::List<ScriptWrapper>& scripts) override;
|
||||
void GetOwnScripts(ArbUt::List<ScriptWrapper>& scripts) override;
|
||||
|
||||
void ValidateBattleState();
|
||||
inline bool HasEnded() const noexcept { return _hasEnded; }
|
||||
|
||||
@@ -82,9 +82,12 @@ bool BattleSide::CreatureOnSide(const ArbUt::BorrowedPtr<Creature>& creature) co
|
||||
const ArbUt::OptionalBorrowedPtr<Creature>& BattleSide::GetCreature(uint8_t index) const { return _creatures[index]; }
|
||||
|
||||
void BattleSide::GetActiveScripts(ArbUt::List<ScriptWrapper>& scripts) {
|
||||
scripts.Append(ScriptWrapper::FromSet(&_volatile));
|
||||
GetOwnScripts(scripts);
|
||||
_battle->GetActiveScripts(scripts);
|
||||
}
|
||||
void BattleSide::GetOwnScripts(ArbUt::List<ScriptWrapper>& scripts) {
|
||||
scripts.Append(ScriptWrapper::FromSet(&_volatile));
|
||||
}
|
||||
size_t BattleSide::ScriptCount() const { return _battle->ScriptCount() + 1; }
|
||||
|
||||
uint8_t BattleSide::GetRandomCreatureIndex() {
|
||||
|
||||
@@ -50,6 +50,7 @@ namespace CreatureLib::Battling {
|
||||
|
||||
size_t ScriptCount() const override;
|
||||
void GetActiveScripts(ArbUt::List<ScriptWrapper>& scripts) override;
|
||||
void GetOwnScripts(ArbUt::List<ScriptWrapper>& scripts) override;
|
||||
|
||||
const ArbUt::List<ArbUt::OptionalBorrowedPtr<Creature>>& GetCreatures() { return _creatures; }
|
||||
|
||||
|
||||
@@ -234,13 +234,17 @@ namespace CreatureLib::Battling {
|
||||
}
|
||||
|
||||
void Creature::GetActiveScripts(ArbUt::List<ScriptWrapper>& scripts) {
|
||||
scripts.Append(ScriptWrapper::FromScript(&_activeTalent));
|
||||
scripts.Append(ScriptWrapper::FromScript(&_status));
|
||||
scripts.Append(ScriptWrapper::FromSet(&_volatile));
|
||||
GetOwnScripts(scripts);
|
||||
if (_battleData.Side.HasValue()) {
|
||||
_battleData.Side.GetValue()->GetActiveScripts(scripts);
|
||||
}
|
||||
}
|
||||
void Creature::GetOwnScripts(ArbUt::List<ScriptWrapper>& scripts) {
|
||||
scripts.Append(ScriptWrapper::FromScript(&_activeTalent));
|
||||
scripts.Append(ScriptWrapper::FromScript(&_status));
|
||||
scripts.Append(ScriptWrapper::FromSet(&_volatile));
|
||||
}
|
||||
|
||||
void Creature::ClearVolatileScripts() { _volatile.Clear(); }
|
||||
void Creature::AddExperience(uint32_t amount) {
|
||||
auto maxLevel = _library->GetSettings()->GetMaximalLevel();
|
||||
|
||||
@@ -148,6 +148,7 @@ namespace CreatureLib::Battling {
|
||||
|
||||
size_t ScriptCount() const override;
|
||||
void GetActiveScripts(ArbUt::List<ScriptWrapper>& scripts) override;
|
||||
void GetOwnScripts(ArbUt::List<ScriptWrapper>& scripts) override;
|
||||
void ClearVolatileScripts();
|
||||
BattleScript* AddVolatileScript(const ArbUt::StringView& name);
|
||||
BattleScript* AddVolatileScript(BattleScript* script);
|
||||
|
||||
@@ -105,11 +105,13 @@ namespace CreatureLib::Battling {
|
||||
|
||||
inline ArbUt::BorrowedPtr<BattleScript> GetScript() const noexcept { return _script; }
|
||||
|
||||
protected:
|
||||
void GetActiveScripts(ArbUt::List<ScriptWrapper>& scripts) override {
|
||||
scripts.Append(ScriptWrapper::FromScript(&_script));
|
||||
GetOwnScripts(scripts);
|
||||
_user->GetActiveScripts(scripts);
|
||||
}
|
||||
void GetOwnScripts(ArbUt::List<ScriptWrapper>& scripts) override {
|
||||
scripts.Append(ScriptWrapper::FromScript(&_script));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user