summary refs log tree commit diff stats
path: root/res/scripts/hallucination_interior.lua
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2021-02-22 18:26:46 -0500
committerKelly Rauchenberger <fefferburbia@gmail.com>2021-02-22 18:26:46 -0500
commit254ecd9527c105a8e15174bbddf13dc1fb4f554a (patch)
tree5526238166df427b25353389d67f6f5bbaf6ba1f /res/scripts/hallucination_interior.lua
parenteccebd48ac6c311023052386155d685dadfef202 (diff)
downloadtanetane-254ecd9527c105a8e15174bbddf13dc1fb4f554a.tar.gz
tanetane-254ecd9527c105a8e15174bbddf13dc1fb4f554a.tar.bz2
tanetane-254ecd9527c105a8e15174bbddf13dc1fb4f554a.zip
Re-dumped hallucination map/tileset
The hallucination cliff area and the hot spring map have also been dumped now, but they have not been tested and likely need work because they use a third layer, which is not yet supported. However these all share a tileset now, yay! I added collision and run sounds back to the tiles and hopefully it matches up with what it was before. Also the maps have nicer names now.

i.e. big change with no noticeable effects
Diffstat (limited to 'res/scripts/hallucination_interior.lua')
-rw-r--r--res/scripts/hallucination_interior.lua185
1 files changed, 185 insertions, 0 deletions
diff --git a/res/scripts/hallucination_interior.lua b/res/scripts/hallucination_interior.lua new file mode 100644 index 0000000..f0716dc --- /dev/null +++ b/res/scripts/hallucination_interior.lua
@@ -0,0 +1,185 @@
1hallucination_interior = {}
2
3function hallucination_interior.off_left()
4 ChangeMap("hallucination_beach", "fromRight")
5end
6
7function hallucination_interior.mailbox1()
8 StartCutscene()
9 DisplayMessage("* The mailbox lid is open...\n* Peek inside?", "", SpeakerType.NONE)
10 ShowChoice("Yes", "No")
11 WaitForEndOfMessage()
12
13 if GetChoiceSelection() == 0 then
14 DisplayMessage("* There are lots of postcards inside.\n* Read them?", "", SpeakerType.NONE)
15 ShowChoice("Yes", "No")
16 WaitForEndOfMessage()
17
18 if GetChoiceSelection() == 0 then
19 DisplayMessage("* The boy named Lucas is crying at a grave.\n\f* The boy named Lucas and his dog are loitering in the forest.\n\f* The boy named Lucas is getting into trouble in the mountains.\n\f* The boy named Lucas stole Beanoff from our garden.\n\f* The boy named Lucas is bullying animals.\n\f* The boy named Lucas learned some bad magic.\n\f* The boy named Lucas ......\n\f* The boy named Lucas ......\n\f* The boy named Lucas ......\n\f* The boy named Lucas .........\n\f* The mailbox let out a tremendous scream.", "", SpeakerType.NONE)
20 WaitForEndOfMessage()
21 end
22 end
23
24 HideCutsceneBars()
25end
26
27function hallucination_interior.join_claus()
28 StartCutscene()
29 SetAnimation("join_claus", "talk")
30 DisplayMessage("* Say, Lucas. Whatcha up to?\n\f* It looks so fun! Let me join you!", "Claus", SpeakerType.MAN)
31 ShowChoice("Yes", "No")
32 WaitForEndOfMessage()
33
34 if GetChoiceSelection() == 0 then
35 DisplayMessage("* Yes!\n\f* Okay, then I'll be at the very end!\n* Thanks!", "Claus", SpeakerType.MAN)
36 WaitForEndOfMessage()
37
38 local clausId = getSpriteByAlias("join_claus")
39 character():addSpriteToParty(getPlayerSprite(), clausId)
40 transform():undoCollision(clausId)
41
42 local clausSprite = getSprite(clausId)
43 clausSprite.persistent = true
44 else
45 DisplayMessage("* You won't let me join in?\nWhy not? Why not?\n\f* Why won't you let me join in?", "Claus", SpeakerType.MAN)
46 WaitForEndOfMessage()
47 end
48
49 SetAnimation("join_claus", "still")
50 HideCutsceneBars()
51end
52
53function hallucination_interior.mailbox_lightning()
54 StartCutscene()
55 DisplayMessage("* The mailbox lid is open...\n* Peek inside?", "", SpeakerType.NONE)
56 ShowChoice("Yes", "No")
57 WaitForEndOfMessage()
58
59 if GetChoiceSelection() == 1 then
60 HideCutsceneBars()
61 return
62 end
63
64 FadeMap(500, 0.5)
65 WaitForMapFade()
66
67 DisplayMessage("* ...?", "", SpeakerType.NONE)
68 WaitForEndOfMessage()
69
70 PlaySound("lightning_crackle.wav")
71 Delay(1196)
72
73 local lucasPos = GetPosition("lucas")
74 CreateAnimatedSpriteAtPosition("lightning_from_mailbox", "lightning", lucasPos:x() + 56, lucasPos:y() - 72, "strike", Direction.DOWN_LEFT, SpriteLayer.ABOVE)
75
76 ShakeCamera(66)
77 PlaySound("lightning_explosion.wav")
78 SetDirection("lucas", Direction.DOWN)
79 SetAnimation("lucas", "lightning_electrocute!")
80 WaitForAnimation("lucas")
81
82 StopShakingCamera()
83 DestroyNamedSprite("lightning_from_mailbox")
84 SetAnimation("lucas", "lightning_collapse!")
85 WaitForAnimation("lucas")
86
87 FadeMap(500, 0.0)
88 WaitForMapFade()
89
90 DisplayMessage("* It was lightning.\n\fAh.", "", SpeakerType.NONE)
91 WaitForEndOfMessage()
92 HideCutsceneBars(CutsceneOptions.DO_NOT_CHANGE_ANIMATION)
93end
94
95function hallucination_interior.approach_doria()
96 if gamestate.approached_doria then
97 return
98 end
99
100 gamestate.approached_doria = true
101
102 StartCutscene()
103 SetDirection("boney", Direction.LEFT)
104 SetAnimation("boney", "barking")
105 local barkingNoise = LoopSound("barking_at_hallucination.wav")
106 Delay(200)
107
108 ShowExpression("lucas", "surprise")
109 SetDirection("lucas", Direction.LEFT)
110 Delay(100)
111
112 ShowExpression("kuma", "surprise")
113 ShowExpression("duster", "surprise")
114 SetDirection("kuma", Direction.LEFT)
115 SetDirection("duster", Direction.LEFT)
116 Delay(1000)
117
118 PanToSprite("doria", 2000)
119 Delay(500)
120
121 RemoveExpression("lucas")
122 RemoveExpression("kuma")
123 RemoveExpression("duster")
124 WaitForPan()
125
126 SetDirection("doria", Direction.DOWN_RIGHT)
127 SetAnimation("doria", "talk")
128 ShowExpression("doria", "surprise")
129 DisplayMessage("* Oh my!\n\f* Is that our little Kumatora I spy? `", "Doria", SpeakerType.MAN)
130 Delay(1000)
131
132 RemoveExpression("doria")
133 WaitForEndOfMessage()
134
135 SetAnimation("doria", "still")
136 ReturnCamera(2000)
137 Delay(1000)
138 SetAnimation("kuma", "talk")
139 DisplayMessage("* Doria...?\n\f* What the hell... You're still alive?", "Kumatora", SpeakerType.WOMAN)
140 WaitForEndOfMessage()
141
142 SetAnimation("boney", "crouch")
143 StopSound(barkingNoise)
144 PlaySound("boney_growl.wav")
145 SetAnimation("kuma", "frozen")
146 Delay(1000)
147
148 SetAnimation("doria", "talk")
149 DisplayMessage("* It is! It is her!\n\f* Such style! Such swagger!\nWhy, just as if she were Magifolk herself! `\n* When Ionia showed us the human she was looking after, I hardly knew what to think.", "Doria", SpeakerType.MAN)
150 WaitForEndOfMessage()
151
152 SetDirection("doria", Direction.DOWN)
153 SetAnimation("doria", "hearts")
154 DisplayMessage("* But what a lovely lady you've become!\n\f* You've made this old girl cry with pride! `", "Doria", SpeakerType.MAN)
155 WaitForEndOfMessage()
156
157 SetDirection("doria", Direction.DOWN_RIGHT)
158 SetAnimation("doria", "talk")
159 DisplayMessage("* Now I shudder to think how I'll move on once your short human life is over.\n* Ooh, get another one, I suppose!\nYes, we'll just get another human. `\nAnd the new Kumatora will be just as good, no, better than the last one!", "Doria", SpeakerType.MAN)
160 WaitForEndOfMessage()
161
162 SetDirection("doria", Direction.DOWN)
163 SetAnimation("doria", "hairflip!")
164 WaitForAnimation("doria")
165
166 SetAnimation("doria", "still")
167 Delay(1000)
168
169 SetAnimation("kuma", "talk")
170 DisplayMessage("* H-hey, what do you mean <new Kumatora>?", "Kumatora", SpeakerType.WOMAN)
171 WaitForEndOfMessage()
172
173 HideCutsceneBars()
174end
175
176function hallucination_interior.talk_to_ionia()
177 Halt("ionia")
178 StartCutscene()
179 SetAnimation("ionia", "talk")
180 DisplayMessage("* Kumatora!", "Ionia", SpeakerType.MAN)
181 WaitForEndOfMessage()
182
183 SetAnimation("ionia", "still")
184 HideCutsceneBars()
185end