summaryrefslogtreecommitdiff
path: root/world/map/npc/magic/event-alonsoalonsy.txt
blob: 04f5db02121ae9ae32160509a0d703de288ae78b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
// #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;
}