diff options
Diffstat (limited to 'res')
| -rw-r--r-- | res/maps/hallucination_mirror.tmx | 1 | ||||
| -rw-r--r-- | res/scripts/hallucination_mirror.lua | 11 |
2 files changed, 6 insertions, 6 deletions
| diff --git a/res/maps/hallucination_mirror.tmx b/res/maps/hallucination_mirror.tmx index eeeb718..2f2c580 100644 --- a/res/maps/hallucination_mirror.tmx +++ b/res/maps/hallucination_mirror.tmx | |||
| @@ -117,6 +117,7 @@ | |||
| 117 | <object id="11" name="mirror_sight" type="zone" x="176" y="128" width="176" height="48"/> | 117 | <object id="11" name="mirror_sight" type="zone" x="176" y="128" width="176" height="48"/> |
| 118 | <object id="12" name="mirror_edge" type="sprite" x="176" y="112"> | 118 | <object id="12" name="mirror_edge" type="sprite" x="176" y="112"> |
| 119 | <properties> | 119 | <properties> |
| 120 | <property name="backgroundScript" value="look_at_mirror"/> | ||
| 120 | <property name="collisionHeight" type="int" value="16"/> | 121 | <property name="collisionHeight" type="int" value="16"/> |
| 121 | <property name="collisionOffsetX" type="int" value="0"/> | 122 | <property name="collisionOffsetX" type="int" value="0"/> |
| 122 | <property name="collisionOffsetY" type="int" value="0"/> | 123 | <property name="collisionOffsetY" type="int" value="0"/> |
| diff --git a/res/scripts/hallucination_mirror.lua b/res/scripts/hallucination_mirror.lua index afacd59..18a3e28 100644 --- a/res/scripts/hallucination_mirror.lua +++ b/res/scripts/hallucination_mirror.lua | |||
| @@ -1,19 +1,18 @@ | |||
| 1 | hallucination_mirror = {} | 1 | hallucination_mirror = {} |
| 2 | 2 | ||
| 3 | function hallucination_mirror.init() | 3 | function hallucination_mirror.look_at_mirror() |
| 4 | coroutine.yield() | 4 | coroutine.yield() |
| 5 | -- This routine makes the player's party face the mirror if they are standing | 5 | -- This routine makes the player's party face the mirror if they are standing |
| 6 | -- in front of it for a few (5) seconds. The fact that this has to run | 6 | -- in front of it for a few (5) seconds. The fact that this has to run |
| 7 | -- continuously makes it a bit complicated, and is why we keep checking that | 7 | -- continuously makes it a bit complicated. |
| 8 | -- we're on the same map. | 8 | while true do |
| 9 | while getMap():getName() == "hallucination_mirror" do | ||
| 10 | if IsSpriteInZone("lucas", "mirror_sight") and IsSpriteInZone("kuma", "mirror_sight") and IsSpriteInZone("duster", "mirror_sight") and IsSpriteInZone("boney", "mirror_sight") then | 9 | if IsSpriteInZone("lucas", "mirror_sight") and IsSpriteInZone("kuma", "mirror_sight") and IsSpriteInZone("duster", "mirror_sight") and IsSpriteInZone("boney", "mirror_sight") then |
| 11 | timer = 5000 -- milliseconds | 10 | timer = 5000 -- milliseconds |
| 12 | while timer > 0 and getSprite(getPlayerSprite()).characterState == CharacterState.STILL and getMap():getName() == "hallucination_mirror" and not message().isMessageActive do | 11 | while timer > 0 and getSprite(getPlayerSprite()).characterState == CharacterState.STILL and not message().isMessageActive do |
| 13 | timer = timer - coroutine.yield() | 12 | timer = timer - coroutine.yield() |
| 14 | end | 13 | end |
| 15 | 14 | ||
| 16 | if timer <= 0 and getSprite(getPlayerSprite()).characterState == CharacterState.STILL and getMap():getName() == "hallucination_mirror" and not message().isMessageActive then | 15 | if timer <= 0 and getSprite(getPlayerSprite()).characterState == CharacterState.STILL and not message().isMessageActive then |
| 17 | SetPartyDirection(getPlayerSprite(), Direction.UP) | 16 | SetPartyDirection(getPlayerSprite(), Direction.UP) |
| 18 | end | 17 | end |
| 19 | end | 18 | end |
