]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/mutators/gamemode_invasion.qc
Attempt to improve monster skill based damage calculation
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / mutators / gamemode_invasion.qc
index 1f55f776ad43c3010cb424dda0fe9f87b897a29e..560f05b9884000e8981d6e73e63b92fbb9f0dc95 100644 (file)
@@ -166,6 +166,8 @@ void Invasion_RoundStart()
                
        roundcnt += 1;
        
+       invasion_monsterskill = roundcnt + max(1, numplayers * 0.3);
+       
        maxcurrent = 0;
        numspawned = 0;
        numkilled = 0;
@@ -174,8 +176,6 @@ void Invasion_RoundStart()
                maxspawned = rint(autocvar_g_invasion_monster_count * (roundcnt * 0.5));
        else
                maxspawned = autocvar_g_invasion_monster_count;
-       
-       monster_skill += 0.1 * numplayers;
 }
 
 MUTATOR_HOOKFUNCTION(invasion_MonsterDies)
@@ -209,6 +209,11 @@ MUTATOR_HOOKFUNCTION(invasion_MonsterSpawn)
                maxcurrent += 1;
        }
        
+       self.monster_skill = invasion_monsterskill;
+       
+       if((get_monsterinfo(self.monsterid)).spawnflags & MON_FLAG_SUPERMONSTER)
+               Send_Notification(NOTIF_ALL, world, MSG_CENTER, CENTER_INVASION_SUPERMONSTER, M_NAME(self.monsterid));
+       
        self.dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_BOTCLIP | DPCONTENTS_MONSTERCLIP;
        
        return FALSE;
@@ -252,7 +257,7 @@ MUTATOR_HOOKFUNCTION(invasion_PlayerCommand)
                sprint(self, strcat("roundcnt = ", ftos(roundcnt), "\n"));
                sprint(self, strcat("monsters_total = ", ftos(monsters_total), "\n"));
                sprint(self, strcat("monsters_killed = ", ftos(monsters_killed), "\n"));
-               sprint(self, strcat("monster_skill = ", ftos(monster_skill), "\n"));
+               sprint(self, strcat("invasion_monsterskill = ", ftos(invasion_monsterskill), "\n"));
                
                return TRUE;
        }
@@ -288,8 +293,6 @@ void invasion_Initialize()
        
        allowed_to_spawn = TRUE;
        
-       monster_skill = 0.5;
-       
        roundcnt = 0;
 }