Files
quakemapping/mod_xj18/my_progs/defscustom.qc
2020-01-07 11:54:38 +01:00

1714 lines
85 KiB
Plaintext

//======================================================================
// Author : Simon "Sock" OCallaghan
// Website: www.simonoc.com
//======================================================================
nosave float configflag; // Temp cvar used to hold serverflags until live
nosave float temp1flag; // Temp cvar used to hold temp1 console flag
nosave float prethink; // always runs everytime the map is start/load/quickload
nosave float postthink; // Used once after map load
nosave float coop_cvar; // Has the coop cvar been read from console
nosave float skill_cvar; // Has the skill cvar been read from console
nosave float autoaim_cvar; // What is the current state of autoaim
nosave float mapvar_cvar; // Detects if map variables have been loaded
// Client related features
entity client_ent; // Client entity that started server
entity camera_ent; // Start of the info_intermission camera chain
entity coop_ent; // Start of the info_coop spawn locations
float coop_artifacts; // Do artifacts drop from backpacks for coop
float coop_ammoboxes; // Toggle ammo boxes respawning in coop
float coop_weapons; // Toggle weapons respawning in coop
float coop_health; // Toggle health packs respawning in coop
float coop_powerups; // Toggle powerups respawning in coop
float trig_cdtrack; // Trigger changed CD track
string trig_skybox; // Trigger changed Skybox
float engine; // Type of engine active 0=Fitz, 1=DP/FTE/QSS
float ext_active; // PR extenstions active (DP/FTE)
float ext_dpfog; // Extra DP fog parameters
float ext_dppart; // Extra DP particle system
float ext_dpsurf; // Extra DP query surface information
float ext_dprain; // Extra DP particle rain system
float ext_dpsnow; // Extra DP particle snow system
//float ext_dprot; // Extra DP rotating bmodel system
float pixelmode; // Change texture pixel mode (linear/nearest)
float playerprojsize; // Player projectiles 0=Large or 1=Small
entity gibitem; // Latest gib to be generated
float gibstone; // Has stone gibs been precached
float gibpoison; // Has poison gibs been precached
float liquid_alpha; // Stores water alpha, used for monster sight checks
float map_gravity; // Current map gravity setting
float map_bodyflrcheck; // Check floor for monster dead bodies
float map_bodyfadeaway; // Fade all dead monster bodies (time in secs)
entity debugent1, debugent2, debugent3; // Used on wide visibility tests
// Worldspawn features
.float alpha; // Alpha value (requires modern engine)
.float gravity; // per-entity gravity (support added in engines after hipnotic xpac)
.float water_alpha; // Map specific alpha value for water surfaces
.float proj_shotgun; // Enable/Disable projectile shotgun
.float upgrade_axe; // Upgrade the axe with new weapon
.float upgrade_ssg; // Upgrade Super Shotgun with new weapon
.float upgrade_lg; // Upgrade Lightning Gun with new weapon
.float no_item_offset; // All ammo + heal items to use central rotation
.float no_item_rotate; // Not used anymore, kept for compatibility
.float no_zaware; // Switches OFF ALL zaware monsters
.float no_sgprojectile; // Switches OFF ALL shotgun projectiles
.float no_sgcasing; // Switches OFF ALL shotgun casings
.float no_bigprojectiles; // Switches OFF large player projectiles size
.float no_liquiddmg; // Blocks liquid damage checks for monsters
.float no_surfacecheck; // Stops surface checks for large maps
.float sprite_particles; // Forces all particles to be dots/sprites
.float knight_defskin; // Default skin (0-3) type for new knight model
.float give_weapons; // Which weapons the player always starts with
.float take_weapons; // Which weapons the player never starts with
.float reset_health; // Reset health to this value upon spawning
.float bodyflrcheck; // Check floor for monster dead bodies
.float bodyfadeaway; // Time in seconds before body/head fades away
.vector mapvar_update; // Update map variables (Range X->Y=Z)
// Global fog system
float fog_active; // Global fog values are active
entity fog_control; // Global fog controller (unique to map)
.float fog_density; // Global fog density when map loads
.vector fog_colour; // Global fog colour when map loads
.string fog_dpextra; // Extra parameters for DP engine
.float fog_currden; // Current fog density
.float fog_targden; // Target fog density
.float fog_diffden; // Difference between current and target
.vector fog_currcol; // Current fog colour (RGB)
.vector fog_targcol; // Target fog colour (RBG)
.vector fog_diffcol; // Difference between current and target
.float fog_difftime; // Amount of time to fade fog (seconds)
.float fog_steptime; // Amount of steps to fade (20 per second)
// Eric Compiler - Switchable Style Shadows
.float switchshadstyle; // Switchable style for bmodels (shadows)
.entity switchfader; // Controller for fading shadows on bmodels
// General features
.float moditems; // New items flag for new stuff in the mod
.float customkey; // Bit flag for custom keys (func_door)
.float bsporigin; // All bmodel origins are 0,0,0 check this first
.float savedeffects; // Saved effects to apply after spawn
.float nightmare; // Only spawn entity if nightmare skill active
.float cooponly; // Only spawn entity if coop gameplay active
.float startspawn2; // player_start2 unique spawn location number
.entity activate; // When something is triggered, this is the culprit!
.entity bmodel_act; // Trigger bmodel generic touch/kill/use functions
.float bboxtype; // Different types of bounding box setups
.vector bbmins; // Saved bounding box size (minimum)
.vector bbmaxs; // Saved bounding box size (maximum)
.vector idmins; // Original ID bounding box (min)
.vector idmaxs; // Used for stuck issues in original id maps
.entity touching; // The trigger entity that is touching
.string startmsg; // Start message for trigger_counter entity
.string message2; // Additional messages for all entities
.string message3; // Used by misc_books for addtional text
.string message4; // Used by misc_books for addtional text
.string target2; // Secondary target field (additional fires)
.void() touch2; // Used by items for final touch function
.float classtype; // Class type - used for quick reference
.float classgroup; // Class group - used for quick reference
.float classmove; // 1=Walk, 2=Fly, 4=Swim
.float classproj; // Projectile used by entity class
.float projeffect; // Special effects and states active
.float gibhealth; // The negative health value for gibbing
.float gibbed; // true/false flag on body state
.float touchedvoid; // true/false flag if touched void bmodel
.float touchedliquid; // true/false flag if touched fake liquid
.string touchedsound; // Sound string for fake liquid exit
.string headmdl; // Head model for gib routine
.float bleedcolour; // Alternative colour for 'bleeding' objects
.float locksounds; // Locked sound for doors etc
.float skin_override; // Override skin selection based on world theme
.float frame_override; // Override frame number (ammo_boxes)
.float frame_box; // Set frame number for model animation (-1=random)
.float item_flrcheck; // Check the floor surface under items
.float item_expired; // Removal timer for item in item_thinkloop
.float item_skinanim; // Does the skin require animating?
.float item_skincycle; // Skin animations are usually 0.3s (health packs)
.float item_skinanim_no; // Skin no for animation groups
.float noradiusdmg; // Block all T_RadiusDamage, stops grenade spam
.float nodebuginfo; // Blocks certain debug info for entities
.float onladder; // Update state from ladder entity to client
.entity entladder; // Ladder entity for reference (time, sounds etc)
.float timeladder; // Amount of time before playing climb sound
.entity attachment; // 1st Entity attachment (additional model)
.entity attachment2; // 2nd entity attachment (additional model)
.entity attachment3; // 3rd entity attachment (additional model)
.entity sound_emitter; // Used by various entities for add sound
.float check_weather; // Checks for weather system on sound emitters
.float entno_unique; // Unique number for linking entities
.string str_unique; // Unique string name for testing
.string ckeyname1, ckeyname2, ckeyname3, ckeyname4; // Custom key netnames
.float ckeyhint; // Hint to the player about inventory key
// Pressure switch/ volume trigger parameters
.float presstype; // 0/1 if touching entity type is valid
.float presstimersound; // Timer for sound FX (stops repeating)
.float no_deadbody; // Monster dead bodies don't work with trigger
// Item respawning parameter
.float respawn_time; // Amount of time to spend respawning item
.float respawn_count; // Total amount of times to respawn an item
.float respawn_trig; // Wait for a trigger before respawning
.float respawn_effect; // Show particle effect for respawning items
.float respawn_style; // Which particle colour and pattern to use
.vector respawn_ofs; // Z axis height for respawn burst
.entity respawn_part; // Respawn particle emiiter link on items
// AI Pathing (corners/trains)
.float direction; // Travel direction for func_trains
.float corner_route; // Change path_corner route (1-3 routes, 4=exact, 5=random)
.float corner_switch; // Change spawnflags REVERSE (-1=NO, 1=YES, 2=Toggle)
.float corner_pause; // Change spawnflags NOPAUSE (-1=NO, 1=YES, 2=Toggle)
.float corner_speed; // Change path_corner speed (def=100)
.string corner_event; // Special target event on path_corners
.string targetback; // Override backwards pathing route on path_corners
.entity movetarget2; // Additional move target for AI pathing
.entity movetarget3; // Additional move target for AI pathing
.entity movelast; // The last AI pathing corner been at
// Ingame number displays
.float targetnumber; // Float number to pass to misc_targetnumber
.entity tno1, tno2, tno3, tno4, tno5, tno6, tno7, tno8; // Entity digits
// Entity state system
.float estate_trigger; // Entity state to be applied to target
.float estate; // Entity state (off,on and disable)
.void() estate_on; // Entity state ON function
.void() estate_off; // Entity state OFF function
.void() estate_disable; // Entity state DISABLE function
.void() estate_use; // Entity state USE function
.void() estate_fire; // Entity state USE++ function
.void() estate_reset; // Entity state RESET function
.void() estate_aframe; // Entity state AFRAME function
// Breakable system
.float brksound; // Initial sound type
.float brkimpsound; // Impact sound type
.float brkimpqty; // Total impact sounds setup
.float brkobjects; // Breakable sub object type
.string brkobj1; // Breakable object 1 (bsp/mdl)
.string brkobj2; // Breakable object 2 (bsp/mdl)
.string brkobj3; // Breakable object 3 (bsp/mdl)
.string brkobj4; // Breakable object 4 (bsp/mdl)
.float brkobjqty; // Total breakable sub objects setup
.vector brkvelbase; // Base amount for velocity of broken parts
.vector brkveladd; // Random additions for velocity of broken parts
.float brkavel; // Amount of breaking object angle velocity
.float brkfade; // Fade time before rumble fades away
.vector brkvol; // Spawning volume for breakable point entity
.float brkgravity; // Change the gravity for rumble, useful for underwater
.float brkmondmg; // Damage multipler for monster attacks
.float brktrigmissile; // Trigger breakable if hit by - rocket/grenade/shalball
.float brktrigjump; // Trigger breakable if hit by jumping monster attack
.float brktrignoplayer; // Players cannot damage this breakable
.float brkdelaydamage; // Pause from damage when triggered on
// Monster features
.float bossflag; // Flag set on all bosses
.entity enemytarget; // flying monsters enemy target
.float debuglvl; // Used to debug monsters behaviour
.float randomskin; // 0=nothing, x=random number of skins
.float exactskin; // 1-x exact skin number to choose
.void() th_checkattack; // Which check attack function to use
.void() th_slide; // Mainly used by wizard monster
.void() th_charge; // Mainly used by Hell/Death Knight monsters
.void() th_altstand; // Alternative stand animation (Knights only)
.void() th_wakeup; // Special wakeup animations before combat
.void() th_jump; // Special jump animation for jumpers!
.void() th_jumpexit; // Exit animation to stop flying (stuck)
.void() th_updmissile; // Update monster missiles while flying
.void() th_gibdie; // Special function for gib death
.float liquidbase; // Liquid content at base of model (feet)
.float liquidcheck; // Timer to prevent over checking of liqdmg
.float liquidblock; // Cannot see through liquids for wakeup
.float distmin; // Minimum amount of distance to teleport
.float distmax; // Maximum amount of distance to teleport
.float attack_elev; // Iternative attack angle for zaware monsters
.float move_elev; // Z movement adjustment for flying units
.vector move_state; // AI state movement; Stand, Walk & Run
.float bouncegrenade; // All grenades bounce off monster body
.float reflectlightning; // All Lightning strikes are reflected
.float reflectplasma; // All plasma projectiles are reflected
.float reflectnails; // All NG/SNG projectiles are reflected
.entity reflectent; // Entity to generate lightning from
.vector attack_track; // Iternative tracking for range attacks
.float attack_chance; // The percentage chance the monster will attack
.float attack_speed; // Skill based adjusted projectile speed
.float attack_timer; // Blocking of certain attack types (charging)
.float attack_count; // Total amount of consecutive attacks
.vector attack_offset; // Vector where AI fires projectiles from
.float attack_rage; // Is the monster in a rage mode
.float attack_sidestep; // Timer to switch sides for movement
.float attack_sidedeny; // Timer to block side movement
.float attack_instant; // No pause when waking up to attack
.float attack_sniper; // Will wake up at any range (def=1000)
.float meleeattack; // Which type of melee attack is happening
.float meleerange; // Distance used for checking melee contact
.float meleetimer; // Blood and gore sound/effect timer
.string meleehitsound; // Sound to play when melee impacts on enemy
.float meleecontact; // Flag set if monster has melee contact sound
.vector meleeoffset; // Offset for melee contact (spawning blood)
.float plasma_burn; // Timer to stop constant plasma explosions
.float weaponstate; // State of the weapon (up/down etc)
.float weaponswitch; // Switch timer for different weapons
.string weaponglow; // Special glowing model for magic attacks
.float bodyphased; // Used for teleporter monsters
.float bodystatic; // Used to prevent teleporting monsters
.float spawnstatue; // Start/spawn as a statue (cannot be move)
.float spawnnosight; // Spawn when not in sight of player
.float spawnnosighttime; // Time to wait for sight condition
.float spawnnotelefrag; // Spawn when nothing is blocking location
.float nospawndamage; // Will not do any telefrag damage on spawn
.float wakeuptrigger; // Trigger flag to use special wakeup animation
.entity turretactive; // Set when a monster touches a triggerturret
.float turrettimer; // Timer used to prevent constant spamming
.float turrethealth; // % HP at which a turret monster is released
.string turrettarget; // Target to fire when turret % HP is released
.float pain_flinch; // Random chance to ignore this much damage
.float pain_longanim; // Force monster into long pain animations
.float pain_finstate; // Store the current pain finished state
.float pain_check; // Pain condition results
.float pain_timeout; // Time block to pain function
.float pain_ignore; // Ignore pain when hit by other monsters
.string pain_sound; // Pain sound wav file
.string pain_sound2; // Alternative Pain sound wav file
.string death_sound; // Death sound wav file
.string death_sound2; // Alternative death sound wav file
.float death_dmg; // Used by tarbaby for explosive damage on death
.string deathstring; // Used by client for player death messages
.float idlebusy; // Busy with an alternative idle animation
.float idlereverse; // Reverse direction for idle animation
.float idletimer; // Idle sound timer (next time to check)
.float idlemoreoften; // Chance of more idle sound (def=random)
.string idle_sound; // Idle sound wav file
.string idle_sound2; // Alternative Idle sound wav file
.string idle_soundcom; // Combat Idle sound wav file
.string idle_soundcom2; // Alternative Combat Idle sound wav file
.float sight_timeout; // Time block for sight sound
.string sight_sound; // Sight sound wav file 1
.string sight_sound2; // Sight sound wav file 2
.string sight_sound3; // Sight sound wav file 3
.string sight_sound4; // Sight sound wav file 4
.float sight_count; // Total amount of sight sounds defined
.float sight_nofront; // Monster has no infront check
.float enemydist; // Distance the enemy is from the monster
.float enemymaxdist; // Maximum distance enemy is out of range
.entity lostenemy; // Lost soul enemy before losing sight
.float losttimer; // Lost soul idle timer after losing sight
.float lostsearch; // Lost soul searching for previous enemy
.string angrytarget; // Alternative target to attack upon spawn
.string deathtarget; // Alternative target to fire when dying
.string sighttarget; // Will always attack this target if sighted
.entity switchattacker; // Last entity to attack and cause damage
.float switchtimer; // Cooldown before switching targets (infighting)
.float switchoverride; // Cooldown override timer to stop rapid switch
.float infightextra; // Damage multiplier for infighting damage
.float noinfighting; // Will ignore/start any infighting
.float nomonstercount; // excluded from map monster count
.float delaymonstercount; // Monster added to count when spawned
.entity jumptouch; // Last entity a jumping monster touched
.float steptype; // Primary footstep type
.float altsteptype; // Secondary footstep type
.float steplast; // Last footstep sound
.float altsteplast; // Last club foot sound
.string stepc1, stepc2, stepc3, stepc4, stepc5; // Custom feet sounds
.float zombieflr; // Get up frame for zombie on floor
.string bodyonflr; // String used for find function
.string bodyonflrtrig; // Trigger to fire when body is axed!
.float dmgtimeframe; // Time before damage frame can be reset
.float dmgcombined; // combined damage over 1 frame (0.1 time)
.float bosswave; // Current wave of the boss (backwards)
.float bosswavetotal; // Total amount of boss waves
.float bosswaveqty; // Total HP for each boss wave
.float bosswavetrig; // Current HP trigger for wave
// Minions (rest of the parameters in ai_minions.qc)
.float minion_active; // is the minion system active
// Projectile resistance (% protection) for monsters
.float resist_shells, resist_nails, resist_rockets, resist_cells;
.float lightning_timer; // Cool down for LG resist effect
//----------------------------------------------------------------------
float ENG_UNKNOWN = 0; // Default engine type
float ENG_FITZ = 1; // Fitz clone engines
float ENG_DPEXT = 2; // Engine with Darkplaces extensions
float DEF_GRAVITY = 800; // Default gravity for maps
float DEF_FOGDEN = 0.1; // Default fog parameter
vector DEF_FOGCOL = '0.1 0.1 0.1'; // Wispy white
string DEF_FOGEXT = "1 0 8192 1024 32"; // DP only extra
float TELE_SPEED = 300; // Default teleport velocity
float LARGE_TIMER = 999999; // Don't run out of time!
float MEGADEATH = 50000; // Time to die!
float TIME_MINTICK = 0.01; // Smallest amount of time to tick functions
float FADEMODEL_TIME = 0.01; // Small amount of time
float FADEFOG_TIME = 0.05; // 20 updates per second
float PARTICLE_DEBUGMAX = 2; // Maximum debug level
float part_debug; // Particle debug level (visual details)
float POWERUP_TIMER = 30; // Default timer for powerups
float DEF_SHELLS = 25; // Default ammo given to new players
float FLOOR_TRACE_DIST = 256; // Default distance for floor trace checks
float FLOOR_TRACE_MONSTER = 40; // Distance for monster/body checks
float FLOOR_TRACE_GIBS = 16; // Distance for gib/head checks
float FLOOR_TRACE_BREAK = 16; // Distance for breakable checks
//----------------------------------------------------------------------
// Server flags (only way to carry items over between maps)
// bits 1-4 Runes, 5-8 Additional keys/items
float SVR_RUNE_KEY1 = 1; // Rune 1
float SVR_RUNE_KEY2 = 2; // Rune 2
float SVR_RUNE_KEY3 = 4; // Rune 3
float SVR_RUNE_KEY4 = 8; // Rune 4
float SVR_RUNE_ALL = 15; // Runes 1-4 (together)
float SVR_SPAWN_BIT1 = 16; // 3 bit spawn location
float SVR_SPAWN_BIT2 = 32; // Supports 7 locations 001-111
float SVR_SPAWN_BIT3 = 64; // Set via trigger_change_level
float SVR_LIVE = 128; // Bit 8 - Serverflag has active data
float SVR_RUNEFLAG = 255; // Bits 1- 8 - Runes and Keys
float SVR_LOWFLAG = 65535; // Bits 1-16 - rune keys and spawn settings
float SVR_WORLDFLAG = 65280; // Bits 9-16 - default/worldspawn options
float SVR_HIGHFLAG = 8323072; // Bits 17-23 - these options carry over
// MOD Options that can only be changed via temp1 console variable
// These affect the spawning functions of monster / items
float SVR_ITEMOFFSET = 256; // Toggle item offset (corner/center)
float SVR_SPRPARTON = 512; // Always use sprite particles (default OFF)
float SVR_PARTICLES = 1024; // Turn ON particle system (default OFF)
float SVR_NOFOGCMDS = 2048; // Disables all fog commands (winquake)
float SVR_DEVHELPER = 4096; // Turn OFF Dev helpers (marks+arrows)
float SVR_UPDAXE = 8192; // Upgrade Axe, +75% dmg, gib zombies
float SVR_UPDSSG = 16384; // Upgrade Super Shotgun, +50% dmg, uses 3 shells
float SVR_UPDLG = 32768; // Upgrade Lightning Gun, Direct+Splashdamage
// MOD Options that can be changed via impulse commands (need a map loaded)
// These options will override the temp1 console variable
float SVR_WEATHER = 65536; // Turn OFF All weather systems
float SVR_SHOTGPROJ = 131072; // Turn OFF Shotgun projectiles
float SVR_SHOTGCASE = 262144; // Turn OFF Shotgun casings
float SVR_ZAWARE = 524288; // Turn OFF Z aware monsters
float SVR_FOOTSTEP = 1048576; // Turn OFF Enemy/player footsteps
//float SVR_ = 2097152; // Not used atm
float SVR_LIQDAM = 4194304; // Turn OFF Monster Liquid damage
//----------------------------------------------------------------------
float IT_UPGRADE_AXE = 4096; // Shadow Axe, +75% dmg, +gib bodies
float IT_UPGRADE_SSG = 2; // The Widowmaker, +50 dmg, +3 shells
float IT_UPGRADE_LG = 64; // Plasma Gun, direct + splashdamage
float IT_ALLARMOR = 57344;// Test for player grn/yel/red armour
float IT_CKEY1 = 8192; // Custom Key 1
float IT_CKEY2 = 16384; // Custom Key 2
float IT_CKEY3 = 32768; // Custom Key 3
float IT_CKEY4 = 65536; // Custom Key 4
float IT_CKEYALL = 122880; // All Custom keys
float IT_ARTTOME = 524288; // Tome of Power (event trigger)
float IT_ARTSHARP = 1048576; // Reduce SG/SSG/RG spread pattern
float IT_ARTWETSUIT = 2097152; // Underwater Wetsuit + tank 5mins Oxygen
float IT_ARTPIERCE = 4194304; // NG/SNG Nails travel through enemy bodies
.float powerup_sound;
.float sharpshoot_finished, sharpshoot_time, sharpshooter_sound;
.float nailpiercer_finished, nailpiercer_time, nailpiercer_sound;
.float wetsuit_finished, wetsuit_time, wetsuit_sound;
.float wetsuit_level, wetsuit_bubbles;
//----------------------------------------------------------------------
float SKILL_EASY = 0; // Skill level constants
float SKILL_NORMAL = 1;
float SKILL_HARD = 2;
float SKILL_NIGHTMARE = 3;
float HUD_SECRETS = 2; // Update secrets screen counter
float HUD_MONSTERS = 4; // Update monster screen counter
float BUFFER_STUFFCMD = 1; // Long float print function (lftos)
float BUFFER_SPRINT = 2; // Defined in subs.soc.qc
float BUFFER_DPRINT = 4;
//----------------------------------------------------------------------
float STATE_SETUP = -1; // Setup state (on/off functions)
float STATE_ON = 1; // Stupid idea to have on states as 0
float STATE_OFF = 2; // Impossible to test for 0 as 'not setup' is 0
float ENT_SPNSTATIC = 32; // Will convert entity to static on spawn
float ENT_STARTOFF = 64; // Global spawnflags setting
float ESTATE_BLOCK = 6; // Blocked OFF+DISABLE
float ESTATE_LOWER = 7; // ON+OFF+DISABLE
float ESTATE_ON = 1; // Switch ON
float ESTATE_OFF = 2; // Switch OFF
float ESTATE_DISABLE = 4; // Disabled (blocks toggle)
float ESTATE_RESET = 8; // Reset parameters
float ESTATE_AFRAME = 16; // Changes Aframe only
float TARGET_BACK = 0; // Behind - 315-45
float TARGET_LEFT = 1; // Side - 45-135
float TARGET_FRONT = 2; // Front - 135-225
float TARGET_RIGHT = 3; // Right - 225-315
float SPNMARK_YELLOW = 0; // Error something is broken
float SPNMARK_BLUE = 1; // Delay spawn monster/item
float SPNMARK_GREEN = 2; // Delay spawn mosnter with no counter
float SPNMARK_RED = 3; // Nightmare only spawn
float SPNMARK_PURPLE = 4; // Coop only spawn
float SPNMARK_WHITE = 5; // Not used atm
//----------------------------------------------------------------------
// Environmental damage
float LIQUID_TIMER = 1; // Amount of time to check for liquid damage
float MON_MULTIPLIER = 10; // Multiplier for liquid damage against monsters
float WATER_DAMAGE = 2; // water drowning
float WATER_AIR = 12; // time before damage
float LIQUID_DMG = 1; // Base damage from liquid damage
float SLIME_DAMAGE = 4; // Acid burning
float LAVA_DAMAGE = 10; // Getting crispy
//----------------------------------------------------------------------
// Footstep types (slow, drag, light, medium, heavy, large, giant)
float FS_TYPESLOW = 1; // Demon, Dogs, Ogres, Zombies
float FS_TYPEDRAG = 2; // Alt Zombie foot
float FS_TYPELIGHT = 3;
float FS_TYPEMEDIUM = 4;
float FS_TYPEHEAVY = 5; // Death/Hell Knight, Drole, Player, Enforcer
float FS_TYPELARGE = 6; // Minotaur, Shambler
float FS_TYPEGIANT = 7; // Golem
float FS_TYPECUSTOM = 9; // Defined/precached by monster
float FS_FLYING = 10; // Exclusion, no happy feet!
//----------------------------------------------------------------------
// Monster constant values
float MON_MOVEWALK = 1; // Walking Monster
float MON_MOVEFLY = 2; // Flying Monster
float MON_MOVESWIM = 4; // Swiming Monster
float MON_SIGHTSOUND = 10; // Stop repeating sightsounds
float PAIN_ALWAY = 5; // Always go into a pain animation after this time
float MON_VIEWOFS = 24; // Default view ofset for monsters
float MON_ZMOVEMENT = 8; // Z Movement for flying monsters
float MON_ZTOL = 16; // Z movement tolerance for adjustment
string MON_ONFLR = "TRUE"; // Search string for bodies on the floor
float MON_NOGIBVELOCITY = -1; // Gib system will use minimal velocity
float MON_XYGIBVELOCITY = -2; // Gib system will add more XY velocity
float MON_GIBFOUNTAIN = -3; // Gibs fly up and outwards (fountain)
float MON_GIBEXPLOSION = -4; // Gibs fly upwards with force
float MON_NEVERGIB = -300; // Monster can never be gibbed
// Used in AI.QC routine for AI distance checks
float MON_RANGE_MELEE = 120; // Melee range
float MON_RANGE_CLOSE = 192; // Close melee range
float MON_RANGE_WAKEUP = 256; // Sight Wakeup range
float MON_RANGE_NEAR = 500; // Near range
float MON_RANGE_MID = 1000; // Mid range
float MON_MAX_RANGE = 1000; // Max range (realistic)
float MON_STEPRANGE = 100; // Step points for range chance
float MONAI_MDLHEIGHT = 24; // Offset height of monsters from floor
float MONAI_STEPHEIGHT = 16; // Maximum step height
float MONAI_STEPLARGE = 32; // large height distance, flight of steps?
float MONAI_ABOVEMELEE = 120; // Always be high above enemies inside this distance
float MONAI_ABOVEDIST = 128; // Distance to maintain above enemytarget
float MONAI_ABOVETIMER = 2; // Amount of time before changing Z
float MONAI_TURRETMODE = 0.3; // Percentage change of attack in turret mode
float MON_IDLE_SOUND = 0.2; // random chance of idle sound
float MON_IDLE_ANIMATION = 0.2; // random chance of idle animation
//----------------------------------------------------------------------
// Generic options
float MON_AMBUSH = 1; // Ambush (will only wakeup if see the player)
float MON_SPAWN_NOSIGHT = 8; // No wakeup sight sound
float MON_SPAWN_NOIDLE = 16; // no idle sounds (cupboard monster)
float MON_SPAWN_NOGFX = 32; // no spawn effect or sound
float MON_SPAWN_DELAY = 64; // Trigger spawn DELAY
float MON_SPAWN_ANGRY = 128; // Trigger spawn ANGRY
float MON_GHOST_ONLY = 4096; // Design for any ghost like monster
float MON_POINT_KNIGHT = 8192; // Pointy Electricity Knight
//----------------------------------------------------------------------
// Unique options
float MON_HOGRE_METAL = 4; // Metal Skin version +HP
float MON_HOGRE_METUPG = 50; // Extra health for metal upgrade
float MON_OGRE_NAIL = 2; // Fires Nails instead of grenades
float MON_OGRE_GREEN = 4; // Green Skin version +HP
float MON_OGRE_GRNUPG = 50; // Extra health for green upgrade
float MON_FREDDIE_LASER = 2; // Fires laser instead of nails
float MON_SPIDER_LARGE = 2; // Large green spitting version
float MON_SPIDER_CEILING = 4; // Spider starts on the ceiling
float MON_VORELING_LARGE = 2; // Large purple spitting version
float MON_VORELING_CEILING = 4; // Voreling starts on the ceiling
float MON_SWAMPLING_LARGE = 2; // Large Green spitting version
float MON_SWAMPLING_CEILING = 4; // Swampling starts on the ceiling
float MON_GARGOYLE_PERCH = 4; // Start in perched position
float MON_GAUNT_PERCH = 4; // Start in perched position
float MON_BOIL_HANGING = 2; // Hanging on wall upside down by spikes
float MON_BOIL_HOBBLED = 4; // Hobbled on the floor, random A/B position
float MON_SEEK_SHIELD = 4; // Shield mode until triggered
float MON_SENTINEL_NAIL = 4; // Red nail firing sentinels (quoth)
float MON_CHTHON_RED = 2; // New red skin + fire balls
float MON_CHTHON_GREEN = 4; // Green skin + Slime balls
float MON_SHUB_DMGTRIG = 2; // Can be triggered with damage
float MON_SHUB_UPSIDE = 4; // Setup upside (ceiling pose)
float MON_NOUR_BOSS = 2; // Boss version (with waves+minions)
float MON_BOGL_STRONG = 2; // Stronger +HP and skin 2
float MON_DCROSSSNIPER = 2; // No max range limitations for enemies
float MON_DCROSSTRACK = 4; // Enable tracking for crossbow knights
float MON_ELF_MAGIC = 2; // Magic range attack (+HP)
float MON_RAINDEER_DEAD = 2; // Dead body sacrifice
float MON_SANTA_GOOD = 2; // Good Santa with touch trigger
// Underwater enemies (liquid block option for all of them)
float MON_LIQUIDBLOCK = 4; // Liquids block sightlines (fish/eel)
float MON_FISH_SMALL = 2; // Smaller and faster fish!
// Minion spawner options
float MON_MINOTAUR_MINIONS = 4; // Allow the Minotaur to spawn gargoyles
float MON_SHALRATH_MINIONS = 4; // Allow the Shalrath to spawn vorlings
float MON_SKULLWIZ_GUARDIAN = 2; // Special version guarding the runes
float MON_SKULLWIZ_MINIONS = 4; // Allow the Skull Wizard to spawn skulls
float MON_WRAITH_SCORPIONS = 2; // Allow the wraith to spawn scorpions
float MON_WRAITH_SPIDERS = 4; // Allow the wraith to spawn spiders
float MON_JIM_ROCKET = 4; // Rocket version of Jim the Robot
float MON_SCORPION_STINGER = 4; // Black stinger scorpion (debuff)
float MON_TARBYLESSJUMP = 4; // Will not constantly jump around
float MON_WIZARD_ABOVE = 4; // Wizard will float above enemy
float MON_GOLEM_MELEEONLY = 4; // Golems only do melee + stomp
// Statue/Zombie options
float MON_CRUCIFIED = 2; // Zombies - start in crucified position
float MON_STATUE = 2; // Will start frozen with stone skin
float MON_NOTFROZEN = 4; // Will not start frozen (works with statues)
float MON_ONFLOOR = 4; // Zombies - start lying on the floor
// Zombie hacks
float MON_ZOMCRUCIFIED = 1; // Zombies - crucified
float MON_ZOMBAMBUSH = 2; // Zombies - Ambush (ID hack)
float MON_ZOMIDHACK = 3; // Used to switch ID hack around
//----------------------------------------------------------------------
// Player
float RANGE_PLAYAXE = 72; // Distance for fire axe (player)
float RANGE_CHOPAXE = 64; // Player distance to chop up bodies
float DAMAGE_PLAYAXE1 = 20; // Default axe damage
float DAMAGE_PLAYAXE2 = 35; // Enhanced axe damage
//----------------------------------------------------------------------
// Weapon damage and parameters
float SPEED_PLAYAIM = 10000; // Player auto aim distance
float SPEED_PLAYERSG = 2000; // Player speed for SG
float SPEED_PLAYERSSG = 1500; // Player speed for SSG/Upgrade
float SPEED_MONSG = 800; // Monster speed for SG
float SPEED_MONSGMULT = 150; // 800=easy, 950=normal, 1100=hard, 1250=nm
float QUANTITY_SG = 6; // SG - Shotgun
float QUANTITY_SSG = 14; // SSG - Super Shotgun
float QUANTITY_WM = 21; // WM - Widow Maker
float QUANTITY_GRUNT = 4; // Soldier
float QUANTITY_DEFENDER = 10; // Defender
vector SPREAD_SG = '0.04 0.04 0'; // Narrow and square spread
vector SPREAD_SG2 = '0.01 0.01 0'; // Sharpshooter version
vector SPREAD_SSG = '0.14 0.08 0'; // Wide and short SSG spread
vector SPREAD_SSG2 = '0.04 0.04 0'; // Sharpshooter version
vector SPREAD_GRUNT = '0.1 0.1 0'; // Solider version (very narrow)
vector SPREAD_DEF = '0.18 0.1 0'; // Defender version (really wide)
float DAMAGE_SHELL = 4; // Single Shotgun Shell (hitscan)
float DAMAGE_PSHELL = 4; // Single Shotgun Shell (projectile)
float DAMAGE_PTSHELL = 4; // Dead center tracer shell (proj only)
float LIFE_SHELLS = 6; // Lifetime before being removed
float SPEED_PLAYSPIKE = 1000; // Player speed for Spikes
float SPEED_TRAPSPIKE = 500; // Trap shooters
float SPEED_HKSPIKE = 200; // Hell Knight (def=300)
float SPEED_HKSKILL = 50; // 200=easy, 250=normal, 300=hard, 350=nm
float SPEED_WIZSPIKE = 500; // Wizards (def=600)
float SPEED_WIZSKILL = 50; // 500=easy, 550=normal, 600=hard, 650=nm
float SPEED_SPIDER = 600; // Large Spiders (acid spit)
float SPEED_VORELING = 600; // Large Voreling (purple spit)
float SPEED_SWAMPLING = 600; // Large Swamping (poison spit)
float SPEED_BLORD = 600; // Boglord (acid spit)
float SPEED_ELF = 600; // Dark Elf (snowballs)
float SPEED_LAVABALL = 250; // Boss Lava balls
float SPEED_LAVASKILL = 50; // Lava ball skill upgrade
float SPEED_RLPLAYER = 1000; // Player rocket speed
float SPEED_PLAYGRENADE = 600; // Player speed for Grenades
float SPEED_MONGRENADE = 500; // Ogre grenade speed (org 600)
float SPEED_MONGLSKILL = 50; // 500=easy, 550=normal, 600=hard, 650=nm
float SPEED_ZOMBFLESH = 550; // Zombie flesh speed (org 600)
float SPEED_ZOMBIESKILL = 25; // 550=easy, 575=normal, 600=hard, 625=nm
float SPEED_PLAYPLASMA = 900; // Player speed for Plasma
float SPEED_REFLECTION = 600; // Reflection speed for Plasma/Lightning
float SPEED_LASER = 600; // Enforcer laser speed
float SPEED_PLASMA = 600; // Eliminator plasma speed
float SPEED_JIMPROJ = 575; // Crazy flying jim robot laz0r/rockets!?
float SPEED_JIMPROJSKILL = 75; // 575=easy, 650=normal, 725=hard, nm=800
float SPEED_SENTPROJ = 575; // Crazy flying jim robot laz0r/rockets!?
float SPEED_SENTPROJSKILL = 75; // 575=easy, 650=normal, 725=hard, nm=800
float SPEED_DGQFB = 700; // Chainmail Hell Knight from Quoth
float SPEED_DGQFBSKILL = 100; // 700=easy, 800=normal, 900=hard, nm=1000
float SPEED_SEEKROCK = 575; // Large UV ugly robot from rrp
float SPEED_SEEKROCKSKILL = 75; // 575=easy, 650=normal, 725=hard, nm=800
float SPEED_SEEKLAZ = 400; // Base speed of Laser attacks
float SPEED_SEEKLAZSKILL = 225; // 400=easy, 625=normal, 850=hard, 1075=nm
float SPEED_RAINDROCK = 575; // Mobile xmas meat wagaon
float SPEED_RAINDROCKSKILL = 75; // 575=easy, 650=normal, 725=hard, nm=800
float SPEED_DFURYSPIKE = 400; // Base speed of Fury attack A/B
float SPEED_DFURYSKILL = 225; // 400=easy, 625=normal, 850=hard, 1075=nm
float SPEED_DLORDMISSILE = 650; // Death lord ball attack
float SPEED_DLORDSKILL = 100; // 550=easy, 650=normal, 750=hard, 850=nm
float MONAI_DLORDMAX = 30; // Maximum amount of projectiles to fire
float SPEED_NOURSPIKE = 600; // Base speed of Nour attack A/B
float SPEED_NOURSKILL = 200; // 600=easy, 800=normal, 1000=hard, 1200=nm
float SPEED_NOURBOMB = 600; // Grenade bounce speed (no skill change)
float SPEED_GARGMISSILE = 500; // Gargoyle fireball attack
float SPEED_GARGSKILL = 150; // 500=easy, 650=normal, 800=hard, 950=nm
float SPEED_SWIZMISSILE = 525; // Skull wizard SKULL attack
float SPEED_SWIZSKILL = 75; // 525=easy, 600=normal, 675=hard, 750=nm
float DAMAGE_SWIZPOISON = 30; // Direct damage from Poison Rocket
float SPEED_MINOBOLT = 500; // Minotaur plasma bolt speed
float SPEED_MINOSKILL = 150; // 500=easy, 650=normal, 800=hard, 950=nm
float SPEED_GAUNTBOLT = 500; // Gaunt plasma bolt speed
float SPEED_GAUNTSKILL = 150; // 500=easy, 650=normal, 800=hard, 950=nm
float SPEED_EELBOLT = 300; // Eel plasma bolt speed
float SPEED_EELSKILL = 100; // 300=easy, 400=normal, 500=hard, 600=nm
float SPEED_SANTAPROJ = 600; // Santa snowball attack
float SPEED_SANTASKILL = 200; // 600=easy, 800=normal, 1000=hard, 1200=nm
float MONAI_SANTAMAX = 30; // Maximum amount of projectiles to fire
float SPEED_FREDDIEPROJ = 500; // Freddie spike/laser bolt speed
float SPEED_FREDDIESKILL = 150; // 500=easy, 650=normal, 800=hard, 950=nm
float SPEED_NAILOGREPROJ = 500; // Nail Ogre spike speed
float SPEED_NAILOGRESKILL = 150; // 500=easy, 650=normal, 800=hard, 950=nm
float SPEED_NAILSNOWMPROJ = 500; // Snowman Nail spike speed
float SPEED_NAILSNOWMSKILL = 150; // 500=easy, 650=normal, 800=hard, 950=nm
float SPEED_SHALMISSILE = 200; // Shalrath intial speed of homing missile
float SPEED_SHALSKILL = 25; // 200=easy, 225=normal, 250=hard, 275=nm
float SPEED_SERGMISSILE = 200; // Death Sergeant homing missile initial speed
float SPEED_SERGSKILL = 20; // 200=easy, 220=normal, 240=hard, 260=nm
float SPEED_SCORPTAIL = 400; // Scorpion Tail Swipe (large arc infront)
float SPEED_SCORPSKILL = 100; // 400=easy, 500=normal, 600=hard, 700=nm
float SPEED_GOLEMSPIKE = 400; // Base speed of Golem Rock storm attacks
float SPEED_GOLEMSKILL = 225; // 400=easy, 625=normal, 850=hard, 1075=nm
float SPEED_EIDOROCK = 400; // Base speed of Eidolon boulder attack
float SPEED_EIDOSKILL = 150; // 400=easy, 550=normal, 700=hard, 850=nm
float SPEED_EIDOSPIKE = 400; // Base speed of Eidolon rock storm attacks
float SPEED_EIDOSKILLSP = 225; // 400=easy, 625=normal, 850=hard, 1075=nm
float SPEED_ICEGSHARD = 600; // Base speed for Ice Golem Shard attack
float SPEED_ICEGSKILL = 200; // 600=easy, 800=normal, 1000=hard, 1200=nm
float SPEED_BLORDBALL = 400; // Base speed of Bog Lord melee balls
float SPEED_BLORDSKILL = 225; // 400=easy, 625=normal, 850=hard, 1075=nm
float SPEED_BLORDBOLT = 600; // Base speed of Bog Lord bolts
// 600=easy, 825=normal, 1025=hard, 1275=nm
float LIFE_PROJECTILE = 6; // Lifetime before being removed
float LIFE_ROCKET = 5; // Disappear in a puff of smoke!
float LIFE_GRENADE = 2.5; // Bounce, bounce, explode
float LIFE_EGG = 1.5; // Very quick egg hatch!
float LIFE_FLESH = 2.5; // Life of zombie flesh
float DAMAGE_NGREFSPIKE = 4; // Reflected Spike for NG
float DAMAGE_NGSPIKE = 9; // Single Spike for NG
float DAMAGE_SNGSPIKE = 18; // Single Spike for SNG
float DAMAGE_PLAYGRENADE = 120; // Direct damage from player grenade
float DAMAGE_MONGRENADE = 40; // Toned down grenade damage
float DAMAGE_MONROCKET = 40; // Toned down rocket damage
float ELEV_ZAXIS = 200; // Standard default Z axis adjustment
float ELEV_DEFAULT = 30; // Zaware default elevation if range too far
vector ELEV_VIEW_OFS = '0 0 12'; // Zaware target adjustment
vector ELEV_SPID_OFS = '0 0 -16'; // Hit low
vector DAMAGE_RLPLAYER = '100 20 120'; // Base + Random, Splash
vector DAMAGE_RLFURY = '20 0 20'; // Fury rockets - Equal Direct/Radius
vector DAMAGE_RLGARG = '20 10 30'; // Gargoyle rocket, very weak dmg
vector DAMAGE_RLSKULLW = '30 10 20'; // Skull wizard, high direct, low splash
vector DAMAGE_RLWRAITH = '100 20 0'; // Wraith hitscan bolt against monsters
vector DAMAGE_RLDROLE = '40 10 80'; // High splash damage, low direct
vector DAMAGE_RLARMY = '25 5 45'; // Weak direct, high splash
vector DAMAGE_RLJIM2 = '25 15 25'; // Weak direct, med splash
vector DAMAGE_RLDGUARDQ = '25 0 40'; // Weak direct, high splash
vector DAMAGE_RLSEEKER = '25 15 25'; // Weak direct, med splash
vector DAMAGE_RLRAINDEER = '20 0 20'; // Weak direct, low splash
vector DAMAGE_RLFIRETOP = '70 0 20'; // High direct, low splash
vector DAMAGE_RLEIDO = '25 15 25'; // Eidolon Rock - med damage
vector DAMAGE_RLICEG = '20 0 20'; // Ice Golem shard - fury damage
vector DAMAGE_RLBLORD = '20 10 30'; // Bog Lord Slime - High Splashdamage
float DAMAGE_RLKILLZOM = 60; // Direct Damage to kill zombie
vector DAMAGE_PLASMA = '15 5 20'; // Default plasma (very high)
vector DAMAGE_PGPLAYER = '45 0 20'; // Player plasma (very high)
vector DAMAGE_PGREFLECT = '15 0 0'; // Plasma reflection (very low)
vector DAMAGE_PGMINOTAUR = '10 5 10'; // Lower damage for minotaur
vector DAMAGE_PGGAUNT = '10 5 10'; // Lower damage for gaunt
vector DAMAGE_PGNOUR = '10 0 0'; // Direct damage only
float DAMAGE_LGPLAYER = 30; // Player Lightning gun (per 0.1s)
float DAMAGE_LASER = 15; // Lasers! (traps AND enforcers)
float DAMAGE_BOGLORD = 20; // Very high and fast damage
float DAMAGE_BOBLASER = 5; // Weak laser (x + random()*x) 5-10dmg
float DAMAGE_FLESH = 10; // Flesh from zombies
float DAMAGE_ZOMBIECLASS = 120; // Instant death to any zombie class
float SPEED_WRAITHBONE = 400; // Wraith Nail Storm (large arc infront)
float SPEED_WBONESKILL = 100; // 400=easy, 500=normal, 600=hard, 700=nm
float DAMGE_WRAITHBOLT = 10; // Biosuit protection from debuff, base dmg
float DAMAGE_PYROWRAITH = 20; // Damage from Wraith flame bolt
float DAMAGE_WRAITH = 120; // Explosive damage from wraiths (org=80)
float SPEED_PYROFLAME = 250; // Base speed of flames
float SPEED_PYROSKILL = 50; // 250=easy, 300=normal, 350=hard, 400=nm
float DAMAGE_PYROFLAME = 4; // Damage from each pyro flame
float DAMAGE_MONFLAME = 20; // Damage to any monster
float DAMAGE_FUMPOISON = 2; // Damage from each fumigator burst
// Both crossbow and fury projectiles need to cap at 1100 for NM skill
// Otherwise they are close to impossible to avoid due to spread pattern
float SPEED_DCROSS = 500; // Base speed of projectile bolts
float SPEED_BOLTSKILL = 200; // 500=easy, 700=normal, 900=hard, 1100=nm
float DAMAGE_BOLT0 = 5; // Bolt damge against crossbow knights only
float DAMAGE_BOLT1 = 15; // High damage hot red bolts!
float DAMAGE_TARBABY = 120; // Explosive damage from tarbies
float DAMAGE_BOIL = 75; // Explosive damage from boil
float DAMAGE_NOUR = 50; // Explosive damage from Nouronihar
float DAMAGE_SEEKER = 50; // Explosive damage from seeker
float DAMAGE_FREDDIE = 40; // Explosive damage from Freddie
float DAMAGE_RAINDEER = 20; // Explosive damage from raindeer
float DAMAGE_SNOWMAN = 40; // Explosive damage from Snowman
float SPEED_LOSTSTART = 400; // Initial charging speed
float SPEED_LOSTCHARGE = 50; // Charging speed multiplier
float SPEED_LOSTMAX = 800; // Charging Maximum speed
float DAMAGE_LOSTSOUL = 40; // Explosive damage from lost soul
float DAMAGE_LOSTCHARGE = 10; // Charging damage for lost soul
//----------------------------------------------------------------------
// Generic melee/jump attack distances
float MONAI_MELEEFRONT = 70; // Front attacks reach further (original = 60)
float MONAI_MELEESIDE = 60; // Side attacks less distance
float MONAI_MELEEZAXIS = 48; // Z axis range for melee attack
float MONAI_CHARGEZAXIS = 20; // Maximum height for knight charge attack
float MONAI_RANGESUMMON = 128; // High close to block summoning minion
// Various monsters
float MONAI_MELEEKNIGHT = 80; // Knight and DKnight sword range
float MONAI_MELEEOGRE = 100; // Ogre chainsaw got a long range
float MONAI_MELEEBLUNTOGRE = 120; // Ogre hammer/mace very long range
float MONAI_MELEEOGREHAM = 250; // Ogre Special Hammer with knockback
float MONAI_MELEESHAM = 100; // Shambler smash claw attack range
float MONAI_SHAMRANGE = 600; // Range of Shambler lightning
float MONAI_MELEEGUG = 170; // Really long arm reach attack range
float MONAI_BOGLORDMELEE = 200; // over arm slime ball attack
float MONAI_BOGLORDRANGE = 400; // Inside range for intense melee
float MONAI_MELEESPAWN = 80; // Jump in-the-face range
float MONAI_MELEEFISH = 60; // Distance for fish bite
float MONAI_RANGEARMYR = 64; // Too close range for army rocket
float MONAI_RANGEDEFSSG = 100; // Close range for SSG Defender
float MONAI_RANGEPYRO = 80; // Pyro flame melee range
float MONAI_RANGEDEFGL = 256; // Far range for GL Defender
float MONAI_GARGHEIGHT = 96; // Try to maintain this height above enemies
float MONAI_MELEEDROLE1 = 90; // Long arm reach on drole claws
float MONAI_MELEEDROLE2 = 150; // Inside range for a second claw swipe
float MONAI_RANGEDROLE = 300; // pre-rage distance to maintain
float MONAI_MELEEFREDDIE = 100; // Ogre Freddie blade got a long range
float MONAI_RANGEFREDDIE = 300; // Inside range for stand and fire
float MONAI_MELEEMINOTAUR = 100; // Large long range minotaur claws
float MONAI_RANGEMINOTAUR = 300; // pre-rage distance to maintain
float MONAI_RANGESHAL = 400; // Distance to keep minion spawners at
float MONAI_RANGESHAL2 = 300; // Too close, move away from enemy
float MONAI_MELEESKULLW = 192; // Too close, teleport away
float MONAI_RANGESKULLW = 256; // Distance to be after teleport
float MONAI_MELEEGOLEM = 100; // Golem punch/pound attack range
float MONAI_GOLEMRANGE = 200; // How close for golem stomp attack
float MONAI_LOSTTIMER = 15; // How long a lost soul will stay lost
float MONAI_MELEEBOIL = 80; // Exploding boil trigger range
float MONAI_HOBBLEBOIL = 120; // Exploding range for hobble version
float MONAI_MELEEDGUARDQ = 100; // Long range for Death Guard swing
float MONAI_CHARGEDGARDQ1 = 140; // Min range for charge attack
float MONAI_CHARGEDGARDQ2 = 190; // Max range for charge attack
float MONAI_RANGEDGARDQ = 300; // Max range for fireball attack
float MONAI_RANGEDLORD = 200; // Range for switching magic attacks
float MONAI_JUMPTIMEOUT = 2; // Time between jumps
float MONAI_RUNPAUSE = 128; // If enemy this close, stop pause and run!
// Dog
float MONAI_MELEEDOG = 80; // Distance for dog bite
float MONAI_JUMPDOGNEAR = 80; // DOG Jump attack distance ranges
float MONAI_JUMPDOGFAR = 150;
// Spider / Voreling / Swampling / Scorpion / Lost Soul
float MONAI_MELEESPIDER = 60; // Distance for spider bite
float MONAI_JUMPSPIDERNEAR = 80; // SPIDER Jump attack ranges
float MONAI_JUMPSPIDERFAR = 200;
float MONAI_JUMPSPIDERDIST = 400; // Forward distance modifier
float MONAI_MELEEVORELING = 60; // Distance for voreling bite
float MONAI_JUMPVORELINGNEAR = 80; // VORELING Jump attack ranges
float MONAI_JUMPVORELINGFAR = 200;
float MONAI_JUMPVORELINGDIST = 500; // Forward distance modifier
float MONAI_MELEESWAMPLING = 60; // Distance for swampling bite
float MONAI_JUMPSWAMPLINGNEAR = 80; // SWAMPLING Jump attack ranges
float MONAI_JUMPSWAMPLINGFAR = 200;
float MONAI_JUMPSWAMPLINGDIST = 500;// Forward distance modifier
float MONAI_MELEELOSTSOUL = 80; // Distance for Lost Soul bite
float MONAI_RANGELOSTNEAR = 200; // Too close for charge attack
float MONAI_RANGELOSTFAR = 400; // Too far for charge attack
// Scorpions
float MONAI_JUMPSCORPTIME = 1; // Special timer for scorpion
float MONAI_MELEESCORPION = 80; // Distance for scorpion claws
float MONAI_JUMPSCORPNEAR = 80; // SCORPION Jump attack ranges
float MONAI_JUMPSCORPFAR = 300; // long jump distance!
// Demon1
float MONAI_MELEEDEMON = 80; // Distance for demon claws
float MONAI_JUMPDEMONNEAR = 100; // DEMON Jump attack distance ranges
float MONAI_JUMPDEMONFAR = 200;
float MONAI_JUMPDEMONCHECK = 128; // Ceiling height check for jumping demons
// Zombie Knight
float MONAI_JUMPZOMBTIME = 2; // Time before next jump attack
float MONAI_JUMPZKNEAR = 100; // Near range for a zombie knight jump
float MONAI_JUMPZKFAR = 160; // Far range for zombie knight
// Sergeant
float MONAI_JUMPSERGTIME = 2; // Time before next jump attack
float MONAI_JUMPSERGNEAR = 100; // SERG jump attack distance
float MONAI_JUMPSERGFAR = 250;
float MONAI_CHARGEFLAIL = 350; // Flail Knight charging distance
// Fury Knight
float MONAI_JUMPFURYTIME = 2; // Time before next jump attack
float MONAI_JUMPFURYNEAR = 150; // FURY jump attack distance
float MONAI_JUMPFURYFAR = 350;
// Minotaur
float MONAI_JUMPMINOTIME = 2; // Time before next jump attack
float MONAI_JUMPMINONEAR = 150; // MINOTAUR jump attack distance
float MONAI_JUMPMINOFAR = 300;
// Seeker
float MONAI_MELEESEEKER = 80; // Long arm reach on Seeker
float MONAI_MELRAGESEEKER = 150; // Range for melee attack
float MONAI_RANGESWSEEKER = 300; // Switch between rockets and lasers
// Skull wizard starting state
float MONAI_SKULLWSOLID = 1; // Regular spawn state
float MONAI_SKULLWINVIS = 2; // Invisible
// Hunter Ogre - Chainsaw
float MONAI_JUMPHOGRETIME = 5; // Time before next jump attack
float MONAI_JUMPHOGRENEAR = 200; // Hunter Ogre jump attack distance
float MONAI_JUMPHOGREFAR = 300;
// Xmas monsters
float MONAI_MELEERAINDEER = 80; // Medium range attack
float MONAI_MELEEELF = 60; // Distance for elf melee
float MONAI_JUMPELFNEAR = 80; // ELF Jump attack ranges
float MONAI_JUMPELFFAR = 200; // (Based on spiders)
float MONAI_JUMPELFDIST = 400; // Forward distance modifier
float MONAI_MELEESNOWMAN = 80; // Standing still attack
float MONAI_MELEESANTA = 100; // Large Sack attack
// Shockwave floor attacks
vector MONAI_STOMPIMPACT = '12 8 -22';
float MONAI_STOMPDAMAGE = 30; // Impact damage
float MONAI_STOMPRADIUS = 512; // Radius of foot stomp attack
float MONAI_STOMPFORWARD = 300; // Forward momentum
float MONAI_STOMPUP = 600; // Vertical momentum
vector MONAI_HAMMERIMPACT = '56 0 -22';
float MONAI_HAMMERDAMAGE = 30; // Impaxct damage
float MONAI_HAMMERRADIUS = 512; // Radius of hammer slam attack
float MONAI_HAMMERFORWARD = 300; // Forward momentum
float MONAI_HAMMERUP = 500; // Vertical momentum
float MONAI_IMPACTZAXIS = 128; // Above/below limit on affect
// Boss Nour
float MONAI_MELEENOUR = 192; // Always attack player
float MONAI_CLOSENOUR = 400; // Close distance spit/bomb
float MONAI_MAXNOUR = 325; // Maximum tether range
// Boss Eidolon
float MONAI_SPAWNEIDO = 80; // Close to spawn location
float MONAI_CLOSEEIDO = 192; // Always attack player
float MONAI_MEDIUMEIDO = 384; // Good distance for boulder
float MONAI_MAXEIDO = 448; // Maximum tether range
// Boss Ice Golem
float MONAI_MELEEICEG = 128; // Always attack with melee
float MONAI_MAXICEG = 400; // Maximum tether range
float MONAI_STOMPICEG = 400; // How close for stomp attack
float MONAI_STOMPICERADIUS = 640; // Radius of foot stomp attack
//======================================================================
// Unique Class Groups for quicker searches (mostly items)
// Previous system used classname (slow string search)
//======================================================================
float CG_PLAYERS = 50; // All player/clients
float CG_HEALTH = 100; // All health pack types (15/25/+100)
float CG_AMMOITEM = 200; // All ammo items/packs
float CG_PROJALL = 205; // All monster projectiles
float CG_PROJSHELLS = 210; // To help with combining shell damage
float CG_PROJNAILS = 220; // Testing ammo resistance in t_damage
float CG_PROJROCKETS = 230;
float CG_PROJCELLS = 240;
float CG_MINIONEGG = 245; // Special minion eggs
float CG_WEAPON = 250; // All weapon items
float CG_ARMOR = 275; // All armor types
float CG_KEY = 300; // All keys (gold/silver/custom)
float CG_RUNE = 310; // All runes 1-4
float CG_ARTIFACT = 350; // All powerups
float CG_TRAPS = 400; // Endless supply of traps!
float CG_MISCENT = 410; // All misc entity types
float CG_TEMPENT = 420; // All temporary types (gibs, smoke, sparks)
float CG_BREAKABLE = 430; // All breakable types
float CG_FUNCMOVER = 450; // All FUNC movers
float CG_MONSTERS = 500; // Default
//----------------------------------------------------------------------
// Useful for infighting grouping checks
//----------------------------------------------------------------------
float CG_ARMY = 600; // (4) Shotgun, Rocket Launcher and Plasma
float CG_ENFORCER = 610; // (5) Standard, Grenade and Flame, Pyro, Centurion
float CG_DEMON = 615; // (3) Demon, Drole, Minotaur, Boglord
float CG_DOG = 620; // (1) Dog
float CG_FISH = 625; // (2) Fish
float CG_ROBOT = 630; // (2) Jim, Laser/Rocket, Seeker
float CG_KNIGHT = 635; // (3) Knight, Death Guard and Crossbow
float CG_DKNIGHT = 637; // (2) Hell and Death Knight
float CG_DCAPTAIN = 640; // (2) Fury, Sergeant Captains
float CG_STONE = 645; // (4) Boss Eidolon, Statues and Golem
float CG_OGRE = 650; // (4) Vanilla and Hunter (Chainsaw, Mace, Hammer), Freddie
float CG_SPIDER = 660; // (4) Shalrath, Vorling, Wraith, Spider
float CG_SHAM = 666; // (1) Shambler
float CG_SPAWN = 670; // (2) Blue/Green, Boil
float CG_WIZARD = 675; // (6) Wizard, Gargoyle, Gaunt, Skull Wizard, Skull, Nour
float CG_XMAS = 680; // (3) Elf, Raindeer, Snowman, Santa
float CG_ZOMBIE = 685; // (3) Zombie, Knight, Mummy
float CG_BOSS = 690; // (3) Cthon, Old one
//======================================================================
// Unique Class Types for quicker entity searches
// Previous system used classname (slow string search)
//======================================================================
float CT_WORLD = 1; // World entity
float CT_PLAYER = 7; // Player (007)
float CT_SPAWNSP = 10; // Spawn location - Single Player
float CT_SPAWNCOOP = 11; // Spawn location - Coop
float CT_SPAWNDM = 12; // Spawn location - Deathmatch
float CT_CONTROL = 15; // Controller entity
float CT_CAMERA = 16; // Camera entity (info_intermission)
float CT_LIGHT = 20; // Light entity
float CT_SOUNDEMITTER = 22; // Sound emitter
float CT_DEVMARKER = 24; // Developer model marker
float CT_PATHCORNER = 26; // Standard path nodes
float CT_ENEMYTARGET = 30; // Target enemy for flying enemies
float CT_ATTACHMENT = 32; // Attachment for entities
float CT_ESTATE = 34; // Entity state modifier
float CT_MAPVAR = 35; // Map Variable logic
float CT_PARTICLE = 40; // A particle
float CT_PARTICLEEMIT = 41; // A particle emitter
float CT_PARTICLECONT = 42; // Particle controller (setup particle banks)
float CT_PARTICLETEMP = 45; // Particle emitter template
float CT_TEMPGIB = 50; // Temporary entity (gib)
float CT_TEMPSPARK = 52; // Temporary entity (spark)
float CT_TEMPSTREAM = 54; // Temporary entity (stream)
float CT_REFLECTLIGHT = 55; // Reflection entity (Lightning)
float CT_REFLECTPLASMA = 56; // Reflection entity (Plasma)
float CT_STORYCONTROL = 60; // Controller for story system
float CT_STORYBOOK = 62; // Story book for the player
float CT_STORYCHAPTER = 64; // Story chapter for story system
float CT_TARGETDUMMY = 90; // Misc target dummy
float CT_TARGETNUMBER = 95; // Misc number drawn ingame
//----------------------------------------------------------------------
// Class Types for all monsters
//----------------------------------------------------------------------
float CT_MONARMY = 100; // Army Soldier
float CT_MONENFORCER = 110; // Enforcer
float CT_MONDEMON = 115; // 2 clawed fiend
float CT_MONDOG = 120; // 4 legged friend
float CT_MONFISH = 125; // Fish fish fishy
float CT_MONHELLK = 130; // Strong spikey Knights
float CT_MONKNIGHT = 140; // Small metal Knights
float CT_MONOGRE = 150; // Chainsaw wielding manics
float CT_MONOGREFISH = 155; // Madfox fishing ogre
float CT_MONSHAL = 160; // Shalrath / Vore
float CT_MONSHAM = 165; // Shambler
float CT_MONBOGLORD = 166; // Lord of the Bog! (Big shammy)
float CT_MONSPAWN = 170; // Bouncing annoying shit!
float CT_MONWIZARD = 180; // Wizard / Scrags
float CT_CACHEWIZARD = 181; // Special entity for precache of assets
float CT_MINIONWIZARD = 182; // Minion Spawning version for Nour Boss
float CT_MONZOMBIE = 185; // Rotten flesh
float CT_MONIDCHTHON = 190; // ID Software Chthon
float CT_MONXXCHTHON = 191; // Mapper Custom Chthon
float CT_MONFIRETOP = 192; // Firetop Mountain Chthon
float CT_MONIDSHUB = 195; // ID Software Shub-Niggurath
float CT_MONXXSHUB = 196; // Mapper Custom Shub-Niggurath
// New Medieval series (lunaran)
float CT_MONZOMBIEK = 186; // Undead Knights
float CT_MONNOUR = 197; // Nour Boss
// New (death) Knight series (sock/necros)
float CT_MONDGUARD = 200; // HD Knight (Guard)
float CT_MONDCROSS = 205; // HD Knight (Crossbow)
float CT_MONDFURY = 210; // HD Knight (Fury)
float CT_MONDBLOOD = 215; // HD Hell Knight (Blood)
float CT_MONDKNIGHT = 220; // HD Hell Knight (Death)
float CT_MONDSERG = 225; // HD Hell Knight (Sergeant)
float CT_MONCOMM = 230; // HD Hell Knight (Commander)
// New (hunter) Ogre series (sock/necros)
float CT_MONHOGRE = 250; // HD Ogre (Chainsaw)
float CT_MONHOGREMAC = 255; // HD Ogre (Mace)
float CT_MONHOGREHAM = 260; // HD Ogre (Hammer)
// New base monster series (Inspired by lunaran/Quoth)
float CT_MONARMYROCKET = 270; // Army Soldier (Rocket)
float CT_MONARMYGRENADE = 272; // Army Soldier (Grenade)
float CT_MONARMYPLASMA = 275; // Army Soldier (Plasma)
float CT_MONDEFENDER = 280; // Enforcer SSG/GL (Defender)
float CT_MONELIMATOR = 285; // Enforcer Plasma (Eliminator)
// Hexen 2 series (Raven Software)
float CT_MONSPIDER = 300; // Spiders (brown/green versions)
float CT_CACHESPIDER = 302; // Special entity for precache of assets
float CT_MINIONSPIDER = 304; // Minion Spawning version from wraith
float CT_MONSCORPION = 310; // Deadly Scorpion (HL Black Crab!)
float CT_CACHESCORPION = 312; // Special entity for precache of assets
float CT_MINIONSCORPION = 314; // Minion Spawning version from wraith
float CT_MONLOSTSOUL = 315; // The Original Doom flying lost soul
float CT_CACHELOSTSOUL = 317; // Special entity for precache of assets
float CT_MINIONLOSTSOUL = 319; // Minion Spawning version from skullwizard
float CT_MONSKULLW = 320; // Creepy Skull Wizard (Teleport)
float CT_MONGARGOYLE = 325; // Flying Gargoyle (Flying fireball)
float CT_CACHEGARGOYLE = 327; // Special entity for precache of assets
float CT_MINIONGARGOYLE = 329; // Minion Spawning version from minotaur
float CT_MONGOLEM = 330; // Giant stone Golem (ground slam)
float CT_MONICEGOLEM = 335; // Giant Ice Golem (shards+ground slam)
float CT_MONICEGOLEMWAVE = 337; // Wave targets for boss Ice Golem
float CT_MONMINOTAUR = 340; // Large tank like bull (magic/charge)
float CT_MONEIDOLON = 345; // Large demon boss Eidolon
float CT_MONEIDOLONWAVE = 347; // Wave targets for boss Eidolon
// Quake Expansion Packs (Rogue Software)
float CT_MONWRAITH = 350; // Undead wraith (Burning debuff)
float CT_MONMUMMY = 355; // Undead mummy (Poison debuff)
float CT_MONEEL = 357; // Plasma bolt spewing eel
// RMQ MOD(Ijed/?)
float CT_MONBOIL = 360; // Slow moving zombie bomb
float CT_MONSEEKER = 362; // Robot replacement for Shambler
// Twisted Xmas MOD (Twisted Matrix)
float CT_MONELF = 365; // Little melee (knight)
float CT_MONRAINDEER = 366; // Rocket wielding stag (ogre)
float CT_MONSNOWMAN = 367; // Quick firing turret
float CT_MONSANTA = 369; // Good/bad santa (boss)
// Quoth MOD (Kell/Necros/Preach)
float CT_MONVORELING = 370; // Little baby vorelings! ahh so cute!
float CT_CACHEVORELING = 372; // Special entity for precache of assets
float CT_MINIONVORELING = 374; // Minion Spawning version from shalrath
float CT_MONSWAMPLING = 375; // Tiny swamplings! ahh so cute!
float CT_MONDGUARDQ = 376; // Special Hell Knight with fireball
float CT_MONDLORD = 377; // Special Hell Knight with shield
float CT_MONDROLE = 380; // Fast moving tentacle tank with rockets
float CT_MONGUG = 381; // Large hulking bile spewing nightmare
float CT_MONFREDDIE = 383; // Slow moving mechanical ogre mutant
float CT_MONGAUNT = 384; // Flying harpy thing with plasma bolts!
float CT_MONJIM = 385; // Jim the flying robot of doom!
float CT_MONJIMROCKET = 386; // Jim has a rocket launcher!
float CT_MONSENTINEL = 387; // Fleshy robot Sentry
// Rubicon series (metlslime)
float CT_MONPYRO = 390; // Enforcer Flame (Pyro)
float CT_MONFUMIGATOR = 392; // Poison version of the Pyro
float CT_MONCENTURION = 395; // Enforcer hoverboard (Plasma)
//----------------------------------------------------------------------
// Class Types for all projectiles in game (there is a lot!)
//----------------------------------------------------------------------
float CT_PROJ_TRACE = 400; // Tracer shot (true aim)
float CT_PROJ_TRACEPART = 402; // Tracer shot (extra particles)
float CT_PROJ_SHELLC = 405; // Shellcase projectile
float CT_PROJ_SG = 410; // SG projectile
float CT_PROJ_SSG = 412; // SSG projectile
float CT_PROJ_NG = 415; // NG projectile
float CT_PROJ_SNG = 416; // SNG projectile
float CT_PROJ_MONNG = 417; // NG monster projectile (glowing red)
float CT_PROJ_REFNG = 418; // Reflected (glowing red)
float CT_PROJ_HKN = 419; // Hell Knight Spike
float CT_PROJ_WBONE = 420; // Wraith Bone Bolt (nail)
float CT_PROJ_GROCK = 421; // Golem rock debris (pebble)
float CT_PROJ_SCORP = 422; // Scorpion Tail (nail)
float CT_PROJ_DLORD = 423; // Death Lord spike ball
float CT_PROJ_SANTA = 424; // Santa Snowball shotgun!
float CT_PROJ_WIZ = 425; // Wizard Spit
float CT_PROJ_NOUR1 = 426; // Nour Spit
float CT_PROJ_MPOISON = 427; // Minotaur Poison Bolt (nail)
float CT_PROJ_FURY2 = 429; // Fury Spit with grenade trail
float CT_PROJ_PLASMA = 430; // Generic Plasma (blue laser version)
float CT_PROJ_WBOLT = 440; // Wraith Hitscan Bolt
float CT_PROJ_BOLT1 = 442; // Crossbow Knight Bolt +hknight trail
float CT_PROJ_LASER = 445; // Enforcer/Traps/Bob Laser
float CT_PROJ_BLBOLT = 448; // Boglord fast bolt (green)
float CT_PROJ_BLBOLT2 = 449; // Boglord fast bolt (red)
float CT_PROJ_GL = 450; // Grenade projectile
float CT_PROJ_GLMON = 452; // Monster grenades
float CT_PROJ_MEGG = 455; // Minion Egg (grenade arc+bounce)
float CT_PROJ_FLESH = 460; // Zombie Flesh (grenade arc)
float CT_PROJ_SPID = 461; // Spider Spit (grenade arc)
float CT_PROJ_VORE = 462; // Voreling Spit (grenade arc)
float CT_PROJ_SWAMP = 463; // Swampling Spit (grenade arc)
float CT_PROJ_ELF = 464; // Elf snowball (grenade arc)
float CT_PROJ_NOUR2 = 467; // Nour Spit bomb! (grenade arc+bounce)
float CT_PROJ_CHTHON2 = 468; // Chthon Frenzy (grenade arc)
float CT_PROJ_SHUB2 = 469; // Shub Frenzy (grenade arc)
float CT_PROJ_ROCKET = 470; // Rocket projectile
float CT_PROJ_LAVA = 471; // Chthon Lavaball
float CT_PROJ_FIRETOP = 472; // Chthon Lavaball (less splash dmg)
float CT_PROJ_CHTHON = 473; // Custom Chthon Lava/Slime ball
float CT_PROJ_GARG = 475; // Gargoyle fireball
float CT_PROJ_SKULLW = 477; // Skull Wizard Skull (rocket)
float CT_PROJ_FURY1 = 480; // Fury Knight spike ball +rocket trail
float CT_PROJ_ARMY = 482; // Army rocket
float CT_PROJ_JIM2 = 483; // Jim robot rocket
float CT_PROJ_SEEKER = 484; // Seeker robot rocket
float CT_PROJ_DROLE = 485; // Drole fireball
float CT_PROJ_DGUARDQ = 486; // Death Guard (Quoth) fireball
float CT_PROJ_BLORD = 487; // Bog Lord Green Slime bomb
float CT_PROJ_BLORD2 = 488; // Bog Lord Red Slime bomb
float CT_PROJ_EIDO1 = 490; // Eidolon boulder
float CT_PROJ_ICEG1 = 492; // Ice Golem ice shard
float CT_PROJ_RAINDEER = 494; // Raindeer rocket
float CT_PROJ_SHAL = 495; // Shalrath spike ball +purple trail
float CT_PROJ_SERG = 496; // Death Sergeant spike ball +hknight trail
float CT_PROJ_SHUB1 = 497; // Custom Shub homing spike attack
//----------------------------------------------------------------------
float CT_UPGRADE_AXE = 500; // Shadow Axe
float CT_SHOTGUN = 505; // Shotgun
float CT_SUPER_SHOTGUN = 510; // Super Shotgun
float CT_UPGRADE_SSG = 515; // The Widowmaker Shotgun
float CT_NAILGUN = 520; // Nailgun
float CT_SUPER_NAILGUN = 525; // Super Nailgun
float CT_GRENADE_LAUNCHER = 530;// Grenade Launcher
float CT_ROCKET_LAUNCHER = 535; // Rocket Launcher
float CT_LIGHTNING = 540; // Lightning Gun
float CT_UPGRADE_LG = 545; // Plasma Gun
float CT_ARTSUIT = 550; // Environment suit
float CT_ARTPENT = 555; // Pentagram - Invulnerability
float CT_ARTINVS = 560; // Ring of Shadows
float CT_ARTQUAD = 565; // Quad Damage
float CT_ARTSHARP = 570; // Sharp Shooter
float CT_ARTPIERCE = 575; // Nail Piercer
float CT_ARTWETSUIT = 580; // Wet Suit
float CT_ARTTOME = 590; // Tome of Power
float CT_SILVERKEY = 600; // Silver key
float CT_GOLDKEY = 605; // Gold key
float CT_CUSTOMKEY = 610; // Custom key
float CT_CUSTOMITEM = 615; // Custom pickup item
float CT_RUNEKEY = 620; // End of Level rune keys 1-4
float CT_SPIKESHOOTER = 650; // Trap SPIKE shooter
float CT_GRENADESHOOTER = 652; // Trap GRENADE shooter
float CT_ROCKETSHOOTER = 654; // Trap ROCKET shooter
float CT_LIGHTSHOOTER = 656; // Trap LIGHTNING shooter
float CT_GASSHOOTER = 658; // Trap GAS shooter
float CT_EXPLO_BOX = 660; // Exploding box
float CT_PENDULUM = 662; // Swing Pendulum
float CT_SAWBLADE = 666; // Saw Blade
float CT_FIREBALL = 670; // Misc Fireball
float CT_MISCSPARK = 672; // Misc Spark
float CT_MISCSHAKE = 676; // Misc Shake of screen/player
float CT_MISCDRIP = 680; // Misc Drip (water)
float CT_BUBBLE = 682; // Bubbles
float CT_MISCMODEL = 690; // Misc Model
float CT_MISCSMOKE = 692; // Misc Smoke
//----------------------------------------------------------------------
float CT_AMMOPACK = 700; // Ammo Backpacks
float CT_AMMORANDOM = 702; // Random Ammo Backpack
float CT_AMMOSHELLS = 710; // Different ammo types
float CT_AMMONAILS = 720;
float CT_AMMOROCKETS = 730;
float CT_AMMOCELLS = 740;
float CT_HEALROT = 750; // Different Health packs
float CT_HEALNORM = 755;
float CT_HEALMEGA = 760;
float CT_ARMOR1 = 770; // Green armour
float CT_ARMOR2 = 775; // Yellow armour
float CT_ARMORINV = 790; // Red armour
float ARMOR_BLUE = 2; // Display a blue armour
//----------------------------------------------------------------------
float CT_FUNCDOOR = 800; // Func door
float CT_FUNCDOORTRIG = 801; // Generated touch trigger around door
float CT_FUNCSECDOOR = 805; // Func SECRET door
float CT_FUNCBUTTON = 810; // Func button
float CT_FUNCPSWITCH = 812; // Func Pressure Switch
float CT_FUNCINSVOLUME = 813; // Func to detect inside volume
float CT_FUNCBOB = 815; // Func bobbing bmodels
float CT_FUNCTRAIN = 820; // Func train
float CT_FUNCWALL = 830; // Func wall
float CT_FUNCILLUSIONARY = 832; // Func illusionary
float CT_FUNCLASER = 834; // Func laser
float CT_FUNCSKILL = 836; // Func_skill pillars
float CT_FUNCBREAK = 840; // Func breakable (parent)
float CT_FUNCBREAKWALL = 842; // Bmodel to activate after breakage
float CT_FUNCBREAKMDL = 845; // Func breakable (model)
float CT_FUNCBREAKSPN = 846; // Func breakable (spawner)
float CT_FUNCBREAKOBJ = 847; // Func breakable (rubble))
float CT_FUNCPUSHABLE = 850; // Func pushable
float CT_FUNCEPISODEGATE = 875; // Episode gates (not used anymore)
float CT_FUNCBOSSGATE = 880; // Final boss gate (not used anymore)
float CT_FUNCPLAT = 890; // Old platform system
float CT_FUNCLIFT = 895; // New platform system
//----------------------------------------------------------------------
float CT_TRIGONCE = 900; // Once, volume
float CT_TRIGMULTI = 905; // Multiple, volume
float CT_TRIGRELAY = 910; // Relay, point entity no touch
float CT_TRIGRELAYDELAY = 912; // Relay, used in SUBS for delays
float CT_TRIGDOORSTATE = 914; // Set func_door to specific state
float CT_TRIGCOUNT = 920; // Count, point entity no touch
float CR_TRIGENG = 922; // Engine, point entity no touch
float CT_TRIGRUNES = 925; // Rune, volume
float CT_TRIGSKILLS = 927; // Skill, volume
float CT_TRIGTELEPORT = 930; // Trigger teleport
float CT_MISCTELEPORT = 932; // info_teleport_destination
float CT_SKULLTELEPORT = 934; // info_skullwiz_destination
float CT_TRIGEXPLODE = 945; // Trigger sprite explosion
float CT_TRIGSECRET = 950; // Secret, volume
float CT_TRIGLADDER = 955; // Ladder, volume
float CT_TRIGFOG = 957; // Fog, volume
float CT_TRIGHURT = 960; // Hurt, volume
float CT_TRIGHEAL = 962; // Heal, volume
float CT_TRIGGIVEITEM = 964; // Give items, volume
float CT_TRIGTSOUND = 968; // Touch sounds, volume
float CT_TRIGPUSH = 970; // Push, volume
float CT_TRIGCONVEYOR = 972; // Conveyor, volume
float CT_TRIGLEVEL = 975; // Change level
float CT_TRIGSKYBOX = 976; // Change/Load Skybox console command
float CT_TRIGITEMFLAG = 977; // Change item spawnflags
float CT_TRIGCLMSG = 978; // Message to all clients
float CT_TRIGCDTRACK = 979; // Change CD track
float CT_TRIGMONJUMP = 980; // Triger monster to jump forward
float CT_TRIGNOJUMP = 981; // Trigger monster to NOT jump!
float CT_TRIGMONDROP = 982; // Trigger monster to fall naturally
float CT_TRIGMONTURRET = 985; // Trigger monster to turn into turret
float CT_TRIGMONMOVE = 987; // Trigger monster movement state
float CT_TRIGMONBREAK = 990; // Trigger monster/breakable together
float CT_TRIGMONKILL = 992; // Trigger monster to be killed
float CT_TRIGMONATT = 996; // Trigger monster to attack something
float CT_TRIGVOID = 999; // Skybox garbage collector!
//----------------------------------------------------------------------
float AMMO_MAXSHELLS = 200; // Maximum ammo the player can carry
float AMMO_MAXNAILS = 200; // Shells use to be 100
float AMMO_MAXROCKETS = 100;
float AMMO_MAXCELLS = 100;
float AMMO_SHELLS_SML = 20; // Ammo quantities for small / large boxes
float AMMO_SHELLS_LGR = 40; // and from weapon pickups
float AMMO_SHELLS_WPN = 5;
float AMMO_NAILS_SML = 25;
float AMMO_NAILS_LGR = 50;
float AMMO_NAILS_WPN = 30; // Both Nailgun and Super
float AMMO_ROCKETS_SML = 5;
float AMMO_ROCKETS_LGR = 10;
float AMMO_ROCKETS_WPN = 5; // Both Rocket and Grenade launcher
float AMMO_CELLS_SML = 6;
float AMMO_CELLS_LGR = 12;
float AMMO_CELLS_WPN = 15;
//----------------------------------------------------------------------
float ARMOR_GRN_TYPE = 0.3; // Armour damage reduction and quantity
float ARMOR_GRN_VALUE = 100;
float ARMOR_YEL_TYPE = 0.6;
float ARMOR_YEL_VALUE = 150;
float ARMOR_RED_TYPE = 0.8;
float ARMOR_RED_VALUE = 200;
//----------------------------------------------------------------------
float HEAL_ROT = 15; // Health packs
float HEAL_NORM = 25;
float HEAL_MEGA = 100; // How much extra health to add
float HEAL_PLAYMAX = 100; // Maximum player health (default)
float HEAL_MEGAMAX = 250; // Maximum health (several megahealths)
//----------------------------------------------------------------------
// Required here because of link to particle emitters
float MISCBOOK_GREEN = 1; // Green Cover
float MISCBOOK_BLUE = 2; // Blue Cover
float MISCBOOK_RED = 3; // Red Cover
//----------------------------------------------------------------------
string SOUND_EMPTY = "misc/null.wav"; // No sound
string MODEL_EMPTY = "progs/misc_empty.mdl"; // Empty Model (1 point)
string MODEL_BROKEN = "progs/misc_broken.mdl"; // Model error
string MODEL_IMPACT = "progs/misc_impact.mdl"; // Impact Model Marker
string MODEL_CORNER1 = "progs/misc_corner1.mdl";// Path corner helper (Forward)
string MODEL_CORNER2 = "progs/misc_corner2.mdl";// Path corner helper (Backward)
string MODEL_BACKPACK = "progs/w_backpack.mdl"; // HD backpack
string MODEL_PLAYER = "progs/player.mdl";
string MODEL_PLAYER_HEAD = "progs/h_player.mdl";
string MODEL_PLAYER_EYES = "progs/eyes.mdl";
string SOUND_HEAL15 = "items/r_item1.wav"; // pickup sound for rotten health
string SOUND_HEAL25 = "items/health1.wav"; // large health
string SOUND_HEAL100 = "items/r_item2.wav"; // mega health
string SOUND_RESPAWN = "items/itembk2.wav"; // item respawn sound
string SOUND_TALK = "misc/talk.wav"; // Activate/message sound
string SOUND_REXP3 = "weapons/r_exp3b.wav"; // Original explode sound
string SOUND_PLASMA_FIRE = "weapons/plasma_fire.wav"; // Plasma Fire
string SOUND_PLASMA_HIT = "weapons/plasma_hit.wav"; // Plasma Impact
// Resist ammo damage
string SOUND_RESIST_ROCKET = "weapons/resist_rocket.wav";
//----------------------------------------------------------------------
// Projectile models
string MODEL_PROJ_DIAM1 = "progs/proj_diam1.mdl"; // Not used atm
string MODEL_PROJ_DIAM2 = "progs/proj_diam2.mdl";
string MODEL_PROJ_SMOKE = "progs/proj_smoke.mdl";
string MODEL_PROJ_SHELLC = "progs/proj_shellcase.mdl";
string MODEL_PROJ_NG = "progs/proj_ng.mdl";
string MODEL_PROJ_NGRED = "progs/proj_ngred.mdl";
string MODEL_PROJ_SNG = "progs/proj_sng.mdl";
string MODEL_PROJ_GRENADE = "progs/proj_grenade.mdl";
string MODEL_PROJ_GRENADEGRN = "progs/proj_grenadegrn.mdl";
string MODEL_PROJ_RINGSHOCK = "progs/proj_ringshock.mdl";
string MODEL_PROJ_RINGBLAST = "progs/proj_ringblast.mdl";
string MODEL_PROJ_ROCKET = "progs/proj_rocket.mdl";
string MODEL_PROJ_ROCKETGRN = "progs/proj_rocketgrn.mdl";
string MODEL_PROJ_FLESH = "progs/proj_flesh.mdl";
string MODEL_PROJ_FLESHP = "progs/proj_fleshp.mdl";
string MODEL_PROJ_HKN = "progs/proj_dk.mdl";
string MODEL_PROJ_HKNGRN = "progs/proj_dkgrn.mdl";
string MODEL_PROJ_DGUARDQ = "progs/proj_dguardq.mdl";
string MODEL_PROJ_SERG = "progs/proj_serg.mdl";
string MODEL_PROJ_FURY1 = "progs/proj_fury1.mdl";
string MODEL_PROJ_FURY2 = "progs/proj_fury2.mdl";
string MODEL_PROJ_DLORD1 = "progs/proj_dlord1.mdl";
string MODEL_PROJ_NOUR1 = "progs/proj_nour1.mdl";
string MODEL_PROJ_NOUR2B = "progs/proj_nour2b.mdl";
string MODEL_PROJ_NOUR2P = "progs/proj_nour2p.mdl";
string MODEL_PROJ_NOUR2S = "progs/proj_nour2s.mdl";
string MODEL_PROJ_NOUR3 = "progs/proj_nour3.mdl";
string MODEL_PROJ_BLORD1B = "progs/proj_blord1b.mdl";
string MODEL_PROJ_BLORD1S = "progs/proj_blord1s.mdl";
string MODEL_PROJ_BLORDBOLT1 = "progs/proj_blordbolt1.mdl";
string MODEL_PROJ_BLORDBEAM1 = "progs/proj_blordbeam1.mdl";
string MODEL_PROJ_BLORD2B = "progs/proj_blord2b.mdl";
string MODEL_PROJ_BLORD2S = "progs/proj_blord2s.mdl";
string MODEL_PROJ_BLORDBOLT2 = "progs/proj_blordbolt2.mdl";
string MODEL_PROJ_BLORDBEAM2 = "progs/proj_blordbeam2.mdl";
string MODEL_PROJ_SHAMLIT = "progs/proj_shamlit.mdl";
string MODEL_PROJ_WIZ = "progs/proj_wiz.mdl";
string MODEL_PROJ_SPID = "progs/proj_spider.mdl";
string MODEL_PROJ_VORE = "progs/proj_voreling.mdl";
string MODEL_PROJ_SWAMP = "progs/proj_swampling.mdl";
string MODEL_PROJ_SHAL = "progs/proj_shal.mdl";
string MODEL_PROJ_SHALGRN = "progs/proj_shalgrn.mdl";
string MODEL_PROJ_SHOME = "progs/proj_shalhome.mdl";
string MODEL_PROJ_SHOMEGRN = "progs/proj_shalhomegrn.mdl";
string MODEL_PROJ_SBALL = "progs/proj_shalball.mdl";
string MODEL_PROJ_SEGG = "progs/proj_shalegg.mdl";
string MODEL_PROJ_SSHELL = "progs/proj_shalshell.mdl";
string MODEL_PROJ_LAVA = "progs/proj_balllava.mdl";
string MODEL_PROJ_SLIME = "progs/proj_ballslime.mdl";
string MODEL_PROJ_DROLE = "progs/proj_drole.mdl";
string MODEL_PROJ_DROLEGRN = "progs/proj_drolegrn.mdl";
string MODEL_PROJ_GUGBOMB = "progs/proj_gugbomb.mdl";
string MODEL_PROJ_GUGFRAG = "progs/proj_gugfrag.mdl";
string MODEL_PROJ_GUGEXPL = "progs/proj_gugexp.spr";
string MODEL_PROJ_LASER = "progs/proj_laz.mdl";
string MODEL_PROJ_LASERGRN = "progs/proj_lazgrn.mdl";
string MODEL_PROJ_LIGHTNING2 = "progs/proj_lightning2.mdl";
string MODEL_PROJ_PLASMA = "progs/proj_plasma.mdl";
string MODEL_PROJ_PLASMAGRN = "progs/proj_plasmagrn.mdl";
string MODEL_PROJ_PGPLASMA = "progs/proj_pgplasma.mdl";
string MODEL_PROJ_GAPLASMA = "progs/proj_gaplasma.mdl";
string MODEL_PROJ_GAPLASMAGRN = "progs/proj_gaplasmagrn.mdl";
string MODEL_PROJ_BOLT1 = "progs/proj_bolt1.mdl";
string MODEL_PROJ_BOLT2 = "progs/proj_bolt2.mdl";
string MODEL_PROJ_BOLT3 = "progs/proj_bolt3.mdl";
string MODEL_PROJ_SWSKULL = "progs/proj_skullwiz.mdl";
string MODEL_PROJ_SWSKULLP = "progs/proj_skullwizp.mdl";
string MODEL_PROJ_SWBALL = "progs/proj_skullball.mdl";
string MODEL_PROJ_GARGBALL = "progs/proj_gargball.mdl";
string MODEL_PROJ_GARGOYLE = "progs/proj_gargoyle.mdl";
string MODEL_PROJ_GARGBALLGRN = "progs/proj_gargballgrn.mdl";
string MODEL_PROJ_GARGOYLEGRN = "progs/proj_gargoylegrn.mdl";
string MODEL_PROJ_WTRAIL = "progs/proj_wraithtrail.mdl";
string MODEL_PROJ_WBALL = "progs/proj_wraithball.mdl";
string MODEL_PROJ_WBONE = "progs/proj_wraithbone.mdl";
string MODEL_PROJ_WPOISON = "progs/proj_wraithpoison.mdl";
string MODEL_PROJ_WEGG = "progs/proj_wraithegg.mdl";
string MODEL_PROJ_WSHELL = "progs/proj_wraithshell.mdl";
string MODEL_PROJ_SCORP = "progs/proj_scorpion.mdl";
string MODEL_PROJ_MBALL = "progs/proj_minoball.mdl";
string MODEL_PROJ_MPLASMA = "progs/proj_minoplasma.mdl";
string MODEL_PROJ_MPOISON = "progs/proj_minopoison.mdl";
string MODEL_PROJ_GROCK1 = "progs/proj_golemrock1.mdl";
string MODEL_PROJ_GROCK2 = "progs/proj_golemrock2.mdl";
string MODEL_PROJ_EIDO1 = "progs/proj_eidolonrock1.mdl";
string MODEL_PROJ_GSHARD = "progs/proj_golemshard.mdl";
string MODEL_PROJ_RAIND = "progs/xmas/proj_rdrocket.mdl";
string MODEL_PROJ_ELF = "progs/xmas/proj_elfsnow.mdl";
string MODEL_PROJ_SNOWBALL = "progs/xmas/proj_snowball.mdl";
string MODEL_PROJ_CHTHON1 = "progs/proj_chthon1.mdl";
string MODEL_PROJ_SHUB1 = "progs/proj_shub1.mdl";
string MODEL_PROJ_SHUB2 = "progs/proj_shub2.mdl";
//----------------------------------------------------------------------
// Sprites
string SEXP_SMALL = "progs/s_exp_small.spr"; // Original ID one
string SEXP_MED = "progs/s_exp_med.spr"; // From Quoth
string SEXP_BIG = "progs/s_exp_big.spr"; // From Quoth
string SEXP_PLASMA_SMALL = "progs/s_exp_plasma_small.spr"; // Kinn/Marcher
string SEXP_PLASMA_BIG = "progs/s_exp_plasma_big.spr"; // Kinn/Marcher
string SEXP_POISON_SMALL = "progs/s_exp_poison_small.spr"; // Kinn/Marcher
string SEXP_POISON_MED = "progs/s_exp_poison_med.spr"; // From Quoth
string SEXP_ELECTRIC = "progs/s_exp_electric.spr"; // From Quoth
string SEXP_ICE_BIG = "progs/s_exp_ice_big.spr"; // From Ne_ruins
string SBURST_FLAME = "progs/s_burst_flame.spr"; // From Rubicon2
string SBURST_FLAMEDP = "progs/s_burst_flamedp.spr"; // DP collision
string SBURST_POISON = "progs/s_burst_poison.spr"; // From Rubicon2
string SBURST_POISONDP = "progs/s_burst_poisondp.spr"; // DP collision
string SBURST_SMOKE = "progs/s_burst_smoke.spr"; // From Rubicon2
string SBURST_STEAM = "progs/s_burst_steam.spr"; // From Rubicon2
string SBUBBLE_DROWN = "progs/s_bubble.spr"; // Original ID one
string SWATER_DRIP = "progs/s_dripblue.spr"; // From RRP/RMQ
string SWATER_SPLASH = "progs/s_dripsplblue.spr"; // From RRP/RMQ
string SBLOOD_DRIP = "progs/s_dripred.spr"; // Re-painted
string SBLOOD_SPLASH = "progs/s_dripsplred.spr";
string SSLIME_DRIP = "progs/s_dripgreen.spr"; // Re-painted
string SSLIME_SPLASH = "progs/s_dripsplgreen.spr";
//----------------------------------------------------------------------
// Sprite types
float EXPLODE_SMALL = 1;
float EXPLODE_MED = 2;
float EXPLODE_BIG = 3;
float EXPLODE_PLASMA_SMALL = 11;
float EXPLODE_PLASMA_MED = 12;
float EXPLODE_PLASMA_BIG = 13;
float EXPLODE_POISON_SMALL = 21;
float EXPLODE_POISON_MED = 22;
float EXPLODE_POISON_BIG = 23;
float EXPLODE_ELECT_SMALL = 31;
float EXPLODE_ELECT_MED = 32;
float EXPLODE_ELECT_BIG = 33;
float EXPLODE_ICE_BIG = 38;
float EXPLODE_BURST_SMOKE = 41;
float EXPLODE_BURST_FLAME = 42;
float EXPLODE_BURST_POISON = 43;
//----------------------------------------------------------------------
// WORLD weapon models (player)
string MODEL_GWEAP_UPAXE = "progs/g_shadaxe.mdl"; // Has all 6 skins
string MODEL_GWEAP_SG = "progs/g_shot1.mdl"; // From Rubicon
string MODEL_GWEAP_SSG = "progs/g_shot2.mdl"; // New Model update
string MODEL_GWEAP_UPSSG = "progs/g_shot3.mdl"; // SSG Upgrade
string MODEL_GWEAP_NG = "progs/g_nail.mdl"; // Remake from me
string MODEL_GWEAP_SNG = "progs/g_nail2.mdl";
string MODEL_GWEAP_GL = "progs/g_rock.mdl";
string MODEL_GWEAP_RL = "progs/g_rock2.mdl";
string MODEL_GWEAP_LG = "progs/g_light.mdl";
string MODEL_GWEAP_UPLG = "progs/g_plasma.mdl"; // LG Upgrade
//string MODEL_GWEAP_ZSSG = "progs/g_zershot.mdl";
// VIEW weapon models (player)
string MODEL_VWEAP_AXE = "progs/v_shadaxe0.mdl"; // Default, no glow
string MODEL_VWEAP_UPAXE = "progs/v_shadaxe3.mdl"; // Axe Upgrade
string MODEL_VWEAP_SG = "progs/v_shot.mdl";
string MODEL_VWEAP_SSG = "progs/v_shot2.mdl";
string MODEL_VWEAP_UPSSG = "progs/v_shot3.mdl"; // SSG Upgrade
string MODEL_VWEAP_NG = "progs/v_nail.mdl";
string MODEL_VWEAP_SNG = "progs/v_nail2.mdl";
string MODEL_VWEAP_GL = "progs/v_rock.mdl";
string MODEL_VWEAP_RL = "progs/v_rock2.mdl";
string MODEL_VWEAP_LG = "progs/v_light.mdl";
string MODEL_VWEAP_UPLG = "progs/v_plasma.mdl"; // LG Upgrade
//string MODEL_VWEAP_ZSSG = "progs/v_zershot.mdl";
//----------------------------------------------------------------------
// Standard ID artifact sounds
string SOUND_ARTSUIT1 = "items/suit.wav"; // Pick up
string SOUND_ARTSUIT2 = "items/suit2.wav"; // Fading
string SOUND_ARTWETS1 = "items/wetsuit.wav"; // Pick up
string SOUND_ARTWETS2 = "items/wetsuit2.wav"; // Fading
string SOUND_ARTWETS3 = "items/wetsuit3.wav"; // In Water
string SOUND_ARTWETS3B = "items/wetsuit3out.wav"; // Out Water
string SOUND_ARTPENT1 = "items/protect.wav"; // Pick up
string SOUND_ARTPENT2 = "items/protect2.wav"; // Fading
string SOUND_ARTPENT3 = "items/protect3.wav"; // Active
string SOUND_ARTINV1 = "items/inv1.wav"; // Pick up
string SOUND_ARTINV2 = "items/inv2.wav"; // Fading
string SOUND_ARTINV3 = "items/inv3.wav"; // Active
string SOUND_ARTQUAD1 = "items/damage.wav"; // Pick up
string SOUND_ARTQUAD2 = "items/damage2.wav"; // Fading
string SOUND_ARTQUAD3 = "items/damage3.wav"; // Active
string SOUND_ARTSHARP1 = "items/sharp.wav"; // Pick up
string SOUND_ARTSHARP2 = "items/sharp2.wav"; // Fading
string SOUND_ARTSHARP3 = "items/sharp3.wav"; // Active
string SOUND_ARTNAILP1 = "items/nailp.wav"; // Pick up
string SOUND_ARTNAILP2 = "items/nailp2.wav"; // Fading
string SOUND_ARTNAILP3 = "items/nailp3.wav"; // Active
//----------------------------------------------------------------------
// DeBuff sounds
string SOUND_HEARTBEAT = "player/heartbeat.wav"; // Fast heartbeat (1s)
//----------------------------------------------------------------------
// Footstep sounds
string SOUND_FS_SLOW1 = "steps/slow1.wav";
string SOUND_FS_SLOW2 = "steps/slow2.wav";
string SOUND_FS_SLOW3 = "steps/slow3.wav";
string SOUND_FS_SLOW4 = "steps/slow4.wav";
string SOUND_FS_SLOW5 = "steps/slow5.wav";
string SOUND_FS_DRAG1 = "steps/drag1.wav";
string SOUND_FS_DRAG2 = "steps/drag2.wav";
string SOUND_FS_DRAG3 = "steps/drag3.wav";
string SOUND_FS_DRAG4 = "steps/drag4.wav";
string SOUND_FS_DRAG5 = "steps/drag5.wav";
string SOUND_FS_LIGHT1 = "steps/light1.wav";
string SOUND_FS_LIGHT2 = "steps/light2.wav";
string SOUND_FS_LIGHT3 = "steps/light3.wav";
string SOUND_FS_LIGHT4 = "steps/light4.wav";
string SOUND_FS_LIGHT5 = "steps/light5.wav";
string SOUND_FS_MEDIUM1 = "steps/medium1.wav";
string SOUND_FS_MEDIUM2 = "steps/medium2.wav";
string SOUND_FS_MEDIUM3 = "steps/medium3.wav";
string SOUND_FS_MEDIUM4 = "steps/medium4.wav";
string SOUND_FS_MEDIUM5 = "steps/medium5.wav";
string SOUND_FS_HEAVY1 = "steps/heavy1.wav";
string SOUND_FS_HEAVY2 = "steps/heavy2.wav";
string SOUND_FS_HEAVY3 = "steps/heavy3.wav";
string SOUND_FS_HEAVY4 = "steps/heavy4.wav";
string SOUND_FS_HEAVY5 = "steps/heavy5.wav";
string SOUND_FS_LARGE1 = "steps/large1.wav";
string SOUND_FS_LARGE2 = "steps/large2.wav";
string SOUND_FS_LARGE3 = "steps/large3.wav";
string SOUND_FS_LARGE4 = "steps/large4.wav";
string SOUND_FS_LARGE5 = "steps/large5.wav";
string SOUND_FS_GIANT1 = "steps/giant1.wav";
string SOUND_FS_GIANT2 = "steps/giant2.wav";
string SOUND_FS_GIANT3 = "steps/giant3.wav";
string SOUND_FS_GIANT4 = "steps/giant4.wav";
string SOUND_FS_GIANT5 = "steps/giant5.wav";
/* For reference only
float SVC_BAD = 0;
float SVC_NOP = 1;
float SVC_DISCONNECT = 2;
float SVC_UPDATESTAT = 3;
float SVC_VERSION = 4;
float SVC_SETVIEW = 5;
float SVC_SOUND = 6;
float SVC_TIME = 7;
float SVC_PRINT = 8;
float SVC_STUFFTEXT = 9;
float SVC_SETANGLE = 10;
float SVC_SERVERINFO = 11;
float SVC_LIGHTSTYLE = 12;
float SVC_UPDATENAME = 13;
float SVC_UPDATEFRAGS = 14;
float SVC_CLIENTDATA = 15;
float SVC_STOPSOUND = 16;
float SVC_UPDATECOLORS = 17;
float SVC_PARTICLE = 18;
float SVC_DAMAGE = 19;
float SVC_SPAWNSTATIC = 20;
float SVC_SPAWNBINARY = 21;
float SVC_SPAWNBASELINE = 22;
float SVC_TEMPENTITY = 23;
float SVC_SETPAUSE = 24;
float SVC_SIGNONNUM = 25;
float SVC_CENTERPRINT = 26;
float SVC_KILLEDMONSTER = 27;
float SVC_FOUNDSECRET = 28;
float SVC_SPAWNSTATICSOUND= 29;
float SVC_INTERMISSION = 30;
float SVC_FINALE = 31;
float SVC_CDTRACK = 32;
float SVC_SELLSCREEN = 33;
float SVC_CUTSCENE = 34;
*/