summaryrefslogtreecommitdiff
path: root/npc/029-3_Fight_Cave
diff options
context:
space:
mode:
authorChuck Miller <shadowmil@gmail.com>2010-07-21 22:57:04 -0400
committerChuck Miller <shadowmil@gmail.com>2010-07-22 18:57:49 -0400
commit7922c819d4767ace993441bb27209f858e7bdb68 (patch)
tree007195bb0c39852eb8cf254adb9456cbeb9a8dcc /npc/029-3_Fight_Cave
parentdf4e6c4107511d5f533ebe54b710fa6431726300 (diff)
downloadserverdata-7922c819d4767ace993441bb27209f858e7bdb68.tar.gz
serverdata-7922c819d4767ace993441bb27209f858e7bdb68.tar.bz2
serverdata-7922c819d4767ace993441bb27209f858e7bdb68.tar.xz
serverdata-7922c819d4767ace993441bb27209f858e7bdb68.zip
Add the basics for candor
Reviewed-by: Turmfalke
Diffstat (limited to 'npc/029-3_Fight_Cave')
-rw-r--r--npc/029-3_Fight_Cave/_import.txt6
-rw-r--r--npc/029-3_Fight_Cave/_mobs.txt7
-rw-r--r--npc/029-3_Fight_Cave/_warps.txt2
-rw-r--r--npc/029-3_Fight_Cave/barrier.txt8
-rw-r--r--npc/029-3_Fight_Cave/mapflags.txt1
-rw-r--r--npc/029-3_Fight_Cave/parua.txt151
6 files changed, 175 insertions, 0 deletions
diff --git a/npc/029-3_Fight_Cave/_import.txt b/npc/029-3_Fight_Cave/_import.txt
new file mode 100644
index 00000000..4bf1b3b0
--- /dev/null
+++ b/npc/029-3_Fight_Cave/_import.txt
@@ -0,0 +1,6 @@
+map: 029-3.gat
+npc: npc/029-3_Fight_Cave/_mobs.txt
+npc: npc/029-3_Fight_Cave/_warps.txt
+npc: npc/029-3_Fight_Cave/barrier.txt
+npc: npc/029-3_Fight_Cave/mapflags.txt
+npc: npc/029-3_Fight_Cave/parua.txt
diff --git a/npc/029-3_Fight_Cave/_mobs.txt b/npc/029-3_Fight_Cave/_mobs.txt
new file mode 100644
index 00000000..0b0210e9
--- /dev/null
+++ b/npc/029-3_Fight_Cave/_mobs.txt
@@ -0,0 +1,7 @@
+// 029-3 Fight Cave mobs
+
+
+
+029-3.gat,0,0,0 script Mob029-3 -1,{
+ end;
+}
diff --git a/npc/029-3_Fight_Cave/_warps.txt b/npc/029-3_Fight_Cave/_warps.txt
new file mode 100644
index 00000000..feee2a26
--- /dev/null
+++ b/npc/029-3_Fight_Cave/_warps.txt
@@ -0,0 +1,2 @@
+// 029-3 Fight Cave warps
+
diff --git a/npc/029-3_Fight_Cave/barrier.txt b/npc/029-3_Fight_Cave/barrier.txt
new file mode 100644
index 00000000..5afd8da9
--- /dev/null
+++ b/npc/029-3_Fight_Cave/barrier.txt
@@ -0,0 +1,8 @@
+029-3.gat,45,20,0 script #FightCaveBarrier 127,1,1,{
+ if ($@FIGHT_CAVE_STATUS != 0) goto L_Block;
+ warp "029-1.gat", 55, 38;
+ end;
+
+ L_Block:
+ message strcharinfo(0), "Some force seems to be blocking you from exiting.";
+}
diff --git a/npc/029-3_Fight_Cave/mapflags.txt b/npc/029-3_Fight_Cave/mapflags.txt
new file mode 100644
index 00000000..845a0f01
--- /dev/null
+++ b/npc/029-3_Fight_Cave/mapflags.txt
@@ -0,0 +1 @@
+029-3.gat mapflag nosave 029-1,55,38;
diff --git a/npc/029-3_Fight_Cave/parua.txt b/npc/029-3_Fight_Cave/parua.txt
new file mode 100644
index 00000000..b3aca53e
--- /dev/null
+++ b/npc/029-3_Fight_Cave/parua.txt
@@ -0,0 +1,151 @@
+// Parua's fight
+
+029-3.gat,50,25,0 script Parua 183,{
+ if ($@FIGHT_CAVE_STATUS != 0) goto L_Enjoy;
+ mes "[Parua]";
+ mes "\"Hello.\"";
+ next;
+ mes "[Parua]";
+ mes "\"Do you dare challenge the powers that sleep here.\"";
+ menu "No, Ill let it sleep", L_Exit,
+ "Ha! Whats the worst it could do?", -;
+ mes "[Parua]";
+ mes "\"Very well, for a fee of 20,000 gp Ill will awake the power.\"";
+ menu "No, what a ripoff", L_Exit,
+ "Fine, here you go", -;
+
+ if (zeny < 20000) goto L_NotEnough;
+ if ($@FIGHT_CAVE_STATUS != 0) goto L_AlreadyStarted;
+ if (getareausers("029-3.gat", 20, 20, 70, 60) < 5) goto L_NotEnoughPlayers;
+
+ set zeny, zeny - 20000;
+ npctalk "Let the battle begin!";
+ set $@FIGHT_CAVE_STATUS, 1;
+ set $@FIGHT_CAVE_LEVEL, BaseLevel / 2;
+ set $@FIGHT_CAVE_PLAYER_COUNT, getareausers("029-3.gat", 20, 20, 70, 60);
+ goto L_Exit;
+
+L_Enjoy:
+ mes "[Parua]";
+ mes "\"Enjoy the fight\"";
+ goto L_Exit;
+
+L_NotEnough:
+ mes "[Parua]";
+ mes "\"Seems you can't meet my fee\"";
+ goto L_Exit;
+
+L_AlreadyStarted:
+ mes "[Parua]";
+ mes "\"Seems your friend already paid me\"";
+ goto L_Exit;
+
+L_NotEnoughPlayers:
+ mes "[Parua]";
+ mes "\"Maybe you should bring some friends with you, this will get messy\"";
+ goto L_Exit;
+
+L_Exit:
+ close;
+ end;
+
+// Fight logic
+OnTimer5000:
+ setnpctimer 0;
+ if ($@FIGHT_CAVE_STATUS != 0) goto L_CaveLogic;
+L_Return_1:
+ set $@FIGHT_CAVE_PLAYER_COUNT, 0;
+ areatimer "029-3.gat", 20, 20, 70, 60, 10, "Parua::onTick";
+ end;
+
+L_CaveLogic:
+ if ($@FIGHT_CAVE_PLAYER_COUNT <= 0) goto L_CleanUp;
+ set $@FIGHT_CAVE_ROUND_TIMER, $@FIGHT_CAVE_ROUND_TIMER + 5; // Advance 5 seconds
+ if (mobcount("029-3.gat", "Parua::onPetDeath") <= 0) goto L_NextRound;
+ if ($@FIGHT_CAVE_ROUND_TIMER >= 120) goto L_NextRound;
+ goto L_Return_1;
+
+L_NextRound:
+ set $@FIGHT_CAVE_ROUND_TIMER, 0;
+
+ set $@FIGHT_CAVE_LEVEL, $@FIGHT_CAVE_LEVEL + ($@FIGHT_CAVE_PLAYER_COUNT * 3);
+ if ($@FIGHT_CAVE_LEVEL >= 1200) L_CleanUp;
+ set $@FIGHT_CAVE_POINTS, $@FIGHT_CAVE_LEVEL;
+
+ npctalk "Next round starting, round level is " + $@FIGHT_CAVE_LEVEL;
+
+ set $@MOB_1_SUMMON, 0;
+ set $@MOB_2_SUMMON, 0;
+ set $@MOB_3_SUMMON, 0;
+ set $@MOB_4_SUMMON, 0;
+ set $@MOB_5_SUMMON, 0;
+ set $@MOB_6_SUMMON, 0;
+L_Summon:
+ if ($@FIGHT_CAVE_POINTS >= 100 && $@MOB_1_SUMMON < 3) goto L_MOB1;
+ if ($@FIGHT_CAVE_POINTS >= 50 && $@MOB_2_SUMMON < 5) goto L_MOB2;
+ if ($@FIGHT_CAVE_POINTS >= 30 && $@MOB_3_SUMMON < 10) goto L_MOB3;
+ if ($@FIGHT_CAVE_POINTS >= 20 && $@MOB_4_SUMMON < 10) goto L_MOB4;
+ if ($@FIGHT_CAVE_POINTS >= 5 && $@MOB_5_SUMMON < 20) goto L_MOB5;
+ if ($@FIGHT_CAVE_POINTS >= 1 && $@MOB_6_SUMMON < 25) goto L_MOB6;
+ goto L_Return_1;
+
+
+L_MOB1:
+ set $@MOB_1_SUMMON, $@MOB_1_SUMMON + 1;
+ set $@FIGHT_CAVE_POINTS, $@FIGHT_CAVE_POINTS - 100;
+ areamonster "029-3.gat", 20, 20, 70, 60, "", 1022, 1, "Parua::onPetDeath";
+ goto L_Summon;
+
+L_MOB2:
+ set $@MOB_2_SUMMON, $@MOB_2_SUMMON + 1;
+ set $@FIGHT_CAVE_POINTS, $@FIGHT_CAVE_POINTS - 50;
+ areamonster "029-3.gat", 20, 20, 70, 60, "", 1045, 1, "Parua::onPetDeath";
+ goto L_Summon;
+
+L_MOB3:
+ set $@MOB_3_SUMMON, $@MOB_3_SUMMON + 1;
+ set $@FIGHT_CAVE_POINTS, $@FIGHT_CAVE_POINTS - 30;
+ areamonster "029-3.gat", 20, 20, 70, 60, "", 1024, 1, "Parua::onPetDeath";
+ goto L_Summon;
+
+L_MOB4:
+ set $@MOB_4_SUMMON, $@MOB_4_SUMMON + 1;
+ set $@FIGHT_CAVE_POINTS, $@FIGHT_CAVE_POINTS - 20;
+ areamonster "029-3.gat", 20, 20, 70, 60, "", 1043, 1, "Parua::onPetDeath";
+ goto L_Summon;
+
+L_MOB5:
+ set $@MOB_5_SUMMON, $@MOB_5_SUMMON + 1;
+ set $@FIGHT_CAVE_POINTS, $@FIGHT_CAVE_POINTS - 5;
+ areamonster "029-3.gat", 20, 20, 70, 60, "", 1010, 1, "Parua::onPetDeath";
+ goto L_Summon;
+
+L_MOB6:
+ set $@MOB_6_SUMMON, $@MOB_6_SUMMON + 1;
+ set $@FIGHT_CAVE_POINTS, $@FIGHT_CAVE_POINTS - 1;
+ areamonster "029-3.gat", 20, 20, 70, 60, "", 1008, 1, "Parua::onPetDeath";
+ goto L_Summon;
+
+// Called on each player once every 5 seconds
+onTick:
+ if (isdead(0)) end;
+ set $@FIGHT_CAVE_PLAYER_COUNT, $@FIGHT_CAVE_PLAYER_COUNT + 1;
+ end;
+
+onPetDeath:
+ end;
+
+onInit:
+ initnpctimer;
+ startnpctimer;
+L_CleanUp:
+ npctalk "Game Over";
+ mapannounce "029-1.gat", "Parua: The dungeon is now ready for its next victims.", 0;
+ set $@FIGHT_CAVE_STATUS, 0;
+ set $@FIGHT_CAVE_PLAYER_COUNT, 0;
+ set $@FIGHT_CAVE_LEVEL, 1;
+ set $@FIGHT_CAVE_ROUND_TIMER, 0;
+ killmonster "029-3.gat", "Parua::onPetDeath";
+ end;
+
+}