diff --git a/assets/background/full_bg_example.png b/assets/background/full_bg_example.png new file mode 100644 index 0000000..3096c54 Binary files /dev/null and b/assets/background/full_bg_example.png differ diff --git a/assets/background/full_bg_example.png.import b/assets/background/full_bg_example.png.import new file mode 100644 index 0000000..baffe1f --- /dev/null +++ b/assets/background/full_bg_example.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dsfng5b065eyp" +path="res://.godot/imported/full_bg_example.png-23e9c1b2438a4cb21327fd2eaf815f60.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/background/full_bg_example.png" +dest_files=["res://.godot/imported/full_bg_example.png-23e9c1b2438a4cb21327fd2eaf815f60.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/cursor/cursor_closed.png b/assets/cursor/cursor_closed.png new file mode 100644 index 0000000..7aaff1e Binary files /dev/null and b/assets/cursor/cursor_closed.png differ diff --git a/assets/cursor/cursor_closed.png.import b/assets/cursor/cursor_closed.png.import new file mode 100644 index 0000000..31970dd --- /dev/null +++ b/assets/cursor/cursor_closed.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cmgvwq3ln4i3l" +path="res://.godot/imported/cursor_closed.png-3fe743bdc2c756b0e9a9f93044240563.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/cursor/cursor_closed.png" +dest_files=["res://.godot/imported/cursor_closed.png-3fe743bdc2c756b0e9a9f93044240563.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/cursor/cursor_open.png b/assets/cursor/cursor_open.png new file mode 100644 index 0000000..fed311c Binary files /dev/null and b/assets/cursor/cursor_open.png differ diff --git a/assets/cursor/cursor_open.png.import b/assets/cursor/cursor_open.png.import new file mode 100644 index 0000000..1089abd --- /dev/null +++ b/assets/cursor/cursor_open.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c756mdbly76s5" +path="res://.godot/imported/cursor_open.png-1ad5a8d3700c189c39f47dfeab1576b7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/cursor/cursor_open.png" +dest_files=["res://.godot/imported/cursor_open.png-1ad5a8d3700c189c39f47dfeab1576b7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/game sfx/failed-round.wav b/assets/game sfx/failed-round.wav new file mode 100644 index 0000000..2bed331 Binary files /dev/null and b/assets/game sfx/failed-round.wav differ diff --git a/assets/game sfx/failed-round.wav.import b/assets/game sfx/failed-round.wav.import new file mode 100644 index 0000000..c993a2f --- /dev/null +++ b/assets/game sfx/failed-round.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://db67ob7kkhsc0" +path="res://.godot/imported/failed-round.wav-11bf6cf03896386b908cad8ea4dbe98a.sample" + +[deps] + +source_file="res://assets/game sfx/failed-round.wav" +dest_files=["res://.godot/imported/failed-round.wav-11bf6cf03896386b908cad8ea4dbe98a.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/assets/game sfx/next-round.wav b/assets/game sfx/next-round.wav new file mode 100644 index 0000000..1d6030b Binary files /dev/null and b/assets/game sfx/next-round.wav differ diff --git a/assets/game sfx/next-round.wav.import b/assets/game sfx/next-round.wav.import new file mode 100644 index 0000000..5ba0fcd --- /dev/null +++ b/assets/game sfx/next-round.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://cicodo74wnevu" +path="res://.godot/imported/next-round.wav-624bc347adba86ecf8954a591facf09b.sample" + +[deps] + +source_file="res://assets/game sfx/next-round.wav" +dest_files=["res://.godot/imported/next-round.wav-624bc347adba86ecf8954a591facf09b.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/assets/menus/final score/loss.ogg b/assets/menus/final score/loss.ogg new file mode 100644 index 0000000..89dc3b0 Binary files /dev/null and b/assets/menus/final score/loss.ogg differ diff --git a/assets/menus/final score/loss.ogg.import b/assets/menus/final score/loss.ogg.import new file mode 100644 index 0000000..a26a676 --- /dev/null +++ b/assets/menus/final score/loss.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://cyl2wxt5nwot5" +path="res://.godot/imported/loss.ogg-47e5ca74e491f12870ff324c15af04c1.oggvorbisstr" + +[deps] + +source_file="res://assets/menus/final score/loss.ogg" +dest_files=["res://.godot/imported/loss.ogg-47e5ca74e491f12870ff324c15af04c1.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/menus/final score/morshu-anger-large.png b/assets/menus/final score/morshu-anger-large.png new file mode 100644 index 0000000..56c85b6 Binary files /dev/null and b/assets/menus/final score/morshu-anger-large.png differ diff --git a/assets/menus/final score/morshu-anger-large.png.import b/assets/menus/final score/morshu-anger-large.png.import new file mode 100644 index 0000000..58900a0 --- /dev/null +++ b/assets/menus/final score/morshu-anger-large.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d24dlalqmr6r0" +path="res://.godot/imported/morshu-anger-large.png-a42c6b2792682051956723f333dbba40.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/menus/final score/morshu-anger-large.png" +dest_files=["res://.godot/imported/morshu-anger-large.png-a42c6b2792682051956723f333dbba40.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/menus/final score/morshu-happy-large.png b/assets/menus/final score/morshu-happy-large.png new file mode 100644 index 0000000..adb6683 Binary files /dev/null and b/assets/menus/final score/morshu-happy-large.png differ diff --git a/assets/menus/final score/morshu-happy-large.png.import b/assets/menus/final score/morshu-happy-large.png.import new file mode 100644 index 0000000..cb3d008 --- /dev/null +++ b/assets/menus/final score/morshu-happy-large.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cabsfveh1oc6i" +path="res://.godot/imported/morshu-happy-large.png-ca9678fe4ca200c5029c9feeb830e07d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/menus/final score/morshu-happy-large.png" +dest_files=["res://.godot/imported/morshu-happy-large.png-ca9678fe4ca200c5029c9feeb830e07d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/menus/final score/win.ogg b/assets/menus/final score/win.ogg new file mode 100644 index 0000000..9c131e4 Binary files /dev/null and b/assets/menus/final score/win.ogg differ diff --git a/assets/menus/final score/win.ogg.import b/assets/menus/final score/win.ogg.import new file mode 100644 index 0000000..02e7720 --- /dev/null +++ b/assets/menus/final score/win.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://bvauoea3ms47l" +path="res://.godot/imported/win.ogg-629872b052fcf2b1837befd90cc62630.oggvorbisstr" + +[deps] + +source_file="res://assets/menus/final score/win.ogg" +dest_files=["res://.godot/imported/win.ogg-629872b052fcf2b1837befd90cc62630.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/menus/main/main.png b/assets/menus/main/main.png new file mode 100644 index 0000000..494a4bb Binary files /dev/null and b/assets/menus/main/main.png differ diff --git a/assets/menus/main/main.png.import b/assets/menus/main/main.png.import new file mode 100644 index 0000000..efb215c --- /dev/null +++ b/assets/menus/main/main.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cyheahpjvgaec" +path="res://.godot/imported/main.png-1b49f043df990fcf9e842115f5c997b0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/menus/main/main.png" +dest_files=["res://.godot/imported/main.png-1b49f043df990fcf9e842115f5c997b0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/menus/main/mainmenu.ogg b/assets/menus/main/mainmenu.ogg new file mode 100644 index 0000000..45d0c54 Binary files /dev/null and b/assets/menus/main/mainmenu.ogg differ diff --git a/assets/menus/main/mainmenu.ogg.import b/assets/menus/main/mainmenu.ogg.import new file mode 100644 index 0000000..a288290 --- /dev/null +++ b/assets/menus/main/mainmenu.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://ntdnmk07dvjp" +path="res://.godot/imported/mainmenu.ogg-576e3b76c2c1c563c44d509923f90dec.oggvorbisstr" + +[deps] + +source_file="res://assets/menus/main/mainmenu.ogg" +dest_files=["res://.godot/imported/mainmenu.ogg-576e3b76c2c1c563c44d509923f90dec.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/menus/main/press-any.png b/assets/menus/main/press-any.png new file mode 100644 index 0000000..433efc8 Binary files /dev/null and b/assets/menus/main/press-any.png differ diff --git a/assets/menus/main/press-any.png.import b/assets/menus/main/press-any.png.import new file mode 100644 index 0000000..e153631 --- /dev/null +++ b/assets/menus/main/press-any.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dhpsbi6fwtdfd" +path="res://.godot/imported/press-any.png-80234bfe7df974c7971a6530c84775eb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/menus/main/press-any.png" +dest_files=["res://.godot/imported/press-any.png-80234bfe7df974c7971a6530c84775eb.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/cursor_manager.gd b/cursor_manager.gd new file mode 100644 index 0000000..408d080 --- /dev/null +++ b/cursor_manager.gd @@ -0,0 +1,10 @@ +extends Node + +var hover = load("res://assets/cursor/cursor_open.png") +var click = load("res://assets/cursor/cursor_closed.png") + +func _ready() -> void: + Input.set_custom_mouse_cursor(hover) + + # need to find the correct cursor mode for changing on click + Input.set_custom_mouse_cursor(click, Input.CURSOR_DRAG) diff --git a/cursor_manager.gd.uid b/cursor_manager.gd.uid new file mode 100644 index 0000000..a5c4abc --- /dev/null +++ b/cursor_manager.gd.uid @@ -0,0 +1 @@ +uid://dds738kgqrpux diff --git a/cursor_manager.tscn b/cursor_manager.tscn new file mode 100644 index 0000000..bea55b9 --- /dev/null +++ b/cursor_manager.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://6a4hl2twv0lj"] + +[ext_resource type="Script" uid="uid://dds738kgqrpux" path="res://cursor_manager.gd" id="1_vunjj"] + +[node name="CursorManager" type="Node"] +script = ExtResource("1_vunjj") diff --git a/game_manager.gd b/game_manager.gd index ed94ded..140e593 100644 --- a/game_manager.gd +++ b/game_manager.gd @@ -87,6 +87,7 @@ func _handle_gavel_hit(): func destroy_painting(): # Painting destruction animation/particle effect + $FailedPainting.play() current_painting += 1 DisplayServer.tts_speak("Oh nooooooo! Took too long!", turn_manager.voice_id, turn_manager.tts_volume, turn_manager.tts_pitch) DisplayServer.tts_speak("Try to make it up on the next painting!", turn_manager.voice_id, turn_manager.tts_volume, turn_manager.tts_pitch) @@ -97,6 +98,7 @@ func sell_painting(): total_sales = total_sales + current_bid func next_painting(a: int): + $NextPainting.play() starting_price = paintings[a] current_bid = 0 diff --git a/main.tscn b/main.tscn index 45f7122..f2a441e 100644 --- a/main.tscn +++ b/main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=19 format=3 uid="uid://dt4nq0nkmjiit"] +[gd_scene load_steps=22 format=3 uid="uid://dt4nq0nkmjiit"] [ext_resource type="Script" uid="uid://b5tcsve1oo5ht" path="res://game_manager.gd" id="1_ig7tw"] [ext_resource type="Texture2D" uid="uid://cvqsf1nlfqwpr" path="res://assets/background/background.png" id="1_lquwl"] @@ -6,10 +6,13 @@ [ext_resource type="FontFile" uid="uid://cm28kqtqj3a6n" path="res://assets/amiga4ever pro.ttf" id="2_5vw27"] [ext_resource type="Texture2D" uid="uid://cpj3xw8js3h3" path="res://assets/chairs/chairs_back.png" id="2_7mycd"] [ext_resource type="Texture2D" uid="uid://d03ot1f34pyhu" path="res://assets/chairs/chairs_front.png" id="3_272bh"] +[ext_resource type="AudioStream" uid="uid://db67ob7kkhsc0" path="res://assets/game sfx/failed-round.wav" id="5_cegan"] +[ext_resource type="AudioStream" uid="uid://cicodo74wnevu" path="res://assets/game sfx/next-round.wav" id="6_82xsv"] [ext_resource type="PackedScene" uid="uid://c1acpop6amvcl" path="res://audience_manager.tscn" id="6_272bh"] [ext_resource type="PackedScene" uid="uid://b8key4hjaldui" path="res://turn_manager.tscn" id="7_272bh"] [ext_resource type="Texture2D" uid="uid://d2142cf22t1lv" path="res://assets/buttons/button1.png" id="9_2cqfq"] -[ext_resource type="Script" uid="uid://bg1vk1o2eq3fg" path="res://bark_buttons.gd" id="9_yaehf"] +[ext_resource type="PackedScene" uid="uid://donkfeu1x888o" path="res://paintings/painting.tscn" id="9_kek77"] +[ext_resource type="Script" path="res://bark_buttons.gd" id="9_yaehf"] [ext_resource type="Texture2D" uid="uid://ut655l8y8xmi" path="res://assets/buttons/button1pressed.png" id="10_yaehf"] [ext_resource type="Texture2D" uid="uid://c0iad21xtnjdd" path="res://assets/buttons/button3.png" id="11_074og"] [ext_resource type="Texture2D" uid="uid://dx4dadmb37khl" path="res://assets/buttons/button3pressed.png" id="12_cegan"] @@ -17,12 +20,13 @@ [ext_resource type="Texture2D" uid="uid://dve6bedyuod2b" path="res://assets/buttons/button2pressed.png" id="14_getpj"] [ext_resource type="Texture2D" uid="uid://heqlxtsfl26k" path="res://assets/buttons/button4.png" id="15_ryguw"] [ext_resource type="Texture2D" uid="uid://bnjj1gp2jx82x" path="res://assets/buttons/button4pressed.png" id="16_d13ii"] +[ext_resource type="PackedScene" uid="uid://6a4hl2twv0lj" path="res://cursor_manager.tscn" id="20_82xsv"] [sub_resource type="Theme" id="Theme_272bh"] default_font = ExtResource("2_5vw27") default_font_size = 12 -[node name="Node2D" type="Node2D"] +[node name="Main" type="Node"] [node name="Background" type="Sprite2D" parent="."] position = Vector2(640, 360) @@ -38,6 +42,9 @@ texture = ExtResource("2_7mycd") position = Vector2(640, 360) texture = ExtResource("3_272bh") +[node name="Painting" parent="." instance=ExtResource("9_kek77")] +position = Vector2(1075, 130) + [node name="GameManager" type="Node2D" parent="." node_paths=PackedStringArray("audience_manager", "desk", "turn_manager", "current_bid_display")] script = ExtResource("1_ig7tw") audience_manager = NodePath("../AudienceManager") @@ -48,6 +55,14 @@ current_bid_display = NodePath("../UI/RichTextLabel") [node name="Timer" type="Timer" parent="GameManager"] wait_time = 300.0 +[node name="FailedPainting" type="AudioStreamPlayer" parent="GameManager"] +stream = ExtResource("5_cegan") +volume_db = -10.0 + +[node name="NextPainting" type="AudioStreamPlayer" parent="GameManager"] +stream = ExtResource("6_82xsv") +volume_db = -4.933 + [node name="Desk" parent="." node_paths=PackedStringArray("game_manager", "turn_manager", "audience_manager") instance=ExtResource("2_0xm2m")] game_manager = NodePath("../GameManager") turn_manager = NodePath("../TurnManager") @@ -119,6 +134,8 @@ texture_normal = ExtResource("15_ryguw") texture_pressed = ExtResource("16_d13ii") texture_hover = ExtResource("16_d13ii") +[node name="CursorManager" parent="." instance=ExtResource("20_82xsv")] + [connection signal="button_down" from="BarkButtons/GreatBuy" to="BarkButtons" method="_on_great_buy_button_down"] [connection signal="button_down" from="BarkButtons/InvestmentPiece" to="BarkButtons" method="_on_investment_piece_button_down"] [connection signal="button_down" from="BarkButtons/StunningMessage" to="BarkButtons" method="_on_stunning_message_button_down"] diff --git a/main_menu.tscn b/main_menu.tscn new file mode 100644 index 0000000..57a0ec5 --- /dev/null +++ b/main_menu.tscn @@ -0,0 +1,57 @@ +[gd_scene load_steps=4 format=3 uid="uid://q1x5v4q6uxsj"] + +[ext_resource type="Texture2D" uid="uid://dsfng5b065eyp" path="res://assets/background/full_bg_example.png" id="1_06t4h"] +[ext_resource type="Theme" uid="uid://d2rlcffg7nguy" path="res://menus.tres" id="2_jix8l"] +[ext_resource type="Texture2D" uid="uid://cyheahpjvgaec" path="res://assets/menus/main/main.png" id="3_glbon"] + +[node name="Main Menu" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Background" type="Sprite2D" parent="."] +position = Vector2(640, 360) +texture = ExtResource("1_06t4h") + +[node name="Vignette" type="ColorRect" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0.18431373, 0.09411765, 0.10980392, 0.7529412) + +[node name="PressAnyKey" type="Label" parent="."] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -173.0 +offset_top = 229.0 +offset_right = 173.0 +offset_bottom = 252.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("2_jix8l") +text = "Press any key to start" + +[node name="Title" type="TextureRect" parent="."] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -450.0 +offset_top = -145.0 +offset_right = 450.0 +offset_bottom = 145.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("3_glbon") diff --git a/menus.tres b/menus.tres new file mode 100644 index 0000000..6c7bc10 --- /dev/null +++ b/menus.tres @@ -0,0 +1,6 @@ +[gd_resource type="Theme" load_steps=2 format=3 uid="uid://d2rlcffg7nguy"] + +[ext_resource type="FontFile" uid="uid://cm28kqtqj3a6n" path="res://assets/amiga4ever pro.ttf" id="1_tgj2w"] + +[resource] +default_font = ExtResource("1_tgj2w") diff --git a/numpad.gd b/numpad.gd index f163896..8e45ed0 100644 --- a/numpad.gd +++ b/numpad.gd @@ -60,5 +60,7 @@ func keypad_submit(): _: error_audio_player.play() + # need to avoid starting the reminder timer before + # the auction starts reminder_timer.start(-1) numpad_buffer.clear() diff --git a/paintings/.clang-format b/paintings/.clang-format new file mode 100644 index 0000000..4506f26 --- /dev/null +++ b/paintings/.clang-format @@ -0,0 +1,21 @@ +BasedOnStyle: LLVM +AlignAfterOpenBracket: DontAlign +AlignOperands: DontAlign +AlignTrailingComments: +# Kind: Never +# OverEmptyLines: 0 +AllowAllParametersOfDeclarationOnNextLine: false +AllowShortFunctionsOnASingleLine: Inline +BreakConstructorInitializers: AfterColon +ColumnLimit: 0 +ContinuationIndentWidth: 8 +IndentCaseLabels: true +IndentWidth: 4 +InsertBraces: true +KeepEmptyLinesAtTheStartOfBlocks: false +RemoveSemicolon: true +SpacesInLineCommentPrefix: +# Minimum: 0 # We want a minimum of 1 for comments, but allow 0 for disabled code. +# Maximum: -1 +TabWidth: 4 +UseTab: Always diff --git a/paintings/fractal.gd b/paintings/fractal.gd new file mode 100644 index 0000000..ac1192b --- /dev/null +++ b/paintings/fractal.gd @@ -0,0 +1,67 @@ +@tool +extends ColorRect + + +@export_tool_button('Randomize', 'RandomNumberGenerator') var randomize_action = randomize + + +@export var smoothing := true: + set(x): material.set_shader_parameter('smoothing', x) + get(): return material.get_shader_parameter('smoothing') + +@export var use_color_gradient := false: + set(x): material.set_shader_parameter('use_color_gradient', x) + get(): return material.get_shader_parameter('use_color_gradient') + +@export var gradient_start := Color(.18, 0, .45): + set(x): material.set_shader_parameter('gradient_start', x) + get(): return material.get_shader_parameter('gradient_start') + +@export var gradient_end := Color.YELLOW: + set(x): material.set_shader_parameter('gradient_end', x) + get(): return material.get_shader_parameter('gradient_end') + +@export var gradient_accent := Color.YELLOW: + set(x): material.set_shader_parameter('gradient_accent', x) + get(): return material.get_shader_parameter('gradient_accent') + +@export var fractal_scale := 0.5: + set(x): material.set_shader_parameter('scale', x) + get(): return material.get_shader_parameter('scale') + +@export var fractal_seed := Vector2(-0.529, 0.136): + set(x): material.set_shader_parameter('seed', x) + get(): return material.get_shader_parameter('seed') + +@export var fractal_power := 3: + set(x): material.set_shader_parameter('power', x) + get(): return material.get_shader_parameter('power') + +@export var fractal_escape := 1.0: + set(x): material.set_shader_parameter('escape', x) + get(): return material.get_shader_parameter('escape') + + +func _on_resized() -> void: + material.set_shader_parameter('aspect_ratio', size.aspect()) + + +func _ready() -> void: + _on_resized() + + +func randomize(rng_seed := randi()) -> void: + var rng := RandomNumberGenerator.new() + rng.seed = rng_seed + fractal_power = rng.randi_range(2, 5) + fractal_escape = rng.randi_range(1, 4) + #fractal_scale = randf_range(0.5, 0.5 * size.aspect()) - 0.1 + match fractal_power: + 5: fractal_seed = Vector2(rng.randf_range(-0.7, -0.6), rng.randf_range(-0.1, 0.1)) + 4: fractal_seed = Vector2(rng.randf_range(-1.2, -1), rng.randf_range(-0.2, 0.2)) + 3: fractal_seed = Vector2(rng.randf_range(0.45, 0.7), rng.randf_range(-0.7, 0.7)) + 2: match fractal_escape: + 1.0: fractal_seed = Vector2(rng.randf_range(-0.9, -0.8), rng.randf_range(0, 0)) + 2.0: fractal_seed = Vector2(rng.randf_range(-1.8, -1.), rng.randf_range(0, 0)) + _: fractal_seed = Vector2.RIGHT.rotated(randf_range(0, TAU)) * Vector2(0.6, 1) + _: fractal_seed = Vector2(rng.randf_range(-1, 1), rng.randf_range(-1, 1)) diff --git a/paintings/fractal.gd.uid b/paintings/fractal.gd.uid new file mode 100644 index 0000000..23e2d5b --- /dev/null +++ b/paintings/fractal.gd.uid @@ -0,0 +1 @@ +uid://bnmc3t0wxeayv diff --git a/paintings/fractal.gdshader b/paintings/fractal.gdshader new file mode 100644 index 0000000..139348c --- /dev/null +++ b/paintings/fractal.gdshader @@ -0,0 +1,148 @@ +// Original code is MIT licensed by Cory Petkovsek +// https://github.com/TokisanGames/godot-fractal-art + +shader_type canvas_item; + +uniform bool smoothing = true; +uniform bool use_color_gradient = false; +uniform vec4 gradient_start : source_color = vec4(0.18, 0., 0.45, 1.); +uniform vec4 gradient_end : source_color = vec4(1., 1., 0., 1.); +uniform vec4 gradient_accent : source_color = vec4(1., 1., 0., 1.); +uniform float accent_position = 0.65; +uniform float accent_width = 0.34; +uniform float red_frequency = 1.6615; +uniform float green_frequency = 1.246; +uniform float blue_frequency = 0.831; +uniform float red_phase = 6.3; +uniform float green_phase = 6.3; +uniform float blue_phase = 6.3; + +uniform highp float scale = 0.5; +uniform highp vec2 position = vec2(0, 0); +uniform float aspect_ratio = 1.33333; + +uniform highp vec2 seed = vec2(-0.794084, 0.136444); +uniform int power = 2; +uniform float iterations = 50.0; +uniform float escape = 4.0; + +// Convert from rectangular to polar +highp vec2 c_pol(highp vec2 c) { + highp float radius = length(c); + highp float theta = atan(c.y, c.x); + return vec2(radius, theta); +} + +// Convert from rectangular to Polar +highp vec2 c_rec(highp vec2 c) { + highp float radius = abs(c.x); + highp float theta = c.y; + highp float a = radius * cos(theta); + highp float b = radius * sin(theta); + return vec2(a, b); +} + +// Calculate base ^ exponent +highp vec2 c_pow(highp vec2 base, highp float ex) { + highp vec2 b = c_pol(base); + return c_rec(vec2(pow(b.x, ex), b.y * ex)); +} + +vec4 alpha_blend(vec4 top, vec4 bot) { + return vec4(top.r * top.a + bot.r * bot.a * (1. - top.a), + top.g * top.a + bot.g * bot.a * (1. - top.a), + top.b * top.a + bot.b * bot.a * (1. - top.a), + 1.0); +} + +vec4 getColor(float i) { + if (use_color_gradient) { + // Create gradient + vec4 ramp = mix(gradient_start, gradient_end, i); + + // gaussian formula ae^( -(x-b)^2 / 2c^2 ) + // a = curve's peak = 1.0 + // b = center of peak position + // c = standard deviation which controls width of bell + + float gaussianx = exp(-((i - accent_position) * (i - accent_position)) / (2. * accent_width * accent_width)); + vec4 accent = vec4(gradient_accent.r * gaussianx, + gradient_accent.g * gaussianx, + gradient_accent.b * gaussianx, + gaussianx); + + return alpha_blend(accent, ramp); + } else { + /* Sin/Cos creates a smooth wave between 1 and -1, offset from each other. + * You can have 4 evenly distributed offsets from sin, cos, -sin, -cos + * (sin(x) +1) / 2 -> changes the wave to go between 0 and 1 with the same frequency, +2../4 will go from 0.5 and 1.0 + * Calculate full cycles with: sin(cycles*6.5*i) or (sin(cycles*5.4*i)+1.0)/2.0 or (cos(cycles*3.8*i)+1.0)/2.0 + */ + return vec4((sin(red_frequency * 6.5 * i + red_phase) + 1.0) / 2.0, + (sin(green_frequency * 6.5 * i + green_phase) + 1.0) / 2.0, + (sin(blue_frequency * 6.5 * i + blue_phase) + 1.0) / 2.0, + 1.); + } +} + +vec2 random(vec2 uv) { + return vec2(fract(sin(dot(uv.xy, + vec2(12.9898,78.233))) * 43758.5453123)); +} + +vec2 voronoi(vec2 uv, float columns, float rows) { + vec2 index_uv = floor(vec2(uv.x * columns, uv.y * rows)); + vec2 fract_uv = fract(vec2(uv.x * columns, uv.y * rows)); + + float minimum_dist = 1.0; + vec2 minimum_point; + + for (int y= -1; y <= 1; y++) { + for (int x= -1; x <= 1; x++) { + vec2 neighbor = vec2(float(x),float(y)); + vec2 point = random(index_uv + neighbor); + + vec2 diff = neighbor + point - fract_uv; + float dist = length(diff); + + if(dist < minimum_dist) { + minimum_dist = dist; + minimum_point = point; + } + } + } + return minimum_point; +} + + +void fragment() { + float i = 0.0; + + highp vec2 c = seed; + + highp vec2 z; + z.x = aspect_ratio * (UV.x - 0.5) / scale - position.x; + z.y = (UV.y - 0.5) / scale + position.y; + + if (power == 2) { + while (i < iterations && length(z) <= escape) { + z = vec2(z.x * z.x - z.y * z.y, 2.0 * z.x * z.y) + c; // 20fps + i++; + } + } else { + while (i < iterations && length(z) <= escape) { + z = c_pow(z, float(power)) + c; // 6-7fps + i++; + } + } + + if (i >= iterations) { + float r = voronoi(UV + seed, 10.0, 5.0).r; + COLOR = getColor(r); + } else { + if (smoothing && power > 1) { + i -= log(log(length(z))) / log(float(power)); + } + COLOR = getColor(i / iterations); + } +} diff --git a/paintings/fractal.gdshader.uid b/paintings/fractal.gdshader.uid new file mode 100644 index 0000000..03118de --- /dev/null +++ b/paintings/fractal.gdshader.uid @@ -0,0 +1 @@ +uid://b8yiyjkjgvful diff --git a/paintings/fractal.tscn b/paintings/fractal.tscn new file mode 100644 index 0000000..9a1347c --- /dev/null +++ b/paintings/fractal.tscn @@ -0,0 +1,41 @@ +[gd_scene load_steps=4 format=3 uid="uid://bx4upo2n66wke"] + +[ext_resource type="Shader" uid="uid://b8yiyjkjgvful" path="res://paintings/fractal.gdshader" id="1_4re67"] +[ext_resource type="Script" uid="uid://bnmc3t0wxeayv" path="res://paintings/fractal.gd" id="2_o3htp"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_o3htp"] +resource_local_to_scene = true +shader = ExtResource("1_4re67") +shader_parameter/smoothing = false +shader_parameter/use_color_gradient = false +shader_parameter/gradient_start = Color(0.18, 0, 0.45, 1) +shader_parameter/gradient_end = Color(1, 1, 0, 1) +shader_parameter/gradient_accent = Color(1, 1, 0, 1) +shader_parameter/accent_position = 0.65 +shader_parameter/accent_width = 0.34 +shader_parameter/red_frequency = 1.6615 +shader_parameter/green_frequency = 1.246 +shader_parameter/blue_frequency = 0.831 +shader_parameter/red_phase = 6.3 +shader_parameter/green_phase = 6.3 +shader_parameter/blue_phase = 6.3 +shader_parameter/scale = 0.5 +shader_parameter/position = Vector2(0, 0) +shader_parameter/aspect_ratio = 1.3333334 +shader_parameter/seed = Vector2(0.17868738, -0.9546245) +shader_parameter/power = 2 +shader_parameter/iterations = 10.0 +shader_parameter/escape = 3.0 + +[node name="Fractal" type="ColorRect"] +material = SubResource("ShaderMaterial_o3htp") +custom_minimum_size = Vector2(32, 24) +offset_right = 320.0 +offset_bottom = 240.0 +script = ExtResource("2_o3htp") +smoothing = false +fractal_seed = Vector2(0.17868738, -0.9546245) +fractal_power = 2 +fractal_escape = 3.0 + +[connection signal="resized" from="." to="." method="_on_resized"] diff --git a/paintings/frame.png b/paintings/frame.png new file mode 100644 index 0000000..08013b6 Binary files /dev/null and b/paintings/frame.png differ diff --git a/paintings/frame.png.import b/paintings/frame.png.import new file mode 100644 index 0000000..7df155d --- /dev/null +++ b/paintings/frame.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b142kv367vbw7" +path="res://.godot/imported/frame.png-e1682da613f441ce461363027e19aee4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://paintings/frame.png" +dest_files=["res://.godot/imported/frame.png-e1682da613f441ce461363027e19aee4.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/paintings/noise.gd b/paintings/noise.gd new file mode 100644 index 0000000..ed8ed7e --- /dev/null +++ b/paintings/noise.gd @@ -0,0 +1,80 @@ +@tool +extends ColorRect + + +@export_tool_button('Randomize', 'RandomNumberGenerator') var randomize_action = randomize + + +@export var noise: FastNoiseLite: + set(x): + if noise: noise.changed.disconnect(_changed_noise) + noise = x + if noise: noise.changed.connect(_changed_noise) + +@export var steps := 12: + set(x): material.set_shader_parameter('steps', x) + get(): return material.get_shader_parameter('steps') + +@export var gradient_start := Color(.18, 0, .45): + set(x): material.set_shader_parameter('gradient_start', x) + get(): return material.get_shader_parameter('gradient_start') + +@export var gradient_end := Color.YELLOW: + set(x): material.set_shader_parameter('gradient_end', x) + get(): return material.get_shader_parameter('gradient_end') + +@export var rng_seed := 0: + set(x): + rng_seed = x + _regenerate() + + +var _noise_texture := NoiseTexture2D.new(): + set(x): + _noise_texture = x + _changed_noise() + + +func _changed_noise() -> void: + _noise_texture.noise = noise + material.set_shader_parameter('noise', _noise_texture) + + +func _resized() -> void: + _noise_texture.width = ceili(size.x) + _noise_texture.height = ceili(size.y) + _changed_noise() + + +func _ready() -> void: + _resized() + resized.connect(_resized) + + +func _regenerate() -> void: + var rng := RandomNumberGenerator.new() + rng.seed = rng_seed + noise.fractal_type = rng.randi_range(0, 3) as FastNoiseLite.FractalType + match noise.fractal_type: + 3: noise.fractal_octaves = 2 + 2: noise.fractal_octaves = 3 + _: noise.fractal_octaves = 5 + noise.frequency = rng.randf_range(0.002, 0.004) + noise.seed = rng.seed + match rng.randi_range(1, 5): + 1: steps = 2 + 2: steps = 5 + 3: steps = 12 + 4: steps = 24 + 5: steps = 128 + var lighter := rng.randf_range(0.4, 0.8) + var darker := rng.randf_range(0.2, 0.6) + var color1 := Color.from_ok_hsl(rng.randf(), rng.randf() * 0.8 + 0.2, lighter) + var color2 := Color.from_ok_hsl(rng.randf(), rng.randf(), lighter - darker) + match rng.randi_range(1, 2): + 1: gradient_start = color1; gradient_end = color2 + _: gradient_start = color2; gradient_end = color1 + + +func randomize() -> void: + rng_seed = randi() diff --git a/paintings/noise.gd.uid b/paintings/noise.gd.uid new file mode 100644 index 0000000..589abeb --- /dev/null +++ b/paintings/noise.gd.uid @@ -0,0 +1 @@ +uid://2jt34o1v7gbo diff --git a/paintings/noise.gdshader b/paintings/noise.gdshader new file mode 100644 index 0000000..b6ee4f1 --- /dev/null +++ b/paintings/noise.gdshader @@ -0,0 +1,11 @@ +shader_type canvas_item; + +uniform sampler2D noise; +uniform float steps = 8.0; +uniform vec4 gradient_start : source_color = vec4(0.18, 0., 0.45, 1.); +uniform vec4 gradient_end : source_color = vec4(1., 1., 0., 1.); + +void fragment() { + float r = round(texture(noise, UV).r * steps) / steps; + COLOR = mix(gradient_start, gradient_end, r); +} diff --git a/paintings/noise.gdshader.uid b/paintings/noise.gdshader.uid new file mode 100644 index 0000000..49d5bce --- /dev/null +++ b/paintings/noise.gdshader.uid @@ -0,0 +1 @@ +uid://b6jkek1qotcnf diff --git a/paintings/noise.tscn b/paintings/noise.tscn new file mode 100644 index 0000000..0af8ed7 --- /dev/null +++ b/paintings/noise.tscn @@ -0,0 +1,35 @@ +[gd_scene load_steps=6 format=3 uid="uid://bjpharjtpysre"] + +[ext_resource type="Shader" uid="uid://b6jkek1qotcnf" path="res://paintings/noise.gdshader" id="1_2lnyf"] +[ext_resource type="Script" uid="uid://2jt34o1v7gbo" path="res://paintings/noise.gd" id="1_o4civ"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_o4civ"] +resource_local_to_scene = true +seed = 1 +frequency = 0.0028707401 +offset = Vector3(1460.7504, 943.2602, 0) +fractal_type = 2 +fractal_octaves = 3 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_2lnyf"] +width = 320 +height = 240 +noise = SubResource("FastNoiseLite_o4civ") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_0uljq"] +shader = ExtResource("1_2lnyf") +shader_parameter/noise = SubResource("NoiseTexture2D_2lnyf") +shader_parameter/steps = 8.0 +shader_parameter/gradient_start = Color(0.56780183, 0.45513594, 0.630845, 1) +shader_parameter/gradient_end = Color(0.5222837, 0.45749915, 0.35617962, 1) + +[node name="Noise" type="ColorRect"] +material = SubResource("ShaderMaterial_0uljq") +custom_minimum_size = Vector2(32, 24) +offset_right = 320.0 +offset_bottom = 240.0 +script = ExtResource("1_o4civ") +noise = SubResource("FastNoiseLite_o4civ") +steps = 8 +gradient_start = Color(0.56780183, 0.45513594, 0.630845, 1) +gradient_end = Color(0.5222837, 0.45749915, 0.35617962, 1) diff --git a/paintings/painting.gd b/paintings/painting.gd new file mode 100644 index 0000000..c0e5e80 --- /dev/null +++ b/paintings/painting.gd @@ -0,0 +1,10 @@ +@tool +extends Node2D +class_name Painting + + +@export_tool_button('Randomize', 'RandomNumberGenerator') var randomize_action = randomize + + +func randomize(rng_seed := randi()) -> void: + %Noise.rng_seed = rng_seed diff --git a/paintings/painting.gd.uid b/paintings/painting.gd.uid new file mode 100644 index 0000000..1d4b737 --- /dev/null +++ b/paintings/painting.gd.uid @@ -0,0 +1 @@ +uid://tqu2ms43fhis diff --git a/paintings/painting.tscn b/paintings/painting.tscn new file mode 100644 index 0000000..8c389ed --- /dev/null +++ b/paintings/painting.tscn @@ -0,0 +1,49 @@ +[gd_scene load_steps=5 format=3 uid="uid://donkfeu1x888o"] + +[ext_resource type="Texture2D" uid="uid://b142kv367vbw7" path="res://paintings/frame.png" id="1_6chac"] +[ext_resource type="Script" uid="uid://tqu2ms43fhis" path="res://paintings/painting.gd" id="1_465no"] +[ext_resource type="PackedScene" uid="uid://bjpharjtpysre" path="res://paintings/noise.tscn" id="2_oqt1c"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_465no"] +resource_local_to_scene = true +seed = 1262753571 +frequency = 0.0024024888 +offset = Vector3(1460.7504, 943.2602, 0) +fractal_type = 0 + +[node name="Painting" type="Node2D"] +texture_filter = 1 +script = ExtResource("1_465no") + +[node name="Frame" type="Sprite2D" parent="."] +texture = ExtResource("1_6chac") + +[node name="SubViewportContainer" type="SubViewportContainer" parent="."] +offset_left = -146.0 +offset_top = -91.0 +offset_right = 146.0 +offset_bottom = 91.0 +stretch = true +stretch_shrink = 4 + +[node name="SubViewport" type="SubViewport" parent="SubViewportContainer"] +handle_input_locally = false +size = Vector2i(73, 45) +size_2d_override = Vector2i(480, 360) +size_2d_override_stretch = true +render_target_update_mode = 4 + +[node name="Noise" parent="SubViewportContainer/SubViewport" instance=ExtResource("2_oqt1c")] +unique_name_in_owner = true +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_right = 0.0 +offset_bottom = 0.0 +grow_horizontal = 2 +grow_vertical = 2 +noise = SubResource("FastNoiseLite_465no") +steps = 5 +gradient_start = Color(0.31606108, 0.20250309, 0.17190823, 1) +gradient_end = Color(0.48729545, 0.5426228, 0.2567169, 1) +rng_seed = 1262753571 diff --git a/score_screen.tscn b/score_screen.tscn new file mode 100644 index 0000000..339ba4e --- /dev/null +++ b/score_screen.tscn @@ -0,0 +1,49 @@ +[gd_scene load_steps=4 format=3 uid="uid://bcnpjrwddi5h8"] + +[ext_resource type="Theme" uid="uid://d2rlcffg7nguy" path="res://menus.tres" id="1_3r2db"] +[ext_resource type="Texture2D" uid="uid://cabsfveh1oc6i" path="res://assets/menus/final score/morshu-happy-large.png" id="1_juxjb"] +[ext_resource type="Texture2D" uid="uid://d24dlalqmr6r0" path="res://assets/menus/final score/morshu-anger-large.png" id="2_3r2db"] + +[node name="Node2D" type="Node2D"] + +[node name="Control" type="Control" parent="."] +layout_mode = 3 +anchors_preset = 0 +offset_right = 1280.0 +offset_bottom = 720.0 + +[node name="ColorRect" type="ColorRect" parent="Control"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0.18431373, 0.09411765, 0.10980392, 1) + +[node name="RichTextLabel" type="RichTextLabel" parent="Control"] +layout_mode = 1 +anchors_preset = 4 +anchor_top = 0.5 +anchor_bottom = 0.5 +offset_left = 64.0 +offset_top = -175.0 +offset_right = 545.0 +offset_bottom = 175.0 +grow_vertical = 2 +theme = ExtResource("1_3r2db") +text = "placeholder" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="MorshoReactManager" type="Node2D" parent="."] +position = Vector2(870, 360) +rotation = 0.20420352 +scale = Vector2(2.5, 2.5) + +[node name="MorshoHappy" type="Sprite2D" parent="MorshoReactManager"] +texture = ExtResource("1_juxjb") + +[node name="MorshoAngry" type="Sprite2D" parent="MorshoReactManager"] +visible = false +texture = ExtResource("2_3r2db")