]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/mutators/mutator/instagib/sv_instagib.qc
Compact instagib no-ammo countdown code; also fix a typo in notification_lifetime_run...
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / mutators / mutator / instagib / sv_instagib.qc
index 34a16b8a7aefba01b7e994f9b035085015386dee..44c476a3a9ef954685d9aa866b9c15896a20adb3 100644 (file)
@@ -62,6 +62,26 @@ void instagib_stop_countdown(entity e)
        Kill_Notification(NOTIF_ONE_ONLY, e, MSG_CENTER, CPID_INSTAGIB_FINDAMMO);
        e.instagib_needammo = false;
 }
+
+void instagib_countdown(entity this)
+{
+       float hp = GetResource(this, RES_HEALTH);
+
+       float dmg = (hp <= 10) ? 5 : 10;
+       Damage(this, this, this, dmg, DEATH_NOAMMO.m_id, DMG_NOWEP, this.origin, '0 0 0');
+
+       entity annce = (hp <= 5) ? ANNCE_INSTAGIB_TERMINATED : Announcer_PickNumber(CNT_NORMAL, ceil(hp / 10));
+       Send_Notification(NOTIF_ONE, this, MSG_ANNCE, annce);
+
+       if (hp > 80)
+       {
+               if (hp <= 90)
+                       Send_Notification(NOTIF_ONE_ONLY, this, MSG_CENTER, CENTER_INSTAGIB_FINDAMMO);
+               else
+                       Send_Notification(NOTIF_ONE_ONLY, this, MSG_MULTI, MULTI_INSTAGIB_FINDAMMO);
+       }
+}
+
 void instagib_ammocheck(entity this)
 {
        if(time < this.instagib_nextthink)
@@ -83,64 +103,8 @@ void instagib_ammocheck(entity this)
        }
        else
        {
-               float hp = GetResource(this, RES_HEALTH);
                this.instagib_needammo = true;
-               if (hp <= 5)
-               {
-                       Damage(this, this, this, 5, DEATH_NOAMMO.m_id, DMG_NOWEP, this.origin, '0 0 0');
-                       Send_Notification(NOTIF_ONE, this, MSG_ANNCE, ANNCE_INSTAGIB_TERMINATED);
-               }
-               else if (hp <= 10)
-               {
-                       Damage(this, this, this, 5, DEATH_NOAMMO.m_id, DMG_NOWEP, this.origin, '0 0 0');
-                       Send_Notification(NOTIF_ONE, this, MSG_ANNCE, ANNCE_NUM_1);
-               }
-               else if (hp <= 20)
-               {
-                       Damage(this, this, this, 10, DEATH_NOAMMO.m_id, DMG_NOWEP, this.origin, '0 0 0');
-                       Send_Notification(NOTIF_ONE, this, MSG_ANNCE, ANNCE_NUM_2);
-               }
-               else if (hp <= 30)
-               {
-                       Damage(this, this, this, 10, DEATH_NOAMMO.m_id, DMG_NOWEP, this.origin, '0 0 0');
-                       Send_Notification(NOTIF_ONE, this, MSG_ANNCE, ANNCE_NUM_3);
-               }
-               else if (hp <= 40)
-               {
-                       Damage(this, this, this, 10, DEATH_NOAMMO.m_id, DMG_NOWEP, this.origin, '0 0 0');
-                       Send_Notification(NOTIF_ONE, this, MSG_ANNCE, ANNCE_NUM_4);
-               }
-               else if (hp <= 50)
-               {
-                       Damage(this, this, this, 10, DEATH_NOAMMO.m_id, DMG_NOWEP, this.origin, '0 0 0');
-                       Send_Notification(NOTIF_ONE, this, MSG_ANNCE, ANNCE_NUM_5);
-               }
-               else if (hp <= 60)
-               {
-                       Damage(this, this, this, 10, DEATH_NOAMMO.m_id, DMG_NOWEP, this.origin, '0 0 0');
-                       Send_Notification(NOTIF_ONE, this, MSG_ANNCE, ANNCE_NUM_6);
-               }
-               else if (hp <= 70)
-               {
-                       Damage(this, this, this, 10, DEATH_NOAMMO.m_id, DMG_NOWEP, this.origin, '0 0 0');
-                       Send_Notification(NOTIF_ONE, this, MSG_ANNCE, ANNCE_NUM_7);
-               }
-               else if (hp <= 80)
-               {
-                       Damage(this, this, this, 10, DEATH_NOAMMO.m_id, DMG_NOWEP, this.origin, '0 0 0');
-                       Send_Notification(NOTIF_ONE, this, MSG_ANNCE, ANNCE_NUM_8);
-               }
-               else if (hp <= 90)
-               {
-                       Send_Notification(NOTIF_ONE_ONLY, this, MSG_CENTER, CENTER_INSTAGIB_FINDAMMO);
-                       Damage(this, this, this, 10, DEATH_NOAMMO.m_id, DMG_NOWEP, this.origin, '0 0 0');
-                       Send_Notification(NOTIF_ONE, this, MSG_ANNCE, ANNCE_NUM_9);
-               }
-               else
-               {
-                       Send_Notification(NOTIF_ONE_ONLY, this, MSG_MULTI, MULTI_INSTAGIB_FINDAMMO);
-                       Damage(this, this, this, 10, DEATH_NOAMMO.m_id, DMG_NOWEP, this.origin, '0 0 0');
-               }
+               instagib_countdown(this);
        }
        this.instagib_nextthink = time + 1;
 }