DEADSOFTWARE

Triggers: Add DamageKind to TRIGGER_DAMAGE
[d2df-sdl.git] / src / game / g_triggers.pas
index 174b47e6594ca44e0a0429705ebb039b4394af67..529aabc4781c7520dfae7226792a581a4bce34cc 100644 (file)
@@ -2107,7 +2107,14 @@ begin
 
                     // Íàíîñèì óðîí èãðîêó
                     if (TriggerType = TRIGGER_DAMAGE) and (tgcAmount > 0) then
-                      p.Damage(tgcAmount, 0, 0, 0, HIT_SOME);
+                    begin
+                      // Êèñëîòíûé óðîí íå íàíîñèòñÿ êîãäà åñòü êîñòþì
+                      // "Âîäÿíîé" óðîí íå íàíîñèòñÿ êîãäà åñòü êèñëîðîä
+                      if not (((tgcKind = HIT_ACID) and (p.FMegaRulez[MR_SUIT] > gTime)) or
+                              ((tgcKind = HIT_WATER) and (p.Air > 0))) then
+                        p.Damage(tgcAmount, 0, 0, 0, tgcKind);
+                      if (tgcKind = HIT_FLAME) then p.CatchFire(0);
+                    end;
 
                     // Ëå÷èì èãðîêà
                     if (TriggerType = TRIGGER_HEALTH) and (tgcAmount > 0) then
@@ -2127,7 +2134,10 @@ begin
 
                     // Íàíîñèì óðîí ìîíñòðó
                     if (TriggerType = TRIGGER_DAMAGE) and (tgcAmount > 0) then
-                      m.Damage(tgcAmount, 0, 0, 0, HIT_SOME);
+                    begin
+                      p.Damage(tgcAmount, 0, 0, 0, tgcKind);
+                      if (tgcKind = HIT_FLAME) then m.CatchFire(0);
+                    end;
 
                     // Ëå÷èì ìîíñòðà
                     if (TriggerType = TRIGGER_HEALTH) and (tgcAmount > 0) then