summaryrefslogtreecommitdiff
path: root/npc/008-1/soul-menhir.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/008-1/soul-menhir.txt')
-rw-r--r--npc/008-1/soul-menhir.txt58
1 files changed, 58 insertions, 0 deletions
diff --git a/npc/008-1/soul-menhir.txt b/npc/008-1/soul-menhir.txt
new file mode 100644
index 00000000..dd1a6e38
--- /dev/null
+++ b/npc/008-1/soul-menhir.txt
@@ -0,0 +1,58 @@
+// Evol scripts.
+// Author:
+// gumi
+// Description:
+// place of power, mana refills faster when sitting nearby
+
+008-1,253,112,0 script Soul Menhir#hurnscald NPC_NO_SPRITE,{
+
+ end;
+
+OnRefill:
+ @menhir_lock = false;
+ getmapxy(.@map$, .@x, .@y, UNITTYPE_PC);
+
+ if (.@map$ != .map$ || distance(.x, .y, .@x, .@y) > .refill_distance ||
+ !(issit()))
+ end;
+
+ heal(0, .refill_rate);
+ end;
+
+
+OnTimer500:
+ .@count = getunits(BL_PC, .@units[0], false, .map$, (.x - .refill_distance),
+ (.y - .refill_distance), (.x + .refill_distance), (.y + .refill_distance));
+
+ for (.@i = 0; .@i < .@count; ++.@i)
+ {
+ if (.@units[.@i] < 0) continue; // pre-check, just in case
+ deltimer(.name$ + "::OnRefill", .@units[.@i]);
+ if (gettimer(TIMER_COUNT, .@units[.@i], .name$ + "::OnRefill") > 0 ||
+ getvariableofpc(@menhir_lock, .@units[.@i])) {
+ continue;
+ }
+ set(getvariableofpc(@menhir_lock, .@units[.@i]), true);
+ addtimer(rand(.refill_timer), .name$ + "::OnRefill", .@units[.@i]);
+ }
+
+ initnpctimer();
+ end;
+
+OnInit:
+
+ .refill_rate = 1; // number of SP to give every refill
+ .refill_distance = 7; // max distance
+ .refill_timer = 200; // wait rand(X) ms before refill
+ initnpctimer();
+
+////////// UNFINISHED //////////
+////////////////////////////////
+// REMOVE THIS CODE WHEN THIS //
+// NPC IS NO LONGER A WIP //////
+////////////////////////////////
+//if (!debug) disablenpc(.name$);
+///////// UNFINISHED ///////////
+
+ end;
+}