X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fassault.qc;h=2a0d8bc5374f456e9f935cc707c48ab3cd1ceb31;hb=85d7b75eec365a4da388894e6ef783d81e5ec688;hp=0d7da73572a3083af09aff6a296b55afbe4fabf2;hpb=83f3093274f9d4886f845964d4ae5763b6c7bb78;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/assault.qc b/qcsrc/server/assault.qc index 0d7da7357..2a0d8bc53 100644 --- a/qcsrc/server/assault.qc +++ b/qcsrc/server/assault.qc @@ -30,9 +30,6 @@ void assault_objective_reset() { } void assault_objective_use() { - if(other.classname == "info_player_deathmatch") // a spawn, a spawn - return; - // activate objective self.health = 100; //print("^2Activated objective ", self.targetname, "=", etos(self), "\n"); @@ -71,7 +68,11 @@ void assault_objective_decrease_use() { } if(other.assault_sprite) + { WaypointSprite_Disown(other.assault_sprite, waypointsprite_deadlifetime); + if(other.classname == "func_assault_destructible") + other.sprite = world; + } else return; // already activated! cannot activate again! @@ -148,18 +149,26 @@ void target_objective_decrease_activate() for(ent = world; (ent = find(ent, target, self.targetname)); ) { if(ent.assault_sprite != world) + { WaypointSprite_Disown(ent.assault_sprite, waypointsprite_deadlifetime); + if(ent.classname == "func_assault_destructible") + ent.sprite = world; + } - spr = WaypointSprite_SpawnFixed("", 0.5 * (ent.absmin + ent.absmax), ent, assault_sprite); + spr = WaypointSprite_SpawnFixed("", 0.5 * (ent.absmin + ent.absmax), ent, assault_sprite, RADARICON_OBJECTIVE, '1 0.5 0'); spr.assault_decreaser = self; spr.waypointsprite_visible_for_player = assault_decreaser_sprite_visible; spr.classname = "sprite_waypoint"; WaypointSprite_UpdateRule(spr, assault_attacker_team, SPRITERULE_TEAMPLAY); if(ent.classname == "func_assault_destructible") + { WaypointSprite_UpdateSprites(spr, "as-defend", "as-destroy", "as-destroy"); + WaypointSprite_UpdateMaxHealth(spr, ent.max_health); + WaypointSprite_UpdateHealth(spr, ent.health); + ent.sprite = spr; + } else WaypointSprite_UpdateSprites(spr, "as-defend", "as-push", "as-push"); - WaypointSprite_UpdateTeamRadar(spr, RADARICON_OBJECTIVE, '1 0.5 0'); } }