summary refs log tree commit diff stats
path: root/randomizer
diff options
context:
space:
mode:
Diffstat (limited to 'randomizer')
-rw-r--r--randomizer/generator.gd29
1 files changed, 29 insertions, 0 deletions
diff --git a/randomizer/generator.gd b/randomizer/generator.gd index fb0c6b0..090ec8a 100644 --- a/randomizer/generator.gd +++ b/randomizer/generator.gd
@@ -1,6 +1,7 @@
1extends Node 1extends Node
2 2
3var panel_mapping = [] 3var panel_mapping = []
4var painting_mapping = []
4var gen_seed 5var gen_seed
5var is_set_seed = false 6var is_set_seed = false
6 7
@@ -14,6 +15,7 @@ var _flags = 0
14var _total_generated = 0 15var _total_generated = 0
15var _hint_by_path = {} 16var _hint_by_path = {}
16var _answer_by_path = {} 17var _answer_by_path = {}
18var _painting_puzzles = []
17 19
18var _unique_pool = "" 20var _unique_pool = ""
19var _answers_by_unique_pool = {} 21var _answers_by_unique_pool = {}
@@ -95,6 +97,7 @@ func generate(chosen_seed):
95 _puzzle_by_id = [] 97 _puzzle_by_id = []
96 _hint_by_path = {} 98 _hint_by_path = {}
97 _answer_by_path = {} 99 _answer_by_path = {}
100 _painting_puzzles = _generated_puzzles.paintings
98 var openable_answers = [] 101 var openable_answers = []
99 102
100 for puzzle_type in kPuzzleTypes: 103 for puzzle_type in kPuzzleTypes:
@@ -628,6 +631,12 @@ func generate(chosen_seed):
628 _gOrangeAddition("Tower Room/Panel_reads_rust_lawns_6") 631 _gOrangeAddition("Tower Room/Panel_reads_rust_lawns_6")
629 _gOrangeAddition("Tower Room/Panel_waded_wee_warts_7") 632 _gOrangeAddition("Tower Room/Panel_waded_wee_warts_7")
630 633
634 _gPaintingPuzzle("Panel Room/Panel_painting_flower", "flower_painting_gray")
635 _gPaintingPuzzle("Panel Room/Panel_painting_eye", "eye_painting_gray")
636 _gPaintingPuzzle("Panel Room/Panel_painting_snowman", "snowman_painting_gray")
637 _gPaintingPuzzle("Panel Room/Panel_painting_owl", "owl_painting_gray")
638 _gPaintingPuzzle("Panel Room/Panel_painting_panda", "panda_painting_gray")
639
631 _setFlag(kObscureHint) 640 _setFlag(kObscureHint)
632 _gSingle("Entry Room/Panel_forward_forward", kWhiteMiddle) 641 _gSingle("Entry Room/Panel_forward_forward", kWhiteMiddle)
633 _gSingle("Entry Room/Panel_between_between", kWhiteMiddle) 642 _gSingle("Entry Room/Panel_between_between", kWhiteMiddle)
@@ -722,6 +731,19 @@ func apply(scene):
722 var panel = panels_parent.get_node(puzzle[0]) 731 var panel = panels_parent.get_node(puzzle[0])
723 panel.text = puzzle[1] 732 panel.text = puzzle[1]
724 panel.answer = puzzle[2] 733 panel.answer = puzzle[2]
734
735 for mapping in painting_mapping:
736 var scene_path = "res://nodes/paintings/%s.tscn" % mapping[1]
737 var painting_scene = load(scene_path)
738 var new_painting = painting_scene.instance()
739 new_painting.set_name("%s_new" % mapping[0])
740
741 var old_painting = scene.get_node("Decorations/Paintings").get_node(mapping[0])
742 new_painting.translation = old_painting.translation
743 new_painting.rotation = old_painting.rotation
744
745 scene.get_node("Decorations/Paintings").add_child(new_painting)
746 old_painting.queue_free()
725 747
726 748
727func _pickRandom(set): 749func _pickRandom(set):
@@ -911,6 +933,13 @@ func _gOrangeAddition(panel_path):
911 _writePanel(panel_path, "%s + %s" % [word1, word2], solution) 933 _writePanel(panel_path, "%s + %s" % [word1, word2], solution)
912 934
913 935
936func _gPaintingPuzzle(panel_path, painting_name):
937 var chosen = _pickRandom(_painting_puzzles)
938 _painting_puzzles.erase(chosen)
939 _writePanel(panel_path, "painting", chosen[1])
940 painting_mapping.append([painting_name, chosen[0]])
941
942
914func _applyCipher(text): 943func _applyCipher(text):
915 var result = text 944 var result = text
916 for i in range(result.length()): 945 for i in range(result.length()):