about summary refs log tree commit diff stats
path: root/data/maps/the_wise
Commit message (Expand)AuthorAgeFilesLines
* Added the_wiseStar Rauchenberger2025-08-266-0/+217
s for later in map load' href='/lingo-archipelago/commit/Archipelago/effects.gd?h=v0.11.2&id=39b55476e6ae8a43c807476348351bb1509b26e2'>39b5547 ^
793564a ^


e2936fd ^
39b5547 ^
793564a ^



























39b5547 ^








793564a ^












39b5547 ^



793564a ^




980f8a0 ^
793564a ^




e2936fd ^












793564a ^


e2936fd ^
793564a ^






e2936fd ^



793564a ^



















e2936fd ^






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
130

            
                     


                          
                        
                      



























                                                                                            








                                           












                                                                             



                                   




                                                                                              
                               




                                  












                                                             


                             
                                                                                      






                                                                           



                                                                       



















                                                                                                              






                                                                             
                                        
                              
extends Node

var activated = false
var effect_running = false
var slowness_remaining = 0
var iceland_remaining = 0
var atbash_remaining = 0
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 atbash_remaining == 0:
		atbash_remaining += 60

		var apclient = global.get_node("Archipelago")
		apclient.evaluateSolvability()
	else:
		atbash_remaining += 60

	if not effect_running:
		_process_effects()


func _process_effects():
	effect_running = true

	while slowness_remaining > 0 or iceland_remaining > 0 or atbash_remaining > 0:
		var text = ""
		if slowness_remaining > 0:
			text += "Slowness: %d seconds" % slowness_remaining
		if iceland_remaining > 0:
			if not text.empty():
				text += "\n"
			text += "Iceland: %d seconds" % iceland_remaining
		if atbash_remaining > 0:
			if not text.empty():
				text += "\n"
			text += "Atbash: %d seconds" % atbash_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
				)

		if atbash_remaining > 0:
			atbash_remaining -= 1

			if atbash_remaining == 0:
				var apclient = global.get_node("Archipelago")
				apclient.evaluateSolvability()

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