73 float anim_chance =
random();
76 if(anim_chance < 0.33)
77 chosen_anim = actor.anim_melee1;
78 else if(anim_chance < 0.66)
79 chosen_anim = actor.anim_melee2;
81 chosen_anim = actor.anim_melee3;
102 if(
time >= actor.spawn_time)
110 actor.pain_finished =
time + 0.34;
111 if(
time >= actor.spawn_time)
112 setanim(actor, ((
random() > 0.5) ? actor.anim_pain1 : actor.anim_pain2),
true,
true,
false);
121 setanim(actor, ((
random() > 0.5) ? actor.anim_die1 : actor.anim_die2),
false,
true,
true);
130 actor.anim_die1 =
animfixfps(actor,
'9 1 0.5', none);
131 actor.anim_die2 =
animfixfps(actor,
'12 1 0.5', none);
132 actor.anim_spawn =
animfixfps(actor,
'30 1 3', none);
133 actor.anim_walk =
animfixfps(actor,
'27 1 1', none);
134 actor.anim_idle =
animfixfps(actor,
'19 1 1', none);
135 actor.anim_pain1 =
animfixfps(actor,
'20 1 2', none);
136 actor.anim_pain2 =
animfixfps(actor,
'22 1 2', none);
137 actor.anim_melee1 =
animfixfps(actor,
'4 1 5', none);
138 actor.anim_melee2 =
animfixfps(actor,
'4 1 5', none);
139 actor.anim_melee3 =
animfixfps(actor,
'4 1 5', none);
140 actor.anim_shoot =
animfixfps(actor,
'0 1 5', none);
141 actor.anim_run =
animfixfps(actor,
'27 1 1', none);
142 actor.anim_blockstart =
animfixfps(actor,
'8 1 1', none);
143 actor.anim_blockend =
animfixfps(actor,
'7 1 1', none);
166 actor.respawntime = 0.2;
167 actor.damageforcescale = 0.0001;
169 setanim(actor, actor.anim_spawn,
false,
true,
true);
170 actor.spawn_time = actor.animstate_endtime;
180 PAR(_(
"Zombies are the undead remains of deceased soldiers, risen with a ravenous hunger and no sense of self-preservation."));
181 PAR(_(
"When a Zombie senses a nearby player it will begin to charge its target at high speeds. "
182 "While charging, a Zombie may leap towards the player, dealing massive damage on contact. "
183 "If it gets close, the Zombie will punch and bite repeatedly."));
184 PAR(_(
"When threatened the Zombie may hold up its hands to block incoming attacks briefly."));
185 PAR(_(
"It is no small task to kill that which is already dead. Once a Zombie is defeated, destroy its corpse to prevent it from rising again!"));
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
float GetResource(entity e, Resource res_type)
Returns the current amount of resource the given entity has.
bool SetResourceExplicit(entity e, Resource res_type, float amount)
Sets the resource amount of an entity without calling any hooks.
float trace_dphitcontents
void Damage(entity targ, entity inflictor, entity attacker, float damage, int deathtype,.entity weaponentity, vector hitloc, vector force)
const int MONSTER_RESPAWN_DEATHPOINT
vector animfixfps(entity e, vector a, vector b)
#define METHOD(cname, name, prototype)
void StatusEffects_apply(StatusEffect this, entity actor, float eff_time, int eff_flags)
#define PAR(...)
Adds an individually translatable paragraph to PAGE_TEXT without having to deal with strcat and sprin...
void Monster_Delay(entity this, int repeat_count, float defer_amnt, void(entity) func)
bool Monster_Spawn(entity this, bool check_appear, Monster mon)
void Monster_Touch(entity this, entity toucher)
bool Monster_Attack_Melee(entity this, entity targ, float damg, vector anim, float er, float animtime, int deathtype, bool dostop)
bool Monster_Attack_Leap(entity this, vector anm, void(entity this, entity toucher) touchfunc, vector vel, float animtime)
const int MONSTERFLAG_NORESPAWN
#define MONSTER_SKILLMOD(mon)
const int MONSTERFLAG_APPEAR
const int MONSTER_ATTACK_MELEE
const int MONSTER_ATTACK_RANGED
float autocvar_g_monsters_armor_blockpercent
float attack_finished_single[MAX_WEAPONSLOTS]
float autocvar_g_monster_zombie_attack_leap_damage
float autocvar_g_monster_zombie_health
void M_Zombie_Attack_Leap_Touch(entity this, entity toucher)
float autocvar_g_monster_zombie_attack_melee_delay
float autocvar_g_monster_zombie_damageforcescale
float autocvar_g_monster_zombie_speed_run
float autocvar_g_monster_zombie_attack_leap_force
float autocvar_g_monster_zombie_attack_leap_delay
float autocvar_g_monster_zombie_speed_stop
float autocvar_g_monster_zombie_attack_melee_damage
bool M_Zombie_Defend_Block(entity this)
void M_Zombie_Defend_Block_End(entity this)
float autocvar_g_monster_zombie_attack_leap_speed
float autocvar_g_monster_zombie_speed_walk
bool M_Zombie_Attack(int attack_type, entity actor, entity targ,.entity weaponentity)
string autocvar_g_monster_zombie_loot