From: Mario Date: Sun, 14 Apr 2013 02:00:44 +0000 (+1000) Subject: Fx soldier uzi & shotgun attacks X-Git-Tag: xonotic-v0.8.0~241^2^2~404 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=9d195e815c6f3ea2e0a1bb4290628c554bd15395;p=xonotic%2Fxonotic-data.pk3dir.git Fx soldier uzi & shotgun attacks --- diff --git a/monsters.cfg b/monsters.cfg index bff42f5b8..04a2231bb 100644 --- a/monsters.cfg +++ b/monsters.cfg @@ -98,6 +98,12 @@ set g_monster_soldier_weapon_shotgun_chance 8 "Chance of Grunt weapon being shot set g_monster_soldier_weapon_machinegun_chance 4 "Chance of Grunt weapon being machine gun" set g_monster_soldier_weapon_rocketlauncher_chance 2 "Chance of Grunt weapon being rocket launcher" set g_monster_soldier_attack_uzi_bullets 3 "Number of machine gun bullets Grunt fires" +set g_monster_soldier_attack_uzi_damage 10 "Grunt machine gun damage per bullet" +set g_monster_soldier_attack_uzi_force 5 "Grunt machine gun knockback" +set g_monster_soldier_attack_shotgun_damage 4 "Grunt shotgun per bullet damage" +set g_monster_soldier_attack_shotgun_spread 0.2 "Grunt shotgun bullet spread" +set g_monster_soldier_attack_shotgun_bullets 12 "Grunt shotgun bullets per shot" +set g_monster_soldier_attack_shotgun_force 5 "Grunt shotgun knockback" // Scrag set g_monster_wizard 1 "Enable Scrags" diff --git a/qcsrc/common/deathtypes.qh b/qcsrc/common/deathtypes.qh index d2ed41d02..0e088ea5c 100644 --- a/qcsrc/common/deathtypes.qh +++ b/qcsrc/common/deathtypes.qh @@ -33,8 +33,8 @@ DEATHTYPE(DEATH_MONSTER_SHAMBLER_CLAW, DEATH_SELF_MON_SHAMBLER_CLAW, NO_MSG, NORMAL_POS) \ DEATHTYPE(DEATH_MONSTER_SHAMBLER_SMASH, DEATH_SELF_MON_SHAMBLER_SMASH, NO_MSG, NORMAL_POS) \ DEATHTYPE(DEATH_MONSTER_SHAMBLER_ZAP, DEATH_SELF_MON_SHAMBLER_ZAP, NO_MSG, NORMAL_POS) \ + DEATHTYPE(DEATH_MONSTER_MARINE, DEATH_SELF_MON_MARINE, NO_MSG, NORMAL_POS) \ DEATHTYPE(DEATH_MONSTER_MARINE_SLAP, DEATH_SELF_MON_MARINE_SLAP, NO_MSG, NORMAL_POS) \ - DEATHTYPE(DEATH_MONSTER_MARINE_UZI, DEATH_SELF_MON_MARINE_UZI, NO_MSG, NORMAL_POS) \ DEATHTYPE(DEATH_MONSTER_SPIDER, DEATH_SELF_MON_SPIDER, NO_MSG, NORMAL_POS) \ DEATHTYPE(DEATH_MONSTER_TARBABY, DEATH_SELF_MON_TARBABY, NO_MSG, NORMAL_POS) \ DEATHTYPE(DEATH_MONSTER_SCRAG, DEATH_SELF_MON_SCRAG, NO_MSG, NORMAL_POS) \ diff --git a/qcsrc/common/notifications.qh b/qcsrc/common/notifications.qh index f136d2f92..368123fc7 100644 --- a/qcsrc/common/notifications.qh +++ b/qcsrc/common/notifications.qh @@ -245,7 +245,7 @@ void Send_Notification_WOVA( MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_SHAMBLER_SMASH, 2, 1, "s1 s2loc spree_lost", "s1", "notify_death", _("^BG%s^K1 was smashed by a Shambler%s%s\n"), "") \ MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_SHAMBLER_ZAP, 2, 1, "s1 s2loc spree_lost", "s1", "notify_death", _("^BG%s^K1 was zapped to death by a Shambler%s%s\n"), "") \ MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_MARINE_SLAP, 2, 1, "s1 s2loc spree_lost", "s1", "notify_death", _("^BG%s^K1 was slapped to death by a Marine%s%s\n"), "") \ - MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_MARINE_UZI, 2, 1, "s1 s2loc spree_lost", "s1", "notify_death", _("^BG%s^K1 was gunned down by a Marine%s%s\n"), "") \ + MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_MARINE, 2, 1, "s1 s2loc spree_lost", "s1", "notify_death", _("^BG%s^K1 was gunned down by a Marine%s%s\n"), "") \ MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_SPIDER, 2, 1, "s1 s2loc spree_lost", "s1", "notify_death", _("^BG%s^K1 was bitten by a Spider%s%s\n"), "") \ MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_TARBABY, 2, 1, "s1 s2loc spree_lost", "s1", "notify_death", _("^BG%s^K1 came too close to an exploding Pumpkin%s%s\n"), "") \ MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_SCRAG, 2, 1, "s1 s2loc spree_lost", "s1", "notify_death", _("^BG%s^K1 was cursed by a Scrag%s%s\n"), "") \ @@ -586,7 +586,7 @@ void Send_Notification_WOVA( MSG_MULTI_NOTIF(1, DEATH_SELF_MON_SHAMBLER_SMASH, INFO_DEATH_SELF_MON_SHAMBLER_SMASH, CENTER_DEATH_SELF_MONSTER) \ MSG_MULTI_NOTIF(1, DEATH_SELF_MON_SHAMBLER_ZAP, INFO_DEATH_SELF_MON_SHAMBLER_ZAP, CENTER_DEATH_SELF_MONSTER) \ MSG_MULTI_NOTIF(1, DEATH_SELF_MON_MARINE_SLAP, INFO_DEATH_SELF_MON_MARINE_SLAP, CENTER_DEATH_SELF_MONSTER) \ - MSG_MULTI_NOTIF(1, DEATH_SELF_MON_MARINE_UZI, INFO_DEATH_SELF_MON_MARINE_UZI, CENTER_DEATH_SELF_MONSTER) \ + MSG_MULTI_NOTIF(1, DEATH_SELF_MON_MARINE, INFO_DEATH_SELF_MON_MARINE, CENTER_DEATH_SELF_MONSTER) \ MSG_MULTI_NOTIF(1, DEATH_SELF_MON_SPIDER, INFO_DEATH_SELF_MON_SPIDER, CENTER_DEATH_SELF_MONSTER) \ MSG_MULTI_NOTIF(1, DEATH_SELF_MON_TARBABY, INFO_DEATH_SELF_MON_TARBABY, CENTER_DEATH_SELF_MONSTER) \ MSG_MULTI_NOTIF(1, DEATH_SELF_MON_SCRAG, INFO_DEATH_SELF_MON_SCRAG, CENTER_DEATH_SELF_MONSTER) \ diff --git a/qcsrc/server/monsters/monster/soldier.qc b/qcsrc/server/monsters/monster/soldier.qc index 9be7211d2..ac5f31612 100644 --- a/qcsrc/server/monsters/monster/soldier.qc +++ b/qcsrc/server/monsters/monster/soldier.qc @@ -21,6 +21,12 @@ float autocvar_g_monster_soldier_weapon_shotgun_chance; float autocvar_g_monster_soldier_weapon_machinegun_chance; float autocvar_g_monster_soldier_weapon_rocketlauncher_chance; float autocvar_g_monster_soldier_attack_uzi_bullets; +float autocvar_g_monster_soldier_attack_uzi_damage; +float autocvar_g_monster_soldier_attack_uzi_force; +float autocvar_g_monster_soldier_attack_shotgun_damage; +float autocvar_g_monster_soldier_attack_shotgun_force; +float autocvar_g_monster_soldier_attack_shotgun_spread; +float autocvar_g_monster_soldier_attack_shotgun_bullets; // animations const float soldier_anim_die1 = 0; @@ -89,11 +95,24 @@ void soldier_uzi_fire () self.delay = -1; return; } - W_UZI_Attack(DEATH_MONSTER_MARINE_UZI); + + W_SetupShot (self, autocvar_g_antilag_bullets && 18000 >= autocvar_g_antilag_bullets, 0, "weapons/uzi_fire.wav", CH_WEAPON_A, autocvar_g_monster_soldier_attack_uzi_damage); + fireBallisticBullet(w_shotorg, w_shotdir, 0.02, 18000, 5, autocvar_g_monster_soldier_attack_uzi_damage, autocvar_g_monster_soldier_attack_uzi_force, DEATH_MONSTER_MARINE, 0, 1, 115); + endFireBallisticBullet(); + self.delay = time + 0.1; self.monster_delayedattack = soldier_uzi_fire; } +void soldier_shotgun_fire() +{ + float sc; + W_SetupShot (self, autocvar_g_antilag_bullets && 18000 >= autocvar_g_antilag_bullets, 5, "weapons/shotgun_fire.wav", CH_WEAPON_A, autocvar_g_monster_soldier_attack_shotgun_damage * autocvar_g_monster_soldier_attack_shotgun_bullets); + for (sc = 0;sc < autocvar_g_monster_soldier_attack_shotgun_bullets;sc = sc + 1) + fireBallisticBullet(w_shotorg, w_shotdir, autocvar_g_monster_soldier_attack_shotgun_spread, 18000, 5, autocvar_g_monster_soldier_attack_shotgun_damage, autocvar_g_monster_soldier_attack_shotgun_force, DEATH_MONSTER_MARINE, 0, 1, 115); + endFireBallisticBullet(); +} + float soldier_attack() { monsters_setframe(soldier_anim_shoot); @@ -120,7 +139,7 @@ float soldier_attack() { self.currentammo -= 1; self.attack_finished_single = time + 0.8; - W_Shotgun_Attack(); + soldier_shotgun_fire(); return TRUE; } case WEP_UZI: