diff options
Diffstat (limited to 'npc/functions')
-rw-r--r-- | npc/functions/aurora.txt | 55 | ||||
-rw-r--r-- | npc/functions/news.txt | 13 | ||||
-rw-r--r-- | npc/functions/soul_menhir.txt | 7 | ||||
-rw-r--r-- | npc/functions/util.txt | 2 |
4 files changed, 72 insertions, 5 deletions
diff --git a/npc/functions/aurora.txt b/npc/functions/aurora.txt index d02f7747c..859bdd48f 100644 --- a/npc/functions/aurora.txt +++ b/npc/functions/aurora.txt @@ -39,6 +39,16 @@ // // $WORLDEXPO_ENEMY$ // Name of the enemy responsible for ruining the World's Expo +// $RAIDING_BOSS$ +// Name of the enemy who is raiding down the world +// $DREAMTOWER_SAGE$ +// Name of the sage who owns the Dream Towers +// DTOWER_DAY (CharReg) +// Player variable which controls Dream Tower reset +// DTOWER_ROLL (CharReg) +// Player variable which controls Dream Ticket drop rate +// DTOWER_FLOOR (CharReg) +// Player variable which controls current Dream Tower floor // AEF: BEGIN @@ -60,9 +70,11 @@ function script FYNewEvent { DelItemFromEveryPlayer(EventOre); DelItemFromEveryPlayer(BrokenMedal); DelItemFromEveryPlayer(EventDreamTicket); + DelItemFromEveryPlayer(EventNaftalin); DelChrRegFromEveryPlayer(DTOWER_DAY); DelChrRegFromEveryPlayer(DTOWER_ROLL); DelChrRegFromEveryPlayer(DTOWER_FLOOR); + DelChrRegFromEveryPlayer(FYRAID_LV); // Select the event switch ($FYEVENT_CYCLE % 12) { case 1: @@ -122,7 +134,6 @@ function script FYNewEvent { kamibroadcast("Candor Battle Season is now open!", "Aurora Events"); break; default: - // FIXME: PLACEHOLDER $EVENT$="Tower"; callfunc("FYEConf_Tower"); kamibroadcast("Dream Towers have appeared!", "Aurora Events"); @@ -394,6 +405,40 @@ function script FYE_Tower1 { +// Configure Boss Raid +function script FYEConf_Raid { + $RAIDING_BOSS$=any("Xakabael the Dark", "Janeb the Evil", "Platyna the Red", "Benjamin the Frost", "Reid the Terrific", "Nu'Rem the Destroyer", "Golbenez the Cruel", "King of Typos"); + deletearray $FYRAID_OWNER; + deletearray $FYRAID_TIME; + deletearray $FYRAID_HP; + deletearray $FYRAID_LV; + setarray $FYREWARD_PT, 10, 25, 50, 100, 150, + 200, 300, 500, 750, 1000, + 1250, 1500, 1750, 2000, 2500, + 3000, 3500, 4000, 5000, 6000, + 7500, 9000, 11000, 15000, 20000, + 25000, 30000, 35000, 40000, 50000; + // PS. Max Est. ? + + FYE_Autoset(); + $FYLOGIN_PTS=rand2(1, 2); + return; +} + +// Boss Raid Appears! +function script FYE_Raid { + .@mob=getarg(0, killedrid); + // Obtain the monster level and roll a hidden counter + .@lv=getmonsterinfo(.@mob, MOB_LV); + DTOWER_ROLL+=.@lv; + return; +} + + + + + + // Configure Fishing function script FYEConf_Fishing { @@ -504,6 +549,12 @@ function script FYE_Submit { setq2 Q_AuroraEvent, .@pts; delitem BrokenMedal, countitem(BrokenMedal); + } else if ($EVENT$ == "Raid") { + // .:: BOSS RAID ::. + .@pts+=countitem(EventNaftalin)*1; + + setq2 Q_AuroraEvent, .@pts; + delitem EventNaftalin, countitem(EventNaftalin); } else { // Wut? This is not an Aurora Event Exception($EVENT$+" is NOT a valid Aurora Event; Misdefinition.\n\nPlease ensure that it is defined in utils, aurora, news, and command/event.\n\nFYE_Submit - FYEventUsesRanking - FYE_* - FYEConf_* - FYStopEvent", RB_DEFAULT|RB_ISFATAL); @@ -518,7 +569,7 @@ function script FYE_Submit { // Stops any Aurora Event function script FYStopEvent { - setarray .@av$, "Kamelot", "Regnum", "Expo", "Fishing", "Candor", "Mining", "Tower"; + setarray .@av$, "Kamelot", "Regnum", "Expo", "Fishing", "Candor", "Mining", "Tower", "Raid"; if (array_find(.@av$, $EVENT$) >= 0) { sClear(); $EVENT$=""; diff --git a/npc/functions/news.txt b/npc/functions/news.txt index ab5be1b52..1b1e51ae2 100644 --- a/npc/functions/news.txt +++ b/npc/functions/news.txt @@ -288,13 +288,24 @@ function script EventHelp { mes l("The dream towers have shown up. They have several floors filled with treasure and dangerous monsters."); mes l("Every day, they disappear and a new one shows up on its place."); mes ""; - mes l("You need a %s for each floor, and defeat the gatekeeper to advance.", "Dream Ticket"); + mes l("You need a %s for each floor, and defeat the gatekeeper to advance.", getitemlink(EventDreamTicket)); mes l("Floors cannot be re-visited, and rewards increase at each floor."); mes ""; mes l("These towers must hold unfathomable secrets from %s.", $DREAMTOWER_SAGE$); mes l("We must find out what lies at the top, whatever the cost!"); mesc l("Location: The Mana Plane, Dream Tower"), 3; ///////////////////////////////////////////////////////////////////////// + } else if ($EVENT$ == "Raid") { + mesc ".:: " + l("Boss Raid") + " ::.", 2; + mes ""; + mes l("This is terrible - a fiend from a parallel dimension has broken in ours!"); + mes l("We are unsure of the cause, but they must be repelled at any cost!"); + mes l("Meanwhile, the sages of destiny will prepare a way to kick them back to wherever they belong!"); + mes ""; + mes l("Can we keep %s at bay long enough?", $RAIDING_BOSS$); + mes l("Collect their %s as well, so our wizards can do their magic!", getitemlink(EventNaftalin)); + mesc l("Location: The Mana Plane, Showdown Chamber"), 3; + ///////////////////////////////////////////////////////////////////////// } else { mesc l("There's no help available for this event."); ///////////////////////////////////////////////////////////////////////// diff --git a/npc/functions/soul_menhir.txt b/npc/functions/soul_menhir.txt index 2b2b1a897..92fd8b688 100644 --- a/npc/functions/soul_menhir.txt +++ b/npc/functions/soul_menhir.txt @@ -22,6 +22,7 @@ function script SoulMenhir { rif($EVENT$ == "Worker", l("[Worker Day] Send soul to the Contributor Cave!")), L_Worker, rif($EVENT$ == "Christmas" && BaseLevel >= 20, l("[Christmas] Send soul to the Christmas Workshop!")), L_Xmas, // TODO: In future there'll be an event map rif($EVENT$ == "Tower" && countitem(EventDreamTicket), l("Dream Tower")), L_Tower, + rif($EVENT$ == "Raid", l("Boss Raid")), L_Raid, l("Leave it alone."), -; return; @@ -92,13 +93,17 @@ L_Xmas: message strcharinfo(0), l("You are now at the Christmas Workshop."); close; -// FIXME: Dream Tower Warp L_Tower: if ($EVENT$ != "Tower") goto L_DontPanic; if (!countitem(EventDreamTicket)) goto L_DontPanic; doevent "sDreamTower::OnWarpTo"; close; +L_Raid: + if ($EVENT$ != "Raid") goto L_DontPanic; + callfunc("FYRaid_Select"); + close; + L_DontPanic: message strcharinfo(0), l("(A strange barrier keeps you from touching the stone at this time.)"); return; diff --git a/npc/functions/util.txt b/npc/functions/util.txt index abcbfc903..f64383b69 100644 --- a/npc/functions/util.txt +++ b/npc/functions/util.txt @@ -662,7 +662,7 @@ function script islegendary { // Returns if an event is a ranked Aurora Event or not // (Had to be moved from functions/aurora.txt) function script FYEventUsesRanking { - setarray .@av$, "Expo", "Fishing", "Mining", "Tower"; + setarray .@av$, "Expo", "Fishing", "Mining", "Tower", "Raid"; if (array_find(.@av$, $EVENT$) >= 0) { return true; } |