diff options
-rw-r--r-- | npc/functions/dungeon.txt | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/npc/functions/dungeon.txt b/npc/functions/dungeon.txt index aeeadb16e..2cd4bbd08 100644 --- a/npc/functions/dungeon.txt +++ b/npc/functions/dungeon.txt @@ -10,6 +10,7 @@ // Main initialization OnInit: setarray .heatmap$, "007-2"; + setarray .cursemap$, "006-4", "006-4-1"; end; // Heartbeat for Heat effects @@ -36,10 +37,47 @@ OnHeat: // New tick (dies in 140~180 seconds) addtimer2 rand2(7000, 9000), .name$+"::OnHeat"; end; + + +///////////////////////////////////////// +// Heartbeat for Cursed Land map effects +OnCurse: + // Did you left? + .@i=array_find(.cursemap$, getmap()); + if (.@i < 0) { + @curse$=""; + end; + } + + // First time seeing this + if (@curse$ != getmap()) { + @curse$=getmap(); + dispbottom l("This is a Cursed Lands map, you're lose mana over time and may also incurr in debuffs if mana is low."); + } + + // You are in a CURSEMAP$, so suffer damage from heat + if (@purifio > gettimetick(2)) + percentheal 0, -5; + else + percentheal 0, -1; + + // MP is below 20%, you'll get cursed + if (Sp*100 < MaxSp*20) + SC_Bonus(10, SC_CURSE, 1); + + // MP is below 1%, you'll get start losing HP rapidly + if (Sp*100 < MaxSp) + percentheal -7, 0; + + // New tick (dies in 140~180 seconds) + addtimer2 rand2(7000, 9000), .name$+"::OnCurse"; + end; } ////////////////////////////// 007-2 mapflag nosave 007-1,99,189 +006-4 mapflag nosave 006-3,54,36 +006-4-1 mapflag nosave 006-3,54,36 |