summaryrefslogtreecommitdiff
path: root/world/map/conf/magic-level3.sex
blob: 21b5692f1572411e55215f527b88c35ef61ed14f (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
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
"--------------------------------------------------------------------------------"
"Level 2 spells"
"--------------------------------------------------------------------------------"
(SPELL () cure-poison "#anju" (PC target)
    (LET level 2)
    (LET school LIFE)
    (=>
        (GUARD
            (MANA 15)
            (CASTTIME 1000)
            (REQUIRE
                (>
                    (skill caster MAGIC)
                    level))
            (REQUIRE
                (>
                    (skill caster school)
                    level))
            (REQUIRE
                (<
                    (rdistance
                        (location caster)
                        (location
                            (pc target)))
                    (+ 1
                        (/ spellpower 60))))
            (COMPONENTS "GambogeHerb"))
        (EFFECT
            (CALL adjust_spellpower school)
            (CALL default_effect)
            (IF (running_status_update target SC_POISON)
                (BLOCK
                    (CALL gain_heal_xp 40 1 2 2)
                    (stop_status_change target SC_POISON)
                    (CALL gain_xp 2 30)
                    (IF (!= caster target)
                        (sfx target SFX_HEAL 0)))))))

(SPELL () fire-ball "#flarfol" ()
    (LET level 2)
    (LET school WAR)
    (=>
        (GUARD
            (MANA 30)
            (CASTTIME 1000)
            (REQUIRE
                (>
                    (skill caster MAGIC)
                    level))
            (REQUIRE
                (>
                    (skill caster school)
                    level))
            (COMPONENTS "PileOfAsh"))
        (EFFECT
            (CALL fightclub_check 0)
            (CALL adjust_spellpower school)
            (SET damage
                (min
                    (+ 50
                        (*
                            (skill caster school)
                            40))
                    (+ 30
                        (/
                            (* spellpower 3)
                            2))))
            (SET damage_bonus
                (+
                    (level caster)
                    (* spellpower 2)))
            (SET radius
                (+ 2
                    (/ spellpower 50)))
            (CALL install_attack_spell
                (+ 1
                    (/ spellpower 60))
                5000
                10
                31)
            (ATTRIGGER
                (CALL attack_check target)
                (SET loc
                    (location target))
                (DISABLED (WAIT 500))
                (sfx loc 16 0)
                (FOREACH TARGET target
                    (rbox loc radius)
                    (IF (line_of_sight loc
                            (location target))
                        (BLOCK
                            (SET divisor
                                (+ 3
                                    (rdistance loc
                                        (location target))))
                            (CALL elt_damage target
                                (/
                                    (* damage 3)
                                    divisor)
                                (/
                                    (* damage_bonus 3)
                                    divisor)
                                ELT_WATER
                                ELT_FIRE
                                15))))))))

(SPELL () summon-partner "#kalzumin" ()
    (LET level 2)
    (LET school ASTRAL)
    (=>
        (GUARD
            (MANA 30)
            (CASTTIME 2000)
            (REQUIRE
                (>
                    (skill caster MAGIC)
                    level))
            (REQUIRE
                (>
                    (skill caster school)
                    level))
            (REQUIRE
                (is_married caster))
            (REQUIRE
                (is_equipped caster "WeddingRing")))
        (EFFECT
            (CALL adjust_spellpower school)
            (CALL default_effect)
            (IF (failed
                    (partner caster))
                (message caster "You call out for your partner, but there is no response.")
                (BLOCK
                    (message caster
                        (+
                            (+ "You call out for "
                                (name_of
                                    (partner caster)))
                            "."))
                    (message
                        (partner caster)
                        (+
                            (name_of caster)
                            " is calling for your aid!"))
                    (sfx
                        (partner caster)
                        2
                        0)
                    (WAIT
                        (max 5000
                            (- 30000
                                (* spellpower 60))))
                    (IF (failed
                            (partner caster))
                        (message caster "Your partner has abandoned you.")
                        (IF (is_dead
                                (partner caster))
                            (message caster
                                (+
                                    (+ "Something seems to have happened to "
                                        (name_of
                                            (partner caster)))
                                    "."))
                            (BLOCK
                                (sfx
                                    (location
                                        (partner caster))
                                    SFX_TELEPORT
                                    0)
                                (SET dest
                                    (awayfrom
                                        (location caster)
                                        (random_dir 1)
                                        1))
                                (warp
                                    (partner caster)
                                    dest)
                                (sfx dest SFX_TELEPORT 0)))))))))