Supports cloning battles for AI purposes.
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -294,9 +294,19 @@ void AngelScriptScript::PreventOpponentSwitch(const CreatureLib::Battling::Switc
|
||||
void AngelScriptScript::OnEndTurn(CreatureLib::Battling::Creature* creature) {
|
||||
CALL_HOOK(OnEndTurn, { ctx->SetArgObject(0, (void*)creature); })
|
||||
}
|
||||
void AngelScriptScript::ModifyNumberOfHits(CreatureLib::Battling::AttackTurnChoice* choice, u8* numberOfHits) {
|
||||
CALL_HOOK(ModifyNumberOfHits, {
|
||||
ctx->SetArgObject(0, (void*)choice);
|
||||
ctx->SetArgAddress(1, numberOfHits);
|
||||
})
|
||||
void AngelScriptScript::ModifyNumberOfHits(CreatureLib::Battling::AttackTurnChoice* choice,
|
||||
u8* numberOfHits){CALL_HOOK(ModifyNumberOfHits,
|
||||
{
|
||||
ctx->SetArgObject(0, (void*)choice);
|
||||
ctx->SetArgAddress(1, numberOfHits);
|
||||
})}
|
||||
|
||||
CreatureLib::Battling::BattleScript* AngelScriptScript::Clone() {
|
||||
auto* ctx = _ctxPool->RequestContext();
|
||||
auto* obj = _type->Instantiate(ctx);
|
||||
if (_obj != nullptr){
|
||||
obj->CopyFrom(_obj);
|
||||
}
|
||||
_ctxPool->ReturnContextToPool(ctx);
|
||||
return new AngelScriptScript(_resolver, _type, obj, _ctxPool);
|
||||
}
|
||||
|
||||
@@ -25,6 +25,8 @@ public:
|
||||
|
||||
~AngelScriptScript() override { _obj->Release(); }
|
||||
|
||||
BattleScript* Clone() override;
|
||||
|
||||
inline asIScriptObject* GetRawAngelscriptObject() const noexcept { return _obj; }
|
||||
|
||||
[[nodiscard]] const ArbUt::StringView& GetName() const noexcept override { return _type->GetName(); }
|
||||
|
||||
Reference in New Issue
Block a user