X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fw_minstanex.qc;h=c464af93a27c07e05ad5493efe0cfcd4b3cb60f8;hb=332b1bfac54491c16e6ef8a806fcc1d5dd768ef6;hp=b66386d50a59229309d6f1409648b895b3e93e68;hpb=616650bb18362024afeed71fed91d33dc1708d09;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/w_minstanex.qc b/qcsrc/server/w_minstanex.qc index b66386d50..c464af93a 100644 --- a/qcsrc/server/w_minstanex.qc +++ b/qcsrc/server/w_minstanex.qc @@ -1,5 +1,5 @@ #ifdef REGISTER_WEAPON -REGISTER_WEAPON(MINSTANEX, w_minstanex, IT_CELLS, 7, WEP_FLAG_HIDDEN | WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_FLAG_SUPERWEAPON | WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_HIGH, "minstanex", "minstanex", _("MinstaNex")) +REGISTER_WEAPON(MINSTANEX, w_minstanex, IT_CELLS, 7, WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_FLAG_SUPERWEAPON | WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_HIGH, "minstanex", "minstanex", _("MinstaNex")) #else #ifdef SVQC .float minstanex_lasthit; @@ -14,7 +14,6 @@ void W_MinstaNex_Attack (void) yoda = 0; damage_goodhits = 0; - headshot = 0; FireRailgunBullet (w_shotorg, w_shotorg + w_shotdir * MAX_SHOT_DISTANCE, 10000, 800, 0, 0, 0, 0, WEP_MINSTANEX); if(g_minstagib) @@ -26,14 +25,10 @@ void W_MinstaNex_Attack (void) { if(yoda && flying) AnnounceTo(self, "yoda"); - if(headshot) - { - AnnounceTo(self, "headshot"); - } if(damage_goodhits && self.minstanex_lasthit) { - if(AnnounceTo(self, "impressive")) - damage_goodhits = 0; // only every second time + AnnounceTo(self, "impressive"); + damage_goodhits = 0; // only every second time } } @@ -48,25 +43,25 @@ void W_MinstaNex_Attack (void) { switch(self.team) { - case COLOR_TEAM1: // Red + case NUM_TEAM_1: // Red if(damage_goodhits) WarpZone_TrailParticles(world, particleeffectnum("TE_TEI_G3RED_HIT"), w_shotorg, v); else WarpZone_TrailParticles(world, particleeffectnum("TE_TEI_G3RED"), w_shotorg, v); break; - case COLOR_TEAM2: // Blue + case NUM_TEAM_2: // Blue if(damage_goodhits) WarpZone_TrailParticles(world, particleeffectnum("TE_TEI_G3BLUE_HIT"), w_shotorg, v); else WarpZone_TrailParticles(world, particleeffectnum("TE_TEI_G3BLUE"), w_shotorg, v); break; - case COLOR_TEAM3: // Yellow + case NUM_TEAM_3: // Yellow if(damage_goodhits) WarpZone_TrailParticles(world, particleeffectnum("TE_TEI_G3YELLOW_HIT"), w_shotorg, v); else WarpZone_TrailParticles(world, particleeffectnum("TE_TEI_G3YELLOW"), w_shotorg, v); break; - case COLOR_TEAM4: // Pink + case NUM_TEAM_4: // Pink if(damage_goodhits) WarpZone_TrailParticles(world, particleeffectnum("TE_TEI_G3PINK_HIT"), w_shotorg, v); else @@ -86,22 +81,25 @@ void W_MinstaNex_Attack (void) .float minstagib_nextthink; .float minstagib_needammo; -void minstagib_stop_countdown(void) +void minstagib_stop_countdown(entity e) { - if (self.minstagib_needammo) - { - self.health = 100; - Send_CSQC_Centerprint_Generic_Expire(self, CPID_MINSTA_FINDAMMO); - } - self.minstagib_needammo = FALSE; + if (!e.minstagib_needammo) + return; + Kill_Notification(NOTIF_ONE_ONLY, e, MSG_CENTER_CPID, CPID_MINSTA_FINDAMMO); + e.minstagib_needammo = FALSE; } void minstagib_ammocheck(void) { if (time < self.minstagib_nextthink) return; - if (self.deadflag || gameover || self.ammo_cells > 0 || (self.items & IT_UNLIMITED_WEAPON_AMMO)) - minstagib_stop_countdown(); + if (self.deadflag || gameover) + minstagib_stop_countdown(self); + else if (self.ammo_cells > 0 || (self.items & IT_UNLIMITED_WEAPON_AMMO)) + { + minstagib_stop_countdown(self); + self.health = 100; + } else { self.minstagib_needammo = TRUE; @@ -152,13 +150,13 @@ void minstagib_ammocheck(void) } else if (self.health == 90) { - Send_CSQC_Centerprint_Generic(self, CPID_MINSTA_FINDAMMO, "^1%d^7 seconds left to find some ammo", 1, 9); + Send_Notification(NOTIF_ONE_ONLY, self, MSG_CENTER, CENTER_MINSTA_FINDAMMO); Damage(self, self, self, 10, DEATH_NOAMMO, self.origin, '0 0 0'); AnnounceTo(self, "9"); } else if (self.health == 100) { - Send_CSQC_Centerprint_Generic(self, CPID_MINSTA_FINDAMMO, "get some ammo or\nyou'll be dead in ^3%d^7 seconds...", 1, 10); + Send_Notification(NOTIF_ONE_ONLY, self, MSG_CENTER, CENTER_MINSTA_FINDAMMO_FIRST); Damage(self, self, self, 10, DEATH_NOAMMO, self.origin, '0 0 0'); if not(self.flags & FL_GODMODE) AnnounceTo(self, "10"); @@ -273,6 +271,14 @@ float w_minstanex(float req) W_Reload(used_ammo, autocvar_g_balance_minstanex_reload_ammo, autocvar_g_balance_minstanex_reload_time, "weapons/reload.wav"); } + else if (req == WR_SUICIDEMESSAGE) + { + return WEAPON_THINKING_WITH_PORTALS; + } + else if (req == WR_KILLMESSAGE) + { + return WEAPON_MINSTANEX_MURDER; + } return TRUE; } #endif @@ -291,10 +297,6 @@ float w_minstanex(float req) { precache_sound("weapons/neximpact.wav"); } - else if (req == WR_SUICIDEMESSAGE) - w_deathtypestring = _("%s is now thinking with portals"); - else if (req == WR_KILLMESSAGE) - w_deathtypestring = _("%s has been vaporized by %s's minstanex"); return TRUE; } #endif