From 94c6674da0fd207fbd15c608fe5f2de17ae7befc Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 10 Feb 2026 22:01:44 -0500 Subject: [PATCH] laid foundation for 2d navigation --- assets/ball/ball_basket1.png | Bin 0 -> 510 bytes assets/ball/ball_basket1.png.import | 40 +++++++++++++++++ assets/ball/ball_basket2.png | Bin 0 -> 506 bytes assets/ball/ball_basket2.png.import | 40 +++++++++++++++++ assets/ball/ball_basket3.png | Bin 0 -> 435 bytes assets/ball/ball_basket3.png.import | 40 +++++++++++++++++ assets/ball/ball_basket4.png | Bin 0 -> 421 bytes assets/ball/ball_basket4.png.import | 40 +++++++++++++++++ assets/court/half-court-reference.png | Bin 0 -> 23133 bytes assets/court/half-court-reference.png.import | 40 +++++++++++++++++ assets/icons/ball.svg | 42 ++++++++++++++++++ assets/icons/ball.svg.import | 43 +++++++++++++++++++ assets/players/black_big.png | Bin 0 -> 618 bytes assets/players/black_big.png.import | 40 +++++++++++++++++ assets/players/black_guard.png | Bin 0 -> 557 bytes assets/players/black_guard.png.import | 40 +++++++++++++++++ assets/players/black_wing.png | Bin 0 -> 694 bytes assets/players/black_wing.png.import | 40 +++++++++++++++++ assets/players/blue_big.png | Bin 0 -> 617 bytes assets/players/blue_big.png.import | 40 +++++++++++++++++ assets/players/blue_guard.png | Bin 0 -> 546 bytes assets/players/blue_guard.png.import | 40 +++++++++++++++++ assets/players/blue_wing.png | Bin 0 -> 687 bytes assets/players/blue_wing.png.import | 40 +++++++++++++++++ assets/players/green_wing.png | Bin 0 -> 694 bytes assets/players/green_wing.png.import | 40 +++++++++++++++++ assets/players/purple_wing.png | Bin 0 -> 694 bytes assets/players/purple_wing.png.import | 40 +++++++++++++++++ assets/players/red_wing.png | Bin 0 -> 690 bytes assets/players/red_wing.png.import | 40 +++++++++++++++++ assets/players/white_wing.png | Bin 0 -> 675 bytes assets/players/white_wing.png.import | 40 +++++++++++++++++ assets/players/yellow_wing.png | Bin 0 -> 694 bytes assets/players/yellow_wing.png.import | 40 +++++++++++++++++ ball.tscn | 10 +++++ court.tscn | 20 +++++++++ game.tscn | 25 +++++++++++ player.tscn | 14 ++++++ project.godot | 7 +++ scripts/ball.gd | 3 ++ scripts/ball.gd.uid | 1 + scripts/court.gd | 2 + scripts/court.gd.uid | 1 + scripts/game_manager.gd | 6 +++ scripts/game_manager.gd.uid | 1 + scripts/player.gd | 13 ++++++ scripts/player.gd.uid | 1 + scripts/player_attributes.gd | 18 ++++++++ scripts/player_attributes.gd.uid | 1 + 49 files changed, 848 insertions(+) create mode 100644 assets/ball/ball_basket1.png create mode 100644 assets/ball/ball_basket1.png.import create mode 100644 assets/ball/ball_basket2.png create mode 100644 assets/ball/ball_basket2.png.import create mode 100644 assets/ball/ball_basket3.png create mode 100644 assets/ball/ball_basket3.png.import create mode 100644 assets/ball/ball_basket4.png create mode 100644 assets/ball/ball_basket4.png.import create mode 100644 assets/court/half-court-reference.png create mode 100644 assets/court/half-court-reference.png.import create mode 100644 assets/icons/ball.svg create mode 100644 assets/icons/ball.svg.import create mode 100644 assets/players/black_big.png create mode 100644 assets/players/black_big.png.import create mode 100644 assets/players/black_guard.png create mode 100644 assets/players/black_guard.png.import create mode 100644 assets/players/black_wing.png create mode 100644 assets/players/black_wing.png.import create mode 100644 assets/players/blue_big.png create mode 100644 assets/players/blue_big.png.import create mode 100644 assets/players/blue_guard.png create mode 100644 assets/players/blue_guard.png.import create mode 100644 assets/players/blue_wing.png create mode 100644 assets/players/blue_wing.png.import create mode 100644 assets/players/green_wing.png create mode 100644 assets/players/green_wing.png.import create mode 100644 assets/players/purple_wing.png create mode 100644 assets/players/purple_wing.png.import create mode 100644 assets/players/red_wing.png create mode 100644 assets/players/red_wing.png.import create mode 100644 assets/players/white_wing.png create mode 100644 assets/players/white_wing.png.import create mode 100644 assets/players/yellow_wing.png create mode 100644 assets/players/yellow_wing.png.import create mode 100644 ball.tscn create mode 100644 court.tscn create mode 100644 game.tscn create mode 100644 player.tscn create mode 100644 scripts/ball.gd create mode 100644 scripts/ball.gd.uid create mode 100644 scripts/court.gd create mode 100644 scripts/court.gd.uid create mode 100644 scripts/game_manager.gd create mode 100644 scripts/game_manager.gd.uid create mode 100644 scripts/player.gd create mode 100644 scripts/player.gd.uid create mode 100644 scripts/player_attributes.gd create mode 100644 scripts/player_attributes.gd.uid diff --git a/assets/ball/ball_basket1.png b/assets/ball/ball_basket1.png new file mode 100644 index 0000000000000000000000000000000000000000..b470e7e34901c691c7b8aa54105e3b9716eb28c9 GIT binary patch literal 510 zcmV`N5vy+%-iZnBkp;SV6|HX*&VUQohYr_<4a0g4_mu*(a~0l- z3%z&`(}N1HaTUCI6|{5{%z+X4mI3372Ih?k*o6t+hzI+Z0myv~^ppebkOtd`4atBL z>5m7^f)e743ebZQ)P)c5k_EX=hOs?7r{IOh-pW1@iL$U)G>)&f!2VS)Zzs z>8udTR`W zfU+1VMEU1wl=wkVhR0`l3hGGiJ=SWqjO9H?Y0GcWY1CTkOKql(-?2^$0f*LkiKOYU zEL3UW}H$1UsG2wSbpqwdjJ3c07*qoM6N<$f?TfH ABme*a literal 0 HcmV?d00001 diff --git a/assets/ball/ball_basket1.png.import b/assets/ball/ball_basket1.png.import new file mode 100644 index 0000000..5957b03 --- /dev/null +++ b/assets/ball/ball_basket1.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b8vn6lgx0i1g8" +path="res://.godot/imported/ball_basket1.png-1d6a0d0909777cdb0b6ee9a39bf0d898.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/ball/ball_basket1.png" +dest_files=["res://.godot/imported/ball_basket1.png-1d6a0d0909777cdb0b6ee9a39bf0d898.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ball/ball_basket2.png b/assets/ball/ball_basket2.png new file mode 100644 index 0000000000000000000000000000000000000000..33c3cfea33aaf820abf19169cfdc411739ee5e70 GIT binary patch literal 506 zcmVM_6p~&K&VUP`Wevf12*`a6wsQ^fkpZo56PaTXpJx)HX%nbw z44q^T(}N19YZAS954d#^`IZ60dJf!%1kQd22fA|!o@5R9l>q9E0+(P8 z$a@FXf(5K>3*(9drDzP1T@U}60H|#hyodqf0000FbW%=Jj~{P;4^Kaz&%a;aFYf?$ z_&K@&0081iL_t&-(>0KXasn|7M4bZ1H3!l=NhpEqXIt9;|Ff*&vNIlAZ>*h_jE%~Y zluBl&!tl&XOe!zVXbxZMivVF*U8=+9KjBwsPAEr4U!M;{rF=Yebn we0;J;*Wc6FWcmMc@?zSTwU;NDUtP!I4+xwu+(s89TL1t607*qoM6N<$g1TnT=l}o! literal 0 HcmV?d00001 diff --git a/assets/ball/ball_basket2.png.import b/assets/ball/ball_basket2.png.import new file mode 100644 index 0000000..29347a8 --- /dev/null +++ b/assets/ball/ball_basket2.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ot6gbcnca0lu" +path="res://.godot/imported/ball_basket2.png-089d8feae2d172f8239f8b3157c25382.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/ball/ball_basket2.png" +dest_files=["res://.godot/imported/ball_basket2.png-089d8feae2d172f8239f8b3157c25382.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ball/ball_basket3.png b/assets/ball/ball_basket3.png new file mode 100644 index 0000000000000000000000000000000000000000..a2e65e605a5643e5e589757d929d8b49df9b2d80 GIT binary patch literal 435 zcmV;k0ZjghP)yHM(dlId06SsC1xOEZ8eGTc31*>lrscsefmjT0i4(^Zxy?77FfD`nS z0<&`!>5m8Sk_E$j5wda;_mu+qmI2#{4d#sr)P)b;hzISE2LG7=sBIO-e-$ewtQ!CT z01b3fPE#LGZ$HluU%%h4?=JvIOfZcA006s5L_t&-(`At95`r)cgp1sz-Y2Lix7f}5 zzn%&7kGeCRHs5SAn<^vn(in(SZz>cYKY>%?&nV+}u_U^VHy{%fYOG3YiLAA2XvHYT zgWfZG(*uD~K6V?r=YsM(RShDQ;%Iw%3VKp+N2E&Q#0@V&FCNeV3ZO4t{?S=b`P&#{ z#nxYQ0m8d4usI6P5hR)pDhp}UHE!^5hd`|3{kqH;m dk0pyxst>_+D6DApeFy*m002ovPDHLkV1nmGuuT8} literal 0 HcmV?d00001 diff --git a/assets/ball/ball_basket3.png.import b/assets/ball/ball_basket3.png.import new file mode 100644 index 0000000..a1cfaf9 --- /dev/null +++ b/assets/ball/ball_basket3.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bi40qxx0h3u7j" +path="res://.godot/imported/ball_basket3.png-c5a3b35e6131c69ebaea6b2b53d1b607.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/ball/ball_basket3.png" +dest_files=["res://.godot/imported/ball_basket3.png-c5a3b35e6131c69ebaea6b2b53d1b607.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/ball/ball_basket4.png b/assets/ball/ball_basket4.png new file mode 100644 index 0000000000000000000000000000000000000000..fb3d802e4862b33ca3586725251538c7aa5380c9 GIT binary patch literal 421 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%0A`o5TXH%;K>)M}FGL^)1K2KXg*zMGyLT?m>=`JP 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 Qr$f%4Q&&z`Gk literal 0 HcmV?d00001 diff --git a/assets/court/half-court-reference.png.import b/assets/court/half-court-reference.png.import new file mode 100644 index 0000000..1e5085c --- /dev/null +++ b/assets/court/half-court-reference.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bfm7wosi1pkri" +path="res://.godot/imported/half-court-reference.png-6d572c4f1f38a1236917ea385364fa25.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/court/half-court-reference.png" +dest_files=["res://.godot/imported/half-court-reference.png-6d572c4f1f38a1236917ea385364fa25.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/icons/ball.svg b/assets/icons/ball.svg new file mode 100644 index 0000000..d9983e9 --- /dev/null +++ b/assets/icons/ball.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + diff --git a/assets/icons/ball.svg.import b/assets/icons/ball.svg.import new file mode 100644 index 0000000..673b8a3 --- /dev/null +++ b/assets/icons/ball.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://qrs4pcoaqe3w" +path="res://.godot/imported/ball.svg-1da86e8030f21289bf53da36ebe23774.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/ball.svg" +dest_files=["res://.godot/imported/ball.svg-1da86e8030f21289bf53da36ebe23774.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 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/players/black_big.png b/assets/players/black_big.png new file mode 100644 index 0000000000000000000000000000000000000000..f51ac9fe814e88384e7a991d0164a1e41386746d GIT binary patch literal 618 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCijY1AIbU zB_t#yB_)9*1c-}^1Gzu|VE_dM1qFd5Pz0z$R#w*5#ztF9OG--0$-zNgP0iHAL{n2! zPEO9o+FDaX!@*4Ek4(b3-C)Yw>GPtVrcT3T9KMOoR%&`?oP(cH|;%F@!< z$Overn~MvBPFfVuX#SEQzu^1p?d#+H`_Jdg@8_TYoA_Z>PV^ zJFFnk;yL%mu^IQmg_eJ0v^f0RKH=>Z-&zNjl}cMDJ)f`pRz0Guz4gw&pcJ+k@dJ-s zFKNVXI?bTyt}YkPkRYhwde_54A?aR&$kI!5LpraB3oviBTgf)9j)ChQ;lHQv%fKniCdn*)w1WhbbTI$Gz8Z4o_H;yv_er~`&FflqKjmX zy!TqOhoQ%TN8I60^}_Je)e7I3bu8aq%bHzla%x-FUyl7je2s_yE>!=@;4Ri^xld74Uz`TX$RujJ`~S8F*oLC z&)VHPjGj(7HhbxW2Unh^Ejqg(zVmFxg)^(uUM$bsZp?i<{MhOh<#!uGo}Yg^f5OiG vU5-r?CpG-CwaAz=Pr*~_^3R8rt_RdzHYM1G7krrvj2{M1S3j3^P6oFWMXXWuGRo~roOtd^ z3*&^(Z0~$MxE?6UZ8_2=cdc>ny@NLn|MO>LcVK6@r1@jTw6CHyLI(o%8ijgTI670} z<~wlR(s?6RzEkad(=9fKTX#;+7WtAH^7=u|tHU~{^AhW=W{Wp*eh8G)|2yThccvAK z@PPoc!>`}w>hK$1W&J2}Bw1>)MpeDfVg&}7@V{ztyw5lAvHWtCS)b&PuE!j>kA!ejsd literal 0 HcmV?d00001 diff --git a/assets/players/black_guard.png.import b/assets/players/black_guard.png.import new file mode 100644 index 0000000..f4f3258 --- /dev/null +++ b/assets/players/black_guard.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bbf8h76a5x7gf" +path="res://.godot/imported/black_guard.png-2b88a92123dd96bc74a7170d096623f7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/players/black_guard.png" +dest_files=["res://.godot/imported/black_guard.png-2b88a92123dd96bc74a7170d096623f7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/players/black_wing.png b/assets/players/black_wing.png new file mode 100644 index 0000000000000000000000000000000000000000..a15e07d616971584beae671c46df2096fb21b842 GIT binary patch literal 694 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCilO0(?ST zB_t%o#l?Z7prD{67y#K222dQx0CIsqOiT<&0yWuMTWe}+s;R1KX=zDGNjW(3(I znVPydIjO6wo0^zdSy-s6sVOQdN=r){85-JHTRYm@n;IMI>*=W|D?8ZPSy@_|o0;io zYs<;WIXgNU8yNv@adUC`;koE2&;o&yAiv=G{`LIl<>S})=fAhVufLxmPQfsZfq`+i zr;B4q#NoHoZx$Ug;Bn)MS&)Pvr*151NWU8D26c*5rt^H|&1G#3P>>7C&WaLkg1^$Lo1cJJh%h zj<0*gyh@gd??6FeIDg37hlUJ%?_N(7ir{f*sNq?`z;?jZl)ev<0UeCm8Qsz`**_oh!jN z`@+?OmskRff7(orv2E~-cdX`ICU(Hti}}P(ofSuCU1(q_)@`^enYpSXOV!cxqX%=} z6y^1d3eu4`&p729mMxlgnRmeoC%@y*XN7LK8n?mpuE%V}#%0p(-CMUOOyA|aRdLG2 z4=bgomh5@edTGzs@2+*3FLm_4HRxBqwmsm$_mdKI;Vst0LO3rvH$=8 literal 0 HcmV?d00001 diff --git a/assets/players/black_wing.png.import b/assets/players/black_wing.png.import new file mode 100644 index 0000000..c0b1826 --- /dev/null +++ b/assets/players/black_wing.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b4y4pyxkutl0b" +path="res://.godot/imported/black_wing.png-92e0eea42bb64faaaea22d6eddb0f43b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/players/black_wing.png" +dest_files=["res://.godot/imported/black_wing.png-92e0eea42bb64faaaea22d6eddb0f43b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/players/blue_big.png b/assets/players/blue_big.png new file mode 100644 index 0000000000000000000000000000000000000000..87cae3a3659bdd5a785f02dbbbf8bb1f2b021c4f GIT binary patch literal 617 zcmV-v0+#)WP)zpw}CMt{G~M9i-eEd!-tGsu^#T9i`qIg|Z!)%^jT49FxTzpVl3r z*c^|*8;7+WquUv4j~aKM8;iObbDABS&>WY`9hb`)Xo?=E;V#1D$N&HU4|GyaQ{S&Y ze_v0J&u<^U51;PJtSsRsW zwR%EWDJQ_)!{*y9_e^|LyLmwQi0d;!aSywUqs8Li9xhq51p1;F^&3w|N*-00000NkvXXu0mjf D_$~t> literal 0 HcmV?d00001 diff --git a/assets/players/blue_big.png.import b/assets/players/blue_big.png.import new file mode 100644 index 0000000..b0f4e7e --- /dev/null +++ b/assets/players/blue_big.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://df7cknvvngtij" +path="res://.godot/imported/blue_big.png-1a99892b0c0694bf7751d65bdafc6751.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/players/blue_big.png" +dest_files=["res://.godot/imported/blue_big.png-1a99892b0c0694bf7751d65bdafc6751.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/players/blue_guard.png b/assets/players/blue_guard.png new file mode 100644 index 0000000000000000000000000000000000000000..fa7a83903e506098883925fcddc3235d2f548408 GIT binary patch literal 546 zcmV+-0^R+IP)t+s)+nR`3#*+}eQ4$Th%`qU*)u?N z_+g>|1mL#;!K2J3;^H}AD=|fGp8!M(^hIY=^gt@eK!Ut6Q<@wJ72rT;KGOl52E;&X zW@&+#1SIIqBE7E(4XqNR2QWC&X zFM%421PF;@USB{8+AQoAcey3cg53r{sqf{w1brIqIyjz&n^Nj}8%{_6Lhu18YIPo_ zoL_3+A@~4>TASDF+gN^6whQ7Zh{rT)t=}KhCc=)? k+4Qw7GseO%&;JHK0Q7hq7f9EWFaQ7m07*qoM6N<$f;*1iZU6uP literal 0 HcmV?d00001 diff --git a/assets/players/blue_guard.png.import b/assets/players/blue_guard.png.import new file mode 100644 index 0000000..1dab28c --- /dev/null +++ b/assets/players/blue_guard.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://46vgqxp2imyw" +path="res://.godot/imported/blue_guard.png-fe4d15d954f5aaeee4c3a6df594e6c24.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/players/blue_guard.png" +dest_files=["res://.godot/imported/blue_guard.png-fe4d15d954f5aaeee4c3a6df594e6c24.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/players/blue_wing.png b/assets/players/blue_wing.png new file mode 100644 index 0000000000000000000000000000000000000000..347b7d577f20ecec7cd47639a95e0cfca83d165d GIT binary patch literal 687 zcmV;g0#N;lP)ohqW4apB$IV9FxTxgRmKIlpUYe9i!VFm&+MwiXNxooeX{!0000GbW%=J zpHF`e&tD&}k8kfk-!H!a7Sb;%0005HNklb`#3`I=?Byr-wL_;5+;^R^EM3VKn_o)Y0M`X5*A80QuKE$c68Mx*e1P(SFgdnLLO`y# z0Lw>KH5XMGpqPLq!e*cla?JwV;ZP3&^#K6~U`gCJBh?W+2EfH*Gf@hg0SJ&!0X4t? zNYqn6bD#@B1Atk4lhK!OH2{@@_lKA0pqK&@EExcWXqrO_m($9@^av@W#R04(l5ql9 z@Z7k<@C-#eQb0rZgbMoe{w4jWkzG zwUVHmc%%VG%8}Oqkd3TuW?{A%dr`~j2GCR?r{iL6jOFCZnLTTUnQITI-y2^_P@D*>p2N)^fKKIWb9={Lvzx(vu{*C_u@B#Tj VUcoh+`62)S002ovPDHLkV1ixTBaZ+8 literal 0 HcmV?d00001 diff --git a/assets/players/blue_wing.png.import b/assets/players/blue_wing.png.import new file mode 100644 index 0000000..e5aa3e5 --- /dev/null +++ b/assets/players/blue_wing.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dl54l4wvub6ro" +path="res://.godot/imported/blue_wing.png-5b73293b9711f5422e2758b1992d1ca4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/players/blue_wing.png" +dest_files=["res://.godot/imported/blue_wing.png-5b73293b9711f5422e2758b1992d1ca4.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/players/green_wing.png b/assets/players/green_wing.png new file mode 100644 index 0000000000000000000000000000000000000000..9efe7ffa8a8f8e873924ca549a109fd7bad9f0ba GIT binary patch literal 694 zcmV;n0!jUeP)crGfjpyO@%W| zf-y{lGynhqYrjTXojqHiJaWoQPlz>ezD;GTMR34Pa?DF$q(X4NO>x6aSerXkk~mL^ zHDawmam7q>$xCFiLSU&sR+l+xyG3rqNN2V~U8Fuyjy7<}NpQVRO@%ab%}WuACeZ)@ z01$LiPE(&xe-F=JAFq#Z??2x!zW^4}FDU>30lP^=K~z}7?U&hd!Y~X)4T06=>zv&XDmxsvc>9`5;wqg0n)L8MwTOg1TX|XB_tmpeISgF zjp7h+mt271BhBiIvJ{X^zye|2QwY~&0p{3MeL%HCzyTO8?&^W6Jv;`$!9zV#0*e6% zkdFZszyP?Y#(;W97lH-=llVHNFX3tcDh2NkFVRLZ2EPm77%nuPwvj^%A~) zY>MEmcvXnn+~3|?b+^bGC^MAxqz`5cz+&3UIj0ll^Z@M<^ydL#g|-)LZGew#3drE= z0>}(hIS6tl7Zji%{YU|{55AHiR-7K6Rs#j#s@XUvst)rw=tdsen-MxdE+*^FV(VnCRkbl$`Hs5Afo z01$LiPE(&xe-F=JAFq#Z??2x!zW^4}FDU>30lP^=K~z}7?U&hd!Y~X)4T06=>zv&XDmxsvc>9`5;wqg0n)L8MwTOg1TX|XB_tmpeISgF zjp7h+mt271BhBiIvJ{X^zye|2QwY~&0p{3MeL%HCzyTO8?&^W6Jv;`$!9zV#0*e6% zkdFZszyP?Y#(;W97lH-=llVHNFX3tcDh2NkFVRLZ2EPm77%nuPwvj^%A~) zY>MEmcvXnn+~3|?b+^bGC^MAxqz`5cz+&3UIj0ll^Z@M<^ydL#g|-)LZGew#3drE= z0>}(hIS6tl7Zji%{YU|{55AHiR-7K6Rs#j#s@GoJtj) zOc0z)6aWAK*<=>9RTa2a71d%FpG+0xXcyOG7v^afyH^(0V;9?H7qe6qs!$c6Oclml z7T#tT<7gMlUKYYy7Ozqj)nXRjW){$37QI*%rA`&&Xcp9B7o1BK=xP^%BYF=2000nl zQchE!Pk#^3UmvfJZ|^_fFTVg5(l03h00Fv5L_t(o!|j*Za)U4oMV*qcn{;my0x1x- zT>k(23L(?7$Q`Slbo!9{t}~XUE7@ZGONkrcx&Y}|K`YCVKLQv6pAwP}kUkJ5$5u%Q zxGOHe@R8-sMR^8DCSZxM87PEnvH*A3*F!+PN5BCXF7BI=>IfbK;NY>DD22rU1SqC} z8ejli)KfsSrwc&?fLVN#(U)*F0F{FGhnHxhoB|Ro832iBnnMML)5^j02q|2H12A1A z;{>qaxp9Tz8OnC1FzqZ|Y)((RL#y5Pls+r0qy_|d*q*+$QMp+K@VYV_UN7Ohm$nGr znpcIm%l+-WQ-6!BfwDl=%=%!#04(RNTyQ#3&JWNXL4O_)R_J=c)&}^<=YSl(E`ZEH zm4hH>a!CP7(vK9tn%AJOgQW?eX7YI^xq1MTzJl%&Of7(ij0TW%Sx}2Lr2#4Kv;cN* zq`6|Ml?3I)BMmrGj=TndY-D9K3%$kIi&{=MfT9Wo9bafx!B%_0)^sCnh7_7^oGjMC zf?eqj)s|4j literal 0 HcmV?d00001 diff --git a/assets/players/red_wing.png.import b/assets/players/red_wing.png.import new file mode 100644 index 0000000..efd4d74 --- /dev/null +++ b/assets/players/red_wing.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cdisx65vqrn21" +path="res://.godot/imported/red_wing.png-0fd782160f7dc9ea011841399432ef89.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/players/red_wing.png" +dest_files=["res://.godot/imported/red_wing.png-0fd782160f7dc9ea011841399432ef89.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/players/white_wing.png b/assets/players/white_wing.png new file mode 100644 index 0000000000000000000000000000000000000000..e1f0a65106ba8e2e1fa19b554fadfa53ddb5c2d7 GIT binary patch literal 675 zcmV;U0$lxxP)j%*@x<*Xil$^78W0(b4GW=*h{+!NI}U*x2pu?cChlxw*O2)YS0s z@WsW&(J29y}iBf@9*d5=eD-C^Yin_FtM!w000nlQchE!Pk#^3UmvfJ zZ|^_fFTVg5(l03h00Fm2L_t(o!|j*Za)U4oMV*j@)udZO2vCAqF8}|9g^+1ki~XVhV$z!T)lTi@b|nb#C`5>@4bdwWDS%R zs&>%_D+XY*Y~_N}iE?>>{s`vtfUrW}3yv`$fLa0+0#g8)fi4F@&g7B;l%yXifW552 zPzT!(K+WXqO!CYCJNgRxOV}9!eB?BMoXdh*tQif+ur>lXgOQessa6t{6E8I2LOJpt z0J4#_%`D6o;~;7|Jph_26m)!HSOrJ#1;@~hv>7rOx^cExM+TI$?3m2(d?&-_LkthM zFq~S*u%?UQ=W&J)2SK*~Kf|D%DwhScK%gYZFL=IxJ^%T5`Stzz@9ppF?`IIZq_4@q zz_{Df#W5t}@Z0Ip#Z3-8ts6DIAH5eXdX%Zi_V@q)agKAeCcMqLwed3h`RaW)bBZR# zCja!7G(S+vcxdb4ux;9PEC#$aCk1L6I2tr8w|FTXh%R7EYtWgl{!~(7MuVkNOH}k__VgMN34?m<1L|FlRL|ehBDiEb+-on zhgW5q{SKR5`uWq64U?n<9@X8Qvo&aEBJ)He~8^^y%;jKGP|NXl-xW0Q$ zqmi?!daXe+!?Vj_dKPmvma)I+TVT)6q3scQ=pq}-iRBG4jd~4d9Hurqo_jKhY046L z%?8`Gj`8f#!VYJjJofqYg+Z*A^{#3}6ob4Zufp?9j=I;Tur1kfnaN`B#ARJ8!;Cc4 z1ppMQJ*hdjgl Y3-)QtSokh|21YT1r>mdKI;Vst00uWK<^TWy literal 0 HcmV?d00001 diff --git a/assets/players/yellow_wing.png.import b/assets/players/yellow_wing.png.import new file mode 100644 index 0000000..bd4c03a --- /dev/null +++ b/assets/players/yellow_wing.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://70xbku4n7tn" +path="res://.godot/imported/yellow_wing.png-92a70e191e61e810fb2fefe674d8a904.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/players/yellow_wing.png" +dest_files=["res://.godot/imported/yellow_wing.png-92a70e191e61e810fb2fefe674d8a904.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/ball.tscn b/ball.tscn new file mode 100644 index 0000000..c83e2c5 --- /dev/null +++ b/ball.tscn @@ -0,0 +1,10 @@ +[gd_scene format=3 uid="uid://cbqaj6trvqat0"] + +[ext_resource type="Script" uid="uid://3c5arbqbgr2l" path="res://scripts/ball.gd" id="1_x8fbi"] +[ext_resource type="Texture2D" uid="uid://ot6gbcnca0lu" path="res://assets/ball/ball_basket2.png" id="2_41u45"] + +[node name="Ball" type="Node2D" unique_id=1245529605] +script = ExtResource("1_x8fbi") + +[node name="BallSprite" type="Sprite2D" parent="." unique_id=982207895] +texture = ExtResource("2_41u45") diff --git a/court.tscn b/court.tscn new file mode 100644 index 0000000..3bac917 --- /dev/null +++ b/court.tscn @@ -0,0 +1,20 @@ +[gd_scene format=3 uid="uid://cxbu51aedxg3c"] + +[ext_resource type="Script" uid="uid://bpyti0u3ig8rs" path="res://scripts/court.gd" id="1_ih5bv"] +[ext_resource type="Texture2D" uid="uid://bfm7wosi1pkri" path="res://assets/court/half-court-reference.png" id="1_klx28"] + +[sub_resource type="NavigationPolygon" id="NavigationPolygon_klx28"] +vertices = PackedVector2Array(916, 890, 164, 890, 164, 190, 916, 190) +polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)]) +outlines = Array[PackedVector2Array]([PackedVector2Array(154, 180, 926, 180, 926, 900, 154, 900)]) + +[node name="Court" type="Node2D" unique_id=1870443472] +script = ExtResource("1_ih5bv") + +[node name="CourtSprite" type="Sprite2D" parent="." unique_id=401540171] +modulate = Color(1, 1, 1, 0.4627451) +texture = ExtResource("1_klx28") +centered = false + +[node name="NavigationRegion2D" type="NavigationRegion2D" parent="." unique_id=1617904918] +navigation_polygon = SubResource("NavigationPolygon_klx28") diff --git a/game.tscn b/game.tscn new file mode 100644 index 0000000..75b11e0 --- /dev/null +++ b/game.tscn @@ -0,0 +1,25 @@ +[gd_scene format=3 uid="uid://bhn3vm462n1rv"] + +[ext_resource type="Script" uid="uid://0xvlu81d8a01" path="res://scripts/game_manager.gd" id="1_7jktm"] +[ext_resource type="PackedScene" uid="uid://cxbu51aedxg3c" path="res://court.tscn" id="1_e2o6t"] +[ext_resource type="PackedScene" uid="uid://boqs7k6ia532h" path="res://player.tscn" id="2_feb5d"] +[ext_resource type="Texture2D" uid="uid://cdisx65vqrn21" path="res://assets/players/red_wing.png" id="3_fc0e3"] +[ext_resource type="Script" uid="uid://bbey5ttwv5utd" path="res://scripts/player_attributes.gd" id="4_7jktm"] +[ext_resource type="PackedScene" uid="uid://cbqaj6trvqat0" path="res://ball.tscn" id="6_ryrav"] + +[sub_resource type="Resource" id="Resource_ryrav"] +script = ExtResource("4_7jktm") +player_texture = ExtResource("3_fc0e3") +metadata/_custom_type_script = "uid://bbey5ttwv5utd" + +[node name="Game" type="Node2D" unique_id=980666470] +script = ExtResource("1_7jktm") + +[node name="Court" parent="." unique_id=1870443472 instance=ExtResource("1_e2o6t")] + +[node name="Player" parent="." unique_id=1267043713 instance=ExtResource("2_feb5d")] +position = Vector2(548, 648) +attributes = SubResource("Resource_ryrav") + +[node name="Ball" parent="." unique_id=1245529605 instance=ExtResource("6_ryrav")] +position = Vector2(559, 656) diff --git a/player.tscn b/player.tscn new file mode 100644 index 0000000..a22c8c1 --- /dev/null +++ b/player.tscn @@ -0,0 +1,14 @@ +[gd_scene format=3 uid="uid://boqs7k6ia532h"] + +[ext_resource type="Texture2D" uid="uid://46vgqxp2imyw" path="res://assets/players/blue_guard.png" id="1_4flbx"] +[ext_resource type="Script" uid="uid://bs8r5rqnt33rf" path="res://scripts/player.gd" id="1_onrkg"] + +[node name="Player" type="Node2D" unique_id=1267043713] +script = ExtResource("1_onrkg") + +[node name="PlayerSprite" type="Sprite2D" parent="." unique_id=1692351563] +texture = ExtResource("1_4flbx") + +[node name="PlayerNav" type="NavigationAgent2D" parent="." unique_id=1205813043] +avoidance_enabled = true +debug_enabled = true diff --git a/project.godot b/project.godot index 0d2d28d..70c5f9f 100644 --- a/project.godot +++ b/project.godot @@ -11,13 +11,20 @@ config_version=5 [application] config/name="basketball-tactics" +run/main_scene="uid://bhn3vm462n1rv" config/features=PackedStringArray("4.6", "Forward Plus") config/icon="res://icon.svg" +[display] + +window/size/viewport_width=1080 +window/size/viewport_height=1080 + [physics] 3d/physics_engine="Jolt Physics" [rendering] +textures/canvas_textures/default_texture_filter=0 rendering_device/driver.windows="d3d12" diff --git a/scripts/ball.gd b/scripts/ball.gd new file mode 100644 index 0000000..75bbfa7 --- /dev/null +++ b/scripts/ball.gd @@ -0,0 +1,3 @@ +@icon("res://assets/icons/ball.svg") +class_name Ball +extends Node2D diff --git a/scripts/ball.gd.uid b/scripts/ball.gd.uid new file mode 100644 index 0000000..12d2955 --- /dev/null +++ b/scripts/ball.gd.uid @@ -0,0 +1 @@ +uid://3c5arbqbgr2l diff --git a/scripts/court.gd b/scripts/court.gd new file mode 100644 index 0000000..6dd5e44 --- /dev/null +++ b/scripts/court.gd @@ -0,0 +1,2 @@ +class_name Court +extends Node2D diff --git a/scripts/court.gd.uid b/scripts/court.gd.uid new file mode 100644 index 0000000..8d0fb0c --- /dev/null +++ b/scripts/court.gd.uid @@ -0,0 +1 @@ +uid://bpyti0u3ig8rs diff --git a/scripts/game_manager.gd b/scripts/game_manager.gd new file mode 100644 index 0000000..7209894 --- /dev/null +++ b/scripts/game_manager.gd @@ -0,0 +1,6 @@ +class_name GameManager +extends Node2D + +@export var ball: Ball +@export var court: Court +@export var players: Array[Player] diff --git a/scripts/game_manager.gd.uid b/scripts/game_manager.gd.uid new file mode 100644 index 0000000..563f763 --- /dev/null +++ b/scripts/game_manager.gd.uid @@ -0,0 +1 @@ +uid://0xvlu81d8a01 diff --git a/scripts/player.gd b/scripts/player.gd new file mode 100644 index 0000000..f43f182 --- /dev/null +++ b/scripts/player.gd @@ -0,0 +1,13 @@ +class_name Player +extends Node2D + +## export variables +@export var attributes: PlayerAttributes ## The attributes resource that defines the player's abilities, vitals etc. + +## 'onready' variables +@onready var player_nav: NavigationAgent2D = $PlayerNav +@onready var player_sprite: Sprite2D = $PlayerSprite + +func _ready() -> void: + if attributes: + player_sprite.texture = attributes.player_texture diff --git a/scripts/player.gd.uid b/scripts/player.gd.uid new file mode 100644 index 0000000..4d3f957 --- /dev/null +++ b/scripts/player.gd.uid @@ -0,0 +1 @@ +uid://bs8r5rqnt33rf diff --git a/scripts/player_attributes.gd b/scripts/player_attributes.gd new file mode 100644 index 0000000..bc3cad6 --- /dev/null +++ b/scripts/player_attributes.gd @@ -0,0 +1,18 @@ +class_name PlayerAttributes +extends Resource + +@export_category("Basics") +@export var player_name: String +@export_range(0.0, 99.0, 1.0, "prefer_slider") var player_number: int +@export var player_position: PlayerPosition +@export_category("Abilities") +@export var speed: float +@export_category("Texture") +@export var player_texture: Texture2D + +## The court positions available +enum PlayerPosition { + Guard, + Big, + Wing +} diff --git a/scripts/player_attributes.gd.uid b/scripts/player_attributes.gd.uid new file mode 100644 index 0000000..b1636b7 --- /dev/null +++ b/scripts/player_attributes.gd.uid @@ -0,0 +1 @@ +uid://bbey5ttwv5utd