2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-08 15:44:56 +00:00

Finish CGunWeapon

This commit is contained in:
Jack Andersen
2017-09-04 17:00:19 -10:00
parent 640623f3ef
commit 361aa1512b
38 changed files with 990 additions and 169 deletions

View File

@@ -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:

View File

@@ -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