From 6bfd3a3f0f7cbf290074187207cf92d55ec1027a Mon Sep 17 00:00:00 2001 From: Rendo Date: Sun, 1 Mar 2026 17:51:40 +0500 Subject: [PATCH] Hand rework --- project.godot | 1 + scenes/game.tscn | 61 ++++++++++++++++++++++------------- sprites/clock.png | Bin 0 -> 7935 bytes sprites/clock.png.import | 40 +++++++++++++++++++++++ sprites/clock.png~ | Bin 0 -> 8703 bytes systems/turn_schedule.gd | 30 +++++++++++++++++ systems/turn_schedule.gd.uid | 1 + ui/hand.gd | 25 ++++---------- 8 files changed, 118 insertions(+), 40 deletions(-) create mode 100644 sprites/clock.png create mode 100644 sprites/clock.png.import create mode 100644 sprites/clock.png~ create mode 100644 systems/turn_schedule.gd create mode 100644 systems/turn_schedule.gd.uid diff --git a/project.godot b/project.godot index cbfa5e6..8f952e3 100644 --- a/project.godot +++ b/project.godot @@ -18,6 +18,7 @@ config/icon="res://icon.svg" [autoload] GameplaySignalBus="*uid://cqh0t2i1slf8u" +TurnSchedule="*uid://cbrs61uy1wkwe" [debug] diff --git a/scenes/game.tscn b/scenes/game.tscn index 7fee7ea..06349c8 100644 --- a/scenes/game.tscn +++ b/scenes/game.tscn @@ -1,6 +1,8 @@ [gd_scene format=3 uid="uid://bxt4kgs6px3t8"] [ext_resource type="Texture2D" uid="uid://b2pm032d5tqwb" path="res://sprites/field.png" id="1_iywne"] +[ext_resource type="AudioStream" uid="uid://bdykhfqrftuvv" path="res://music/fostral.wav" id="1_trtic"] +[ext_resource type="AudioStream" uid="uid://cuiseagt5rk7h" path="res://music/glorx.wav" id="2_ir15t"] [ext_resource type="PackedScene" uid="uid://dl3ve6prnn2m6" path="res://cards/card.tscn" id="2_p57ef"] [ext_resource type="Script" uid="uid://caf4h6lok18so" path="res://ui/hand.gd" id="2_u5sy4"] [ext_resource type="Resource" uid="uid://e7kiu3wcf0ff" path="res://cards/resources/fosma.tres" id="3_u5sy4"] @@ -11,8 +13,19 @@ [ext_resource type="Script" uid="uid://dgd30yiw5q368" path="res://systems/grid_reciever.gd" id="9_0tnpc"] [ext_resource type="Script" uid="uid://bkh50fstwbb6s" path="res://systems/grid_arranger.gd" id="10_vtaks"] +[sub_resource type="AudioStreamPlaylist" id="AudioStreamPlaylist_trtic"] +shuffle = true +stream_count = 4 +stream_0 = ExtResource("1_trtic") +stream_1 = ExtResource("2_ir15t") + [node name="Game" type="Node2D" unique_id=619820575] +[node name="MusicPlayer" type="AudioStreamPlayer" parent="." unique_id=1956514678] +stream = SubResource("AudioStreamPlaylist_trtic") +volume_db = -20.0 +autoplay = true + [node name="Field" type="Sprite2D" parent="." unique_id=1104378711] texture = ExtResource("1_iywne") centered = false @@ -20,26 +33,30 @@ metadata/_edit_lock_ = true [node name="PlayerInterface" type="CanvasLayer" parent="." unique_id=269857956] -[node name="Hand" type="Control" parent="PlayerInterface" unique_id=403305026] +[node name="Hand" type="Control" parent="PlayerInterface" unique_id=903928048] layout_mode = 3 -anchors_preset = 12 -anchor_top = 1.0 +anchors_preset = 14 +anchor_top = 0.5 anchor_right = 1.0 -anchor_bottom = 1.0 +anchor_bottom = 0.5 +offset_top = 786.0 +offset_bottom = 786.0 grow_horizontal = 2 -grow_vertical = 0 -pivot_offset_ratio = Vector2(0.5, 0.5) +grow_vertical = 2 +pivot_offset_ratio = Vector2(0.5, 0) script = ExtResource("2_u5sy4") +radius = 512.0 +arch = 1.0789625435828945 [node name="Card" parent="PlayerInterface/Hand" unique_id=267582807 instance=ExtResource("2_p57ef")] layout_mode = 0 anchors_preset = 0 anchor_right = 0.0 anchor_bottom = 0.0 -offset_left = 733.9999 -offset_top = -168.99997 -offset_right = 846.9999 -offset_bottom = 3.0517578e-05 +offset_left = 532.9398 +offset_top = -437.81183 +offset_right = 645.9399 +offset_bottom = -268.81158 card_resource = ExtResource("3_u5sy4") [node name="Card2" parent="PlayerInterface/Hand" unique_id=1229293312 instance=ExtResource("2_p57ef")] @@ -47,10 +64,10 @@ layout_mode = 0 anchors_preset = 0 anchor_right = 0.0 anchor_bottom = 0.0 -offset_left = 846.9999 -offset_top = -168.99997 -offset_right = 959.99994 -offset_bottom = 3.0517578e-05 +offset_left = 767.06165 +offset_top = -577.98645 +offset_right = 880.06165 +offset_bottom = -408.98608 card_resource = ExtResource("4_gee14") [node name="Card4" parent="PlayerInterface/Hand" unique_id=1427311772 instance=ExtResource("2_p57ef")] @@ -58,10 +75,10 @@ layout_mode = 0 anchors_preset = 0 anchor_right = 0.0 anchor_bottom = 0.0 -offset_left = 959.9999 -offset_top = -168.99997 -offset_right = 1072.9999 -offset_bottom = 3.0517578e-05 +offset_left = 1039.9382 +offset_top = -577.9866 +offset_right = 1152.9384 +offset_bottom = -408.9859 card_resource = ExtResource("3_u5sy4") [node name="Card3" parent="PlayerInterface/Hand" unique_id=1907397406 instance=ExtResource("2_p57ef")] @@ -69,10 +86,10 @@ layout_mode = 0 anchors_preset = 0 anchor_right = 0.0 anchor_bottom = 0.0 -offset_left = 1072.9998 -offset_top = -168.99997 -offset_right = 1185.9998 -offset_bottom = 3.0517578e-05 +offset_left = 1274.06 +offset_top = -437.81183 +offset_right = 1387.06 +offset_bottom = -268.8116 card_resource = ExtResource("5_0tnpc") [node name="Grid" type="Node2D" parent="." unique_id=1478060666 node_paths=PackedStringArray("right_border_marker")] diff --git a/sprites/clock.png b/sprites/clock.png new file mode 100644 index 0000000000000000000000000000000000000000..3f81940959a5a2404da8f27ad193593caff10e60 GIT binary patch literal 7935 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 literal 0 HcmV?d00001 diff --git a/sprites/clock.png.import b/sprites/clock.png.import new file mode 100644 index 0000000..955547e --- /dev/null +++ b/sprites/clock.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dp5k3rw7qywtr" +path="res://.godot/imported/clock.png-66af4231b30943e4cee6caf99906e470.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://sprites/clock.png" +dest_files=["res://.godot/imported/clock.png-66af4231b30943e4cee6caf99906e470.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/sprites/clock.png~ b/sprites/clock.png~ new file mode 100644 index 0000000000000000000000000000000000000000..ad5cc5ecb9747c95d43a2ab7c4b7648d1163061e GIT binary patch literal 8703 zcmVcc$)-ujn1e>Oj@lGFRX$EGJ&w+wp3VtNmUvTE>v(xftUaJByzFwd*kX&RbIv(O zt-SKe<;Q26Z8o*pW}B&TZO-nQbUFeQNREG zJA}YVN|dP;<;N zN7YZ*^=F=WruzQ-?=^=2ML|^m{PT|{0*E3=1@dq73^>7Qf+(CVf+I9%(+A=_POzUK zvN;mWj%N|qSYr)!&_M^OMHgK(^7)TH{#ft+zyJPQiAkvOufP6c+v~sK0w5y6#|r4f z8iGRv-zxR%QTZ&hibiA$%~c2JB9l2va9hDhA~iCeh40w0qdNKIlhrP}?4ntJ9EcgH zzWnk_^~*26=tVE>_VV9TRRJvrG!c~EWj^T-R>Dq#I|}|J_+g`Rgytp!7LbX2L~wP% z(7u`V;1jvN+;YpQefQm0@BFmz)mL9>`TzRsudB~L|6H^G$&)AR-OnckP|^u1lmgl* zaR3c$PxOwDA{0cxTW`IkMvNGt-hKC7^}`Q8s6YSwQ|ki|g24cHFq{H5 zGHHPY7Wk)EuU_po*<_Q+Gt4l5COi0W(&=M0Jf9a!TEyS9lPt1&oarXM~@zA zi!HXO((L1A8HEs~@77yy)jokZV6hPqFTC)A<`7?e@r5P^xI!3|#0XBMCRup3$RdlV zop;{(yVX`(ZT;PM-yQMLY@wb6fR@I>Z;-U`?0B3v$oFlw*+z-~KJ|p|u)_}8=`(cb zP}Qy-4n#XJ#PImzkE`LshpTVC`9@(v`pm?t7nPLKDe}zwB0>hp1GfueMKn982LWJ^ zA0dc#Ppm$2*TdTJ++oLWz4g{=rkQv=8*IP*_UgCaep6RpeYIL)1!6|&0exW1m@(>+ zM;=kHz4n@ZpV1Xc3Zs6h;RvM`uqi(kyj1We!3pVGF76k#HUn|u+$Ol1V5s0WCf%HK z&Z)NDc3ZXUuDfcxJ};OZi?WxM03b-L4G?|ei6@>=!-fr0D3fpnqc8^g${a6SA^`Fe z$VDJQ1?!>iP%8ppmmev3j$r7nHwzD|ht2P}}eudxxal0Ph{N8)-txh@R z6up~p*0==B~ z1#xd5FF4L!uk7EHY(Lq*E9%LP@*n$#Ek28aLMEn@dgq;Y)WCrQ6;2w-)Uh({(sYf5 z0x<820LDUu@&5bo*Lp&~e*M%k%PfOuG3Y5Y0Vn2uR>9o_hYJ$btT_}x0I>M=1=ki_ zMvz2{w!x8ME}@vQ@Yh{;omzO|{|~`K0C@LYf_Wb<;39zW;C|+lvEY@2BZ!{R)U|6@ zEEkiP7;GMbz#_t}yk-%7i+iVQ0zjmo={{H*&)fd4>5#268SFN&KQ1=*|xN(v%@^!38QB>|A4b-rMktB`Yd^wCE*?XkxmO5CE> zgF#bAOkh^QMmu%tq?IcE&O-#&9Z2z@i9}}gRfyU6!z{DR(oSLy^9i*wmaX97M4mT4_pJs4akm3Lqvto90Qfz&)Dc6_CMSu zEr`Mf8#K7K?YG~qoh{7?a7{n>;Dbt{e~MUx$s|hK$3A`fv=;}MKf?%1YH-^3WO?2N2Vj-y zEZRO1u}K$PaKX%7x^&4cUf5xnRuBV9A^vyFtW{Q7CCgZy{)WEIKmYvNd4ef8CK-TTAXwgoSoXzGT0POu9 zf|`p68=N8vTiam%ea`;rpOfS%rjmBm*AVgsYLV=2bT*#1cVSc*)Jr{ zGx&clu;js+y zDE^PMzzJsOkd*)kXX5tNzn5J<<@D1}Zwjz4r=3L%xDF86bkOg3B0fPsNE*fD!(YL9 zLzi&YS!adiK`_rG%`W7!E#8%t0Q$&p%bLHKWvv6si|c;s-H$mK=Wlo3sPBb@tqEK~ zO!#YqPkkzN94pG}1$j=ztyf?b}y7 zLTUlV_g+h75IN6+6sg~Y&D}{Soum)Hgor#uFNbBFOnO>ZFlv4|w-1?k<&{@f5CErZ z@Y>8GC*;oYKv$!GC#^VS+rcrh_aCJBf<#5Up=aqxWJex)G* z8ZMVlVRBAA^;B)P_<<8Raz;)){q)o7mRoMoohO{@ic7E)S$zEOMFUztvcHxb$3LbH z9XhCIo_R)zPC%f@udl(mNgsm%awU_d5djoXTGezAnYjP{`&X?2Tmc6O;ZfYAr=511 zKEL<;^SOz&+!m%-meWCL2nK>RT7R0~xqKGFyXc~eh=GLV6B2sQUGFdr2e?BTT!I0z z`-yyUS|cD0m!obp4b=6g!iLE?+;kOXG=u^MS;Z}SBey*)gB?}UhAsZ_- z*m3|4c5r521KB!p5kEq>ha7T<_G_aQQi;PHuSP8J`=lZcNh3i7{QUFJTGY4%h;*fu zR!Vh%G)w!4NlqOj8cBRXZz2H}#W^@PD1;*RW_sWON)%P-0&HLif)soTXMLWwFE$*2 z1pV=XI=vgWudw%4w&&|OH-}>QOdT3-USI-onz+mpB&R=Zf@j<~SZI=2 zmty1-fc>~xH1V%dUsyJAdjA@82u&JQ+31k}%0A*>nugGyv%)2J3df{S@oVYU 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 literal 0 HcmV?d00001 diff --git a/systems/turn_schedule.gd b/systems/turn_schedule.gd new file mode 100644 index 0000000..db9e419 --- /dev/null +++ b/systems/turn_schedule.gd @@ -0,0 +1,30 @@ +extends Node + +var current_team: TEAMS = TEAMS.Enemy +var game_round: int = 0 +var turn: int = 0 + +func reset() -> void: + current_team = TEAMS.Enemy + +func advance() -> void: + trigger_units.emit(current_team) + current_team = clamp(current_team + 1,TEAMS.Player,TEAMS.Enemy) + turn += 1 + if current_team == TEAMS.Player: + game_round += 1 + turn = 0 + trigger_effects.emit() + next_round.emit() + next_turn.emit() + +signal trigger_effects +signal trigger_units(team: TEAMS) +signal next_turn +signal next_round + +enum TEAMS { + Player, + Neutrals, + Enemy +} diff --git a/systems/turn_schedule.gd.uid b/systems/turn_schedule.gd.uid new file mode 100644 index 0000000..33fb76c --- /dev/null +++ b/systems/turn_schedule.gd.uid @@ -0,0 +1 @@ +uid://cbrs61uy1wkwe diff --git a/ui/hand.gd b/ui/hand.gd index bd78ac0..1e3121b 100644 --- a/ui/hand.gd +++ b/ui/hand.gd @@ -1,27 +1,16 @@ @tool extends Control +@export var radius: float = 10. +@export_range(0,360,0.01,"or_greater","radians_as_degrees") var arch: float = PI/6 -# Called every frame. 'delta' is the elapsed time since the previous frame. func _process(_delta: float) -> void: - var calculated_size: Vector2 = Vector2.ZERO - - for card: Card in get_children(): - calculated_size += card.get_rect().size - - calculated_size.y /= get_child_count() - - var offset: float = 0. for i in range(get_child_count()): - var card:Card = get_child(i) - offset += card.get_rect().size.x - if card.top_level: + var child: Card = get_child(i) + if child.top_level: continue - var calculated_position: Vector2 = get_combined_pivot_offset() - calculated_size * Vector2(1.-1./get_child_count(),1) + Vector2.RIGHT*offset - - card.position = lerp(card.position,calculated_position,0.25) - -func resort_by_position(): - var children: Array = get_children() + var angle: float = -arch+2*arch*((float(i+0.5))/get_child_count()) + var pointing_up: float = angle - PI/2 + child.position = lerp(child.position,get_combined_pivot_offset()+Vector2.from_angle(pointing_up) * radius-child.get_combined_pivot_offset(),0.25)