2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-10 18:27:41 +00:00

Implement CScriptSpecialFunction::ThinkAreaDamage, and more CThardus

This commit is contained in:
2019-11-24 07:01:07 -08:00
parent 655dc01a06
commit 697a100bca
16 changed files with 241 additions and 119 deletions

View File

@@ -45,7 +45,7 @@ void CScriptTrigger::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CS
if (x148_28_playerTriggerProc) {
x148_28_playerTriggerProc = false;
if (x148_29_didPhazonDamage) {
mgr.Player()->DecrementPhazon();
mgr.Player()->DecrementEnvironmentDamage();
x148_29_didPhazonDamage = false;
}
@@ -89,7 +89,7 @@ void CScriptTrigger::UpdateInhabitants(float dt, CStateManager& mgr) {
if (x148_28_playerTriggerProc) {
x148_28_playerTriggerProc = false;
if (x148_29_didPhazonDamage) {
mgr.GetPlayer().DecrementPhazon();
mgr.GetPlayer().DecrementEnvironmentDamage();
x148_29_didPhazonDamage = false;
}
@@ -132,7 +132,7 @@ void CScriptTrigger::UpdateInhabitants(float dt, CStateManager& mgr) {
if (mgr.GetPlayer().GetUniqueId() == tmpId && x148_28_playerTriggerProc) {
x148_28_playerTriggerProc = false;
if (x148_29_didPhazonDamage) {
mgr.Player()->DecrementPhazon();
mgr.Player()->DecrementEnvironmentDamage();
x148_29_didPhazonDamage = false;
}
@@ -148,7 +148,7 @@ void CScriptTrigger::UpdateInhabitants(float dt, CStateManager& mgr) {
if (mgr.GetPlayer().GetUniqueId() == tmpId && x148_28_playerTriggerProc) {
x148_28_playerTriggerProc = false;
if (x148_29_didPhazonDamage) {
mgr.Player()->DecrementPhazon();
mgr.Player()->DecrementEnvironmentDamage();
x148_29_didPhazonDamage = false;
}
@@ -246,14 +246,14 @@ void CScriptTrigger::Touch(CActor& act, CStateManager& mgr) {
if (!x148_28_playerTriggerProc) {
x148_28_playerTriggerProc = true;
if (x148_29_didPhazonDamage) {
mgr.Player()->DecrementPhazon();
mgr.Player()->DecrementEnvironmentDamage();
x148_29_didPhazonDamage = false;
} else if (x100_damageInfo.GetDamage() > 0.f) {
const CDamageVulnerability* dVuln = mgr.Player()->GetDamageVulnerability();
if (dVuln->WeaponHurts(x100_damageInfo.GetWeaponMode(), 0) &&
x100_damageInfo.GetWeaponMode().GetType() == EWeaponType::Phazon &&
!mgr.GetPlayerState()->HasPowerUp(CPlayerState::EItemType::PhazonSuit)) {
pl->IncrementPhazon();
pl->IncrementEnvironmentDamage();
x148_29_didPhazonDamage = true;
}
}