about summary refs log tree commit diff stats
path: root/data/maps/the_entry/rooms/Eye Room.txtpb
blob: 9462fa483dd89f7409135322f31eaef1d37996cc (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
name: "Eye Room"
display_name: "Eye Room"
panels {
  name: "I"
  path: "Panels/Entry/eyes_1"
  clue: "i"
  answer: "eyes"
  symbols: "zero"
  symbols: "planet"
}
paintings {
  name: "ENTER"
  path: "Components/Paintings/eyes2"
  orientation: "south"
  display_name: "Black Wall Painting"
}
paintings {
  name: "EXIT"
  path: "Components/Paintings/eyes4"
  orientation: "west"
  display_name: "Beige Wall Painting"
}
paintings {
  name: "GALLERY"
  path: "Components/Paintings/eyes5"
  orientation: "east"
  move: true
  enter_only: true
  required_door { name: "Third Eye Painting" }
  display_name: "Painting Beside Panel"
}
ports {
  name: "LIONIZED"
  path: "Components/Warps/worldport10"
  orientation: "north"
}
:58 -0400 committer Star Rauchenberger <fefferburbia@gmail.com> 2023-06-16 19:05:58 -0400 Atbash trap' href='/lingo-archipelago/commit/Archipelago/effects.gd?h=v3.0.3&id=e2936fdd05a7178772a47f5e7923a75c1b04a357'>e2936fd ^
3695cb4 ^







793564a ^


3695cb4 ^
793564a ^
3695cb4 ^

793564a ^
3695cb4 ^

793564a ^
























044649d ^
793564a ^
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

            
                     


                          
                            
                      



























                                                                                            








                                           












                                                                             



                                   




                                                                                              
                               




                                  
                           

                                       


                                                             




                                  







                                                             


                             
                                                                                  
                             

                                                                            
                                          

                                            
























                                                                                                              
                                        
                              
extends Node

var activated = false
var effect_running = false
var slowness_remaining = 0
var iceland_remaining = 0
var atbash_activated = false
var queued_iceland = 0

var orig_env
var orig_walk
var orig_run


func _ready():
	orig_env = get_tree().get_root().get_node("Spatial/player/pivot/camera").environment
	orig_walk = get_tree().get_root().get_node("Spatial/player").walk_speed
	orig_run = get_tree().get_root().get_node("Spatial/player").run_speed

	var label = Label.new()
	label.set_name("label")
	label.margin_right = 1920.0 - 20.0
	label.margin_top = 20.0
	label.align = Label.ALIGN_RIGHT
	label.valign = Label.VALIGN_TOP

	var dynamic_font = DynamicFont.new()
	dynamic_font.font_data = load("res://fonts/Lingo.ttf")
	dynamic_font.size = 36
	dynamic_font.outline_color = Color(0, 0, 0, 1)
	dynamic_font.outline_size = 2
	label.add_font_override("font", dynamic_font)

	add_child(label)


func activate():
	activated = true

	for _i in range(0, queued_iceland):
		trigger_iceland_trap()

	queued_iceland = 0


func trigger_slowness_trap():
	if slowness_remaining == 0:
		var player = get_tree().get_root().get_node("Spatial/player")
		player.walk_speed = orig_walk / 2.0
		player.run_speed = orig_run / 2.0

	slowness_remaining += 30

	if not effect_running:
		_process_effects()


func trigger_iceland_trap():
	if not activated:
		queued_iceland += 1
		return

	if iceland_remaining == 0:
		get_tree().get_root().get_node("Spatial/player/pivot/camera").set_environment(
			load("res://environments/level_iceland.tres")
		)

	iceland_remaining += 60

	if not effect_running:
		_process_effects()


func trigger_atbash_trap():
	if not atbash_activated:
		atbash_activated = true

		var apclient = global.get_node("Archipelago")
		apclient.evaluateSolvability()

	if not effect_running:
		_process_effects()


func deactivate_atbash_trap():
	if atbash_activated:
		atbash_activated = false

		var apclient = global.get_node("Archipelago")
		apclient.evaluateSolvability()


func _process_effects():
	effect_running = true

	while slowness_remaining > 0 or iceland_remaining > 0 or atbash_activated:
		var text = ""
		if atbash_activated:
			text += "Atbash Trap lasts until you solve a puzzle"
		if slowness_remaining > 0:
			if not text.empty():
				text += "\n"
			text += "Slowness: %d seconds" % slowness_remaining
		if iceland_remaining > 0:
			if not text.empty():
				text += "\n"
			text += "Iceland: %d seconds" % iceland_remaining
		self.get_node("label").text = text

		yield(get_tree().create_timer(1.0), "timeout")

		if slowness_remaining > 0:
			slowness_remaining -= 1

			if slowness_remaining == 0:
				var player = get_tree().get_root().get_node("Spatial/player")
				player.walk_speed = orig_walk
				player.run_speed = orig_run

		if iceland_remaining > 0:
			iceland_remaining -= 1

			if iceland_remaining == 0:
				get_tree().get_root().get_node("Spatial/player/pivot/camera").set_environment(
					orig_env
				)

	self.get_node("label").text = ""
	effect_running = false