mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-09 13:07:42 +00:00
Initial working projectiles
This commit is contained in:
@@ -12,20 +12,20 @@ const CDamageVulnerability CDamageVulnerability::sNormalVulnerability(
|
||||
EVulnerability::Normal, EVulnerability::Normal, EVulnerability::Normal, EVulnerability::DoubleDamage);
|
||||
|
||||
const CDamageVulnerability CDamageVulnerability::sImmuneVulnerability(
|
||||
EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::Reflect,
|
||||
EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::Reflect,
|
||||
EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::Reflect,
|
||||
EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::Reflect,
|
||||
EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::Reflect,
|
||||
EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::DoubleDamage);
|
||||
EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect,
|
||||
EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect,
|
||||
EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect,
|
||||
EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect,
|
||||
EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect,
|
||||
EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::DoubleDamage);
|
||||
/* LOL, thanks retro */
|
||||
const CDamageVulnerability CDamageVulnerability::sReflectVulnerability(
|
||||
EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::Reflect,
|
||||
EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::Reflect,
|
||||
EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::Reflect,
|
||||
EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::Reflect,
|
||||
EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::Reflect,
|
||||
EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::Reflect, EVulnerability::DoubleDamage);
|
||||
EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect,
|
||||
EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect,
|
||||
EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect,
|
||||
EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect,
|
||||
EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect,
|
||||
EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::DoubleDamage);
|
||||
|
||||
const CDamageVulnerability CDamageVulnerability::sPassThroughVulnerability(
|
||||
EVulnerability::PassThrough, EVulnerability::PassThrough, EVulnerability::PassThrough, EVulnerability::PassThrough,
|
||||
@@ -54,25 +54,25 @@ void CDamageVulnerability::ConstructNew(CInputStream& in, int propCount)
|
||||
if (propCount < 15)
|
||||
{
|
||||
for (int i = propCount; i < 15; ++i)
|
||||
vulns[i] = EVulnerability::Reflect;
|
||||
vulns[i] = EVulnerability::Deflect;
|
||||
}
|
||||
|
||||
for (int i = 15; i < propCount; ++i)
|
||||
in.readUint32Big();
|
||||
|
||||
x5c_ = EVulnerability(in.readUint32Big());
|
||||
x5c_deflected = EVulnerability(in.readUint32Big());
|
||||
EVulnerability* vulns2 = &x3c_chargedPower;
|
||||
in.readUint32Big();
|
||||
for (int i = 0; i < 4; ++i)
|
||||
vulns2[i] = EVulnerability(in.readUint32Big());
|
||||
|
||||
x60_chargedPhazon = EVulnerability(in.readUint32Big());
|
||||
x60_chargedDeflected = EVulnerability(in.readUint32Big());
|
||||
EVulnerability* vulns3 = &x4c_superMissile;
|
||||
in.readUint32Big();
|
||||
for (int i = 0; i < 4; ++i)
|
||||
vulns3[i] = EVulnerability(in.readUint32Big());
|
||||
|
||||
x64_phazonCombo = EVulnerability(in.readUint32Big());
|
||||
x64_comboDeflected = EVulnerability(in.readUint32Big());
|
||||
}
|
||||
|
||||
CDamageVulnerability::CDamageVulnerability(CInputStream& in)
|
||||
@@ -85,9 +85,9 @@ CDamageVulnerability::CDamageVulnerability(CInputStream& in)
|
||||
vulns[i] = EVulnerability(in.readUint32Big());
|
||||
|
||||
if (propCount == 15)
|
||||
x5c_ = EVulnerability::DoubleDamage;
|
||||
x5c_deflected = EVulnerability::DoubleDamage;
|
||||
else
|
||||
x5c_ = EVulnerability(in.readUint32Big());
|
||||
x5c_deflected = EVulnerability(in.readUint32Big());
|
||||
|
||||
x3c_chargedPower = x0_power;
|
||||
x4c_superMissile = x0_power;
|
||||
@@ -110,7 +110,8 @@ CDamageVulnerability::CDamageVulnerability(EVulnerability power, EVulnerability
|
||||
EVulnerability chargedPower, EVulnerability chargedIce,
|
||||
EVulnerability chargedWave, EVulnerability chargedPlasma,
|
||||
EVulnerability superMissile, EVulnerability iceSpreader,
|
||||
EVulnerability waveBuster, EVulnerability flameThrower, EVulnerability v3)
|
||||
EVulnerability waveBuster, EVulnerability flameThrower,
|
||||
EVulnerability deflected)
|
||||
: x0_power(power)
|
||||
, x4_ice(ice)
|
||||
, x8_wave(wave)
|
||||
@@ -134,17 +135,17 @@ CDamageVulnerability::CDamageVulnerability(EVulnerability power, EVulnerability
|
||||
, x50_iceSpreader(iceSpreader)
|
||||
, x54_wavebuster(waveBuster)
|
||||
, x58_flamethrower(flameThrower)
|
||||
, x5c_(v3)
|
||||
, x5c_deflected(deflected)
|
||||
{
|
||||
}
|
||||
|
||||
EVulnerability CDamageVulnerability::GetPhazonVulnerability(const CWeaponMode& mode) const
|
||||
EVulnerability CDamageVulnerability::GetDeflectionType(const CWeaponMode& mode) const
|
||||
{
|
||||
if (mode.IsCharged())
|
||||
return x60_chargedPhazon;
|
||||
return x60_chargedDeflected;
|
||||
if (mode.IsComboed())
|
||||
return x64_phazonCombo;
|
||||
return x5c_;
|
||||
return x64_comboDeflected;
|
||||
return x5c_deflected;
|
||||
}
|
||||
|
||||
bool CDamageVulnerability::WeaponHurts(const CWeaponMode& mode, bool ignoreDirect) const
|
||||
@@ -238,7 +239,7 @@ bool CDamageVulnerability::WeaponHits(const CWeaponMode& mode, bool checkDirect)
|
||||
EVulnerability CDamageVulnerability::GetVulnerability(const CWeaponMode& mode, bool ignoreDirect) const
|
||||
{
|
||||
if (mode.GetType() == EWeaponType::None || mode.GetType() > EWeaponType::OrangePhazon)
|
||||
return EVulnerability::Reflect;
|
||||
return EVulnerability::Deflect;
|
||||
|
||||
if (mode.IsInstantKill())
|
||||
return EVulnerability::Normal;
|
||||
|
||||
Reference in New Issue
Block a user