]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/func_breakable.qc
Merge remote-tracking branch 'origin/divVerent/allow-override-item-model'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / func_breakable.qc
index 436fde3f4c8b6069623db5722bccad47e9453af8..4d29b014faff68c9528bb954d3d51512e88b6d3e 100644 (file)
@@ -37,7 +37,7 @@ void func_breakable_damage(entity inflictor, entity attacker, float damage, floa
 // func_breakable
 // - basically func_assault_destructible for general gameplay use
 //
-void LaunchDebris (string debrisname, vector force) =
+void LaunchDebris (string debrisname, vector force)
 {
        local   entity dbr;
 
@@ -65,7 +65,7 @@ void LaunchDebris (string debrisname, vector force) =
        if(dbr.damageforcescale)
                dbr.takedamage = DAMAGE_YES;
        SUB_SetFade(dbr, time + self.debristime + crandom() * self.debristimejitter, self.debrisfadetime);
-};
+}
 
 void func_breakable_colormod()
 {
@@ -83,7 +83,7 @@ void func_breakable_colormod()
 
 void func_breakable_look_destroyed()
 {
-       local float floor_z;
+       float floor_z;
 
        if(self.solid == SOLID_BSP) // in case a misc_follow moved me, save the current origin first
                self.dropped_origin = self.origin;
@@ -114,6 +114,7 @@ void func_breakable_behave_destroyed()
 {
        self.health = self.max_health;
        self.takedamage = DAMAGE_NO;
+       self.bot_attack = FALSE;
        self.event_damage = SUB_Null;
        self.state = 1;
        func_breakable_colormod();
@@ -128,8 +129,10 @@ void func_breakable_behave_restore()
                WaypointSprite_UpdateHealth(self.sprite, self.health);
        }
        self.takedamage = DAMAGE_AIM;
+       self.bot_attack = TRUE;
        self.event_damage = func_breakable_damage;
        self.state = 0;
+       self.nextthink = 0; // cancel auto respawn
        func_breakable_colormod();
 }
 
@@ -161,7 +164,7 @@ void func_breakable_destroy() {
        func_breakable_destroyed();
 
        if(self.noise)
-               sound (self, CHAN_AUTO, self.noise, VOL_BASE, ATTN_NORM);
+               sound (self, CH_TRIGGER, self.noise, VOL_BASE, ATTN_NORM);
 
        if(self.dmg)
                RadiusDamage(self, activator, self.dmg, self.dmg_edge, self.dmg_radius, self, self.dmg_force, DEATH_HURTTRIGGER, world);
@@ -172,7 +175,7 @@ void func_breakable_destroy() {
        if(self.respawntime)
        {
                self.think = func_breakable_restore;
-               self.nextthink = time + self.respawntime;
+               self.nextthink = time + self.respawntime + crandom() * self.respawntimejitter;
        }
 
        oldmsg = self.message;