Initial Prey Game integration support.

This commit is contained in:
Justin Marshall
2026-05-05 15:01:01 -07:00
parent a6c6f1ed26
commit 8d5f678b25
552 changed files with 265551 additions and 209 deletions
+90
View File
@@ -0,0 +1,90 @@
#ifndef __PREY_AI_GASBAG_SIMPLE_H__
#define __PREY_AI_GASBAG_SIMPLE_H__
extern const idEventDef EV_NewPod;
class hhPod;
class hhGasbagSimple : public hhMonsterAI {
public:
CLASS_PROTOTYPE(hhGasbagSimple);
#ifdef ID_DEMO_BUILD //HUMANHEAD jsh PCF 5/26/06: code removed for demo build
void Event_AcidBlast(void) {};
void Event_AcidDrip(void) {};
void Event_DeathCloud(void) {};
void Event_NewPod(hhPod *pod) {};
void Event_LaunchPod(void) {};
void Event_SpawnBlastDebris(void) {};
void Event_ChargeEnemy(void) {};
void Event_GrabEnemy(void) {};
void Event_BiteEnemy(void) {};
void Event_DirectMoveToPosition(const idVec3 &pos) {};
void Event_BindUnfroze(idEntity *unfrozenBind) {};
virtual void Event_EnemyIsSpirit( hhPlayer *player, hhSpiritProxy *proxy ) {};
virtual void Event_EnemyIsPhysical( hhPlayer *player, hhSpiritProxy *proxy ) {};
void Event_GrabCheck(void) {};
void Event_MoveToGrabPosition(void) {};
void Event_CheckRange(void) {};
void Event_EnemyRangeZ(void) {};
#else
virtual ~hhGasbagSimple(void);
void Spawn(void);
void Save(idSaveGame *savefile) const;
void Restore(idRestoreGame *savefile);
virtual void FlyTurn(void);
virtual void Gib(const idVec3 &dir, const char *damageDefName);
int ReactionTo( const idEntity *ent );
protected:
void Event_AcidBlast(void);
void Event_AcidDrip(void);
void Event_DeathCloud(void);
void Event_NewPod(hhPod *pod);
void Event_LaunchPod(void);
void Event_SpawnBlastDebris(void);
void Event_ChargeEnemy(void);
void Event_GrabEnemy(void);
void Event_BiteEnemy(void);
void Event_DirectMoveToPosition(const idVec3 &pos);
void Event_BindUnfroze(idEntity *unfrozenBind);
virtual void Event_EnemyIsSpirit( hhPlayer *player, hhSpiritProxy *proxy );
virtual void Event_EnemyIsPhysical( hhPlayer *player, hhSpiritProxy *proxy );
void Event_GrabCheck(void);
void Event_MoveToGrabPosition(void);
void Event_CheckRange(void);
void Event_EnemyRangeZ(void);
bool GrabEnemy(void);
virtual void LinkScriptVariables(void);
virtual void Ticker(void);
virtual idProjectile *LaunchProjectileAtVec(const char *jointname, const idVec3 &target, bool clampToAttackCone, const idDict* desiredProjectileDef);
virtual idProjectile *LaunchProjectileAtVec(const idVec3 &startOrigin, const idMat3 &startAxis, const idVec3 &target, bool clampToAttackCone, const idDict* desiredProjectileDef);
virtual void Killed(idEntity *inflictor, idEntity *attacker, int damage, const idVec3 &dir, int location);
virtual void Damage(idEntity *inflictor, idEntity *attacker, const idVec3 &dir, const char *damageDefName, const float damageScale, const int location);
virtual void SetEnemy(idActor *newEnemy);
idVec3 podOffset;
float podRange;
int dripCount;
idList< idEntityPtr<hhPod> > podList;
idScriptInt AI_PODCOUNT;
idScriptBool AI_CHARGEDONE;
idScriptBool AI_SWOOP;
idScriptInt AI_DODGEDAMAGE;
int nextWoundTime;
idEntityPtr<hhBindController> bindController; // Bind controller for tractor beam
#endif //HUMANHEAD jsh PCF 5/26/06: code removed for demo build
};
#endif