X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fw_seeker.qc;h=9e02e2eca0895d117c8092c27137b8c0b4f329cd;hb=36810e8ddba12c1959bc07e4c80630454c6f85a8;hp=e251ace9b31411a563aaf5d1b0be69b676b26f05;hpb=1aba2a49449e24ff8bcb0e1ea0cefe376308ef95;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/w_seeker.qc b/qcsrc/server/w_seeker.qc index e251ace9b..9e02e2eca 100644 --- a/qcsrc/server/w_seeker.qc +++ b/qcsrc/server/w_seeker.qc @@ -5,6 +5,7 @@ REGISTER_WEAPON(SEEKER, w_seeker, IT_ROCKETS, 8, WEP_FLAG_NORMAL | WEP_TYPE_SPLA //.float proxytime; = autoswitch //.float tl; = wait +// weapon load persistence, for weapons that support reloading .float seeker_load; void W_Seeker_SetAmmoCounter() @@ -494,6 +495,8 @@ void spawnfunc_weapon_seeker (void) float w_seeker(float req) { + float ammo_amount; + if (req == WR_AIM) self.BUTTON_ATCK = bot_aim(autocvar_g_balance_seeker_tag_speed, 0, 20, FALSE); @@ -519,18 +522,6 @@ float w_seeker(float req) weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_seeker_flac_animtime, w_ready); } } - - if(self.wish_reload) - { - if(self.switchweapon == self.weapon) - { - if(self.weaponentity.state == WS_READY) - { - self.wish_reload = 0; - W_Seeker_Reload(); - } - } - } } else if (req == WR_PRECACHE) { @@ -540,6 +531,7 @@ float w_seeker(float req) precache_sound ("weapons/tag_fire.wav"); precache_sound ("weapons/flac_fire.wav"); precache_sound ("weapons/seeker_fire.wav"); + precache_sound ("weapons/reload.wav"); } else if (req == WR_SETUP) { @@ -548,17 +540,20 @@ float w_seeker(float req) } else if (req == WR_CHECKAMMO1) { - if(autocvar_g_balance_seeker_reload_ammo) - return self.clip_load >= autocvar_g_balance_seeker_tag_ammo + autocvar_g_balance_seeker_missile_ammo; - else - return self.ammo_rockets >= autocvar_g_balance_seeker_tag_ammo + autocvar_g_balance_seeker_missile_ammo; + ammo_amount = self.ammo_cells >= autocvar_g_balance_seeker_missile_ammo; + ammo_amount += (autocvar_g_balance_seeker_reload_ammo && self.seeker_load >= autocvar_g_balance_seeker_missile_ammo); + return ammo_amount; } else if (req == WR_CHECKAMMO2) { - if(autocvar_g_balance_seeker_reload_ammo) - return self.clip_load >= autocvar_g_balance_seeker_flac_ammo; - else - return self.ammo_rockets >= autocvar_g_balance_seeker_flac_ammo; + ammo_amount = self.ammo_cells >= autocvar_g_balance_seeker_flac_ammo; + ammo_amount += (autocvar_g_balance_seeker_reload_ammo && self.seeker_load >= autocvar_g_balance_seeker_flac_ammo); + return ammo_amount; + } + else if (req == WR_RESETPLAYER) + { + // all weapons must be fully loaded when we spawn + self.seeker_load = autocvar_g_balance_seeker_reload_ammo; } else if (req == WR_RELOAD) { @@ -636,13 +631,13 @@ float w_seeker(float req) precache_sound("weapons/tag_impact.wav"); } else if (req == WR_SUICIDEMESSAGE) - w_deathtypestring = "%s played with tiny rockets"; + w_deathtypestring = _("%s played with tiny rockets"); else if (req == WR_KILLMESSAGE) { if(w_deathtype & HITTYPE_SECONDARY) - w_deathtypestring = "%s ran into %s's flac"; + w_deathtypestring = _("%s ran into %s's flac"); else - w_deathtypestring = "%s was tagged by %s"; + w_deathtypestring = _("%s was tagged by %s"); } return TRUE; }