From 11a8363b755270ea0f5aa8dff9651be9aea6cc23 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Tue, 11 Aug 2020 16:41:58 -0300 Subject: Candor Battle now comes with five difficulties: Easy, Normal, Hard, Out of Mind and Cronqvist Mode. Each mode raises difficulty in 30%, for a total of 150% at Cronqvist Mode. OoM mode is restricted to Candor Top 3. Cronqvist is only available at event. --- npc/006-1/crazyfefe.txt | 49 +++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 4 deletions(-) (limited to 'npc/006-1/crazyfefe.txt') diff --git a/npc/006-1/crazyfefe.txt b/npc/006-1/crazyfefe.txt index 3530d29b5..693bccb28 100644 --- a/npc/006-1/crazyfefe.txt +++ b/npc/006-1/crazyfefe.txt @@ -6,7 +6,13 @@ // Crazyfefe will wake up when he smells battle // Variables: // $@FEFE_CAVE_LEVEL -// Tracks if a fight is going on. Only that. +// Tracks selected difficulty level. +// 0 - Not started +// 1 - Easy +// 2 - Normal +// 3 - Hard +// 4 - Out of Mind (Exclusive for top 3) +// 5 - Cronqvist Mode (Exclusive for Candor Battle Season) // $@FEFE_DELAY // Tracks the delay between challenges. Also used to start the combat. Set it to zero so you can start fight at once. // $@FEFE_CAVE_HERO$ @@ -79,6 +85,14 @@ function pleaseWait { return; } +// Are you a Candor Top 3? +// ISCANDORTOP3( - ) +function ISCANDORTOP3 { + return (strcharinfo(0) == $@cfefe_name$[0] || + strcharinfo(0) == $@cfefe_name$[1] || + strcharinfo(0) == $@cfefe_name$[2]); +} + function Scoreboard { mesc l("All leaderboards are refreshed hourly."), 1; mesc l("Your current score: @@", CRAZYPOINTS), 3; @@ -121,6 +135,28 @@ function Challenge { next; } + // Difficulty Selection + mesc l("Select difficulty."), 1; + mesc l("Out of Mind mode is only available for Top 3."); + mesc l("Cronqvist mode is only available during Candor Battle."); + mesc l("Only Cronqvist Mode yields more points per wave!"); + menuint + l("Easy"), 1, + l("Normal"), 2, + l("Hard"), 3, + rif(ISCANDORTOP3(), l("Out of Mind")), 4, + rif($EVENT$ == "Candor", l("Cronqvist Mode")), 5; + .@cdif=@menuret; + next; + + // Already started? + if ($@FEFE_WAVE || $@FEFE_CAVE_HERO$ != "") + { + mesn; + mesq l("Sorry, @@ already started the fight.", $@FEFE_CAVE_HERO$); + close; + } + menuint l("Sorry, I misclicked the first button. Have a nice nap, great Crazyfefe!"), -1, rif(is_gm() || $EVENT$ == "Candor", l("WHAT ARE WE WAITING FOR?! START ALREADY!")), 0, @@ -147,6 +183,7 @@ function Challenge { // Time delay $@FEFE_DELAY = gettimetick(2)+60*@menuret; $@FEFE_CAVE_HERO$ = strcharinfo(0); + .DIFFICULTY = .@cdif; // We must begin at once, so ignore normal procedure if (!@menuret) { @@ -172,7 +209,8 @@ function StartFight { CleanUp(); } - $@FEFE_CAVE_LEVEL = 1; + $@FEFE_CAVE_LEVEL = .DIFFICULTY; + .DIFFICULTY = 0; $@FEFE_WAVE = 0; $@FEFE_DELAY = gettimetick(2)+.delay; $@FEFE_CAVE_PLAYER_COUNT = getmapusers("006-1"); @@ -209,6 +247,7 @@ function CaveLogic { // Recalculate difficulty $@FEFE_DIFFICULTY=0; areatimer "006-1", 20, 20, 70, 60, 10, "Crazyfefe::OnSumLevel"; + sleep(15); // New wave condition: All mobs dead, or 2 minutes have passed if (mobcount("006-1", "Crazyfefe::OnPetDeath") <= 0 || .wtime >= 120) @@ -225,7 +264,8 @@ function NextRound { // Prepare next round, and reward survivors $@FEFE_DIFFICULTY+=$@FEFE_CAVE_PLAYER_COUNT+$@FEFE_WAVE*6; $@FEFE_DIFFICULTY+=(($@FEFE_WAVE/5)*10); - $@FEFE_DIFFICULTY=$@FEFE_DIFFICULTY*13/10; // +30% + .@mult=10+(3*$@FEFE_CAVE_LEVEL); // +30% per difficulty setting + $@FEFE_DIFFICULTY=$@FEFE_DIFFICULTY*.@mult/10; areatimer "006-1", 20, 20, 70, 60, 10, "Crazyfefe::OnReward"; mapannounce "006-1", "The wave nÂș "+$@FEFE_WAVE+" is starting with " + $@FEFE_CAVE_PLAYER_COUNT + " player(s) left alive." , 0; @@ -335,7 +375,7 @@ OnReward: if ($@FEFE_WAVE % 5 == 0) Zeny+=.@prize; getexp .@prize, rand(1,3); - @crazypoints+=1; + @crazypoints+=($@FEFE_CAVE_LEVEL >= 5 ? 2 : 1); end; // Every 5 seconds, handle cave, if fighting. Does nothing when waiting. @@ -364,5 +404,6 @@ OnInit: .price=400; .delay=(60*25); .wtime=0; + .DIFFICULTY=0; end; } -- cgit v1.2.3-70-g09d2