mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-09 17:47:43 +00:00
More CFlaahgra imps, initial CTryclops imps
This commit is contained in:
@@ -8,7 +8,7 @@ const CDamageVulnerability CDamageVulnerability::sNormalVulnerability(
|
||||
EVulnerability::Normal, EVulnerability::Normal, EVulnerability::Normal, EVulnerability::Normal,
|
||||
EVulnerability::Normal, EVulnerability::Normal, EVulnerability::Normal, EVulnerability::Normal,
|
||||
EVulnerability::Normal, EVulnerability::Normal, EVulnerability::Normal, EVulnerability::Normal,
|
||||
EVulnerability::Normal, EVulnerability::Normal, EVulnerability::Normal, EVulnerability::Weak);
|
||||
EVulnerability::Normal, EVulnerability::Normal, EVulnerability::Normal, EDeflectType::None);
|
||||
|
||||
const CDamageVulnerability CDamageVulnerability::sImmuneVulnerability(
|
||||
EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect,
|
||||
@@ -16,7 +16,7 @@ const CDamageVulnerability CDamageVulnerability::sImmuneVulnerability(
|
||||
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::Weak);
|
||||
EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect, EDeflectType::None);
|
||||
/* LOL, thanks retro */
|
||||
const CDamageVulnerability CDamageVulnerability::sReflectVulnerability(
|
||||
EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect,
|
||||
@@ -24,7 +24,7 @@ const CDamageVulnerability CDamageVulnerability::sReflectVulnerability(
|
||||
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::Weak);
|
||||
EVulnerability::Deflect, EVulnerability::Deflect, EVulnerability::Deflect, EDeflectType::None);
|
||||
|
||||
const CDamageVulnerability CDamageVulnerability::sPassThroughVulnerability(
|
||||
EVulnerability::PassThrough, EVulnerability::PassThrough, EVulnerability::PassThrough, EVulnerability::PassThrough,
|
||||
@@ -32,7 +32,7 @@ const CDamageVulnerability CDamageVulnerability::sPassThroughVulnerability(
|
||||
EVulnerability::PassThrough, EVulnerability::PassThrough, EVulnerability::PassThrough, EVulnerability::PassThrough,
|
||||
EVulnerability::PassThrough, EVulnerability::PassThrough, EVulnerability::PassThrough, EVulnerability::PassThrough,
|
||||
EVulnerability::PassThrough, EVulnerability::PassThrough, EVulnerability::PassThrough, EVulnerability::PassThrough,
|
||||
EVulnerability::PassThrough, EVulnerability::PassThrough, EVulnerability::PassThrough, EVulnerability::Weak);
|
||||
EVulnerability::PassThrough, EVulnerability::PassThrough, EVulnerability::PassThrough, EDeflectType::None);
|
||||
|
||||
static inline bool is_not_immune(EVulnerability vuln) {
|
||||
return vuln != EVulnerability::Immune && vuln != EVulnerability::DirectImmune;
|
||||
@@ -56,19 +56,19 @@ void CDamageVulnerability::ConstructNew(CInputStream& in, int propCount) {
|
||||
for (int i = 15; i < propCount; ++i)
|
||||
in.readUint32Big();
|
||||
|
||||
x5c_deflected = EVulnerability(in.readUint32Big());
|
||||
x5c_deflected = EDeflectType(in.readUint32Big());
|
||||
EVulnerability* vulns2 = &x3c_chargedPower;
|
||||
in.readUint32Big();
|
||||
for (int i = 0; i < 4; ++i)
|
||||
vulns2[i] = EVulnerability(in.readUint32Big());
|
||||
|
||||
x60_chargedDeflected = EVulnerability(in.readUint32Big());
|
||||
x60_chargedDeflected = EDeflectType(in.readUint32Big());
|
||||
EVulnerability* vulns3 = &x4c_superMissile;
|
||||
in.readUint32Big();
|
||||
for (int i = 0; i < 4; ++i)
|
||||
vulns3[i] = EVulnerability(in.readUint32Big());
|
||||
|
||||
x64_comboDeflected = EVulnerability(in.readUint32Big());
|
||||
x64_comboDeflected = EDeflectType(in.readUint32Big());
|
||||
}
|
||||
|
||||
CDamageVulnerability::CDamageVulnerability(CInputStream& in) {
|
||||
@@ -79,9 +79,9 @@ CDamageVulnerability::CDamageVulnerability(CInputStream& in) {
|
||||
vulns[i] = EVulnerability(in.readUint32Big());
|
||||
|
||||
if (propCount == 15)
|
||||
x5c_deflected = EVulnerability::Weak;
|
||||
x5c_deflected = EDeflectType::None;
|
||||
else
|
||||
x5c_deflected = EVulnerability(in.readUint32Big());
|
||||
x5c_deflected = EDeflectType(in.readUint32Big());
|
||||
|
||||
x3c_chargedPower = x0_power;
|
||||
x4c_superMissile = x0_power;
|
||||
@@ -95,13 +95,44 @@ CDamageVulnerability::CDamageVulnerability(CInputStream& in) {
|
||||
ConstructNew(in, propCount);
|
||||
}
|
||||
|
||||
CDamageVulnerability::CDamageVulnerability(EVulnerability power, EVulnerability ice, EVulnerability wave,
|
||||
EVulnerability plasma, EVulnerability bomb, EVulnerability powerBomb,
|
||||
EVulnerability missile, EVulnerability boostBall, EVulnerability phazon,
|
||||
EVulnerability enemyWp1, EVulnerability enemyWp2, EVulnerability enemyWp3,
|
||||
EVulnerability enemyWp4, EVulnerability v1, EVulnerability v2,
|
||||
EDeflectType deflectType)
|
||||
: x0_power(power)
|
||||
, x4_ice(ice)
|
||||
, x8_wave(wave)
|
||||
, xc_plasma(plasma)
|
||||
, x10_bomb(bomb)
|
||||
, x14_powerbomb(powerBomb)
|
||||
, x18_missile(missile)
|
||||
, x1c_boostBall(boostBall)
|
||||
, x20_phazon(phazon)
|
||||
, x24_enemyWp1(enemyWp1)
|
||||
, x28_enemyWp2Poison(enemyWp2)
|
||||
, x2c_enemyWp3Lava(enemyWp3)
|
||||
, x30_enemyWp4(enemyWp4)
|
||||
, x34_unk1(v1)
|
||||
, x38_unk2(v2)
|
||||
, x3c_chargedPower(x0_power)
|
||||
, x40_chargedIce(x4_ice)
|
||||
, x44_chargedWave(x8_wave)
|
||||
, x48_chargedPlasma(xc_plasma)
|
||||
, x4c_superMissile(x0_power)
|
||||
, x50_iceSpreader(x4_ice)
|
||||
, x54_wavebuster(x8_wave)
|
||||
, x58_flamethrower(xc_plasma)
|
||||
, x5c_deflected(deflectType) {}
|
||||
|
||||
CDamageVulnerability::CDamageVulnerability(
|
||||
EVulnerability power, EVulnerability ice, EVulnerability wave, EVulnerability plasma, EVulnerability bomb,
|
||||
EVulnerability powerBomb, EVulnerability missile, EVulnerability boostBall, EVulnerability phazon,
|
||||
EVulnerability enemyWp1, EVulnerability enemyWp2, EVulnerability enemyWp3, EVulnerability enemyWp4,
|
||||
EVulnerability v1, EVulnerability v2, EVulnerability chargedPower, EVulnerability chargedIce,
|
||||
EVulnerability chargedWave, EVulnerability chargedPlasma, EVulnerability superMissile, EVulnerability iceSpreader,
|
||||
EVulnerability waveBuster, EVulnerability flameThrower, EVulnerability deflected)
|
||||
EVulnerability waveBuster, EVulnerability flameThrower, EDeflectType deflected)
|
||||
: x0_power(power)
|
||||
, x4_ice(ice)
|
||||
, x8_wave(wave)
|
||||
@@ -127,7 +158,7 @@ CDamageVulnerability::CDamageVulnerability(
|
||||
, x58_flamethrower(flameThrower)
|
||||
, x5c_deflected(deflected) {}
|
||||
|
||||
EVulnerability CDamageVulnerability::GetDeflectionType(const CWeaponMode& mode) const {
|
||||
EDeflectType CDamageVulnerability::GetDeflectionType(const CWeaponMode& mode) const {
|
||||
if (mode.IsCharged())
|
||||
return x60_chargedDeflected;
|
||||
if (mode.IsComboed())
|
||||
@@ -205,9 +236,7 @@ bool CDamageVulnerability::WeaponHits(const CWeaponMode& mode, bool checkDirect)
|
||||
return true;
|
||||
if (chargedVuln && mode.IsCharged())
|
||||
return true;
|
||||
if (comboedVuln && mode.IsComboed())
|
||||
return true;
|
||||
return false;
|
||||
return comboedVuln && mode.IsComboed();
|
||||
}
|
||||
|
||||
EVulnerability CDamageVulnerability::GetVulnerability(const CWeaponMode& mode, bool ignoreDirect) const {
|
||||
|
||||
Reference in New Issue
Block a user