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

More CFlaahgra imps, initial CTryclops imps

This commit is contained in:
2019-07-16 08:54:07 -07:00
parent 91fe17dcbb
commit 328749d1ba
23 changed files with 765 additions and 120 deletions

View File

@@ -6,6 +6,7 @@
namespace urde {
enum class EVulnerability { Weak, Normal, Deflect, Immune, PassThrough, DirectWeak, DirectNormal, DirectImmune };
enum class EDeflectType { None, One, Two, Three, Four };
class CDamageVulnerability {
EVulnerability x0_power;
@@ -34,9 +35,12 @@ class CDamageVulnerability {
EVulnerability x54_wavebuster;
EVulnerability x58_flamethrower;
EVulnerability x5c_deflected;
EVulnerability x60_chargedDeflected;
EVulnerability x64_comboDeflected;
EDeflectType x5c_deflected;
/* The following two values are hard coded to bizarre values on purpose to more closely reflect the behavior seen
* in-game.
*/
EDeflectType x60_chargedDeflected = EDeflectType(6);
EDeflectType x64_comboDeflected = EDeflectType(0x3e666666);
void ConstructNew(CInputStream& in, int propCount);
@@ -47,15 +51,19 @@ class CDamageVulnerability {
public:
CDamageVulnerability(CInputStream& in);
CDamageVulnerability(EVulnerability power, EVulnerability ice, EVulnerability wave, EVulnerability plasma,
EVulnerability bomb, EVulnerability powerBomb, EVulnerability missile, EVulnerability boostBall,
EVulnerability phazon, EVulnerability enemyWp1, EVulnerability wnemyWp2, EVulnerability enemyWp3,
EVulnerability enemyWp4, EVulnerability v1, EVulnerability v2, EDeflectType deflectType);
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 flameThrower, EDeflectType deflected);
EVulnerability GetDeflectionType(const CWeaponMode& mode) const;
EDeflectType GetDeflectionType(const CWeaponMode& mode) const;
bool WeaponHurts(const CWeaponMode&, bool ignoreDirect) const;
bool WeaponHits(const CWeaponMode& mode, bool checkDirect) const;