Nuclide
Software Development Kit for id Tech
NSMonster.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2016-2024 Vera Visions LLC.
3 *
4 * Permission to use, copy, modify, and distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
13 * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
14 * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15*/
16
17var bool autocvar_ai_debugLogic = false;
18void
19_NSMonster_Log(string className, string functionName, float edictNum, string warnMessage)
20{
22 printf("^9%f ^5%s (%d) ^7: %s\n", time, functionName, edictNum, warnMessage);
23 else
24 printf("^5%s (%d) ^7: %s\n", functionName, edictNum, warnMessage);
25}
26#define NSMonsterLog(...) if (autocvar_ai_debugLogic == true) _NSMonster_Log(classname, __FUNC__, num_for_edict(this), sprintf(__VA_ARGS__))
27
33typedef enumflags
34{
35 MONFL_CHANGED_ORIGIN_X,
36 MONFL_CHANGED_ORIGIN_Y,
37 MONFL_CHANGED_ORIGIN_Z,
38 MONFL_CHANGED_ANGLES_X,
39 MONFL_CHANGED_ANGLES_Y,
40 MONFL_CHANGED_ANGLES_Z,
41 MONFL_CHANGED_MODELINDEX,
42 MONFL_CHANGED_SIZE,
43 MONFL_CHANGED_FLAGS,
44 MONFL_CHANGED_SOLID,
45 MONFL_CHANGED_FRAME,
46 MONFL_CHANGED_SKINHEALTH,
47 MONFL_CHANGED_MOVETYPE,
48 MONFL_CHANGED_EFFECTS,
49 MONFL_CHANGED_BODY,
50 MONFL_CHANGED_SCALE,
51 MONFL_CHANGED_VELOCITY,
52 MONFL_CHANGED_RENDERCOLOR,
53 MONFL_CHANGED_RENDERAMT,
54 MONFL_CHANGED_RENDERMODE,
55 MONFL_CHANGED_HEADYAW
56} nsmonster_changed_t;
57
62typedef enum {
141
143typedef enumflags
144{
145 MSF_WAITTILLSEEN,
146 MSF_GAG,
147 MSF_MONSTERCLIP,
148 MSF_RESERVED1,
149 MSF_PRISONER,
150 MSF_RESERVED2,
151 MSF_IGNOREPLAYER,
152 MSF_WAITFORSCRIPT,
153 MSF_RESERVED3,
154 MSF_FADECORPSE,
155 MSF_MULTIPLAYER,
156 MSF_FALLING,
157 MSF_HORDE
158} monsterFlag_t;
159
161typedef enumflags
162{
163 SMSF_WAITTILLSEEN,
164 SMSF_GAG,
165 SMSF_FALLTOGROUND,
166 SMSF_DROPHEALTHKIT,
167 SMSF_EFFICIENT,
168 SMSF_RESERVED1,
169 SMSF_RESERVED2,
170 SMSF_WAITFORSCRIPT,
171 SMSF_LONGVISIBILITY,
172 SMSF_FADECORPSE,
173 SMSF_THINKOUTPVS,
174 SMSF_TEMPLATE,
175 SMSF_ALTCOLLISION,
176 SMSF_NODROPWEAPONS,
177 SMSF_IGNOREPLAYERPUSH
178} sourceMonsterFlag_t;
179
181typedef enum
182{
191
193typedef enum
194{
200
202typedef enum
203{
210
212typedef enum
213{
218
223typedef enum
224{
238
239/* FIXME: I'd like to move this into NSMonster, but our current IsFriend()
240 * check is currently only checking on a .takedamage basis. */
242
323{
324public:
325 void NSMonster(void);
326
327#ifdef SERVER
328 /* overrides */
329 virtual void Save(float);
330 virtual void Restore(string,string);
331 virtual void EvaluateEntity(void);
332 virtual float SendEntity(entity,float);
333 virtual void Touch(entity);
334 //virtual void Hide(void);
335 virtual void Spawned(void);
336 virtual void Respawn(void);
337 virtual void Input(entity,string,string);
338 virtual void Pain(void);
339 virtual void Death(void);
340 virtual void Physics(void);
341 virtual void Gib(void);
342 virtual void Sound(string);
343 virtual void SpawnKey(string,string);
344
347 virtual void RunAI(void);
349 virtual void IdleNoise(void);
351 virtual void FallNoise(void);
353 virtual void AlertNoise(void);
354
356 virtual bool IsAlive(void);
358 virtual bool IsFriend(int);
360 virtual void HasBeenKilled(void);
362 virtual void HasBeenHit(void);
363 /* Overridable: Called when the monster was gibbed. */
364 virtual void HasBeenGibbed(void);
365 /* Overridable: Called when the monster has been alerted to threat. */
366 virtual void HasBeenAlerted(void);
367
368 /* see/hear subsystem */
370 virtual void SeeThink(void);
372 virtual float SeeFOV(void);
373
375 virtual void AlertNearby(void);
376
377 /* movement */
379 virtual float GetWalkSpeed(void);
381 virtual float GetChaseSpeed(void);
383 virtual float GetRunSpeed(void);
385 virtual float GetYawSpeed(void);
386
387 /* attack system */
389 virtual void AttackDraw(void);
391 virtual void AttackHolster(void);
393 virtual void AttackThink(void);
395 virtual int AttackMelee(void);
397 virtual int AttackRanged(void);
398
400 virtual float MeleeMaxDistance(void);
401
404 virtual bool MeleeCondition(void);
405
407 nonvirtual bool IsValidEnemy(entity);
409 virtual bool IsOnRoute(void);
410
411 /* sequences */
413 virtual void FreeState(void);
415 virtual void FreeStateMoved(void);
417 virtual void FreeStateDead(void);
419 virtual void RouteEnded(void);
421 virtual void WalkRoute(void);
422
424 nonvirtual int GetSequenceState(void);
426 nonvirtual bool InSequence(void);
427
428 /* animation cycles */
430 virtual int AnimIdle(void);
432 virtual int AnimWalk(void);
434 virtual int AnimRun(void);
436 virtual float FramegroupForAct(float);
438 nonvirtual void ActPlay(float);
440 virtual void AnimPlay(float);
442 virtual void AnimationUpdate(void);
444 nonvirtual bool InAnimation(void);
445 nonvirtual void AnimReset(void);
446
447 /* states */
451 nonvirtual void SetState(monsterState_t);
453 nonvirtual monsterState_t GetState(void);
454
455 /* TriggerTarget/Condition */
457 nonvirtual int GetTriggerCondition(void);
459 virtual void TriggerTargets(void);
460
461 virtual void Trigger(entity, triggermode_t);
462#endif
463
464#ifdef CLIENT
465
467 virtual void customphysics(void);
468 virtual float predraw(void);
469 virtual void ReceiveEntity(float,float);
470#endif
471
472private:
473
474 vector v_angle_net;
475
476#ifdef CLIENT
477 nonvirtual void _RenderDebugViewCone();
478#endif
479
480 PREDICTED_FLOAT(m_flHeadYaw)
483
484#ifdef SERVER
485 entity m_eLookAt;
486 entity m_ssLast;
487 vector oldnet_velocity;
488 float m_flPitch;
489 int m_iFlags;
490 vector base_mins;
491 vector base_maxs;
492 float base_health;
493
494 /* sequences */
495 string m_strRouteEnded;
496 int m_iSequenceRemove;
497 int m_iSequenceState;
498 float m_flSequenceEnd;
499 float m_flSequenceSpeed;
500 vector m_vecSequenceAngle;
501 int m_iSequenceFlags;
502 movementState_t m_iMoveState;
503 string m_strSequenceKillTarget;
504
505 int m_iTriggerCondition;
506 string m_strTriggerTarget;
507
508 /* model events */
509 float m_flBaseTime;
510
511 /* attack/alliance system */
512 entity m_eEnemy;
513 float m_flAttackThink;
514 monsterState_t m_iMState;
515 monsterState_t m_iOldMState;
516 vector m_vecLKPos; /* last-known pos */
517
518 /* see/hear subsystem */
519 float m_flSeeTime;
520 /* animation cycles */
521 float m_flAnimTime;
522
523 /* timer for keeping track of the target */
524 float m_flTrackingTime;
525
527
528 /* caching variables, don't save these */
529 float m_actIdle;
530 bool m_bTurning;
531 float m_flIdleNext;
532 float _m_flMeleeAttempts;
533 float _m_flMeleeDelay;
534 float _m_flBurstCount;
535 bool _m_bShouldThrow;
536 bool _m_bStartDead;
537 float _m_flFrame;
538
539 /* save these please */
540 float _m_flReloadTracker;
541 bool m_bWeaponDrawn;
542
543 /* entityDef related */
544 float m_flEyeHeight;
545 string m_sndSight;
546 string m_sndIdle;
547 float m_flIdleMin;
548 float m_flIdleMax;
549 string m_sndFootstep;
550 string m_sndChatter;
551 string m_sndChatterCombat;
552 string m_sndPain;
553
554 string m_sndMeleeAttack;
555 string m_sndMeleeAttackHit;
556 string m_sndMeleeAttackMiss;
557
558 string m_sndDeath;
559 string m_sndThud;
560
561 /* attack definitions, if defined will fire projectiles */
562 string m_defSpecial1;
563 float m_flSpecial1Range;
564 string m_defSpecial2;
565 float m_flSpecial2Range;
566 string m_defRanged1;
567 float m_flRanged1Range;
568 string m_defRanged2;
569 float m_flRanged2Range;
570
571 /* ranged1 only */
572 int m_iNumProjectiles;
573 float m_flProjectileDelay;
574 float m_flProjectileSpread;
575
576 /* general */
577 float m_flAttackCone;
578 float m_flAttackAccuracy;
579
580 /* melee attack */
581 string m_defMelee;
582 float m_flMeleeRange;
583
584 string m_sndRangedAttack;
585 float m_flReloadCount;
586 float m_flReloadDelay;
587 string m_sndReload;
588 float m_flReserveAmmo;
589
590 string m_sndRangedAttack2;
591
592 bool m_bWeaponStartsDrawn;
593 string m_strBodyOnDraw;
594
595 float m_flWalkSpeed;
596 float m_flRunSpeed;
597
598 float m_flLeapDamage;
599 bool m_bLeapAttacked;
600 float m_flForceSequence;
601 float m_flSkin;
602 bool m_bGagged;
603
604 nonvirtual void _LerpTurnToEnemy(void);
605 nonvirtual void _LerpTurnToPos(vector);
606 nonvirtual void _LerpTurnToYaw(vector);
607 virtual void _Alerted(void);
608 nonvirtual void _ChaseAfterSpawn(void);
609#endif
610};
611
612#ifdef CLIENT
613string Sentences_GetSamples(string);
614string Sentences_ProcessSample(string);
615#endif
616
617#ifdef SERVER
618void NSMonster_AlertEnemyAlliance(vector pos, float radius, int alliance);
620#endif
621
movementState_t
Movement states.
Definition: NSMonster.h:213
@ MOVESTATE_WALK
Definition: NSMonster.h:215
@ MOVESTATE_RUN
Definition: NSMonster.h:216
@ MOVESTATE_IDLE
Definition: NSMonster.h:214
float bonecontrol4
Definition: NSMonster.h:629
entity NSMonster_FindClosestPlayer(entity)
Definition: NSMonster.qc:2354
float baseframe2
Definition: NSMonster.h:622
allianceState_t
Alliance states.
Definition: NSMonster.h:203
@ MAL_FRIEND
1, friendly towards the player
Definition: NSMonster.h:204
@ MAL_ALIEN
3, unfriendly towards anyone but themselves
Definition: NSMonster.h:206
@ MAL_ROGUE
4, no allies, not even amongst themselves
Definition: NSMonster.h:207
@ MAL_NEUTRAL
5, neutral - will not attack, will not be attacked
Definition: NSMonster.h:208
@ MAL_ENEMY
2, unfriendly towards the player
Definition: NSMonster.h:205
float baselerpfrac
Definition: NSMonster.h:625
float bonecontrol2
Definition: NSMonster.h:627
float bonecontrol1
Definition: NSMonster.h:626
float subblendfrac
Definition: NSMonster.h:631
var bool autocvar_ai_debugLogic
Definition: NSMonster.h:17
void NSMonster_AlertEnemyAlliance(vector pos, float radius, int alliance)
Definition: NSMonster.qc:2293
float baseframe1time
Definition: NSMonster.h:623
float baseframe2time
Definition: NSMonster.h:624
string Sentences_ProcessSample(string)
Definition: sentences.qc:127
sequenceState_t
Scripted sequence states.
Definition: NSMonster.h:194
@ SEQUENCESTATE_ACTIVE
Definition: NSMonster.h:197
@ SEQUENCESTATE_IDLE
Definition: NSMonster.h:196
@ SEQUENCESTATE_ENDING
Definition: NSMonster.h:198
@ SEQUENCESTATE_NONE
Definition: NSMonster.h:195
int m_iAlliance
Definition: NSMonster.h:241
monsterState_t
Behaviour states.
Definition: NSMonster.h:182
@ MONSTER_CHASING
Definition: NSMonster.h:186
@ MONSTER_GIBBED
Definition: NSMonster.h:189
@ MONSTER_AIMING
Definition: NSMonster.h:187
@ MONSTER_FOLLOWING
Definition: NSMonster.h:185
@ MONSTER_ALERT
Definition: NSMonster.h:184
@ MONSTER_IDLE
Definition: NSMonster.h:183
@ MONSTER_DEAD
Definition: NSMonster.h:188
monster_activity_t
List of supported ACT types.
Definition: NSMonster.h:62
@ ACT_LEAP
Definition: NSMonster.h:71
@ ACT_DIEBACKWARD
Definition: NSMonster.h:100
@ ACT_LAND
Definition: NSMonster.h:73
@ ACT_SWIM
Definition: NSMonster.h:69
@ ACT_SNIFF
Definition: NSMonster.h:118
@ ACT_BARNACLE_PULL
Definition: NSMonster.h:104
@ ACT_ROLL_LEFT
Definition: NSMonster.h:76
@ ACT_TWITCH
Definition: NSMonster.h:87
@ ACT_FALL
Definition: NSMonster.h:72
@ ACT_WALK_SCARED
Definition: NSMonster.h:126
@ ACT_RUN
Definition: NSMonster.h:67
@ ACT_RANGE_ATTACK1
Definition: NSMonster.h:91
@ ACT_SIGNAL2
Definition: NSMonster.h:85
@ ACT_SMALL_FLINCH
Definition: NSMonster.h:89
@ ACT_RESET
Definition: NSMonster.h:63
@ ACT_IDLE_ANGRY
Definition: NSMonster.h:110
@ ACT_DIE_CHESTSHOT
Definition: NSMonster.h:130
@ ACT_MELEE_ATTACK1
Definition: NSMonster.h:93
@ ACT_DISARM
Definition: NSMonster.h:97
@ ACT_BARNACLE_CHEW
Definition: NSMonster.h:106
@ ACT_FLINCH_LEFTARM
Definition: NSMonster.h:136
@ ACT_FLINCH_STOMACH
Definition: NSMonster.h:135
@ ACT_FLINCH_RIGHTLEG
Definition: NSMonster.h:139
@ ACT_FLINCH_CHEST
Definition: NSMonster.h:134
@ ACT_MELEE_ATTACK2
Definition: NSMonster.h:94
@ ACT_HOP
Definition: NSMonster.h:70
@ ACT_BITE
Definition: NSMonster.h:119
@ ACT_FEAR_DISPLAY
Definition: NSMonster.h:121
@ ACT_RUN_SCARED
Definition: NSMonster.h:127
@ ACT_WALK
Definition: NSMonster.h:66
@ ACT_TURN_RIGHT
Definition: NSMonster.h:79
@ ACT_ROLL_RIGHT
Definition: NSMonster.h:77
@ ACT_FLY
Definition: NSMonster.h:68
@ ACT_CROUCHIDLE
Definition: NSMonster.h:81
@ ACT_VICTORY_DANCE
Definition: NSMonster.h:128
@ ACT_WALK_HURT
Definition: NSMonster.h:111
@ ACT_RUN_HURT
Definition: NSMonster.h:112
@ ACT_COMBAT_IDLE
Definition: NSMonster.h:125
@ ACT_STRAFE_RIGHT
Definition: NSMonster.h:75
@ ACT_DIEFORWARD
Definition: NSMonster.h:101
@ ACT_SPECIAL_ATTACK1
Definition: NSMonster.h:123
@ ACT_FLY_LEFT
Definition: NSMonster.h:115
@ ACT_DETECT_SCENT
Definition: NSMonster.h:117
@ ACT_IDLE
Definition: NSMonster.h:64
@ ACT_HOVER
Definition: NSMonster.h:113
@ ACT_SIGNAL3
Definition: NSMonster.h:86
@ ACT_EXCITED
Definition: NSMonster.h:122
@ ACT_STRAFE_LEFT
Definition: NSMonster.h:74
@ ACT_STAND
Definition: NSMonster.h:82
@ ACT_USE
Definition: NSMonster.h:83
@ ACT_CROUCH
Definition: NSMonster.h:80
@ ACT_COWER
Definition: NSMonster.h:88
@ ACT_FLY_RIGHT
Definition: NSMonster.h:116
@ ACT_GUARD
Definition: NSMonster.h:65
@ ACT_TURN_LEFT
Definition: NSMonster.h:78
@ ACT_THREAT_DISPLAY
Definition: NSMonster.h:120
@ ACT_SPECIAL_ATTACK2
Definition: NSMonster.h:124
@ ACT_DIE_HEADSHOT
Definition: NSMonster.h:129
@ ACT_INSPECT_WALL
Definition: NSMonster.h:109
@ ACT_SIGNAL1
Definition: NSMonster.h:84
@ ACT_GLIDE
Definition: NSMonster.h:114
@ ACT_FLINCH_RIGHTARM
Definition: NSMonster.h:137
@ ACT_DIEVIOLENT
Definition: NSMonster.h:102
@ ACT_DIE_GUTSHOT
Definition: NSMonster.h:131
@ ACT_SLEEP
Definition: NSMonster.h:107
@ ACT_DIE_BACKSHOT
Definition: NSMonster.h:132
@ ACT_ARM
Definition: NSMonster.h:96
@ ACT_BARNACLE_CHOMP
Definition: NSMonster.h:105
@ ACT_RANGE_ATTACK2
Definition: NSMonster.h:92
@ ACT_INSPECT_FLOOR
Definition: NSMonster.h:108
@ ACT_DIESIMPLE
Definition: NSMonster.h:99
@ ACT_BIG_FLINCH
Definition: NSMonster.h:90
@ ACT_FLINCH_HEAD
Definition: NSMonster.h:133
@ ACT_FLINCH_LEFTLEG
Definition: NSMonster.h:138
@ ACT_RELOAD
Definition: NSMonster.h:95
@ ACT_BARNACLE_HIT
Definition: NSMonster.h:103
@ ACT_EAT
Definition: NSMonster.h:98
float bonecontrol3
Definition: NSMonster.h:628
void _NSMonster_Log(string className, string functionName, float edictNum, string warnMessage)
Definition: NSMonster.h:19
float basesubblendfrac
Definition: NSMonster.h:633
float subblend2frac
Definition: NSMonster.h:632
triggerCondition_t
These numerations involve the m_iTriggerCondition attribute.
Definition: NSMonster.h:224
@ MTRIG_SQUADMEMBERDEAD
6, a squad member died
Definition: NSMonster.h:230
@ MTRIG_SEEPLAYER_RELAXED
12, we see a player and we're currently attacking anything
Definition: NSMonster.h:236
@ MTRIG_HALFHEALTH
4, lost half of our base_health
Definition: NSMonster.h:228
@ MTRIG_DEATH
5, we have died.
Definition: NSMonster.h:229
@ MTRIG_PAIN
3, taken damage
Definition: NSMonster.h:227
@ MTRIG_SEEPLAYER_ANGRY
2, we see an enemy player, that we want to harm
Definition: NSMonster.h:226
@ MTRIG_HEARENEMYPLAYER
9, we hear a player we are enemies with
Definition: NSMonster.h:233
@ MTRIG_SQUADLEADERDEAD
7, the squad leader died
Definition: NSMonster.h:231
@ MTRIG_HEARNOISE
8, we hear some noise around the world.
Definition: NSMonster.h:232
@ MTRIG_HEARWEAPONS
10, we hear weapons being fired
Definition: NSMonster.h:234
@ MTRIG_SEEPLAYER
11, we see a player, don't have to be angry at him.
Definition: NSMonster.h:235
@ MTRIG_NONE
1, nothing
Definition: NSMonster.h:225
string Sentences_GetSamples(string)
Definition: sentences.qc:240
float bonecontrol5
Definition: NSMonster.h:630
float basesubblend2frac
Definition: NSMonster.h:634
typedef enumflags
Bitfield enumeration for NSMonster its SendFlags field.
Definition: NSMonster.h:34
triggermode_t
The type of trigger activation.
Definition: NSTrigger.h:40
This entity class represents non-player characters.
Definition: NSMonster.h:323
virtual bool MeleeCondition(void)
Returns whether or not we should attempt a melee attack.
Definition: NSMonster.qc:585
virtual bool IsAlive(void)
Returns if they're considered alive.
Definition: NSMonster.qc:1375
virtual void TriggerTargets(void)
Call to trigger their targets manually.
Definition: NSMonster.qc:108
virtual void Save(float)
Handles saving a copy of this entity to a given filehandle.
Definition: NSMonster.qc:120
virtual void WalkRoute(void)
Internal use only.
Definition: NSMonster.qc:1258
nonvirtual void ActPlay(float)
Call to play an ACT on the given NSMonster.
Definition: NSMonster.qc:491
virtual void HasBeenKilled(void)
Overridable: Called once, when the monster has died.
Definition: NSMonster.qc:1663
virtual void EvaluateEntity(void)
Run each tic after physics are run to determine if we need to send updates over the network.
Definition: NSMonster.qc:2074
virtual bool IsOnRoute(void)
Returns TRUE if the monster is currently on route to a position.
Definition: NSMonster.qc:655
virtual float GetChaseSpeed(void)
Overridable: Returns the chase speed in Quake units per second.
Definition: NSMonster.qc:779
nonvirtual bool InSequence(void)
Returns if they're currently in a scripted sequence.
Definition: NSMonster.qc:1433
virtual void Restore(string, string)
Similar to ::SpawnKey but for save-game fields.
Definition: NSMonster.qc:209
virtual void AlertNoise(void)
Overridable: Called when this monster gets 'alerted' to something new.
Definition: NSMonster.qc:553
virtual void HasBeenGibbed(void)
Definition: NSMonster.qc:1669
nonvirtual monsterState_t GetState(void)
Returns the current state of this NSMonster.
Definition: NSMonster.qc:1421
virtual float MeleeMaxDistance(void)
Overridable: Returns the distance in qu of what'll be a successfull melee attack.
Definition: NSMonster.qc:578
virtual void RouteEnded(void)
Internal use only.
Definition: NSMonster.qc:1233
virtual void FreeStateMoved(void)
Internal use only.
Definition: NSMonster.qc:1206
nonvirtual void AnimReset(void)
Definition: NSMonster.qc:504
virtual void Trigger(entity, triggermode_t)
Called whenever we're legacy triggered by another object or function.
Definition: NSMonster.qc:1887
virtual void Touch(entity)
Called whenever we're touching another entity.
Definition: NSMonster.qc:1543
virtual float SeeFOV(void)
Overridable: Returns the field of view in degrees.
Definition: NSMonster.qc:591
nonvirtual int GetSequenceState(void)
Returns the type of sequence they're currently in.
Definition: NSMonster.qc:1427
nonvirtual void SetState(monsterState_t)
Sets the current state of this NSMonster.
Definition: NSMonster.qc:1410
virtual float GetWalkSpeed(void)
Overridable: Returns the walking speed in Quake units per second.
Definition: NSMonster.qc:773
virtual void FallNoise(void)
Overridable: Called when they start falling.
Definition: NSMonster.qc:534
virtual float predraw(void)
virtual bool IsFriend(int)
Returns whether they are allied with the type in question.
Definition: NSMonster.qc:563
nonvirtual bool IsValidEnemy(entity)
Returns TRUE if 'enemy' should be considered a valid target for killing.
Definition: NSMonster.qc:631
virtual void HasBeenHit(void)
Overridable: Called every time the monster is hurt, while still alive.
Definition: NSMonster.qc:1586
virtual void Input(entity, string, string)
Called when we are being prompted by another object/function with an input message.
Definition: NSMonster.qc:1862
virtual void SeeThink(void)
Internal use only.
Definition: NSMonster.qc:674
virtual void ReceiveEntity(float, float)
Client: Handles network updates from the server for the associated entity.
virtual void Physics(void)
Definition: NSMonster.qc:1447
virtual float FramegroupForAct(float)
Overridable: Returns which framegroup to play for a given ACT.
Definition: NSMonster.qc:484
virtual void Sound(string)
Definition: NSMonster.qc:516
virtual void FreeState(void)
Internal use only.
Definition: NSMonster.qc:1149
virtual void AttackDraw(void)
Overridable: Called when they're drawing a weapon.
Definition: NSMonster.qc:1123
virtual void AnimPlay(float)
Call to play a single animation onto it, which cannot be interrupted by movement.
Definition: NSMonster.qc:497
virtual void Pain(void)
Called whenever the entity receives damage.
Definition: NSMonster.qc:1592
virtual float GetYawSpeed(void)
Overridable: Returns the turning speed in euler-angle units per second.
Definition: NSMonster.qc:791
virtual void FreeStateDead(void)
Internal use only.
Definition: NSMonster.qc:1217
virtual int AnimWalk(void)
DEPRECATED, Overridable: Called when we need to play a fresh walking framegroup.
Definition: NSMonster.qc:471
virtual float SendEntity(entity, float)
Called by the engine whenever we need to send a client an update about this entity.
Definition: NSMonster.qc:2119
virtual void StateChanged(monsterState_t, monsterState_t)
Called whenever the state of this NSMonster changes.
Definition: NSMonster.qc:1384
virtual void AttackHolster(void)
Overridable: Called when they're holstering a weapon.
Definition: NSMonster.qc:1141
virtual void SpawnKey(string, string)
This method handles entity key/value pairs on map load.
Definition: NSMonster.qc:1900
virtual void RunAI(void)
Internal use only.
Definition: NSMonster.qc:1439
virtual void Gib(void)
Definition: NSMonster.qc:522
virtual void Respawn(void)
Server: Called when the entity first spawns or when game-logic requests the entity to return to its o...
Definition: NSMonster.qc:1791
virtual float GetRunSpeed(void)
Overridable: Returns the running speed in Quake units per second.
Definition: NSMonster.qc:785
nonvirtual bool InAnimation(void)
Returns if we're currently in a forced animation sequence.
Definition: NSMonster.qc:510
virtual void AnimationUpdate(void)
Internal use only.
Definition: NSMonster.qc:1309
virtual void IdleNoise(void)
Overridable: Called after a while when they've got nothing to do.
Definition: NSMonster.qc:539
virtual int AttackMelee(void)
Overridable: Called when attempting to melee attack.
Definition: NSMonster.qc:917
virtual void customphysics(void)
overrides
nonvirtual int GetTriggerCondition(void)
Returns the condition under which they'll trigger their targets.
Definition: NSMonster.qc:102
void NSMonster(void)
Definition: NSMonster.qc:21
virtual void AlertNearby(void)
FIXME: Same as WarnAllies/StartleAllies? WTF?
Definition: NSMonster.qc:597
virtual void Death(void)
Called when the health is equal or below 0.
Definition: NSMonster.qc:1687
virtual void HasBeenAlerted(void)
Definition: NSMonster.qc:1675
virtual int AnimIdle(void)
DEPRECATED, Overridable: Called when we need to play a fresh idle framegroup.
Definition: NSMonster.qc:465
virtual int AttackRanged(void)
Overridable: Called when attempting to attack from a distance.
Definition: NSMonster.qc:967
virtual void AttackThink(void)
Overridable: Called when aiming their weapon.
Definition: NSMonster.qc:862
virtual int AnimRun(void)
DEPRECATED, Overridable: Called when we need to play a fresh running framegroup.
Definition: NSMonster.qc:477
virtual void Spawned(void)
Called when the entity is fulled initialized.
Definition: NSMonster.qc:1777
This entity class represents a moving/pathfinding object.
Definition: NSNavAI.h:50
float time
Definition: fteextensions.qc:509
vector(vector) normalize
entity() spawn
get __int i
Definition: fteextensions.qc:3826
#define printf(...)
Definition: global.h:20
var bool autocvar_g_developerTimestamps
Definition: global.h:18
vector view_ofs
Definition: pmove.h:20
#define PREDICTED_FLOAT_N(x)
Definition: defs.h:38
#define PREDICTED_FLOAT(x)
Definition: defs.h:31
#define PREDICTED_VECTOR_N(x)
Definition: defs.h:39