]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/notifications.qh
Remove marine
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / notifications.qh
index b376c232fa19d90ce1152321afdb5221765e7548..afff4cba02bf55980f09720d27b51a6c6a32e694 100644 (file)
@@ -66,6 +66,10 @@ void Create_Notification_Entity(
 
 void Dump_Notifications(float fh, float alsoprint);
 
+#ifdef NOTIFICATIONS_DEBUG
+void Debug_Notification(string input);
+#endif
+
 void Local_Notification(float net_type, float net_name, ...count);
 void Local_Notification_WOVA(
        float net_type, float net_name,
@@ -287,16 +291,16 @@ void Send_Notification_WOVA(
        MSG_INFO_NOTIF(1, INFO_DEATH_SELF_FIRE,                2, 1, "s1 s2loc spree_lost", "s1",       "notify_death",         _("^BG%s^K1 became a bit too crispy%s%s\n"), _("^BG%s^K1 felt a little hot%s%s\n")) \
        MSG_INFO_NOTIF(1, INFO_DEATH_SELF_GENERIC,             2, 1, "s1 s2loc spree_lost", "s1",       "notify_selfkill",      _("^BG%s^K1 died%s%s\n"), "") \
        MSG_INFO_NOTIF(1, INFO_DEATH_SELF_LAVA,                2, 1, "s1 s2loc spree_lost", "s1",       "notify_lava",          _("^BG%s^K1 turned into hot slag%s%s\n"), _("^BG%s^K1 found a hot place%s%s\n")) \
-       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_DOG_BITE,            2, 1, "s1 s2loc spree_lost", "s1",           "notify_death",                 _("^BG%s^K1 was mauled by a Rottweiler%s%s\n"), "") \
-       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_DOG_JUMP,            2, 1, "s1 s2loc spree_lost", "s1",           "notify_death",                 _("^BG%s^K1 didn't see the pouncing Rottweiler%s%s\n"), "") \
-       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_FIEND,           2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 was eviscerated by a Fiend%s%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_CERBERUS_BITE,   2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 was mauled by a Cerberus%s%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_CERBERUS_JUMP,   2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 didn't see the pouncing Cerberus%s%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_ANIMUS,          2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 was eviscerated by an Animus%s%s\n"), "") \
        MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_FISH,                2, 1, "s1 s2loc spree_lost", "s1",           "notify_death",                 _("^BG%s^K1 was fed to the Rotfish%s%s\n"), "") \
-       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_HKNIGHT_CRUSH,   2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 was crushed by a pouncing Hell-Knight%s%s\n"), "") \
-       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_HKNIGHT_FBALL,   2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 was turned to ash by a Hell-Knight%s%s\n"), "") \
-       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_HKNIGHT_INFERNO, 2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 was burned to death by a Hell-Knight%s%s\n"), "") \
-       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_HKNIGHT_MELEE,   2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 was slain by a Hell-Knight%s%s\n"), "") \
-       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_HKNIGHT_SPIKE,   2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 was cursed by a Hell-Knight%s%s\n"), "") \
-       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_KNIGHT,              2, 1, "s1 s2loc spree_lost", "s1",           "notify_death",                 _("^BG%s^K1 was sliced up by a Knight%s%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_KNIGHT_CRUSH,    2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 was crushed by a pouncing Knight%s%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_KNIGHT_FBALL,    2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 was turned to ash by a Knight%s%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_KNIGHT_INFERNO,  2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 was burned to death by a Knight%s%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_KNIGHT_MELEE,    2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 was slain by a Knight%s%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_KNIGHT_SPIKE,    2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 was cursed by a Knight%s%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_BRUISER,             2, 1, "s1 s2loc spree_lost", "s1",           "notify_death",                 _("^BG%s^K1 was beaten in a fistfight by a Bruiser%s%s\n"), "") \
        MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_OGRE_CHAINSAW,   2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 was cut down by an Ogre%s%s\n"), "") \
        MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_OGRE_GRENADE,    2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 almost dodged the Ogre grenade%s%s\n"), "") \
        MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_OGRE_UZI,            2, 1, "s1 s2loc spree_lost", "s1",           "notify_death",                 _("^BG%s^K1 was nailed by an Ogre%s%s\n"), "") \
@@ -304,12 +308,10 @@ void Send_Notification_WOVA(
        MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_SHAMBLER_CLAW,   2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1's innards became outwards by a Shambler%s%s\n"), "") \
        MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_SHAMBLER_SMASH,  2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 was smashed by a Shambler%s%s\n"), "") \
        MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_SHAMBLER_ZAP,    2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 was zapped to death by a Shambler%s%s\n"), "") \
-       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_MARINE_SLAP,     2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 was slapped to death by a Marine%s%s\n"), "") \
-       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_MARINE,              2, 1, "s1 s2loc spree_lost", "s1",           "notify_death",                 _("^BG%s^K1 was gunned down by a Marine%s%s\n"), "") \
        MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_SPIDER,              2, 1, "s1 s2loc spree_lost", "s1",           "notify_death",                 _("^BG%s^K1 was bitten by a Spider%s%s\n"), "") \
        MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_SPIDER_FIRE,     2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 was incinerated by a Spider%s%s\n"), "") \
-       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_TARBABY,         2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 came too close to an exploding Pumpkin%s%s\n"), "") \
-       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_SCRAG,           2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 was cursed by a Scrag%s%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_SLIME,           2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 was blown up by a Slime%s%s\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_WYVERN,          2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 was fireballed by a Wyvern%s%s\n"), "") \
        MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_ZOMBIE_JUMP,     2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 joins the Zombies%s%s\n"), "") \
        MSG_INFO_NOTIF(1, INFO_DEATH_SELF_MON_ZOMBIE_MELEE,    2, 1, "s1 s2loc spree_lost", "s1",               "notify_death",                 _("^BG%s^K1 was given kung fu lessons by a Zombie%s%s\n"), "") \
        MSG_INFO_NOTIF(1, INFO_DEATH_SELF_NOAMMO,              2, 1, "s1 s2loc spree_lost", "s1",       "notify_outofammo",     _("^BG%s^K1 died%s%s. What's the point of living without ammo?\n"), _("^BG%s^K1 ran out of ammo%s%s\n")) \
@@ -392,18 +394,18 @@ void Send_Notification_WOVA(
        MSG_INFO_NOTIF(1, INFO_TD_GENDESTROYED,                    0, 0, "", "",                            "",                     _("^K1A generator was destroyed!\n"), "") \
        MSG_INFO_NOTIF(1, INFO_TD_INVALID,                         0, 0, "", "",                            "",                     _("^K1Invalid turret. Check '^F2turretspawn list^K1' to see available turrets\n"), "") \
        MSG_INFO_NOTIF(1, INFO_TD_LIST,                                    1, 0, "s1", "",                          "",                     _("^BGAvailable turrets: ^F2%s\n"), "") \
-       MSG_INFO_NOTIF(1, INFO_TD_MAXHEALTH,                       0, 0, "", "",                            "",                     _("^K1This turret is already at max health\n"), "") \
-       MSG_INFO_NOTIF(1, INFO_TD_MAXPOWER,                        0, 0, "", "",                            "",                         _("^K1This turret is already at max power\n"), "") \
-       MSG_INFO_NOTIF(1, INFO_TD_MAXTURRETS,                      0, 1, "f1", "",                          "",                         _("^K1You can't spawn more than %s turrets\n"), "") \
-       MSG_INFO_NOTIF(1, INFO_TD_NOFUEL,                          0, 0, "", "",                            "",                     _("^K1You don't have enough fuel to spawn that turret\n"), "") \
-       MSG_INFO_NOTIF(1, INFO_TD_NOFUEL_REPAIR,                   0, 1, "f1", "",                          "",                         _("^K1You need %s fuel to repair this turret\n"), "") \
-       MSG_INFO_NOTIF(1, INFO_TD_NOFUEL_UPGRADE,              0, 1, "f1", "",                          "",                     _("^K1You need %s fuel to increase this turret's power\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_TD_MAXHEALTH,                       0, 0, "", "",                            "",                     _("^BGThis turret is already at max health\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_TD_MAXPOWER,                        0, 0, "", "",                            "",                         _("^BGThis turret is already at max power\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_TD_MAXTURRETS,                      0, 1, "f1", "",                          "",                         _("^BGYou can't spawn more than %s turrets\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_TD_NOFUEL,                          0, 0, "", "",                            "",                     _("^BGYou don't have enough fuel to spawn that turret\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_TD_NOFUEL_REPAIR,                   0, 1, "f1", "",                          "",                         _("^BGYou need %s fuel to repair this turret\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_TD_NOFUEL_UPGRADE,              0, 1, "f1", "",                          "",                     _("^BGYou need %s fuel to increase this turret's power\n"), "") \
        MSG_INFO_NOTIF(1, INFO_TD_PHASE_BUILD,                     0, 3, "f1 f2 f3", "",                    "",                     _("^BGWave ^F2%s^BG build phase... Next monsters: ^F2%s^BG, wave starts in ^F2%s seconds\n"), "") \
        MSG_INFO_NOTIF(1, INFO_TD_PHASE_COMBAT,                    0, 0, "", "",                            "",                     _("^K1Combat phase!\n"), "") \
        MSG_INFO_NOTIF(1, INFO_TD_REMOVE,                          0, 0, "", "",                            "",                     _("^BGTurret removed\n"), "") \
        MSG_INFO_NOTIF(1, INFO_TD_REPAIR,                          0, 0, "", "",                            "",                     _("^F1Turret repaired by 100 health points!\n"), "") \
        MSG_INFO_NOTIF(1, INFO_TD_SPAWN,                                   0, 0, "", "",                            "",                     _("^BGYou spawned a turret\n"), "") \
-       MSG_INFO_NOTIF(1, INFO_TD_TURRETS_DISABLED,            0, 0, "", "",                            "",                     _("^BGTurrets are disabled on this map\n"), "") \
+       MSG_INFO_NOTIF(1, INFO_TD_DISABLED,                        0, 0, "", "",                            "",                         _("^BGTurrets are disabled on this map\n"), "") \
        MSG_INFO_NOTIF(1, INFO_TD_UPGRADE,                         0, 0, "", "",                            "",                     _("^F1Turret power increased by 20 percent!\n"), "") \
        MSG_INFO_NOTIF(1, INFO_TD_VICTORY,                         1, 0, "s1", "",                          "",                     _("^F1%s^F1 victory!\n"), "") \
        MSG_INFO_NOTIF(2, INFO_VERSION_BETA,                   2, 0, "s1 s2", "",                       "",                     _("^F4NOTE: ^BGThe server is running ^F1Xonotic %s (beta)^BG, you have ^F2Xonotic %s\n"), "") \
@@ -566,7 +568,7 @@ void Send_Notification_WOVA(
        MSG_CENTER_NOTIF(1, CENTER_NIX_COUNTDOWN,               0, 2, "item_wepname",  CPID_NIX,              "1 f2", _("^F2^COUNT^BG until weapon change...\nNext weapon: ^F1%s"), "") \
        MSG_CENTER_NOTIF(1, CENTER_NIX_NEWWEAPON,               0, 1, "item_wepname",  CPID_NIX,              "0 0", _("^F2Active weapon: ^F1%s"), "") \
        MSG_CENTER_NOTIF(1, CENTER_OVERTIME_FRAG,               0, 0, "",              CPID_OVERTIME,         "0 0", _("^F2Now playing ^F4OVERTIME^F2!\nKeep fragging until we have a winner!"), _("^F2Now playing ^F4OVERTIME^F2!\nKeep scoring until we have a winner!")) \
-       MSG_CENTER_NOTIF(1, CENTER_OVERTIME_TIME,               0, 1, "f1time",        CPID_OVERTIME,         "0 0", _("^F2Now playing ^F4OVERTIME^F2!\nAdded ^F4%s^F2 to the game!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_OVERTIME_TIME,               0, 1, "f1time",        CPID_OVERTIME,         "0 0", _("^F2Now playing ^F4OVERTIME^F2!\n^BGAdded ^F4%s^BG to the game!"), "") \
        MSG_CENTER_NOTIF(1, CENTER_POWERDOWN_INVISIBILITY,      0, 0, "",              CPID_POWERUP,          "0 0", _("^F2Invisibility has worn off"), "") \
        MSG_CENTER_NOTIF(1, CENTER_POWERDOWN_SHIELD,            0, 0, "",              CPID_POWERUP,          "0 0", _("^F2Shield has worn off"), "") \
        MSG_CENTER_NOTIF(1, CENTER_POWERDOWN_SPEED,             0, 0, "",              CPID_POWERUP,          "0 0", _("^F2Speed has worn off"), "") \
@@ -579,11 +581,27 @@ void Send_Notification_WOVA(
        MSG_CENTER_NOTIF(1, CENTER_SUPERWEAPON_BROKEN,          0, 0, "",              CPID_POWERUP,          "0 0", _("^F2Superweapons have broken down"), "") \
        MSG_CENTER_NOTIF(1, CENTER_SUPERWEAPON_LOST,            0, 0, "",              CPID_POWERUP,          "0 0", _("^F2Superweapons have been lost"), "") \
        MSG_CENTER_NOTIF(1, CENTER_SUPERWEAPON_PICKUP,          0, 0, "",              CPID_POWERUP,          "0 0", _("^F2You now have a superweapon"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_TD_AIM_REMOVE,               0, 0, "",              CPID_TOWERDEFENSE,     "0 0", _("^BGYou need to aim at your turret to remove it"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_TD_AIM_REPAIR,               0, 0, "",              CPID_TOWERDEFENSE,     "0 0", _("^BGYou need to aim at your turret to repair it"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_TD_AIM_UPGRADE,              0, 0, "",              CPID_TOWERDEFENSE,     "0 0", _("^BGYou need to aim at your turret to upgrade it"), "") \
        MSG_CENTER_NOTIF(1, CENTER_TD_ANNOUNCE_SPAWN,           1, 0, "s1",            CPID_TOWERDEFENSE,     "3 0", _("^K1A ^K2%s^K1 has arrived!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_TD_CANTSPAWN,                        0, 0, "",              CPID_TOWERDEFENSE,     "0 0", _("^BGYou can't currently spawn a turret"), "") \
        MSG_CENTER_NOTIF(1, CENTER_TD_GENDAMAGED,                       0, 0, "",              CPID_TOWERDEFENSE,     "0 0", _("^K1The generator is under attack!"), "") \
        MSG_CENTER_NOTIF(1, CENTER_TD_GENDESTROYED,             0, 0, "",              CPID_TOWERDEFENSE,     "0 0", _("^K1A generator was destroyed!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_TD_LIST,                             1, 0, "s1",            CPID_TOWERDEFENSE,     "0 0", _("^BGAvilable turrets: ^F2%s"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_TD_MAXHEALTH,                        0, 0, "",              CPID_TOWERDEFENSE,     "0 0", _("^BGThis turret is already at max health"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_TD_MAXPOWER,                         0, 0, "",              CPID_TOWERDEFENSE,     "0 0", _("^BGThis turret is already at max power"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_TD_MAXTURRETS,               0, 1, "f1",            CPID_TOWERDEFENSE,     "0 0", _("^BGYou can't spawn more than %s turrets"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_TD_NOFUEL,                           0, 0, "",              CPID_TOWERDEFENSE,     "0 0", _("^BGYou don't have enough fuel to spawn that turret"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_TD_NOFUEL_REPAIR,            0, 1, "f1",            CPID_TOWERDEFENSE,     "0 0", _("^BGYou need %s fuel to repair this turret"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_TD_NOFUEL_UPGRADE,           0, 1, "f1",            CPID_TOWERDEFENSE,     "0 0", _("^BGYou need %s fuel to increase this turret's power"), "") \
        MSG_CENTER_NOTIF(1, CENTER_TD_PHASE_BUILD,              0, 3, "f1 f2 f3",      CPID_TOWERDEFENSE,     "5 0", _("^BGWave ^F2%s^BG build phase... Next monsters: ^F2%s^BG, wave starts in ^F2%s seconds"), "") \
        MSG_CENTER_NOTIF(1, CENTER_TD_PHASE_COMBAT,             0, 0, "",              CPID_TOWERDEFENSE,     "0 0", _("^K1Combat phase!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_TD_REMOVE,                           0, 0, "",              CPID_TOWERDEFENSE,     "0 0", _("^BGTurret removed"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_TD_REPAIR,                           0, 0, "",              CPID_TOWERDEFENSE,     "0 0", _("^F1Turret repaired by 100 health points!"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_TD_SPAWN,                            0, 0, "",              CPID_TOWERDEFENSE,     "0 0", _("^BGYou spawned a turret"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_TD_DISABLED,                         0, 0, "",              CPID_TOWERDEFENSE,     "0 0", _("^BGTurrets are disabled on this map"), "") \
+       MSG_CENTER_NOTIF(1, CENTER_TD_UPGRADE,                          0, 0, "",              CPID_TOWERDEFENSE,     "0 0", _("^F1Turret power increased by 20 percent!"), "") \
        MSG_CENTER_NOTIF(1, CENTER_TD_VICTORY,                          1, 0, "s1",            CPID_TOWERDEFENSE,     "0 0", _("^F1%s^F1 victory!"), "") \
        MULTITEAM_CENTER(1, CENTER_TEAMCHANGE_, 4,              0, 1, "",              CPID_TEAMCHANGE,       "1 f1", _("^K1Changing to ^TC^TT^K1 in ^COUNT"), "") \
        MSG_CENTER_NOTIF(1, CENTER_TEAMCHANGE_AUTO,             0, 1, "",              CPID_TEAMCHANGE,       "1 f1", _("^K1Changing team in ^COUNT"), "") \
@@ -627,16 +645,16 @@ void Send_Notification_WOVA(
        MSG_MULTI_NOTIF(1, DEATH_SELF_FIRE,                      NO_MSG,        INFO_DEATH_SELF_FIRE,                      CENTER_DEATH_SELF_FIRE) \
        MSG_MULTI_NOTIF(1, DEATH_SELF_GENERIC,                   NO_MSG,        INFO_DEATH_SELF_GENERIC,                   CENTER_DEATH_SELF_GENERIC) \
        MSG_MULTI_NOTIF(1, DEATH_SELF_LAVA,                      NO_MSG,        INFO_DEATH_SELF_LAVA,                      CENTER_DEATH_SELF_LAVA) \
-       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_DOG_BITE,                              NO_MSG,        INFO_DEATH_SELF_MON_DOG_BITE,                      CENTER_DEATH_SELF_MONSTER) \
-       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_DOG_JUMP,                              NO_MSG,        INFO_DEATH_SELF_MON_DOG_JUMP,                      CENTER_DEATH_SELF_MONSTER) \
-       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_FIEND,                                 NO_MSG,        INFO_DEATH_SELF_MON_FIEND,                                 CENTER_DEATH_SELF_MONSTER) \
+       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_CERBERUS_BITE,                 NO_MSG,        INFO_DEATH_SELF_MON_CERBERUS_BITE,                 CENTER_DEATH_SELF_MONSTER) \
+       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_CERBERUS_JUMP,                 NO_MSG,        INFO_DEATH_SELF_MON_CERBERUS_JUMP,                 CENTER_DEATH_SELF_MONSTER) \
+       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_ANIMUS,                                NO_MSG,        INFO_DEATH_SELF_MON_ANIMUS,                                CENTER_DEATH_SELF_MONSTER) \
        MSG_MULTI_NOTIF(1, DEATH_SELF_MON_FISH,                                  NO_MSG,        INFO_DEATH_SELF_MON_FISH,                                  CENTER_DEATH_SELF_MONSTER) \
-       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_HKNIGHT_CRUSH,                 NO_MSG,        INFO_DEATH_SELF_MON_HKNIGHT_CRUSH,                 CENTER_DEATH_SELF_MONSTER) \
-       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_HKNIGHT_FBALL,                 NO_MSG,        INFO_DEATH_SELF_MON_HKNIGHT_FBALL,                 CENTER_DEATH_SELF_MONSTER) \
-       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_HKNIGHT_INFERNO,               NO_MSG,        INFO_DEATH_SELF_MON_HKNIGHT_INFERNO,       CENTER_DEATH_SELF_MONSTER) \
-       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_HKNIGHT_MELEE,                 NO_MSG,        INFO_DEATH_SELF_MON_HKNIGHT_MELEE,                 CENTER_DEATH_SELF_MONSTER) \
-       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_HKNIGHT_SPIKE,                 NO_MSG,        INFO_DEATH_SELF_MON_HKNIGHT_SPIKE,                 CENTER_DEATH_SELF_MONSTER) \
-       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_KNIGHT,                                NO_MSG,        INFO_DEATH_SELF_MON_KNIGHT,                                CENTER_DEATH_SELF_MONSTER) \
+       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_KNIGHT_CRUSH,                  NO_MSG,        INFO_DEATH_SELF_MON_KNIGHT_CRUSH,                  CENTER_DEATH_SELF_MONSTER) \
+       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_KNIGHT_FBALL,              NO_MSG,        INFO_DEATH_SELF_MON_KNIGHT_FBALL,              CENTER_DEATH_SELF_MONSTER) \
+       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_KNIGHT_INFERNO,                NO_MSG,        INFO_DEATH_SELF_MON_KNIGHT_INFERNO,            CENTER_DEATH_SELF_MONSTER) \
+       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_KNIGHT_MELEE,              NO_MSG,        INFO_DEATH_SELF_MON_KNIGHT_MELEE,              CENTER_DEATH_SELF_MONSTER) \
+       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_KNIGHT_SPIKE,              NO_MSG,        INFO_DEATH_SELF_MON_KNIGHT_SPIKE,              CENTER_DEATH_SELF_MONSTER) \
+       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_BRUISER,                               NO_MSG,        INFO_DEATH_SELF_MON_BRUISER,                       CENTER_DEATH_SELF_MONSTER) \
        MSG_MULTI_NOTIF(1, DEATH_SELF_MON_OGRE_CHAINSAW,                 NO_MSG,        INFO_DEATH_SELF_MON_OGRE_CHAINSAW,                 CENTER_DEATH_SELF_MONSTER) \
        MSG_MULTI_NOTIF(1, DEATH_SELF_MON_OGRE_GRENADE,                  NO_MSG,        INFO_DEATH_SELF_MON_OGRE_GRENADE,                  CENTER_DEATH_SELF_MONSTER) \
        MSG_MULTI_NOTIF(1, DEATH_SELF_MON_OGRE_UZI,                              NO_MSG,        INFO_DEATH_SELF_MON_OGRE_UZI,                      CENTER_DEATH_SELF_MONSTER) \
