29 actor.attack_finished_single[0] =
time + 1.2;
30 actor.anim_finished =
time + 1.2;
34 missile.owner = missile.realowner = actor;
37 missile.projectiledeathtype = DEATH_MONSTER_WYVERN.m_id;
38 setsize(missile,
'-6 -6 -6',
'6 6 6');
39 setorigin(missile, actor.origin + actor.view_ofs +
v_forward * 14);
44 missile.avelocity =
'300 300 300';
45 missile.nextthink =
time + 5;
70 Fire_AddDamage(it, own, 5 * MONSTER_SKILLMOD(own), autocvar_g_monster_wyvern_attack_fireball_damagetime, this.projectiledeathtype);
86 Weapon wep = WEP_WYVERN_ATTACK;
89 wep.
wr_think(wep,
this, weaponentity, 1);
101 setanim(actor, actor.anim_shoot,
false,
true,
true);
102 if(actor.animstate_endtime >
time)
103 actor.anim_finished = actor.animstate_endtime;
105 actor.anim_finished =
time + 1.2;
106 actor.attack_finished_single[0] = actor.anim_finished + 0.2;
128 setanim(actor, actor.anim_die2,
true,
false,
false);
135 actor.pain_finished =
time + 0.5;
136 setanim(actor, actor.anim_pain1,
true,
true,
false);
143 setanim(actor, actor.anim_die1,
false,
true,
true);
144 actor.velocity_x = -200 + 400 *
random();
145 actor.velocity_y = -200 + 400 *
random();
146 actor.velocity_z = 100 + 100 *
random();
155 actor.anim_idle =
animfixfps(actor,
'0 1 1', none);
156 actor.anim_walk =
animfixfps(actor,
'1 1 1', none);
157 actor.anim_run =
animfixfps(actor,
'2 1 1', none);
158 actor.anim_pain1 =
animfixfps(actor,
'3 1 2', none);
159 actor.anim_pain2 =
animfixfps(actor,
'4 1 2', none);
160 actor.anim_melee =
animfixfps(actor,
'5 1 5', none);
161 actor.anim_shoot =
animfixfps(actor,
'6 1 5', none);
162 actor.anim_die1 =
animfixfps(actor,
'7 1 0.5', none);
163 actor.anim_die2 =
animfixfps(actor,
'8 1 0.5', none);
188 PAR(_(
"The Wyvern is a flying reptilian monster that glides around hunting for fresh prey."));
189 PAR(_(
"While fragile, the Wyvern is capable of launching deadly fireballs at the player from a distance, inflicting high damage and causing burning."));
IntrusiveList g_bot_dodge
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.
fields which are explicitly/manually set are marked with "M", fields set automatically are marked wit...
virtual void wr_think()
(SERVER) logic to run every frame
const float SOLID_TRIGGER
void CSQCProjectile(entity e, float clientanimate, int type, float docull)
float RadiusDamage(entity inflictor, entity attacker, float coredamage, float edgedamage, float rad, entity cantbe, entity mustbe, float forceintensity, int deathtype,.entity weaponentity, entity directhitentity)
void Send_Effect(entity eff, vector eff_loc, vector eff_vel, int eff_cnt)
ERASEABLE entity IL_PUSH(IntrusiveList this, entity it)
Push to tail.
#define FOREACH_ENTITY_RADIUS(org, dist, cond, body)
vector animfixfps(entity e, vector a, vector b)
void set_movetype(entity this, int mt)
const int MOVETYPE_FLYMISSILE
#define METHOD(cname, name, prototype)
const int PROJECTILE_FIREMINE
#define PROJECTILE_TOUCH(e, t)
IntrusiveList g_projectiles
string W_Sound(string w_snd)
#define SOUND(name, path)
#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_makevectors(entity this, entity targ)
const int MONSTER_ATTACK_MELEE
const int MONSTER_ATTACK_RANGED
#define W_SetupShot_Dir(ent, wepent, s_forward, antilag, recoil, snd, chan, maxdamage, deathtype)
entity weaponentities[MAX_WEAPONSLOTS]
void weapon_thinkf(entity actor,.entity weaponentity, WFRAME fr, float t, void(Weapon thiswep, entity actor,.entity weaponentity, int fire) func)
bool weapon_prepareattack(Weapon thiswep, entity actor,.entity weaponentity, bool secondary, float attacktime)
void w_ready(Weapon thiswep, entity actor,.entity weaponentity, int fire)
float autocvar_g_monster_wyvern_attack_fireball_damage
float autocvar_g_monster_wyvern_health
string autocvar_g_monster_wyvern_loot
float autocvar_g_monster_wyvern_speed_stop
bool M_Wyvern_Attack(int attack_type, entity actor, entity targ,.entity weaponentity)
float autocvar_g_monster_wyvern_attack_fireball_edgedamage
float autocvar_g_monster_wyvern_speed_walk
void M_Wyvern_Attack_Fireball_Touch(entity this, entity toucher)
float autocvar_g_monster_wyvern_speed_run
void M_Wyvern_Attack_Fireball_Explode(entity this)
float autocvar_g_monster_wyvern_damageforcescale
float autocvar_g_monster_wyvern_attack_fireball_force
void M_Wyvern_Attack_Fireball(entity this)
float autocvar_g_monster_wyvern_attack_fireball_radius
float autocvar_g_monster_wyvern_attack_fireball_damagetime
float autocvar_g_monster_wyvern_attack_fireball_speed