mirror of
https://github.com/yquake2/yquake2remaster.git
synced 2025-02-17 01:21:12 +00:00
parent
03c39f34ae
commit
d137fe863c
3 changed files with 67 additions and 4 deletions
|
@ -325,8 +325,15 @@ mmove_t berserk_move_attack_club =
|
||||||
void
|
void
|
||||||
berserk_strike(edict_t *self)
|
berserk_strike(edict_t *self)
|
||||||
{
|
{
|
||||||
/* Unused, but removal is
|
vec3_t aim;
|
||||||
very PITA. Let it be... */
|
|
||||||
|
if (!self)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
VectorSet(aim, MELEE_DISTANCE, 0, -6);
|
||||||
|
fire_hit(self, aim, (10 + (randk() % 6)), 400); /* Slower attack */
|
||||||
}
|
}
|
||||||
|
|
||||||
static mframe_t berserk_frames_attack_strike[] = {
|
static mframe_t berserk_frames_attack_strike[] = {
|
||||||
|
@ -354,6 +361,50 @@ mmove_t berserk_move_attack_strike =
|
||||||
berserk_run
|
berserk_run
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static void
|
||||||
|
berserk_attack_running_club(edict_t *self)
|
||||||
|
{
|
||||||
|
/* Same as regular club attack */
|
||||||
|
vec3_t aim;
|
||||||
|
|
||||||
|
if (!self)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
VectorSet(aim, MELEE_DISTANCE, self->mins[0], -4);
|
||||||
|
fire_hit(self, aim, (5 + (randk() % 6)), 400); /* Slower attack */
|
||||||
|
}
|
||||||
|
|
||||||
|
static mframe_t berserk_frames_attack_running_club[] = {
|
||||||
|
{ai_charge, 21, NULL},
|
||||||
|
{ai_charge, 11, NULL},
|
||||||
|
{ai_charge, 21, NULL},
|
||||||
|
{ai_charge, 25, NULL},
|
||||||
|
{ai_charge, 18, NULL},
|
||||||
|
{ai_charge, 19, NULL},
|
||||||
|
{ai_charge, 21, NULL},
|
||||||
|
{ai_charge, 11, NULL},
|
||||||
|
{ai_charge, 21, NULL},
|
||||||
|
{ai_charge, 25, NULL},
|
||||||
|
{ai_charge, 18, NULL},
|
||||||
|
{ai_charge, 19, NULL},
|
||||||
|
{ai_charge, 21, NULL},
|
||||||
|
{ai_charge, 11, NULL},
|
||||||
|
{ai_charge, 21, NULL},
|
||||||
|
{ai_charge, 25, berserk_swing},
|
||||||
|
{ai_charge, 18, berserk_attack_running_club},
|
||||||
|
{ai_charge, 19, NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
mmove_t berserk_move_attack_running_club =
|
||||||
|
{
|
||||||
|
FRAME_r_att1,
|
||||||
|
FRAME_r_att18,
|
||||||
|
berserk_frames_attack_running_club,
|
||||||
|
berserk_run
|
||||||
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
berserk_melee(edict_t *self)
|
berserk_melee(edict_t *self)
|
||||||
{
|
{
|
||||||
|
@ -364,14 +415,24 @@ berserk_melee(edict_t *self)
|
||||||
|
|
||||||
monster_done_dodge(self);
|
monster_done_dodge(self);
|
||||||
|
|
||||||
if ((randk() % 2) == 0)
|
const int r = randk() % 4;
|
||||||
|
|
||||||
|
if (r == 0)
|
||||||
{
|
{
|
||||||
self->monsterinfo.currentmove = &berserk_move_attack_spike;
|
self->monsterinfo.currentmove = &berserk_move_attack_spike;
|
||||||
}
|
}
|
||||||
else
|
else if (r == 1)
|
||||||
|
{
|
||||||
|
self->monsterinfo.currentmove = &berserk_move_attack_strike;
|
||||||
|
}
|
||||||
|
else if (r == 2)
|
||||||
{
|
{
|
||||||
self->monsterinfo.currentmove = &berserk_move_attack_club;
|
self->monsterinfo.currentmove = &berserk_move_attack_club;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
self->monsterinfo.currentmove = &berserk_move_attack_running_club;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static mframe_t berserk_frames_pain1[] = {
|
static mframe_t berserk_frames_pain1[] = {
|
||||||
|
|
|
@ -56,6 +56,7 @@ extern mmove_t army_move_pain3;
|
||||||
extern mmove_t army_move_run;
|
extern mmove_t army_move_run;
|
||||||
extern mmove_t army_move_stand;
|
extern mmove_t army_move_stand;
|
||||||
extern mmove_t berserk_move_attack_club;
|
extern mmove_t berserk_move_attack_club;
|
||||||
|
extern mmove_t berserk_move_attack_running_club;
|
||||||
extern mmove_t berserk_move_attack_spike;
|
extern mmove_t berserk_move_attack_spike;
|
||||||
extern mmove_t berserk_move_attack_strike;
|
extern mmove_t berserk_move_attack_strike;
|
||||||
extern mmove_t berserk_move_death1;
|
extern mmove_t berserk_move_death1;
|
||||||
|
|
|
@ -55,6 +55,7 @@
|
||||||
{"army_move_run", &army_move_run},
|
{"army_move_run", &army_move_run},
|
||||||
{"army_move_stand", &army_move_stand},
|
{"army_move_stand", &army_move_stand},
|
||||||
{"berserk_move_attack_club", &berserk_move_attack_club},
|
{"berserk_move_attack_club", &berserk_move_attack_club},
|
||||||
|
{"berserk_move_attack_running_club", &berserk_move_attack_running_club},
|
||||||
{"berserk_move_attack_spike", &berserk_move_attack_spike},
|
{"berserk_move_attack_spike", &berserk_move_attack_spike},
|
||||||
{"berserk_move_attack_strike", &berserk_move_attack_strike},
|
{"berserk_move_attack_strike", &berserk_move_attack_strike},
|
||||||
{"berserk_move_death1", &berserk_move_death1},
|
{"berserk_move_death1", &berserk_move_death1},
|
||||||
|
|
Loading…
Reference in a new issue