summaryrefslogtreecommitdiff
path: root/world/map/conf/magic-misc.sex
blob: 97263a03a9488662ed37856c309e44d63682e2f8 (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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
"--------------------------------------------------------------------------------"
"Special-purpose quasispells"
"--------------------------------------------------------------------------------"
(SPELL (NONMAGIC SILENT) marriage "marry" (PC target)
    (=>
        (GUARD
            (REQUIRE
                (||
                    (is_in
                        (location caster)
                        (@+
                            (@ "014-1.gat" 28 39)
                            8
                            6))
                    (is_in
                        (location caster)
                        (@+
                            (@ "021-2.gat" 20 25)
                            4
                            4)))))
        (EFFECT
            (IF (== target caster)
                (ABORT)) "no valid target or tried to marry self?"
            (IF (<
                    (level caster)
                    MIN_MARRY_LEVEL)
                (BLOCK
                    (message caster
                        (+
                            (+ "You must be level " MIN_MARRY_LEVEL)
                            " or higher to marry!"))
                    (ABORT)))
            (IF (<
                    (level target)
                    MIN_MARRY_LEVEL)
                (BLOCK
                    (message caster
                        (+
                            (+ "Your partner must be level " MIN_MARRY_LEVEL)
                            " or higher to marry!"))
                    (ABORT)))
            (IF (==
                    (partner caster)
                    target)
                (BLOCK
                    (message caster
                        (+
                            (+ "You and "
                                (name_of target))
                            " are already married."))
                    (ABORT)))
            (IF (is_married caster)
                (BLOCK
                    (message caster "You are already married!")
                    (ABORT)))
            (IF (is_married target)
                (BLOCK
                    (message caster
                        (+
                            (name_of target)
                            " is already married."))
                    (ABORT)))
            (IF (!=
                    (distance
                        (location caster)
                        (location target))
                    1)
                (BLOCK
                    (message caster "You need to stand next to each other.")
                    (ABORT)))
            (IF (||
                    (==
                        (count_item caster "WeddingRing")
                        0)
                    (==
                        (count_item target "WeddingRing")
                        0))
                (BLOCK
                    (message caster "You must both be wearing your wedding rings!")
                    (ABORT)))
            (SET script_target target)
            (SCRIPT "{
                announce @caster_name$ + \" is asking \" + strcharinfo(0) + \" for marriage.\", 2;
                mes @caster_name$ + \" wishes to marry you.\";
                mes \"Do you accept?\";
                next;
                menu
                    \"Yes, I do!\", L_yes,
                    \"No.\", L_Close;

            L_yes:
                if (marriage(@caster_name$))
                    announce @caster_name$ + \" and \" + strcharinfo(0) + \" are now married!\", 0;
                goto L_Close;

            L_Close:
                close;
            }")
            (IF (not
                    (is_married caster))
                (message caster
                    (+
                        (name_of target)
                        " turned down your marriage offer."))))))

(SPELL (LOCAL) mouboo-groan "#g" ()
    (=>
        (GUARD
            (MANA 1)
            (REQUIRE
                (==
                    (name_of caster)
                    "MOUBOOTAUR")))
        (EFFECT
            (FOREACH PC p
                (rbox
                    (location caster)
                    200)
                (SET distance
                    (rdistance
                        (location caster)
                        (location p))))
            (IF (< distance 15)
                (message p "The moubootaur's groaning rings in your ears!")
                (IF (< distance 70)
                    (message p "You hear a loud groaning noise, not far away...")
                    (message p "You hear an odd groaning noise in the distance..."))))))

(SPELL (LOCAL) mouboo-smell "#s" ()
    (=>
        (GUARD
            (MANA 1)
            (REQUIRE
                (==
                    (name_of caster)
                    "MOUBOOTAUR")))
        (EFFECT
            (WAIT 30000)
            (FOREACH PC p
                (rbox
                    (location caster)
                    30)
                (message p "You notice a strange smell all around you.")))))

"--------------------------------------------------------------------------------"
"Kill the GM event spell"
"--------------------------------------------------------------------------------"
(SPELL (NONMAGIC) killgm0 "#pullrabbit" ()
    (=>
        (REQUIRE
            (is_equipped caster "MagicGMTopHat"))
        (EFFECT
            (SCRIPT "{
                callfunc \"ActivateMagicGMTophat\";
            }"))))