diff options
Diffstat (limited to 'res/scripts')
| -rw-r--r-- | res/scripts/hallucination_cliff.lua | 84 |
1 files changed, 84 insertions, 0 deletions
| diff --git a/res/scripts/hallucination_cliff.lua b/res/scripts/hallucination_cliff.lua index 020a743..d539e62 100644 --- a/res/scripts/hallucination_cliff.lua +++ b/res/scripts/hallucination_cliff.lua | |||
| @@ -1,5 +1,35 @@ | |||
| 1 | hallucination_cliff = {} | 1 | hallucination_cliff = {} |
| 2 | 2 | ||
| 3 | function hallucination_cliff.init() | ||
| 4 | gamestate.hinawa_can_appear = false | ||
| 5 | if gamestate.saw_hinawa_first_scene then | ||
| 6 | if gamestate.saw_hinawa_second_scene then | ||
| 7 | -- the event can no longer trigger if the player leaves the map after | ||
| 8 | -- seeing hinawa a second time. | ||
| 9 | else | ||
| 10 | -- as long as nothing else prevents the scene from occuring, a player | ||
| 11 | -- who interrupted the hinawa event by leaving the map before seeing her | ||
| 12 | -- a second time is allowed to resume the event. | ||
| 13 | gamestate.hinawa_can_appear = true | ||
| 14 | MoveSpriteToWarp("hinawa", "hinawa_second_position") | ||
| 15 | end | ||
| 16 | else | ||
| 17 | -- the hinawa event only has a 50% chance of triggering; reloading the map | ||
| 18 | -- rolls this again. | ||
| 19 | if randomChance(1.0/2.0) then | ||
| 20 | gamestate.hinawa_can_appear = true | ||
| 21 | end | ||
| 22 | end | ||
| 23 | -- the hinawa event will not occur if claus ever joined the party. | ||
| 24 | if gamestate.claus_joined then | ||
| 25 | gamestate.hinawa_can_appear = false | ||
| 26 | end | ||
| 27 | -- if hinawa can't appear, remove her from the map. | ||
| 28 | if not gamestate.hinawa_can_appear then | ||
| 29 | DestroyNamedSprite("hinawa") | ||
| 30 | end | ||
| 31 | end | ||
| 32 | |||
| 3 | function hallucination_cliff.off_bottom() | 33 | function hallucination_cliff.off_bottom() |
| 4 | ChangeMap("hallucination_interior", "fromTop") | 34 | ChangeMap("hallucination_interior", "fromTop") |
| 5 | end | 35 | end |
| @@ -136,3 +166,57 @@ function hallucination_cliff.claus_fall_event() | |||
| 136 | -- character():addSpriteToParty(getPlayerSprite(), getSpriteByAlias("duster")) | 166 | -- character():addSpriteToParty(getPlayerSprite(), getSpriteByAlias("duster")) |
| 137 | -- character():addSpriteToParty(getPlayerSprite(), getSpriteByAlias("boney")) | 167 | -- character():addSpriteToParty(getPlayerSprite(), getSpriteByAlias("boney")) |
| 138 | end | 168 | end |
| 169 | |||
| 170 | function hallucination_cliff.see_hinawa_first_event() | ||
| 171 | -- for safety, check if the claus falling event is happening, since it moves | ||
| 172 | -- the party into this event's trigger. | ||
| 173 | if gamestate.claus_fall_scene then | ||
| 174 | return | ||
| 175 | end | ||
| 176 | |||
| 177 | -- the scene only triggers under certain circumstances (see the init function) | ||
| 178 | if not gamestate.hinawa_can_appear then | ||
| 179 | return | ||
| 180 | end | ||
| 181 | |||
| 182 | -- do not trigger a second time | ||
| 183 | if gamestate.saw_hinawa_first_scene then | ||
| 184 | return | ||
| 185 | end | ||
| 186 | |||
| 187 | gamestate.saw_hinawa_first_scene = true | ||
| 188 | |||
| 189 | StartCutscene(CutsceneOptions.DO_NOT_CHANGE_ANIMATION) | ||
| 190 | Delay(100) | ||
| 191 | |||
| 192 | ShowExpression("lucas", "surprise") | ||
| 193 | ShowExpression("kuma", "surprise") | ||
| 194 | ShowExpression("duster", "surprise") | ||
| 195 | Delay(1000) | ||
| 196 | |||
| 197 | PanToWarpPoint("first_hinawa_vantage", 2000) | ||
| 198 | Delay(750) | ||
| 199 | |||
| 200 | RemoveExpression("lucas") | ||
| 201 | RemoveExpression("kuma") | ||
| 202 | RemoveExpression("duster") | ||
| 203 | WaitForPan() | ||
| 204 | Delay(2000) | ||
| 205 | |||
| 206 | MakeSpriteNotSolid("hinawa") | ||
| 207 | UnpauseSprite("hinawa") | ||
| 208 | DirectSpriteToLocation("hinawa", "hinawa_offscreen_first", PathfindingOptions.CARDINAL_DIRECTIONS_ONLY) | ||
| 209 | WaitForSpritePath("hinawa") | ||
| 210 | |||
| 211 | DisableBehaviour("hinawa") | ||
| 212 | PauseSprite("hinawa") | ||
| 213 | MoveSpriteToWarp("hinawa", "hinawa_second_position") | ||
| 214 | Delay(2000) | ||
| 215 | ReturnCamera(1000) | ||
| 216 | Delay(500) | ||
| 217 | |||
| 218 | DisplayMessage("* Lucas... Was that...?", "Kumatora", SpeakerType.WOMAN) | ||
| 219 | WaitForEndOfMessage() | ||
| 220 | |||
| 221 | HideCutsceneBars(CutsceneOptions.DO_NOT_CHANGE_ANIMATION) | ||
| 222 | end | ||
