]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/g_damage.qc
Make the Freeze function usable with freezetag
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / g_damage.qc
index a667590666539eebb447b26984582f264744be11..d98a097b1ab3f0c622fd30495422e9bc498a3674 100644 (file)
@@ -568,16 +568,11 @@ void Obituary(entity attacker, entity inflictor, entity targ, float deathtype)
 
 void Ice_Think()
 {
-       if(self.owner.health < 1)
-       {
-               remove(self);
-               return;
-       }
        setorigin(self, self.owner.origin - '0 0 16');
        self.nextthink = time;
 }
 
-void Freeze (entity targ, float freeze_time)
+void Freeze (entity targ, float freeze_time, .float frozen_flag, .float revive_flag)
 {
        float monster = (targ.flags & FL_MONSTER);
        float player = (targ.flags & FL_CLIENT);
@@ -585,11 +580,11 @@ void Freeze (entity targ, float freeze_time)
        if(!player && !monster) // only specified entities can be freezed
                return;
                
-       if(targ.frozen || targ.freezetag_frozen)
+       if(targ.frozen_flag)
                return;
                
-       targ.frozen = 1;
-       targ.revive_progress = 0;
+       targ.frozen_flag = 1;
+       targ.revive_flag = 0;
        targ.health = 1;
        targ.revive_speed = freeze_time;
 
@@ -612,10 +607,10 @@ void Freeze (entity targ, float freeze_time)
        RemoveGrapplingHook(targ);
 }
 
-void Unfreeze (entity targ)
+void Unfreeze (entity targ, .float frozen_flag, .float revive_flag)
 {
-       targ.frozen = 0;
-       targ.revive_progress = 0;
+       targ.frozen_flag = 0;
+       targ.revive_flag = 0;
        targ.health = ((targ.classname == STR_PLAYER) ? autocvar_g_balance_health_start : targ.max_health);
 
        // remove the ice block
@@ -815,7 +810,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float
                        mirrorforce *= g_weaponforcefactor;
                }
                
-               if(targ.frozen && attacker.classname != "monster_spider")
+               if(targ.frozen && attacker.monsterid != MONSTER_SPIDER)
                {
                        damage = 0;
                        force *= 0.2;