@@ -644,12 +662,10 @@ void Send_Notification_WOVA(
        MSG_MULTI_NOTIF(1, DEATH_SELF_MON_SHAMBLER_CLAW,                 NO_MSG,        INFO_DEATH_SELF_MON_SHAMBLER_CLAW,                 CENTER_DEATH_SELF_MONSTER) \
        MSG_MULTI_NOTIF(1, DEATH_SELF_MON_SHAMBLER_SMASH,                NO_MSG,        INFO_DEATH_SELF_MON_SHAMBLER_SMASH,                CENTER_DEATH_SELF_MONSTER) \
        MSG_MULTI_NOTIF(1, DEATH_SELF_MON_SHAMBLER_ZAP,                  NO_MSG,        INFO_DEATH_SELF_MON_SHAMBLER_ZAP,                  CENTER_DEATH_SELF_MONSTER) \
-       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_MARINE_SLAP,                   NO_MSG,        INFO_DEATH_SELF_MON_MARINE_SLAP,                   CENTER_DEATH_SELF_MONSTER) \
-       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_MARINE,                                NO_MSG,        INFO_DEATH_SELF_MON_MARINE,                                CENTER_DEATH_SELF_MONSTER) \
        MSG_MULTI_NOTIF(1, DEATH_SELF_MON_SPIDER,                                NO_MSG,        INFO_DEATH_SELF_MON_SPIDER,                                CENTER_DEATH_SELF_MONSTER) \
        MSG_MULTI_NOTIF(1, DEATH_SELF_MON_SPIDER_FIRE,                   NO_MSG,        INFO_DEATH_SELF_MON_SPIDER_FIRE,                   CENTER_DEATH_SELF_MONSTER) \
