From decd182b3e0fc8970e1c15ab7d98d03c642c0027 Mon Sep 17 00:00:00 2001 From: Kellan KOZUME Date: Sat, 25 Apr 2026 12:54:33 -0400 Subject: [PATCH] feat(atelier): complete zone 2 level design and game systems - Add atelier tilemap (14x14 tiles) with dark atmosphere - Add Journal D-891 interactable with Matteo Corda narrative - Add pushable frozen robot (reuses PushableBox logic) - Add PassageTrigger to reveal hidden path via TileMapLayer - Add RepairStation for SCRAP-09 self-repair mini-game - Add scrap09 puzzle in RepairMinigame with valid connections - Add door to cour unlocked by scrap09_repaired flag --- assets/sprites/atelier_door_locked.png | Bin 0 -> 1498 bytes assets/sprites/atelier_door_locked.png.import | 40 +++ assets/sprites/atelier_door_open.png | Bin 0 -> 902 bytes assets/sprites/atelier_door_open.png.import | 40 +++ assets/sprites/circuit.png | Bin 0 -> 732 bytes assets/sprites/circuit.png.import | 40 +++ assets/sprites/damaged_robot.png | Bin 0 -> 1121 bytes assets/sprites/damaged_robot.png.import | 40 +++ assets/sprites/generator.png | Bin 0 -> 2992 bytes assets/sprites/generator.png.import | 40 +++ assets/sprites/iris_03_active.png | Bin 0 -> 1454 bytes assets/sprites/iris_03_active.png.import | 40 +++ assets/sprites/iris_03_inactive.png | Bin 0 -> 1398 bytes assets/sprites/iris_03_inactive.png.import | 40 +++ assets/sprites/panneau.png | Bin 0 -> 1660 bytes assets/sprites/panneau.png.import | 40 +++ assets/sprites/repair.png | Bin 0 -> 1029 bytes assets/sprites/repair.png.import | 40 +++ assets/sprites/scrap_09_down.png | Bin 0 -> 1181 bytes assets/sprites/scrap_09_down.png.import | 40 +++ assets/sprites/scrap_09_side.png | Bin 0 -> 641 bytes assets/sprites/scrap_09_side.png.import | 40 +++ assets/sprites/scrap_09_up.png | Bin 0 -> 949 bytes assets/sprites/scrap_09_up.png.import | 40 +++ assets/sprites/vrac_07_blocked.png | Bin 0 -> 7067 bytes assets/sprites/vrac_07_blocked.png.import | 40 +++ assets/sprites/vrac_07_repaired.png | Bin 0 -> 7068 bytes assets/sprites/vrac_07_repaired.png.import | 40 +++ autoloads/game_state.gd | 2 +- entities/items/circuit/circuit.gd | 11 + entities/items/circuit/circuit.gd.uid | 1 + entities/items/circuit/circuit.tscn | 19 ++ entities/items/item.gd | 1 + entities/items/pushable box/pushable_box.gd | 16 +- entities/items/pushable box/pushable_box.tscn | 11 + .../items/pushable robot/pushable_robot.gd | 27 ++ .../pushable robot/pushable_robot.gd.uid | 1 + .../items/pushable robot/pushable_robot.tscn | 31 +++ entities/npcs/vrac7/vrac7.gd | 15 +- entities/npcs/vrac7/vrac7.tscn | 35 ++- entities/player/player.gd | 2 +- entities/player/player.tscn | 2 +- levels/atelier/atelier.tscn | 237 +++++++++++++++++- levels/atelier/generator.tscn | 15 ++ levels/atelier/panel.gd | 43 ++++ levels/atelier/panel.gd.uid | 1 + levels/atelier/panel.tscn | 29 +++ levels/atelier/passage_trigger.gd | 48 ++++ levels/atelier/passage_trigger.gd.uid | 1 + levels/atelier/passage_trigger.tscn | 11 + levels/atelier/repair_banch.tscn | 15 ++ levels/atelier/repair_station.gd | 86 +++++++ levels/atelier/repair_station.gd.uid | 1 + levels/atelier/repair_station.tscn | 12 + levels/entrepot/entrepot.tscn | 24 +- project.godot | 2 +- ui/hud.gd | 1 - ui/hud.tscn | 16 +- ui/minigame/repair_minigame.gd | 6 +- 59 files changed, 1253 insertions(+), 29 deletions(-) create mode 100755 assets/sprites/atelier_door_locked.png create mode 100644 assets/sprites/atelier_door_locked.png.import create mode 100755 assets/sprites/atelier_door_open.png create mode 100644 assets/sprites/atelier_door_open.png.import create mode 100755 assets/sprites/circuit.png create mode 100644 assets/sprites/circuit.png.import create mode 100755 assets/sprites/damaged_robot.png create mode 100644 assets/sprites/damaged_robot.png.import create mode 100755 assets/sprites/generator.png create mode 100644 assets/sprites/generator.png.import create mode 100755 assets/sprites/iris_03_active.png create mode 100644 assets/sprites/iris_03_active.png.import create mode 100755 assets/sprites/iris_03_inactive.png create mode 100644 assets/sprites/iris_03_inactive.png.import create mode 100755 assets/sprites/panneau.png create mode 100644 assets/sprites/panneau.png.import create mode 100755 assets/sprites/repair.png create mode 100644 assets/sprites/repair.png.import create mode 100755 assets/sprites/scrap_09_down.png create mode 100644 assets/sprites/scrap_09_down.png.import create mode 100755 assets/sprites/scrap_09_side.png create mode 100644 assets/sprites/scrap_09_side.png.import create mode 100755 assets/sprites/scrap_09_up.png create mode 100644 assets/sprites/scrap_09_up.png.import create mode 100755 assets/sprites/vrac_07_blocked.png create mode 100644 assets/sprites/vrac_07_blocked.png.import create mode 100755 assets/sprites/vrac_07_repaired.png create mode 100644 assets/sprites/vrac_07_repaired.png.import create mode 100644 entities/items/circuit/circuit.gd create mode 100644 entities/items/circuit/circuit.gd.uid create mode 100644 entities/items/circuit/circuit.tscn create mode 100644 entities/items/pushable robot/pushable_robot.gd create mode 100644 entities/items/pushable robot/pushable_robot.gd.uid create mode 100644 entities/items/pushable robot/pushable_robot.tscn create mode 100644 levels/atelier/generator.tscn create mode 100644 levels/atelier/panel.gd create mode 100644 levels/atelier/panel.gd.uid create mode 100644 levels/atelier/panel.tscn create mode 100644 levels/atelier/passage_trigger.gd create mode 100644 levels/atelier/passage_trigger.gd.uid create mode 100644 levels/atelier/passage_trigger.tscn create mode 100644 levels/atelier/repair_banch.tscn create mode 100644 levels/atelier/repair_station.gd create mode 100644 levels/atelier/repair_station.gd.uid create mode 100644 levels/atelier/repair_station.tscn diff --git a/assets/sprites/atelier_door_locked.png b/assets/sprites/atelier_door_locked.png new file mode 100755 index 0000000000000000000000000000000000000000..38caa830ed977874fb5f2c1b5fa80ce38af7330d GIT binary patch literal 1498 zcmV<01tt24P)1367{{lV(ty?`UQmphRy4aR-4vnt(iQ|=i5sB^`UUiZ_yOuCaO2XApdc74QWQ5u z-Nizanz*`YY+cxen*SVs)Bkzy%(?eQs{=RB`|He^nR9aF^qCj`Tsd((9d_LM^-emh zy=;$e?fjBnf9Jgt|JoN<3qFLLxp*#%FTa0zVSBedDlhW}^@QBUao1_#u0Lui{a5^) zfLcOZ772{aVeGNZQ*h8w3D@u4 zOV1X!YCpHAk^qZCTH1U**<9+ixmX(#10!-idjv9d+dEzoKq11|ZkJOjP%;H~+VyLA zHGz$5`$-E+KUzJMh&x^+xa_J4NFYZ;&a}P8(MmE-gY1}woPf`NbP7!;L@RjQUeSxN z^(3L!>wqVsYN*I@8McCZk_4zhkCPLi9Y7h$nLBhmI`tN-JGJR)9pfXOM|b+jqfa^6 zOT-0q$lI*$#16UK?S+rnk)pt90y*#B!Uqo{g2eWd5d0P`dvx#>;amwsqv&)N9qpa& zJq0e9g{x{Rmu{qI+4CgKwGVh89INVoQaOIAQ=r4hFQYLK#x3X@6$euXryE`p@I64! z?B@0E{zs6ZZCM>sl0Y6q1#R7k@LLjqA*f4)3>muBi04Ug>Je1BwN7y(!k3_mWet=B z^g`k<4cz10&~cI>sJ9(G>9lS{=#;HkJ0e+KIR8>H)P2sY_iYy^4%HcTML!KCp`Uy* zh$DK$OQ&{3Uk5193z_%vO7|iYFRJdxci-t{>6#T>`+BPjR6P{jU8?x01n7tq)&AOu zhfDW}b(&fewB7mmq5X8BEJ7(D6s}g{Kn{n7x1H+UMt+`LJ6UznOCV~zefC&+H;@x| z8g)fSd8F0dl@sed(>w)UIa0OKTOFODC&;5HoOK|aAzPnLzk^Jz0gP(UAFrBRJWr;j z;Y!sIRREA(2YDmt-2Zyd$)xb;mi&wK+RE$=loi7vB;STDC1fZHRtHY zDu?J^0=_zjj9Ri*QZ0S)dkG9Fx^r*ykj*@@W&#T0d%g$tWa3K*yC=crL$F&>islq;T~A{Jd3oKfM@2;c(eq;ku&$u5qc3( zCc2kETp$FaVnJ}6)#e_V7OC$g@E!INK+yV{fxHGi5Um%Sy92TM7=&(!@4>)5(DBs= zvN?|_3E|UYRXc#9Ac4L09?bEjr9ZMMJOz%yS!ck!4?xIzYbX22dv|O9<|*kk58fpY zK5Q~bLf@J8QvW8b|B_KXaO&T7Qo5hR-#ZlRF9vhYhrFoP)&Kwi07*qoM6N<$f-PIy AvH$=8 literal 0 HcmV?d00001 diff --git a/assets/sprites/atelier_door_locked.png.import b/assets/sprites/atelier_door_locked.png.import new file mode 100644 index 0000000..e878e6d --- /dev/null +++ b/assets/sprites/atelier_door_locked.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://xi72kl8lx3te" +path="res://.godot/imported/atelier_door_locked.png-a815d011e59326449506a782fb269fd6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/atelier_door_locked.png" +dest_files=["res://.godot/imported/atelier_door_locked.png-a815d011e59326449506a782fb269fd6.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/sprites/atelier_door_open.png b/assets/sprites/atelier_door_open.png new file mode 100755 index 0000000000000000000000000000000000000000..ed955cb12dd835695023c4ece1485362bfbebf14 GIT binary patch literal 902 zcmV;119|+3P)3Z+4ckl+VEO35$q0pS-A4H6{<5`lnHr$`sA zlnv~r3M@)R6EYK>*|G1nxewd1l=w9>=Xmbep1ZfRw0!sU%H>O@Y5D!<#5C0>-KoLw z$UJ`jQt)>_??^k;SYBP>>CM-hwe_{`6j`YXstIWw-PSU`wwCYugmR5D0dfi4QU@41 zP4uD5kKpTvkBobN?NJ?k13lDr^r6E9fQmu%>()*5FFXc1bPmu~43&lJ*NjglGzXhL z85(B-5KLLmOrMzJzr_QOV_Qt+L+WKx>EG94>k6EtQ z>uLEY?H`8&wlg=sAohSq16hJ_Wo9Jc)X)pfLSW~3)*_%iAm@N)Wl6W}?Dr4Y!g<{_ z0H>RfiV)yljHGv}#fuVB<_CPB4zgWL*-n`oe z?pZwvIXr^Nh!Tt0ymfQYJi9Y(9zM7yX371?qJ#i~L!=Tl$lKcELLdzrK z1G?=CBY?-i1adupclFe_JP@16-sox>rksXC0Pa9ts?~CEY4%sCg)a7E>1>2S_a<~r zc5x!P6S?|U4CDgUIN1pJ0x}x`y=rP>$1wqPT%j2K&@oK*lO`kt;ATWLri&0raR!7k zB9IUQ7>He$Wkj@CJa!>KFC_Yf0QZB{M4^3)G9oJUVuGYp<8<-T zNhczRw1*8_(5G+FCt=;Fv$XgE0eB=T(wQ;bhHyW;U=hG%Z19jhi$F-Q%^a@eGVd~h z+$+~Ph@1m$Rv6Ny)zf`2=Sk0!KZ5^VMoa(^i8{2R*mKD};1YHhnVo=3$RePl(-mym z#}@SITLgSUZN@7FVHB;N&;lF^_0BNeD5CjcN{Z4pTE7<|AOw+Ofa z0-=<(MIa@R&$bZAxq6Ky1bhr*k0Z`d%TWxV!4R!DwfJ>B-FO}zL1e! cof#9>KhnBDhu^b(djJ3c07*qoM6N<$f>_g{v;Y7A literal 0 HcmV?d00001 diff --git a/assets/sprites/atelier_door_open.png.import b/assets/sprites/atelier_door_open.png.import new file mode 100644 index 0000000..48f090c --- /dev/null +++ b/assets/sprites/atelier_door_open.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bh0pnles5j25o" +path="res://.godot/imported/atelier_door_open.png-d42b58d157d3cd896ff6be144ecbcc76.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/atelier_door_open.png" +dest_files=["res://.godot/imported/atelier_door_open.png-d42b58d157d3cd896ff6be144ecbcc76.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/sprites/circuit.png b/assets/sprites/circuit.png new file mode 100755 index 0000000000000000000000000000000000000000..9e1848b3614540e1c64c784fcc7aa5e78b056271 GIT binary patch literal 732 zcmV<20wev2P)1gh5S~~TAVso_Ns7c4iU3zc5u%|0Qqb`fNEEySPry4+An^Rw*n`Pj| zv#yXtqj$@hj_(d~ml&PKdncES6qn5yTSoO1+0V@bnesny}hEBF5N%N5Rp;fwAVAGC;#)|)wf*GlPmzLdl|uQfFz@@t_AkCL~KKDA#67%X$>qQtf63*9+Sj{UlOr{|K;}qaEqAe>?r~^A#C2vqGbx z??W7p`K?L7H{i1m2;I0nkYW0k#8%t7A#!@QBP=@l#Iz=XD#kIO^VmceAwm6u!i>4s zkqMrBw2f&^0)CJfkXbfWc)=3D*t(K2$h^y=@fNz0F}T&@-Ep;k+x@KZS-Kztn4!Ls z%>v=U12P&=ScfG8lb4nc6pKl~sA7@N`vopp#G9QghcFy7io=-_1pp#N{5=YIjLRxs_`@?Jgw O0000%Pm3bnYDb6Yc735;ZNnX#!t2>t}*qTr@oW%fg2_OPAs2+Z!c zb^g7sK@&Fsb&3`Vt3e$y^d_+tFw4$Lz>%*Vh!j`PmY!6fJ`7G>l71_AAj7Gjs%<~k z3eW*J94;AX+=#pvpucC{(@Zl3Sf#h(cyA0zV4UsFkqL~AL2Lz(HL^6%pWwWfjTo`R z%BAyl9Ym5|;aCE(5&cD0Ac+W?57i(rk0UN_;t`nlJAhdQ1bXxGrB`;*hQrzOtg{27 zQdB;EWygVWi=3_6|y5)d z$@VRXBTz7J%K`cY-+3&UBrpd!h_L)v)ANsfH?}pL##Y{k2#dBJ0EyrmZhoBLL}3*; zXVxW>>wG_Jy@tIp;^mRB5zv_YPheJrV3X1GzubA*YM#f)uyh-a9+djJWCD@_w*F7MEqbMt!hK9TN+))BZBkOfY?2ODgRkCa-1Z8j-_ykPfxVTs12oPX0Iz$2vMs_B+Emnv?)Cfm1 n8Hr{FpD6ehKM-PatV{m@{Bh_UXl9!`00000NkvXXu0mjfTfPoE literal 0 HcmV?d00001 diff --git a/assets/sprites/damaged_robot.png.import b/assets/sprites/damaged_robot.png.import new file mode 100644 index 0000000..617cf16 --- /dev/null +++ b/assets/sprites/damaged_robot.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c0uhk72pn2w7" +path="res://.godot/imported/damaged_robot.png-f48240a0e5f6bb3bc1311c72223f064b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/damaged_robot.png" +dest_files=["res://.godot/imported/damaged_robot.png-f48240a0e5f6bb3bc1311c72223f064b.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/sprites/generator.png b/assets/sprites/generator.png new file mode 100755 index 0000000000000000000000000000000000000000..c1ef278220dbbde7165ee24f74c4787ba3b21701 GIT binary patch literal 2992 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 literal 0 HcmV?d00001 diff --git a/assets/sprites/repair.png.import b/assets/sprites/repair.png.import new file mode 100644 index 0000000..417211a --- /dev/null +++ b/assets/sprites/repair.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bpoxw3tuggoa4" +path="res://.godot/imported/repair.png-3bc6a2a62772965c028ba57ae0bd381f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/repair.png" +dest_files=["res://.godot/imported/repair.png-3bc6a2a62772965c028ba57ae0bd381f.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/sprites/scrap_09_down.png b/assets/sprites/scrap_09_down.png new file mode 100755 index 0000000000000000000000000000000000000000..012cde96b2b277af8d90216a0ddfd1dbd3d79aec GIT binary patch literal 1181 zcmV;O1Y-M%P)Kiq!X=D2wDjK1B#XCKOk5{ut*gYn*^I!r;1vn zunAElDK3JEiXn&1xovI||k)Mzg>N&tJX@8vld4cfek7yul4(@M~)yf)X%2eO1ID;aE_VLuf1!Foc5^ z6mpsYLFpVqVj4__-qYBibBB3%E~arE-^+S04!fTb15hZ8#|wa+CyW}2tWtz z(`QA${}-!X`PkSA(fhgWrQ<6cod5`a_t$Sn`o`)H@oDp8?Y^Agp^q|Otcx9&0D0Y|H@=1W7lWCb zx5e_CMFVfxs`4?IyLVq3RyRc;-53g_5R?Tfm8>} z+!-LugU-Ud5R;QrXty*sr#%&N^-($WVfv>sK4lgGwu8>**KbzexZ#xvxcW?a^kKtb z%2(A{1XLNN{qQZna_+L2I5|O^E6e+T_QlTk9U=OaqKyQ+Hx1>jY^{MU*$x{Oo&@0_ zG(I-Y0(sCs&<7zn36c#~`!WoB$HSfh*RJ2tzE|JB!*T&wgp-^O(t-i8)XLceIIOp_ zk&>T8hm3cZ8hstSw*iYn3Q^lOTH}JQZ7T{iZr_ z8OxIQr;2+8EDgfBq+m*=h7AGq;{-B;kH1{3=GTb)--z88QJOEG+6uD7>og5Pc zggBFoSM$8l-bsanfi2XRi*-U^Yv^#k8}n$3JjvQWp&jZN6> zF4TRO0Iqj)RA$wh#1Snx3fN%tWy9ul?K1<=5Dh*zIw=&~mlxoo!amdiz6n9)zASxA_b}ZXOG*uSGy;qPfjC`Us$>L3Wzk6_Hc` zr~#^~>eXpFo%Z&J?i~FVFaV)LD!2J80&??MXnidLLKDqxK8t|dJQiACY9*+Ze|dY? z&EoR>tkY&Sk^q45i+S0x5wa8z=m5m{#p%2Q01for-Cl3WV+!a1U<{0RUy306_*})b z)jKyc3ry}Gp1ewEVLOKMlQ`C80;q?CcROb2A1IpLUe8Pbdnp+EOLPD@>3v%PvJ_b$ zHefwJwg5uAUZ=q3j%WFZOvdOh#(bt{0eD$bp*9Q|AVmbw0f^CV9grdgLYHI!u((?b zK*ql4halU)UF(e=K$0!sONA*8Ktu#AMK4k$2GNwZ(VuPLrwdZm2 z>(gKNt!>^Mm=WzyQwfUq@lGHYWbW^T(iihi-2&PW?Rm&G3_ULPGjj_}w2=sR{SiZb zZ;H|v1jS5Z*(12MVOi3s59QBq-9*P;p92L`y*d1tkx_1EfKM7KIj(Dh*8vkkU{fpyebA zo?_W=VO18M_GABA{L1 z?f0*rv&Mh--UHxe=ev`YT{ORe3tk4j&69HM3RfJnvST#I0C{S>GI6v?X@fo^>UOj!iwbr+Wu z*;XPK=t3lYsV+%c0h}A(>yvlwlcR^t`;X@(g0`5(NBiofY{8)Wc)Jy>oo#39v} zW(uVG*l2sz%GpKan`?F#I6T-Z67>I@ih0ug-EWMtT2clO}nO#|8=La^=8gF}g_bG+VeyHSz!j9lD>QkKo{3J$Olk|q*Y2TK8vGtIE@X0yE;z>KT0HL6zgIGH`j_SL2Zqut% za_qzV2Tp%XLy1K&#_z`1Q~@^TQ``^{zG|mX@NIDttG^!q{_{5l*RjPKV6NB>zGJM| z)ijHscYEtdLKI2T!!b)!FD^$i+hsC`)HT2xJc!_jith1c2HJBzPVfN7c4@Z7Bn~NG z%m(jEYuc_vy0-khu2Df8fohA6-%-mN$z9PBvxlDY=S@w2c04*^1p651b`zag8V zBBuzj82icF^siW82yp5{BB5MGa?}HpoY_2=d_h z7Y+t5|6wBQU?|&UT|_~?$p4w?=iI~)e^ny@A(3;c2TSbDV|Vu$o1lZMwS+_%Fmt=6 z2;iaxTKK&^VA90cgvL&3PhA71_}a*^$#X_T5jzb&iE*gXJf^M~8?u$9D*XX6RRAIq zD+Jl+D%F7#fm{L*9?H^UOb(ipEg=BMr+2L=S%W1qwX6zM1*!s7fvP}Npej%m=oI(| X{)-+qg4@d&00000NkvXXu0mjfvCPLt literal 0 HcmV?d00001 diff --git a/assets/sprites/scrap_09_up.png.import b/assets/sprites/scrap_09_up.png.import new file mode 100644 index 0000000..21d5ccb --- /dev/null +++ b/assets/sprites/scrap_09_up.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bdmmv60f2wxms" +path="res://.godot/imported/scrap_09_up.png-ec62d4ad371a5501c32481c4907f3343.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/scrap_09_up.png" +dest_files=["res://.godot/imported/scrap_09_up.png-ec62d4ad371a5501c32481c4907f3343.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/sprites/vrac_07_blocked.png b/assets/sprites/vrac_07_blocked.png new file mode 100755 index 0000000000000000000000000000000000000000..606088369c007b7543c43f3dbddc8507c58ed740 GIT binary patch literal 7067 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 FV1hvHkF)>) literal 0 HcmV?d00001 diff --git a/assets/sprites/vrac_07_blocked.png.import b/assets/sprites/vrac_07_blocked.png.import new file mode 100644 index 0000000..4b7923d --- /dev/null +++ b/assets/sprites/vrac_07_blocked.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://delvtnhu6r6dg" +path="res://.godot/imported/vrac_07_blocked.png-8be78ced4f52de7c85c9c6939fd7eb17.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/vrac_07_blocked.png" +dest_files=["res://.godot/imported/vrac_07_blocked.png-8be78ced4f52de7c85c9c6939fd7eb17.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/sprites/vrac_07_repaired.png b/assets/sprites/vrac_07_repaired.png new file mode 100755 index 0000000000000000000000000000000000000000..bd44fffbad615b1e913d7b56762cf4a7d1a99598 GIT binary patch literal 7068 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 void: + GameState.add_item(item_id) + print("Ramassé : ", item_name) + queue_free() # supprime l'item de la scène diff --git a/entities/items/circuit/circuit.gd.uid b/entities/items/circuit/circuit.gd.uid new file mode 100644 index 0000000..374c62e --- /dev/null +++ b/entities/items/circuit/circuit.gd.uid @@ -0,0 +1 @@ +uid://tiawmlu2nuc diff --git a/entities/items/circuit/circuit.tscn b/entities/items/circuit/circuit.tscn new file mode 100644 index 0000000..7f602f5 --- /dev/null +++ b/entities/items/circuit/circuit.tscn @@ -0,0 +1,19 @@ +[gd_scene format=3 uid="uid://chf0lqpruh4ng"] + +[ext_resource type="Script" uid="uid://tiawmlu2nuc" path="res://entities/items/circuit/circuit.gd" id="1_ye4bh"] +[ext_resource type="Texture2D" uid="uid://cn2tcan6yqtjo" path="res://assets/sprites/circuit.png" id="2_ye4bh"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_l3fek"] +radius = 8.0 + +[node name="Area2D" type="Area2D" unique_id=642630034] +script = ExtResource("1_ye4bh") + +[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1269152914] +scale = Vector2(0.5, 0.5) +texture = ExtResource("2_ye4bh") +region_enabled = true +region_rect = Rect2(0, 0, 32, 32) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1281481568] +shape = SubResource("CircleShape2D_l3fek") diff --git a/entities/items/item.gd b/entities/items/item.gd index 87cbb79..1510962 100644 --- a/entities/items/item.gd +++ b/entities/items/item.gd @@ -1,3 +1,4 @@ +class_name Item extends Area2D @export var item_id : String = "engrenage" diff --git a/entities/items/pushable box/pushable_box.gd b/entities/items/pushable box/pushable_box.gd index c66cf4d..6b445b0 100644 --- a/entities/items/pushable box/pushable_box.gd +++ b/entities/items/pushable box/pushable_box.gd @@ -1,8 +1,22 @@ -class_name PushableBox +class_name PushableRobot extends CharacterBody2D +@onready var _area := $DetectionArea +var _hud : HUD + func _ready() -> void: add_to_group("pushable") + _hud = get_tree().get_first_node_in_group("hud") + _area.body_entered.connect(_on_body_entered) + _area.body_exited.connect(_on_body_exited) + +func _on_body_entered(body: Node2D) -> void: + if body.is_in_group("player"): + _hud.show_prompt("Pousser") + +func _on_body_exited(body: Node2D) -> void: + if body.is_in_group("player"): + _hud.hide_prompt() func try_push(direction: Vector2, tile_size: float) -> bool: var motion := direction * tile_size diff --git a/entities/items/pushable box/pushable_box.tscn b/entities/items/pushable box/pushable_box.tscn index ecfd7c3..f4c6018 100644 --- a/entities/items/pushable box/pushable_box.tscn +++ b/entities/items/pushable box/pushable_box.tscn @@ -6,6 +6,9 @@ [sub_resource type="RectangleShape2D" id="RectangleShape2D_cwr2g"] size = Vector2(26, 28) +[sub_resource type="RectangleShape2D" id="RectangleShape2D_5bkgq"] +size = Vector2(81.5, 28.5) + [node name="PushableBox" type="CharacterBody2D" unique_id=418482729] collision_layer = 32 collision_mask = 33 @@ -19,3 +22,11 @@ region_rect = Rect2(128, 64, 32, 32) [node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=330974052] position = Vector2(0, -2) shape = SubResource("RectangleShape2D_cwr2g") + +[node name="DetectionArea" type="Area2D" parent="." unique_id=1137135914] +collision_layer = 48 +collision_mask = 49 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="DetectionArea" unique_id=2045146233] +position = Vector2(0, -2) +shape = SubResource("RectangleShape2D_5bkgq") diff --git a/entities/items/pushable robot/pushable_robot.gd b/entities/items/pushable robot/pushable_robot.gd new file mode 100644 index 0000000..9d35919 --- /dev/null +++ b/entities/items/pushable robot/pushable_robot.gd @@ -0,0 +1,27 @@ +class_name PushableBox +extends CharacterBody2D + +@onready var _area := $DetectionArea +var _hud : HUD + +func _ready() -> void: + add_to_group("pushable") + _hud = get_tree().get_first_node_in_group("hud") + _area.body_entered.connect(_on_body_entered) + _area.body_exited.connect(_on_body_exited) + +func _on_body_entered(body: Node2D) -> void: + if body.is_in_group("player"): + _hud.show_prompt("Pousser") + +func _on_body_exited(body: Node2D) -> void: + if body.is_in_group("player"): + _hud.hide_prompt() + +func try_push(direction: Vector2, tile_size: float) -> bool: + var motion := direction * tile_size + var collision := move_and_collide(motion) + if collision: + move_and_collide(-motion) + return false + return true diff --git a/entities/items/pushable robot/pushable_robot.gd.uid b/entities/items/pushable robot/pushable_robot.gd.uid new file mode 100644 index 0000000..e236659 --- /dev/null +++ b/entities/items/pushable robot/pushable_robot.gd.uid @@ -0,0 +1 @@ +uid://d0yuo06hfqfq4 diff --git a/entities/items/pushable robot/pushable_robot.tscn b/entities/items/pushable robot/pushable_robot.tscn new file mode 100644 index 0000000..d1d61c7 --- /dev/null +++ b/entities/items/pushable robot/pushable_robot.tscn @@ -0,0 +1,31 @@ +[gd_scene format=3 uid="uid://dge55wtv1sf8i"] + +[ext_resource type="Script" uid="uid://ghp173k2ioey" path="res://entities/items/pushable box/pushable_box.gd" id="1_cwr2g"] +[ext_resource type="Texture2D" uid="uid://c0uhk72pn2w7" path="res://assets/sprites/damaged_robot.png" id="2_6yl5d"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_cwr2g"] +size = Vector2(26, 31) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_5bkgq"] +size = Vector2(81.5, 32.25) + +[node name="PushableRobot" type="CharacterBody2D" unique_id=418482729] +collision_layer = 32 +collision_mask = 33 +script = ExtResource("1_cwr2g") + +[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1829584255] +texture = ExtResource("2_6yl5d") +region_rect = Rect2(128, 64, 32, 32) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=330974052] +position = Vector2(0, -0.5) +shape = SubResource("RectangleShape2D_cwr2g") + +[node name="DetectionArea" type="Area2D" parent="." unique_id=1137135914] +collision_layer = 48 +collision_mask = 49 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="DetectionArea" unique_id=2045146233] +position = Vector2(0, -0.125) +shape = SubResource("RectangleShape2D_5bkgq") diff --git a/entities/npcs/vrac7/vrac7.gd b/entities/npcs/vrac7/vrac7.gd index 0f4af57..67cd756 100644 --- a/entities/npcs/vrac7/vrac7.gd +++ b/entities/npcs/vrac7/vrac7.gd @@ -3,17 +3,19 @@ class_name Vrac7 @export var prompt_text: String = "[E] Parler" +@onready var sprite := $AnimatedSprite2D + # ── Dialogues ──────────────────────────────────────────────────────────────── const DIALOGUE_INTRO := [ - { "name": "VRAC-7", "text": "Toi... tu es nouveau ? Non, attends — SCRAP-09 ? Tu as dormi longtemps. Très longtemps." }, + { "name": "VRAC-7", "text": "Toi... tu es nouveau ? Non, attends— SCRAP-09 ? Tu as dormi longtemps. Très longtemps." }, { "name": "VRAC-7", "text": "Je suis coincé sous cette étagère depuis... je ne sais plus. Tu peux m'aider ?" }, - { "name": "VRAC-7", "text": "Il me faut 1 engrenage et 1 câble. J'en ai vu par là dans l'entrepôt." }, + { "name": "VRAC-7", "text": "Il me faut 3 engrenages. J'en ai vu par là dans l'entrepôt." }, ] const DIALOGUE_MISSING_ITEMS := [ { "name": "VRAC-7", "text": "Pas encore les pièces ? L'entrepôt est grand." }, - { "name": "VRAC-7", "text": "Les engrenages sont tombés derrière les étagères du fond. Les câbles, je les ai vus rouler vers la sortie ouest le jour où tout s'est effondré." }, + { "name": "VRAC-7", "text": "Les engrenages sont tombés près des étagères quelque part. Un semble ^" }, ] const DIALOGUE_HAS_ITEMS := [ @@ -34,7 +36,7 @@ const DIALOGUE_AFTER_ATELIER := [ # ── Items requis ────────────────────────────────────────────────────────────── const REQUIRED_ITEMS := { - "engrenage": 1, + "engrenage": 3, } # ── Lifecycle ───────────────────────────────────────────────────────────────── @@ -106,9 +108,10 @@ func _start_minigame() -> void: minigame.open("vrac7") func _on_repair_done() -> void: + sprite.play("repaired") + # Consomme les items - GameState.remove_item("engrenage", 1) - GameState.remove_item("cable", 1) + GameState.remove_item("engrenage", 3) # Donne la clé de l'atelier GameState.add_item("cle_atelier", 1) diff --git a/entities/npcs/vrac7/vrac7.tscn b/entities/npcs/vrac7/vrac7.tscn index 295aaa8..ba7ca07 100644 --- a/entities/npcs/vrac7/vrac7.tscn +++ b/entities/npcs/vrac7/vrac7.tscn @@ -1,13 +1,42 @@ [gd_scene format=3 uid="uid://bb3olg2rlygdc"] [ext_resource type="Script" uid="uid://bs7rvg7tfjm34" path="res://entities/npcs/vrac7/vrac7.gd" id="1_vwl5e"] +[ext_resource type="Texture2D" uid="uid://delvtnhu6r6dg" path="res://assets/sprites/vrac_07_blocked.png" id="2_xy6tt"] +[ext_resource type="Texture2D" uid="uid://bfuq6q42b6v8p" path="res://assets/sprites/vrac_07_repaired.png" id="3_jgqa5"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_vwl5e"] +radius = 47.0 +height = 104.0 + +[sub_resource type="AtlasTexture" id="AtlasTexture_jgqa5"] +atlas = ExtResource("2_xy6tt") +region = Rect2(0, 0, 96, 96) + +[sub_resource type="AtlasTexture" id="AtlasTexture_y0amq"] +atlas = ExtResource("3_jgqa5") +region = Rect2(0, 0, 96, 96) [sub_resource type="SpriteFrames" id="SpriteFrames_vwl5e"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_jgqa5") +}], +"loop": true, +"name": &"blocked", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_y0amq") +}], +"loop": true, +"name": &"repaired", +"speed": 5.0 +}] [sub_resource type="RectangleShape2D" id="RectangleShape2D_xy6tt"] -size = Vector2(58, 37) +size = Vector2(137.5, 86) [node name="Vrac7" type="Node2D" unique_id=829712169] @@ -22,9 +51,11 @@ shape = SubResource("CapsuleShape2D_vwl5e") [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="Vrac7" unique_id=1428714736] sprite_frames = SubResource("SpriteFrames_vwl5e") +animation = &"blocked" +autoplay = "blocked" [node name="InteractionZone" type="Area2D" parent="Vrac7" unique_id=1655089634] [node name="CollisionShape2D" type="CollisionShape2D" parent="Vrac7/InteractionZone" unique_id=1264953620] -position = Vector2(0, 1) +position = Vector2(1, 3) shape = SubResource("RectangleShape2D_xy6tt") diff --git a/entities/player/player.gd b/entities/player/player.gd index ad33b07..cb27906 100644 --- a/entities/player/player.gd +++ b/entities/player/player.gd @@ -42,7 +42,7 @@ func _physics_process(_delta: float) -> void: if push_ray.is_colliding(): var collider = push_ray.get_collider() - if collider is PushableBox: + if collider.is_in_group("pushable"): collider.try_push(dominant, TILE_SIZE) velocity = direction * SPEED diff --git a/entities/player/player.tscn b/entities/player/player.tscn index 41d982b..ac3658f 100644 --- a/entities/player/player.tscn +++ b/entities/player/player.tscn @@ -508,7 +508,7 @@ animations = [{ [sub_resource type="RectangleShape2D" id="RectangleShape2D_bectd"] size = Vector2(45.375, 42.84375) -[node name="CharacterBody2D" type="CharacterBody2D" unique_id=1424887591] +[node name="Player" type="CharacterBody2D" unique_id=1424887591] collision_layer = 2 collision_mask = 33 script = ExtResource("1_fkugw") diff --git a/levels/atelier/atelier.tscn b/levels/atelier/atelier.tscn index c8d90b2..106f2d6 100644 --- a/levels/atelier/atelier.tscn +++ b/levels/atelier/atelier.tscn @@ -1,3 +1,238 @@ -[gd_scene format=3 uid="uid://cuu2865k6rjip"] +[gd_scene format=4 uid="uid://cuu2865k6rjip"] + +[ext_resource type="PackedScene" uid="uid://o7qrmpywwhu8" path="res://ui/hud.tscn" id="1_rjdvm"] +[ext_resource type="PackedScene" uid="uid://jrjxu1xfx0ud" path="res://ui/dialogue_box.tscn" id="2_2hhnj"] +[ext_resource type="Texture2D" uid="uid://b4pvp7nc4ny8c" path="res://assets/tilesets/atelier-tilesets.png" id="3_07js6"] +[ext_resource type="PackedScene" uid="uid://byipceuvaa4qo" path="res://levels/atelier/generator.tscn" id="4_2hhnj"] +[ext_resource type="PackedScene" uid="uid://mh3msmluve7p" path="res://entities/player/player.tscn" id="4_eh0k1"] +[ext_resource type="PackedScene" uid="uid://wi2otwdo8br2" path="res://levels/atelier/repair_banch.tscn" id="5_eh0k1"] +[ext_resource type="PackedScene" uid="uid://1x65ioo8tdro" path="res://entities/items/pushable box/pushable_box.tscn" id="5_m45hf"] +[ext_resource type="PackedScene" uid="uid://cge56ob5tt4o6" path="res://entities/items/engrenage/engrenage.tscn" id="6_f4why"] +[ext_resource type="PackedScene" uid="uid://c4o84gs3ewuyf" path="res://levels/atelier/panel.tscn" id="6_r0qpk"] +[ext_resource type="PackedScene" uid="uid://dge55wtv1sf8i" path="res://entities/items/pushable robot/pushable_robot.tscn" id="7_r0qpk"] +[ext_resource type="PackedScene" uid="uid://b7a8wihtu7fvq" path="res://levels/atelier/passage_trigger.tscn" id="10_5yj64"] +[ext_resource type="PackedScene" uid="uid://ceijd4gd1rxos" path="res://levels/entrepot/door.tscn" id="11_4of04"] +[ext_resource type="Texture2D" uid="uid://xi72kl8lx3te" path="res://assets/sprites/atelier_door_locked.png" id="12_v0hg3"] +[ext_resource type="Texture2D" uid="uid://bh0pnles5j25o" path="res://assets/sprites/atelier_door_open.png" id="13_j0ghu"] +[ext_resource type="PackedScene" uid="uid://cdbyh8k83rr4s" path="res://levels/atelier/repair_station.tscn" id="14_j0ghu"] +[ext_resource type="PackedScene" uid="uid://b1peufx15gr0v" path="res://levels/loading_zone.tscn" id="15_ifag7"] +[ext_resource type="PackedScene" uid="uid://chf0lqpruh4ng" path="res://entities/items/circuit/circuit.tscn" id="15_ts7bk"] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_r0qpk"] +texture = ExtResource("3_07js6") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:1/0 = 0 +1:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:0/0 = 0 +2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +3:0/0 = 0 +3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -16, 16, -16, 16, 16, 8, 16) +4:0/0 = 0 +4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -16, -16, -16, -16, 16, -8, 16) +4:1/0 = 0 +4:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -16, -16, -16, -16, 16, -8, 16) +3:1/0 = 0 +3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -16, 16, -16, 16, 16, 8, 16) +2:1/0 = 0 +2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -16, -16, -16, -16, 16, -8, 16) +0:1/0 = 0 +0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -16, 16, -16, 16, 16, 8, 16) +0:2/0 = 0 +0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +1:2/0 = 0 +1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +2:2/0 = 0 +2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +0:3/0 = 0 +1:3/0 = 0 +2:3/0 = 0 +4:2/0 = 0 +4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(12, -16, -12, -16, -12, 12, 12, 12) +3:2/size_in_atlas = Vector2i(1, 2) +3:2/0 = 0 +3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(16, 8, -16, 8, -16, 32, 16, 32) +0:5/size_in_atlas = Vector2i(2, 1) +0:5/0 = 0 +1:6/0 = 0 + +[sub_resource type="TileSet" id="TileSet_m45hf"] +physics_layer_0/collision_layer = 1 +sources/1 = SubResource("TileSetAtlasSource_r0qpk") [node name="Atelier" type="Node2D" unique_id=1601150761] + +[node name="HUD" parent="." unique_id=1746360319 instance=ExtResource("1_rjdvm")] + +[node name="DialogueBox" parent="." unique_id=1374394268 instance=ExtResource("2_2hhnj")] +position = Vector2(-124, 162) + +[node name="Map" type="Node" parent="." unique_id=729202704] + +[node name="Fix2" type="TileMapLayer" parent="Map" unique_id=2139431522] +tile_map_data = PackedByteArray("AAABAA8AAQACAAAAAAABAC0AAQABAAIAAAAZAC0AAQABAAIAAAA=") +tile_set = SubResource("TileSet_m45hf") + +[node name="Fix" type="TileMapLayer" parent="Map" unique_id=1952665687] +tile_map_data = PackedByteArray("AAABAA8AAQACAAAAAAAZAC0AAQADAAEAAAA=") +tile_set = SubResource("TileSet_m45hf") + +[node name="Ground" type="TileMapLayer" parent="Map" unique_id=331570970] +tile_map_data = PackedByteArray("AAADABMAAQACAAMAAAAFABMAAQACAAMAAAAHABMAAQACAAMAAAAJABMAAQACAAMAAAALABMAAQACAAMAAAANABMAAQACAAMAAAAPABMAAQACAAMAAAARABMAAQACAAMAAAATABMAAQACAAMAAAAVABMAAQACAAMAAAAXABMAAQACAAMAAAAZABMAAQACAAMAAAABABMAAQACAAMAAAAZABEAAQABAAIAAAABABEAAQABAAIAAAAZACsAAQABAAEAAAABACsAAQABAAEAAAAZACwAAQADAAEAAAABABUAAQACAAMAAAADABUAAQACAAMAAAAFABUAAQACAAMAAAAHABUAAQACAAMAAAAJABUAAQACAAMAAAALABUAAQACAAMAAAANABUAAQACAAMAAAAPABUAAQACAAMAAAARABUAAQACAAMAAAATABUAAQACAAMAAAAVABUAAQACAAMAAAAXABUAAQACAAMAAAAZABUAAQACAAMAAAAZABcAAQACAAMAAAAXABcAAQACAAMAAAAVABcAAQACAAMAAAATABcAAQACAAMAAAARABcAAQACAAMAAAAPABcAAQACAAMAAAANABcAAQACAAMAAAALABcAAQACAAMAAAAJABcAAQACAAMAAAAHABcAAQACAAMAAAAFABcAAQACAAMAAAADABcAAQACAAMAAAABABcAAQACAAMAAAABABkAAQACAAMAAAADABkAAQACAAMAAAAFABkAAQACAAMAAAAHABkAAQACAAMAAAAJABkAAQACAAMAAAALABkAAQACAAMAAAANABkAAQACAAMAAAAPABkAAQACAAMAAAARABkAAQACAAMAAAATABkAAQACAAMAAAAVABkAAQACAAMAAAAXABkAAQACAAMAAAAZABkAAQACAAMAAAABABsAAQACAAMAAAADABsAAQACAAMAAAAFABsAAQACAAMAAAAHABsAAQACAAMAAAAJABsAAQACAAMAAAALABsAAQACAAMAAAANABsAAQACAAMAAAAPABsAAQACAAMAAAARABsAAQACAAMAAAATABsAAQACAAMAAAAVABsAAQACAAMAAAAXABsAAQACAAMAAAAZABsAAQACAAMAAAAZAB0AAQACAAMAAAAXAB0AAQACAAMAAAAVAB0AAQACAAMAAAATAB0AAQACAAMAAAARAB0AAQACAAMAAAAPAB0AAQACAAMAAAANAB0AAQACAAMAAAALAB0AAQACAAMAAAAJAB0AAQACAAMAAAAHAB0AAQACAAMAAAAFAB0AAQACAAMAAAADAB0AAQACAAMAAAABAB0AAQACAAMAAAABAB8AAQACAAMAAAADAB8AAQACAAMAAAAFAB8AAQACAAMAAAAHAB8AAQACAAMAAAAJAB8AAQACAAMAAAALAB8AAQACAAMAAAANAB8AAQACAAMAAAAPAB8AAQACAAMAAAARAB8AAQACAAMAAAATAB8AAQACAAMAAAAVAB8AAQACAAMAAAAXAB8AAQACAAMAAAAZAB8AAQACAAMAAAAZACEAAQACAAMAAAAXACEAAQACAAMAAAAVACEAAQACAAMAAAATACEAAQACAAMAAAARACEAAQACAAMAAAAPACEAAQACAAMAAAANACEAAQACAAMAAAALACEAAQACAAMAAAAJACEAAQACAAMAAAAHACEAAQACAAMAAAAFACEAAQACAAMAAAADACEAAQACAAMAAAABACEAAQACAAMAAAABACMAAQACAAMAAAADACMAAQACAAMAAAAFACMAAQACAAMAAAAHACMAAQACAAMAAAAJACMAAQACAAMAAAALACMAAQACAAMAAAANACMAAQACAAMAAAAPACMAAQACAAMAAAARACMAAQACAAMAAAATACMAAQACAAMAAAAVACMAAQACAAMAAAAXACMAAQACAAMAAAAZACMAAQACAAMAAAAZACUAAQACAAMAAAAXACUAAQACAAMAAAAVACUAAQACAAMAAAATACUAAQACAAMAAAARACUAAQACAAMAAAAPACUAAQACAAMAAAANACUAAQACAAMAAAALACUAAQACAAMAAAAJACUAAQACAAMAAAAHACUAAQACAAMAAAAFACUAAQACAAMAAAADACUAAQACAAMAAAABACUAAQACAAMAAAABACcAAQACAAMAAAADACcAAQACAAMAAAAFACcAAQACAAMAAAAHACcAAQACAAMAAAAJACcAAQACAAMAAAALACcAAQACAAMAAAANACcAAQACAAMAAAAPACcAAQACAAMAAAARACcAAQACAAMAAAATACcAAQACAAMAAAAVACcAAQACAAMAAAAXACcAAQACAAMAAAAZACcAAQACAAMAAAAZACkAAQACAAMAAAAXACkAAQACAAMAAAAVACkAAQACAAMAAAATACkAAQACAAMAAAARACkAAQACAAMAAAAPACkAAQACAAMAAAANACkAAQACAAMAAAALACkAAQACAAMAAAAJACkAAQACAAMAAAAHACkAAQACAAMAAAAFACkAAQACAAMAAAADACkAAQACAAMAAAABACkAAQACAAMAAAA=") +tile_set = SubResource("TileSet_m45hf") + +[node name="Walls" type="TileMapLayer" parent="Map" unique_id=1401573587] +z_index = 1 +tile_map_data = PackedByteArray("AAABAA8AAQACAAAAAAADAA8AAQABAAEAAAAFAA8AAQABAAEAAAAHAA8AAQABAAEAAAAJAA8AAQABAAEAAAALAA8AAQABAAEAAAANAA8AAQABAAEAAAAPAA8AAQABAAEAAAARAA8AAQABAAEAAAATAA8AAQABAAEAAAAVAA8AAQABAAEAAAAXAA8AAQABAAEAAAAZAA8AAQAAAAAAAAAZABEAAQADAAAAAAAZABMAAQADAAAAAAAZABUAAQADAAAAAAAZABcAAQADAAAAAAAZABkAAQADAAAAAAAZABsAAQADAAAAAAAZAB0AAQADAAAAAAAZAB8AAQADAAAAAAAZACEAAQADAAAAAAAZACMAAQADAAAAAAAZACUAAQADAAAAAAAZACcAAQADAAAAAAAZACkAAQADAAAAAAADABEAAQABAAIAAAAFABEAAQABAAIAAAAHABEAAQABAAIAAAAJABEAAQABAAIAAAALABEAAQABAAIAAAANABEAAQABAAIAAAAPABEAAQABAAIAAAARABEAAQABAAIAAAATABEAAQABAAIAAAAVABEAAQABAAIAAAAXABEAAQABAAIAAAABABEAAQAEAAAAAAABABMAAQAEAAAAAAABABUAAQAEAAAAAAABABcAAQAEAAAAAAABABkAAQAEAAAAAAABABsAAQAEAAAAAAABAB0AAQAEAAAAAAABAB8AAQAEAAAAAAABACEAAQAEAAAAAAABACMAAQAEAAAAAAABACUAAQAEAAAAAAABACcAAQAEAAAAAAABACkAAQAEAAAAAAAZACsAAQADAAEAAAABACsAAQAEAAEAAAAJACsAAQABAAEAAAALACsAAQABAAEAAAANACsAAQABAAEAAAAPACsAAQABAAEAAAARACsAAQABAAEAAAATACsAAQABAAEAAAAVACsAAQABAAEAAAAXACsAAQABAAEAAAAJAC0AAQABAAIAAAALAC0AAQABAAIAAAANAC0AAQABAAIAAAAPAC0AAQABAAIAAAARAC0AAQABAAIAAAATAC0AAQABAAIAAAAVAC0AAQABAAIAAAAXAC0AAQABAAIAAAA=") +tile_set = SubResource("TileSet_m45hf") + +[node name="Door" type="TileMapLayer" parent="Map" unique_id=1543701938] +z_index = 1 +tile_map_data = PackedByteArray("AAANABAAAQADAAIAAAA=") +tile_set = SubResource("TileSet_m45hf") + +[node name="Walls3" type="TileMapLayer" parent="Map" unique_id=1853645637] +tile_set = SubResource("TileSet_m45hf") + +[node name="Pushables" type="Node2D" parent="Map" unique_id=1315500689] + +[node name="PushableRobot" parent="Map/Pushables" unique_id=418482729 instance=ExtResource("7_r0qpk")] +z_index = 2 +position = Vector2(86, 662) + +[node name="PushableBox" parent="Map/Pushables" unique_id=270746009 instance=ExtResource("5_m45hf")] +position = Vector2(57, 633) + +[node name="PushableBox2" parent="Map/Pushables" unique_id=256579886 instance=ExtResource("5_m45hf")] +position = Vector2(120, 632) + +[node name="PushableBox3" parent="Map/Pushables" unique_id=777845559 instance=ExtResource("5_m45hf")] +position = Vector2(151, 666) + +[node name="PushableBox10" parent="Map/Pushables" unique_id=446726968 instance=ExtResource("5_m45hf")] +position = Vector2(185, 666) + +[node name="PushableBox4" parent="Map/Pushables" unique_id=953338874 instance=ExtResource("5_m45hf")] +position = Vector2(185, 633) + +[node name="PushableBox5" parent="Map/Pushables" unique_id=260389232 instance=ExtResource("5_m45hf")] +position = Vector2(152, 600) + +[node name="PushableBox9" parent="Map/Pushables" unique_id=366451203 instance=ExtResource("5_m45hf")] +position = Vector2(152, 536) + +[node name="PushableBox12" parent="Map/Pushables" unique_id=62296330 instance=ExtResource("5_m45hf")] +position = Vector2(184, 567) + +[node name="PushableBox13" parent="Map/Pushables" unique_id=1842837716 instance=ExtResource("5_m45hf")] +position = Vector2(121, 567) + +[node name="PushableBox14" parent="Map/Pushables" unique_id=692491637 instance=ExtResource("5_m45hf")] +position = Vector2(88, 537) + +[node name="PushableBox16" parent="Map/Pushables" unique_id=505990593 instance=ExtResource("5_m45hf")] +position = Vector2(56, 537) + +[node name="PushableBox17" parent="Map/Pushables" unique_id=683833647 instance=ExtResource("5_m45hf")] +position = Vector2(56, 568) + +[node name="PushableBox15" parent="Map/Pushables" unique_id=1988611522 instance=ExtResource("5_m45hf")] +position = Vector2(88, 567) + +[node name="PushableBox18" parent="Map/Pushables" unique_id=1224887871 instance=ExtResource("5_m45hf")] +position = Vector2(56, 600) + +[node name="PushableBox19" parent="Map/Pushables" unique_id=1729042549 instance=ExtResource("5_m45hf")] +position = Vector2(24, 601) + +[node name="PushableBox6" parent="Map/Pushables" unique_id=673452779 instance=ExtResource("5_m45hf")] +position = Vector2(89, 598) + +[node name="PushableBox7" parent="Map/Pushables" unique_id=1444108668 instance=ExtResource("5_m45hf")] +position = Vector2(24, 666) + +[node name="PushableBox8" parent="Map/Pushables" unique_id=13431223 instance=ExtResource("5_m45hf")] +position = Vector2(26, 568) + +[node name="Item" parent="Map/Pushables" unique_id=1691516870 instance=ExtResource("6_f4why")] +position = Vector2(55, 310) + +[node name="Item2" parent="Map/Pushables" unique_id=1997895461 instance=ExtResource("6_f4why")] +position = Vector2(376, 663) + +[node name="Generator" parent="Map" unique_id=1568541905 instance=ExtResource("4_2hhnj")] +z_index = 2 +position = Vector2(104, 295) + +[node name="Generator2" parent="Map" unique_id=697127633 instance=ExtResource("4_2hhnj")] +z_index = 2 +position = Vector2(385, 451) + +[node name="Generator3" parent="Map" unique_id=1937870449 instance=ExtResource("4_2hhnj")] +z_index = 2 +position = Vector2(48, 486) + +[node name="Generator4" parent="Map" unique_id=2059195656 instance=ExtResource("4_2hhnj")] +z_index = 2 +position = Vector2(360, 293) + +[node name="RepairBanch" parent="Map" unique_id=500109928 instance=ExtResource("5_eh0k1")] +position = Vector2(42, 399) + +[node name="Panel" parent="Map" unique_id=1420863356 instance=ExtResource("6_r0qpk")] +position = Vector2(390, 596) + +[node name="RepairStation" parent="Map" unique_id=2010614652 instance=ExtResource("14_j0ghu")] +position = Vector2(68, 404) +scale = Vector2(2, 4) + +[node name="Hidden Room" type="Node2D" parent="Map" unique_id=392868686] + +[node name="PassageTrigger" parent="Map/Hidden Room" unique_id=962713635 node_paths=PackedStringArray("layer_sol", "layer_murs", "layer_murs_derriere", "hidden_door", "hidden_object", "layer_cache") instance=ExtResource("10_5yj64")] +position = Vector2(88, 664) +scale = Vector2(1.2, 1.2) +collision_mask = 2 +layer_sol = NodePath("../Ground") +layer_murs = NodePath("../Walls") +layer_murs_derriere = NodePath("../Behind Walls") +hidden_door = NodePath("../Door") +hidden_object = NodePath("../Circuit") +layer_cache = NodePath("../Cover Wall") + +[node name="Ground" type="TileMapLayer" parent="Map/Hidden Room" unique_id=1028999710] +tile_map_data = PackedByteArray("AAAHACsAAQACAAAAAAADACsAAQAAAAAAAAADAC0AAQABAAIAAAAHAC0AAQABAAIAAAAFACsAAQACAAMAAAAFAC0AAQACAAMAAAAFAC8AAQACAAMAAAADAC8AAQACAAMAAAABAC8AAQACAAMAAAD//y8AAQACAAMAAAD9/y8AAQACAAMAAAD7/zMAAQADAAEAAAAHADMAAQAEAAEAAAA=") +tile_set = SubResource("TileSet_m45hf") + +[node name="Behind Walls" type="TileMapLayer" parent="Map/Hidden Room" unique_id=1378066818] +tile_map_data = PackedByteArray("AAAHACsAAQACAAAAAAADACsAAQAAAAAAAAADAC0AAQABAAIAAAAHAC0AAQABAAIAAAAHADIAAQAEAAEAAAD7/zIAAQADAAEAAAA=") +tile_set = SubResource("TileSet_m45hf") + +[node name="Walls" type="TileMapLayer" parent="Map/Hidden Room" unique_id=89494716] +tile_map_data = PackedByteArray("AAAHACsAAQACAAAAAAAHAC0AAQAEAAAAAAAHADEAAQAEAAEAAAAHAC8AAQAEAAAAAAAFADEAAQABAAEAAAADADEAAQABAAEAAAABADEAAQABAAEAAAD//zEAAQABAAEAAAD9/zEAAQABAAEAAAD7/zEAAQADAAEAAAD7/y8AAQADAAAAAAD//ysAAQABAAEAAAD7/y0AAQADAAAAAAD7/ysAAQADAAAAAAD//y0AAQABAAIAAAADACsAAQABAAEAAAD9/zMAAQABAAIAAAD//zMAAQABAAIAAAABADMAAQABAAIAAAADADMAAQABAAIAAAAFADMAAQABAAIAAAA=") +tile_set = SubResource("TileSet_m45hf") + +[node name="Door" parent="Map/Hidden Room" unique_id=1014453167 instance=ExtResource("11_4of04")] +visible = false +z_index = 1 +position = Vector2(-40, 712) +required_flag = "scrap09_repaired" +locked_sprite = ExtResource("12_v0hg3") +open_sprite = ExtResource("13_j0ghu") + +[node name="LoadingZone" parent="Map/Hidden Room" unique_id=2123510357 instance=ExtResource("15_ifag7")] +position = Vector2(-40, 695) +scale = Vector2(1.5, 3) +target_scene = "res://levels/atelier/cour.tscn" + +[node name="Cover Wall" type="TileMapLayer" parent="Map/Hidden Room" unique_id=1737801025] +tile_map_data = PackedByteArray("AAAHACsAAQABAAEAAAADACsAAQABAAEAAAAFACsAAQABAAEAAAADAC0AAQABAAIAAAAFAC0AAQABAAIAAAAHAC0AAQABAAIAAAA=") +tile_set = SubResource("TileSet_m45hf") + +[node name="Circuit" parent="Map/Hidden Room" unique_id=1705567280 instance=ExtResource("15_ts7bk")] +position = Vector2(25, 759) +collision_layer = 16 + +[node name="Player" parent="." unique_id=1424887591 instance=ExtResource("4_eh0k1")] +z_index = 2 +position = Vector2(217, 310) diff --git a/levels/atelier/generator.tscn b/levels/atelier/generator.tscn new file mode 100644 index 0000000..331c833 --- /dev/null +++ b/levels/atelier/generator.tscn @@ -0,0 +1,15 @@ +[gd_scene format=3 uid="uid://byipceuvaa4qo"] + +[ext_resource type="Texture2D" uid="uid://cn488ufyhki3n" path="res://assets/sprites/generator.png" id="1_24mxf"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_dh0jl"] +size = Vector2(58, 33) + +[node name="Generator" type="StaticBody2D" unique_id=1568541905] + +[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1475826438] +texture = ExtResource("1_24mxf") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=369360631] +position = Vector2(0, 14.5) +shape = SubResource("RectangleShape2D_dh0jl") diff --git a/levels/atelier/panel.gd b/levels/atelier/panel.gd new file mode 100644 index 0000000..018f359 --- /dev/null +++ b/levels/atelier/panel.gd @@ -0,0 +1,43 @@ +class_name PanelJournal +extends Area2D + +@export var prompt_text: String = "[E] Lire" +@export var journal_id: String = "D-891" + +const DIALOGUE: Array[Dictionary] = [ + { "name": "JOURNAL D-891", "text": "Dernier jour. J'ai vérifié les générateurs ils tiendront des années." }, + { "name": "JOURNAL D-891", "text": "J'ai laissé les réservoirs de maintenance pleins. Je ne sais pas si c'est légal." }, + { "name": "JOURNAL D-891", "text": "Mais ça change quelque chose pour moi. — Matteo Corda, Directeur" }, +] + + +func _ready() -> void: + body_entered.connect(_on_body_entered) + body_exited.connect(_on_body_exited) + +func interact() -> void: + print("Journal interact() appelé") + + var hud := get_tree().get_first_node_in_group("hud") + if hud: + hud.hide_prompt() + + if journal_id != "": + GameState.set_flag(journal_id + "_read", true) + + var dialogue_box := get_tree().get_first_node_in_group("dialogue_box") + print("dialogue_box trouvé : ", dialogue_box) + + if dialogue_box: + print("Lancement dialogue avec : ", DIALOGUE) + dialogue_box.start(DIALOGUE) + +func _on_body_entered(body: Node) -> void: + if body.is_in_group("player"): + var hud: HUD = get_tree().get_first_node_in_group("hud") + if hud: hud.show_prompt(prompt_text) + +func _on_body_exited(body: Node) -> void: + if body.is_in_group("player"): + var hud: HUD = get_tree().get_first_node_in_group("hud") + if hud: hud.hide_prompt() diff --git a/levels/atelier/panel.gd.uid b/levels/atelier/panel.gd.uid new file mode 100644 index 0000000..6ae73db --- /dev/null +++ b/levels/atelier/panel.gd.uid @@ -0,0 +1 @@ +uid://b3unfjwhpk874 diff --git a/levels/atelier/panel.tscn b/levels/atelier/panel.tscn new file mode 100644 index 0000000..0d2c3d5 --- /dev/null +++ b/levels/atelier/panel.tscn @@ -0,0 +1,29 @@ +[gd_scene format=3 uid="uid://c4o84gs3ewuyf"] + +[ext_resource type="Script" uid="uid://b3unfjwhpk874" path="res://levels/atelier/panel.gd" id="1_bpbs2"] +[ext_resource type="Texture2D" uid="uid://bnt3wis7lk60b" path="res://assets/sprites/panneau.png" id="1_kcor3"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_kcor3"] +size = Vector2(43, 86) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_bpbs2"] +size = Vector2(56, 86) + +[node name="Panel" type="Area2D" unique_id=1420863356] +collision_layer = 16 +collision_mask = 2 +script = ExtResource("1_bpbs2") + +[node name="StaticBody2D" type="StaticBody2D" parent="." unique_id=1130814827] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D" unique_id=152593069] +position = Vector2(0.5, 5) +shape = SubResource("RectangleShape2D_kcor3") + +[node name="Sprite2D" type="Sprite2D" parent="StaticBody2D" unique_id=1239708083] +texture = ExtResource("1_kcor3") +flip_h = true + +[node name="Interaction" type="CollisionShape2D" parent="." unique_id=1746240301] +position = Vector2(-6, 5) +shape = SubResource("RectangleShape2D_bpbs2") diff --git a/levels/atelier/passage_trigger.gd b/levels/atelier/passage_trigger.gd new file mode 100644 index 0000000..a326907 --- /dev/null +++ b/levels/atelier/passage_trigger.gd @@ -0,0 +1,48 @@ +class_name PassageTrigger +extends Area2D + +# Les layers à rendre visibles quand le trigger s'active +@export var layer_sol : TileMapLayer +@export var layer_murs : TileMapLayer +@export var layer_murs_derriere : TileMapLayer +@export var hidden_door : Door +@export var hidden_object : Circuit + +# Le layer qui cache le passage — à désactiver +@export var layer_cache : TileMapLayer + +var _triggered := false + +func _ready() -> void: + # Au départ, sol et murs sont cachés + if layer_sol: + layer_sol.enabled = false + if layer_murs: + layer_murs.enabled = false + if layer_murs_derriere: + layer_murs.enabled = false + if hidden_door: + hidden_door.visible = false + if hidden_object: + hidden_object.visible = false + body_entered.connect(_on_body_entered) + +func _on_body_entered(body: Node2D) -> void: + if _triggered or not body.is_in_group("player"): + return + _triggered = true + _reveal_passage() + +func _reveal_passage() -> void: + if layer_sol: + layer_sol.enabled = true + if layer_murs: + layer_murs.enabled = true + if layer_murs_derriere: + layer_murs.enabled = true + if hidden_door: + hidden_door.visible = true + if hidden_object: + hidden_object.visible = true + if layer_cache: + layer_cache.enabled = false diff --git a/levels/atelier/passage_trigger.gd.uid b/levels/atelier/passage_trigger.gd.uid new file mode 100644 index 0000000..86aca37 --- /dev/null +++ b/levels/atelier/passage_trigger.gd.uid @@ -0,0 +1 @@ +uid://57f6iqgyfu58 diff --git a/levels/atelier/passage_trigger.tscn b/levels/atelier/passage_trigger.tscn new file mode 100644 index 0000000..a9744fa --- /dev/null +++ b/levels/atelier/passage_trigger.tscn @@ -0,0 +1,11 @@ +[gd_scene format=3 uid="uid://b7a8wihtu7fvq"] + +[ext_resource type="Script" uid="uid://57f6iqgyfu58" path="res://levels/atelier/passage_trigger.gd" id="1_dtnx3"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_88qw7"] + +[node name="PassageTrigger" type="Area2D" unique_id=962713635] +script = ExtResource("1_dtnx3") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1707410714] +shape = SubResource("RectangleShape2D_88qw7") diff --git a/levels/atelier/repair_banch.tscn b/levels/atelier/repair_banch.tscn new file mode 100644 index 0000000..b560dfa --- /dev/null +++ b/levels/atelier/repair_banch.tscn @@ -0,0 +1,15 @@ +[gd_scene format=3 uid="uid://wi2otwdo8br2"] + +[ext_resource type="Texture2D" uid="uid://bpoxw3tuggoa4" path="res://assets/sprites/repair.png" id="1_77h7c"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_3q1yy"] +size = Vector2(44, 86) + +[node name="RepairBanch" type="StaticBody2D" unique_id=500109928] + +[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1583784252] +texture = ExtResource("1_77h7c") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1167014859] +position = Vector2(0, 5) +shape = SubResource("RectangleShape2D_3q1yy") diff --git a/levels/atelier/repair_station.gd b/levels/atelier/repair_station.gd new file mode 100644 index 0000000..89a1746 --- /dev/null +++ b/levels/atelier/repair_station.gd @@ -0,0 +1,86 @@ +class_name RepairStation +extends Area2D + +@export var prompt_text: String = "[E] Se réparer" + +const REQUIRED_ITEMS := { "circuit": 1 } + +const DIALOGUE_NO_ITEM := [ + { "name": "SYSTÈME", "text": "Composant requis : circuit de self-repair. Non détecté." }, +] + +const DIALOGUE_HAS_ITEM := [ + { "name": "SYSTÈME", "text": "Circuit compatible détecté. Lancer la séquence de réparation ?" }, +] + +const DIALOGUE_DONE := [ + { "name": "SYSTÈME", "text": "Réparation complète. Systèmes moteurs restaurés à 94%." }, + { "name": "SYSTÈME", "text": "Mémoire fragmentée restaurée. Fragment — jour de fermeture." }, +] + +func _ready() -> void: + body_entered.connect(_on_body_entered) + body_exited.connect(_on_body_exited) + +func _on_body_entered(body: Node) -> void: + if body.is_in_group("player"): + get_tree().get_first_node_in_group("hud").show_prompt(prompt_text) + +func _on_body_exited(body: Node) -> void: + if body.is_in_group("player"): + get_tree().get_first_node_in_group("hud").hide_prompt() + +func interact() -> void: + var hud: HUD = get_tree().get_first_node_in_group("hud") + if hud: + hud.hide_prompt() + + var dialogue_box := get_tree().get_first_node_in_group("dialogue_box") + if not dialogue_box: + return + + # Déjà réparé + if GameState.get_flag("scrap09_repaired"): + return + + # Pas le circuit + if not _has_required_items(): + dialogue_box.start(DIALOGUE_NO_ITEM) + return + + # A le circuit → lancer mini-jeu + dialogue_box.start(DIALOGUE_HAS_ITEM) + dialogue_box.dialogue_finished.connect(_start_minigame, CONNECT_ONE_SHOT) + +func _start_minigame() -> void: + var dialogue_box := get_tree().get_first_node_in_group("dialogue_box") + if dialogue_box: + dialogue_box.hide() + + var minigame_node := preload("res://ui/minigame/repair_minigame.tscn").instantiate() + get_tree().root.add_child(minigame_node) + var minigame := minigame_node as RepairMinigame + if minigame == null: + return + minigame.repair_complete.connect(_on_repair_done, CONNECT_ONE_SHOT) + minigame.open("scrap09") + +func _on_repair_done() -> void: + GameState.remove_item("circuit", 1) + GameState.set_flag("scrap09_repaired", true) + + var hud: HUD = get_tree().get_first_node_in_group("hud") + if hud: + hud.show_log("Auto-diagnostic complet. Systèmes restaurés.") + await get_tree().create_timer(2.5).timeout + hud.show_log("Accès cour extérieure déverrouillé.") + + var dialogue_box := get_tree().get_first_node_in_group("dialogue_box") + if dialogue_box: + dialogue_box.start(DIALOGUE_DONE) + +func _has_required_items() -> bool: + for item_id in REQUIRED_ITEMS: + if GameState.inventory.get(item_id, 0) < REQUIRED_ITEMS[item_id]: + return false + return true diff --git a/levels/atelier/repair_station.gd.uid b/levels/atelier/repair_station.gd.uid new file mode 100644 index 0000000..b3e124f --- /dev/null +++ b/levels/atelier/repair_station.gd.uid @@ -0,0 +1 @@ +uid://bya6ev5rv6b3p diff --git a/levels/atelier/repair_station.tscn b/levels/atelier/repair_station.tscn new file mode 100644 index 0000000..f8f473e --- /dev/null +++ b/levels/atelier/repair_station.tscn @@ -0,0 +1,12 @@ +[gd_scene format=3 uid="uid://cdbyh8k83rr4s"] + +[ext_resource type="Script" uid="uid://bya6ev5rv6b3p" path="res://levels/atelier/repair_station.gd" id="1_t8081"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_8qptw"] + +[node name="RepairStation" type="Area2D" unique_id=2010614652] +collision_layer = 21 +script = ExtResource("1_t8081") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=523919440] +shape = SubResource("RectangleShape2D_8qptw") diff --git a/levels/entrepot/entrepot.tscn b/levels/entrepot/entrepot.tscn index a427aa5..b9a8da9 100644 --- a/levels/entrepot/entrepot.tscn +++ b/levels/entrepot/entrepot.tscn @@ -162,7 +162,7 @@ position = Vector2(-118, 137) [node name="Vrac7" parent="." unique_id=829712169 instance=ExtResource("3_jr8qv")] z_index = 500 -position = Vector2(97, 245) +position = Vector2(113, 164) [node name="Map" type="Node" parent="." unique_id=306161900] @@ -172,7 +172,7 @@ tile_map_data = PackedByteArray("AAAAACYAAAABAAEAAAAeACYAAAABAAEAAAAeACgAAAAAAAI tile_set = SubResource("TileSet_jr8qv") [node name="Ground" type="TileMapLayer" parent="Map" unique_id=1677946938] -tile_map_data = PackedByteArray("AAAeAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAeACYAAAABAAEAAAAAAAYAAAACAAMAAAAAAAgAAAACAAMAAAAAAAoAAAACAAMAAAAAAAwAAAACAAMAAAAcAAYAAAACAAMAAAAcAAgAAAACAAMAAAAcAAoAAAACAAMAAAAcAAwAAAACAAMAAAAcAA4AAAACAAMAAAAaAA4AAAACAAMAAAAYAA4AAAACAAMAAAAWAA4AAAACAAMAAAAUAA4AAAACAAMAAAASAA4AAAACAAMAAAAOAA4AAAACAAMAAAAMAA4AAAACAAMAAAAKAA4AAAACAAMAAAAIAA4AAAACAAMAAAAGAA4AAAACAAMAAAAEAA4AAAACAAMAAAACAA4AAAACAAMAAAAAAA4AAAACAAMAAAACAAYAAAACAAMAAAAEAAYAAAACAAMAAAAGAAYAAAACAAMAAAAIAAYAAAACAAMAAAAKAAYAAAACAAMAAAAMAAYAAAACAAMAAAAOAAYAAAACAAMAAAAQAAYAAAACAAMAAAASAAYAAAACAAMAAAAUAAYAAAACAAMAAAAWAAYAAAACAAMAAAAYAAYAAAACAAMAAAAaAAYAAAACAAMAAAACAAgAAAACAAMAAAAEAAgAAAACAAMAAAAGAAgAAAACAAMAAAAIAAgAAAACAAMAAAAKAAgAAAACAAMAAAAMAAgAAAACAAMAAAAOAAgAAAACAAMAAAAQAAgAAAACAAMAAAASAAgAAAACAAMAAAAUAAgAAAACAAMAAAAWAAgAAAACAAMAAAAYAAgAAAACAAMAAAAaAAgAAAACAAMAAAAaAAoAAAACAAMAAAAYAAoAAAACAAMAAAAWAAoAAAACAAMAAAAUAAoAAAACAAMAAAASAAoAAAACAAMAAAAQAAoAAAACAAMAAAAOAAoAAAACAAMAAAAMAAoAAAACAAMAAAAKAAoAAAACAAMAAAAIAAoAAAACAAMAAAAGAAoAAAACAAMAAAAEAAoAAAACAAMAAAACAAoAAAACAAMAAAACAAwAAAACAAMAAAAEAAwAAAACAAMAAAAGAAwAAAACAAMAAAAIAAwAAAACAAMAAAAKAAwAAAACAAMAAAAMAAwAAAACAAMAAAAOAAwAAAACAAMAAAASAAwAAAACAAMAAAAUAAwAAAACAAMAAAAWAAwAAAACAAMAAAAYAAwAAAACAAMAAAAaAAwAAAACAAMAAAAcABAAAAACAAMAAAAaABAAAAACAAMAAAAYABAAAAACAAMAAAAWABAAAAACAAMAAAAUABAAAAACAAMAAAASABAAAAACAAMAAAAOABAAAAACAAMAAAAMABAAAAACAAMAAAAKABAAAAACAAMAAAAIABAAAAACAAMAAAAGABAAAAACAAMAAAAEABAAAAACAAMAAAACABAAAAACAAMAAAAAABAAAAACAAMAAAAeAAYAAAACAAMAAAAeAAgAAAACAAMAAAAeAAoAAAACAAMAAAAeAAwAAAACAAMAAAAeAA4AAAACAAMAAAAeABAAAAACAAMAAAAQABAAAAACAAMAAAAQAA4AAAACAAMAAAAQAAwAAAACAAMAAAAAABIAAAACAAMAAAACABIAAAACAAMAAAAEABIAAAACAAMAAAAGABIAAAACAAMAAAAIABIAAAACAAMAAAAKABIAAAACAAMAAAAMABIAAAACAAMAAAAOABIAAAACAAMAAAAQABIAAAACAAMAAAASABIAAAACAAMAAAAUABIAAAACAAMAAAAWABIAAAACAAMAAAAYABIAAAACAAMAAAAaABIAAAACAAMAAAAcABIAAAACAAMAAAAeABIAAAACAAMAAAAeABQAAAACAAMAAAAcABQAAAACAAMAAAAaABQAAAACAAMAAAAYABQAAAACAAMAAAAWABQAAAACAAMAAAAUABQAAAACAAMAAAASABQAAAACAAMAAAAQABQAAAACAAMAAAAOABQAAAACAAMAAAAMABQAAAACAAMAAAAKABQAAAACAAMAAAAIABQAAAACAAMAAAAGABQAAAACAAMAAAAEABQAAAACAAMAAAACABQAAAACAAMAAAAAABQAAAACAAMAAAAAABYAAAACAAMAAAACABYAAAACAAMAAAAEABYAAAACAAMAAAAGABYAAAACAAMAAAAIABYAAAACAAMAAAAKABYAAAACAAMAAAAMABYAAAACAAMAAAAOABYAAAACAAMAAAAQABYAAAACAAMAAAASABYAAAACAAMAAAAUABYAAAACAAMAAAAWABYAAAACAAMAAAAYABYAAAACAAMAAAAaABYAAAACAAMAAAAcABYAAAACAAMAAAAeABYAAAACAAMAAAAeABgAAAACAAMAAAAcABgAAAACAAMAAAAaABgAAAACAAMAAAAYABgAAAACAAMAAAAWABgAAAACAAMAAAAUABgAAAACAAMAAAASABgAAAACAAMAAAAQABgAAAACAAMAAAAOABgAAAACAAMAAAAMABgAAAACAAMAAAAKABgAAAACAAMAAAAIABgAAAACAAMAAAAEABgAAAACAAMAAAAGABgAAAACAAMAAAACABgAAAACAAMAAAAAABgAAAACAAMAAAAAABoAAAACAAMAAAACABoAAAACAAMAAAAEABoAAAACAAMAAAAGABoAAAACAAMAAAAIABoAAAACAAMAAAAKABoAAAACAAMAAAAMABoAAAACAAMAAAAOABoAAAACAAMAAAAQABoAAAACAAMAAAASABoAAAACAAMAAAAUABoAAAACAAMAAAAWABoAAAACAAMAAAAYABoAAAACAAMAAAAaABoAAAACAAMAAAAcABoAAAACAAMAAAAeABoAAAACAAMAAAAeABwAAAACAAMAAAAcABwAAAACAAMAAAAaABwAAAACAAMAAAAYABwAAAACAAMAAAAWABwAAAACAAMAAAAUABwAAAACAAMAAAASABwAAAACAAMAAAAQABwAAAACAAMAAAAOABwAAAACAAMAAAAMABwAAAACAAMAAAAKABwAAAACAAMAAAAIABwAAAACAAMAAAAGABwAAAACAAMAAAAEABwAAAACAAMAAAACABwAAAACAAMAAAAAABwAAAACAAMAAAAAAB4AAAACAAMAAAACAB4AAAACAAMAAAAEAB4AAAACAAMAAAAGAB4AAAACAAMAAAAIAB4AAAACAAMAAAAKAB4AAAACAAMAAAAMAB4AAAACAAMAAAAOAB4AAAACAAMAAAAQAB4AAAACAAMAAAASAB4AAAACAAMAAAAUAB4AAAACAAMAAAAWAB4AAAACAAMAAAAYAB4AAAACAAMAAAAaAB4AAAACAAMAAAAcAB4AAAACAAMAAAAeAB4AAAACAAMAAAAeACAAAAACAAMAAAAcACAAAAACAAMAAAAaACAAAAACAAMAAAAYACAAAAACAAMAAAAWACAAAAACAAMAAAAUACAAAAACAAMAAAASACAAAAACAAMAAAAQACAAAAACAAMAAAAOACAAAAACAAMAAAAMACAAAAACAAMAAAAKACAAAAACAAMAAAAIACAAAAACAAMAAAAGACAAAAACAAMAAAAEACAAAAACAAMAAAACACAAAAACAAMAAAAAACAAAAACAAMAAAAAACIAAAACAAMAAAACACIAAAACAAMAAAAEACIAAAACAAMAAAAGACIAAAACAAMAAAAIACIAAAACAAMAAAAKACIAAAACAAMAAAAMACIAAAACAAMAAAAOACIAAAACAAMAAAAQACIAAAACAAMAAAASACIAAAACAAMAAAAUACIAAAACAAMAAAAWACIAAAACAAMAAAAYACIAAAACAAMAAAAaACIAAAACAAMAAAAcACIAAAACAAMAAAAeACIAAAACAAMAAAAeACQAAAACAAMAAAAcACQAAAACAAMAAAAaACQAAAACAAMAAAAYACQAAAACAAMAAAAWACQAAAACAAMAAAAUACQAAAACAAMAAAASACQAAAACAAMAAAAQACQAAAACAAMAAAAOACQAAAACAAMAAAAMACQAAAACAAMAAAAKACQAAAACAAMAAAAIACQAAAACAAMAAAAGACQAAAACAAMAAAAEACQAAAACAAMAAAACACQAAAACAAMAAAAAACQAAAACAAMAAAAAACYAAAABAAEAAAAeACgAAAADAAEAAAAAACgAAAAEAAEAAAAAAAQAAAAAAAIAAAAeAAQAAAAAAAIAAAACAAQAAAAAAAIAAAAEAAQAAAAAAAIAAAAGAAQAAAAAAAIAAAACAAIAAAAAAAIAAAAEAAIAAAAAAAIAAAAGAAIAAAAAAAIAAAAIAAQAAAAAAAIAAAAIAAIAAAAAAAIAAAAKAAIAAAAAAAIAAAAKAAQAAAAAAAIAAAAMAAQAAAAAAAIAAAAMAAIAAAAAAAIAAAAOAAIAAAAAAAIAAAAOAAQAAAAAAAIAAAAQAAQAAAAAAAIAAAAQAAIAAAAAAAIAAAASAAIAAAAAAAIAAAASAAQAAAAAAAIAAAAUAAQAAAAAAAIAAAAUAAIAAAAAAAIAAAAWAAIAAAAAAAIAAAAWAAQAAAAAAAIAAAAYAAQAAAAAAAIAAAAYAAIAAAAAAAIAAAAaAAIAAAAAAAIAAAAaAAQAAAAAAAIAAAAcAAIAAAAAAAIAAAAcAAQAAAAAAAIAAAAQACYAAAACAAMAAAAQACgAAAACAAMAAAA=") +tile_map_data = PackedByteArray("AAAeAAIAAAAAAAIAAAAAAAIAAAAAAAIAAAAeACYAAAABAAEAAAAAAAYAAAACAAMAAAAAAAgAAAACAAMAAAAAAAoAAAACAAMAAAAAAAwAAAACAAMAAAAcAAYAAAACAAMAAAAcAAgAAAACAAMAAAAcAAoAAAACAAMAAAAcAAwAAAACAAMAAAAcAA4AAAACAAMAAAAaAA4AAAACAAMAAAAYAA4AAAACAAMAAAAWAA4AAAACAAMAAAAUAA4AAAACAAMAAAASAA4AAAACAAMAAAAOAA4AAAACAAMAAAAMAA4AAAACAAMAAAAKAA4AAAABAAMAAAAIAA4AAAACAAMAAAAGAA4AAAACAAMAAAAEAA4AAAACAAMAAAACAA4AAAACAAMAAAAAAA4AAAACAAMAAAACAAYAAAACAAMAAAAEAAYAAAACAAMAAAAGAAYAAAACAAMAAAAIAAYAAAACAAMAAAAKAAYAAAACAAMAAAAMAAYAAAACAAMAAAAOAAYAAAACAAMAAAAQAAYAAAACAAMAAAASAAYAAAACAAMAAAAUAAYAAAACAAMAAAAWAAYAAAACAAMAAAAYAAYAAAACAAMAAAAaAAYAAAACAAMAAAACAAgAAAACAAMAAAAEAAgAAAACAAMAAAAGAAgAAAACAAMAAAAIAAgAAAACAAMAAAAKAAgAAAACAAMAAAAMAAgAAAACAAMAAAAOAAgAAAACAAMAAAAQAAgAAAACAAMAAAASAAgAAAACAAMAAAAUAAgAAAACAAMAAAAWAAgAAAAAAAMAAAAYAAgAAAACAAMAAAAaAAgAAAACAAMAAAAaAAoAAAACAAMAAAAYAAoAAAACAAMAAAAWAAoAAAABAAMAAAAUAAoAAAACAAMAAAASAAoAAAACAAMAAAAQAAoAAAACAAMAAAAOAAoAAAACAAMAAAAMAAoAAAACAAMAAAAKAAoAAAACAAMAAAAIAAoAAAACAAMAAAAGAAoAAAACAAMAAAAEAAoAAAACAAMAAAACAAoAAAACAAMAAAACAAwAAAACAAMAAAAEAAwAAAACAAMAAAAGAAwAAAAAAAMAAAAIAAwAAAACAAMAAAAKAAwAAAACAAMAAAAMAAwAAAACAAMAAAAOAAwAAAACAAMAAAASAAwAAAACAAMAAAAUAAwAAAACAAMAAAAWAAwAAAACAAMAAAAYAAwAAAACAAMAAAAaAAwAAAACAAMAAAAcABAAAAACAAMAAAAaABAAAAACAAMAAAAYABAAAAACAAMAAAAWABAAAAACAAMAAAAUABAAAAAAAAMAAAASABAAAAACAAMAAAAOABAAAAAAAAMAAAAMABAAAAACAAMAAAAKABAAAAACAAMAAAAIABAAAAACAAMAAAAGABAAAAACAAMAAAAEABAAAAAAAAMAAAACABAAAAACAAMAAAAAABAAAAACAAMAAAAeAAYAAAACAAMAAAAeAAgAAAACAAMAAAAeAAoAAAACAAMAAAAeAAwAAAACAAMAAAAeAA4AAAACAAMAAAAeABAAAAACAAMAAAAQABAAAAACAAMAAAAQAA4AAAACAAMAAAAQAAwAAAABAAMAAAAAABIAAAACAAMAAAACABIAAAACAAMAAAAEABIAAAACAAMAAAAGABIAAAACAAMAAAAIABIAAAACAAMAAAAKABIAAAAAAAMAAAAMABIAAAACAAMAAAAOABIAAAACAAMAAAAQABIAAAACAAMAAAASABIAAAACAAMAAAAUABIAAAACAAMAAAAWABIAAAACAAMAAAAYABIAAAACAAMAAAAaABIAAAACAAMAAAAcABIAAAACAAMAAAAeABIAAAACAAMAAAAeABQAAAACAAMAAAAcABQAAAACAAMAAAAaABQAAAACAAMAAAAYABQAAAACAAMAAAAWABQAAAACAAMAAAAUABQAAAACAAMAAAASABQAAAACAAMAAAAQABQAAAACAAMAAAAOABQAAAACAAMAAAAMABQAAAACAAMAAAAKABQAAAACAAMAAAAIABQAAAACAAMAAAAGABQAAAABAAMAAAAEABQAAAACAAMAAAACABQAAAACAAMAAAAAABQAAAACAAMAAAAAABYAAAACAAMAAAACABYAAAACAAMAAAAEABYAAAACAAMAAAAGABYAAAACAAMAAAAIABYAAAACAAMAAAAKABYAAAABAAMAAAAMABYAAAACAAMAAAAOABYAAAACAAMAAAAQABYAAAACAAMAAAASABYAAAACAAMAAAAUABYAAAACAAMAAAAWABYAAAACAAMAAAAYABYAAAACAAMAAAAaABYAAAAAAAMAAAAcABYAAAACAAMAAAAeABYAAAACAAMAAAAeABgAAAACAAMAAAAcABgAAAACAAMAAAAaABgAAAACAAMAAAAYABgAAAABAAMAAAAWABgAAAACAAMAAAAUABgAAAACAAMAAAASABgAAAACAAMAAAAQABgAAAACAAMAAAAOABgAAAABAAMAAAAMABgAAAACAAMAAAAKABgAAAACAAMAAAAIABgAAAACAAMAAAAEABgAAAACAAMAAAAGABgAAAACAAMAAAACABgAAAACAAMAAAAAABgAAAACAAMAAAAAABoAAAACAAMAAAACABoAAAAAAAMAAAAEABoAAAACAAMAAAAGABoAAAACAAMAAAAIABoAAAAAAAMAAAAKABoAAAACAAMAAAAMABoAAAACAAMAAAAOABoAAAACAAMAAAAQABoAAAACAAMAAAASABoAAAABAAMAAAAUABoAAAACAAMAAAAWABoAAAACAAMAAAAYABoAAAACAAMAAAAaABoAAAACAAMAAAAcABoAAAACAAMAAAAeABoAAAAAAAMAAAAeABwAAAACAAMAAAAcABwAAAACAAMAAAAaABwAAAACAAMAAAAYABwAAAACAAMAAAAWABwAAAACAAMAAAAUABwAAAACAAMAAAASABwAAAACAAMAAAAQABwAAAACAAMAAAAOABwAAAACAAMAAAAMABwAAAACAAMAAAAKABwAAAACAAMAAAAIABwAAAACAAMAAAAGABwAAAACAAMAAAAEABwAAAABAAMAAAACABwAAAACAAMAAAAAABwAAAACAAMAAAAAAB4AAAACAAMAAAACAB4AAAACAAMAAAAEAB4AAAACAAMAAAAGAB4AAAACAAMAAAAIAB4AAAACAAMAAAAKAB4AAAACAAMAAAAMAB4AAAACAAMAAAAOAB4AAAACAAMAAAAQAB4AAAACAAMAAAASAB4AAAACAAMAAAAUAB4AAAACAAMAAAAWAB4AAAACAAMAAAAYAB4AAAACAAMAAAAaAB4AAAACAAMAAAAcAB4AAAACAAMAAAAeAB4AAAACAAMAAAAeACAAAAACAAMAAAAcACAAAAACAAMAAAAaACAAAAACAAMAAAAYACAAAAACAAMAAAAWACAAAAACAAMAAAAUACAAAAACAAMAAAASACAAAAACAAMAAAAQACAAAAACAAMAAAAOACAAAAACAAMAAAAMACAAAAACAAMAAAAKACAAAAAAAAMAAAAIACAAAAACAAMAAAAGACAAAAACAAMAAAAEACAAAAACAAMAAAACACAAAAACAAMAAAAAACAAAAACAAMAAAAAACIAAAACAAMAAAACACIAAAACAAMAAAAEACIAAAACAAMAAAAGACIAAAACAAMAAAAIACIAAAACAAMAAAAKACIAAAACAAMAAAAMACIAAAABAAMAAAAOACIAAAACAAMAAAAQACIAAAACAAMAAAASACIAAAACAAMAAAAUACIAAAACAAMAAAAWACIAAAACAAMAAAAYACIAAAAAAAMAAAAaACIAAAACAAMAAAAcACIAAAACAAMAAAAeACIAAAACAAMAAAAeACQAAAABAAMAAAAcACQAAAACAAMAAAAaACQAAAACAAMAAAAYACQAAAACAAMAAAAWACQAAAACAAMAAAAUACQAAAAAAAMAAAASACQAAAACAAMAAAAQACQAAAACAAMAAAAOACQAAAACAAMAAAAMACQAAAACAAMAAAAKACQAAAACAAMAAAAIACQAAAACAAMAAAAGACQAAAAAAAMAAAAEACQAAAACAAMAAAACACQAAAACAAMAAAAAACQAAAACAAMAAAAAACYAAAABAAEAAAAeACgAAAADAAEAAAAAACgAAAAEAAEAAAAAAAQAAAAAAAIAAAAeAAQAAAAAAAIAAAACAAQAAAAAAAIAAAAEAAQAAAAAAAIAAAAGAAQAAAAAAAIAAAACAAIAAAAAAAIAAAAEAAIAAAAAAAIAAAAGAAIAAAAAAAIAAAAIAAQAAAAAAAIAAAAIAAIAAAAAAAIAAAAKAAIAAAAAAAIAAAAKAAQAAAAAAAIAAAAMAAQAAAAAAAIAAAAMAAIAAAAAAAIAAAAOAAIAAAAAAAIAAAAOAAQAAAAAAAIAAAAQAAQAAAAAAAIAAAAQAAIAAAAAAAIAAAASAAIAAAAAAAIAAAASAAQAAAAAAAIAAAAUAAQAAAAAAAIAAAAUAAIAAAAAAAIAAAAWAAIAAAAAAAIAAAAWAAQAAAAAAAIAAAAYAAQAAAAAAAIAAAAYAAIAAAAAAAIAAAAaAAIAAAAAAAIAAAAaAAQAAAAAAAIAAAAcAAIAAAAAAAIAAAAcAAQAAAAAAAIAAAAQACYAAAACAAMAAAAQACgAAAACAAMAAAA=") tile_set = SubResource("TileSet_jr8qv") [node name="Walls" type="TileMapLayer" parent="Map" unique_id=142135081] @@ -201,51 +201,64 @@ tile_set = SubResource("TileSet_jr8qv") [node name="Etageres" type="Node" parent="Map" unique_id=1557456418] [node name="Etagere" parent="Map/Etageres" unique_id=2130339636 instance=ExtResource("9_sju6u")] +y_sort_enabled = true position = Vector2(448, 278) [node name="Etagere4" parent="Map/Etageres" unique_id=634752017 instance=ExtResource("9_sju6u")] +y_sort_enabled = true position = Vector2(294, 371) [node name="Etagere2" parent="Map/Etageres" unique_id=1943291775 instance=ExtResource("9_sju6u")] z_index = 4 +y_sort_enabled = true position = Vector2(175, 118) [node name="Etagere3" parent="Map/Etageres" unique_id=565472517 instance=ExtResource("9_sju6u")] z_index = 4 +y_sort_enabled = true position = Vector2(318, 119) [node name="EtagereSide" parent="Map/Etageres" unique_id=1220106226 instance=ExtResource("11_2edww")] +y_sort_enabled = true position = Vector2(374, 354) [node name="EtagereSide2" parent="Map/Etageres" unique_id=218887748 instance=ExtResource("11_2edww")] z_index = 6 +y_sort_enabled = true position = Vector2(30, 211) [node name="EtagereSide3" parent="Map/Etageres" unique_id=904564979 instance=ExtResource("11_2edww")] z_index = 6 +y_sort_enabled = true position = Vector2(30, 300) [node name="EtagereSide4" parent="Map/Etageres" unique_id=344487406 instance=ExtResource("11_2edww")] z_index = 1 +y_sort_enabled = true position = Vector2(30, 611) [node name="Etagere5" parent="Map/Etageres" unique_id=466280721 instance=ExtResource("9_sju6u")] z_index = 6 +y_sort_enabled = true position = Vector2(52, 378) [node name="Etagere6" parent="Map/Etageres" unique_id=373335979 instance=ExtResource("9_sju6u")] z_index = 6 +y_sort_enabled = true position = Vector2(448, 539) [node name="Etagere7" parent="Map/Etageres" unique_id=1276472907 instance=ExtResource("9_sju6u")] z_index = 6 +y_sort_enabled = true position = Vector2(349, 537) [node name="Etagere8" parent="Map/Etageres" unique_id=1382502295 instance=ExtResource("9_sju6u")] z_index = 6 +y_sort_enabled = true position = Vector2(250, 537) [node name="Etagere9" parent="Map/Etageres" unique_id=836648891 instance=ExtResource("9_sju6u")] +y_sort_enabled = true position = Vector2(58, 558) [node name="HiddenEngrenage" parent="Map" unique_id=1691516870 instance=ExtResource("7_1p1pm")] @@ -263,8 +276,15 @@ node_to_reveal = NodePath("../HiddenEngrenage") [node name="Journal" parent="Map" unique_id=2014306468 instance=ExtResource("10_b870l")] position = Vector2(456, 583) +[node name="Item" parent="Map" unique_id=993706837 instance=ExtResource("7_1p1pm")] +position = Vector2(40, 455) + +[node name="Item2" parent="Map" unique_id=274037233 instance=ExtResource("7_1p1pm")] +position = Vector2(392, 167) + [node name="Player" parent="." unique_id=628518902 instance=ExtResource("2_n70cd")] z_index = 1 +y_sort_enabled = true position = Vector2(248, 103) [node name="Door" parent="." unique_id=1014453167 instance=ExtResource("11_squor")] diff --git a/project.godot b/project.godot index 781f91c..07fd0d3 100644 --- a/project.godot +++ b/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="Scrap Signal" -run/main_scene="uid://kmybl0c637as" +run/main_scene="uid://t1g3j50wteuj" config/features=PackedStringArray("4.6", "GL Compatibility") run/max_fps=60 boot_splash/bg_color=Color(0, 0, 0, 1) diff --git a/ui/hud.gd b/ui/hud.gd index eac1717..c73a893 100644 --- a/ui/hud.gd +++ b/ui/hud.gd @@ -3,7 +3,6 @@ extends CanvasLayer @onready var slots := { "engrenage": $InventoryBar/ItemRow/EngrenageSlot/Count, - "cable": $InventoryBar/ItemRow/CableSlot/Count, "circuit": $InventoryBar/ItemRow/CircuitSlot/Count, } @onready var interact_prompt := $InteractPrompt diff --git a/ui/hud.tscn b/ui/hud.tscn index 800132b..8a55926 100644 --- a/ui/hud.tscn +++ b/ui/hud.tscn @@ -2,6 +2,7 @@ [ext_resource type="Script" uid="uid://bmqknwqr5mtd6" path="res://ui/hud.gd" id="1_rbyyf"] [ext_resource type="Texture2D" uid="uid://b1f05yx168iat" path="res://assets/sprites/engrenage.png" id="2_276te"] +[ext_resource type="Texture2D" uid="uid://cn2tcan6yqtjo" path="res://assets/sprites/circuit.png" id="3_546lt"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rbyyf"] bg_color = Color(0.101960786, 0.101960786, 0.101960786, 0.84705883) @@ -23,7 +24,7 @@ anchors_preset = 12 anchor_top = 1.0 anchor_right = 1.0 anchor_bottom = 1.0 -offset_top = -23.0 +offset_top = -33.0 grow_horizontal = 2 grow_vertical = 0 theme_override_styles/panel = SubResource("StyleBoxFlat_rbyyf") @@ -35,6 +36,7 @@ alignment = 1 [node name="EngrenageSlot" type="HBoxContainer" parent="InventoryBar/ItemRow" unique_id=237860192] layout_mode = 2 +alignment = 1 [node name="Icon" type="TextureRect" parent="InventoryBar/ItemRow/EngrenageSlot" unique_id=1231030010] layout_mode = 2 @@ -44,21 +46,13 @@ texture = ExtResource("2_276te") layout_mode = 2 theme_override_font_sizes/font_size = 6 -[node name="CableSlot" type="HBoxContainer" parent="InventoryBar/ItemRow" unique_id=1605493752] -layout_mode = 2 - -[node name="Icon" type="TextureRect" parent="InventoryBar/ItemRow/CableSlot" unique_id=1278175009] -layout_mode = 2 - -[node name="Count" type="Label" parent="InventoryBar/ItemRow/CableSlot" unique_id=1479768730] -layout_mode = 2 -theme_override_font_sizes/font_size = 6 - [node name="CircuitSlot" type="HBoxContainer" parent="InventoryBar/ItemRow" unique_id=2106106895] layout_mode = 2 +alignment = 1 [node name="Icon" type="TextureRect" parent="InventoryBar/ItemRow/CircuitSlot" unique_id=1469623782] layout_mode = 2 +texture = ExtResource("3_546lt") [node name="Count" type="Label" parent="InventoryBar/ItemRow/CircuitSlot" unique_id=2121401937] layout_mode = 2 diff --git a/ui/minigame/repair_minigame.gd b/ui/minigame/repair_minigame.gd index 2d66da6..af01d42 100644 --- a/ui/minigame/repair_minigame.gd +++ b/ui/minigame/repair_minigame.gd @@ -11,7 +11,11 @@ const PUZZLES := { "iris3": { "title": "RECALIBRATION — CAPTEUR OPTIQUE", "connections": [[0, 1], [2, 3]] - } + }, + "scrap09": { + "title": "AUTO-RÉPARATION — SCRAP-09", + "connections": [[0, 0], [1, 2], [2, 3]] + }, } const GRID_SIZE := 4