Added C Interface for Script.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2020-03-25 19:47:37 +01:00
parent 7ce3e6940d
commit b5894ea8f2
6 changed files with 104 additions and 8 deletions

View File

@@ -11,8 +11,8 @@ uint32_t DamageLibrary::GetDamage(ExecutingAttack* attack, Creature* target, uin
auto bp = hit->GetBasePower();
auto statMod = GetStatModifier(attack, target, hitIndex);
HOOK(ModifyStatModifier, attack, attack, target, hitIndex, &statMod);
int32_t damage = static_cast<int32_t>((((levelMod * static_cast<float>(bp) * statMod) / 50) + 2) *
GetDamageModifier(attack, target, hitIndex));
uint32_t damage = static_cast<uint32_t>((((levelMod * static_cast<float>(bp) * statMod) / 50) + 2) *
GetDamageModifier(attack, target, hitIndex));
HOOK(OverrideDamage, attack, attack, target, hitIndex, &damage);
return damage;
}

View File

@@ -16,13 +16,12 @@ namespace CreatureLib::Battling {
class Script {
public:
explicit Script() {}
virtual ~Script() = default;
virtual void Stack(){};
virtual void OnRemove(){};
virtual const ConstString& GetName() const = 0;
virtual const ConstString& GetName() const noexcept = 0;
virtual void OnBeforeTurn(const BaseTurnChoice* choice){};
@@ -47,7 +46,7 @@ namespace CreatureLib::Battling {
virtual void ModifyStatModifier(ExecutingAttack* attack, Creature* target, uint8_t hitIndex, float* modifier){};
virtual void ModifyDamageModifier(ExecutingAttack* attack, Creature* target, uint8_t hitIndex,
float* modifier){};
virtual void OverrideDamage(ExecutingAttack* attack, Creature* target, uint8_t hitIndex, int32_t* damage){};
virtual void OverrideDamage(ExecutingAttack* attack, Creature* target, uint8_t hitIndex, uint32_t* damage){};
virtual void OnStatusMove(const ExecutingAttack* attack, Creature* target, uint8_t hitNumber){};
virtual void PreventSecondaryEffects(const ExecutingAttack* attack, Creature* target, uint8_t hitNumber,