summaryrefslogtreecommitdiff
path: root/game/story.rpy
blob: bea31a298ea7bd350d5613a1ea2033c9fd2aef88 (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
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
########################################################################################
#     This file is part of Spheres.
#     Copyright (C) 2019  Jesusalva

#     This library is free software; you can redistribute it and/or
#     modify it under the terms of the GNU Lesser General Public
#     License as published by the Free Software Foundation; either
#     version 2.1 of the License, or (at your option) any later version.

#     This library is distributed in the hope that it will be useful,
#     but WITHOUT ANY WARRANTY; without even the implied warranty of
#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
#     Lesser General Public License for more details.

#     You should have received a copy of the GNU Lesser General Public
#     License along with this library; if not, write to the Free Software
#     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
########################################################################################
# Game Story labels
define e = Character("Player")
define you = Character("[persistent.nickname]")

define e_dt = Character("???", color="#cccccc")
define e_dtk = Character("Inspector", color="#cccccc")
define e_ds = Character("???", color="#8e96d3")
define e_dsk = Character("Deadly Shadow", color="#8e96d3")
define e_mn = Character("Mentor", color="#ffccaa")
define e_gd = Character("???", color="#9943a8")
define e_gdk = Character("Goodess", color="#9943a8")
define e_gm = Character("Grandmaster", color="#9b7436")

define e_ot = Character("???", color="#ccdddd")
define e_gg = Character("Giulio", color="#ffaacc")

label SQ00001_prologue:
    python:
        while persistent.nickname is None:
            nick=renpy.call_screen("input_box",
    "Please insert an unique nickname (max 8 alphanumeric chars): ")
            if len(nick) > 8 or not nick.isalnum():
                renpy.call_screen("msgbox", "ERROR\nERRONEOUS NICKNAME DETECTED")
            else:
                persistent.nickname=nick

    play music MUSIC_PROLOGUE01.id() fadein 0.5
    scene black with None
    window hide
    centered "{cps=36}{b}Somewhere distant{/b}{/cps}{w=2.0}{nw}"
    scene bg darklands with Dissolve(2.0)
    centered "{b}Somewhere distant{/b}\n\n{fast}{cps=36}Darklands{/cps}"
    show dialog_deadlyshock at toffscreenright with None
    show dialog_darkmana at toffscreenright with None
    window show
    show dialog_detective at tcenter with Dissolve(1.0)
    e_dt "..."
    e_dt "This high peak... This eerie atmosphere... And, ugh, this smell..."
    e_dt "So, these are the darklands."
    e_dt "I didn't realize they were real. Or at least, I hoped so. If it is here..."
    e_dt "...Then there can be only one meaning. I have to report this at once!"
    e_ds "Going somewhere, darling? ♪"
    show dialog_detective at prologue_right1
    show dialog_deadlyshock at prologue_right2
    with move
    e_dt "Uh oh..."

    show dialog_detective at prologue_center
    show dialog_deadlyshock at prologue_right2
    show dialog_darkmana at prologue_left
    with move
    e_ds "Humans, always in hurry... Why don't you dance with us, darling? ♪"
    e_dt "I appreciate the invite, but I cannot afford to fail this mission. En garde!"
    scene black with vpunch
    stop music fadeout 2.5
    pause 1.0
    centered "Meanwhile\n{w=0.5}{nw}"
    centered "Meanwhile\nAcademy of Weisheit"
    scene bg academy with Dissolve(0.5)
    show dialog_spearman at toffscreenright with None
    play music MUSIC_PROLOGUE02.id() fadein 1.0

    "{color=#0f0}*bustling noises*{/color}"

    you "It surely is crowded here today! Who would think so many people would show up..."
    show dialog_giulio at tcenter with Dissolve(0.5)
    e_gg "OF COURSE so many people would show up, [persistent.nickname]. {i}He{/i} is a seasoned war veteran!"
    
    you "I would not know that, Giulio. You know how much time I've spent studying magic!"

    e_gg "Yes, you Mana Mages are the strangest kind of mages I ever heard about."

    e_gg "It might be easy for those like you, who can control the Mana Spheres..."

    you "Excuse me?! I barely can bring them forth, let alone controlling them."

    show dialog_spearman at prologue_right2
    show dialog_giulio at tleft
    with move

    e_ot "Excuse me, are you both enrolled at the Weisheit Academy?"
    e_gg "Uhm... You are an imperial spearman, right? What... Are you doing here?"
    you "Actually, Giulio... When did everyone left??"
    play music MUSIC_PROLOGUE03.id() fadein 0.6
    e_ot "Oh great, you {i}are{/i} students! I was afraid of returning to the base without any kills."
    e_ot "Die for me!!"

    e_gg "{color=#0f0}*psst*{/color} [persistent.nickname], be careful. You are no match for an imperial spearman, leave combat for a top grade knight like myself."

    # Giulio joins you!
    window hide
    python:
        txt=allunits[10000000]["name"]
        rar=allunits[10000000]["rare"]
        star=star_write(rar)
        show_img("unit_10000000", at_list=[truecenter])
        renpy.pause(0.1)
        renpy.call_screen("msgbox", "%s\n\nRecruited %d★ %s" % (star, rar, txt))
        renpy.hide("unit_10000000")
        _window_show(None)



    pause 0.2
    e_gg "You just focus at giving me spheres to fight. If you {color=#0f0}swipe my card down{/color}, I'll use the sphere there against these enemies."
    e_gg "I know you cannot control much beyond that right now, but that will suffice to defeat this spearman."
    e_gg "When you click on {color=#0f0}End turn{/color} at the upper right corner, we will fight. There are other things a mana mage can do, like summons or allowing us to use skills, but don't worry with that now."

    show dialog_giulio at prologue_left
    show dialog_spearman at tcenter
    with move
    e_gg "Let's do it! It is our time to shine!"
    return

####################################################
label SQ00001_post:
    window show
    scene bg forest_sunset
    show dialog_mentor at tcenter
    with fade
    e_mn "What are you both still doing here?! Can't you see the empire is upon us?!"
    you "Uhm, we were distracted..."
    e_mn "Now, you are a mana mage, right? Don't pretend to be a fool."
    e_mn "Take these crystals and try summoning someone to help you."
    e_mn "There should be a stronghold if you go though the meadow path, bordering the forest of fae."
    e_mn "The stronghold is much safer, go there and regroup with other students. I must go now."
    hide dialog_mentor with dissolve
    you "That was a lot to understand at once."
    show dialog_giulio at tcenter with dissolve
    e_gg "I can't believe you. It was {i}him{/i}, the marshall who wiped out an enemy platoon with just tactics."
    e_gg "He told you to {color=#0f0}recruit someone at the Tavern{/color} and head to the stronghold, right? Let's go!"
    scene black
    show expression Text(_("{font=f/Datalegreya.otf}{color=#fff}Act I:\n\n{/color}{/font}"), size=54) at truecenter
    show expression Text(_("{font=f/Datalegreya.otf}{color=#fff}\n\nThe Empire Invades{/color}{/font}"), size=54) at truecenter
    show expression Text(_("{font=f/Datalegreya.otf}Mana Spheres{/font}"), size=27)
    with Dissolve(1.5)
    window hide
    pause 2.5
    scene black with Dissolve(1.5)
    pause 0.3
    return

####################################################
label SQ00005_post:
    $ show_img("bg humancity", False)
    window show
    scene bg humancity
    show dialog_giulio at tcenter
    with Dissolve(1.0)
    e_gg "The stronghold is just ahead. It won't be long, now."
    return

####################################################
label SQ00006_pre:
    $ show_img("bg humancity", False)
    $ show_img("dialog_footsoldier", False)
    scene bg humancity with Dissolve(1.0)
    "You" "We did it! We reached the Stronghold!"
    show dialog_mentor at tcenter
    with dissolve
    e_mn "Yes, and you {i}are{/i} late. The council session has already started."
    window show
    scene bg castle2
    show dialog_goodess at tcustom(-0.8)
    show dialog_mentor at tcustom(-2.0)
    show dialog_grandmaster at tcustom(1.4)
    show dialog_giulio at tcustom(1.5)
    with Dissolve(1.0)
    e_gm "...And that's our current situation. Any questions? No? Good, because we don't have time to explain."
    e_gm "For those whom arrived {i}late{/i}, you can catch up later. The Empire will soon be upon us. Dismissed!"
    hide dialog_grandmaster with dissolve
    show dialog_mentor at tcustom(-1.5) with move
    e_gd "Welcome, [persistent.nickname]. I've heard you're a novice Mana Mage? Unfortunately, not many of your kind is around."
    e_gd "I wish I could stay and chat, but the enemy is on our doors. I advise you to get ready as well."
    hide dialog_goodess with dissolve
    e_mn "Giulio, [persistent.nickname]. We are planning an expedition to ask for aid from our allies at the Forest of Fae."
    e_mn "However, if this stronghold falls now, it'll be all for naught. And I fear our enemy already arrived."

    scene bg humancity
    show dialog_grandmaster2 at tzoom(0.70), tcustom(0.1)
    show dialog_footsoldier as sp0 at tcustom(-1.5)
    show dialog_footsoldier as sp1 at tcustom(-1.4)
    show dialog_footsoldier as sp2 at tcustom(-1.3)
    show dialog_footsoldier as sp3 at tcustom(-1.2)
    show dialog_footsoldier as sp4 at tcustom(-1.1)
    show dialog_footsoldier as sp5 at tcustom(-1.0)
    show dialog_footsoldier as sp6 at tcustom(-0.9)
    show dialog_footsoldier as sp7 at tcustom(-0.8)
    show dialog_footsoldier as sp8 at tcustom(-0.7)
    show dialog_footsoldier as sp9 at tcustom(-0.6)
    show dialog_mentor at tcustom(1.2)
    with Dissolve(1.5)
    e_mn "Defeat enemies to {color=#0f0}fill the summon gauge{/color}, then click the summon button to unleash a powerful attack."
    show dialog_grandmaster2 at tzoom(0.70), tcustom(0.3)
    show dialog_footsoldier as sp0 at tcustom(-1.4)
    show dialog_footsoldier as sp1 at tcustom(-1.3)
    show dialog_footsoldier as sp2 at tcustom(-1.2)
    show dialog_footsoldier as sp3 at tcustom(-1.1)
    show dialog_footsoldier as sp4 at tcustom(-1.0)
    show dialog_footsoldier as sp5 at tcustom(-0.9)
    show dialog_footsoldier as sp6 at tcustom(-0.8)
    show dialog_footsoldier as sp7 at tcustom(-0.7)
    show dialog_footsoldier as sp8 at tcustom(-0.6)
    show dialog_footsoldier as sp9 at tcustom(-0.5)
    with move
    e_mn "The summons act first. Make sure the timing is right, they can change the tides of the battle."
    show dialog_grandmaster2 at tzoom(0.70), tcustom(0.5)
    show dialog_footsoldier as sp0 at tcustom(-1.3)
    show dialog_footsoldier as sp1 at tcustom(-1.2)
    show dialog_footsoldier as sp2 at tcustom(-1.1)
    show dialog_footsoldier as sp3 at tcustom(-1.0)
    show dialog_footsoldier as sp4 at tcustom(-0.9)
    show dialog_footsoldier as sp5 at tcustom(-0.8)
    show dialog_footsoldier as sp6 at tcustom(-0.7)
    show dialog_footsoldier as sp7 at tcustom(-0.6)
    show dialog_footsoldier as sp8 at tcustom(-0.5)
    show dialog_footsoldier as sp9 at tcustom(-0.4)
    with move
    e_mn "Now - {i}en garde!{/i}"
    return


####################################################
label SQ00007_post:
    $ show_img("summon_1", False)
    scene bg castle2
    show summon_1 at truecenter
    with Dissolve(1.5)
    "???" "We saw your thirst. We saw your fight. We... Approve of you."
    "???" "We are the lurking danger, the shadows which prey on our foes. And we shall be your blade, if you desire."
    "???" "{color=#0f0}Summon us{/color} at combat by {color=#0f0}tapping our arrow{/color} on the summoning screen."
    you "I believe the summon configuration screen was some sort of cog on the battle? I should try this later."
    $ Player["max_sum"] = max(Player["max_sum"], 1) # FIXME
    scene black with dissolve
    return


####################################################
label SQ00010_post:
    ## TODO FIXME old scripts
    scene black with dissolve
    centered "{color=#f00}The content past this point is old and might not work. You have been warned.{/color}"
    ## TODO FIXME old scripts

    window show
    scene bg castle2
    show dialog_goodess at tcustom(-0.8)
    show dialog_mentor at tcustom(-2.0)
    show dialog_grandmaster at tcustom(1.4)
    show dialog_giulio at tcustom(1.5)
    with Dissolve(1.0)
    e_gm "...And that's our current situation. Any questions? No? Good, because we don't have time to explain."
    return

####################################################
label SQ00011_pre:
    #$ show_img("bg wilderness", False)
    #scene bg wilderness with Dissolve(1.0)
    $ show_img("dialog_milleue")
    "Milleue" "Are you the ones assigned to the Forest of Fae bandits? Am I right?"
    "Giulio" "And you would be...?"
    "Milleue" "So I'm right! Forest of Fae is sacred. We the Empire won't let you go there idly."
    "Milleue" "If you can, however, defeat my unit, then I'll reconsider your worthiness."
    "Milleue" "Perhaps I might even join you. Now, to arms! I'll judge you myself!"
    return

####################################################
label SQ00011_post:
    #$ show_img("bg wilderness", False)
    #scene bg wilderness with Dissolve(1.0)
    $ show_img("dialog_milleue", at_list=[tcenter])
    "Milleue" "Alright, I surrender! I admit defeat."
    "Milleue" "I'm afraid the path to the Forest of Fae won't be a walk in the park."
    "Milleue" "I'll go with you. But the other Imperial Soldiers will still try to stop you as you go."
    "You" "Wait. I always thought the Marshall served the empire...?"
    "Milleue" "Politics."
    "You" "Oh right. I guess I won't ask more, then."
    return

####################################################
label SQ00012_post:
    scene bg forest_sunset with Dissolve(0.5)
    "Giulio" "Mother Nature's sent us wolves... How much I hate it."
    "Giulio" "Mother Nature, please, GIVE ME A DECENT CHALLENGE!"
    $ show_img("dialog_milleue", at_list=[tcenter])
    "Milleue" "Be careful with what you wish for."
    "Giulio" "Oh, please. My sword will get rusty at this small fry. These wolves aren't qualified for a top knight like myself."
    return

####################################################
label SQ00013_pre:
    scene bg forest_sunset with Dissolve(0.5)
    "Giulio" "I hear battle sounds up ahead."
    "You" "It'll be quite a detour, but we should check."
    $ show_img("dialog_bandit", at_list=[tleft], tag="l")
    $ show_img("dialog_princess", at_list=[tright], tag="r")
    "{b}.:: CONTINUES ::.{/b}"
    return

####################################################
label SQ00014_post:
    scene bg forest_sunset with Dissolve(0.5)
    $ show_img("dialog_princess", at_list=[tcenter])
    "{b}.:: CONTINUES ::.{/b}"
    return