summaryrefslogblamecommitdiff
path: root/world/map/npc/magic/event-alonsoalonsy.txt
blob: 04f5db02121ae9ae32160509a0d703de288ae78b (plain) (tree)








































































































































                                                                                                  
// #alonsialonso
// Replacement of Easter 2010 spell
// Known as "World Shift Spell"
//
// Variables:
// @alonso -> Nods to DoomsdayAct5() that you'll pay in petals

-|script|alonsialonso|32767
{
    if (call("magic_checks", 1)) end;
    callfunc "magic_exp";

    // Not during Act 5 of Doomsday
    if ($DOOMSDAY != 3) end;

    // Rule 1: Mushroom Spot
    if (isin("057-1", 125, 62, 127, 64))
        goto L_ShroomRule;

    // Rule 2: Underworld Chapel
    if (isin("070-1", 134, 30, 134, 30))
        goto L_ChapelRule;

    // Rule 3: Tulimshar MMVI
    //if (isin("003-1", 42, 92, 46, 95))
    //    goto L_TulimRule;

    // General rule: Simulate death
    if (countitem("DarkPetal"))
        goto L_EmulateDeath;

    message strcharinfo(0), "You cannot shift worlds at this time.";
    end;

//////////////////////////////////////////////////////
L_ShroomRule:
    if (!$@halloween_time) end;
    if (!$DOOMSDAY_TWARP) end;
    if ($DOOMSDAY_TJANDE == 1) end;

    mes ".:: Eternal Seals Gate ::.";
    mes "";
    mes "One of the many (?) passages leading to the Underworld.";
    mes "During halloween, it is weakened enough to allow beings to cross.";
    mes "Perhaps it could be widened?";
    next;
    menu
        "Leave", L_Close,
        "[Dark Magic] Check Status", L_ShroomCheck,
        "[Dangerous] Try to cross", L_ShroomCross;

L_ShroomCheck:
    if (getskilllv(SKILL_MAGIC_DARK) > 0)
        mes "Status: "+if_then_else($DOOMSDAY_CNT2 < 150,
        "##1Insufficient##0", "##2Sufficient##0")+
        if_then_else(getskilllv(SKILL_MAGIC_DARK) > 1,
        " ("+($DOOMSDAY_CNT2*100/150)+" %)", "");
    else
        mes "Status: ##8Unknown##0";
    close;

L_ShroomCross:
    if ($DOOMSDAY_CNT2 < 150)
        goto L_FailCross;
    if (Hp < 1)
        close;

    // Warp you to Underworld
    warp "070-1", 30, 92;
    message strcharinfo(0), "World Shift : Shifted to Underworld (Area 70)";
    misceffect FX_PENTAGRAM_BUILDUP, strcharinfo(0);
    close;

//////////////////////////////////////////////////////
L_ChapelRule:
    if ($DOOMSDAY_TJANDE == 1) end;
    if (!$@halloween_time) end;

    mes ".:: Eternal Seals Gate ::.";
    mes "";
    mes "This chapel is clearly unlocked.";
    mes "The lock seems to have been removed ##BOn purpose, from the outside.##b";
    mes "This is probably where Tormenta lives.";
    next;
    mes "##9Warning: This is the Underworld and it may defy common logic.";
    mes "Are you ready?##0";
    mes "##1Cost: 1x [@@666|@@]";
    next;
    menu
        "Cancel", L_Close,
        "Open the gate!", L_GateCheck;

L_GateCheck:
    if (!(countitem("BlackRose")))
        close;

    close2;
    misceffect FX_PENTAGRAM_BUILDUP, strcharinfo(0);
    addtimer 6000, "alonsialonso::OnChapelCross";
    end;

OnChapelCross:
    if (Hp < 1)
        end;
    if (!(countitem("BlackRose")))
        end;

    // Payment Execution
    delitem "BlackRose", 1;
    getitem "DarkPetal", 1;

    // Warp you to Tulimshar MMVI
    warp "003-1", 142, 22;
    message strcharinfo(0), "World Shift : Shifted to Tulimshar (Area MMVI)";
    misceffect FX_PENTAGRAM_BUILDUP, strcharinfo(0);
    end;

//////////////////////////////////////////////////////
L_EmulateDeath:
    set @alonso, 1;
    callfunc "DoomsdayAct5";
    end;

L_Close:
    close;

L_FailCross:
    warp "045-1", 105, 125;
    close;

//////////////////////////////////////////////////////
OnInit:
    set .invocation$, chr(MAGIC_SYMBOL) + "alonsialonso"; // used in npcs that refer to this spell
    registercmd .invocation$, strnpcinfo(0);
    end;
}