mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-08 15:44:56 +00:00
Finish CGunWeapon
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "ITweak.hpp"
|
||||
#include "Runtime/IFactory.hpp"
|
||||
#include "Runtime/CPlayerState.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
@@ -10,14 +11,7 @@ namespace DataSpec
|
||||
struct ITweakGunRes : ITweak
|
||||
{
|
||||
using ResId = urde::CAssetId;
|
||||
enum class EBeamId
|
||||
{
|
||||
Power,
|
||||
Ice,
|
||||
Wave,
|
||||
Plasma,
|
||||
Phazon
|
||||
};
|
||||
using EBeamId = urde::CPlayerState::EBeamId;
|
||||
|
||||
ResId x4_gunMotion;
|
||||
ResId x8_grappleArm;
|
||||
@@ -54,6 +48,7 @@ struct ITweakGunRes : ITweak
|
||||
b = 0;
|
||||
switch (EBeamId(b))
|
||||
{
|
||||
default:
|
||||
case EBeamId::Power:
|
||||
return x10_powerBeam;
|
||||
case EBeamId::Ice:
|
||||
|
||||
@@ -6,29 +6,32 @@
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
/* Same as CDamageInfo */
|
||||
struct SShotParam : BigYAML
|
||||
{
|
||||
DECL_YAML
|
||||
Value<atUint32> weaponType = -1;
|
||||
Value<atInt32> weaponType = -1;
|
||||
bool charged : 1;
|
||||
bool combo : 1;
|
||||
bool instaKill : 1;
|
||||
Value<float> damage = 0.f;
|
||||
Value<float> radiusDamage = 0.f;
|
||||
Value<float> radius = 0.f;
|
||||
Value<float> knockback = 0.f;
|
||||
virtual bool Charged() const { return false; }
|
||||
virtual bool Comboed() const { return false; }
|
||||
virtual bool InstaKill() const { return false; }
|
||||
bool noImmunity : 1;
|
||||
SShotParam() { charged = false; combo = false; instaKill = false; noImmunity = false; }
|
||||
};
|
||||
|
||||
struct SComboShotParam : SShotParam
|
||||
{
|
||||
DECL_YAML
|
||||
bool Comboed() const { return true; }
|
||||
SComboShotParam() { combo = true; }
|
||||
};
|
||||
|
||||
struct SChargedShotParam : SShotParam
|
||||
{
|
||||
DECL_YAML
|
||||
bool Charged() const { return true; }
|
||||
SChargedShotParam() { charged = true; }
|
||||
};
|
||||
|
||||
struct SWeaponInfo : BigYAML
|
||||
|
||||
Reference in New Issue
Block a user