summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--world/map/npc/005-4/bossfight.txt246
1 files changed, 123 insertions, 123 deletions
diff --git a/world/map/npc/005-4/bossfight.txt b/world/map/npc/005-4/bossfight.txt
index 34585360..d4616363 100644
--- a/world/map/npc/005-4/bossfight.txt
+++ b/world/map/npc/005-4/bossfight.txt
@@ -1,207 +1,207 @@
//Author: Kage
-005-4.gat,36,19,0 script Switch#elecave 127,{
- if ($@ELE_CAVE_STATUS != 0) goto L_Enjoy;
+005-4.gat,36,19,0|script|Switch#elecave|127,{
+ if ($@ELE_CAVE_STATUS != 0) goto L_Enjoy;
- mes "*You see a switch, it is flipped off*";
+ mes "*You see a switch, it is flipped off*";
menu "No, I am NOT flipping the switch... thats final.", L_Exit,
- "Ha! What's the worst that could happen?", -;
+ "Ha! What's the worst that could happen?", -;
- mes "*As you flip the switch, the cave starts to rumble*";
+ mes "*As you flip the switch, the cave starts to rumble*";
- if ($@ELE_CAVE_STATUS != 0) goto L_Enjoy; // Prevent from starting level 1 from two different players
+ if ($@ELE_CAVE_STATUS != 0) goto L_Enjoy; // Prevent from starting level 1 from two different players
- set $@ELE_CAVE_STATUS, 1;
- set $@ELE_CAVE_PLAYER_COUNT, getareausers("005-4.gat", 19, 19, 54, 37);
+ set $@ELE_CAVE_STATUS, 1;
+ set $@ELE_CAVE_PLAYER_COUNT, getareausers("005-4.gat", 19, 19, 54, 37);
- startnpctimer;
+ startnpctimer;
L_Start_Level_1:
- set $@ELE_CAVE_LEVEL, 1;
+ set $@ELE_CAVE_LEVEL, 1;
- mapannounce "005-4.gat", "Level 1 starting", 0;
+ mapannounce "005-4.gat", "Level 1 starting", 0;
- // Random colors for everyone!
- areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::onChaos";
+ // Random colors for everyone!
+ areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::onChaos";
- // Two red, two blue.
- areamonster "005-4.gat", 19, 19, 54, 37, "", 1080, 2, "Switch#elecave::onBlueDeath";
- areamonster "005-4.gat", 19, 19, 54, 37, "", 1081, 2, "Switch#elecave::onRedDeath";
- goto L_Exit; // This one is triggered on talking to the switch.
+ // Two red, two blue.
+ areamonster "005-4.gat", 19, 19, 54, 37, "", 1080, 2, "Switch#elecave::onBlueDeath";
+ areamonster "005-4.gat", 19, 19, 54, 37, "", 1081, 2, "Switch#elecave::onRedDeath";
+ goto L_Exit; // This one is triggered on talking to the switch.
L_Enjoy:
- mes "*As you get ready to touch the switch, a spark of the opposite color flys to you. But oddly it doesn't hurt at all.*";
+ mes "*As you get ready to touch the switch, a spark of the opposite color flys to you. But oddly it doesn't hurt at all.*";
- if (@ELE_CAVE_COLOR == 1) goto L_Set_Blue;
- if (@ELE_CAVE_COLOR == 2) goto L_Set_Red;
+ if (@ELE_CAVE_COLOR == 1) goto L_Set_Blue;
+ if (@ELE_CAVE_COLOR == 2) goto L_Set_Red;
L_Set_Red:
- set @ELE_CAVE_COLOR, 1;
- goto L_Exit;
+ set @ELE_CAVE_COLOR, 1;
+ goto L_Exit;
L_Set_Blue:
- set @ELE_CAVE_COLOR, 2;
- goto L_Exit;
+ set @ELE_CAVE_COLOR, 2;
+ goto L_Exit;
L_Exit:
- close;
- end;
+ close;
+ end;
//-----------------------No player talking below this line-------------------------------
// Fight logic
OnTimer3000:
- setnpctimer 0;
+ setnpctimer 0;
- // We stop if no live players are around
- if ($@ELE_CAVE_PLAYER_COUNT == 0) goto L_CleanUp;
- set $@ELE_CAVE_PLAYER_COUNT, 0; // The onTick refills this with a live count
+ // We stop if no live players are around
+ if ($@ELE_CAVE_PLAYER_COUNT == 0) goto L_CleanUp;
+ set $@ELE_CAVE_PLAYER_COUNT, 0; // The onTick refills this with a live count
- // We punish them for having a different count (Aka need kill them at the same time)
- set $@ELE_CAVE_RED_COUNT, mobcount("005-4.gat","Switch#elecave::onRedDeath") + 1;
- set $@ELE_CAVE_BLUE_COUNT, mobcount("005-4.gat","Switch#elecave::onBlueDeath") + 1;
+ // We punish them for having a different count (Aka need kill them at the same time)
+ set $@ELE_CAVE_RED_COUNT, mobcount("005-4.gat","Switch#elecave::onRedDeath") + 1;
+ set $@ELE_CAVE_BLUE_COUNT, mobcount("005-4.gat","Switch#elecave::onBlueDeath") + 1;
- set $@ELE_CAVE_DIFF, 0;
- if ($@ELE_CAVE_RED_COUNT > $@ELE_CAVE_BLUE_COUNT) goto L_More_Red;
- if ($@ELE_CAVE_RED_COUNT < $@ELE_CAVE_BLUE_COUNT) goto L_More_Blue;
+ set $@ELE_CAVE_DIFF, 0;
+ if ($@ELE_CAVE_RED_COUNT > $@ELE_CAVE_BLUE_COUNT) goto L_More_Red;
+ if ($@ELE_CAVE_RED_COUNT < $@ELE_CAVE_BLUE_COUNT) goto L_More_Blue;
- if ($@ELE_CAVE_LAST_MESSAGE != 0) mapannounce "005-4.gat", "The ions are once again balanced. Try to kill a red and blue at the same time.", 0;
- set $@ELE_CAVE_LAST_MESSAGE, 0;
+ if ($@ELE_CAVE_LAST_MESSAGE != 0) mapannounce "005-4.gat", "The ions are once again balanced. Try to kill a red and blue at the same time.", 0;
+ set $@ELE_CAVE_LAST_MESSAGE, 0;
- goto L_Next_Step;
+ goto L_Next_Step;
L_More_Red:
- set $@ELE_CAVE_DIFF, $@ELE_CAVE_RED_COUNT - $@ELE_CAVE_BLUE_COUNT;
- if ($@ELE_CAVE_LAST_MESSAGE != 1) mapannounce "005-4.gat", "There are too many red ions in the air! Kill more red sparks!", 0;
- set $@ELE_CAVE_LAST_MESSAGE, 1;
- goto L_Next_Step;
+ set $@ELE_CAVE_DIFF, $@ELE_CAVE_RED_COUNT - $@ELE_CAVE_BLUE_COUNT;
+ if ($@ELE_CAVE_LAST_MESSAGE != 1) mapannounce "005-4.gat", "There are too many red ions in the air! Kill more red sparks!", 0;
+ set $@ELE_CAVE_LAST_MESSAGE, 1;
+ goto L_Next_Step;
L_More_Blue:
- set $@ELE_CAVE_DIFF, $@ELE_CAVE_BLUE_COUNT - $@ELE_CAVE_RED_COUNT;
- if ($@ELE_CAVE_LAST_MESSAGE != 2) mapannounce "005-4.gat", "There are too many blue ions in the air! Kill more blue sparks!", 0;
- set $@ELE_CAVE_LAST_MESSAGE, 2;
- goto L_Next_Step;
+ set $@ELE_CAVE_DIFF, $@ELE_CAVE_BLUE_COUNT - $@ELE_CAVE_RED_COUNT;
+ if ($@ELE_CAVE_LAST_MESSAGE != 2) mapannounce "005-4.gat", "There are too many blue ions in the air! Kill more blue sparks!", 0;
+ set $@ELE_CAVE_LAST_MESSAGE, 2;
+ goto L_Next_Step;
L_Next_Step:
- // Basic per player logic
- areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::onTick";
+ // Basic per player logic
+ areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::onTick";
- if ($@ELE_CAVE_RED_COUNT == 0 && $@ELE_CAVE_BLUE_COUNT == 0) goto L_Next_Level;
+ if ($@ELE_CAVE_RED_COUNT == 0 && $@ELE_CAVE_BLUE_COUNT == 0) goto L_Next_Level;
- end;
+ end;
L_Next_Level:
- if ($@ELE_CAVE_LEVEL == 1) goto L_Start_Level_2;
- if ($@ELE_CAVE_LEVEL == 2) goto L_Start_Level_3;
- if ($@ELE_CAVE_LEVEL == 3) goto L_CleanUp;
- end;
+ if ($@ELE_CAVE_LEVEL == 1) goto L_Start_Level_2;
+ if ($@ELE_CAVE_LEVEL == 2) goto L_Start_Level_3;
+ if ($@ELE_CAVE_LEVEL == 3) goto L_CleanUp;
+ end;
L_Start_Level_2:
- set $@ELE_CAVE_LEVEL, 2;
+ set $@ELE_CAVE_LEVEL, 2;
- mapannounce "005-4.gat", "Level 2 starting", 0;
+ mapannounce "005-4.gat", "Level 2 starting", 0;
- // Random colors for everyone!
- areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::onChaos";
+ // Random colors for everyone!
+ areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::onChaos";
- // four red, four blue.
- areamonster "005-4.gat", 19, 19, 54, 37, "", 1080, 4, "Switch#elecave::onBlueDeath";
- areamonster "005-4.gat", 19, 19, 54, 37, "", 1081, 4, "Switch#elecave::onRedDeath";
- end;
+ // four red, four blue.
+ areamonster "005-4.gat", 19, 19, 54, 37, "", 1080, 4, "Switch#elecave::onBlueDeath";
+ areamonster "005-4.gat", 19, 19, 54, 37, "", 1081, 4, "Switch#elecave::onRedDeath";
+ end;
L_Start_Level_3:
- set $@ELE_CAVE_LEVEL, 3;
+ set $@ELE_CAVE_LEVEL, 3;
- mapannounce "005-4.gat", "Level 3 starting", 0;
+ mapannounce "005-4.gat", "Level 3 starting", 0;
- // Random colors for everyone!
- areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::onChaos";
+ // Random colors for everyone!
+ areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::onChaos";
- // eight red, eight blue.
- areamonster "005-4.gat", 19, 19, 54, 37, "", 1080, 8, "Switch#elecave::onBlueDeath";
- areamonster "005-4.gat", 19, 19, 54, 37, "", 1081, 8, "Switch#elecave::onRedDeath";
- end;
+ // eight red, eight blue.
+ areamonster "005-4.gat", 19, 19, 54, 37, "", 1080, 8, "Switch#elecave::onBlueDeath";
+ areamonster "005-4.gat", 19, 19, 54, 37, "", 1081, 8, "Switch#elecave::onRedDeath";
+ end;
// Being ticks
onChaos:
- if (isdead()) end;
+ if (isdead()) end;
L_Set_Color:
- message strcharinfo(0), "You feel funny. You think your color has changed.";
- set @ELE_CAVE_COLOR, rand(1, 2);
- end;
+ message strcharinfo(0), "You feel funny. You think your color has changed.";
+ set @ELE_CAVE_COLOR, rand(1, 2);
+ end;
onTick:
- if (isdead()) end;
+ if (isdead()) end;
- // Count this player as alive
- set $@ELE_CAVE_PLAYER_COUNT, $@ELE_CAVE_PLAYER_COUNT + 1;
+ // Count this player as alive
+ set $@ELE_CAVE_PLAYER_COUNT, $@ELE_CAVE_PLAYER_COUNT + 1;
- set @drainamount, MaxHp / -20;
+ set @drainamount, MaxHp / -20;
- if ($@ELE_CAVE_DIFF != 0) heal @drainamount * $@ELE_CAVE_DIFF, 0;
+ if ($@ELE_CAVE_DIFF != 0) heal @drainamount * $@ELE_CAVE_DIFF, 0;
- // Make sure they have a color
- if (@ELE_CAVE_COLOR == 0) goto L_Set_Color;
+ // Make sure they have a color
+ if (@ELE_CAVE_COLOR == 0) goto L_Set_Color;
- if (@ELE_CAVE_COLOR == 1) goto L_Do_Red;
- if (@ELE_CAVE_COLOR == 2) goto L_Do_Blue;
+ if (@ELE_CAVE_COLOR == 1) goto L_Do_Red;
+ if (@ELE_CAVE_COLOR == 2) goto L_Do_Blue;
- end;
+ end;
L_Do_Red:
- specialeffect2 114; // Red effects
+ specialeffect2 114; // Red effects
- if (isin("005-4.gat", 42, 19, 54, 32)) goto L_Heal;
- if (isin("005-4.gat", 32, 19, 54, 37)) end;
- message strcharinfo(0), "Sparks are flying between you and a piller. Maybe you should stand near a piller with the same color as you.";
- heal MaxHp / -6, 0;
+ if (isin("005-4.gat", 42, 19, 54, 32)) goto L_Heal;
+ if (isin("005-4.gat", 32, 19, 54, 37)) end;
+ message strcharinfo(0), "Sparks are flying between you and a piller. Maybe you should stand near a piller with the same color as you.";
+ heal MaxHp / -6, 0;
- end;
+ end;
L_Do_Blue:
- specialeffect2 115; // Blue effects
+ specialeffect2 115; // Blue effects
- if (isin("005-4.gat", 19, 19, 31, 32)) goto L_Heal;
- if (isin("005-4.gat", 19, 19, 41, 37)) end;
- message strcharinfo(0), "Sparks are flying between you and a piller. Maybe you should stand near a piller with the same color as you";
- heal MaxHp / -6, 0;
+ if (isin("005-4.gat", 19, 19, 31, 32)) goto L_Heal;
+ if (isin("005-4.gat", 19, 19, 41, 37)) end;
+ message strcharinfo(0), "Sparks are flying between you and a piller. Maybe you should stand near a piller with the same color as you";
+ heal MaxHp / -6, 0;
- end;
+ end;
L_Heal:
- heal MaxHp / 20, 0;
- end;
+ heal MaxHp / 20, 0;
+ end;
// Death triggers
onBlueDeath:
- // Blue players have to kill blue sparks
- if (@ELE_CAVE_COLOR == 2) end;
- message strcharinfo(0), "The dying spark reacts explosively with you. You should only kill sparks with the same color as you.";
- heal MaxHp / -2, 0;
- end;
+ // Blue players have to kill blue sparks
+ if (@ELE_CAVE_COLOR == 2) end;
+ message strcharinfo(0), "The dying spark reacts explosively with you. You should only kill sparks with the same color as you.";
+ heal MaxHp / -2, 0;
+ end;
onRedDeath:
- // Red players have to kill red sparks
- if (@ELE_CAVE_COLOR == 1) end;
- message strcharinfo(0), "The dying spark reacts explosively with you. You should only kill sparks with the same color as you.";
- heal MaxHp / -2, 0;
- end;
+ // Red players have to kill red sparks
+ if (@ELE_CAVE_COLOR == 1) end;
+ message strcharinfo(0), "The dying spark reacts explosively with you. You should only kill sparks with the same color as you.";
+ heal MaxHp / -2, 0;
+ end;
onInit:
- initnpctimer;
- stopnpctimer;
+ initnpctimer;
+ stopnpctimer;
L_CleanUp:
- set $@ELE_CAVE_LAST_MESSAGE, 0;
- set $@ELE_CAVE_STATUS, 0;
- set $@ELE_CAVE_PLAYER_COUNT, 0;
- set $@ELE_CAVE_LEVEL, 0;
- set $@ELE_CAVE_ROUND_TIMER, 0;
-
- killmonster "005-4.gat", "Switch#elecave::onBlueDeath";
- killmonster "005-4.gat", "Switch#elecave::onRedDeath";
-
- stopnpctimer;
- setnpctimer 0;
- end;
+ set $@ELE_CAVE_LAST_MESSAGE, 0;
+ set $@ELE_CAVE_STATUS, 0;
+ set $@ELE_CAVE_PLAYER_COUNT, 0;
+ set $@ELE_CAVE_LEVEL, 0;
+ set $@ELE_CAVE_ROUND_TIMER, 0;
+
+ killmonster "005-4.gat", "Switch#elecave::onBlueDeath";
+ killmonster "005-4.gat", "Switch#elecave::onRedDeath";
+
+ stopnpctimer;
+ setnpctimer 0;
+ end;
}