summaryrefslogtreecommitdiff
path: root/npc/functions
diff options
context:
space:
mode:
Diffstat (limited to 'npc/functions')
-rw-r--r--npc/functions/dungeon.txt38
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