-       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_TARBABY,                               NO_MSG,        INFO_DEATH_SELF_MON_TARBABY,                       CENTER_DEATH_SELF_MONSTER) \
-       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_SCRAG,                                 NO_MSG,        INFO_DEATH_SELF_MON_SCRAG,                                 CENTER_DEATH_SELF_MONSTER) \
+       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_SLIME,                                 NO_MSG,        INFO_DEATH_SELF_MON_SLIME,                                 CENTER_DEATH_SELF_MONSTER) \
+       MSG_MULTI_NOTIF(1, DEATH_SELF_MON_WYVERN,                                NO_MSG,        INFO_DEATH_SELF_MON_WYVERN,                                CENTER_DEATH_SELF_MONSTER) \
        MSG_MULTI_NOTIF(1, DEATH_SELF_MON_ZOMBIE_JUMP,                   NO_MSG,        INFO_DEATH_SELF_MON_ZOMBIE_JUMP,                   CENTER_DEATH_SELF_MONSTER) \
        MSG_MULTI_NOTIF(1, DEATH_SELF_MON_ZOMBIE_MELEE,                  NO_MSG,        INFO_DEATH_SELF_MON_ZOMBIE_MELEE,                  CENTER_DEATH_SELF_MONSTER) \
        MSG_MULTI_NOTIF(1, DEATH_SELF_NOAMMO,                    NO_MSG,        INFO_DEATH_SELF_NOAMMO,                    CENTER_DEATH_SELF_NOAMMO) \
