about summary refs log tree commit diff stats
path: root/data/maps/the_gallery/rooms
Commit message (Collapse)AuthorAgeFilesLines
* Added keyholder sanityStar Rauchenberger2025-09-021-0/+1
|
* Changed how door location names are formattedStar Rauchenberger2025-08-304-4/+0
| | | | | | | | | | | | | | | | | | STANDARD type doors with at most four panels in the same map area and no other trigger objects will have their location names generated from the names of the panels used to open the door, similar to Lingo 1. Other door types will use the door's name. In either case, the name can be overridden using the new location_name field. Rooms can also set a panel_display_name field, which will be used in location names for doors, and is used to group panels into areas. Panels themselves can set display names, which differentiates their locations from other panels in the same area. Many maps were updated for this, but note that the_symbolic and the_unyielding have validator failures because of duplicate panel names. This won't matter until panelsanity is implemented.
* Converted puzzle symbols to an enumStar Rauchenberger2025-08-202-3/+3
|
* Added "endings" object typeStar Rauchenberger2025-08-201-1/+4
|
* Added the_galleryStar Rauchenberger2025-08-134-0/+231
henberger <fefferburbia@gmail.com> 2021-03-06 17:10:27 -0500 committer Kelly Rauchenberger <fefferburbia@gmail.com> 2021-03-06 17:10:27 -0500 Made the mirror room!' href='/tanetane/commit/res/scripts/hallucination_mirror.lua?id=89e029d6c44a92bfe63b62cfcb1785cd519b09f0'>89e029d ^
767ca6e ^
















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

                         








                                                                                                                                                                                       
                                                                                                                                                                                   


                                         
                                                                                                                                                                                   







                                                          



                                                  



















                                                                                      






                                                                                               





                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
















                                                                               
hallucination_mirror = {}

function hallucination_mirror.init()
  coroutine.yield()
  -- This routine makes the player's party face the mirror if they are standing
  -- in front of it for a few (5) seconds. The fact that this has to run
  -- continuously makes it a bit complicated, and is why we keep checking that
  -- we're on the same map.
  while getMap():getName() == "hallucination_mirror" do
    if IsSpriteInZone("lucas", "mirror_sight") and IsSpriteInZone("kuma", "mirror_sight") and IsSpriteInZone("duster", "mirror_sight") and IsSpriteInZone("boney", "mirror_sight") then
      timer = 5000 -- milliseconds
      while timer > 0 and getSprite(getPlayerSprite()).characterState == CharacterState.STILL and getMap():getName() == "hallucination_mirror" and not message().isMessageActive do
        timer = timer - coroutine.yield()
      end

      if timer <= 0 and getSprite(getPlayerSprite()).characterState == CharacterState.STILL and getMap():getName() == "hallucination_mirror" and not message().isMessageActive then
        SetPartyDirection(getPlayerSprite(), Direction.UP)
      end
    end

    coroutine.yield()
  end
end

function hallucination_mirror.off_left()
  ChangeMap("hallucination_interior", "fromRight")
end

function hallucination_mirror.mailbox()
  StartCutscene()
  DisplayMessage("* The mailbox lid is open...\n* Peek inside?", "", SpeakerType.NONE)
  ShowChoice("Yes", "No")
  WaitForEndOfMessage()

  if GetChoiceSelection() == 1 then
    HideCutsceneBars()
    return
  end

  DisplayMessage("* Inside the mailbox is a poem.\n* Read it?", "", SpeakerType.NONE)
  ShowChoice("Yes", "No")
  WaitForEndOfMessage()

  if GetChoiceSelection() == 1 then
    HideCutsceneBars()
    return
  end

  if not gamestate.read_mirror_message then
    animation():initSprite(getSpriteByAlias("double_lucas"), "../res/sprites/claus_anim.txt")
    animation():initSprite(getSpriteByAlias("double_kuma"), "../res/sprites/ionia_anim.txt")
    animation():initSprite(getSpriteByAlias("double_duster"), "../res/sprites/wess_anim.txt")
    --animation():initSprite(getSpriteByAlias("double_boney"), "../res/sprites/claus_anim.txt")
  end

  gamestate.read_mirror_message = true

  DisplayMessage("* <Your eyes that watch me walking by\nYour ears that listen to me cry\nYour mouth, alit with laughter strong\nYour forehead creased to say I'm wrong>\n* <They think you're dead, but here you stare\nReflected in the mirror's glare\nWith pounding fists and fevered moans\nThat shake me to my very bones>\n* <One day I know you'll fall right through\nTo haunt me in my life anew>\n\f...\n\f* You get the feeling you're being watched.", "", SpeakerType.NONE)
  WaitForEndOfMessage()
  HideCutsceneBars()
end

function hallucination_mirror.examine_mirror()
  StartCutscene()
  Halt("double_lucas")
  Halt("double_kuma")
  Halt("double_duster")
  Halt("double_boney")

  if gamestate.read_mirror_message then
    DisplayMessage("* Something seems wrong about this.", "", SpeakerType.NONE)
  else
    DisplayMessage("* Looking handsome.", "", SpeakerType.NONE)
  end

  WaitForEndOfMessage()
  HideCutsceneBars()
end