mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-17 02:17:03 +00:00
Finish CGunWeapon
This commit is contained in:
@@ -6,22 +6,23 @@ namespace urde
|
||||
{
|
||||
|
||||
CDamageInfo::CDamageInfo(const DataSpec::SShotParam& other)
|
||||
: x0_weaponMode(CWeaponMode(EWeaponType(other.weaponType), other.Charged(), other.Comboed(), other.InstaKill()))
|
||||
: x0_weaponMode(CWeaponMode(EWeaponType(other.weaponType), other.charged, other.combo, other.instaKill))
|
||||
, x8_damage(other.damage)
|
||||
, xc_radiusDamage(other.radiusDamage)
|
||||
, x10_radius(other.radius)
|
||||
, x14_knockback(other.knockback)
|
||||
, x18_noImmunity(other.noImmunity)
|
||||
{
|
||||
}
|
||||
|
||||
CDamageInfo& CDamageInfo::operator=(const DataSpec::SShotParam& other)
|
||||
{
|
||||
x0_weaponMode = CWeaponMode(EWeaponType(other.weaponType), other.Charged(), other.Comboed(), other.InstaKill());
|
||||
x0_weaponMode = CWeaponMode(EWeaponType(other.weaponType), other.charged, other.combo, other.instaKill);
|
||||
x8_damage = other.damage;
|
||||
xc_radiusDamage = x8_damage;
|
||||
xc_radiusDamage = other.radiusDamage;
|
||||
x10_radius = other.radius;
|
||||
x14_knockback = other.knockback;
|
||||
x18_noImmunity = false;
|
||||
x18_noImmunity = other.noImmunity;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
@@ -51,6 +51,12 @@ public:
|
||||
float GetRadiusDamage() const { return xc_radiusDamage; }
|
||||
float GetRadiusDamage(const CDamageVulnerability& dVuln) const;
|
||||
bool NoImmunity() const { return x18_noImmunity; }
|
||||
void MultiplyDamage(float m)
|
||||
{
|
||||
x8_damage *= m;
|
||||
xc_radiusDamage *= m;
|
||||
x14_knockback *= m;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -425,8 +425,9 @@ private:
|
||||
float CalculateOrbitMinDistance(EPlayerOrbitType type) const;
|
||||
|
||||
public:
|
||||
CPlayer(TUniqueId, const zeus::CTransform&, const zeus::CAABox&, CAssetId w1, const zeus::CVector3f&, float, float,
|
||||
float, float, const CMaterialList&);
|
||||
CPlayer(TUniqueId uid, const zeus::CTransform& xf, const zeus::CAABox& aabb, CAssetId resId,
|
||||
const zeus::CVector3f& playerScale, float mass, float stepUp, float stepDown, float ballRadius,
|
||||
const CMaterialList& ml);
|
||||
|
||||
bool IsTransparent() const;
|
||||
bool GetControlsFrozen() const { return x760_controlsFrozen; }
|
||||
|
||||
@@ -50,7 +50,7 @@ void CScriptBeam::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId objId, CSt
|
||||
mgr.AddObject(new CPlasmaProjectile(xe8_weaponDescription, x10_name + "-Projectile",
|
||||
x138_damageInfo.GetWeaponMode().GetType(), xf4_beamInfo, x34_transform,
|
||||
EMaterialTypes::Projectile, x138_damageInfo, x8_uid, x4_areaId,
|
||||
x154_projectileId, 8, false, 2));
|
||||
x154_projectileId, 8, false, CWeapon::EProjectileAttrib::PlasmaProjectile));
|
||||
}
|
||||
else if (msg == EScriptObjectMessage::Deleted)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user