63class ProjectileGenerator :
public Animate
76 bool m_bFireOnStartUp;
85 float m_fLastShotTime;
95 CLASS_PROTOTYPE(ProjectileGenerator);
97 ProjectileGenerator();
99 virtual void SetupNextCycle();
100 virtual void BeginCycle(Event *ev);
101 virtual void TickCycle(Event *ev);
102 virtual void EndCycle(Event *ev);
104 bool ShouldStartOn()
const;
105 bool ShouldHideModel()
const;
106 bool ShouldPlayFireSound()
const;
107 bool ShouldPlayMotionSound()
const;
108 bool ShouldRotateYaw()
const;
109 bool ShouldRotateRoll()
const;
111 void EventIsTurnedOn(Event *ev);
112 void EventGetTargetEntity(Event *ev);
113 void EventLaunchSound(Event *ev);
114 void SetTarget(Event *ev);
115 void SetTarget(Entity *ent);
116 void OnInitialize(Event *ev);
117 void TurnOff(Event *ev);
118 void TurnOn(Event *ev);
119 bool ShouldTargetRandom()
const;
120 Entity *ChooseTarget();
122 void GetLocalTargets();
123 bool ShouldTargetPlayer()
const;
124 Vector GetTargetPos(Entity *target);
125 void GetMuzzlePos(Vector& pos);
127 void TryLaunchSound();
128 void SetWeaponAnim(
const char *name, Event *ev);
129 void EventAccuracy(Event *ev);
130 void EventMaxDelay(Event *ev);
131 void EventMinDelay(Event *ev);
132 void EventFireOnStartUp(Event *ev);
133 void EventMaxNumShots(Event *ev);
134 void EventMinNumShots(Event *ev);
135 void EventCycles(Event *ev);
136 void EventMaxDuration(Event *ev);
137 void EventMinDuration(Event *ev);
138 void SetWeaponModel(Event *ev);
139 void EventSetId(Event *ev);
140 void EventmaxDonut(Event *ev);
141 void EventminDonut(Event *ev);
142 void EventarcDonut(Event *ev);
143 void EventisDonut(Event *ev);
144 virtual bool Attack(
int count);
146 void Archive(
Archiver& arc)
override;
149class ProjectileGenerator_Projectile :
public ProjectileGenerator
152 str m_sProjectileModel;
153 str m_sPreImpactSound;
154 float m_fImpactSoundTime;
155 float m_fImpactSoundProbability;
158 CLASS_PROTOTYPE(ProjectileGenerator_Projectile);
160 ProjectileGenerator_Projectile();
162 void SetPreImpactSoundProbability(Event *ev);
163 void SetPreImpactSoundTime(Event *ev);
164 void SetPreImpactSound(Event *ev);
165 void PlayPreImpactSound(Event *ev);
166 void SetProjectileModel(Event *ev);
168 float EstimateImpactTime(
const Vector& targetOrigin,
const Vector& fromOrigin,
float speed)
const;
169 bool Attack(
int count)
override;
170 void Archive(
Archiver& arc)
override;
173class ProjectileGenerator_Gun :
public ProjectileGenerator
176 float m_fBulletRange;
177 float m_fBulletDamage;
179 Vector m_vBulletSpread;
180 int m_iTracerFrequency;
182 qboolean m_bFakeBullets;
184 float m_fBulletThroughWood;
185 float m_fBulletThroughMetal;
186 float m_iBulletKnockback;
189 float m_fTracerSpeed;
192 CLASS_PROTOTYPE(ProjectileGenerator_Gun);
194 ProjectileGenerator_Gun();
196 void SetFireDelay(Event *ev);
197 void SetMeansOfDeath(Event *ev);
198 void SetBulletThroughWood(Event *ev);
199 void SetBulletThroughMetal(Event *ev);
200 void SetBulletKnockback(Event *ev);
201 void SetTracerSpeed(Event *ev);
202 void SetBulletLarge(Event *ev);
203 void SetFakeBullets(Event *ev);
204 void SetBulletCount(Event *ev);
205 void SetBulletDamage(Event *ev);
206 void SetTracerFrequency(Event *ev);
207 void SetBulletSpread(Event *ev);
208 void SetBulletRange(Event *ev);
210 bool Attack(
int count)
override;
211 bool TickWeaponAnim();
212 void TickCycle(Event *ev)
override;
213 void Archive(
Archiver& arc)
override;
232class ThrobbingBox_Explosive :
public Animate
238 float m_fExplosionDamage;
240 float m_fStopwatchDuration;
241 str m_sActivateSound;
243 str m_sDestroyedModel;
250 CLASS_PROTOTYPE(ThrobbingBox_Explosive);
252 ThrobbingBox_Explosive();
254 bool ShouldDoExplosion();
256 void SetExplosionOffset(Event *ev);
257 void SetExplosionEffect(Event *ev);
258 void SetTriggered(Event *ev);
259 void DoExplosion(Event *ev);
260 void SetUseThread(Event *ev);
261 void SetThread(Event *ev);
262 void SetStopWatchDuration(Event *ev);
263 void SetRadius(Event *ev);
264 void SetDamage(Event *ev);
265 void TickSound(Event *ev);
266 void ActivateSound(Event *ev);
267 void ExplosionSound(Event *ev);
268 void UsedModel(Event *ev);
269 void SetDestroyModel(Event *ev);
270 void OnBlowUp(Event *ev);
271 void OnUse(Event *ev);
273 void Archive(
Archiver& arc)
override;
365class AISpawnPoint :
public SimpleArchivedEntity
373 float m_iBalconyHeight;
374 int m_iDisguiseLevel;
375 float m_fDisguisePeriod;
376 float m_fDisguiseRange;
377 float m_fEnemyShareRange;
379 float m_fGrenadeAwareness;
381 float m_fMaxNoticeTimeScale;
382 float m_fSoundAwareness;
387 bool m_bPatrolWaitTrigger;
395 bool m_bDontDropWeapons;
396 bool m_bDontDropHealth;
397 str m_sFavoriteEnemy;
405 bool m_bForceDropWeapon;
406 bool m_bForceDropHealth;
409 CLASS_PROTOTYPE(AISpawnPoint);
413 void GetForceDropHealth(Event *ev);
414 void SetForceDropHealth(Event *ev);
415 void GetForceDropWeapon(Event *ev);
416 void SetForceDropWeapon(Event *ev);
417 void GetVoiceType(Event *ev);
418 void SetVoiceType(Event *ev);
419 void GetTarget(Event *ev);
420 void SetTarget(Event *ev);
421 void GetWeapon(Event *ev);
422 void SetWeapon(Event *ev);
423 void GetAlarmNode(Event *ev);
424 void SetAlarmNode(Event *ev);
425 void GetTurret(Event *ev);
426 void SetTurret(Event *ev);
427 void GetPatrolPath(Event *ev);
428 void SetPatrolPath(Event *ev);
429 void GetNoSurprise(Event *ev);
430 void SetNoSurprise(Event *ev);
431 void SetFavoriteEnemy(Event *ev);
432 void GetFavoriteEnemy(Event *ev);
433 void GetDontDropHealth(Event *ev);
434 void SetDontDropHealth(Event *ev);
435 void GetDontDropWeapons(Event *ev);
436 void SetDontDropWeapons(Event *ev);
437 void GetInterval(Event *ev);
438 void SetInterval(Event *ev);
439 void GetMaxDistance(Event *ev);
440 void SetMaxDistance(Event *ev);
441 void GetMinDistance(Event *ev);
442 void SetMinDistance(Event *ev);
443 void GetLeash(Event *ev);
444 void SetLeash(Event *ev);
445 void GetFov(Event *ev);
446 void SetFov(Event *ev);
447 void SetSight(Event *ev);
448 void GetSight(Event *ev);
449 void GetHearing(Event *ev);
450 void SetHearing(Event *ev);
451 void GetPatrolWaitTrigger(Event *ev);
452 void SetPatrolWaitTrigger(Event *ev);
453 void GetTypeIdle(Event *ev);
454 void SetTypeIdle(Event *ev);
455 void GetTypeGrenade(Event *ev);
456 void SetTypeGrenade(Event *ev);
457 void GetTypeDisguise(Event *ev);
458 void SetTypeDisguise(Event *ev);
459 void GetTypeAttack(Event *ev);
460 void SetTypeAttack(Event *ev);
461 void SetSoundAwareness(Event *ev);
462 void GetSoundAwareness(Event *ev);
463 void SetMaxNoticeTimeScale(Event *ev);
464 void GetMaxNoticeTimeScale(Event *ev);
465 void GetGun(Event *ev);
466 void SetGun(Event *ev);
467 void GetGrenadeAwareness(Event *ev);
468 void SetGrenadeAwareness(Event *ev);
469 void SetFixedLeash(Event *ev);
470 void GetFixedLeash(Event *ev);
471 void GetEnemyShareRange(Event *ev);
472 void SetEnemyShareRange(Event *ev);
473 void GetDisguiseRange(Event *ev);
474 void SetDisguiseRange(Event *ev);
475 void GetDisguisePeriod(Event *ev);
476 void SetDisguisePeriod(Event *ev);
477 void GetDisguiseLevel(Event *ev);
478 void SetDisguiseLevel(Event *ev);
479 void GetBalconyHeight(Event *ev);
480 void SetBalconyHeight(Event *ev);
481 void GetAmmoGrenade(Event *ev);
482 void SetAmmoGrenade(Event *ev);
483 void GetAccuracy(Event *ev);
484 void SetAccuracy(Event *ev);
485 void GetEnemyName(Event *ev);
486 void SetEnemyName(Event *ev);
487 void GetHealth(Event *ev);
488 void SetHealth(Event *ev);
489 void GetModel(Event *ev);
490 void SetModel(Event *ev);
492 void Archive(
Archiver& arc)
override;