@@ -691,9 +707,25 @@ void Send_Notification_WOVA(
        MSG_MULTI_NOTIF(1, MULTI_ARENA_BEGIN,                    ANNCE_BEGIN,   NO_MSG,                                    CENTER_ARENA_BEGIN) \
        MSG_MULTI_NOTIF(1, MULTI_COUNTDOWN_BEGIN,                ANNCE_BEGIN,   NO_MSG,                                    CENTER_COUNTDOWN_BEGIN) \
        MSG_MULTI_NOTIF(1, MULTI_MINSTA_FINDAMMO,                ANNCE_NUM_10,  NO_MSG,                                    CENTER_MINSTA_FINDAMMO_FIRST) \
+       MSG_MULTI_NOTIF(1, MULTI_TD_AIM_REMOVE,                  NO_MSG,                INFO_TD_AIM_REMOVE,                                CENTER_TD_AIM_REMOVE) \
+       MSG_MULTI_NOTIF(1, MULTI_TD_AIM_REPAIR,                  NO_MSG,                INFO_TD_AIM_REPAIR,                                CENTER_TD_AIM_REPAIR) \
+       MSG_MULTI_NOTIF(1, MULTI_TD_AIM_UPGRADE,                 NO_MSG,                INFO_TD_AIM_UPGRADE,                       CENTER_TD_AIM_UPGRADE) \
+       MSG_MULTI_NOTIF(1, MULTI_TD_CANTSPAWN,                   NO_MSG,                INFO_TD_CANTSPAWN,                                 CENTER_TD_CANTSPAWN) \
+       MSG_MULTI_NOTIF(1, MULTI_TD_DISABLED,                            NO_MSG,                INFO_TD_DISABLED,                                  CENTER_TD_DISABLED) \
        MSG_MULTI_NOTIF(1, MULTI_TD_GENDESTROYED,                NO_MSG,                INFO_TD_GENDESTROYED,                              CENTER_TD_GENDESTROYED) \
+       MSG_MULTI_NOTIF(1, MULTI_TD_LIST,                                NO_MSG,                INFO_TD_LIST,                                      CENTER_TD_LIST) \
+       MSG_MULTI_NOTIF(1, MULTI_TD_MAXHEALTH,                   NO_MSG,                INFO_TD_MAXHEALTH,                                 CENTER_TD_MAXHEALTH) \
+       MSG_MULTI_NOTIF(1, MULTI_TD_MAXPOWER,                            NO_MSG,                INFO_TD_MAXPOWER,                                  CENTER_TD_MAXPOWER) \
+       MSG_MULTI_NOTIF(1, MULTI_TD_MAXTURRETS,                  NO_MSG,                INFO_TD_MAXTURRETS,                                CENTER_TD_MAXTURRETS) \
+       MSG_MULTI_NOTIF(1, MULTI_TD_NOFUEL,                              NO_MSG,                INFO_TD_NOFUEL,                                    CENTER_TD_NOFUEL) \
+       MSG_MULTI_NOTIF(1, MULTI_TD_NOFUEL_REPAIR,               NO_MSG,                INFO_TD_NOFUEL_REPAIR,                     CENTER_TD_NOFUEL_REPAIR) \
+       MSG_MULTI_NOTIF(1, MULTI_TD_NOFUEL_UPGRADE,              NO_MSG,                INFO_TD_NOFUEL_UPGRADE,                    CENTER_TD_NOFUEL_UPGRADE) \
        MSG_MULTI_NOTIF(1, MULTI_TD_PHASE_BUILD,                 NO_MSG,                INFO_TD_PHASE_BUILD,                               CENTER_TD_PHASE_BUILD) \
        MSG_MULTI_NOTIF(1, MULTI_TD_PHASE_COMBAT,                NO_MSG,                INFO_TD_PHASE_COMBAT,                              CENTER_TD_PHASE_COMBAT) \
+       MSG_MULTI_NOTIF(1, MULTI_TD_REMOVE,                              NO_MSG,                INFO_TD_REMOVE,                                    CENTER_TD_REMOVE) \
+       MSG_MULTI_NOTIF(1, MULTI_TD_REPAIR,                              NO_MSG,                INFO_TD_REPAIR,                                    CENTER_TD_REPAIR) \
+       MSG_MULTI_NOTIF(1, MULTI_TD_SPAWN,                               NO_MSG,                INFO_TD_SPAWN,                                     CENTER_TD_SPAWN) \
+       MSG_MULTI_NOTIF(1, MULTI_TD_UPGRADE,                         NO_MSG,            INFO_TD_UPGRADE,                                   CENTER_TD_UPGRADE) \
        MSG_MULTI_NOTIF(1, MULTI_TD_VICTORY,                             NO_MSG,                INFO_TD_VICTORY,                                   CENTER_TD_VICTORY) \
        MSG_MULTI_NOTIF(1, WEAPON_ACCORDEON_MURDER,              NO_MSG,        INFO_WEAPON_ACCORDEON_MURDER,              NO_MSG) \
        MSG_MULTI_NOTIF(1, WEAPON_ACCORDEON_SUICIDE,             NO_MSG,        INFO_WEAPON_ACCORDEON_SUICIDE,             CENTER_DEATH_SELF_GENERIC) \
@@ -763,6 +795,7 @@ var float autocvar_notification_show_sprees_info_specialonly = TRUE;
 var float autocvar_notification_errors_are_fatal = TRUE;
 var float autocvar_notification_lifetime_runtime = 0.5;
 var float autocvar_notification_lifetime_mapload = 10;
+var float autocvar_notification_debug = FALSE;
 
 #ifdef SVQC
 .float FRAG_VERBOSE;