From 8ceeea97d7429a33946ca01db2639938f743b6a4 Mon Sep 17 00:00:00 2001 From: astra137 Date: Mon, 6 Oct 2025 00:46:49 -0700 Subject: [PATCH 1/2] wip: tts refactor, painting animations --- bark_buttons.gd | 8 +-- captions.gd | 15 +++++ captions.gd.uid | 1 + game_manager.gd | 26 +++----- main.tscn | 23 ++++++- numpad.gd | 10 +-- paintings/dmg.png | Bin 0 -> 7146 bytes paintings/dmg.png.import | 40 ++++++++++++ paintings/noise.gd | 1 + paintings/painting.gd | 24 ++++++- paintings/painting.tscn | 49 +++++++++++---- paintings/painting_display.gd | 54 ++++++++++++++++ paintings/painting_display.gd.uid | 1 + paintings/painting_display.tscn | 94 ++++++++++++++++++++++++++++ paintings/veryart/1/F0.png | Bin 0 -> 8621 bytes paintings/veryart/1/F0.png.import | 40 ++++++++++++ paintings/veryart/10/F0.png | Bin 0 -> 8181 bytes paintings/veryart/10/F0.png.import | 40 ++++++++++++ paintings/veryart/11/F0.png | Bin 0 -> 2952 bytes paintings/veryart/11/F0.png.import | 40 ++++++++++++ paintings/veryart/12.png | Bin 0 -> 11209 bytes paintings/veryart/12.png.import | 40 ++++++++++++ paintings/veryart/2/F0.png | Bin 0 -> 8475 bytes paintings/veryart/2/F0.png.import | 40 ++++++++++++ paintings/veryart/3/F0.png | Bin 0 -> 10258 bytes paintings/veryart/3/F0.png.import | 40 ++++++++++++ paintings/veryart/4/F0.png | Bin 0 -> 12505 bytes paintings/veryart/4/F0.png.import | 40 ++++++++++++ paintings/veryart/5/F0.png | Bin 0 -> 7131 bytes paintings/veryart/5/F0.png.import | 40 ++++++++++++ paintings/veryart/6/F0.png | Bin 0 -> 10131 bytes paintings/veryart/6/F0.png.import | 40 ++++++++++++ paintings/veryart/7/F0.png | Bin 0 -> 8143 bytes paintings/veryart/7/F0.png.import | 40 ++++++++++++ paintings/veryart/8/F0.png | Bin 0 -> 7616 bytes paintings/veryart/8/F0.png.import | 40 ++++++++++++ paintings/veryart/9/F0.png | Bin 0 -> 5510 bytes paintings/veryart/9/F0.png.import | 40 ++++++++++++ paintings/veryart/notart.png | Bin 0 -> 28504 bytes paintings/veryart/notart.png.import | 40 ++++++++++++ turn_manager.gd | 24 ++++--- 41 files changed, 842 insertions(+), 48 deletions(-) create mode 100644 captions.gd create mode 100644 captions.gd.uid create mode 100644 paintings/dmg.png create mode 100644 paintings/dmg.png.import create mode 100644 paintings/painting_display.gd create mode 100644 paintings/painting_display.gd.uid create mode 100644 paintings/painting_display.tscn create mode 100644 paintings/veryart/1/F0.png create mode 100644 paintings/veryart/1/F0.png.import create mode 100644 paintings/veryart/10/F0.png create mode 100644 paintings/veryart/10/F0.png.import create mode 100644 paintings/veryart/11/F0.png create mode 100644 paintings/veryart/11/F0.png.import create mode 100644 paintings/veryart/12.png create mode 100644 paintings/veryart/12.png.import create mode 100644 paintings/veryart/2/F0.png create mode 100644 paintings/veryart/2/F0.png.import create mode 100644 paintings/veryart/3/F0.png create mode 100644 paintings/veryart/3/F0.png.import create mode 100644 paintings/veryart/4/F0.png create mode 100644 paintings/veryart/4/F0.png.import create mode 100644 paintings/veryart/5/F0.png create mode 100644 paintings/veryart/5/F0.png.import create mode 100644 paintings/veryart/6/F0.png create mode 100644 paintings/veryart/6/F0.png.import create mode 100644 paintings/veryart/7/F0.png create mode 100644 paintings/veryart/7/F0.png.import create mode 100644 paintings/veryart/8/F0.png create mode 100644 paintings/veryart/8/F0.png.import create mode 100644 paintings/veryart/9/F0.png create mode 100644 paintings/veryart/9/F0.png.import create mode 100644 paintings/veryart/notart.png create mode 100644 paintings/veryart/notart.png.import diff --git a/bark_buttons.gd b/bark_buttons.gd index dca1520..01c122a 100644 --- a/bark_buttons.gd +++ b/bark_buttons.gd @@ -6,16 +6,16 @@ signal auctioneer_bark func _on_great_buy_button_down() -> void: auctioneer_bark.emit() - DisplayServer.tts_speak("Great buy!", turn_manager.voice_id, turn_manager.tts_volume, turn_manager.tts_pitch, bark_speed) + turn_manager.speak("Great buy!") func _on_investment_piece_button_down() -> void: auctioneer_bark.emit() - DisplayServer.tts_speak("Investment piece!", turn_manager.voice_id, turn_manager.tts_volume, turn_manager.tts_pitch, bark_speed) + turn_manager.speak("Investment piece!") func _on_stunning_message_button_down() -> void: auctioneer_bark.emit() - DisplayServer.tts_speak("Stunning message!", turn_manager.voice_id, turn_manager.tts_volume, turn_manager.tts_pitch, bark_speed) + turn_manager.speak("Stunning message!") func _on_innovative_artist_button_down() -> void: auctioneer_bark.emit() - DisplayServer.tts_speak("Innovative artist!", turn_manager.voice_id, turn_manager.tts_volume, turn_manager.tts_pitch, bark_speed) + turn_manager.speak("Innovative artist!") diff --git a/captions.gd b/captions.gd new file mode 100644 index 0000000..7e256b5 --- /dev/null +++ b/captions.gd @@ -0,0 +1,15 @@ +extends Label +class_name CaptionLabel + + +var _tween: Tween + + +func display_caption(msg: String) -> void: + text = msg + modulate = Color.WHITE + if _tween: _tween.kill() + _tween = create_tween() + _tween.tween_interval(30.0) + _tween.tween_property(self, ^'modulate', Color.TRANSPARENT, 3.0) + _tween.tween_callback(func(): _tween = null) diff --git a/captions.gd.uid b/captions.gd.uid new file mode 100644 index 0000000..d58b2a9 --- /dev/null +++ b/captions.gd.uid @@ -0,0 +1 @@ +uid://sfhg7pkumnwa diff --git a/game_manager.gd b/game_manager.gd index ab7f938..478d875 100644 --- a/game_manager.gd +++ b/game_manager.gd @@ -36,24 +36,24 @@ func _ready() -> void: desk.gavel.gavel_hit.connect(_handle_gavel_hit) #paintings_total = randi_range(7,10) - target_sales = randi_range(2,5) * sales_magnitude + target_sales = randi_range(2, 5) * sales_magnitude - var new_painting = 0 + var new_painting := 0 var new_painting_value: int while new_painting < paintings_total: - new_painting_value = (target_sales/randf_range(paintings_total - 2, paintings_total + 2)) + @warning_ignore('integer_division') + new_painting_value = target_sales / randi_range(paintings_total - 2, paintings_total + 2) new_painting_value = snappedi(new_painting_value, single_painting_magnitude) print(str(new_painting_value)) paintings.append(new_painting_value) new_painting += 1 print(paintings) - print("You have " + str(paintings_total) + " paintings. Sell them for at least $" + str(target_sales) + " or face the consequences!") - print("Hit the gavel and input the starting price to begin!") - DisplayServer.tts_speak("You have " + str(paintings_total) + " paintings. Sell them fast for at least $" + str(target_sales) + " or face the consequences!", turn_manager.voice_id, turn_manager.tts_volume, turn_manager.tts_pitch) - DisplayServer.tts_speak("Hit the gavel and input the starting price to begin!", turn_manager.voice_id, turn_manager.tts_volume, turn_manager.tts_pitch) + var intro_msg := "You have %s paintings. Sell them fast for at least $%s or face the consequences!" % [paintings_total, target_sales] + intro_msg += "\nHit the gavel and input the starting price to begin!" + turn_manager.speak(intro_msg) next_painting(0) #build out the initialization process, which should: @@ -63,8 +63,6 @@ func _ready() -> void: # -- have tts announcement of starting bid and start of auction - - func _handle_gavel_hit(): if state == bidding_state.CLOSED: state = bidding_state.READY @@ -85,15 +83,12 @@ func _handle_gavel_hit(): else: end_auction() - else: - pass 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) + turn_manager.speak("Oh nooooooo! Took too long!\nTry to make it up on the next painting!") desk.numpad.reminder_timer.stop() next_painting(current_painting) @@ -104,7 +99,6 @@ func next_painting(a: int): $NextPainting.play() starting_price = paintings[a] current_bid = 0 - # will need to add animation/image swap new_painting_displayed.emit() @@ -115,10 +109,10 @@ func end_auction(): #add in logic for displaying/transitioning to score screen if total_sales >= target_sales: #add context specific score text? - DisplayServer.tts_speak("Congratulations! The auction house will run another day.", turn_manager.voice_id, turn_manager.tts_volume, turn_manager.tts_pitch) + turn_manager.speak("Congratulations! The auction house will run another day.") else: #add context specific score text? - DisplayServer.tts_speak("You have failed. We must find a new auctioneer.", turn_manager.voice_id, turn_manager.tts_volume, turn_manager.tts_pitch) + turn_manager.speak("You have failed. We must find a new auctioneer.") # OTHER THINGS TO ADD: # UI elements for score diff --git a/main.tscn b/main.tscn index 12d4d6b..337ba76 100644 --- a/main.tscn +++ b/main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=24 format=3 uid="uid://dt4nq0nkmjiit"] +[gd_scene load_steps=26 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"] @@ -13,6 +13,7 @@ [ext_resource type="Texture2D" uid="uid://d2142cf22t1lv" path="res://assets/buttons/button1.png" id="9_2cqfq"] [ext_resource type="PackedScene" uid="uid://donkfeu1x888o" path="res://paintings/painting.tscn" id="9_kek77"] [ext_resource type="Script" uid="uid://bg1vk1o2eq3fg" path="res://bark_buttons.gd" id="9_yaehf"] +[ext_resource type="Script" uid="uid://sfhg7pkumnwa" path="res://captions.gd" id="10_ryguw"] [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"] @@ -27,6 +28,11 @@ default_font = ExtResource("2_5vw27") default_font_size = 12 +[sub_resource type="LabelSettings" id="LabelSettings_ryguw"] +font = ExtResource("2_5vw27") +shadow_size = 5 +shadow_color = Color(0, 0, 0, 0.416) + [node name="Main" type="Node"] [node name="Background" type="Sprite2D" parent="."] @@ -45,6 +51,7 @@ texture = ExtResource("3_272bh") [node name="Painting" parent="." instance=ExtResource("9_kek77")] position = Vector2(1075, 130) +rng_seed = 1262753571 [node name="GameManager" type="Node2D" parent="." node_paths=PackedStringArray("audience_manager", "desk", "turn_manager", "current_bid_display")] unique_name_in_owner = true @@ -85,14 +92,26 @@ text = "Current Bid: $0" horizontal_alignment = 1 vertical_alignment = 1 +[node name="Captions" type="Label" parent="UI"] +layout_mode = 0 +offset_top = 352.0 +offset_right = 1280.0 +offset_bottom = 392.0 +text = "PLACEHOLDER" +label_settings = SubResource("LabelSettings_ryguw") +horizontal_alignment = 1 +vertical_alignment = 1 +script = ExtResource("10_ryguw") + [node name="AudienceManager" parent="." node_paths=PackedStringArray("desk", "game_manager", "bark_buttons") instance=ExtResource("6_272bh")] desk = NodePath("../Desk") game_manager = NodePath("../GameManager") bark_buttons = NodePath("../BarkButtons") -[node name="TurnManager" parent="." node_paths=PackedStringArray("desk", "game_manager", "audience_manager") instance=ExtResource("7_272bh")] +[node name="TurnManager" parent="." node_paths=PackedStringArray("desk", "captions", "game_manager", "audience_manager") instance=ExtResource("7_272bh")] tts_sentence_speed = 4.5 desk = NodePath("../Desk") +captions = NodePath("../UI/Captions") game_manager = NodePath("../GameManager") audience_manager = NodePath("../AudienceManager") diff --git a/numpad.gd b/numpad.gd index 9262bc8..5d0478f 100644 --- a/numpad.gd +++ b/numpad.gd @@ -16,9 +16,9 @@ var turn_manager: TurnManager func _ready() -> void: progress_bar.max_value = reminder_timer.wait_time - -func _process(delta: float) -> void: + +func _process(_delta: float) -> void: progress_bar.value = reminder_timer.time_left # number entry function called by numbered button children @@ -32,9 +32,9 @@ func keypad_backspace(): func keypad_submit(): var keypad_output: String = "".join(numpad_buffer) proposed_ask = int(keypad_output) * 1000 - + if proposed_ask == 0: return - + match game_manager.state: game_manager.bidding_state.READY: if proposed_ask == game_manager.starting_price: @@ -64,7 +64,7 @@ func keypad_submit(): error_audio_player.play() _: error_audio_player.play() - + # need to avoid starting the reminder timer before # the auction starts numpad_buffer.clear() diff --git a/paintings/dmg.png b/paintings/dmg.png new file mode 100644 index 0000000000000000000000000000000000000000..09b2315f9e734f407a7c29989bbd041bb1140fad GIT binary patch literal 7146 zcmb_>`CF3P_x4krI$3EBm8q%aTxO+)Gg&!>mgYz*PMJgEkP|34o$@&3lyfQKan@9< z5CsXToHex^AQiPl#hDzC)Y310{)G2>`2imGwf4T&zSmm!z4v+&@0*+O9}_SGCJeJYK9W(Y^$z&b`EGa5 zrElk&U8DP1!O@wg!JkJ_wYAQ z9IKA6!**4nyQcJ&H&v$sQ+&5tgcbRKn1bw$*%a@c90jV7NI64J-A7G)^`-HdV&u2P zgMh0E39KXQ%>26jJR>2|nk{E7BX0eYKB{F2087R42YmfvxDooEFCTsXufc0$0gtyU zOL=$HGHX3dekfG*kLv;8+T`2#i<+xvopNb9Lz~;2ZwT`(b=JEE0c!6SV@&vK$sLki zrQCJH!vJu!0@>1B-mC2+<@owm^TPwV8L{=O@QaX7>;>x`u0x5ma8@_?syt^QeCf7; zlYq4l0DK~vrJ|ZwN}mQ>1*3^mV_wobd-&y$!U7e{>Tvnrt(;y?5VKJy&^k;XTWIYkE#o;zhAG09bj z7g#&ZAp?O|dY$)_(h9p?dBLpwyO2mup4`UzR>bcAqUuIC(E*Oy>sED3d~mHjj95&P@l6hPZjhY%8qs3A!&JnJX9|5a_v7uxSEcxknWYJO!ey_kDPD|t0DS| zd!>3{zGaUwrrf^Ckg8b9Xb*Duj=sWe^@Y7zx%#1oF59xgx=G6}_QeJEm7YP1O8~&k zQh=(9ByZ`{xDF6^v^pGQ9=7*CtQ~dHbhz(+I#JnTMx?c05EqE^ci8- zLJSFGj(;+e2m60Td6b;Z_8z{nBr+e_fJfgpc>l~sh6k4gUeuCgYV0F128BE}R};TD zVlO{H_Ou>zQN?Joe%wu)*rpY&S>M@T)NS|@RvzO0*eR7lu9}`vfp~9hy+nd1JK~Q+ z3-fIYCxSNFzGGgK5-6-ZkFx3=Kqrti!Ir}ON7o;v4L-!P0%jGQKS=TDCxm!QY*M27;4OpeD(I1Z7su(Z~{^%OmdV2V!jp2 z7b(XbkZuHfJYYUVQVPl_MU)9?T}Q~tN4;dfV5m2qgzOH^V)Q!4i zoe5CzS$)~~G_3F9oX_sOZGppr4%&ZhWXgOz6>oS7h!IwX#;3gaZ9KB;;{}11uCGJW z{;fB@(r&wR)17v1-mR;0-wLKIIxChwUE{FK<+D54MHyU_EG|3gj6)d(qs-FAD#NAc z65L(Z#7lgIdE66ZIM3I+<@?$n>0uOY;Tck$I&NRLIh!4S7`WNpO^OCV z9(9o=gQ+gt-6;d?C2yO$z&dU!O=?eQJuZz}G~mZjxqIru*41(o-e#3~h}yTfn$2<} zjhh>$4&a0fEm>;ZAGgzjHJG+H%M4=K-D2B$*_NN6fu-C` z?d}WH^zP)&Ebxl{du5qseVHaaHYc(wobxvabuy{e{?TjJW(jd&#HA_PLYoKx8`k-P zpI?^P4JtcSha9FCigFS*C#ZMWubnL8OT;?D=RvRcA&}}5PRs_!6Ox8%aL7k^ySDKk zP6XMM_q(59lhJli0EqeGaSH?~m&`&O^={zV1dm{gv>Ls3_SzTWkkaZx!h;yE#1ZYNE~|9uinxE#0ft*vgq z2qXM6-kqjkK|$inWf0>_7bs&iYcU+ALgPSW+cSPqK>*-IHXW>6o3csc-fPGqB?$#9 z$trNbxM63ue57yM920RAh5|scns|P_Q@M!?}4nnC2hAdH@XB>@CTNJKp zmPc{pi~}28gcjd}_ZLVWsuq$CyfRUM!A>&0WCR@lybrsxV%xtX(Dir@O5G>N2^CIL z&KYnI!|kkp(j27MT2%2;Xin@()72ixK6m=rT%Eg;vWuCH8afm+fxOnMnRQN?UxcfQ{uA2dcCpU;1pOA@FZKW8@ug)Z!s33a#pyDf z7n`QH?d1u#PN1l+VZ#Yd2;dVr!H6!?nKT1wY-vEK6wg`ryrXEemJ z6V^h+Jw6O3zzx5k<%e^Eip}J+tB_WycZ{w1x;p)4Zj^>iZLyvjW+_6ztJ+6eCX=WI z*?e!F6O9c)5bp()%0-qRO2Jzljb%UlVm;;1NiSZyEz@mX_SCko_vbJBTSp$;gUKEQ z7j5~(8AeIRVXS$0AuKQI&FH8OmDQ1xWI z$ALpEI{9=n0uNf~Hga1+J}3w@B7qPyMJ_?sV0-?MR0jV9dkcb?B2}K**-96v#Jd zGk~PPcbdLEf{<>k)vB`%G9Zf|2?BAy<07b{u73rlB-Etp(yUYO-D7Bvf^gt)|M^n_ z=XAZp^BmMn+=ic=`5xH{l34_uL(ZIQb6WbnvotbBaff9lXl&z~4&I+vTy3cNCuCVCmlf-wl_y7)q@kGa_jNf!TeD!t}61iMN|`pqS(}w9wVQ zhcAi7Lg3=1Y5z9Txw7ileBK}KOo>}Cw|#;MR=#q`P+@wfjL=LXN?;2hsx1s3M~-!G zvEMvxOWe+XmE7l?Xa_@UCo1WRz14AC(O}&DN2nEqy)8W2|JEeXMlDYy+K#HrGr1OQ zIAT;+5mGfgX6jOZ;ypBN;(lOCMaGGGM@okOC0uC&oa3z7!Ha-EQ0~#abGwL567v`;=jK^ssL;U8YvCKYj%m{ozb+y)o160r99rmrFsbrbhO zPauFo^W*Ol;5X%_Mk(pa$Eb*+tHFlhnT+#W-4#|JY7h{pA z^oOdcPGGR^j`IpKhPwb3g}@HkiO_K=j5uPAN!H&@`I;}bf1uy0J@J@%dUi_u+EXH8 z`SN3_?AXoAXk}qb1OnFn+b6pL&o1lUdatbnK-6b1@VvY`<$xlCd!jk_8M4*0?@I8) zLqSoUlapk}@#W67??0W@Q779#t_p$6yE_Dr8YQ$D$}qesKwr=lqBDWbYbD_gBOtpEov%h|B9c zg?8#FdubDyZu6C=W1kg074p_Ks`4*$eJ0V3YB(cpI#qG+=1E+YhHg6nv&?ytJN+Df zM){!#vL|ekpZ#kSy%w%~XU!PeQfXD_wET;#G7_J&ym4vq!K^@_U;9C0%f+^+R>JT9 z4V4q^8VV6fxmQ+2Qq%PBK&5X27FqDL$>&53GYExWx?D7{w$O>` zz-DfbAG(C|7?AD0;t=(XWYB92{x^2q5W}=uI|VlB+fAMWY2`?RaFJa9jR@1p(KmWh z>Paf;X0V>UyJk+s9R#67EYS|a+n_^SO=+{{!-wD+JKYoT_=>kx+L|QX!%s_pq77h+ zPPv%&>BTrAC6<_@fEy2BYmHZHm?yv`?--6imPI~hbZsar)Egw_Yr8X*4vhMEadlNjS2rnui#8QjdD<(ir_Vh&|I@0$WH^iisk zu4(V^-NOX(1?jXcH-nDFt;f_Pvev47eSbQ0^zB!ggI$`A)38UVg`j&PoYhKb*iM8e z%?ZtP1w9)bx29B#zX>ZGUDWzSaM3-*HupJev-sj26M=F#O}Ac4>F$m3=L$kPE+4kae+a}gK)F3;$NuI;!r zR7(tw^e!!IQ<}aKZmdcVyT4iRgsFvGVLeEDqlWtvl?_EltW00O3m5*8$5u}zYVcrm z`8&|>Ah`JbN7V;e$#1E`+wr|j$$*RwiPeDF-mRT=mC!AXAT7q-4yoAwwr0tIUwHAC z)l3J!lV*!Q8yRu)N5`(OXvpJI6mc`Tinx2{h5n5YmolV{dMk(8tqexVLOV9PQw@GO z#Lr1e5IWSXQ!oRqT$}*Nc-Pol5yw%)jYmUa`O}Z}uV^i-ma!yXhK>_wljuHdo$23KQumf|Qt7x3MPd4^2z_l~?H+9LGukjb z$udPHVTwE5g{XsXYNq?@QQji#;+d=7;W864rZ6)6d~c<}>-YGzy50Q8Vs8`R%mnyM zs32V@>8C-ANg;b(h7vA|4!@-;NNFlu-CPZ?9=}!?g!$pbCOt5PK1ZH z67;J3w@hGWJm+svij#AKGk;<0f;dCm1$F35S@)~ZUM`~#$8mNGVMfR1wA-xw>>FJ( zqjHZ-IY^Uf=)-}_O-p&af!upC$KJ$KHDf0D^DT=18FYW?(AOI}^rVD+A)-X$!dD4x zZ3H8Jhy*6%(hAuW!CtRHCh_^c>&lJH8}Aix%V9wPwuU8$P4|fEQQ2GCDG5N}p_kWYO;}7G{lnK-Q4XGc1316FMH6dECMMkM@ zO3aW3+P7}{qWWV(%B0P+%N#CD8AZmL!xmY+fqtz|Rwh~r61+=BYj)FoL_c4b-+jq| z%M^)+CMC08!&*{3v@Kim)mb6i>GrzdiFhKdUxMiX`7|`3`z@1*xFvJ!gNqkGv9N_o z-HW2*1L^L9TeEk4ktr3<$4S2xgeB-~sa66@2}~mwB+=Ulzh;XcWQmKJz{nFT$;6z&XP4q~gy_ON zURe5p`xu18n~m3_^du#>MMg|vKhr(c0CFPpQAf-xfW?QA4;Ghz7!k2G9| zVKI@I+Vf$WxpOtiQk>2}*sWEf@a*uyb6E*ErDsa}#E3Ib(hXqDyK}_Z;=|u8e27EC zB7F>OEZ+Gke#@a2EJ8A#s5qgUVfW4|Dsh@&1gYTdQMn(tkhgb8enUc$_4dk$dTX@k9t>?_ft8t;Q1 z+(J^Y%K1@?;k}VA9k|@BR)QLCkkd-I%Znm*2KP@02sY=dG-_{e;n+>}+)Ho|abG4D zbnj1v*?`p1>M^ntq76mol@B zF@q^j7ytFmpzerc-{SFI)EM}7iC-$VgM{#RGiy;H_mFLxI-bz?)C723Z z#&Ey5dX@>L5Hg%`IYu|FT4<(=w_H+ndHTZtJL~|qj&<-@fUCJ}GzHtxh{=~?5jbsY z8?v};A^NrmU7QzOz*v0P9pGL4X&?2gl>y*m#8sEQo%Z&Rf9Y;`zOv}ZD5_`;+Fmcc}D?h>kBjc3qXv_4RN void: - %Noise.rng_seed = rng_seed +@export var overwrite_texture: Texture2D: + set(x): + overwrite_texture = x + queue_redraw() + + +@export_range(0, 3) var damage: int: + set(x): + damage = clampi(x, 0, 3) + queue_redraw() + + +func _draw() -> void: + %Dmg.visible = damage > 0 + %Dmg.frame = damage - 1 if damage > 0 else 0 + %Noise.rng_seed = painting_id + %TextureRect.texture = overwrite_texture diff --git a/paintings/painting.tscn b/paintings/painting.tscn index 8c389ed..ddb07d0 100644 --- a/paintings/painting.tscn +++ b/paintings/painting.tscn @@ -1,15 +1,16 @@ -[gd_scene load_steps=5 format=3 uid="uid://donkfeu1x888o"] +[gd_scene load_steps=6 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"] +[ext_resource type="Texture2D" uid="uid://d02jhn3d0pwir" path="res://paintings/dmg.png" id="4_t4wwa"] [sub_resource type="FastNoiseLite" id="FastNoiseLite_465no"] resource_local_to_scene = true -seed = 1262753571 -frequency = 0.0024024888 +frequency = 0.002661236 offset = Vector3(1460.7504, 943.2602, 0) -fractal_type = 0 +fractal_type = 3 +fractal_octaves = 2 [node name="Painting" type="Node2D"] texture_filter = 1 @@ -18,22 +19,33 @@ script = ExtResource("1_465no") [node name="Frame" type="Sprite2D" parent="."] texture = ExtResource("1_6chac") -[node name="SubViewportContainer" type="SubViewportContainer" parent="."] +[node name="Control" type="Control" parent="."] +layout_mode = 3 +anchors_preset = 0 offset_left = -146.0 offset_top = -91.0 offset_right = 146.0 offset_bottom = 91.0 + +[node name="SubViewportContainer" type="SubViewportContainer" parent="Control"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 stretch = true stretch_shrink = 4 -[node name="SubViewport" type="SubViewport" parent="SubViewportContainer"] +[node name="SubViewport" type="SubViewport" parent="Control/SubViewportContainer"] +transparent_bg = true 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")] +[node name="Noise" parent="Control/SubViewportContainer/SubViewport" instance=ExtResource("2_oqt1c")] unique_name_in_owner = true anchors_preset = 15 anchor_right = 1.0 @@ -43,7 +55,22 @@ 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 +steps = 24 +gradient_start = Color(0.605822, 0.410077, 0.7508662, 1) +gradient_end = Color(0.1471889, 0.25502726, 0.39230567, 1) + +[node name="TextureRect" type="TextureRect" parent="Control"] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +expand_mode = 1 + +[node name="Dmg" type="Sprite2D" parent="."] +unique_name_in_owner = true +visible = false +texture = ExtResource("4_t4wwa") +hframes = 3 diff --git a/paintings/painting_display.gd b/paintings/painting_display.gd new file mode 100644 index 0000000..73aeb63 --- /dev/null +++ b/paintings/painting_display.gd @@ -0,0 +1,54 @@ +@tool +extends Node2D + + + +@export var shake_distance := 12.0 +@export var shake_duration := 0.3 +@export var shake_step_count := 5 +@export_tool_button('Damage Painting') var damage_painting_action = damage_painting + + +@export var custom_paintings: Array[Texture2D] +@export_tool_button('Next Custom') var next_custom_action = func next_custom(): + var idx: int = (%Painting.painting_id + 1) % custom_paintings.size() + %Painting.overwrite_texture = custom_paintings[idx] + %Painting.painting_id = idx + + +@export_tool_button('Random Procedual') var random_procedual_action = func random_procedual(): + %Painting.painting_id = randi() + %Painting.overwrite_texture = null + + +func get_n_unique_custom_paintings(count: int) -> Array[int]: + var list: Array[int] = [] + for idx in custom_paintings.size(): list.push_back(idx) + list.shuffle() + list.resize(count) + return list + + +var _shake_tween: Tween + +func animate_shake(): + if _shake_tween: _shake_tween.kill() + var shake_step := shake_duration / shake_step_count + _shake_tween = create_tween() + for i in shake_step_count: + var pos := Vector2(randf_range(-shake_distance, shake_distance), randf_range(-shake_distance, shake_distance)) + _shake_tween.set_ease(Tween.EASE_OUT_IN) + _shake_tween.set_trans(Tween.TRANS_ELASTIC) + _shake_tween.tween_property(%Rela1, ^'position', pos, shake_step) + _shake_tween.set_ease(Tween.EASE_OUT) + _shake_tween.set_trans(Tween.TRANS_ELASTIC) + _shake_tween.tween_property(%Rela1, ^'position', Vector2.ZERO, shake_duration) + _shake_tween.tween_callback(func(): _shake_tween = null) + + +func damage_painting(): + if %Painting.damage == 3: + %Painting.damage = 0 + else: + %Painting.damage += 1 + animate_shake() diff --git a/paintings/painting_display.gd.uid b/paintings/painting_display.gd.uid new file mode 100644 index 0000000..866e4f4 --- /dev/null +++ b/paintings/painting_display.gd.uid @@ -0,0 +1 @@ +uid://cy636hseq5fo4 diff --git a/paintings/painting_display.tscn b/paintings/painting_display.tscn new file mode 100644 index 0000000..d25702f --- /dev/null +++ b/paintings/painting_display.tscn @@ -0,0 +1,94 @@ +[gd_scene load_steps=20 format=3 uid="uid://csugksrssibrp"] + +[ext_resource type="Script" uid="uid://cy636hseq5fo4" path="res://paintings/painting_display.gd" id="1_gy870"] +[ext_resource type="PackedScene" uid="uid://donkfeu1x888o" path="res://paintings/painting.tscn" id="2_5v8dq"] +[ext_resource type="Texture2D" uid="uid://dj7wj38a447jn" path="res://paintings/veryart/1/F0.png" id="2_7o3cd"] +[ext_resource type="Texture2D" uid="uid://drlta7bv52utw" path="res://paintings/veryart/2/F0.png" id="3_t05i8"] +[ext_resource type="Texture2D" uid="uid://crih6jm2ms4kt" path="res://paintings/veryart/3/F0.png" id="4_k2el0"] +[ext_resource type="Texture2D" uid="uid://byvh75dt6j3tv" path="res://paintings/veryart/4/F0.png" id="5_238kw"] +[ext_resource type="Texture2D" uid="uid://dchq2odvlum6i" path="res://paintings/veryart/5/F0.png" id="6_ugvm4"] +[ext_resource type="Texture2D" uid="uid://b0588wdutp328" path="res://paintings/veryart/6/F0.png" id="7_aqt5w"] +[ext_resource type="Texture2D" uid="uid://cse035uvcnob5" path="res://paintings/veryart/7/F0.png" id="8_dng8e"] +[ext_resource type="Texture2D" uid="uid://cco31jtejtaex" path="res://paintings/veryart/8/F0.png" id="9_mtyqy"] +[ext_resource type="Texture2D" uid="uid://b57h2svvximny" path="res://paintings/veryart/9/F0.png" id="10_ybjp4"] +[ext_resource type="Texture2D" uid="uid://b7dbha8x4c0tj" path="res://paintings/veryart/10/F0.png" id="11_q2yjp"] +[ext_resource type="Texture2D" uid="uid://bb6aiffvsc8mr" path="res://paintings/veryart/11/F0.png" id="12_r4wn3"] +[ext_resource type="Texture2D" uid="uid://b5tlr6nxy8vft" path="res://paintings/veryart/12.png" id="13_v614m"] +[ext_resource type="Texture2D" uid="uid://dps241gwu1flx" path="res://paintings/veryart/notart.png" id="14_5sb26"] + +[sub_resource type="Animation" id="Animation_a2c10"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Root1/Rela1:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} + +[sub_resource type="Animation" id="Animation_5v8dq"] +resource_name = "shake" +tracks/0/type = "method" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"values": [{ +"args": [], +"method": &"animate_shake" +}] +} + +[sub_resource type="Animation" id="Animation_7o3cd"] +resource_name = "broke" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Root1/Rela1:rotation") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.3), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.2617993877991494] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_a2c10"] +_data = { +&"RESET": SubResource("Animation_a2c10"), +&"broke": SubResource("Animation_7o3cd"), +&"shake": SubResource("Animation_5v8dq") +} + +[node name="PaintingDisplay" type="Node2D"] +script = ExtResource("1_gy870") +custom_paintings = Array[Texture2D]([ExtResource("2_7o3cd"), ExtResource("3_t05i8"), ExtResource("4_k2el0"), ExtResource("5_238kw"), ExtResource("6_ugvm4"), ExtResource("7_aqt5w"), ExtResource("8_dng8e"), ExtResource("9_mtyqy"), ExtResource("10_ybjp4"), ExtResource("11_q2yjp"), ExtResource("12_r4wn3"), ExtResource("13_v614m"), ExtResource("14_5sb26")]) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_a2c10") +} + +[node name="Root1" type="Node2D" parent="."] + +[node name="Rela1" type="Node2D" parent="Root1"] +unique_name_in_owner = true + +[node name="Painting" parent="Root1/Rela1" instance=ExtResource("2_5v8dq")] +unique_name_in_owner = true +painting_id = 6 +overwrite_texture = ExtResource("8_dng8e") + +[node name="Root2" type="Node2D" parent="."] + +[node name="Rela2" type="Node2D" parent="Root2"] diff --git a/paintings/veryart/1/F0.png b/paintings/veryart/1/F0.png new file mode 100644 index 0000000000000000000000000000000000000000..a624ad80d6be64c0b19ae079da1b92142189379b GIT binary patch literal 8621 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 literal 0 HcmV?d00001 diff --git a/paintings/veryart/11/F0.png.import b/paintings/veryart/11/F0.png.import new file mode 100644 index 0000000..e63d324 --- /dev/null +++ b/paintings/veryart/11/F0.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bb6aiffvsc8mr" +path="res://.godot/imported/F0.png-1444aa60a3e120bd4da66237f3749f52.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://paintings/veryart/11/F0.png" +dest_files=["res://.godot/imported/F0.png-1444aa60a3e120bd4da66237f3749f52.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/veryart/12.png b/paintings/veryart/12.png new file mode 100644 index 0000000000000000000000000000000000000000..535df673fe5c73b09c3d901db3234b3f4028c287 GIT binary patch literal 11209 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 literal 0 HcmV?d00001 diff --git a/paintings/veryart/12.png.import b/paintings/veryart/12.png.import new file mode 100644 index 0000000..018c143 --- /dev/null +++ b/paintings/veryart/12.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b5tlr6nxy8vft" +path="res://.godot/imported/12.png-e8e67405f3c930c2885b1f046715bb7f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://paintings/veryart/12.png" +dest_files=["res://.godot/imported/12.png-e8e67405f3c930c2885b1f046715bb7f.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/veryart/2/F0.png b/paintings/veryart/2/F0.png new file mode 100644 index 0000000000000000000000000000000000000000..3e54fc58c8bc66c4c761b7052f8e1e2aa1990ae6 GIT binary patch literal 8475 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 literal 0 HcmV?d00001 diff --git a/paintings/veryart/2/F0.png.import b/paintings/veryart/2/F0.png.import new file mode 100644 index 0000000..c347b48 --- /dev/null +++ b/paintings/veryart/2/F0.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://drlta7bv52utw" +path="res://.godot/imported/F0.png-2c22cf6ea53abfe36632fbfdce7746c1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://paintings/veryart/2/F0.png" +dest_files=["res://.godot/imported/F0.png-2c22cf6ea53abfe36632fbfdce7746c1.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/veryart/3/F0.png b/paintings/veryart/3/F0.png new file mode 100644 index 0000000000000000000000000000000000000000..fc5191875ba6f1ed5273c0d0045a185726a8d376 GIT binary patch literal 10258 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 literal 0 HcmV?d00001 diff --git a/paintings/veryart/5/F0.png.import b/paintings/veryart/5/F0.png.import new file mode 100644 index 0000000..a95abb5 --- /dev/null +++ b/paintings/veryart/5/F0.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dchq2odvlum6i" +path="res://.godot/imported/F0.png-7036c0b280684bb45b138d78df2a7e8b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://paintings/veryart/5/F0.png" +dest_files=["res://.godot/imported/F0.png-7036c0b280684bb45b138d78df2a7e8b.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/veryart/6/F0.png b/paintings/veryart/6/F0.png new file mode 100644 index 0000000000000000000000000000000000000000..2e6467f72d6fc853ec5b3f3ff1ed316eb08f9f69 GIT binary patch literal 10131 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 literal 0 HcmV?d00001 diff --git a/paintings/veryart/6/F0.png.import b/paintings/veryart/6/F0.png.import new file mode 100644 index 0000000..4436c3b --- /dev/null +++ b/paintings/veryart/6/F0.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b0588wdutp328" +path="res://.godot/imported/F0.png-c522a6fdeb6ce1758fa70550a9c7825a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://paintings/veryart/6/F0.png" +dest_files=["res://.godot/imported/F0.png-c522a6fdeb6ce1758fa70550a9c7825a.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/veryart/7/F0.png b/paintings/veryart/7/F0.png new file mode 100644 index 0000000000000000000000000000000000000000..62b8009e78c8e001ce8e2c1a0e9f5b9563929bf0 GIT binary patch literal 8143 zcmd6Mhd-O&7k?5d=`cdo$BNmas@kem#1^Bas@mGBY7?VY5EMntQlm!brxdL{TPs$L zDzW!oL9B{UV*H+df8X!#Z}>fV-RImq&$;Km@44rmd(M3#AL^p$FK}D{fk5z#pHN&$MhFJOEt>>M+nbFf)keFAMMkfjL0u z{!<5mw85PJul@)u{9hgj2o!D)g8rAs7@&VIO`rg+|4Sj+kpFRj?Xqe9R|oCkz+D(9e<@Iyl;~VajsSW|OHKK) z4|u~YDt7uF1L^E+uffoyS0-b%b9;<|?$)clM3wXKQ*eCI}vTa`fW2U>N$7 z6%XPcFU|dwbyGTwpbk~|)E|1<*hW4uby4*z^eOG8Kk(zl#ZXvnPwyJs4O}{VEZ4y{ z9Cs|MaM=R^;a?5k8bU0s$1#(Ykx;{$>KO#Cq5Agdi%e1rV;6R9TU`ly(lkA(+UA>m z^3~+d`SO_y45Kd^sv37^!-8N(!PIJ0-C*mF!uU(<8}Scqom+mb@-<U^a=GP_+fe)I@RJ;Vn?o=P2iR*_C zQNDbB2O4IbQ%AYKzk9OQhyy6QylvxLiQ%0U6-f5p1uuDV(vNdVyii(x-q#4&%@nCS zP0wd_?`g&?-;|5S)m0;Ry_)qsVo^#^1;kVz_HOTRdwO z%1gdB2T$>ma3*EFZ)|@4Lh?-$-0^fq7k!H>1eqYdQ8E>=Vf?ycP%06iJ z2t|4;$`V&7o1P zs*Ar1SI~mb>J8Z$vY%UN%FlepQC0cLTno5mMmB2Kc$s?EPVc*;T9TA6q4G8xm3>tA z*~|+=TlL||6`t+NH$%ef1nfw`6l2w0+(lO;Nnf5iTb#1M_Co?!^gH)(O7SV1GLheq z$u`B?`-1ijR*rz^9o1w8o@I6Ho@#~=ydz<8oM){Q#q~;aj88%C7@gQ8kkAyiXepkQ z&$7(N!2G+gb;jUrw%@;pCCO%{7~eiVx=OAmccvGMwU+SRTFx0fYxXX^=;D+_17?`j;TEG;XI&~6=dQvB zgGGZ&>zLa+su(vXl)UxQ!Gg^8D{h(6r3MAOEzw_((1YSySG%`>`AJO~t!RyM7(ch* z@Wn@QF7T4SQ1wm2J$tPKb3Cw&X3%M{ zdYw#0f_tadORYw$ZuqT2#gj6{0mb2jZ6QcBkr44U_wH%hiNPYK(1VsLkV!V75G))W zDQruVVe>=9QU0A1_kL2NgXSFrL!vqNU|Cb&@)?fvJD9P_5g`f# z@KHd^oPCuSTkVC(NpFqgEf`LGxWIKRC&L1z9N4cti+o>8dR4ELhN$^jyfS9Phv+X| zf#~oD)y#K|tCG3&1KR{{{$DAgeU(uy1)2nH<&(!YSFdZrZiEH};MaIa1?V5M^5~p{ znfbTo+v{{A6&G7Rlp!#=?iv;pCP)!%OgjCv40rV8IL6n=>dDy0xcH|~)GL|%&t|aR zjjBF2cdtMS3*;(n%o{Vnv)y`co8u5zWCWG|$?}kCP{-QC;##OpP~puSHNIOgFjZ=k z(fwh1NB1tay+_16r25~YJIp?Yp5QiS)p!)mY_5una7PO)7--_oe;;I^3ik)^Dw z>AQE%2MfS`x=osK@%|r5Rm&AoY|3)N?D;af5x-QFU^1{J6M9^(Q zZD=~&ni(?57j(efwRy#ZwjCEs?atslNQysZQqHp!JacdXONta^smvL|R;Nu%>R1`! zdy4Y(oqMLwldnNTgTg_Y5m!4}3HyVTgJOY*0`t4 zcN6d2oUUjU7lDR0=|NLN`A=-aD#W5uUDYK5s}Z5&vk;dqb>Szlj8G7sb3|{#bLnOY z|LS{xfro?7j$_@I*dS=Npf0w1OPsg0yj_~-C85r|^Eq?s_;-mvg;7|(oh#4{vsD5r zn>A~(|3PHcxf{iUkGk=?zM)N6m=7B4)p;UCl5p!jMFAKSaR}EuigD2P?I;IWupxY| zrupcL$3fcH(Z&wuN^t1l#l1=f2i4EWlPeIkO4E$e5!;&mMkKyWu{+JIq;ur)vl|^s zT7=Hu1ITaD?@k_@zzSnQc$$%?S@;A0A}Wu1AFT!k6S6t1<5z7SF{AijE6SyiF5X);v!>b^vRJoFKVsbOblVSNHm~TfO@(Wx@)cq!@EFm)TI{xAlUDJC8 zy7g9}P4+OgZ6>VVRxFCpP%UUj6GYHXN$ag1Filg3MQebTmMHcVKhLLCD5{1BTD?!? z_q=!IoB{UNC`MVYr=(FO`wDnFJ)Ap%r)2 z#~<*5%6Fw=kIiR<{kDA_NMd?@)z2`%#+zR&M?hX+8CKu~$HN7yDX+%(;EZeI^V?VZ z=?1=X9?F*7MfO;vWjmMc<%DeSQA4@CT1+a6LzL8Xi%w_KZ%XTJpYt2m(Gr6cJtgRS z4wz|B9-8r$azK1)-bJryU@woZqj)q+5XbT6TpQorBJ`Hs&t6x*tWRVpo&}73BLtLq znWTqqA(!@&)lWx!mc#+*x3Wt3&JMG6E`a$;86mmWZ+hbC&ikReC`JcIl-N2FSw?v> z!QZEEh=5!JguuYO@j7V{=p=o7Cl4j?eYU|u%oUNynB-&&7%bQqriM-zQmz-0#d$83 zO%KZAD8h`taeKQS8*xmPVhOkmWwC2L;D5ekBXU?AV>&r zg(ikohSAN*mfJ1&SBe`Lhh<}V5E-Fu!&J=LpkdC9StcbX9LwCw5Ze+%jKcU z9r4FCRN;0zc!T0_SG_~BHVXw9%7+NQ2f~!zf*M7W?SJLZ_CTFO#^+={(TWvB8G-Dy zimf_$o4obE#C^~<3{yftjvH29R-w#b6FPqgOvCeQ9R&qniyXfJ6rN7=sL&D_@<&5%caW?Df}D2)_$1DDgxa{WpgTX zUf%!qCs=_VZe#3Roabi0mKAk%f%m)6q!CIUD5k|~NNX3|LTHl{G*-xtW(Z-0u?g{4 zQM@KG;@i+Yo-)YMh7Rn@rO70Pm13-smwiwnxp#i%&mLOd0R~* z5nKeX)ptwx`eX?e9;OAzFD`3bZ`mLSh$_sOr;+a9-u`N=_KCiKrLQCQu?3c|Q~+Xj zegae){<))iKaXje@%UX^G8dhnc;r#T`p4e<+I+y}8UrzA4gWVIteWRIa8 zW{bI03GC<`8$&|a-jg>x%x;CP4D5&SnzSj;tzp+8`9&rs<+xU_f}cg!LuvTS|8Qu) zoL&QgXkwHDyF`jxC~yXEL7iR4Q6-Flr{Ofe1lAtBk>3ZLk%<{m;h9AMw&wr|1lZwIvWfJh@Is>o z+Qnv!=ku!qN^*)>O4>Dx7yIZCr7K!6Nt$B=A90U4hw|D3qTz;A}b_D_#K*xbUz?MVwf6;> zYg=IQ^1d;^{yd_r1a0Uwvr7nu1!eTV{!drhfOekN#^_c=_-_S6Z{FDc^pX`q0F;6~ zWvJB!?XDT`Wm~lnv%CG9uk)|ch#LvM3M^;}TMno!RGISyG)|ZezLu{95;S>tB$O+O zuP)gQRXPu(SIm`CkujY@yXbNo@)>OXGMCqP@gAetAXqI|MXm(@K;*HGxVOZVJ$0&3 zcrXgEFCL#mgne_b`%_pcYV)}0uqq%)2q618q|HtBw5CRNmnaY8$AO;!!_~VHSuOFjkYk zNqKLn?;m-rMg8+>K9~UePEGMbs1h0&N(0=m!33Im*$DsO$a2YlL^0>oEvX$v0b&P% zzqYL8S&^1&9p=+HHJ_`Z1G z?vXigJo0D2ANRDD$p->tTrBzG6D)$XYcb~)bJ&RE@95TkG{?$ljwwXS=wW=zF9r|) zwG1x-Mgq+va(l$FIbtJ&aBqQEKyg7ZtSJ(9%m@OVoptLo0!I-HrGL)_HZ#@|L<<-~ z2~_-EgV=%fE8{CB>|dTGL{wi<(&Tw>V}<>NKeLYr64=?E#i!&6PFMdM>GKR$Cs=0w z2&yZvL%oW7QnfC|tTfoxk`Uu5vUWiA%=N{aSHm)tl<1E_O%RU-(ym*trw;f#WF7On z-UCan4q7y&P^c>=<#>7BN%c8lh(jOB>>$;u|Gk0xuY$MNAyk%!Av0&Oh96-OP5(lN zve_DBa>XG0rHVk~lkI1$Z-Zbrw3X;F{ZR%J{Jj6)u$#y_Q_nO?PHXN2E;lj&SUtBK z*6%+>fBQtvI@*0dRS66wuOZEsh1CCRrKmW=DDFt?%^TQz*lN;y7&mfuAesS{bORsu zk;9vL@g0jpADy|MV{60+PehSp7ku!2390!)^<_YAZt+)z@gdag0$R~fu9&%Vx_dZv zqUPq`9=Epy$WtAgM5I*r?W^EGw3FV4(u8$DS+%0Qej&d*(gwGCwDV$kcn{pw;m+1#f4`hl*GOLcvcURn^x ztF#^giDSOyJygQr$8LCM17G@JYI=~%>O55>Kq)m)riZU%+jNr2lKb`R?Lic!Jlaf^LXCZ0Z`OCc(Tlsk%?3N2JC4WNYCD17XcItW%OjV}cQFunV z9CwZSKQ=>kys`8R2kb&^GJETk&Atk=-4LyQEcV;YQ`&GW?MkE@OL2G9aJFcldYnE_z`1WN%!I1a zdWVUQP_rtdsI>DzXup6({WtLxrajr zqI5a89(1yW*q5`v*IfITj{9pVEA)}KK^f(R*7f8=Z$!S|D2M*+4R=9eY5O}mB)i;= zec}sAd^;BuGp#Seu*KybyH2%kt~!YPrhB8C9Ide%ct11dn_PgqN%t5z#c+(4djyR#KqssaB@mJ$9G_v^24{2voS*-i0Dr$XM zJN0FW>fAnU3@R~!lx^_20hTkb(a^5S!);xM&wq*l=ErB}(xoRgo)J5q$r&wdPzUca`V9B5JM@mm*@7U4Nd zVetko$^iz~YV;rdV!x*&Dp@{13sWzR6`7hM@MvkUVr!);AlA`v2gR=pE(G)i)d?LktU;A=~wMO7duix*e`d!7iZU7GEW&$&z1(C(T-PFSfYqlH?R8Qi~4=uG(B1R z)REl6QS>rvlU#l99O?PynEzG+XvRWt)AY|Lu3ISyV=u@Y1o&7icCDFxeJD*7+ZL5` zcvsExa`2R2mBfks?#^jvJ2rVt+?NONu`Pk!Q3!E={|76J^Uk{c-P`7P(mjGnLeP9nK|p6H6Bzb6E1@D_5nUWU2w zy50}bU?~d7K5fRNFWy2U!%qg(EurAEo6jeW`Wyw_E2=oiOk?{}|Dw)s^mF-F(_*69 zkQsa;5O26}gF*KvuO2g5QpP>Vq?DbgBIdnFU}beX-LL8=s!$y7Lrh+>fdl>SF!fxd z_mjXG+sdLk?LA?7kEITp2R*)u3u*)Y9Q>|q;4`TPXI~#4r(b1vPujrO%#mGIBwA-n zg^i3%~K!9f&z{(M+*`8b5${KMZ9~m{z)xNUYVDI6HBp+^^iYQKsn95 z(9m0T=u(t}(3=_hUmiHCZc z#{QioR><+2j~-j^;)r_v&3r<(mTvbCB5y+2;?pGXG4I>3TJY2`rM+Ydb`~x4qmw%8 zt?+_-Fq1yf+IgJBHz!%DWY21yQm z64P(o;b8cxb`U2zW`?rE&^(kar}P*GaLS&~Nh^ODC0jyx9LceFzviQ+VmgoA^Ek*ojXTcL{@;OAMnzbpR= zmvR%LaDFc4LuIqnDq+5Xzo|smJm9R!glJTDb6DGO&n+!1cEirN-XG zk}dywA8C8XZLR~Hm+i}YU**7O@tZ-N;UOnnPQP^CDxo1hFGRYCxg)8w8d~m!`n4Q; z!sVRp6vhedXn)~pLUVh44s7pQkn|NTq-dHn4=rg$bbM^oR63m#_}noA_c(N#j_jvfOZHE#4;PxZwb1Q2;`k8t>AM%i(nap$LGq@N zeK>3gURvYOs)Oew&z$8<4`qw#pFK}b=)e?)(4P;~wQ?@{^<%(P4!q)0H?F%@MJmNB zh;A|kW1$<|y)tPPEp+ETh+c4fC_mZfc<`bjrJl!QBXK4iR1r3#v)}blU(Hex(nCMN zv=jb8g}LatMUF?I9Rg|Ifw9MpYNG|_##^@dChzn+z-7XlM(HPzeRezHj$|j*18iHf zzqS>(j(InBEdb`z=oI+%;J@C$PKHcBg%p=$x{HxwXua}9ZpsAiQu};UvWKyFN>Jiim(!)*9 z!_m^*-q9{a>c`;3*T#6XHeyzmIQ2ls4V8&KbdiTCi+G-26?(NmRwEu9M;jBDFUW4W zX^ii+^0D~2LI#c=Hd3(S;6}PZ=h8NLszubE0E9nY@K(Jtx$BSSCr0VzRzxffx5wB; z{L%^ZnEU+(RbnWTzZ4N%L)$|yp6Bra%T4g*cAO74OQ>$Np-Wr-6Dw{&>!#UR0W_76WN-wD^T zWWvD&22K4(9$njh5Bkc2G?jEGGfK%bk4!%>S@iO`;=V5@wo3svcH$5b1gnJGojUYs zHaN-cdq{RrGm=nHz)AHA^i5^6>k~dtNL(QboBe(C}Fwz;4Uxq9qIDdt6#`Xa64X^=3`oJpjIMgS6Cj)rwUtU;iKF CI;=1N literal 0 HcmV?d00001 diff --git a/paintings/veryart/7/F0.png.import b/paintings/veryart/7/F0.png.import new file mode 100644 index 0000000..a474616 --- /dev/null +++ b/paintings/veryart/7/F0.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cse035uvcnob5" +path="res://.godot/imported/F0.png-a1113c585a4e342a285f57f8bb47ede6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://paintings/veryart/7/F0.png" +dest_files=["res://.godot/imported/F0.png-a1113c585a4e342a285f57f8bb47ede6.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/veryart/8/F0.png b/paintings/veryart/8/F0.png new file mode 100644 index 0000000000000000000000000000000000000000..125f7e6c2d5541cc377f25491fb6bfde30a18407 GIT binary patch literal 7616 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 o#DF-Vb8%8=M*B?ClA1;-;C;$Ke literal 0 HcmV?d00001 diff --git a/paintings/veryart/8/F0.png.import b/paintings/veryart/8/F0.png.import new file mode 100644 index 0000000..6144d03 --- /dev/null +++ b/paintings/veryart/8/F0.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cco31jtejtaex" +path="res://.godot/imported/F0.png-5bd7ff51a5d1990f6c2fc33af7cbe5f3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://paintings/veryart/8/F0.png" +dest_files=["res://.godot/imported/F0.png-5bd7ff51a5d1990f6c2fc33af7cbe5f3.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/veryart/9/F0.png b/paintings/veryart/9/F0.png new file mode 100644 index 0000000000000000000000000000000000000000..8e62643d3fc7d8d9d6faabe4d9b587f479d36004 GIT binary patch literal 5510 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 literal 0 HcmV?d00001 diff --git a/paintings/veryart/notart.png.import b/paintings/veryart/notart.png.import new file mode 100644 index 0000000..8b719e8 --- /dev/null +++ b/paintings/veryart/notart.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dps241gwu1flx" +path="res://.godot/imported/notart.png-28a9d556b2a938d9ca01861b2729395c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://paintings/veryart/notart.png" +dest_files=["res://.godot/imported/notart.png-28a9d556b2a938d9ca01861b2729395c.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/turn_manager.gd b/turn_manager.gd index b968015..57dc43d 100644 --- a/turn_manager.gd +++ b/turn_manager.gd @@ -7,12 +7,14 @@ class_name TurnManager extends Node2D @export var tts_pitch = 1.0 @export var desk: Desk +@export var captions: CaptionLabel var timer: Timer @export var game_manager: GameManager @export var audience_manager: AudienceManager -var voices = DisplayServer.tts_get_voices_for_language("en") -var voice_id = voices[0] + +var _voices := DisplayServer.tts_get_voices_for_language("en") + func _ready() -> void: audience_manager.ask_accepted.connect(_handle_ask_accepted) @@ -20,20 +22,29 @@ func _ready() -> void: timer = desk.numpad.reminder_timer timer.wait_time = turn_timer desk.numpad.reminder_timer.timeout.connect(_handle_reminder_timer_timeout) + print('voices available: ', _voices.size()) + func turn_timer_animation(): pass +func speak(text: String) -> void: + print('tts: ', text) + captions.display_caption(text) + if not _voices.is_empty(): + DisplayServer.tts_speak(text, _voices[0], tts_volume, tts_pitch, tts_number_speed) + + func _speak_ask_proposed(amount): var speech_variance = randf() if speech_variance < 0.45: - DisplayServer.tts_speak(str(amount), voice_id, tts_volume, tts_pitch, tts_number_speed) + speak('%s' % [amount]) elif speech_variance > 0.45 and speech_variance < 0.65: - DisplayServer.tts_speak("Do I hear" + str(amount), voice_id, tts_volume, tts_pitch, tts_sentence_speed) + speak('Do I hear %s?' % [amount]) elif speech_variance > 0.65 and speech_variance < 0.8: - DisplayServer.tts_speak(str(amount) + ", anybody?", voice_id, tts_volume, tts_pitch, tts_sentence_speed) + speak('%s, anybody?' % [amount]) else: - DisplayServer.tts_speak("Can I get a" + str(amount), voice_id, tts_volume, tts_pitch, tts_sentence_speed) + speak('Can I get a %s?' % [amount]) func _handle_ask_accepted(): timer.start() @@ -43,4 +54,3 @@ func _handle_reminder_timer_timeout() -> void: if game_manager.state == game_manager.bidding_state.ASKING or game_manager.state == game_manager.bidding_state.BID: game_manager.state = game_manager.bidding_state.CLOSED game_manager.destroy_painting() - From 89a7bc25d60f69bbc41996e1d32e63be441faa9a Mon Sep 17 00:00:00 2001 From: astra137 Date: Mon, 6 Oct 2025 06:37:49 -0700 Subject: [PATCH 2/2] traditional late night major refactor --- art_collector.gd | 8 +- audience_manager.gd | 6 +- audience_manager.tscn | 2 +- game_manager.gd | 175 ++++++++++++------ main.tscn | 73 +++++++- paintings/layout/painting_display.gd | 114 ++++++++++++ .../{ => layout}/painting_display.gd.uid | 0 paintings/{ => layout}/painting_display.tscn | 132 ++++++++++--- paintings/layout/painting_pile.gd | 28 +++ paintings/layout/painting_pile.gd.uid | 1 + paintings/layout/painting_pile.tscn | 10 + paintings/noise.tscn | 35 ---- paintings/painting.gd | 7 +- paintings/painting.tscn | 42 ++++- paintings/painting_display.gd | 54 ------ paintings/{ => procedual}/fractal.gd | 0 paintings/{ => procedual}/fractal.gd.uid | 0 paintings/{ => procedual}/fractal.gdshader | 0 .../{ => procedual}/fractal.gdshader.uid | 0 paintings/{ => procedual}/fractal.tscn | 4 +- paintings/{ => procedual}/noise.gd | 36 ++-- paintings/{ => procedual}/noise.gd.uid | 0 paintings/{ => procedual}/noise.gdshader | 0 paintings/{ => procedual}/noise.gdshader.uid | 0 paintings/procedual/noise.tscn | 34 ++++ turn_manager.gd | 21 ++- 26 files changed, 544 insertions(+), 238 deletions(-) create mode 100644 paintings/layout/painting_display.gd rename paintings/{ => layout}/painting_display.gd.uid (100%) rename paintings/{ => layout}/painting_display.tscn (50%) create mode 100644 paintings/layout/painting_pile.gd create mode 100644 paintings/layout/painting_pile.gd.uid create mode 100644 paintings/layout/painting_pile.tscn delete mode 100644 paintings/noise.tscn delete mode 100644 paintings/painting_display.gd rename paintings/{ => procedual}/fractal.gd (100%) rename paintings/{ => procedual}/fractal.gd.uid (100%) rename paintings/{ => procedual}/fractal.gdshader (100%) rename paintings/{ => procedual}/fractal.gdshader.uid (100%) rename paintings/{ => procedual}/fractal.tscn (93%) rename paintings/{ => procedual}/noise.gd (77%) rename paintings/{ => procedual}/noise.gd.uid (100%) rename paintings/{ => procedual}/noise.gdshader (100%) rename paintings/{ => procedual}/noise.gdshader.uid (100%) create mode 100644 paintings/procedual/noise.tscn diff --git a/art_collector.gd b/art_collector.gd index f35659b..674fdcc 100644 --- a/art_collector.gd +++ b/art_collector.gd @@ -1,8 +1,12 @@ class_name ArtCollector extends Node2D + +var painting_pile: PaintingPile + + func _ready() -> void: $ArtCollectorAnimations.set_frame(randi_range(0, 16)) - #$ArtCollectorAnimations.animation_finished.connect(_handle_anim_finish) + func normal_paddle(): $ArtCollectorAnimations.play("NormalPaddle") @@ -16,5 +20,3 @@ func critical_paddle(): $ArtCollectorAnimations.play("CriticalPaddle") await $ArtCollectorAnimations.animation_finished $ArtCollectorAnimations.play("Idle") - -#func _handle_anim_finish diff --git a/audience_manager.gd b/audience_manager.gd index 47b05ca..c01c207 100644 --- a/audience_manager.gd +++ b/audience_manager.gd @@ -25,6 +25,7 @@ var bark_critical := false @export var think_max_time := 5.0 var current_ask: int +var latest_bidder: ArtCollector func _ready() -> void: desk.numpad.ask_proposed.connect(_handle_ask_proposed) @@ -38,11 +39,12 @@ func raise_paddle(): game_manager.current_bid = desk.numpad.proposed_ask var collectors: Array[Node] = get_tree().get_nodes_in_group("ArtCollectors") collectors.shuffle() + latest_bidder = collectors[0] if bark_critical: - collectors[0].critical_paddle() + latest_bidder.critical_paddle() print("play crit paddle") else: - collectors[0].normal_paddle() + latest_bidder.normal_paddle() print("play norm paddle") bark_critical = false ask_accepted.emit() diff --git a/audience_manager.tscn b/audience_manager.tscn index 8a60c01..9df8132 100644 --- a/audience_manager.tscn +++ b/audience_manager.tscn @@ -18,7 +18,7 @@ texture = ExtResource("2_rhx06") [node name="BidDelayTimer" type="Timer" parent="."] one_shot = true -[node name="ArtCollector" parent="." instance=ExtResource("3_rhx06")] +[node name="ArtCollector1" parent="." instance=ExtResource("3_rhx06")] position = Vector2(182, 135) [node name="ArtCollector2" parent="." instance=ExtResource("3_rhx06")] diff --git a/game_manager.gd b/game_manager.gd index 478d875..c02bd43 100644 --- a/game_manager.gd +++ b/game_manager.gd @@ -4,58 +4,55 @@ class_name GameManager extends Node2D @export var desk: Desk @export var turn_manager: TurnManager +enum bidding_state {CLOSED, READY, ASKING, BID} + signal lost signal won -var paintings_sold = 0 -@export var paintings_total = 7 +var paintings_sold := 0 +const PAINTINGS_TOTAL := 7 -var paintings: Array = Array() -var current_painting = 0 +var paintings: Array[PaintingInfo] = [] +var current_painting_idx := 0 # tracker variables for bid markers, proposing bids happens between numpad and audience -var current_bid = 0 -var starting_price = 0 -var final_bid = 0 +var current_bid := 0 +var starting_price := 0 +var final_bid := 0 @export var current_bid_display: RichTextLabel -var target_sales: int = 0 -var total_sales: int = 0 -@export var sales_magnitude = 100000 -@export var single_painting_magnitude = 1000 -@export var initial_value_reduction: float = 0.6 +var target_sales := 0 +#var total_sales: int = 0 +@export var sales_magnitude := 100000 +@export var single_painting_magnitude := 1000 +@export var initial_value_reduction := 0.6 # state tracker for a given painting's auction -var bidding_open: bool = false -enum bidding_state {CLOSED, READY, ASKING, BID} -var state: int = bidding_state.CLOSED -signal new_painting_displayed +var bidding_open := false +var state := bidding_state.CLOSED func _ready() -> void: audience_manager.ask_accepted.connect(_handle_ask_accepted) desk.gavel.gavel_hit.connect(_handle_gavel_hit) - #paintings_total = randi_range(7,10) - target_sales = randi_range(2, 5) * sales_magnitude + # Associate collectors with their collections + var collectors: Array[Node] = get_tree().get_nodes_in_group("ArtCollectors") + assert(%PaintingPiles.get_child_count() == collectors.size()) + for idx in collectors.size(): collectors[idx].painting_pile = %PaintingPiles.get_child(idx) - var new_painting := 0 - var new_painting_value: int - while new_painting < paintings_total: - @warning_ignore('integer_division') - new_painting_value = target_sales / randi_range(paintings_total - 2, paintings_total + 2) - new_painting_value = snappedi(new_painting_value, single_painting_magnitude) - print(str(new_painting_value)) - paintings.append(new_painting_value) - new_painting += 1 + randomize_auction() + for idx in PAINTINGS_TOTAL: + var pd: PaintingDisplay = %Paintings.get_child(idx) + pd.configure_painting(paintings[idx].id) - print(paintings) - var intro_msg := "You have %s paintings. Sell them fast for at least $%s or face the consequences!" % [paintings_total, target_sales] + next_painting() + + var intro_msg := "You have %s paintings. Sell them fast for at least $%s or face the consequences!" % [PAINTINGS_TOTAL, target_sales] intro_msg += "\nHit the gavel and input the starting price to begin!" turn_manager.speak(intro_msg) - next_painting(0) #build out the initialization process, which should: # -- generate paintings and assign values # -- start the turn timer/auction timer @@ -64,56 +61,114 @@ func _ready() -> void: func _handle_gavel_hit(): - if state == bidding_state.CLOSED: - state = bidding_state.READY - print(str(state)) - current_bid_display.set_text("Starting price: $" + str(starting_price)) - elif state == bidding_state.ASKING: - if current_bid != 0: - state = bidding_state.CLOSED - desk.numpad.reminder_timer.stop() - current_bid_display.set_text("Sold for $" + str(current_bid) + "!") - sell_painting() - print("Congrats on selling your painting for $" + str(current_bid) + "! You have made $" + str(total_sales) + " so far.") - current_painting += 1 - if current_painting <= paintings_total - 1: - next_painting((current_painting)) - print("The next painting is valued at $" + str(starting_price) + " (should be $" + str(paintings[current_painting]) + ")") - (print(str(state))) - else: - end_auction() + match state: + bidding_state.CLOSED: + state = bidding_state.READY + current_bid_display.set_text("Starting price: $%s" % [starting_price]) + bidding_state.ASKING: + if current_bid != 0: + sell_painting() + if next_painting(): + print("The next painting is valued at $%s (should be $%s)" % [starting_price, paintings[current_painting_idx].value]) + else: + end_auction() func destroy_painting(): - # Painting destruction animation/particle effect $FailedPainting.play() - current_painting += 1 - turn_manager.speak("Oh nooooooo! Took too long!\nTry to make it up on the next painting!") - desk.numpad.reminder_timer.stop() - next_painting(current_painting) + if get_painting_display().damage_deal(): + cancel_bidding() + get_painting_display().move_painting_to_pile(%PaintingPileDiscard) + next_painting() + turn_manager.speak("Oh nooooooo! Took too long!\nTry to make it up on the next painting!") + else: + turn_manager.restart_turn() + turn_manager.speak("Oops! Took too long! Quickly, try again!") + func sell_painting(): - total_sales = total_sales + current_bid + cancel_bidding() + move_painting_to_bidders_pile() + paintings[current_painting_idx].sold_for = current_bid + current_bid_display.set_text("Sold for $%s!" % [current_bid]) + turn_manager.speak("Sold for $%s!" % [current_bid]) + print("Congrats on selling your painting for $%s! You have made $%s so far." % [current_bid, get_total_sales()]) -func next_painting(a: int): - $NextPainting.play() - starting_price = paintings[a] + +func move_painting_to_bidders_pile() -> void: + get_painting_display().move_painting_to_pile(audience_manager.latest_bidder.painting_pile) + + +func get_painting_display() -> PaintingDisplay: + return %Paintings.get_child(current_painting_idx) + + +func next_painting() -> bool: + current_painting_idx += 1 + if current_painting_idx >= PAINTINGS_TOTAL: return false + var info := paintings[current_painting_idx] + starting_price = info.value current_bid = 0 - # will need to add animation/image swap - new_painting_displayed.emit() + $NextPainting.play() + get_painting_display().animate_show_painting() + return true + func _handle_ask_accepted(): current_bid_display.set_text("Current bid: $" + str(current_bid)) + func end_auction(): #add in logic for displaying/transitioning to score screen - if total_sales >= target_sales: + if get_total_sales() >= target_sales: #add context specific score text? turn_manager.speak("Congratulations! The auction house will run another day.") else: #add context specific score text? turn_manager.speak("You have failed. We must find a new auctioneer.") + +func sum_total_sales(acculator: int, info: PaintingInfo) -> int: + return acculator + info.sold_for + + +func get_total_sales() -> int: + return paintings.reduce(sum_total_sales, 0) + + +func randomize_auction() -> void: + #paintings_total = randi_range(7,10) + target_sales = randi_range(2, 5) * sales_magnitude + var custom_ids: Array[int] = %PaintingDisplay1.get_n_unique_custom_paintings(3) + for idx in PAINTINGS_TOTAL: + var info := PaintingInfo.new() + info.id = custom_ids.pop_back() if not custom_ids.is_empty() else -absi(randi()) + @warning_ignore('integer_division') + info.value = target_sales / randi_range(PAINTINGS_TOTAL - 2, PAINTINGS_TOTAL + 2) + info.value = snappedi(info.value, single_painting_magnitude) + paintings.append(info) + paintings.shuffle() + + +class PaintingInfo: + var id := 0 + var value := 0 + var sold_for := 0 + var is_sold: bool: + get(): return sold_for > 0 + + # OTHER THINGS TO ADD: # UI elements for score # Bark manager + + +func _on_turn_manager_timer_timeout() -> void: + destroy_painting() + + +func cancel_bidding() -> void: + if not (state == bidding_state.ASKING or state == bidding_state.BID): + push_error('bidding state should not be ', state) + state = bidding_state.CLOSED + desk.numpad.reminder_timer.stop() diff --git a/main.tscn b/main.tscn index 337ba76..1a54169 100644 --- a/main.tscn +++ b/main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=26 format=3 uid="uid://dt4nq0nkmjiit"] +[gd_scene load_steps=27 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,12 +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="PackedScene" uid="uid://dpcsom2ps588j" path="res://paintings/layout/painting_pile.tscn" id="4_1u8w0"] +[ext_resource type="PackedScene" uid="uid://csugksrssibrp" path="res://paintings/layout/painting_display.tscn" id="4_d13ii"] [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="PackedScene" uid="uid://donkfeu1x888o" path="res://paintings/painting.tscn" id="9_kek77"] [ext_resource type="Script" uid="uid://bg1vk1o2eq3fg" path="res://bark_buttons.gd" id="9_yaehf"] [ext_resource type="Script" uid="uid://sfhg7pkumnwa" path="res://captions.gd" id="10_ryguw"] [ext_resource type="Texture2D" uid="uid://ut655l8y8xmi" path="res://assets/buttons/button1pressed.png" id="10_yaehf"] @@ -49,9 +50,30 @@ texture = ExtResource("2_7mycd") position = Vector2(640, 360) texture = ExtResource("3_272bh") -[node name="Painting" parent="." instance=ExtResource("9_kek77")] -position = Vector2(1075, 130) -rng_seed = 1262753571 +[node name="Paintings" type="Node2D" parent="."] +unique_name_in_owner = true + +[node name="PaintingDisplay7" parent="Paintings" instance=ExtResource("4_d13ii")] +position = Vector2(1074, 136) + +[node name="PaintingDisplay6" parent="Paintings" instance=ExtResource("4_d13ii")] +position = Vector2(1074, 136) + +[node name="PaintingDisplay5" parent="Paintings" instance=ExtResource("4_d13ii")] +position = Vector2(1074, 136) + +[node name="PaintingDisplay4" parent="Paintings" instance=ExtResource("4_d13ii")] +position = Vector2(1074, 136) + +[node name="PaintingDisplay3" parent="Paintings" instance=ExtResource("4_d13ii")] +position = Vector2(1074, 136) + +[node name="PaintingDisplay2" parent="Paintings" instance=ExtResource("4_d13ii")] +position = Vector2(1074, 136) + +[node name="PaintingDisplay1" parent="Paintings" instance=ExtResource("4_d13ii")] +unique_name_in_owner = true +position = Vector2(1074, 136) [node name="GameManager" type="Node2D" parent="." node_paths=PackedStringArray("audience_manager", "desk", "turn_manager", "current_bid_display")] unique_name_in_owner = true @@ -108,11 +130,10 @@ desk = NodePath("../Desk") game_manager = NodePath("../GameManager") bark_buttons = NodePath("../BarkButtons") -[node name="TurnManager" parent="." node_paths=PackedStringArray("desk", "captions", "game_manager", "audience_manager") instance=ExtResource("7_272bh")] +[node name="TurnManager" parent="." node_paths=PackedStringArray("desk", "captions", "audience_manager") instance=ExtResource("7_272bh")] tts_sentence_speed = 4.5 desk = NodePath("../Desk") captions = NodePath("../UI/Captions") -game_manager = NodePath("../GameManager") audience_manager = NodePath("../AudienceManager") [node name="BarkButtons" type="Node2D" parent="." node_paths=PackedStringArray("turn_manager")] @@ -163,6 +184,44 @@ stream = ExtResource("22_ryguw") volume_db = -14.0 autoplay = true +[node name="PaintingPileDiscard" parent="." instance=ExtResource("4_1u8w0")] +unique_name_in_owner = true +offset_left = 1159.0 +offset_top = 377.0 +offset_right = 1260.0 +offset_bottom = 442.1613 +size_flags_horizontal = 3 + +[node name="PaintingPiles" type="HBoxContainer" parent="."] +unique_name_in_owner = true +offset_left = 142.0 +offset_top = 242.0 +offset_right = 759.0 +offset_bottom = 310.0 +theme_override_constants/separation = 24 +metadata/_edit_group_ = true + +[node name="PaintingPile1" parent="PaintingPiles" instance=ExtResource("4_1u8w0")] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="PaintingPile2" parent="PaintingPiles" instance=ExtResource("4_1u8w0")] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="PaintingPile3" parent="PaintingPiles" instance=ExtResource("4_1u8w0")] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="PaintingPile4" parent="PaintingPiles" instance=ExtResource("4_1u8w0")] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="PaintingPile5" parent="PaintingPiles" instance=ExtResource("4_1u8w0")] +layout_mode = 2 +size_flags_horizontal = 3 + +[connection signal="timer_timeout" from="TurnManager" to="GameManager" method="_on_turn_manager_timer_timeout"] [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/paintings/layout/painting_display.gd b/paintings/layout/painting_display.gd new file mode 100644 index 0000000..5851dc1 --- /dev/null +++ b/paintings/layout/painting_display.gd @@ -0,0 +1,114 @@ +@tool +extends Node2D +class_name PaintingDisplay + + +const PAINTING_SIZE := Vector2(310, 200) + +@export var custom_paintings: Array[Texture2D] + +@export_tool_button('Next Custom') var next_custom_action = func next_custom(): + configure_painting(absi(%Painting.painting_id + 1) % custom_paintings.size()) + animate_show_painting() + +@export_tool_button('Random Procedual') var random_procedual_action = func random_procedual(): + configure_painting(-absi(randi())) + animate_show_painting() + + +@export var shake_distance := 12.0 +@export var shake_duration := 0.3 +@export var shake_step_count := 5 +@export_tool_button('damage_deal') var damage_deal_action = damage_deal +@export_tool_button('damage_undo') var damage_undo_action = damage_undo + + +func get_n_unique_custom_paintings(count: int) -> Array[int]: + var list: Array[int] = [] + for idx in custom_paintings.size(): list.push_back(idx) + list.shuffle() + list.resize(count) + return list + + +var _shake_tween: Tween + +func animate_shake(): + if _shake_tween: _shake_tween.kill() + var shake_step := shake_duration / shake_step_count + _shake_tween = create_tween() + for i in shake_step_count: + var pos := Vector2(randf_range(-shake_distance, shake_distance), randf_range(-shake_distance, shake_distance)) + _shake_tween.set_ease(Tween.EASE_OUT_IN) + _shake_tween.set_trans(Tween.TRANS_ELASTIC) + _shake_tween.tween_property(%Shaker, ^'position', pos, shake_step) + _shake_tween.set_ease(Tween.EASE_OUT) + _shake_tween.set_trans(Tween.TRANS_ELASTIC) + _shake_tween.tween_property(%Shaker, ^'position', Vector2.ZERO, shake_duration) + _shake_tween.tween_callback(func(): _shake_tween = null) + + +func damage_deal() -> bool: + animate_shake() + %Painting.damage += 1 + if %Painting.damage > 3: + $AnimationPlayer.play(&'broke') + return true + else: + return false + + +func damage_undo(): + %Painting.damage = 0 + $AnimationPlayer.play_backwards(&'broke') + + +#var _has_loaded_painting := false +#var _loaded_painting_id: int + +#func animate_prev_painting() -> void: + #if _has_loaded_painting: + #$AnimationPlayer.play_backwards(&'slide') + #await $AnimationPlayer.animation_finished + #$AnimationPlayer.play_backwards(&'broke') + #await $AnimationPlayer.animation_finished + #_has_loaded_painting = false + +#func animate_next_painting(id: int) -> void: + #_has_loaded_painting = true + #_loaded_painting_id = id + #%Painting.damage = 0 + #%Painting.painting_id = id + #%Painting.overwrite_texture = custom_paintings[id] if id >= 0 and id < custom_paintings.size() else null + #$AnimationPlayer.play(&'slide') + #await $AnimationPlayer.animation_finished + + +func configure_painting(id: int) -> void: + %Painting.damage = 0 + %Painting.painting_id = id + %Painting.overwrite_texture = custom_paintings[id] if id >= 0 and id < custom_paintings.size() else null + $AnimationPlayer.play(&'RESET') + + +func animate_show_painting() -> void: + $AnimationPlayer.play(&'slide') + await $AnimationPlayer.animation_finished + + +var _painting_pile: PaintingPile +var _pile_tween: Tween + + +func move_painting_to_pile(pile: PaintingPile) -> void: + assert(not _painting_pile) + _painting_pile = pile + animate_move(pile.push_tracking(self)) + + +func animate_move(rect: Rect2) -> void: + if _pile_tween: _pile_tween.kill() + _pile_tween = create_tween() + _pile_tween.parallel().tween_property($Root, ^'global_position', rect.get_center(), 1.2) + _pile_tween.parallel().tween_property($Root, ^'scale', rect.size / PAINTING_SIZE, 1.2) + _pile_tween.tween_callback(func(): _pile_tween = null) diff --git a/paintings/painting_display.gd.uid b/paintings/layout/painting_display.gd.uid similarity index 100% rename from paintings/painting_display.gd.uid rename to paintings/layout/painting_display.gd.uid diff --git a/paintings/painting_display.tscn b/paintings/layout/painting_display.tscn similarity index 50% rename from paintings/painting_display.tscn rename to paintings/layout/painting_display.tscn index d25702f..98efed0 100644 --- a/paintings/painting_display.tscn +++ b/paintings/layout/painting_display.tscn @@ -1,6 +1,6 @@ -[gd_scene load_steps=20 format=3 uid="uid://csugksrssibrp"] +[gd_scene load_steps=27 format=3 uid="uid://csugksrssibrp"] -[ext_resource type="Script" uid="uid://cy636hseq5fo4" path="res://paintings/painting_display.gd" id="1_gy870"] +[ext_resource type="Script" uid="uid://cy636hseq5fo4" path="res://paintings/layout/painting_display.gd" id="1_gy870"] [ext_resource type="PackedScene" uid="uid://donkfeu1x888o" path="res://paintings/painting.tscn" id="2_5v8dq"] [ext_resource type="Texture2D" uid="uid://dj7wj38a447jn" path="res://paintings/veryart/1/F0.png" id="2_7o3cd"] [ext_resource type="Texture2D" uid="uid://drlta7bv52utw" path="res://paintings/veryart/2/F0.png" id="3_t05i8"] @@ -21,7 +21,7 @@ length = 0.001 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("Root1/Rela1:rotation") +tracks/0/path = NodePath("Root/Shaker:rotation") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { @@ -30,46 +30,119 @@ tracks/0/keys = { "update": 0, "values": [0.0] } - -[sub_resource type="Animation" id="Animation_5v8dq"] -resource_name = "shake" -tracks/0/type = "method" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath(".") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/keys = { +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Root/Shaker/GPUParticles2D:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), -"values": [{ -"args": [], -"method": &"animate_shake" -}] +"update": 1, +"values": [false] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Root:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(600, 0)] } [sub_resource type="Animation" id="Animation_7o3cd"] resource_name = "broke" +length = 0.3 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("Root1/Rela1:rotation") +tracks/0/path = NodePath("Root/Shaker:rotation") tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.3), -"transitions": PackedFloat32Array(1, 1), +"transitions": PackedFloat32Array(0.5, 1), "update": 0, "values": [0.0, 0.2617993877991494] } +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Root/Shaker/GPUParticles2D:emitting") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.1), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [false, true] +} + +[sub_resource type="Animation" id="Animation_t05i8"] +resource_name = "slide" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Root:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(0.2, 1), +"update": 0, +"values": [Vector2(800, 0), Vector2(0, 0)] +} [sub_resource type="AnimationLibrary" id="AnimationLibrary_a2c10"] _data = { &"RESET": SubResource("Animation_a2c10"), &"broke": SubResource("Animation_7o3cd"), -&"shake": SubResource("Animation_5v8dq") +&"slide": SubResource("Animation_t05i8") } +[sub_resource type="Gradient" id="Gradient_7o3cd"] +offsets = PackedFloat32Array(0.92493296, 1) +colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_t05i8"] +gradient = SubResource("Gradient_7o3cd") +width = 12 +height = 12 +fill = 1 +fill_from = Vector2(0.5, 0.5) +fill_to = Vector2(1, 0.5) + +[sub_resource type="Gradient" id="Gradient_t05i8"] +offsets = PackedFloat32Array(0, 0.2327044, 1) +colors = PackedColorArray(0.99999994, 0.57875466, 0.3272594, 1, 0.26293245, 0.26293245, 0.26293245, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_k2el0"] +gradient = SubResource("Gradient_t05i8") + +[sub_resource type="Curve" id="Curve_238kw"] +_limits = [0.0, 4.0, 0.0, 1.0] +_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.08689458, 4), 0.0, 0.0, 0, 0, Vector2(1, 0.11427331), 0.0, 0.0, 0, 0] +point_count = 3 + +[sub_resource type="CurveTexture" id="CurveTexture_ugvm4"] +curve = SubResource("Curve_238kw") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_t05i8"] +particle_flag_disable_z = true +emission_shape = 3 +emission_box_extents = Vector3(150, 100, 1) +gravity = Vector3(0, -50, 0) +scale_min = 0.79999995 +scale_curve = SubResource("CurveTexture_ugvm4") +color_ramp = SubResource("GradientTexture1D_k2el0") +hue_variation_min = -2.2351742e-08 +hue_variation_max = 0.09999997 + [node name="PaintingDisplay" type="Node2D"] script = ExtResource("1_gy870") custom_paintings = Array[Texture2D]([ExtResource("2_7o3cd"), ExtResource("3_t05i8"), ExtResource("4_k2el0"), ExtResource("5_238kw"), ExtResource("6_ugvm4"), ExtResource("7_aqt5w"), ExtResource("8_dng8e"), ExtResource("9_mtyqy"), ExtResource("10_ybjp4"), ExtResource("11_q2yjp"), ExtResource("12_r4wn3"), ExtResource("13_v614m"), ExtResource("14_5sb26")]) @@ -79,16 +152,19 @@ libraries = { &"": SubResource("AnimationLibrary_a2c10") } -[node name="Root1" type="Node2D" parent="."] +[node name="Root" type="Node2D" parent="."] +position = Vector2(600, 0) -[node name="Rela1" type="Node2D" parent="Root1"] +[node name="Shaker" type="Node2D" parent="Root"] unique_name_in_owner = true -[node name="Painting" parent="Root1/Rela1" instance=ExtResource("2_5v8dq")] +[node name="Painting" parent="Root/Shaker" instance=ExtResource("2_5v8dq")] unique_name_in_owner = true -painting_id = 6 -overwrite_texture = ExtResource("8_dng8e") -[node name="Root2" type="Node2D" parent="."] - -[node name="Rela2" type="Node2D" parent="Root2"] +[node name="GPUParticles2D" type="GPUParticles2D" parent="Root/Shaker"] +emitting = false +amount = 32 +texture = SubResource("GradientTexture2D_t05i8") +lifetime = 2.0 +one_shot = true +process_material = SubResource("ParticleProcessMaterial_t05i8") diff --git a/paintings/layout/painting_pile.gd b/paintings/layout/painting_pile.gd new file mode 100644 index 0000000..692ce3e --- /dev/null +++ b/paintings/layout/painting_pile.gd @@ -0,0 +1,28 @@ +@tool +extends ReferenceRect +class_name PaintingPile + + +func _get_minimum_size() -> Vector2: + return Vector2(0, size.x * 20. / 31.) + + +func _set_height_from_width(): + size.y = size.x * 20. / 31. + update_minimum_size() + + +func _ready() -> void: + resized.connect(_set_height_from_width) + + +var tracking: Array[Node] + +func push_tracking(node: Node) -> Rect2: + tracking.push_back(node) + var rect := get_global_rect() + rect.position += Vector2(8, 4) * (tracking.size() - 1) + return rect + +func pop_tracking() -> Node: + return tracking.pop_back() diff --git a/paintings/layout/painting_pile.gd.uid b/paintings/layout/painting_pile.gd.uid new file mode 100644 index 0000000..7bed55e --- /dev/null +++ b/paintings/layout/painting_pile.gd.uid @@ -0,0 +1 @@ +uid://dcocb7413ofm3 diff --git a/paintings/layout/painting_pile.tscn b/paintings/layout/painting_pile.tscn new file mode 100644 index 0000000..7ad2941 --- /dev/null +++ b/paintings/layout/painting_pile.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=2 format=3 uid="uid://dpcsom2ps588j"] + +[ext_resource type="Script" uid="uid://dcocb7413ofm3" path="res://paintings/layout/painting_pile.gd" id="1_frs4q"] + +[node name="PaintingPile" type="ReferenceRect"] +custom_minimum_size = Vector2(31, 20) +offset_right = 310.0 +offset_bottom = 200.0 +mouse_filter = 2 +script = ExtResource("1_frs4q") diff --git a/paintings/noise.tscn b/paintings/noise.tscn deleted file mode 100644 index 0af8ed7..0000000 --- a/paintings/noise.tscn +++ /dev/null @@ -1,35 +0,0 @@ -[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 index 96ffbe2..62f9720 100644 --- a/paintings/painting.gd +++ b/paintings/painting.gd @@ -15,14 +15,15 @@ class_name Painting queue_redraw() -@export_range(0, 3) var damage: int: +@export_range(0, 4) var damage: int: set(x): - damage = clampi(x, 0, 3) + damage = x queue_redraw() func _draw() -> void: + %Fail.visible = damage > 3 %Dmg.visible = damage > 0 - %Dmg.frame = damage - 1 if damage > 0 else 0 + %Dmg.frame = clampi(damage - 1, 0, 2) if damage > 0 else 0 %Noise.rng_seed = painting_id %TextureRect.texture = overwrite_texture diff --git a/paintings/painting.tscn b/paintings/painting.tscn index ddb07d0..c87de3b 100644 --- a/paintings/painting.tscn +++ b/paintings/painting.tscn @@ -1,16 +1,15 @@ -[gd_scene load_steps=6 format=3 uid="uid://donkfeu1x888o"] +[gd_scene load_steps=7 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"] +[ext_resource type="PackedScene" uid="uid://bjpharjtpysre" path="res://paintings/procedual/noise.tscn" id="2_oqt1c"] [ext_resource type="Texture2D" uid="uid://d02jhn3d0pwir" path="res://paintings/dmg.png" id="4_t4wwa"] +[ext_resource type="FontFile" uid="uid://cm28kqtqj3a6n" path="res://assets/amiga4ever pro.ttf" id="5_l5l5f"] -[sub_resource type="FastNoiseLite" id="FastNoiseLite_465no"] -resource_local_to_scene = true -frequency = 0.002661236 -offset = Vector3(1460.7504, 943.2602, 0) -fractal_type = 3 -fractal_octaves = 2 +[sub_resource type="LabelSettings" id="LabelSettings_1sxlm"] +font = ExtResource("5_l5l5f") +font_size = 64 +font_color = Color(1, 0, 0, 1) [node name="Painting" type="Node2D"] texture_filter = 1 @@ -40,8 +39,10 @@ stretch_shrink = 4 [node name="SubViewport" type="SubViewport" parent="Control/SubViewportContainer"] transparent_bg = true handle_input_locally = false +snap_2d_transforms_to_pixel = true +snap_2d_vertices_to_pixel = true size = Vector2i(73, 45) -size_2d_override = Vector2i(480, 360) +size_2d_override = Vector2i(310, 200) size_2d_override_stretch = true render_target_update_mode = 4 @@ -54,10 +55,10 @@ offset_right = 0.0 offset_bottom = 0.0 grow_horizontal = 2 grow_vertical = 2 -noise = SubResource("FastNoiseLite_465no") steps = 24 gradient_start = Color(0.605822, 0.410077, 0.7508662, 1) gradient_end = Color(0.1471889, 0.25502726, 0.39230567, 1) +rng_seed = 0 [node name="TextureRect" type="TextureRect" parent="Control"] unique_name_in_owner = true @@ -74,3 +75,24 @@ unique_name_in_owner = true visible = false texture = ExtResource("4_t4wwa") hframes = 3 + +[node name="Fail" type="Label" parent="."] +unique_name_in_owner = true +visible = false +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -145.99998 +offset_top = -29.0 +offset_right = 124.000015 +offset_bottom = 102.0 +grow_horizontal = 2 +grow_vertical = 2 +rotation = -0.25212684 +text = "NOT +SOLD" +label_settings = SubResource("LabelSettings_1sxlm") +horizontal_alignment = 1 +vertical_alignment = 1 diff --git a/paintings/painting_display.gd b/paintings/painting_display.gd deleted file mode 100644 index 73aeb63..0000000 --- a/paintings/painting_display.gd +++ /dev/null @@ -1,54 +0,0 @@ -@tool -extends Node2D - - - -@export var shake_distance := 12.0 -@export var shake_duration := 0.3 -@export var shake_step_count := 5 -@export_tool_button('Damage Painting') var damage_painting_action = damage_painting - - -@export var custom_paintings: Array[Texture2D] -@export_tool_button('Next Custom') var next_custom_action = func next_custom(): - var idx: int = (%Painting.painting_id + 1) % custom_paintings.size() - %Painting.overwrite_texture = custom_paintings[idx] - %Painting.painting_id = idx - - -@export_tool_button('Random Procedual') var random_procedual_action = func random_procedual(): - %Painting.painting_id = randi() - %Painting.overwrite_texture = null - - -func get_n_unique_custom_paintings(count: int) -> Array[int]: - var list: Array[int] = [] - for idx in custom_paintings.size(): list.push_back(idx) - list.shuffle() - list.resize(count) - return list - - -var _shake_tween: Tween - -func animate_shake(): - if _shake_tween: _shake_tween.kill() - var shake_step := shake_duration / shake_step_count - _shake_tween = create_tween() - for i in shake_step_count: - var pos := Vector2(randf_range(-shake_distance, shake_distance), randf_range(-shake_distance, shake_distance)) - _shake_tween.set_ease(Tween.EASE_OUT_IN) - _shake_tween.set_trans(Tween.TRANS_ELASTIC) - _shake_tween.tween_property(%Rela1, ^'position', pos, shake_step) - _shake_tween.set_ease(Tween.EASE_OUT) - _shake_tween.set_trans(Tween.TRANS_ELASTIC) - _shake_tween.tween_property(%Rela1, ^'position', Vector2.ZERO, shake_duration) - _shake_tween.tween_callback(func(): _shake_tween = null) - - -func damage_painting(): - if %Painting.damage == 3: - %Painting.damage = 0 - else: - %Painting.damage += 1 - animate_shake() diff --git a/paintings/fractal.gd b/paintings/procedual/fractal.gd similarity index 100% rename from paintings/fractal.gd rename to paintings/procedual/fractal.gd diff --git a/paintings/fractal.gd.uid b/paintings/procedual/fractal.gd.uid similarity index 100% rename from paintings/fractal.gd.uid rename to paintings/procedual/fractal.gd.uid diff --git a/paintings/fractal.gdshader b/paintings/procedual/fractal.gdshader similarity index 100% rename from paintings/fractal.gdshader rename to paintings/procedual/fractal.gdshader diff --git a/paintings/fractal.gdshader.uid b/paintings/procedual/fractal.gdshader.uid similarity index 100% rename from paintings/fractal.gdshader.uid rename to paintings/procedual/fractal.gdshader.uid diff --git a/paintings/fractal.tscn b/paintings/procedual/fractal.tscn similarity index 93% rename from paintings/fractal.tscn rename to paintings/procedual/fractal.tscn index 9a1347c..a2cf595 100644 --- a/paintings/fractal.tscn +++ b/paintings/procedual/fractal.tscn @@ -1,7 +1,7 @@ [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"] +[ext_resource type="Shader" uid="uid://b8yiyjkjgvful" path="res://paintings/procedual/fractal.gdshader" id="1_4re67"] +[ext_resource type="Script" uid="uid://bnmc3t0wxeayv" path="res://paintings/procedual/fractal.gd" id="2_o3htp"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_o3htp"] resource_local_to_scene = true diff --git a/paintings/noise.gd b/paintings/procedual/noise.gd similarity index 77% rename from paintings/noise.gd rename to paintings/procedual/noise.gd index 80e08ab..f2fe933 100644 --- a/paintings/noise.gd +++ b/paintings/procedual/noise.gd @@ -1,16 +1,8 @@ @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') @@ -29,32 +21,20 @@ extends ColorRect 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() - + var tex: NoiseTexture2D = material.get_shader_parameter('noise') + tex.width = ceili(size.x) + tex.height = ceili(size.y) + material.set_shader_parameter('noise', tex) func _ready() -> void: _resized() resized.connect(_resized) - func _regenerate() -> void: var rng := RandomNumberGenerator.new() rng.seed = rng_seed + var noise := FastNoiseLite.new() noise.fractal_type = rng.randi_range(0, 3) as FastNoiseLite.FractalType match noise.fractal_type: 3: noise.fractal_octaves = 2 @@ -62,6 +42,12 @@ func _regenerate() -> void: _: noise.fractal_octaves = 5 noise.frequency = rng.randf_range(0.002, 0.004) noise.seed = rng.seed + var tex := NoiseTexture2D.new() + tex.generate_mipmaps = false + tex.width = ceili(size.x) + tex.height = ceili(size.y) + tex.noise = noise + material.set_shader_parameter('noise', tex) match rng.randi_range(1, 5): 1: steps = 2 2: steps = 5 diff --git a/paintings/noise.gd.uid b/paintings/procedual/noise.gd.uid similarity index 100% rename from paintings/noise.gd.uid rename to paintings/procedual/noise.gd.uid diff --git a/paintings/noise.gdshader b/paintings/procedual/noise.gdshader similarity index 100% rename from paintings/noise.gdshader rename to paintings/procedual/noise.gdshader diff --git a/paintings/noise.gdshader.uid b/paintings/procedual/noise.gdshader.uid similarity index 100% rename from paintings/noise.gdshader.uid rename to paintings/procedual/noise.gdshader.uid diff --git a/paintings/procedual/noise.tscn b/paintings/procedual/noise.tscn new file mode 100644 index 0000000..4dc920c --- /dev/null +++ b/paintings/procedual/noise.tscn @@ -0,0 +1,34 @@ +[gd_scene load_steps=6 format=3 uid="uid://bjpharjtpysre"] + +[ext_resource type="Shader" uid="uid://b6jkek1qotcnf" path="res://paintings/procedual/noise.gdshader" id="1_2lnyf"] +[ext_resource type="Script" uid="uid://2jt34o1v7gbo" path="res://paintings/procedual/noise.gd" id="1_o4civ"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_ula8d"] +seed = 573944325 +frequency = 0.0020331522 +fractal_type = 2 +fractal_octaves = 3 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_8rnnf"] +width = 310 +height = 200 +generate_mipmaps = false +noise = SubResource("FastNoiseLite_ula8d") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_0uljq"] +resource_local_to_scene = true +shader = ExtResource("1_2lnyf") +shader_parameter/noise = SubResource("NoiseTexture2D_8rnnf") +shader_parameter/steps = 8.0 +shader_parameter/gradient_start = Color(0.9170881, 0.52674425, 0.57822865, 1) +shader_parameter/gradient_end = Color(0.18847808, 0.004581891, 0.12525481, 1) + +[node name="Noise" type="ColorRect"] +material = SubResource("ShaderMaterial_0uljq") +custom_minimum_size = Vector2(31, 20) +offset_right = 310.0 +offset_bottom = 200.0 +script = ExtResource("1_o4civ") +gradient_start = Color(0.9170881, 0.52674425, 0.57822865, 1) +gradient_end = Color(0.18847808, 0.004581891, 0.12525481, 1) +rng_seed = 573944325 diff --git a/turn_manager.gd b/turn_manager.gd index 57dc43d..297d7bb 100644 --- a/turn_manager.gd +++ b/turn_manager.gd @@ -1,5 +1,7 @@ class_name TurnManager extends Node2D +signal timer_timeout + @export var turn_timer := 7.0 @export var tts_number_speed = 7.0 @export var tts_sentence_speed = 5.0 @@ -9,7 +11,6 @@ class_name TurnManager extends Node2D @export var desk: Desk @export var captions: CaptionLabel var timer: Timer -@export var game_manager: GameManager @export var audience_manager: AudienceManager @@ -25,9 +26,6 @@ func _ready() -> void: print('voices available: ', _voices.size()) -func turn_timer_animation(): - pass - func speak(text: String) -> void: print('tts: ', text) captions.display_caption(text) @@ -46,11 +44,18 @@ func _speak_ask_proposed(amount): else: speak('Can I get a %s?' % [amount]) + func _handle_ask_accepted(): timer.start() - turn_timer_animation() + func _handle_reminder_timer_timeout() -> void: - if game_manager.state == game_manager.bidding_state.ASKING or game_manager.state == game_manager.bidding_state.BID: - game_manager.state = game_manager.bidding_state.CLOSED - game_manager.destroy_painting() + timer_timeout.emit() + + +func end_turn() -> void: + timer.stop() + + +func restart_turn() -> void: + timer.start()