434 lines
No EOL
11 KiB
C
434 lines
No EOL
11 KiB
C
#ifndef G_STATS_H
|
|
#define G_STATS_H
|
|
#include "g_ClassStatics.h"
|
|
|
|
extern int AttackRangesForClass [NUM_ATTACKRANGES];
|
|
extern byte MaxBuoysForClass [NUM_CLASSIDS];
|
|
extern int JumpChanceForClass [NUM_CLASSIDS];
|
|
extern vec3_t STDMinsForClass [NUM_CLASSIDS];
|
|
extern vec3_t STDMaxsForClass [NUM_CLASSIDS];
|
|
|
|
typedef struct MonsterShadow_s
|
|
{
|
|
qboolean useShadow;
|
|
float scale;
|
|
} MonsterShadow_t;
|
|
|
|
extern struct MonsterShadow_s G_MonsterShadow[NUM_CLASSIDS];
|
|
|
|
#define ITEM_REWARD_CHANCE 1
|
|
|
|
#define MAX_SIGHT_PLAYER_DIST 1000
|
|
|
|
// ***************************************
|
|
// ** MONSTER SPAWNFLAGS
|
|
// ***************************************
|
|
#define MSF_NONE 0x000000//0-no spawn flags
|
|
#define MSF_AMBUSH 0x000001//1-monster spawn flag AMBUSH
|
|
#define MSF_ASLEEP 0x000002//2-monster spawn flag ASLEEP- will not so anything until used
|
|
|
|
//next three are mutually exclusive, sorry- that's how it was made, would be a pain to change now- should make walking a seperate one from other two...
|
|
#define MSF_WALKING 0x000004//4-monster is walking a beat
|
|
#define MSF_EATING 0x000004//4-monster is eating
|
|
#define MSF_PERCHING 0x000004//4-monster is perched- only harpies and imps
|
|
|
|
// spawnflags 8 - 64 are individual to the monster
|
|
#define MSF_SPECIAL1 0x000008//8
|
|
#define MSF_SPECIAL2 0x000010//16
|
|
#define MSF_SPECIAL3 0x000020//32
|
|
#define MSF_SPECIAL4 0x000040//64
|
|
|
|
#define MSF_FIXED 0x000080//128 - monster will not move, only attack
|
|
|
|
//spawnflags 256 - 4096 used for selective spawning
|
|
//selective spawning control spawnflags for all entities, don't mess with them
|
|
#define MSF_NOT_EASY 0x000100//256
|
|
#define MSF_NOT_MEDIUM 0x000200//512
|
|
#define MSF_NOT_HARD 0x000400//1024
|
|
#define MSF_NOT_COOP 0x000800//2048
|
|
#define MSF_NOT_DEATHMATCH 0x001000//4096
|
|
|
|
//Extra Spawnflags since our creatures are so Freakin awesome!
|
|
//these 4 are for all creatures, annot be per-creature specific
|
|
#define MSF_WANDER 0x002000//8192
|
|
#define MSF_MELEE_LEAD 0x004000//16384
|
|
#define MSF_STALK 0x008000//32768
|
|
#define MSF_COWARD 0x010000//65536
|
|
|
|
//extra spawnflags 128K - 1024K are individual to the monster
|
|
#define MSF_EXTRA1 0x020000//128K
|
|
#define MSF_EXTRA2 0x040000//256K
|
|
#define MSF_EXTRA3 0x080000//512K
|
|
#define MSF_EXTRA4 0x100000//1024K
|
|
|
|
//===================================
|
|
//SPECIAL MONSTER-SPECIFIC SPAWNFLAGS
|
|
//===================================
|
|
//SSITHRA
|
|
#define MSF_SSITHRA_NAMOR 8 //Ssithra will jump out of water when woken up or used
|
|
#define MSF_SSITHRA_SPIN 16 //Ssithra will spin around when woken up or used
|
|
#define MSF_SSITHRA_ALPHA 32 //Tougher ssithra
|
|
#define MSF_SSITHRA_CLOTHED 64 //Clothed, shoot explosive tip proj's
|
|
|
|
//ASSASSIN
|
|
#define MSF_ASS_JUMPAMBUSH 8 //Will jump when awoken
|
|
#define MSF_ASS_NOSHADOW 16 //cannot cloak
|
|
#define MSF_ASS_NOTELEPORT 32 //cannot teleprt
|
|
#define MSF_ASS_CINEMATIC 64 //A cinematic monster
|
|
#define MSF_ASS_TPORTAMBUSH 0x020000//Will spawn in teleport when triggered
|
|
#define MSF_ASS_STARTSHADOW 0x040000 //Assasin starts shadowed and decloaks when woken
|
|
#define MSF_ASS_SIDEJUMPAMBUSH 0x080000//assassin will jump out sideways
|
|
#define MSF_ASS_TELEPORTDODGE 0x100000//assassin will use teleports to dodge
|
|
|
|
//Gorgon
|
|
#define MSF_GORGON_SPEEDY 8
|
|
#define MSF_GORGON_COWARD 64
|
|
|
|
//Plague Elves
|
|
#define MSF_PELF_CINEMATIC 8 //cinematic plague elf
|
|
#define MSF_PELF_MISSILE 16 //Missile-bearing plague elf
|
|
#define MSF_PELF_ONFIRE 32 //Starts on fire, as per request of sick-ass Raffel!
|
|
|
|
//Insects
|
|
#define MSF_INSECT_CINEMATIC 8 //Cinematic insect
|
|
#define MSF_INSECT_BEAST_FODDER 16 //Looks for beasts
|
|
#define MSF_INSECT_YELLOWJACKET 32 //Diff skin and projectile- male
|
|
#define MSF_INSECT_ALTERNATE 32 //Diff tint and projectile- female
|
|
|
|
//Ogles - special cases- have their own spawnflags
|
|
#define OF_PUSHING 1
|
|
#define OF_PICK_UP 4
|
|
#define OF_PICK_DOWN 8
|
|
#define OF_CHISEL_UP 16
|
|
#define OF_CHISEL_DOWN 32
|
|
#define OF_HAMMER_UP 64
|
|
#define OF_HAMMER_DOWN 128
|
|
#define OF_SONG_LEADER 256
|
|
|
|
// ***************************************
|
|
// ** MONSTER STATS
|
|
// ***************************************
|
|
|
|
#define MAX_BLOCKING_THING_HEALTH 100//highest health some blocking ent can be and let a monster still hack away at it to clear it's path
|
|
//**********
|
|
//**ASSASSIN
|
|
//**********
|
|
|
|
#define ASSASSIN_HEALTH 250
|
|
#define ASSASSIN_MASS 180
|
|
#define ASSASSIN_MIN_DAMAGE 7
|
|
#define ASSASSIN_MAX_DAMAGE 13
|
|
#define ASSASSIN_MIN_CLOAK_RANGE 100
|
|
#define ASSASSIN_DAGGER_SPEED 500.0
|
|
#define ASS_TP_OFF 1
|
|
#define ASS_TP_ANY 2
|
|
#define ASS_TP_DEF 3
|
|
|
|
//**********
|
|
//**TRIAL BEAST
|
|
//**********
|
|
|
|
#define TB_HEALTH 7000
|
|
#define TB_MASS 10000
|
|
#define TB_DMG_BITE_MIN 30
|
|
#define TB_DMG_BITE_MAX 50
|
|
#define TB_DMG_IMPACT_MIN 10
|
|
#define TB_DMG_IMPACT_MAX 100
|
|
#define TB_DMG_IMPACT_KB 150
|
|
|
|
|
|
//**********
|
|
//**BEE
|
|
//**********
|
|
|
|
#define BEE_HEALTH 50
|
|
#define BEE_MASS 10
|
|
|
|
|
|
//**********
|
|
//**CHICKEN
|
|
//**********
|
|
|
|
#define CHICKEN_HEALTH 10
|
|
#define CHICKEN_MASS 30
|
|
|
|
|
|
//**********
|
|
//**ELF LORD
|
|
//**********
|
|
|
|
#define ELFLORD_HEALTH 2250
|
|
#define ELFLORD_MASS 2500
|
|
#define ELFLORD_STAR_MIN_DAMAGE 8
|
|
#define ELFLORD_STAR_MAX_DAMAGE 12
|
|
#define ELFLORD_BEAM_MIN_DAMAGE 4
|
|
#define ELFLORD_BEAM_MAX_DAMAGE 8
|
|
|
|
|
|
//**********
|
|
//**FISH
|
|
//**********
|
|
|
|
#define FISH_HEALTH 50
|
|
#define FISH_MASS 120
|
|
#define FISH_DMG_BITE_MIN 5
|
|
#define FISH_DMG_BITE_MAX 10
|
|
|
|
|
|
//**********
|
|
//**GKROKON
|
|
//**********
|
|
|
|
#define GKROKON_HEALTH 75
|
|
#define GKROKON_MASS 60
|
|
#define GKROKON_DMG_SPOO_MIN 4
|
|
#define GKROKON_DMG_SPOO_MAX 8
|
|
#define GKROKON_DMG_BITE_MIN 5
|
|
#define GKROKON_DMG_BITE_MAX 10
|
|
|
|
|
|
|
|
//**********
|
|
//**GORGON
|
|
//**********
|
|
|
|
#define GORGON_HEALTH 100
|
|
#define GORGON_MASS 80
|
|
#define GORGON_SCALE_MIN 0.9
|
|
#define GORGON_SCALE_MAX 1.2
|
|
#define GORGON_DMG_MIN 5 // Note: This is multiplied by the scale of the creature
|
|
#define GORGON_DMG_MAX 10 // Note: This is multiplied by the scale of the creature
|
|
#define GORGON_LEADER_HEALTH 200
|
|
#define GORGON_LEADER_MASS 300
|
|
#define GORGON_ALERT_DIST 500
|
|
#define GORGON_SKIN 0
|
|
#define GORGON_PAIN_SKIN 1
|
|
|
|
//**********
|
|
//**HARPY
|
|
//**********
|
|
|
|
#define HARPY_HEALTH 60
|
|
#define HARPY_MASS 100
|
|
#define HARPY_DMG_MIN 10
|
|
#define HARPY_DMG_MAX 20
|
|
|
|
|
|
|
|
//**********
|
|
//**IMP
|
|
//**********
|
|
|
|
#define IMP_HEALTH 200
|
|
#define IMP_MASS 75
|
|
#define IMP_DMG_MIN 10
|
|
#define IMP_DMG_MAX 20
|
|
|
|
|
|
//**********
|
|
//**MORCALAVIN
|
|
//**********
|
|
|
|
#define MORK_HEALTH1 100
|
|
#define MORK_HEALTH 2500
|
|
#define MORK_MASS 2500
|
|
#define MORK_DMG_BEAM_MIN 10
|
|
#define MORK_DMG_BEAM_MAX 20
|
|
#define MORK_DMG_PROJ1_MIN 2
|
|
#define MORK_DMG_PROJ1_MAX 5
|
|
#define MORK_DMG_PUFF_RADIUS 32
|
|
#define MORK_DMG_PUFF_MAX 128
|
|
#define MORK_DMG_PUFF_MIN 8
|
|
#define MORK_DMG_EYES_MULT 200
|
|
#define MORK_DMG_EYES_MIN 10
|
|
|
|
|
|
//**********
|
|
//**MUTANT SSITHRA
|
|
//**********
|
|
|
|
#define MSSITHRA_HEALTH 2250
|
|
#define MSSITHRA_MASS 2000
|
|
#define MSSITHRA_DMG_MIN 8
|
|
#define MSSITHRA_DMG_MAX 16
|
|
#define MSSITHRA_DMG_SWIPE 40
|
|
#define MSSITHRA_DMG_ARROW_RADIUS 50
|
|
#define MSSITHRA_ARROW_SPEED 600
|
|
|
|
//**********
|
|
//**OGLE
|
|
//**********
|
|
|
|
#define OGLE_HEALTH 100
|
|
#define OGLE_MASS 100
|
|
#define OGLE_DMG_MIN 5
|
|
#define OGLE_DMG_MAX 8
|
|
|
|
|
|
//**********
|
|
//**PLAGUE ELF
|
|
//**********
|
|
|
|
#define PLAGUEELF_HEALTH 50
|
|
#define PLAGUEELF_MASS 150
|
|
#define PLAGUEELF_DMG_MIN 2
|
|
#define PLAGUEELF_DMG_MAX 4
|
|
#define PLAGUEELF_DMG_HOE 1 // Modifiers to the min/max damage
|
|
#define PLAGUEELF_DMG_GAFF 2 // Modifiers to the min/max damage
|
|
#define PLAGUEELF_DMG_HAMMER -1 // Modifiers to the min/max damage
|
|
#define PLAGUEELF_DMG_SPELL_MIN 4
|
|
#define PLAGUEELF_DMG_SPELL_MAX 8
|
|
#define PLAGUEELF_GUARD_DMG_SPELL_MIN 5
|
|
#define PLAGUEELF_GUARD_DMG_SPELL_MAX 10
|
|
#define PALACE_ELF_SKIN 4 //for guards
|
|
#define DYING_ELF_PAIN_VOICE 0
|
|
#define DYING_ELF_IDLE_VOICE 1
|
|
#define DYING_ELF_TOUCH_VOICE 2
|
|
|
|
|
|
//**********
|
|
//**PLAGUE SSITHRA
|
|
//**********
|
|
|
|
#define SSITHRA_HEALTH 125
|
|
#define SSITHRA_MASS 200
|
|
#define SSITHRA_DMG_MIN 6
|
|
#define SSITHRA_DMG_MAX 8
|
|
#define SSITHRA_DMG_ARROW_RADIUS 50
|
|
#define SSITHRA_JUMP_VELOCITY 300.0
|
|
#define SSITHRA_HOP_VELOCITY 128.0
|
|
#define SSITHRA_SPOO_SPEED 450
|
|
#define SSITHRA_BIGARROW_DMG_MIN 16
|
|
#define SSITHRA_BIGARROW_DMG_MAX 24
|
|
|
|
//**********
|
|
//**HIGH PRIESTESS
|
|
//**********
|
|
|
|
#define HP_HEALTH 2500
|
|
#define HP_MASS 2000
|
|
#define HP_DMG_FURY_MIN 3
|
|
#define HP_DMG_FURY_MAX 5
|
|
#define HP_DMG_BROOD_MIN 8
|
|
#define HP_DMG_BROOD_MAX 16
|
|
#define HP_DMG_RAIN 2
|
|
#define HP_DMG_MISSILE_MIN 2
|
|
#define HP_DMG_MISSILE_MAX 4
|
|
#define HP_DMG_FIRE_MIN 2
|
|
#define HP_DMG_FIRE_MAX 4
|
|
|
|
|
|
//**********
|
|
//**RAT
|
|
//**********
|
|
|
|
#define RAT_HEALTH 10
|
|
#define RAT_MASS 10
|
|
#define RAT_DMG_BITE 1
|
|
#define RAT_GROUP_RANGE 150
|
|
|
|
//**********
|
|
//**SERAPH OVERLORD
|
|
//**********
|
|
|
|
#define SERAPH_HEALTH 250
|
|
#define SERAPH_MASS 350
|
|
#define SERAPH_DMG_WHIP 5
|
|
#define SERAPH_DMG_WHIP_RUN 8
|
|
|
|
|
|
//**********
|
|
//**SERAPH GUARD
|
|
//**********
|
|
|
|
#define SGUARD_HEALTH 300
|
|
#define SGUARD_MASS 1000
|
|
#define SGUARD_DMG_AXE 15
|
|
#define SGUARD_DMG_AXE_SPIN 30
|
|
#define SGUARD_DMG_SPELL_MIN 10
|
|
#define SGUARD_DMG_SPELL_MAX 15
|
|
|
|
|
|
//**********
|
|
//**PLAGUE SPREADER
|
|
//**********
|
|
|
|
#define SPREADER_HEALTH 200
|
|
#define SPREADER_MASS 275
|
|
#define SPREADER_DMG_DEATH 1
|
|
#define SPREADER_DMG_DEATH_RAD 30
|
|
#define SPREADER_DMG_RAM 10
|
|
#define SPREADER_DMG_RAM_KB 20
|
|
#define SPREADER_DMG_TAKEOFF 1
|
|
#define SPREADER_DMG_TAKEOFF_RAD 100
|
|
|
|
#define SPREADER_GRENADE_DAMAGE 20
|
|
#define SPREADER_GRENADE_RADIUS (100.0)
|
|
#define SPREADER_GRENADE_TIME (2.9F)
|
|
#define SPREADER_MIST_DAMAGE 1
|
|
#define SPREADER_MIST_RADIUS 40
|
|
#define SPREADER_MIST_GRADIUS 30
|
|
|
|
|
|
//**********
|
|
//**TCHEKRIK
|
|
//**********
|
|
|
|
#define TC_HEALTH_MALE 200
|
|
#define TC_HEALTH_FEMALE 200
|
|
#define MASS_TC_MALE 300
|
|
#define MASS_TC_FEMALE 250
|
|
#define TC_DMG_STAB_MIN 5
|
|
#define TC_DMG_STAB_MAX 15
|
|
#define TC_MALE_DMG_HACK_MIN 15
|
|
#define TC_MALE_DMG_HACK_MAX 25
|
|
#define TC_FEMALE_DMG_HACK_MIN 3
|
|
#define TC_FEMALE_DMG_HACK_MAX 8
|
|
#define TC_DMG_FIREBALL_MIN 3
|
|
#define TC_DMG_FIREBALL_MAX 5
|
|
#define TC_DMG_SPEAR_MIN 1
|
|
#define TC_DMG_SPEAR_MAX 3
|
|
#define TC_DMG_YSPEAR_MIN 6
|
|
#define TC_DMG_YSPEAR_MAX 12
|
|
#define GLOBE_DAMAGE_MIN 10
|
|
#define GLOBE_DAMAGE_RANGE 35
|
|
#define GLOBE_EXPLOSION_RADIUS_MIN 89.0
|
|
#define GLOBE_EXPLOSION_RADIUS_MAX 160.0
|
|
#define INSECT_STAFF_SPEED 100.0
|
|
#define INSECT_STAFF_AIMED_SPEED 750.0
|
|
|
|
//MORCALAVIN EFFECTS
|
|
|
|
enum {
|
|
//offensive
|
|
FX_M_BEAM,
|
|
//impacts
|
|
FX_M_MISC_EXPLODE,
|
|
//other
|
|
FX_IMP_FIRE,
|
|
FX_IMP_FBEXPL,
|
|
FX_CW_STARS,
|
|
FX_BUOY,
|
|
FX_BUOY_PATH,
|
|
FX_M_MOBLUR,
|
|
FX_ASS_DAGGER,
|
|
FX_UNDER_WATER_WAKE,
|
|
|
|
//jweier
|
|
FX_QUAKE_RING,
|
|
FX_GROUND_ATTACK,
|
|
FX_MORK_BEAM,
|
|
FX_MORK_MISSILE,
|
|
FX_MORK_MISSILE_HIT,
|
|
FX_MORK_TRACKING_MISSILE,
|
|
|
|
FX_MSSITHRA_EXPLODE,
|
|
FX_MSSITHRA_ARROW,
|
|
FX_MSSITHRA_ARROW_CHARGE,
|
|
};
|
|
|
|
//MISC globals
|
|
|
|
extern edict_t *give_head_to_harpy;
|
|
extern edict_t *take_head_from;
|
|
#endif // G_STATS_H
|