From 54c4efba58b3bb5eca16ec8542b258480b3e6ef0 Mon Sep 17 00:00:00 2001 From: Gabriel Momoh <53819287+TheGemDev@users.noreply.github.com> Date: Sat, 20 Apr 2024 17:33:17 +0100 Subject: [PATCH 1/5] add intro transition --- src/externalEvents/game.json | 4 +- src/externalEvents/player.json | 176 +++++++++++++++++++++-------- src/game.json | 9 +- src/layouts/city.json | 196 ++++++++++++++++++++++++++++++++- src/layouts/intro.json | 10 ++ src/layouts/loading.json | 14 ++- 6 files changed, 356 insertions(+), 53 deletions(-) diff --git a/src/externalEvents/game.json b/src/externalEvents/game.json index 4014758f..8f33fd7e 100644 --- a/src/externalEvents/game.json +++ b/src/externalEvents/game.json @@ -8,6 +8,7 @@ "colorG": 176, "colorR": 74, "creationTime": 0, + "folded": true, "name": "Links", "source": "", "type": "BuiltinCommonInstructions::Group", @@ -233,6 +234,7 @@ "colorG": 176, "colorR": 74, "creationTime": 0, + "folded": true, "name": "Global Time", "source": "", "type": "BuiltinCommonInstructions::Group", @@ -293,7 +295,7 @@ "parameters": [ "foliage", "Effect", - "\"Effect\"", + "\"Shadow\"", "\"rotation\"", "GlobalVariable(Game.globalTime.shadowTime)" ] diff --git a/src/externalEvents/player.json b/src/externalEvents/player.json index 7fd0d274..7b828e28 100644 --- a/src/externalEvents/player.json +++ b/src/externalEvents/player.json @@ -143,6 +143,7 @@ "colorG": 176, "colorR": 74, "creationTime": 0, + "folded": true, "name": "Animation", "source": "", "type": "BuiltinCommonInstructions::Group", @@ -1069,7 +1070,6 @@ "colorG": 176, "colorR": 74, "creationTime": 0, - "folded": true, "name": "Camera", "source": "", "type": "BuiltinCommonInstructions::Group", @@ -1131,72 +1131,154 @@ "comment": "set the variable \"Game.Camera.Zoom\" to 1, the camera uses this to set it's zoom level" }, { - "folded": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "DepartScene" + "value": "GlobalVariableAsBoolean" }, "parameters": [ + "Game.intro", "" ] } ], - "actions": [ + "actions": [], + "events": [ { - "type": { - "value": "ModVarScene" - }, - "parameters": [ - "Game.Camera.Zoom", - "=", - "1" + "disabled": true, + "folded": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "Game.Camera.Zoom", + "=", + "1" + ] + } ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Revert to the \"Game.Camera.Zoom\" variable if GodMode is not active" - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + }, { - "type": { - "value": "SceneVariableAsBoolean" - }, - "parameters": [ - "GodMode.active", - "False" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "TopDownMovementBehavior::IsMoving" + }, + "parameters": [ + "Body", + "TopDownMovement" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween::TweenSceneVariableNumber3" + }, + "parameters": [ + "", + "\"zoomOut\"", + "Game.Camera.Zoom", + "1", + "\"linear\"", + "1" + ] + } ] - } - ], - "actions": [ + }, { - "type": { - "value": "ZoomCamera" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "TopDownMovementBehavior::IsMoving" + }, + "parameters": [ + "Body", + "TopDownMovement" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween::TweenSceneVariableNumber3" + }, + "parameters": [ + "", + "\"zoomOut\"", + "Game.Camera.Zoom", + "0.9", + "\"linear\"", + "1" + ] + } + ] + }, + { + "folded": true, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 }, - "parameters": [ - "", - "Game.Camera.Zoom", - "", - "" + "comment": "Revert to the \"Game.Camera.Zoom\" variable if GodMode is not active" + }, + { + "folded": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SceneVariableAsBoolean" + }, + "parameters": [ + "GodMode.active", + "False" + ] + } + ], + "actions": [ + { + "type": { + "value": "ZoomCamera" + }, + "parameters": [ + "", + "Game.Camera.Zoom", + "", + "" + ] + } ] } ] }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + }, { "folded": true, "type": "BuiltinCommonInstructions::Standard", diff --git a/src/game.json b/src/game.json index a02635fd..30353c69 100644 --- a/src/game.json +++ b/src/game.json @@ -1,5 +1,5 @@ { - "firstLayout": "City", + "firstLayout": "Intro", "gdVersion": { "build": 99, "major": 4, @@ -3023,6 +3023,7 @@ "type": "structure", "children": [ { + "folded": true, "name": "Player", "type": "structure", "children": [ @@ -3077,6 +3078,12 @@ } ] }, + { + "folded": true, + "name": "intro", + "type": "boolean", + "value": true + }, { "folded": true, "name": "preloadScene", diff --git a/src/layouts/city.json b/src/layouts/city.json index 891ed89c..54da3228 100644 --- a/src/layouts/city.json +++ b/src/layouts/city.json @@ -18,7 +18,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": false, - "zoomFactor": 0.8503034095585174, + "zoomFactor": 0.4680787054277228, "windowMask": false }, "objectsGroups": [ @@ -61630,6 +61630,7 @@ "colorG": 176, "colorR": 74, "creationTime": 0, + "folded": true, "name": "ZOrders", "source": "", "type": "BuiltinCommonInstructions::Group", @@ -61768,6 +61769,199 @@ } ], "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "IntroZoom", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ZoomCamera" + }, + "parameters": [ + "", + "0.35", + "", + "" + ] + }, + { + "type": { + "value": "SetLayerEffectParameter" + }, + "parameters": [ + "", + "", + "\"Vignetting\"", + "\"sepia\"", + "0.3" + ] + }, + { + "type": { + "value": "Tween::TweenCameraZoom2" + }, + "parameters": [ + "", + "\"introZoom\"", + "0.35", + "", + "\"elastic\"", + "1" + ] + }, + { + "type": { + "value": "Wait" + }, + "parameters": [ + "1" + ] + }, + { + "type": { + "value": "SetLayerEffectParameter" + }, + "parameters": [ + "", + "", + "\"Vignetting\"", + "\"sepia\"", + "0.2" + ] + }, + { + "type": { + "value": "Tween::TweenCameraZoom2" + }, + "parameters": [ + "", + "\"introZoom\"", + "0.5", + "", + "\"elastic\"", + "2" + ] + }, + { + "type": { + "value": "Wait" + }, + "parameters": [ + "1" + ] + }, + { + "type": { + "value": "SetLayerEffectParameter" + }, + "parameters": [ + "", + "", + "\"Vignetting\"", + "\"sepia\"", + "0.1" + ] + }, + { + "type": { + "value": "Tween::TweenCameraZoom2" + }, + "parameters": [ + "", + "\"introZoom\"", + "0.75", + "", + "\"elastic\"", + "2" + ] + }, + { + "type": { + "value": "Wait" + }, + "parameters": [ + "1" + ] + }, + { + "type": { + "value": "SetLayerEffectParameter" + }, + "parameters": [ + "", + "", + "\"Vignetting\"", + "\"sepia\"", + "0" + ] + }, + { + "type": { + "value": "Tween::TweenCameraZoom2" + }, + "parameters": [ + "", + "\"introZoom\"", + "1", + "", + "\"elastic\"", + "2" + ] + }, + { + "type": { + "value": "Wait" + }, + "parameters": [ + "1" + ] + }, + { + "type": { + "value": "ToggleGlobalVariableAsBoolean" + }, + "parameters": [ + "Game.intro" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "Game.Camera.Zoom", + "=", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + } + ], + "parameters": [] } ], "layers": [ diff --git a/src/layouts/intro.json b/src/layouts/intro.json index 1cc53f3b..b26849da 100644 --- a/src/layouts/intro.json +++ b/src/layouts/intro.json @@ -70,6 +70,16 @@ "\"Loading\"", "yes" ] + }, + { + "type": { + "value": "SetFullScreen" + }, + "parameters": [ + "", + "yes", + "" + ] } ] } diff --git a/src/layouts/loading.json b/src/layouts/loading.json index ec8b09a2..5de68466 100644 --- a/src/layouts/loading.json +++ b/src/layouts/loading.json @@ -18,7 +18,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": false, - "zoomFactor": 0.4279352201621799, + "zoomFactor": 0.31750495932841655, "windowMask": false }, "objectsGroups": [], @@ -139,7 +139,7 @@ "BarBottomPadding": 6, "BarLeftPadding": 4, "BarRightPadding": 4, - "MaxValue": 1, + "MaxValue": 100, "InitialValue": 0 }, "childrenContent": { @@ -328,7 +328,7 @@ "parameters": [ "RedFlatBarw", "=", - "SceneLoadingProgress(GlobalVariableString(sceneLoad))", + "SceneLoadingProgress(GlobalVariableString(sceneLoad)) * 100", "" ] } @@ -360,6 +360,14 @@ } ], "actions": [ + { + "type": { + "value": "Wait" + }, + "parameters": [ + "1" + ] + }, { "type": { "value": "Scene" From 832b27b35fed642704005c95c8b66b8249b3d255 Mon Sep 17 00:00:00 2001 From: Gabriel Momoh <53819287+TheGemDev@users.noreply.github.com> Date: Sat, 20 Apr 2024 20:21:46 +0100 Subject: [PATCH 2/5] added new phone removed old phone assets --- .../character/Player/phone/phone_app.png | Bin 12024 -> 0 bytes .../character/Player/phone/phone_apps.png | Bin 35030 -> 0 bytes .../Player/phone/phone_battery_0.png | Bin 269 -> 0 bytes .../Player/phone/phone_battery_1.png | Bin 266 -> 0 bytes .../Player/phone/phone_battery_2.png | Bin 258 -> 0 bytes .../Player/phone/phone_battery_3.png | Bin 237 -> 0 bytes .../character/Player/phone/phone_lock.png | Bin 6489 -> 0 bytes .../character/Player/phone/phone_lock_1.png | Bin 6628 -> 0 bytes .../character/Player/phone/phone_lock_2.png | Bin 6648 -> 0 bytes .../character/Player/phone/phone_lock_3.png | Bin 6675 -> 0 bytes .../character/Player/phone/phone_lock_4.png | Bin 6652 -> 0 bytes .../character/Player/phone/phone_lock_5.png | Bin 6635 -> 0 bytes .../character/Player/phone/phone_lock_6.png | Bin 6396 -> 0 bytes .../character/Player/phone/phone_off.png | Bin 4087 -> 0 bytes .../character/Player/phone/phone_unlock.png | Bin 36562 -> 0 bytes src/assets/character/Player/phone/pointer.png | Bin 316 -> 0 bytes .../character/Player/phone/pointer_1.png | Bin 316 -> 0 bytes .../character/Player/phone/pointer_3.png | Bin 316 -> 0 bytes .../character/Player/phone/pointer_4.png | Bin 311 -> 0 bytes .../character/Player/phone/pointer_5.png | Bin 312 -> 0 bytes .../character/Player/phone/pointer_6.png | Bin 319 -> 0 bytes .../character/Player/phone/pointer_7.png | Bin 315 -> 0 bytes src/assets/character/Player/phone/thumb.png | Bin 766 -> 0 bytes src/assets/character/Player/phone/thumb_1.png | Bin 801 -> 0 bytes src/assets/phone/apps/1.png | Bin 0 -> 1986 bytes src/assets/phone/apps/2.png | Bin 0 -> 2209 bytes src/assets/phone/apps/3.png | Bin 0 -> 2045 bytes src/assets/phone/battery/1_g14.png | Bin 0 -> 797 bytes src/assets/phone/battery/1_g15.png | Bin 0 -> 801 bytes src/assets/phone/battery/1_g16.png | Bin 0 -> 797 bytes src/assets/phone/frame/1.png | Bin 0 -> 3813 bytes src/assets/phone/frame/2.png | Bin 0 -> 1705 bytes src/assets/phone/wallpaper/1.png | Bin 0 -> 23487 bytes src/assets/phone/wallpaper/2.png | Bin 0 -> 16550 bytes src/assets/phone/wallpaper/3.png | Bin 0 -> 17700 bytes src/assets/phone/wallpaper/4.png | Bin 0 -> 15392 bytes .../ellipsemovement.json | 1455 +++++++++++++++++ .../spritemasking.json | 145 ++ src/externalEvents/phone.json | 310 ++-- src/externalLayouts/phone.json | 179 +- src/game.json | 836 ++-------- src/layouts/city.json | 690 ++++++-- svg/phone/phone.svg | 460 ++++++ 43 files changed, 3004 insertions(+), 1071 deletions(-) delete mode 100644 src/assets/character/Player/phone/phone_app.png delete mode 100644 src/assets/character/Player/phone/phone_apps.png delete mode 100644 src/assets/character/Player/phone/phone_battery_0.png delete mode 100644 src/assets/character/Player/phone/phone_battery_1.png delete mode 100644 src/assets/character/Player/phone/phone_battery_2.png delete mode 100644 src/assets/character/Player/phone/phone_battery_3.png delete mode 100644 src/assets/character/Player/phone/phone_lock.png delete mode 100644 src/assets/character/Player/phone/phone_lock_1.png delete mode 100644 src/assets/character/Player/phone/phone_lock_2.png delete mode 100644 src/assets/character/Player/phone/phone_lock_3.png delete mode 100644 src/assets/character/Player/phone/phone_lock_4.png delete mode 100644 src/assets/character/Player/phone/phone_lock_5.png delete mode 100644 src/assets/character/Player/phone/phone_lock_6.png delete mode 100644 src/assets/character/Player/phone/phone_off.png delete mode 100644 src/assets/character/Player/phone/phone_unlock.png delete mode 100644 src/assets/character/Player/phone/pointer.png delete mode 100644 src/assets/character/Player/phone/pointer_1.png delete mode 100644 src/assets/character/Player/phone/pointer_3.png delete mode 100644 src/assets/character/Player/phone/pointer_4.png delete mode 100644 src/assets/character/Player/phone/pointer_5.png delete mode 100644 src/assets/character/Player/phone/pointer_6.png delete mode 100644 src/assets/character/Player/phone/pointer_7.png delete mode 100644 src/assets/character/Player/phone/thumb.png delete mode 100644 src/assets/character/Player/phone/thumb_1.png create mode 100644 src/assets/phone/apps/1.png create mode 100644 src/assets/phone/apps/2.png create mode 100644 src/assets/phone/apps/3.png create mode 100644 src/assets/phone/battery/1_g14.png create mode 100644 src/assets/phone/battery/1_g15.png create mode 100644 src/assets/phone/battery/1_g16.png create mode 100644 src/assets/phone/frame/1.png create mode 100644 src/assets/phone/frame/2.png create mode 100644 src/assets/phone/wallpaper/1.png create mode 100644 src/assets/phone/wallpaper/2.png create mode 100644 src/assets/phone/wallpaper/3.png create mode 100644 src/assets/phone/wallpaper/4.png create mode 100644 src/eventsFunctionsExtensions/ellipsemovement.json create mode 100644 src/eventsFunctionsExtensions/spritemasking.json create mode 100644 svg/phone/phone.svg diff --git a/src/assets/character/Player/phone/phone_app.png b/src/assets/character/Player/phone/phone_app.png deleted file mode 100644 index dbc0a6dfe1c796b5986b7a71799495c3577011aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12024 zcmb8Vbx>Tv*Csr;!{F`?gM{GD;E)h31PJa9!QI{6-2=fPxDFB=fUP~b-M8iRbDnehiBeUO$3iDV2LJ$AiV8C7uzM8%04IQo3@ZuWuU5lu zXif?`E&u?=?Y|#ftNx`K>>;VEthTF$qlK%7v9meA!^4Bq+QHVv)Y!?K)6v;7=dUOk z06+s!l#$Z(%stKX@FZW#`n&lSsXLLTf8#4S3UA??0mV3@yP3$OL4{EJm$8i#haEFV z{wW9V#i@8+C#~9YRMnpMJ2N+5eyjsfZbRYe_r5l84wc@ z888Errp~;sP&0+z-bH#r^IUo~#Dg)v2vXRGCi=Fw-O$9h zjUeh&hC{E;^^KI#FtZ|f4GoP}rQ|EYK>HDt8dsJf~vJs2V7a` z8o+(;7ccrAo0*P({%)JRvXT;KnMi?FC1-|h4rsg=PPM4gjX;TqQzxAo#KpDga*g)q z2mw1{_qh>t21m%s__~Zr8{jHPfn(@LH(Ju6S9{tB>cx~y5tw61)kIWG-mq(3yH%l9 zK)qJVxk3$W49=7*V%Rm(afi6(@TpxJ9tx@@sYi!7D<=2wJ%+sqGzZY6q@*a5h6{Z%@?lABPn1>D8>k2Q1Qc-;ss0Iq zm8cPfd6ih5QE5d;bkZ{jSApo};$}Jq!*G?H&9wJBchFtIIX~ne$@-achRVu%)7|p8 z%CBFuTJ=~62I>N?ZF2>`;8BbikEc(zoxMEvebLJYaj+~59=b*=yiN5kfu1@BpgbC8 zc?7HUZ+TG_cwXTzcX?^7Ud~z(6x?@?aP#t}y813ueY|@j7DoXSZ=!0G7f5S&v_-WKVw8IPF?5I z!ARrARQg2V(I}yYY7Ww@Eu|Pfy=AkTy~aHh%5P9zBS)qBrT&X>FQ6y4TQ%m9t5~)6 zznPl<^-A>@8kjYDfKL?g-IpF9d2tOsc=iwC$j%8yYnd3_%Cp6?s{Yg8B)MsZIh~KX zolLLAlJZAp9N1O2f|?UPdFY4m22G;pw>(Yy^zSG{yCHs{G)G&z!1nuCXz+>=DF$Y@thKOUA4Hv97<>8$ByifN zE$hAa#-TVp#6XuE$L}=u^YY)xQe=d&q<8k)=xl_R$hDu2SJmf91fL+}4kx6&FY9eS zUGP*QLP%=JJv|)+ljTqM7_cq_fRuTty$?NE0d?Kf&Q7R1cLt$`emH@=1_sgaCRQ7d z_#5!Uswpm=gpc8|y1|`m*H$%K+}rrjCvsZBXS{FT$m2GDZj^|`LI_*Paw%ei0iGH; z*tTSzGA4cbO~$#DlL`BZjZv28X=#j}55+i}f1x|c65;Z?@7vNxUF%fj&dm~t?TM%o zI9dmO?D;4eJY6m~UK=gGxcvN5TnAs>5cI7|AvL9hbMWC6WoHoX$2QbcaRam54xw#0 zqA&CF{!^@8ainSsMgRU;OYwKJj`t&`(oIAkx(`8@}aDK<*+@5`9AiQ_-f zFpBF`#HL95wAbJO#k<_a71SsuQryE#+5ntg1z0^pJ@A z4TNncwr%mf(HTw=GZ6KgjffzNySu|vHkS295)y^m-U*PR*vxQN$vy%%AIH$dVrTOi zM*K;44CdIxEH^{qJuL`xn8WGI%#dum<2A_$C~K>U_MB(4ec1S7kA|TJZy-!L++BTT zJ)TQNG$TL?876waddW|ZfF%!{wEZBI<<6cEpsOEU=jL<19L4Hu(T+sPczAj}V&?lC ziy~$KS76g*Bp=2(y*Ty$DvnF?LLUII5~PPM7ZhI|bN1~k=D*6PH;;4)?Y&Jrx#6BMr7n`exebSV$U@)1Z@3SqY3=matUFQzI!OiBCpjJ zmf~`NxH>NaJUuP0q4=I$Tt4KJh?3JXZoh|*9|`tweK$Cwg6m<{VGo*Ru9ce^y<<4# zZM045TiEXTUD@RHbN^~z0uE9MY#78B~!q*SqJhK&?gS-2pZ}3=Ue#Ko68}=F=M69Mh;A4NFF9u_^uC zcq219Ae9{ExY1*R0&H8!(t}6dRB{~shucpPl@`0P3U?Q*0w9VIuG)I=G+x(N^$2A8 zh&s1UXtx3N-^!ocrZF5wX!Q%VVG9Ys&WYPe}F>fb7rzo4FWT^tY1frQ7W`g2ToEuv38Zv3%dNp}YQ6*gRq*uR4* z{Dka{Jy9Iy$2mlFcERPAmh0-j(x}3*|qZc<-5Sj4KfL>j@@EMW& zKdzToz8502@xe+U@@Y(QVB4?X*CRR3X{pcAkcc-0REtl3N#Ck<7ZasLE1|+&t%g7D z6#f|_#af&k%dFD*hKLBdm&RB*Yq*A(_7B=yz!8r5mpkwBhi{w0NXYxNHnF~3@C}9+ zM7Tpd`WJc$WekyuIS@WKAgp4&V(VZ^wcSBHBfdST$l8xtFKp`Ndw1ftMt&^}{phyh z)0gHZ>Lf_@dHrWL#Z&JCN)bab=F=Q04(FZ8owNL?Tihf*AfRawK4EKkcilmBRxMjZ z+9lHBa0C}kPwv|pbKm^e2l4kN7Dg)1pC^8tt<8HhH`aU}cxab5^ zWB~}AXj~`f-$znl02=1Wsxn!N+ph@5e*ITU_#aQCZVr9Sbdr)Ha+Aya8dJ?Vv*_f~ z;l3Uee7MN~R?KC&t}HJLir;O&=CP-+q<*`f#p#Ktsv0XbZ9b}~glE%?W-A1j{ofaU z_}>s18yPf9qkVRk8(c|y$Ji>oX6mj3;(woi?xAY}F4Yu3?6>|M@Uw zwfMHH(Qs+HzH$Q^^^I$sIUfHtr9pM&h=)YNDdS(Y9_E5k?Mg?sJ!nz(&IXHT>s**! zD}B-bKOLCyJ zM*x6&*<`T9BlC;HyS{PD0YUfsRe@IyqBKiM|w@}8iL##kt2yt_NK&~qMCH8JYL3#O(x-)*|po-x^1 zwKjgU6OW-bGBPLs!&$U{uoxZNuxmQH!T@Txw0Jbs=dDaAuGWkE%3o;bycTA(ak)fO za~fEv8jKNx^|SSb>O$2}#j(0l^;)#w-d@<%K+#M5Z<^DZItONU8;xmkEFMA#3^(j! zTJC)4zPheDN5oz~K1x_8oaw}RY|Q?s<^*95JEf-@0wNpb7#)$~e30h>=vIHJl< z?wWo0TvMe%I$Dz@MX`{;Cc#E!Lw1}`9P$;G%?Ikm($y$*VWV6*XwhL6i~Lqj=U@if zpXLjqi@Y{Y#^64V_hjdGT~)8gYZG_p*!aWUbWDDDuA)*QaYNnJ$r=jzl!P{hlkFte(f=TDd_!ipP30xLV`jvElf7di%FDkvO^9lyh7&b z(3K=85>p4+GhK27p~tDK_)6aFz{{;|zCvEb6hziHa=cWin2|g8wJZ}EfzG%-!4HF5 z2cQ#vmB%G{(}7|C5gkSb%@=%E3%gn1AP%@5-;eRco~*0BfjZ<7eH}88&erTCVOD9ZlUO_`riXYt;whW+6A*5S4Ca&`#@aNtkp!eZo^ zBXrweA6YI2Kh00%h2FeZc5AEF&)`ouTxWN^yWgfk#9f{*4r3WT$cyx-^yK#+3X3Aq z{b|;~sYRC@$^3w0YNMqQ$T+0N{v(7K?u?*xKLA}&j+S}_qy3nh`whHIEv*I}1YX#j z$$tMS>ewsz2#=_mocDl|7#KO>xwvpm=IfO6Mz$2Tc|0%7sljTbFs2C&%CdmK?7qhd z6GrFCkeS4FKT=E!nZg$b8otjRF>sp(_gZZ+~YL1bLn(Kqb2;u@RqiiE^ zo_#}-jR*aqB?dFCcWfP7Q^6FjILx8KBsUzY!T~=Z89Q9>(%V$^Q&!d`9RV)Wol@U7 z5xB?rMxFil56wo&bNH4!v@vp$`l&xed>O@sg#Wn`ySbcE-f^s!pI2C-yt!kl3Dm0 zBV+Z4w33{U8mchHyCtA{-rJEFdQ}sq5fLS2D+u3BHfj@XI zWKawYSQnaWKUp<*R$8hhE$$hKU*H6804}zt!Qv0-rG^rOXL@fyKW=>bPP{!tbraTg8rq&!-Sgl8=6BLba~E3w@&G10Wgk@U|B) z_%z+BDpRR1t#)O|=M_rZC-0u=^!c+hO_n7ZuiXU#r$9rL{DzU~tbxeoo|s4D9g~Vv zXi!jA0M!7@^Zee)iH4{7%aP8fdB60;#q5cExEN&M`y(J5s%}hAfd246p}pFmZdKZ-yyHw?MBPp zDEgPnap)#lcm8-{3pFH>0Aj_UYBkpwY!`r$>EX{J&X%TlpDmZ@;g5Ln*AifW(Rf)y zYUm@zLZop(g?s*}f#K78lzjEb(6TJlymTJ*XFyYR0EU4=El^z@2N2|T?eE}Ybw-Jf zBa-}%VM+e>OmQpGa>oR%M;GM;0`-)El_-w$t+b@e=dO}HE&unK#c-pBlvu@M119#S z4|j(bWK<^Ne~D2wRn>e-~-F`rd@ zkY1^8S{UJ9P*rq|464~_DEke7d~``ryJJ&OTtne6@_lb57i)Znpi^{9};WOYYQjDUWuqMBUM}4`^Lqt z^;-dRr@myy;&<%V%urUhGx`i7-D{2iPe$`U=<9zbJO91v=i`ula}>?;L7l9)0T`-n z;iLHlgb|{a<+tx5%MFxyH(_T_I(=BQ9ZjD#q=z_A`>k$Nw-N-|?YH0j@epz`I@+`E z)OdCuJI2pDzukTIf)U2iA@2WhX}GN(V1XaBO8&R+DE*P}`@zHAXnt=ni+QUe(tnf8 zMeis}*ccoz+wQkT4Hm~WXay*Odi>5Ykr6!o^Pf-afT)PTm?2`&7YdY;Sy<{Rn1+U= zG^dI~W+SX>q3K{*FL=@Ytc;UPW_9hXyzeH=(zmMbPckl!_q57#FvhHoU=Gji|BYSSun@Yjj0}unxOC!kja<2(1GDO@9MO zVas|ftn~*U_~qLZ5^&JK-y2JwEFRA4rQ`layB#&8y zDMvG@&aS)6?7bz5@asw78ZOcZK5wh}i!_MA3tDOWeWl)Je1dZ_h2FTUXDKQOqra5@ z>(H?2-Y{Ns9T(gy({rUltfp#pcg-V!rRI;H(|T3Zc*q<+*0{@&KXW&FEfysRchzcsT-Q-HBO4> z&7l;cA52K5dFau>M45e-JQ6{0 zb;WME(L9DH+#+xjA2R4fLileqB^0Iz?c{!|6qgS&KyJ35xo}$0z_EWL7wJ1=91U`;`gR^b# zd!tN*a_s2xW9JvlTpS}in$T4ugey5B3wE3{&25(=Elo`t5=>5(pC%(Bj7H83m_9Yw zQw<7T>)uGptO>ATMolf*#adu*7iPMuIGQy;@qikn9!rbJxtvd$s}{g7Kn<7%pP7TlO723A}x6$ z-ue|{H);GzzzRLz`4Eu;KVzol@WrBb@GCmcI%GQ3iWeO^mW(R}i zZ%O6N%f|RGMNZ3F!l1P_0lDeCG(1g+i`(An57}x9>#dTcNksj4y4fpH((s}ULT(kg zjPrJha}kB_Wkya(gH#7(%JhlsvYz>Wz=}U{H?iUIGTrK=sv3rV(sPQH1pqKHx~@a6 zQ6Ef5s3-KVjQFF`7k0C8wKQ_xup<6!W_STon&RpS?~bfe@@vi?778>*8EbSW$;#?? z<*`TcJZ%h|sQPe#(Zj$xUb|rD`!4F!W97oRw+9jeyXzqvBm+`!7(qX5Nn)`>x7-Jj z^pqSqLug~dtxuSw$PTZUW!(~jlN3Odw$|*oo9!~d1 zr$>YZD?O9Jc6?}3GT)lLQLW~4h7SVJ^u9pHyg|F(dagWHSOs=~E9iU24KSK3e}5TX zQywK(a&U4Iy7akiwkYTl4u)M)b3FKR50?IVZ=}Fq^;3WhfIxt-7={6)Po1ppRCjF> zP^jP-Kqea|%uf=$#Mo!DTQvJ-`TmCOX`2{gq!S#{ThMo~m&Ijn!xL@UBavvuywE~2 z(_n3}+;WR$IQD!QG-)y3=Hb}7hW|eFoeVmFEDo7Jr=}20d4vIu9kp_JTU0(8Xx;h) ziph3#rR{P2?sF;-9vt{6&i%Gsw%U@Kz$ysm!sSFDX_q2~T4aYDnzwNz(11OF0dEPQ- zJ00dyCztBQRd{w)+@|6v3xllMelpn`SPb}x&xYcoR5(GKae~-QA26j=*NWvI!;?!% z#bBH7Wq%lh?4b7_VCIT=VDIhi&DgYDrpL+9!5~c~3rAI5J-D%vhjDTudVC)N21PQ@ zbf)0SqCnKo<`i4tWyu&1RkA1bt&dE_zQ)_@R#J+8(t&^1|R&Y&aB@1WK4Pw0? zaeW&E6FL^l?-NJ#9i3y*uHfr~Jt3Ku>${z07_!OG7U}<2qA2kXH{JEu!sGt*o1y+p4XNtu5@_I*n)1 z&~6UF&jC&&MJ;ue56Tum^r^S^LEACo6ExmoBitJdhdcdj1$6W)6*osyLWeavgyu?p z{d=Sh)7sANT~u5nDCXzSpF*{f5nqu}Q1B7p=29~r(Nj;&K}<0p5M9XR@}D7C(&b93J3nY0QW7kY*LXS89|Ehk=-DcXbkk0 zjt;U;_tUWy^Cda+^@-oK;J|2MeK~NR*kNUt5=J_GG#?y#W9{Zy)V7BN#XB8lH?vmy zQ@cEq5}25gD^HyAT?JH7F{O{Yr^QQo; z?HcN;h}ntl11ifg-+2=w?>v7dh2+!&Ud80*!q)EeX;t`rPsH9Q6$!RuH|2ZQZ99);h#=B?EZ}-bdxo9#o10rt_0nzbgcfA~a&!rhN6x(8}MYtO4CFE1P zUrx;S->__lhjUF%YkT|mCkkT1!b-RKW3-x;LZxM8jI3}-gf@Q*KL*4bkuWKiB8LEQf z-QkjwEBe`v43(-)g)kUu2;rqgtf{F{+((j<6r@0=MMMsP!-NC^lar&>s~3t(OGDB5 zF#i3yx*9{PnvZd59>#My4Z2WU*YXtRApesqHF!czGAI9(UW9~%z(8&)XI%ikIW8Ni zK^t>_Do?p9!<>})L;m1#U2pu?udG0@5l>d(f(>mn9jtp!TYYet*w{?9NepP~>+50M zh6}0**^F3NSW!zADtQAlGpaj&8XEZNT!z?y^LyWe!^3`94>~$J3TLfUb#&0eja5H= zig@y)5Vsg$3DFPY8!@qOR9otv9G(Y2?pj%%A^(&DW{`yNsA_wV3z^ITy!wj_(j z_I9D(@J#@0+5yv-_1YjS8yh8xoN@Y_+gs*6F?(CvkOdoAn2?C!iI41`h$(2)Y)p`N zVG_IMfw-`!2#%7Hl653cg&9!T(tO zRu_-6jX0;aHuY{|@~izWK$EOM9B4dJh7RT$v|DTlb#-+CgWZ-LHtQx007>09c;L!U zlYk?&Iyf+@V7xRhSr}+syT?~39i#&vul(w!67kIfr$N0j1lU2A zz6F+zVbtd&rocuyaevH(NuuI+VKS@aeF{p-u<3niZW0+50`;deRT0ff3?Oy{K4k^W z3hXwzNF{v*7xtWsDk@OS&CM^hHevjbT)<&4iC*4_mrU*R=a}7*1ZGhVb7QMr77RVk zPXmv9yu5vO{E$=k-N7h)42wuk4vwLJmbkVSV>%MAmSllOXhZa)G4^tQ8X>Y(W2w#% zr`sT5c2@0Vtrcf~x?tq)PH=c+E*k8m)i5@bB#f{;4L@y|z^J^77hg={M^8 zZof9Oz8;s9loT3Sk(HU**Wq@YoQ*^jgY@~kos^{|GnS$`9PCTHe0*hjXf5uiy3H*u z#?H=o+fF2)ad6$z?$iCH=kxW_mvN3(hNuNI9^=bDlY*`XKtkK_nJNj4+I$Z(Ol16p z&VD0F*xIFY>PO4Q5Ea2t_}>S(Nd~te5gM!YawWJh1y~t79M8Wk0b5}_Na6GI^Kz>r zwSm_jAtoj!4PI1fDvWj1uh_v{jG*_GRkZfCw-~?uDzBqe3|<7RnwidUgXxIV!3=G# zxF1-3mo8!cis&GjK`NPH(ButjFd(Xyp_{W(wGKCbzX+z@ z`^Dic%(v(Iy+<1quF8Ta1-!7>jYA}~N$18yD49jg-*4)O-xbW9w1CO)BxxkY?9yQq z-QNsTUPhV1g6^|hdLSwdSsaskVG{@=PVQfwl+jcmKMXQ-YtA2^=Q}On;z}$crp%L#xRCZ9#Un z(xXnQW~J(WpmFBlfjR@88p9t}R4`ox+jwL1LjlUe(@jq-|7|#h6{uPtPOR0q|7+33qC8e!SLgmQq&}<{9wxlZD;?0n4#nY$=O5yOS(6JR1CbT+?Ab%6+5BpDojY9MN`=`ND18^ zxzDPohDFPyK^rUy8Xs_I-9OnNBqT)JmM>8gW_I(JBLV-&0)JMU2n83(RF1)xu(|oF zV^4`WY>Px5X?>Xrm6Th8dO|?CjG2AWKaDAOrVt^!M-I zc;Uw0==O>YrradSV8wnTAS^bEQe?y^TCg#O1xMqmfo-k%Vv8RXVl`oXT%pv8&_3Y)S%NBzj*!ob8{b>y z9KYBt{Gt^N|D*8<9l~AE1gkLhiE~$07#|-$Mkl>H1K0@D!|nmt;7b4Kz(mc%2u2i= o0)Ys{EaHZ0YF}tmFkU6fg+dAOcX>r%s&#;(tcpx6*eLja0H9lqn*aa+ diff --git a/src/assets/character/Player/phone/phone_apps.png b/src/assets/character/Player/phone/phone_apps.png deleted file mode 100644 index df7cabeaaf478f2e05e70ae61f4aedd0fd466914..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35030 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 N22WQ%mvv4FO#p2WW2OKA diff --git a/src/assets/character/Player/phone/phone_battery_1.png b/src/assets/character/Player/phone/phone_battery_1.png deleted file mode 100644 index 73b58105c4c54be6845a5491f8db00f39dfbf046..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^VnEEz!3HF&|J2q2Db50q$YKTtfdCL@R9{iE6DTNI z;u=vBoS#-wo>-L1P+nfHmzkGcoSayYs+V7sKKq@G6j0H0PZ!4!jfs0F8FC#85OBHg zCAHXWTT?>f>yI{lz2X};bIzFK_~wdQQ-m$I@{x?`{g=<`?77>@$xzC^#$&mbRDrDE zqmYa0GKKKtt0`BCM6+;pvPderhXaB2Lm{kN89hWimC z(~1dFKg2%--d)a?zUNo9A8+0FA7X-!-)->k-+WBumFdHSM}_z1XPBS=kf8;1B7>)^ KpUXO@geCxmBV)$^ diff --git a/src/assets/character/Player/phone/phone_battery_2.png b/src/assets/character/Player/phone/phone_battery_2.png deleted file mode 100644 index e53538681afc06bdb37912b2f61babedf273264d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^VnEEz!3HF&|J2q2Db50q$YKTtfdCL@R9{iE6DTNI z;u=vBoS#-wo>-L1P+nfHmzkGcoSayYs+V7sKKq@G6i`vWr;B5V#>BIe4Y>{l2)Nv@ zTQpUnNuxr(|MA`?_f1}@s%(KdOqFI_hGIXD>d(oWo;X9cjL9LlQT1s-_x1vL!OX6; zd5wP)t}?8ixKipx!1b*8$-L1P+nfHmzkGcoSayYs+V7sKKq@G6i`u>r;B5V#>AtS4Y>{lh`3y| zo}Zz5qocKYQ(5=AGg=Z&Nx~<#UQ}v2`@MN{!(oFx;tZt>+qRsZA#S6tY1&lvN28QY z?aExM>tVt2dYi*_53ugIdg%To#?>mXuN7QfSKqF__2)5G3x?U(3Z^d!uQ&A5dH;j! gL*0aH^ULd*PN>?dm-{F=0A0c0>FVdQ&MBb@0KYL-!~g&Q diff --git a/src/assets/character/Player/phone/phone_lock.png b/src/assets/character/Player/phone/phone_lock.png deleted file mode 100644 index af1e2a4c47f43c1013e869526ef69611e8325457..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6489 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 qSc0E;p>ve|{_;r{|adEi_C diff --git a/src/assets/character/Player/phone/phone_lock_1.png b/src/assets/character/Player/phone/phone_lock_1.png deleted file mode 100644 index 4a19d23ce9d6d7fa64aeb26f60ad633a885b7b08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6628 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 diff --git a/src/assets/character/Player/phone/phone_lock_3.png b/src/assets/character/Player/phone/phone_lock_3.png deleted file mode 100644 index 043eaa4dcac1753da7959319168c8d2b4f146993..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6675 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 diff --git a/src/assets/character/Player/phone/phone_lock_4.png b/src/assets/character/Player/phone/phone_lock_4.png deleted file mode 100644 index 270dd7657b59877248160e6a39b9dd693930c4d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6652 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 ^dx$Uq}~3drC1M1$Q2uKcBI# zKql_&JX0$+kZIGyYb@4F>syW(-9%qk?#igVzfD9;%#({ifmLBJ`kkE}4P*MEF{fc! z5(jd!9nK_$G;UhbT-gBkFOQ1R^+~0r+<|hepse$&*II}tIB~Ps>@w~ia5Nz9Z-iP{ zTx@5)i(`t5#9;K)*k5p9z^DOzdH|XjC!5AD4S05?c%q^~{5D3}415E>Jg!pz{ zHI!N6IiWKfTo`FgfuhH75p{9%y046Y`}BhGSlI)rGHjN-5Dtg42+pW>Hb12bO{&|w zM=+ckB|{azx*~6Mad9EE7-qFN(0Jj4Qy(lU{D%!{*c8B*p`B4OVuXd1#2xJMpvCj9 zQOX56czr;QF)-5JukzK9*{)(h0fLk48D6Vqvtg6ZhI>v*dF&XEk&^ptDGVn!!XsHe zk#7zrY>b$5C^ux?-ttwHrkl9sttm;*_{A}H&JFtl`I)zza4pW^caoOCx_kQ@7{!=@ zKDj6b2h)>Olu??|CqeW~VRk7Lm?J?1Mv`!is<#4Jf9=o(gTZFVc^MBRg^h0Mw`r*K zuE+7*CNT{*&fp}C>=}st&Rf2ks15qH_$W?k>clkyVWuGp{^UAKNl7`gREBkCOqc2M zp|#s9pZ}0K3|LFkMSRy-brG*VoxRRYr*rm; z0b2+xI1OxPaVxT?V&-vOb2Ba=sm@|g@C`564oFG?C7o64v$Q4kW3_SvIHXYO7z8x(f7S3+SzxF1rbyvv)e{Mifbv?Ce73-+~01|Ut A7XSbN diff --git a/src/assets/character/Player/phone/phone_lock_5.png b/src/assets/character/Player/phone/phone_lock_5.png deleted file mode 100644 index ea909e6172c1dc902f03a1a92e631b4c5af68932..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6635 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 diff --git a/src/assets/character/Player/phone/phone_lock_6.png b/src/assets/character/Player/phone/phone_lock_6.png deleted file mode 100644 index b8bb3efbe7376804cf87845d7990059d39545135..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6396 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 diff --git a/src/assets/character/Player/phone/pointer_3.png b/src/assets/character/Player/phone/pointer_3.png deleted file mode 100644 index f12afc89007c34eb3fba5cd2fe919c83de1b88b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 316 zcmeAS@N?(olHy`uVBq!ia0vp^`XJ1~1|*BsC$9lgoCO|{#S9GG-$9shd+g^FprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt(4#T^vI)8sFaB$a}~@q~&3? zSV?4y;-w2|{90@Z!WS;8S6{fa!P%(8xBb%!2Tv)b2^Knc@7spYf4%vJ`R@m1B?}zX zBqy-lIG7hJUEI{)r5J3%AhP=AVaWqi6(b`!7gWgw?|B%MQ?@+5d)l;L&-k{B+Zh<% zSF_Q67|D6wt0L^sW}$ggKdfm~}U&Kt)G9T^vI)8sFaB$a}~@p!H$7 zSjoL6%S#v1__f#+gfCoFufA}}ze2MryL&N)O zHrfv(InR4lgdN%}G;ivMH7)6?ID|rb&&SWat=N~{wPeK=o#it3lRhr_`(1`-V(*U) jFD~W8ma8aekA#@54&_4{Gu6{1-oD!M<0a$+8 diff --git a/src/assets/character/Player/phone/pointer_5.png b/src/assets/character/Player/phone/pointer_5.png deleted file mode 100644 index e4fc7c387dfe2ba01514ca9871fdfc9d27528dfc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^`XJ1~1|*BsC$9lgoCO|{#S9GG-$9shd+g^FprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt)GAT^vI)8sFYj6gp%e((f5sQ&zQD=6G;PsN{^qlV|?DbFICY{m|x3?51QUsgOyG zg-x<=-W?ARw$a|<^^oDh8Zmxx2J^Nh8^j#GTRp2dy!GZgzx`rU#r}R^c+*?%b7ni| zd9RAFLz{)>P5rQ@C0*4<`(Y$5q0q(<3%p-CiHIkKhIcUlc2oV k-ISH<-!iiuVR=1YLs{{yy8878Ko2o^y85}Sb4q9e04eQ!*8l(j diff --git a/src/assets/character/Player/phone/pointer_6.png b/src/assets/character/Player/phone/pointer_6.png deleted file mode 100644 index 660b3ca064005ab29604b5d63695cde7b4e081c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^`XJ1~1|*BsC$9lgoCO|{#S9GG-$9shd+g^FprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt*RfT^vI)8sFYB7$rnHh2FN-MjF!EmPQq0xg!2YQ#z3}8+8D5G3c6chgX(~sgyM`l^wGd#e) z=;`a0bX6PehmoA;y(+>EZ5En0^}`w*LaWz&T)g~D!VL3LoqMtWnpZuPaFmT$WFIN= r%b&wC&2YzZ+lD^hpE})Xnco@i7pb!qUFNtB^cRDttDnm{r-UW|OIv@a diff --git a/src/assets/character/Player/phone/pointer_7.png b/src/assets/character/Player/phone/pointer_7.png deleted file mode 100644 index 151ea7b358bccf6ac553373be7b796cdf2110925..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 315 zcmeAS@N?(olHy`uVBq!ia0vp^`XJ1~1|*BsC$9lgoCO|{#S9GG-$9shd+g^FprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt(4!T^vI)8sFYDdiMC{r)QTvWfbnaE9n9!Tz7l z%qec)^dLFbX=VY#jofA0O7B$WYn^S%VrVZs^Fec|duZtP{gcJ6ZF{S&WcOpqku_&4 zLXWLBiktdzRZn>89<9frlIu_55Ym#e|9wiPEpdMFy_)JZdP=We&U5sXW0d)?6&1*I nVYQ(BwWS?97VKfJnl#;fvYdtsk6A?x&`%7Wu6{1-oD!Mf3iKb>69JwVXaJ8*yg+P06wu=ihBM-h4;CTK`&Ci9w908>Xu_tsOP+W?K2lhBzd(O&So5!AR)r!AHR99# z#M9o_GaKx6?6P50n;V=nLz;_6;CSUBi}qr!f{@$~JIc>9TnV3lo?$zq&~g#)Waq|e z&1uIx=e#bNvh&yR)|+;bt;&71i=2oBklv^Ql znaFAP4UMu|d=r*RMsGE3I_J1V?eUh24bdgy^JXQe7&P$eX#L%Jl(p#YilUYF2l(t< z_`Wchz1kjnS5&z`Orf~Xpv%3hJ@88OSB_^rffj5F8n!Ohtke&bP`o|+_YTHg(oq7E zKPFoT9N|d&y<42wO21byBj=yW*_iz%hkLdzfX(1ux_8KAfjk t-E-XbU15LqoyT(Dci?1x{4evLS3v0w%l`$3`G9Gc!PC{xWt~$(69CT*Sn>b> diff --git a/src/assets/character/Player/phone/thumb_1.png b/src/assets/character/Player/phone/thumb_1.png deleted file mode 100644 index 3d141ed3bb15e932bf381f805ce24fbda9ec4a24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 801 zcmeAS@N?(olHy`uVBq!ia0vp^@<80k!3HEP4kdylI14-?i-FV)5N15SVCPz(pk#?_ zL`iUdT1k0gQ7S`udAVL@UUqSEVnM22eo^}DcQ#TC3{2}hT^vI)8sA>s>o4Lcas1T_t%Z{_U+_9|c}r&{_ZYevY!fk4D{~Qf z_#h$v*+z?Z4vQ_1?0)ytbocDJHuGoRoEiDBG=PF0nqYC7TZ`FwN#@fl1;#fIGVZ>8-(xaIg7XFM zy~3a48DcgEp7_gTAk*~dv6p*7gNkqGWjUvS20_<(Cig8H_HIoV=Ge?o8Ssmp-I~e# zvUz}N{sV^X-@?S#Z!0jdVRH%fyu_vS?tG}9q@eqxkXeh_pC~rGsgKwd!SgJ03kup-z8@@f(E_}jpWok@;<6)h4ZvVOOxp*EZ^Y1J5>#$0jqjlMx_tLrpYk%2g z-qkKT%W1?H(B?2_i~YfW>V=bJYRfMcviF!(G2L^IJv!Oq*^MZbBb5HS=?E9Lh3Ua(l^zLzQ>}QZ&6lj-ycC#=eQzv`P?fZXTE;_2; pfA?m%de6f)>AW2j5p&P@TdesSV)sNj0hqiQJYD@<);T3K0RURAV~GF& diff --git a/src/assets/phone/apps/1.png b/src/assets/phone/apps/1.png new file mode 100644 index 0000000000000000000000000000000000000000..63030f3156a4fc67a466b650e8844ceca01991b2 GIT binary patch literal 1986 zcmV;z2R-?(M@IA z)OFG}ggU9xE-JBZyO@}?i%FBFlB`k->B`!`R0a(t2_;ZczQKef)J`17Iku0_yNg2{ zr-Z}~J}6}WnLfrPv6313?gl&Vzu!KoJGH zl@Lb|>YbMQ##4FSIvK$&t*x3Kj69Fxmq0Z$3s(`mVMIfJ`DpWIvtWYHb~HaD;Vn?L z%wz~YR~A2MS<`rUqSJDsA9r*%y(m!!XFNFo#iK&dvZJ&47kOE5dq>kBfn7YD_|u`) zjW6HRf(`9WKYNJD0qok|+5FQ9EojG_Is~|QxRFtchS8XmqiQKo`(^<-0GANr4_jJW zwJbqj*_ST}Si!7;s`UjUKeRT-&hvv!!C&r_Jl6v`#V$p#)EB zQdr+{bdh8Rvws+s8eeP(kA^nikMO!2w4&IiDZxhJz{ArwVnqLb8l$}jWm*$&K$G~^ zEF|##dfZiWohSmH)C4Rq_H&Ihef0hAKPbbTe0|d*(H3UpvtBA*{U&-{MX?z!*Y0!$ zMT0eH(EsMgHaRIM+3+OzFXCt;Lf(*NeiRPEb=tJGUeh9RxkEl;fF z0#-Z)K=22v&{tO8^IG4kg?PVSPV{dbSn(9`mMOBHxTn3xXLh>M~ zUJbkEjjff57|sz?R!-3@r}pl_rn4lD-xwq1wv|<-GpM9V?A`O2kpyMWJvK!k$%*$+ z^hB@n?>k01d$Q!*kIW_X{93$^*>0UY+ec*or=)MjNF2M4w@90q{SyXwp=u#))WQDq2_`6#1+5oGr^pcJ-0&i8FNgBExNA^vCUP zAbF-Q8>d>;T>P7sPN7=4lQJhQsO4O4PVTP4<0ACJdOS-4*;!5E*mV-eu4l=4mIayj zqjgiaR=LStbI^jqtBrHBDc@eHhtRGKBv1D;a{3nLojO*l@Z(#(z#eJj;c`~aT7|Yt z1rf|09b}Ajo^fl>UG!Cz(^f*um_EURTvYnp*`%H69p*v7yk%Qn26Tk3IY)3bZUB;( zA}HlNIb|u*7o&EIwlwH`qAyu*%YWu}f|0fxjuRYd3u8tSc3=3!BhC}_Z&`{~?gt>& ze2&D48;)2~DM*~SL9F?lEf(c|=1i4NCLB6-92hBdx}E&IpWfG7QEBT=Lt28TCWux! z2kF(2x_g>pl13RO>ApDW3(>6Qq{qelUvEaQEic#sL__<5Fi=(KoyPgwe7W!VT{F>Q zLo4@F{>oE$Yv)bp_OJ$gF&%<>Z8=rH-$A_fG9#aaNnVZ?ZR9S?biB)glx$dpf8&zz z1x8`$)|3!Ogi@QPbGOhWrCVz#-CC0!E-Ayz9t(Pwt|5Ky?6F8Vt|8PrD1K9vH}7+U z&y6eSV`jkm*R1~tK`KxP-e8u&g4g%3$C3c0-I@I$&dwtHolg#g{+dnn|Jb=Rqm+6D z$jkzE86nv<`VDDTe_Pfx9!98FXF=@!{9yfaALfiZ{*OMV1UR(1@ns=+2{0cjw-n;F zuacY4f}?0?Z`vv(Z=rZ}CNooTPD=6PT(``tn`l|nc-V-BRtmvO0?G z_aZl`1#_{Nz4E`ED>q^BtPnf_)B-`^L6s~cKm_PUh!d#H`%kX!I=Y8FQ~uTTKfLkZ U`%r9lz5oCK07*qoM6N<$f+dB?yZ`_I literal 0 HcmV?d00001 diff --git a/src/assets/phone/apps/2.png b/src/assets/phone/apps/2.png new file mode 100644 index 0000000000000000000000000000000000000000..5248fec960ef03106f2dd5635b02cfa38372d153 GIT binary patch literal 2209 zcmV;S2wwMzP)bj3LCt zHu0gWHi>VO24kAERE$+)1r4E2(?$yeQZz(2Xdx@T#J$C-)1+|{C${73IqyE$aa!oj zWy@{wV9v;c0v&g3W#45R2mREN^ow`ZI8 z@QvIk*8;qA7kYhdaEC&E0yHqa)GerI{pY>A-`PnzZ@|s%LmNcY^FS-pS;7es9)D?@ z=dCN9)~Wx9u7d!rcB=0ynFCRH)O%hy9Zwoc$66^1;5_2!}HixEx4sU z_|!~=%Lc#ccJG1YikC- z11w z7DhA;z0ie-Op~-BU(pq^R!}!JK-ll2@6Z9l{*##LOtqxjizuDHgv#6R!9J&AstH%g z=JsGOP?e|2@c;caE`IcGCcP@TEExfaMW=rKgOn{>GnIe=J=+!JrJi?Q=i-O&q692@ z0i{h#u$Nb(j5N{SZbr|Yz%){H?|&K5b-asLO%>uCJ>Qlm?Dx_CueVX6aLlQoe#1A> z3yX8--L1=s1^e*7xfdfghX24`N*foU7dfY*v~g(p-qUyJ0HCl~3#eQF&}DGra(FAL zU3WjAFjEOG9yvH=votS2Wg3Kgxa3dPiF>TDl&qZN&#Rm zyMA19crw={Mh0gF;ALwVH)Qcl>d-8fnE`0AW#f@j7|Hl`o3rQzKL7>pikShZ6*v&h z0to4`=rykmb$v`SJP0Vj(oIkyb~j6{sF{y^^d z=(!UFJKrZ28Od3$`N79=)-+9NIhr?M$-IRinW#8&`shSTD6c`X(b8fsWa0K_aMm|Z zc}I~qpl&b1-Mj<@LZ^>nCKCYIoTYdc-3BO(_!t)tcT9_x>8A2v+48jjnCT=#$0mB^ zvSn+qIX#(@?)^82_MV-YfUbsCiYn_7gy7K+FygUHl+|@=*4+o9VW!jgUi%G+P;lk} zB0}}r`#``Jen5iVG$Ow_1Qw)535UaD4!t&b52ecG8uob%qo$AC$ zCy5VUpk&@6MAHxvob@dvM+b?A1~6h#hK_%Tvu-{%r#sg?`(Ak-BQXX_u$6jn&26Kw zybeT2M@LbHNyzsJ)*=^0RSlC12vAs2M=~5D*55-i93mMW!r8C@5fDwo+0cd&j}i~| zWuoq<|3sm1c&q5z`y56hhG;s~Yc^87dLz#IW{PW@aJMX@sB$im-qRTAB%^1K<6f`= ztD|^w0Rdc%3kmo5NQH+IPXCOsz)-_|X7ZC}Z!8FrE{5}Rg`3LD(1Qb-= zeh==}WuNQ8tj-b&E9VmG>I7wCCgZqUmQ6ww{p=vRPV)obqp++75Qe)B6X@vkM zx)1#EvbM_ZtzzD$9e9_n&a_<$N*WhlckH6722fzc$4JM*Qv(Q~7ddJB){_+1HX$NJ z`}~~Qx0`71xrr32>r||~gQf=_p=RAC%9elm`Y)+jE?JT_rw(w!l21^!bTtB`V_~}Y zzf9o0zvL<&09$b>B~6QR1^TrV3-)GS)@sFC?3!A@ai46s_hA}0ZpD(#dn3M2@crop z29CUknTX%`LRU0Q=+se^fUCYWyP}Xs(Y3ifsQ4c$84l6?=3Yj8ow<%*be)o>#gsNK z#8Fv~XxdfaM(KI$RboT^2twP#Pf=Xkls90EN!ZX6_MhZ@$G!=F%>JyJtpG<^HTF3b z=#FA61$LB?CO*`kv0OT{Oj&;GUDV(G_52>Hh{=}rU_e3jq*T62G3xg*@bN)HzD|^p zz6=(*1%!?;*{3@=M!1Z;8m$GagUmhrj=}=k46r|Eukk z0DE?L9z&@|;Og6ir{lC#@Z-ZeO9HJ*;YM&wl5@p?A%rf3L&{Y9 j=Lft8ckbl6?friMfM84e)X(T`00000NkvXXu0mjfhm0w8 literal 0 HcmV?d00001 diff --git a/src/assets/phone/apps/3.png b/src/assets/phone/apps/3.png new file mode 100644 index 0000000000000000000000000000000000000000..725d78ed8aec3ebbecf93048588c075e6c9e9c75 GIT binary patch literal 2045 zcmVx6sypp7TEY<6LNkmU8dy zh0;BLwWmGL^ZwrFeV?x!QB}GX5os%#HCbS$AX9-cKo*e7wUK6^7N}NXtBSmt^7B7_ zcr`D|6#>iccJ0~h@2cpNKt8=oj)=-ilM{J~(k))hfZpOc_o9>w6w-@Dp$awMch{`n z)Y;!nXAkY7+4Du&(A(hv1jdTkjkaXY6IbOyf6?r&%`WEiuWpN4J98MYFmW?DX{S_kN$3KwoI%>Up-=|iw2RE z6M6=&u1$FFjPUMhA=29Zyg1A9?8Lxp=iA_wqcJZRH`W*aeI_t6et>ev;KboxJz`k3 z-_Ya-o8}74|D4Yww^)q8or5fenTGv!!h2`n;R2H9K?SPnqPsgVak#fn3P0KF(C9~% ztKwN@-2sQ+A8B9Oue8j=`fI%Xk9Bzke;6C-fP zU}fWR*ivJtZ4<(xY>x?~7!!eUi*N|Mm4uowMmR2}yt}%gERj52KY&dRM zKHg_;e&-d)pfJ3Cr^l~8Hf)awo`p$S%J)WFhJ>|KTge6N;`#IY95&YkyPum1H>X)X zsuP-g;ir2YhNmf0yU3ZDDax{Oe!^?$u}bDrdFzDXm7_s^D$KO3n(XuBc%Nq{_@p_C z1%9~8KB>`wFd|KPbhMACa;^=2u*=2Mu2aU#hYb&G zbC~t6%aWZ=5Nxg|ps&iZ3Wo+y5R{TJJ~@{(sh`hLzB)`%gyeM@f;?D|0dq%o9VAi&9xL=&Ug6N_ z3rlx8%pCz?SNOvb!|9eFbWFcVd8ok02-LI)Wt9#mo8fo=HSDO>>u?7ZLJlk*Htm@zBxjfe@g%dkQ-K36!{EI1x49=UamEuf+!D;vJCHc zb#F|{Ql2TYjL)zb6jT|Rt}Ger^NpJ?KLObxrL4${LSCaIDjj~Bl5M%~rr1UZ<1#HP zCP1qOJL`7in4A!l6?v5IaXHZ>AeUEAJ?cSM^r8pv8WR7$hNOGAj*#EVw`kOM`x=q} zm=Ue+(a(++k}c;v5Djc+hLY&PAz@`u7*t?K4<+KOkq;sUmB9YsaFT<}^gN3IJ8OkK z=aUavan4W?3GUuk@?yUhF#|qWV51GFu&T;oe_iq*_tgu(s4{@i-&Gzc@MG2y^IQ~Q z!wJLkieT_-P^Jx5ZXcrLg%y#+I(=2)M2qmRQ^Gr^1*?JxJXh>7Jq{1L1RvSNG~J$& zXKAzWOr=As6}Frbww#Kmndv4W34|Rey)`~KqNDo=Ff`UTXAZMW%u?1?2fbjc?X1sF zY-V#$u4Un9pZxT=)kIw2Ks#=h0(KSD65s;I2&gYNq=rKQ#Yn3K+L6!!KR-@$$- zJMwaSCG*;AK57;b`{1}YijQT%g>OhNmTK;r^_v8i-RN|pveYeqeRKQo|4*M&0ywMR zSSaWtfOjJuOHr0z3fHLzFNjxi|CbP3E-<#22b6tS9_@H6uc}>g*R0>i!z1aTkb5N-!-CXiZ%t+3h!g|Z|=b2cPK6G bcIx#%>URIW?n)eA00000NkvXXu0mjfiSW;O literal 0 HcmV?d00001 diff --git a/src/assets/phone/battery/1_g14.png b/src/assets/phone/battery/1_g14.png new file mode 100644 index 0000000000000000000000000000000000000000..402ee6ae587fc27c123da6ae18b2e42d6ec4476e GIT binary patch literal 797 zcmV+&1LFLNP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10;)+w zK~z}7&6rPX6G0fpf4kYFNfVoDt6*tuQaxC#f!bC?u{kRuB5Ku>Ui=E`7qH^plixHWnk14D)%0e8LLH-SkBC=fiH zpKdFl>}U4fOJ2R7Rl|2=CcPjpNwbn)CY#ToOD|TRQ?hq5+zq7tAXCyTe_ckWDzysh z-`CYp$`3Lr&F4Z6-O6pb`W*6u?2@Kv7qvr{?2>Bt_(8_h;n%H7t*qKE<^CM-7#OpF zpp4cVHSLhKMqRa*bKM8b0U_X`>5L`-4e$SWd*$v^E}91%K!AQzc>w5#Y|v<)ex7sk zznAGAKI0z%nC^k~f!uju8u}q|_bCVL8(_=j+XAXU03cvm+8He~pxUZ){o(wsF91(1 zXL}R|h*%NrkP)j>wcE=5Yo}oX1sRQnV%i~Np{O6EYff%R)893q9daOkNVOY&kZaPM z=o{0V>Ig^o538Y7Kgc<0Mh}iM-Z!BQ@U00000NkvXXu0mjfa%pb{ literal 0 HcmV?d00001 diff --git a/src/assets/phone/battery/1_g15.png b/src/assets/phone/battery/1_g15.png new file mode 100644 index 0000000000000000000000000000000000000000..5b66b7795cc4a6321e290a217b8cd992839c931e GIT binary patch literal 801 zcmV++1K#|JP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10@^ExfOH-9sERRoXy;BfEva4vl2dtSfa7)mJ?iG9F% zU@x!@2m?W&fYn6;aDW+L5a4~gTsz)gm$z%AZ8N$gEK#%K~ z&KL)}fMLG@9%L)X)&yXW>P6ENfzsXG)Z_W+%bYLO?@=0LIzkmTNCrr(X_1EhhGyF}+B1|+>K$#&^Y0MoGbPo-%|nR1^~z-izlaK{FIyO}q3 zph!EU9SBJ|E#4ox4HNj~^%exf+989%QYnAl=6cg7(cxa=(_=VJoKz~2pA4*gTI~WXtB_D}C1qvxG&CI}T(VIP z83NjuE5z2jq&+A%@KSg81NYaw*OjHYrnD{vnD3;FPT(A{AJ`5QyAH3`<%D}_cz?6J f0PX@Ss#pF1&5T@qVTZpH00000NkvXXu0mjf{@`;T literal 0 HcmV?d00001 diff --git a/src/assets/phone/battery/1_g16.png b/src/assets/phone/battery/1_g16.png new file mode 100644 index 0000000000000000000000000000000000000000..7fbce77a1d59eca1bb040fe9fa17374bb77458a6 GIT binary patch literal 797 zcmV+&1LFLNP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10;)+w zK~z}7&6v+m6G0e;pKh1Z)&>-i01>T*9%xW7fImV+Z=f;81T`Tfgd2CS90-4bCl6jc z;MEXMdNNTkBnCXF)C(BF8V(pSw%EF*?Rc3bUn>iQguySF?7oxP?9+F4X1=dJr4-x5 zCEy-#5jYJ*fJz|1{vr!FKpIE@v%n;WE=2qYdV!;ZDE1s>1k5QB)N2&Tqc7m7WYNruc*Kd1_{^IQ5}sE z>+2)Z*eHj520DO^ogfoH9H8JhyqcI`b$;+!C9WTem zSe=_QGS8i(qr?XWq%e!rBP`nnF>25th6ZQzg2ys<+e z`P1v0Ty{lObF*>C+E`4=PhOC3U2(Ff$Lv&x zLe#Xhlw@ySkWXE4JRYa1yW1FK`|vRSz*Yg8k;!*CD|(;5ii4+aU>)^ao&rKP{0NJE1hvILyp ztq?oxlJ<&Rz&oAY&-JhQXezbPrnKz@Sni~Z3&36AGH?bsq8;9^%UOMBxPP;}0iFPR bs#pF3of}{!bi%xO00000NkvXXu0mjfV&ZEq literal 0 HcmV?d00001 diff --git a/src/assets/phone/frame/1.png b/src/assets/phone/frame/1.png new file mode 100644 index 0000000000000000000000000000000000000000..370e833633dac7f2f937088fec898e07f164733f GIT binary patch literal 3813 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 literal 0 HcmV?d00001 diff --git a/src/assets/phone/frame/2.png b/src/assets/phone/frame/2.png new file mode 100644 index 0000000000000000000000000000000000000000..779cbf0d2642ccb03bbe55148089e80a59ea676b GIT binary patch literal 1705 zcmeAS@N?(olHy`uVBq!ia0vp^*BKZX7jm!xS)U3O?*b{#0*}aI1_u5_5N2FqzdREt zC|TkfQ4*Y=R#Ki=l*&+EUaps!mtCBkSdglhUz9%kosAR&1Dlzri(^Q|t+%(&cE>(t zJpS?i=Q%r{&+}a9wyIKbtM$|!JnvkVXg1Y5dmfy-n``N|tFGd?A6XqYPb!N(y5CX6 zRAGnr_Ju2FXZd7!IkpzX7t4uDoxIX>E@d6}?DOfB&(G=9P1irav;3Uy+O2Ocr`XN6 zkIAl8Ioa&_&im71mG;R~4t$UH{^U97zsk?*NuM8E%#&_=xL4)%-#-gCUElHS^H2X> z>#B`T&b)R@a6RMp$w8;~PujCBZvFYZ{QUS^Au;XYtFOvOXZx$noH6tEolR3dJwKW9 z>9@-KdqpwbM;~1bIu$=zX0zs-f>fE~@jQn=e9QA+vHRK1n19=*d}`b9U|HYwsQWQG zV*Br1Ke;tVFW%#m^zVc7Y_5O*Yka?|NO$__`<&e0p1zztH^JI(-Orl3UDtl4O*$91 zK|eYB?Z%fSzpkBqw5xb)RBXmt*{#BNCTZ8+pMPfhe5Jb5$Q=ni29 z8O`3UoArdftfBXJV()K`hr2I?N*^e9j#1DP5C`E7ZV*1g3c`<=K)8?*h#Pk>0I@?% z0}w0df$+d6A9N1F5jq1GLO2|RE4oHZfWFaOmz~zoyE|<1pX+=Z3g=%{34hBV{r&x{ zC-T6|usdS%obAjxckaKk=zD*Q(QNg#Uw)ZubJvEg_FlVnv07uZ_R^TSK5FV&lS(ID z_hpj)3}j@kO*NZ+_j2i7cF(Ha2O4#b7w##SXyebGl#`!dAL8}1JNChW=`HJlQpTP0@ziuF36}yY~Os)I^DU zxod56)o;wdb}RVu%P(uC<$vFb{Rm_oRXIPK``eqFz*6PX^?UVqKg`Q+KbrJ0MDyv- zA5mOyp52iG4W@=kv#qRgN zCoi3{*>l>r79B55{jatE516-pU8{b*H*NFH{@vih^v8~Qx6e;iS-&@+avb*+7 zkH1kIWB%gW>#xqh64*Qb0cYa0f-_!rdOH8hrrN8fah2hDcQLn9|qod!a&;P&d amrR7M$^-eyk8Od~41=eupUXO@geCx=MCXJ6 literal 0 HcmV?d00001 diff --git a/src/assets/phone/wallpaper/1.png b/src/assets/phone/wallpaper/1.png new file mode 100644 index 0000000000000000000000000000000000000000..107d276d218e34a7b9043dead1ea1817542b4e59 GIT binary patch literal 23487 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 C8yt%O literal 0 HcmV?d00001 diff --git a/src/assets/phone/wallpaper/2.png b/src/assets/phone/wallpaper/2.png new file mode 100644 index 0000000000000000000000000000000000000000..5ce4ad6612adfd3249e72e57da29b295dc9c8e70 GIT binary patch literal 16550 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 literal 0 HcmV?d00001 diff --git a/src/assets/phone/wallpaper/3.png b/src/assets/phone/wallpaper/3.png new file mode 100644 index 0000000000000000000000000000000000000000..68cc7c5f68fb5d428f114d965abeaee7169b72c2 GIT binary patch literal 17700 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 literal 0 HcmV?d00001 diff --git a/src/assets/phone/wallpaper/4.png b/src/assets/phone/wallpaper/4.png new file mode 100644 index 0000000000000000000000000000000000000000..f335acf0cf702d627dcf2af5c818816800b57d44 GIT binary patch literal 15392 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 literal 0 HcmV?d00001 diff --git a/src/eventsFunctionsExtensions/ellipsemovement.json b/src/eventsFunctionsExtensions/ellipsemovement.json new file mode 100644 index 00000000..55259248 --- /dev/null +++ b/src/eventsFunctionsExtensions/ellipsemovement.json @@ -0,0 +1,1455 @@ +{ + "author": "@4ian, Tristan Rhodes (https://victrisgames.itch.io/)", + "category": "Movement", + "extensionNamespace": "", + "fullName": "Ellipse movement", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXNpbmUtd2F2ZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xNi41LDIxQzEzLjUsMjEgMTIuMzEsMTYuNzYgMTEuMDUsMTIuMjhDMTAuMTQsOS4wNCA5LDUgNy41LDVDNC4xMSw1IDQsMTEuOTMgNCwxMkgyQzIsMTEuNjMgMi4wNiwzIDcuNSwzQzEwLjUsMyAxMS43MSw3LjI1IDEyLjk3LDExLjc0QzEzLjgzLDE0LjggMTUsMTkgMTYuNSwxOUMxOS45NCwxOSAyMC4wMywxMi4wNyAyMC4wMywxMkgyMi4wM0MyMi4wMywxMi4zNyAyMS45NywyMSAxNi41LDIxWiIgLz48L3N2Zz4=", + "name": "EllipseMovement", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/sine-wave.svg", + "shortDescription": "Move objects on ellipses or smoothly back and forth in one direction.", + "version": "1.0.2", + "description": [ + "It allows objects to move:", + "- on an ellipsis or arcs", + "- smoothly vertically or horizontally (by setting one radius to 0)", + "- on a sine wave (by adding a force)", + "", + "It can be used for:", + "- Making objects float, such as powerups or coins", + "- Moving platforms", + "- Enemy movement patterns", + "- Making a player constantly turn right or left ([open the project online](https://editor.gdevelop.io/?project=example://star-seeker))" + ], + "origin": { + "identifier": "EllipseMovement", + "name": "gdevelop-extension-store" + }, + "tags": [ + "sine", + "ellipse", + "movement", + "circular", + "circle", + "floating", + "platform", + "enemy" + ], + "authorIds": [ + "wWP8BSlAW0UP4NeaHa2LcmmDzmH2", + "gqDaZjCfevOOxBYkK6zlhtZnXCg1", + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" + ], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "Move objects on ellipses or smoothly back and forth in one direction.", + "fullName": "Ellipse movement", + "name": "EllipseMovement", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::SetPropertyOldX" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.X()" + ] + }, + { + "type": { + "value": "EllipseMovement::EllipseMovement::SetPropertyOldY" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Y()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Evaluate the center of movement from the object position and properties." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::PropertyInitialTurningLeft" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::SetPropertyLoopDuration" + }, + "parameters": [ + "Object", + "Behavior", + "*", + "-1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::PropertyLoopDuration" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::SetPropertyMovementAngle" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyInitialDirectionAngle() + 90" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::PropertyLoopDuration" + }, + "parameters": [ + "Object", + "Behavior", + ">=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::SetPropertyMovementAngle" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyInitialDirectionAngle() - 90" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::SetPropertyCenterX" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.X() - Object.Behavior::DeltaX()" + ] + }, + { + "type": { + "value": "EllipseMovement::EllipseMovement::SetPropertyCenterY" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Y() - Object.Behavior::DeltaY()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "EllipseMovement::EllipseMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Update the center when the object is moved outside of the behavior." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::SetPropertyCenterX" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "Object.X() - Object.Behavior::PropertyOldX()" + ] + }, + { + "type": { + "value": "EllipseMovement::EllipseMovement::SetPropertyCenterY" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "Object.Y() - Object.Behavior::PropertyOldY()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Place the object according to the movement angle." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::PropertyRadiusX" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreX" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::PropertyCenterX() + Object.Behavior::DeltaX()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::PropertyRadiusY" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreY" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::PropertyCenterY() + Object.Behavior::DeltaY()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::PropertyShouldRotate" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "=", + "Object.Behavior::DirectionAngle() + Object.Behavior::PropertyRotationOffset()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save the position to detect when the object is moved outside of the behavior." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::SetPropertyOldX" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.X()" + ] + }, + { + "type": { + "value": "EllipseMovement::EllipseMovement::SetPropertyOldY" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Y()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "EllipseMovement::EllipseMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Update the movement angle for the next frame." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::SetPropertyMovementAngle" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "360 * TimeDelta() / Object.Behavior::PropertyLoopDuration()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "EllipseMovement::EllipseMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the turning direction (left or right).", + "fullName": "Turn the other way", + "functionType": "Action", + "name": "ToggleTurningLeft", + "sentence": "_PARAM0_ turn the other way", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::SetPropertyCenterX" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "2 * Object.X() - Object.Behavior::CenterX()" + ] + }, + { + "type": { + "value": "EllipseMovement::EllipseMovement::SetPropertyCenterY" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "2 * Object.Y() - Object.Behavior::CenterY()" + ] + }, + { + "type": { + "value": "EllipseMovement::EllipseMovement::SetPropertyMovementAngle" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "180" + ] + }, + { + "type": { + "value": "EllipseMovement::EllipseMovement::SetPropertyLoopDuration" + }, + "parameters": [ + "Object", + "Behavior", + "*", + "-1" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "EllipseMovement::EllipseMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the in which side the object is turning (left or right).", + "fullName": "Turn left or right", + "functionType": "Action", + "name": "SetTurningLeft", + "sentence": "_PARAM0_ turn left: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "BuiltinCommonInstructions::And" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::IsTurningLeft" + }, + "parameters": [ + "Object", + "Behavior", + "yes", + "" + ] + }, + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"TurnLeft\"" + ] + } + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::And" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": true, + "value": "EllipseMovement::EllipseMovement::IsTurningLeft" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"TurnLeft\"" + ] + } + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::ToggleTurningLeft" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "EllipseMovement::EllipseMovement", + "type": "behavior" + }, + { + "description": "Turn left", + "name": "TurnLeft", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the object is turning left.", + "fullName": "Is turning left", + "functionType": "Condition", + "name": "IsTurningLeft", + "sentence": "_PARAM0_ is turning left", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::PropertyLoopDuration" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "EllipseMovement::EllipseMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Return the movement angle of the object.", + "fullName": "Movement angle", + "functionType": "Expression", + "name": "MovementAngle", + "sentence": "Set initial Y of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyMovementAngle()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "EllipseMovement::EllipseMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Return the loop duration (in seconds).", + "fullName": "Loop duration", + "functionType": "Expression", + "group": "Configuration", + "name": "LoopDuration", + "sentence": "Set initial Y of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "abs(Object.Behavior::PropertyLoopDuration())" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "EllipseMovement::EllipseMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Return the ellipse radius on X axis.", + "fullName": "Radius X", + "functionType": "Expression", + "group": "Configuration", + "name": "RadiusX", + "sentence": "Set initial Y of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyRadiusX()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "EllipseMovement::EllipseMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Return the ellipse radius on X axis.", + "fullName": "Radius Y", + "functionType": "Expression", + "group": "Configuration", + "name": "RadiusY", + "sentence": "Set initial Y of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyRadiusY()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "EllipseMovement::EllipseMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Return the movement center position on X axis.", + "fullName": "Movement center X", + "functionType": "Expression", + "group": "Configuration", + "name": "CenterX", + "sentence": "Set initial Y of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyCenterX()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "EllipseMovement::EllipseMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Return the movement center position on Y axis.", + "fullName": "Movement center Y", + "functionType": "Expression", + "group": "Configuration", + "name": "CenterY", + "sentence": "Set initial Y of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyCenterY()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "EllipseMovement::EllipseMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the radius on X axis of the movement.", + "fullName": "Radius X", + "functionType": "Action", + "group": "Elliptical movement configuration", + "name": "SetRadiusX", + "sentence": "Change the radius on X axis of the movement of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::SetPropertyRadiusX" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "EllipseMovement::EllipseMovement", + "type": "behavior" + }, + { + "description": "Radius X", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the radius on Y axis of the movement.", + "fullName": "Radius Y", + "functionType": "Action", + "group": "Elliptical movement configuration", + "name": "SetRadiusY", + "sentence": "Change the radius on Y axis of the movement of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::SetPropertyRadiusY" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "EllipseMovement::EllipseMovement", + "type": "behavior" + }, + { + "description": "Radius Y", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the loop duration.", + "fullName": "Loop duration", + "functionType": "Action", + "group": "Elliptical movement configuration", + "name": "SetLoopDuration", + "sentence": "Change the loop duration of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::IsTurningLeft" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::SetPropertyLoopDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "-GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "EllipseMovement::EllipseMovement::IsTurningLeft" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::SetPropertyLoopDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "EllipseMovement::EllipseMovement", + "type": "behavior" + }, + { + "description": "Speed (in degrees per second)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the movement angle. The object is teleported according to the angle.", + "fullName": "Teleport at an angle", + "functionType": "Action", + "name": "SetMovementAngle", + "sentence": "Teleport _PARAM0_ on the ellipse at _PARAM2_°", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::SetPropertyMovementAngle" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "EllipseMovement::EllipseMovement", + "type": "behavior" + }, + { + "description": "Movement angle", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "fullName": "Delta X", + "functionType": "Expression", + "name": "DeltaX", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "cos(ToRad(Object.Behavior::PropertyMovementAngle())) * Object.Behavior::PropertyRadiusX()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "EllipseMovement::EllipseMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "Delta Y", + "functionType": "Expression", + "name": "DeltaY", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "sin(ToRad(Object.Behavior::PropertyMovementAngle())) * Object.Behavior::PropertyRadiusY()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "EllipseMovement::EllipseMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "Direction angle", + "functionType": "Expression", + "name": "DirectionAngle", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::PropertyLoopDuration" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyMovementAngle() + 90" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "EllipseMovement::EllipseMovement::PropertyLoopDuration" + }, + "parameters": [ + "Object", + "Behavior", + ">=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyMovementAngle() - 90" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "EllipseMovement::EllipseMovement", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "100", + "type": "Number", + "unit": "Pixel", + "label": "Radius of the movement on X axis", + "description": "", + "group": "Ellipse", + "extraInformation": [], + "name": "RadiusX" + }, + { + "value": "0", + "type": "Number", + "unit": "Pixel", + "label": "Radius of the movement on Y axis", + "description": "", + "group": "Ellipse", + "extraInformation": [], + "name": "RadiusY" + }, + { + "value": "6", + "type": "Number", + "unit": "Second", + "label": "Loop duration", + "description": "", + "group": "Speed", + "extraInformation": [], + "name": "LoopDuration" + }, + { + "value": "", + "type": "Boolean", + "label": "Turn left", + "description": "", + "group": "Speed", + "extraInformation": [], + "name": "InitialTurningLeft" + }, + { + "value": "0", + "type": "Number", + "unit": "DegreeAngle", + "label": "Initial direction", + "description": "", + "group": "Speed", + "extraInformation": [], + "name": "InitialDirectionAngle" + }, + { + "value": "", + "type": "Boolean", + "label": "Rotate", + "description": "", + "group": "Rotation", + "extraInformation": [], + "name": "ShouldRotate" + }, + { + "value": "0", + "type": "Number", + "unit": "DegreeAngle", + "label": "Rotation offset", + "description": "", + "group": "Rotation", + "extraInformation": [], + "name": "RotationOffset" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "CenterX" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "CenterY" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "MovementAngle" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "OldX" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "OldY" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] +} \ No newline at end of file diff --git a/src/eventsFunctionsExtensions/spritemasking.json b/src/eventsFunctionsExtensions/spritemasking.json new file mode 100644 index 00000000..37b79fd8 --- /dev/null +++ b/src/eventsFunctionsExtensions/spritemasking.json @@ -0,0 +1,145 @@ +{ + "author": "Arthur Pacaud (arthuro555)", + "category": "Visual effect", + "extensionNamespace": "", + "fullName": "Object Masking", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXRyYW5zaXRpb24tbWFza2VkIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTE1LDJDMTYuOTQsMiAxOC41OSwyLjcgMTkuOTUsNC4wNUMyMS4zLDUuNDEgMjIsNy4wNiAyMiw5QzIyLDEwLjU2IDIxLjUsMTEuOTYgMjAuNTgsMTMuMkMxOS42NCwxNC40MyAxOC40NCwxNS4yNyAxNi45NywxNS43TDE3LDE1LjM4VjE1QzE3LDEyLjgxIDE2LjIzLDEwLjkzIDE0LjY1LDkuMzVDMTMuMDcsNy43NyAxMS4xOSw3IDksN0g4LjYzTDguMyw3LjAzQzguNzMsNS41NiA5LjU3LDQuMzYgMTAuOCwzLjQyQzEyLjA0LDIuNSAxMy40NCwyIDE1LDJNOSw4QTcsNyAwIDAsMSAxNiwxNUE3LDcgMCAwLDEgOSwyMkE3LDcgMCAwLDEgMiwxNUE3LDcgMCAwLDEgOSw4TTksMTBBNSw1IDAgMCwwIDQsMTVBNSw1IDAgMCwwIDksMjBBNSw1IDAgMCwwIDE0LDE1QTUsNSAwIDAsMCA5LDEwWiIgLz48L3N2Zz4=", + "name": "SpriteMasking", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/transition-masked.svg", + "shortDescription": "Use a sprite or a shape painter to mask another object.", + "version": "2.1.1", + "description": "When masked, the masked object is only visible through the mask.", + "origin": { + "identifier": "SpriteMasking", + "name": "gdevelop-extension-store" + }, + "tags": [ + "masking", + "javascript", + "pixi", + "sprites" + ], + "authorIds": [ + "ZgrsWuRTAkXgeuPV9bo0zuEcA2w1" + ], + "dependencies": [], + "eventsFunctions": [ + { + "description": "Define a shape painter as a mask of an object.", + "fullName": "Mask an object with a shape painter", + "functionType": "Action", + "name": "MaskWithShapePainter", + "sentence": "Mask _PARAM1_ with mask _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const maskObject = eventsFunctionContext.getObjects(\"Mask\")[0];", + "if (!maskObject) return;", + "", + "const maskedObjects = eventsFunctionContext.getObjects(\"Masked\");", + "for (const maskedObject of maskedObjects) {", + " const maskedRenderer = maskedObject.getRendererObject(); ", + " maskedRenderer.mask = maskObject.getRendererObject();", + "}", + "", + "" + ], + "parameterObjects": "masked", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object to mask", + "name": "Masked", + "type": "objectList" + }, + { + "description": "Shape painter to use as a mask", + "name": "Mask", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "objectList" + } + ], + "objectGroups": [] + }, + { + "description": "Define a sprite as a mask of an object.", + "fullName": "Mask an object with a sprite", + "functionType": "Action", + "name": "Mask", + "sentence": "Mask _PARAM1_ with mask _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const maskObject = eventsFunctionContext.getObjects(\"Mask\")[0];", + "if (!maskObject) return;", + "", + "const maskedObjects = eventsFunctionContext.getObjects(\"Masked\");", + "for (const maskedObject of maskedObjects) {", + " const maskedRenderer = maskedObject.getRendererObject(); ", + " maskedRenderer.mask = maskObject.getRendererObject();", + "}", + "", + "" + ], + "parameterObjects": "masked", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object to mask", + "name": "Masked", + "type": "objectList" + }, + { + "description": "Sprite object to use as a mask", + "name": "Mask", + "supplementaryInformation": "Sprite", + "type": "objectList" + } + ], + "objectGroups": [] + }, + { + "description": "Remove the mask of the specified object.", + "fullName": "Remove the mask", + "functionType": "Action", + "name": "Unmask", + "sentence": "Remove the mask of _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const maskedObjects = eventsFunctionContext.getObjects(\"Masked\");", + "", + "for (const maskedObject of maskedObjects) {", + " const maskedRenderer = maskedObject.getRendererObject(); ", + " maskedRenderer.mask = null;", + "}", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object with a mask to remove", + "name": "Masked", + "type": "objectList" + } + ], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [], + "eventsBasedObjects": [] +} \ No newline at end of file diff --git a/src/externalEvents/phone.json b/src/externalEvents/phone.json index eca3ab94..4f72c717 100644 --- a/src/externalEvents/phone.json +++ b/src/externalEvents/phone.json @@ -82,7 +82,7 @@ }, "parameters": [ "", - "Phone", + "phoneFrame", "<", "1" ] @@ -138,10 +138,10 @@ "value": "Tween::TweenBehavior::AddObjectPositionYTween2" }, "parameters": [ - "Phone", + "phoneFrame", "Tween", "\"phone\"", - "SceneWindowHeight() - Phone.Height() - 30", + "SceneWindowHeight() - phoneFrame.Height() - 30", "\"easeOutQuad\"", "0.4", "" @@ -154,19 +154,27 @@ "parameters": [ "Phone_status_bar", "Sticker", - "Phone", + "phoneFrame", "" ] }, { "type": { - "value": "Sticker::Sticker::Stick" + "value": "AnimatableCapability::AnimatableBehavior::PauseAnimation" }, "parameters": [ - "Thumb", - "Sticker", - "Phone", - "" + "phoneWallpaper", + "Animation" + ] + }, + { + "type": { + "value": "ChangeSprite" + }, + "parameters": [ + "phoneWallpaper", + "=", + "Random(phoneWallpaper.AnimationFrameCount() - 1)" ] } ] @@ -177,90 +185,64 @@ "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarObjetTxt" - }, - "parameters": [ - "Phone", - "swipe", - "=", - "\"Right\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "RotateTowardAngle" - }, - "parameters": [ - "Thumb", - "-15", - "90", - "" - ] - } - ] - }, + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Hide", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "VarObjetTxt" + "value": "KeyReleased" }, "parameters": [ - "Phone", - "swipe", - "=", - "\"Left\"" + "", + "Down" ] } ], "actions": [ { "type": { - "value": "RotateTowardAngle" + "value": "Tween::TweenBehavior::AddObjectPositionYTween2" }, "parameters": [ - "Thumb", - "15", - "90", - "" + "phoneFrame", + "Tween", + "\"phone\"", + "SceneWindowHeight() + 30", + "\"easeInQuad\"", + "0.4", + "yes" ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + }, { "type": { - "value": "VarObjetTxt" + "value": "SetGlobalVariableAsBoolean" }, "parameters": [ - "Phone", - "swipe", - "=", - "\"None\"" + "Game.Player.phone.active", + "False" ] - } - ], - "actions": [ + }, { "type": { - "value": "RotateTowardAngle" + "value": "SetObjectVariableAsBoolean" }, "parameters": [ - "Thumb", - "0", - "100", - "" + "Body", + "Phone.active", + "False" ] } ] @@ -270,89 +252,89 @@ "conditions": [ { "type": { - "value": "KeyReleased" + "value": "SceneInstancesCount" }, "parameters": [ "", - "Left" + "phoneFrame", + "<", + "1" ] } ], "actions": [ { "type": { - "value": "ModVarScene" + "value": "Delete" }, "parameters": [ - "phone_app", - "+", - "1" + "phoneIcons", + "" ] }, { "type": { - "value": "ResetObjectTimer" + "value": "Delete" }, "parameters": [ - "Thumb", - "\"Swipe_timer\"" + "phoneMask", + "" ] }, { "type": { - "value": "ModVarObjetTxt" + "value": "Delete" }, "parameters": [ - "Phone", - "swipe", - "=", - "\"Right\"" + "phoneWallpaper", + "" ] } ] }, { "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyReleased" - }, - "parameters": [ - "", - "Right" - ] - } - ], + "conditions": [], + "actions": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "AppIcons", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], "actions": [ { "type": { - "value": "ModVarScene" - }, - "parameters": [ - "phone_app", - "-", - "1" - ] - }, - { - "type": { - "value": "ResetObjectTimer" + "value": "MettreXY" }, "parameters": [ - "Thumb", - "\"Swipe_timer\"" + "phoneIcons", + "=", + "phoneFrame.PointX(phoneIcons.id)", + "=", + "phoneFrame.PointY(phoneIcons.id)" ] }, { "type": { - "value": "ModVarObjetTxt" + "value": "SetCenter" }, "parameters": [ - "Phone", - "swipe", + "phoneMask", "=", - "\"Left\"" + "phoneFrame.CenterX()", + "=", + "phoneFrame.CenterY()" ] } ] @@ -362,113 +344,51 @@ "conditions": [ { "type": { - "value": "BuiltinCommonInstructions::Or" + "value": "Tween::IsPlaying" }, - "parameters": [], - "subInstructions": [ - { - "type": { - "value": "Angle" - }, - "parameters": [ - "Thumb", - "=", - "-15" - ] - }, - { - "type": { - "value": "Angle" - }, - "parameters": [ - "Thumb", - "=", - "15" - ] - } + "parameters": [ + "phoneFrame", + "Tween", + "\"phone\"" ] } ], "actions": [ { "type": { - "value": "ModVarObjetTxt" + "value": "SetCenter" }, "parameters": [ - "Phone", - "swipe", + "phoneWallpaper", + "=", + "phoneFrame.CenterX()", "=", - "\"None\"" + "phoneFrame.CenterY() - 20" ] } ] - } - ], - "parameters": [] - }, - { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Hide", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ + }, { + "disabled": true, "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyReleased" - }, - "parameters": [ - "", - "Down" - ] - } - ], + "conditions": [], + "actions": [] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], "actions": [ { "type": { - "value": "Tween::TweenBehavior::AddObjectPositionYTween2" + "value": "SpriteMasking::Mask" }, "parameters": [ - "Phone", - "Tween", - "\"phone\"", - "SceneWindowHeight() + 30", - "\"easeInQuad\"", - "0.4", - "yes" - ] - }, - { - "type": { - "value": "SetGlobalVariableAsBoolean" - }, - "parameters": [ - "Game.Player.phone.active", - "False" - ] - }, - { - "type": { - "value": "SetObjectVariableAsBoolean" - }, - "parameters": [ - "Body", - "Phone.active", - "False" + "", + "phoneWallpaper", + "phoneMask", + "" ] } - ], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [] - } ] } ], diff --git a/src/externalLayouts/phone.json b/src/externalLayouts/phone.json index ecb3b7cd..29ec8a2a 100644 --- a/src/externalLayouts/phone.json +++ b/src/externalLayouts/phone.json @@ -6,18 +6,18 @@ "angle": 0, "customSize": true, "depth": 1, - "height": 419, + "height": 15, "layer": "UI", - "name": "Phone", - "persistentUuid": "47079388-0dca-46e7-8a7a-0e97e38abf1f", - "width": 229, - "x": 1657, - "y": 626, - "zOrder": 1, + "name": "phone_wifi", + "persistentUuid": "5cc4231a-bc19-4320-8c4f-0e7b0eac031b", + "width": 15, + "x": 1850, + "y": 649, + "zOrder": 200, "numberProperties": [ { "name": "animation", - "value": 1 + "value": 3 } ], "stringProperties": [], @@ -27,52 +27,148 @@ "angle": 0, "customSize": true, "depth": 1, - "height": 15, + "height": 22, "layer": "UI", - "name": "phone_wifi", - "persistentUuid": "5cc4231a-bc19-4320-8c4f-0e7b0eac031b", - "width": 15, - "x": 1829, - "y": 687, - "zOrder": 2, + "name": "phone_time", + "persistentUuid": "54fb08c4-adf2-4f4f-851b-490fe20f8b5b", + "width": 48, + "x": 1676, + "y": 634, + "zOrder": 200, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "UI", + "name": "phoneFrame", + "persistentUuid": "2db890bf-e540-4bbc-be81-3b4f42a17f9e", + "width": 0, + "x": 1656, + "y": 623, + "zOrder": 56, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "UI", + "name": "phoneMask", + "persistentUuid": "fa91c432-5baa-4035-b7b0-e0557b9b2868", + "width": 0, + "x": 2154, + "y": 652, + "zOrder": 5, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "UI", + "name": "phoneIcons", + "persistentUuid": "99878be0-df6b-4964-af72-9f9016bc445a", + "width": 0, + "x": 2338, + "y": 1033, + "zOrder": 53, "numberProperties": [ { "name": "animation", - "value": 3 + "value": 2 } ], "stringProperties": [], - "initialVariables": [] + "initialVariables": [ + { + "folded": true, + "name": "id", + "type": "number", + "value": 3 + } + ] }, { "angle": 0, - "customSize": true, - "depth": 1, - "height": 15, + "customSize": false, + "height": 0, + "keepRatio": true, "layer": "UI", - "name": "phone_battery", - "persistentUuid": "dcfc4f9b-3097-4216-8186-ed27184629e7", - "width": 30, - "x": 1848, - "y": 672, - "zOrder": 3, + "name": "phoneIcons", + "persistentUuid": "a4d0bdb8-d1f3-4cb4-9354-5098ba24de1a", + "width": 0, + "x": 2198, + "y": 1033, + "zOrder": 53, "numberProperties": [], "stringProperties": [], - "initialVariables": [] + "initialVariables": [ + { + "folded": true, + "name": "id", + "type": "number", + "value": 1 + } + ] }, { "angle": 0, + "customSize": false, + "height": 0, + "keepRatio": true, + "layer": "UI", + "name": "phoneIcons", + "persistentUuid": "c37195a3-88de-4744-b578-cbdd96a1119b", + "width": 0, + "x": 2274, + "y": 1033, + "zOrder": 53, + "numberProperties": [ + { + "name": "animation", + "value": 1 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "folded": true, + "name": "id", + "type": "number", + "value": 2 + } + ] + }, + { + "angle": -90, "customSize": true, "depth": 1, - "height": 22, + "height": 11, + "keepRatio": true, "layer": "UI", - "name": "phone_time", - "persistentUuid": "54fb08c4-adf2-4f4f-851b-490fe20f8b5b", - "width": 48, - "x": 1666, - "y": 669, - "zOrder": 4, - "numberProperties": [], + "name": "phone_battery", + "persistentUuid": "140b8479-44e8-4e36-baaf-7fb7fef2ae94", + "width": 16, + "x": 1834, + "y": 636, + "zOrder": 201, + "numberProperties": [ + { + "name": "animation", + "value": 1 + } + ], "stringProperties": [], "initialVariables": [] }, @@ -80,13 +176,14 @@ "angle": 0, "customSize": false, "height": 0, + "keepRatio": true, "layer": "UI", - "name": "Thumb", - "persistentUuid": "f61cdfa5-c919-4d2f-958f-11caeaacba8b", + "name": "phoneWallpaper", + "persistentUuid": "68d0a48f-ed64-49b6-9873-b90b96b7956b", "width": 0, - "x": 1772, - "y": 1132, - "zOrder": 50, + "x": 2545, + "y": 165, + "zOrder": 2, "numberProperties": [], "stringProperties": [], "initialVariables": [] @@ -102,7 +199,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": false, - "zoomFactor": 0.6846283916654102, + "zoomFactor": 3.3635792882521773, "windowMask": false } } \ No newline at end of file diff --git a/src/game.json b/src/game.json index 30353c69..2b899a12 100644 --- a/src/game.json +++ b/src/game.json @@ -253,42 +253,6 @@ "smoothed": true, "userAdded": true }, - { - "alwaysLoaded": false, - "file": "assets/rooftop/roof_4.png", - "kind": "image", - "metadata": "", - "name": "assets\\rooftop\\roof_4.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/rooftop/roof_3.png", - "kind": "image", - "metadata": "", - "name": "assets\\rooftop\\roof_3.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/rooftop/roof_1.png", - "kind": "image", - "metadata": "", - "name": "assets\\rooftop\\roof_1.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/rooftop/roof_2.png", - "kind": "image", - "metadata": "", - "name": "assets\\rooftop\\roof_2.png", - "smoothed": true, - "userAdded": true - }, { "alwaysLoaded": false, "file": "assets/Road/sand/tile_06.png", @@ -334,15 +298,6 @@ "smoothed": true, "userAdded": true }, - { - "alwaysLoaded": false, - "file": "assets/weapons/bullet/BulletPlaceholder.png", - "kind": "image", - "metadata": "", - "name": "assets\\weapons\\bullet\\BulletPlaceholder.png", - "smoothed": true, - "userAdded": true - }, { "alwaysLoaded": false, "file": "assets/fence/element (21).png", @@ -460,105 +415,6 @@ "smoothed": true, "userAdded": true }, - { - "alwaysLoaded": false, - "file": "assets/sport/ball/ball_basket2.png", - "kind": "image", - "metadata": "", - "name": "assets\\sport\\ball\\ball_basket2.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/sport/ball/ball_basket4.png", - "kind": "image", - "metadata": "", - "name": "assets\\sport\\ball\\ball_basket4.png", - "smoothed": true, - "userAdded": false - }, - { - "alwaysLoaded": false, - "file": "assets/sport/post/element (77).png", - "kind": "image", - "metadata": "", - "name": "assets\\sport\\post\\element (77).png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/sport/post/element (65).png", - "kind": "image", - "metadata": "", - "name": "assets\\sport\\post\\element (65).png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/sprite_objects/fade_tiled_sprite-1.png", - "kind": "image", - "metadata": "", - "name": "assets\\sprite_objects\\fade_tiled_sprite-1.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/UI/buttons/beige/buttonLong_beige.png", - "kind": "image", - "metadata": "", - "name": "assets\\UI\\buttons\\beige\\buttonLong_beige.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/UI/buttons/beige/buttonLong_beige_pressed.png", - "kind": "image", - "metadata": "", - "name": "assets\\UI\\buttons\\beige\\buttonLong_beige_pressed.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/UI/buttons/beige/buttonSquare_beige.png", - "kind": "image", - "metadata": "", - "name": "assets\\UI\\buttons\\beige\\buttonSquare_beige.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/UI/buttons/beige/buttonSquare_beige_pressed.png", - "kind": "image", - "metadata": "", - "name": "assets\\UI\\buttons\\beige\\buttonSquare_beige_pressed.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/UI/buttons/beige/arrowBeige_right.png", - "kind": "image", - "metadata": "", - "name": "assets\\UI\\buttons\\beige\\arrowBeige_right.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/UI/buttons/beige/arrowBeige_left.png", - "kind": "image", - "metadata": "", - "name": "assets\\UI\\buttons\\beige\\arrowBeige_left.png", - "smoothed": true, - "userAdded": true - }, { "alwaysLoaded": false, "file": "assets/Interior/walls/tile_260.png", @@ -847,15 +703,6 @@ "smoothed": true, "userAdded": true }, - { - "alwaysLoaded": false, - "file": "assets/Interior/furniture/carpet/tile_511.png", - "kind": "image", - "metadata": "", - "name": "assets\\Interior\\furniture\\carpet\\tile_511.png", - "smoothed": true, - "userAdded": true - }, { "alwaysLoaded": false, "file": "assets/Interior/furniture/table/tile_483.png", @@ -1236,15 +1083,6 @@ "smoothed": true, "userAdded": true }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/manBlue_rocketlauncher.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\manBlue_rocketlauncher.png", - "smoothed": true, - "userAdded": true - }, { "alwaysLoaded": false, "file": "assets/character/Player/phone/phone_unlock.png", @@ -1353,24 +1191,6 @@ "smoothed": true, "userAdded": true }, - { - "alwaysLoaded": false, - "file": "assets/rooftop/roof_5.png", - "kind": "image", - "metadata": "", - "name": "assets\\rooftop\\roof_5.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/rooftop/roof_6.png", - "kind": "image", - "metadata": "", - "name": "assets\\rooftop\\roof_6.png", - "smoothed": true, - "userAdded": true - }, { "alwaysLoaded": false, "file": "assets/deco/deco_1.png", @@ -1380,24 +1200,6 @@ "smoothed": true, "userAdded": false }, - { - "alwaysLoaded": false, - "file": "assets/rooftop/roof_10.png", - "kind": "image", - "metadata": "", - "name": "assets\\rooftop\\roof_10.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/rooftop/roof_7.png", - "kind": "image", - "metadata": "", - "name": "assets\\rooftop\\roof_7.png", - "smoothed": true, - "userAdded": true - }, { "alwaysLoaded": false, "file": "assets/multipurpose/sandbagBeige.png", @@ -1614,15 +1416,6 @@ "smoothed": true, "userAdded": true }, - { - "alwaysLoaded": false, - "file": "assets/water/tile_73.png", - "kind": "image", - "metadata": "", - "name": "assets\\water\\tile_73.png", - "smoothed": true, - "userAdded": false - }, { "alwaysLoaded": false, "file": "assets/Road/road/tile_37-1.png", @@ -1938,42 +1731,6 @@ "smoothed": true, "userAdded": true }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/phone/phone_battery_0.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\phone\\phone_battery_0.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/phone/phone_battery_1.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\phone\\phone_battery_1.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/phone/phone_battery_2.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\phone\\phone_battery_2.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/phone/phone_battery_3.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\phone\\phone_battery_3.png", - "smoothed": true, - "userAdded": true - }, { "alwaysLoaded": false, "file": "assets/sprite_objects/mouse_point-1.png", @@ -2010,15 +1767,6 @@ "smoothed": true, "userAdded": true }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/knife_a2.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\knife_a2.png", - "smoothed": true, - "userAdded": true - }, { "alwaysLoaded": false, "file": "assets/weapons/gun/Rocket_launcher_item - rocket out.png", @@ -2028,13 +1776,6 @@ "smoothed": true, "userAdded": true }, - { - "file": "Kenney Rocket Square.ttf", - "kind": "font", - "metadata": "", - "name": "Kenney Rocket Square.ttf", - "userAdded": false - }, { "alwaysLoaded": false, "file": "assets/Interior/floor/tile_100.png", @@ -2044,15 +1785,6 @@ "smoothed": true, "userAdded": true }, - { - "alwaysLoaded": false, - "file": "assets/Interior/floor/tile_69.png", - "kind": "image", - "metadata": "", - "name": "assets/Interior/floor/tile_69.png", - "smoothed": true, - "userAdded": true - }, { "alwaysLoaded": false, "file": "assets/Interior/floor/tile_46.png", @@ -2080,495 +1812,144 @@ }, { "alwaysLoaded": false, - "file": "assets/rooftop/roof_9.png", + "file": "assets/character/Player/phone/thumb_1.png", "kind": "image", "metadata": "", - "name": "assets\\rooftop\\roof_9.png", + "name": "assets\\character\\Player\\phone\\thumb_1.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, - "file": "assets/rooftop/roof_11.png", + "file": "assets/character/Player/phone/pointer.png", "kind": "image", "metadata": "", - "name": "assets\\rooftop\\roof_11.png", + "name": "assets\\character\\Player\\phone\\pointer.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, - "file": "assets/rooftop/roof_12.png", + "file": "assets/character/Player/phone/pointer_3.png", "kind": "image", "metadata": "", - "name": "assets\\rooftop\\roof_12.png", + "name": "assets\\character\\Player\\phone\\pointer_3.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, - "file": "assets/rooftop/roof_13.png", + "file": "assets/character/Player/phone/pointer_4.png", "kind": "image", "metadata": "", - "name": "assets\\rooftop\\roof_13.png", + "name": "assets\\character\\Player\\phone\\pointer_4.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, - "file": "assets/rooftop/roof_14.png", + "file": "assets/character/Player/phone/pointer_5.png", "kind": "image", "metadata": "", - "name": "assets\\rooftop\\roof_14.png", + "name": "assets\\character\\Player\\phone\\pointer_5.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, - "file": "assets/rooftop/roof_14_horizontal.png", + "file": "assets/character/Player/phone/pointer_6.png", "kind": "image", "metadata": "", - "name": "assets\\rooftop\\roof_14_horizontal.png", + "name": "assets\\character\\Player\\phone\\pointer_6.png", "smoothed": true, - "userAdded": false + "userAdded": true }, { "alwaysLoaded": false, - "file": "assets/rooftop/roof_16.png", + "file": "assets/character/Player/phone/pointer_7.png", "kind": "image", "metadata": "", - "name": "assets\\rooftop\\roof_16.png", + "name": "assets\\character\\Player\\phone\\pointer_7.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, - "file": "assets/rooftop/roof_17.png", + "file": "assets/weapons/bullet/rocket_launcher_bullet.png", "kind": "image", "metadata": "", - "name": "assets\\rooftop\\roof_17.png", + "name": "assets\\weapons\\bullet\\rocket_launcher_bullet.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, - "file": "assets/rooftop/roof_18.png", + "file": "assets/placeholder/tiledGreen.png", "kind": "image", "metadata": "", - "name": "assets\\rooftop\\roof_18.png", + "name": "assets\\placeholder\\tiledGreen.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, - "file": "assets/rooftop/roof_19.png", + "file": "assets/Flat Bar Red Fill Bar.png", "kind": "image", "metadata": "", - "name": "assets\\rooftop\\roof_19.png", - "smoothed": true, - "userAdded": true + "name": "Flat Bar Red Fill Bar.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Resource bars/pixel art/212e9679eaae4753beaa5d595d7c80ea66df3235485c6a3963e88b0d936a1798_Flat Bar Red Fill Bar.png", + "name": "Flat Bar Red Fill Bar.png" + } }, { "alwaysLoaded": false, - "file": "assets/rooftop/roof_20.png", + "file": "assets/Flat Bar White Border.png", "kind": "image", "metadata": "", - "name": "assets\\rooftop\\roof_20.png", - "smoothed": true, - "userAdded": false + "name": "Flat Bar White Border.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Resource bars/pixel art/c090d31cafed0c8ef7bb4d5af75a7dbf7149bcc03a7d5d63ae997d59100e362e_Flat Bar White Border.png", + "name": "Flat Bar White Border.png" + } }, { "alwaysLoaded": false, - "file": "assets/rooftop/roof_21.png", + "file": "assets/character/test/characters_g499.png", "kind": "image", "metadata": "", - "name": "assets\\rooftop\\roof_21.png", + "name": "assets/character/test/characters_g499.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, - "file": "assets/rooftop/roof_22.png", + "file": "assets/character/test/characters_g574.png", "kind": "image", "metadata": "", - "name": "assets\\rooftop\\roof_22.png", + "name": "assets/character/test/characters_g574.png", "smoothed": true, "userAdded": true }, { "alwaysLoaded": false, - "file": "assets/rooftop/roof_23.png", + "file": "assets/character/test/characters_g571.png", "kind": "image", "metadata": "", - "name": "assets\\rooftop\\roof_23.png", + "name": "assets/character/test/characters_g571.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, - "file": "assets/rooftop/roof_24.png", + "file": "assets/character/test/characters_g527.png", "kind": "image", "metadata": "", - "name": "assets\\rooftop\\roof_24.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/rooftop/roof_25.png", - "kind": "image", - "metadata": "", - "name": "assets\\rooftop\\roof_25.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/phone/phone_app.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\phone\\phone_app.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/phone/phone_lock_1.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\phone\\phone_lock_1.png", - "smoothed": true, - "userAdded": false - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/phone/phone_lock_2.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\phone\\phone_lock_2.png", - "smoothed": true, - "userAdded": false - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/phone/phone_lock_3.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\phone\\phone_lock_3.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/phone/phone_lock_4.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\phone\\phone_lock_4.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/phone/phone_lock_5.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\phone\\phone_lock_5.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/phone/phone_lock_6.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\phone\\phone_lock_6.png", - "smoothed": true, - "userAdded": false - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/phone/phone_off.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\phone\\phone_off.png", - "smoothed": true, - "userAdded": false - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/phone/thumb.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\phone\\thumb.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/phone/thumb_1.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\phone\\thumb_1.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/phone/pointer.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\phone\\pointer.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/phone/pointer_3.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\phone\\pointer_3.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/phone/pointer_4.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\phone\\pointer_4.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/phone/pointer_5.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\phone\\pointer_5.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/phone/pointer_6.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\phone\\pointer_6.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/phone/pointer_7.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\phone\\pointer_7.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/manBlue_walk_1.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\manBlue_walk_1.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/manBlue_walk_2.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\manBlue_walk_2.png", - "smoothed": true, - "userAdded": false - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/knife_a3.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\knife_a3.png", - "smoothed": true, - "userAdded": false - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/knife_a4.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\knife_a4.png", - "smoothed": true, - "userAdded": false - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/knife_a5.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\knife_a5.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/weapons/bullet/rocket_launcher_bullet.png", - "kind": "image", - "metadata": "", - "name": "assets\\weapons\\bullet\\rocket_launcher_bullet.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/Player/manBlue_phone_2.png", - "kind": "image", - "metadata": "", - "name": "assets\\character\\Player\\manBlue_phone_2.png", - "smoothed": true, - "userAdded": false - }, - { - "alwaysLoaded": false, - "file": "assets/placeholder/tiledGreen.png", - "kind": "image", - "metadata": "", - "name": "assets\\placeholder\\tiledGreen.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/Flat Bar Red Fill Bar.png", - "kind": "image", - "metadata": "", - "name": "Flat Bar Red Fill Bar.png", - "smoothed": false, - "userAdded": false, - "origin": { - "identifier": "https://asset-resources.gdevelop.io/public-resources/Resource bars/pixel art/212e9679eaae4753beaa5d595d7c80ea66df3235485c6a3963e88b0d936a1798_Flat Bar Red Fill Bar.png", - "name": "Flat Bar Red Fill Bar.png" - } - }, - { - "alwaysLoaded": false, - "file": "assets/Flat Bar White Border.png", - "kind": "image", - "metadata": "", - "name": "Flat Bar White Border.png", - "smoothed": false, - "userAdded": false, - "origin": { - "identifier": "https://asset-resources.gdevelop.io/public-resources/Resource bars/pixel art/c090d31cafed0c8ef7bb4d5af75a7dbf7149bcc03a7d5d63ae997d59100e362e_Flat Bar White Border.png", - "name": "Flat Bar White Border.png" - } - }, - { - "alwaysLoaded": false, - "file": "../../../../Downloads/kenney_sports-pack/PNG/Blue/characterBlue (1).png", - "kind": "image", - "metadata": "", - "name": "../../../../Downloads/kenney_sports-pack/PNG/Blue/characterBlue (1).png", - "smoothed": true, - "userAdded": false - }, - { - "alwaysLoaded": false, - "file": "assets/character/test/characterBlue (1).png", - "kind": "image", - "metadata": "", - "name": "assets/character/test/characterBlue (1).png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/test/characterBlue (13).png", - "kind": "image", - "metadata": "", - "name": "assets/character/test/characterBlue (13).png", - "smoothed": true, - "userAdded": false - }, - { - "alwaysLoaded": false, - "file": "assets/character/test/characterBlue (11).png", - "kind": "image", - "metadata": "", - "name": "assets/character/test/characterBlue (11).png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/test/characters_g499.png", - "kind": "image", - "metadata": "", - "name": "assets/character/test/characters_g499.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/test/characters_g572.png", - "kind": "image", - "metadata": "", - "name": "assets/character/test/characters_g572.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/test/characters_g656.png", - "kind": "image", - "metadata": "", - "name": "assets/character/test/characters_g656.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/test/characters_g656_copy_2.png", - "kind": "image", - "metadata": "", - "name": "assets/character/test/characters_g656_copy_2.png", - "smoothed": true, - "userAdded": false - }, - { - "alwaysLoaded": false, - "file": "assets/character/test/characters_g574.png", - "kind": "image", - "metadata": "", - "name": "assets/character/test/characters_g574.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/test/characters_g571.png", - "kind": "image", - "metadata": "", - "name": "assets/character/test/characters_g571.png", - "smoothed": true, - "userAdded": false - }, - { - "alwaysLoaded": false, - "file": "assets/character/test/characters_g493.png", - "kind": "image", - "metadata": "", - "name": "assets/character/test/characters_g493.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/test/characters_g527.png", - "kind": "image", - "metadata": "", - "name": "assets/character/test/characters_g527.png", + "name": "assets/character/test/characters_g527.png", "smoothed": true, "userAdded": true }, @@ -2599,24 +1980,6 @@ "smoothed": true, "userAdded": true }, - { - "alwaysLoaded": false, - "file": "assets/character/test/characters_g566.png", - "kind": "image", - "metadata": "", - "name": "assets/character/test/characters_g566.png", - "smoothed": true, - "userAdded": true - }, - { - "alwaysLoaded": false, - "file": "assets/character/test/characters_g577.png", - "kind": "image", - "metadata": "", - "name": "assets/character/test/characters_g577.png", - "smoothed": true, - "userAdded": true - }, { "alwaysLoaded": false, "file": "assets/character/test/characters_g575.png", @@ -2771,57 +2134,138 @@ }, { "alwaysLoaded": false, - "file": "assets/sport/post/elements_g354.png", + "file": "assets/sport/post/elements_g361_copy_1.png", "kind": "image", "metadata": "", - "name": "assets/sport/post/elements_g354.png", + "name": "assets/sport/post/elements_g361_copy_1.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, - "file": "assets/sport/post/elements_g348.png", + "file": "assets/sport/ball/charactersEquipment_g483.png", "kind": "image", "metadata": "", - "name": "assets/sport/post/elements_g348.png", + "name": "assets/sport/ball/charactersEquipment_g483.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, - "file": "assets/sport/post/elements_g361.png", + "file": "assets/sport/ball/charactersEquipment_g553.png", "kind": "image", "metadata": "", - "name": "assets/sport/post/elements_g361.png", + "name": "assets/sport/ball/charactersEquipment_g553.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, - "file": "assets/sport/post/elements_g361_copy_1.png", + "file": "assets/phone/apps/1.png", "kind": "image", "metadata": "", - "name": "assets/sport/post/elements_g361_copy_1.png", + "name": "assets/phone/apps/1.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/phone/apps/2.png", + "kind": "image", + "metadata": "", + "name": "assets/phone/apps/2.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/phone/apps/3.png", + "kind": "image", + "metadata": "", + "name": "assets/phone/apps/3.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, - "file": "assets/sport/ball/charactersEquipment_g483.png", + "file": "assets/phone/frame/1.png", "kind": "image", "metadata": "", - "name": "assets/sport/ball/charactersEquipment_g483.png", + "name": "assets/phone/frame/1.png", "smoothed": true, "userAdded": false }, { "alwaysLoaded": false, - "file": "assets/sport/ball/charactersEquipment_g553.png", + "file": "assets/phone/frame/2.png", "kind": "image", "metadata": "", - "name": "assets/sport/ball/charactersEquipment_g553.png", + "name": "assets/phone/frame/2.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/phone/battery/1_g16.png", + "kind": "image", + "metadata": "", + "name": "assets/phone/battery/1_g16.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/phone/battery/1_g15.png", + "kind": "image", + "metadata": "", + "name": "assets/phone/battery/1_g15.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/phone/battery/1_g14.png", + "kind": "image", + "metadata": "", + "name": "assets/phone/battery/1_g14.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/phone/wallpaper/1.png", + "kind": "image", + "metadata": "", + "name": "assets/phone/wallpaper/1.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/phone/wallpaper/2.png", + "kind": "image", + "metadata": "", + "name": "assets/phone/wallpaper/2.png", "smoothed": true, "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/phone/wallpaper/3.png", + "kind": "image", + "metadata": "", + "name": "assets/phone/wallpaper/3.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/phone/wallpaper/4.png", + "kind": "image", + "metadata": "", + "name": "assets/phone/wallpaper/4.png", + "smoothed": true, + "userAdded": true } ], "resourceFolders": [] @@ -3171,6 +2615,10 @@ } ], "eventsFunctionsExtensions": [ + { + "__REFERENCE_TO_SPLIT_OBJECT": true, + "referenceTo": "/eventsFunctionsExtensions/spritemasking" + }, { "__REFERENCE_TO_SPLIT_OBJECT": true, "referenceTo": "/eventsFunctionsExtensions/toggleswitch" @@ -3183,6 +2631,10 @@ "__REFERENCE_TO_SPLIT_OBJECT": true, "referenceTo": "/eventsFunctionsExtensions/panelspriteslider" }, + { + "__REFERENCE_TO_SPLIT_OBJECT": true, + "referenceTo": "/eventsFunctionsExtensions/ellipsemovement" + }, { "__REFERENCE_TO_SPLIT_OBJECT": true, "referenceTo": "/eventsFunctionsExtensions/sticker" diff --git a/src/layouts/city.json b/src/layouts/city.json index 54da3228..e5b9e9fa 100644 --- a/src/layouts/city.json +++ b/src/layouts/city.json @@ -18,7 +18,7 @@ "gridColor": 10401023, "gridAlpha": 0.8, "snap": false, - "zoomFactor": 0.4680787054277228, + "zoomFactor": 0.24113360125461827, "windowMask": false }, "objectsGroups": [ @@ -58198,111 +58198,6 @@ "color": "112;112;112" } }, - { - "adaptCollisionMaskAutomatically": false, - "assetStoreId": "", - "name": "Phone", - "type": "Sprite", - "updateIfNotVisible": false, - "variables": [ - { - "folded": true, - "name": "swipe", - "type": "string", - "value": "" - } - ], - "effects": [ - { - "effectType": "Outline", - "name": "Effect", - "doubleParameters": { - "padding": 0, - "thickness": 2 - }, - "stringParameters": { - "color": "0;0;0" - }, - "booleanParameters": {} - } - ], - "behaviors": [ - { - "name": "Anchor", - "type": "AnchorBehavior::AnchorBehavior", - "bottomEdgeAnchor": 0, - "leftEdgeAnchor": 0, - "relativeToOriginalWindowSize": true, - "rightEdgeAnchor": 2, - "topEdgeAnchor": 0, - "useLegacyBottomAndRightAnchors": false - }, - { - "name": "Tween", - "type": "Tween::TweenBehavior" - } - ], - "animations": [ - { - "name": "", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 1, - "sprites": [ - { - "hasCustomCollisionMask": false, - "image": "assets\\character\\Player\\phone\\phone_off.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [] - } - ] - } - ] - }, - { - "name": "", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": false, - "image": "assets\\character\\Player\\phone\\phone_app.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [] - } - ] - } - ] - } - ] - }, { "assetStoreId": "", "bold": false, @@ -59219,36 +59114,7 @@ "sprites": [ { "hasCustomCollisionMask": false, - "image": "assets\\character\\Player\\phone\\phone_battery_0.png", - "points": [], - "originPoint": { - "name": "origine", - "x": 0, - "y": 0 - }, - "centerPoint": { - "automatic": true, - "name": "centre", - "x": 0, - "y": 0 - }, - "customCollisionMask": [] - } - ] - } - ] - }, - { - "name": "", - "useMultipleDirections": false, - "directions": [ - { - "looping": false, - "timeBetweenFrames": 0.08, - "sprites": [ - { - "hasCustomCollisionMask": false, - "image": "assets\\character\\Player\\phone\\phone_battery_1.png", + "image": "assets/phone/battery/1_g14.png", "points": [], "originPoint": { "name": "origine", @@ -59277,7 +59143,7 @@ "sprites": [ { "hasCustomCollisionMask": false, - "image": "assets\\character\\Player\\phone\\phone_battery_2.png", + "image": "assets/phone/battery/1_g15.png", "points": [], "originPoint": { "name": "origine", @@ -59306,7 +59172,7 @@ "sprites": [ { "hasCustomCollisionMask": false, - "image": "assets\\character\\Player\\phone\\phone_battery_3.png", + "image": "assets/phone/battery/1_g16.png", "points": [], "originPoint": { "name": "origine", @@ -59329,7 +59195,7 @@ }, { "assetStoreId": "", - "bold": true, + "bold": false, "italic": false, "name": "phone_time", "smoothed": true, @@ -59362,14 +59228,14 @@ "string": "00:00", "font": "", "textAlignment": "", - "characterSize": 18, + "characterSize": 15, "color": { "b": 255, "g": 255, "r": 255 }, "content": { - "bold": true, + "bold": false, "isOutlineEnabled": false, "isShadowEnabled": false, "italic": false, @@ -59385,7 +59251,7 @@ "text": "00:00", "font": "", "textAlignment": "", - "characterSize": 18, + "characterSize": 15, "color": "255;255;255" } }, @@ -61244,6 +61110,531 @@ "characterSize": 20, "color": "0;0;0" } + }, + { + "adaptCollisionMaskAutomatically": true, + "assetStoreId": "", + "name": "phoneFrame", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [ + { + "effectType": "Outline", + "name": "Effect", + "doubleParameters": { + "padding": 0, + "thickness": 1 + }, + "stringParameters": { + "color": "29;29;27" + }, + "booleanParameters": {} + } + ], + "behaviors": [ + { + "name": "Anchor", + "type": "AnchorBehavior::AnchorBehavior", + "bottomEdgeAnchor": 0, + "leftEdgeAnchor": 0, + "relativeToOriginalWindowSize": true, + "rightEdgeAnchor": 2, + "topEdgeAnchor": 0, + "useLegacyBottomAndRightAnchors": false + }, + { + "name": "Tween", + "type": "Tween::TweenBehavior" + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "assets/phone/frame/1.png", + "points": [ + { + "name": "1", + "x": 50, + "y": 370.5 + }, + { + "name": "2", + "x": 115, + "y": 370.5 + }, + { + "name": "3", + "x": 180, + "y": 370.5 + } + ], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 0 + }, + { + "x": 224, + "y": 0 + }, + { + "x": 224, + "y": 418 + }, + { + "x": 0, + "y": 418 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": true, + "assetStoreId": "", + "name": "phoneMask", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [ + { + "effectType": "ColorReplace", + "name": "Effect", + "doubleParameters": { + "epsilon": 0.4 + }, + "stringParameters": { + "newColor": "0;0;0", + "originalColor": "255;255;255" + }, + "booleanParameters": {} + } + ], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "assets/phone/frame/2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 0 + }, + { + "x": 215, + "y": 0 + }, + { + "x": 215, + "y": 417 + }, + { + "x": 0, + "y": 417 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": true, + "assetStoreId": "", + "name": "phoneIcons", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [ + { + "folded": true, + "name": "id", + "type": "number", + "value": 0 + } + ], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "phone", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "assets/phone/apps/1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 28, + "y": 28 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 0 + }, + { + "x": 56, + "y": 0 + }, + { + "x": 56, + "y": 56 + }, + { + "x": 0, + "y": 56 + } + ] + ] + } + ] + } + ] + }, + { + "name": "images", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "assets/phone/apps/2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 28, + "y": 28 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 0 + }, + { + "x": 56, + "y": 0 + }, + { + "x": 56, + "y": 56 + }, + { + "x": 0, + "y": 56 + } + ] + ] + } + ] + } + ] + }, + { + "name": "camera", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "assets/phone/apps/3.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 28, + "y": 28 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 0 + }, + { + "x": 56, + "y": 0 + }, + { + "x": 56, + "y": 56 + }, + { + "x": 0, + "y": 56 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": true, + "assetStoreId": "", + "name": "phoneWallpaper", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "EllipseMovement", + "type": "EllipseMovement::EllipseMovement", + "RadiusX": 100, + "RadiusY": 0, + "LoopDuration": 20, + "InitialTurningLeft": false, + "InitialDirectionAngle": 0, + "ShouldRotate": false, + "RotationOffset": 0, + "CenterX": 0, + "CenterY": 0, + "MovementAngle": 0, + "OldX": 2.0247e-320, + "OldY": 2.0247e-320 + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "assets/phone/wallpaper/1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 1 + }, + { + "x": 1024, + "y": 1 + }, + { + "x": 1024, + "y": 1025 + }, + { + "x": 0, + "y": 1025 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "assets/phone/wallpaper/2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 1 + }, + { + "x": 1024, + "y": 1 + }, + { + "x": 1024, + "y": 1025 + }, + { + "x": 0, + "y": 1025 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "assets/phone/wallpaper/3.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 1 + }, + { + "x": 1024, + "y": 1 + }, + { + "x": 1024, + "y": 1025 + }, + { + "x": 0, + "y": 1025 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "assets/phone/wallpaper/4.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 0, + "y": 1 + }, + { + "x": 1024, + "y": 1 + }, + { + "x": 1024, + "y": 1025 + }, + { + "x": 0, + "y": 1025 + } + ] + ] + } + ] + } + ] + } + ] } ], "objectsFolderStructure": { @@ -61270,7 +61661,16 @@ "objectName": "Thumb" }, { - "objectName": "Phone" + "objectName": "phoneIcons" + }, + { + "objectName": "phoneFrame" + }, + { + "objectName": "phoneMask" + }, + { + "objectName": "phoneWallpaper" }, { "objectName": "phone_battery" @@ -62116,6 +62516,10 @@ "name": "Effect", "type": "EffectCapability::EffectBehavior" }, + { + "name": "EllipseMovement", + "type": "EllipseMovement::EllipseMovement" + }, { "name": "FlashTransitionPainter", "type": "FlashTransitionPainter::FlashTransitionPainter" diff --git a/svg/phone/phone.svg b/svg/phone/phone.svg new file mode 100644 index 00000000..9aeedc93 --- /dev/null +++ b/svg/phone/phone.svg @@ -0,0 +1,460 @@ + + From 70bd34d40575d74de1fa06cc35d567c89afd85e6 Mon Sep 17 00:00:00 2001 From: Gabriel Momoh <53819287+TheGemDev@users.noreply.github.com> Date: Mon, 22 Apr 2024 18:44:54 +0100 Subject: [PATCH 3/5] add controller support --- src/eventsFunctionsExtensions/gamepads.json | 3551 +++++++++++++++++++ src/externalEvents/player.json | 112 +- src/game.json | 4 + src/layouts/city.json | 2 - 4 files changed, 3651 insertions(+), 18 deletions(-) create mode 100644 src/eventsFunctionsExtensions/gamepads.json diff --git a/src/eventsFunctionsExtensions/gamepads.json b/src/eventsFunctionsExtensions/gamepads.json new file mode 100644 index 00000000..3fb5268b --- /dev/null +++ b/src/eventsFunctionsExtensions/gamepads.json @@ -0,0 +1,3551 @@ +{ + "author": "Bouh", + "category": "Input", + "extensionNamespace": "", + "fullName": "Gamepads (controllers)", + "helpPath": "/all-features/gamepad", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWdhbWVwYWQtdmFyaWFudC1vdXRsaW5lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTYsOUg4VjExSDEwVjEzSDhWMTVINlYxM0g0VjExSDZWOU0xOC41LDlBMS41LDEuNSAwIDAsMSAyMCwxMC41QTEuNSwxLjUgMCAwLDEgMTguNSwxMkExLjUsMS41IDAgMCwxIDE3LDEwLjVBMS41LDEuNSAwIDAsMSAxOC41LDlNMTUuNSwxMkExLjUsMS41IDAgMCwxIDE3LDEzLjVBMS41LDEuNSAwIDAsMSAxNS41LDE1QTEuNSwxLjUgMCAwLDEgMTQsMTMuNUExLjUsMS41IDAgMCwxIDE1LjUsMTJNMTcsNUE3LDcgMCAwLDEgMjQsMTJBNyw3IDAgMCwxIDE3LDE5QzE1LjA0LDE5IDEzLjI3LDE4LjIgMTIsMTYuOUMxMC43MywxOC4yIDguOTYsMTkgNywxOUE3LDcgMCAwLDEgMCwxMkE3LDcgMCAwLDEgNyw1SDE3TTcsN0E1LDUgMCAwLDAgMiwxMkE1LDUgMCAwLDAgNywxN0M4LjY0LDE3IDEwLjA5LDE2LjIxIDExLDE1SDEzQzEzLjkxLDE2LjIxIDE1LjM2LDE3IDE3LDE3QTUsNSAwIDAsMCAyMiwxMkE1LDUgMCAwLDAgMTcsN0g3WiIgLz48L3N2Zz4=", + "name": "Gamepads", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/gamepad-variant-outline.svg", + "shortDescription": "Add support for gamepads (or other controllers) to your game, giving access to information such as button presses, axis positions, trigger pressure, etc...", + "version": "0.6.1", + "description": [ + "Add support for gamepads (or other controllers).", + "", + "It gives access to:", + "- button presses", + "- axis positions and force", + "- trigger pressure", + "- configurable deadzone", + "- vibration", + "- automatic mappers for platformer characters and top-down movement", + "", + "The Bomberman-like example handles 4 players with gamepads ([open the project online](https://editor.gdevelop.io/?project=example://goose-bomberman))." + ], + "origin": { + "identifier": "Gamepads", + "name": "gdevelop-extension-store" + }, + "tags": [ + "controllers", + "gamepads", + "joysticks", + "axis", + "xbox", + "ps4", + "platformer", + "platform", + "top-down" + ], + "authorIds": [ + "2OwwM8ToR9dx9RJ2sAKTcrLmCB92", + "taRwmWxwAFYFL9yyBwB3cwBw0BO2", + "mnImQKdn8nQxwzkS5D6a1JB27V23" + ], + "dependencies": [], + "eventsFunctions": [ + { + "description": "Get the value of the pressure on a gamepad trigger.", + "fullName": "Pressure on a gamepad trigger", + "functionType": "Expression", + "name": "TriggerPressure", + "sentence": "Player _PARAM1_ push axis _PARAM2_ to _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const trigger = eventsFunctionContext.getArgument(\"trigger\").toUpperCase();\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in expression: \"Pressure on a gamepad trigger\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "if (trigger != \"LT\" && trigger != \"RT\" && trigger != \"L2\" && trigger != \"R2\") {\r", + " console.error('Parameter trigger is not valid in expression: \"Pressure on a gamepad trigger\"');\r", + " return;\r", + "}\r", + "\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "switch (trigger) {\r", + " case 'LT':\r", + " case 'L2':\r", + " eventsFunctionContext.returnValue = gamepad.buttons[6].value;\r", + " break;\r", + "\r", + " case 'RT':\r", + " case 'R2':\r", + " eventsFunctionContext.returnValue = gamepad.buttons[7].value;\r", + " break;\r", + "\r", + " default:\r", + " eventsFunctionContext.returnValue = -1;\r", + " break;\r", + "}" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Trigger button", + "name": "trigger", + "supplementaryInformation": "[\"LT\",\"RT\",\"L2\",\"R2\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "the force of gamepad stick (from 0 to 1).", + "fullName": "Stick force", + "functionType": "ExpressionAndCondition", + "name": "StickForce", + "sentence": "the gamepad _PARAM1_ _PARAM2_ stick force", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const stick = eventsFunctionContext.getArgument(\"stick\").toUpperCase();\r", + "\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier is not valid in expression: \"Value of a stick force\"');\r", + " return;\r", + "}\r", + "\r", + "if (stick !== \"LEFT\" && stick !== \"RIGHT\") {\r", + " console.error('Parameter stick is not valid in expression: \"Value of a stick force\"');\r", + " return;\r", + "}\r", + "\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "\r", + "switch (stick) {\r", + " case 'LEFT':\r", + " eventsFunctionContext.returnValue = gdjs.evtTools.common.clamp(Math.abs(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId)) + Math.abs(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId)), 0, 1);\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " eventsFunctionContext.returnValue = gdjs.evtTools.common.clamp(Math.abs(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId)) + Math.abs(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId)), 0, 1);\r", + " break;\r", + "\r", + " default:\r", + " eventsFunctionContext.returnValue = -1;\r", + " break;\r", + "}" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Stick: \"Left\" or \"Right\"", + "name": "stick", + "supplementaryInformation": "[\"Left\",\"Right\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Get the rotation value of a gamepad stick.\nIf the deadzone value is high, the angle value is rounded to main axes, left, left, up, down.\nAn zero deadzone value give a total freedom on the angle value.", + "fullName": "Value of a stick rotation (deprecated)", + "functionType": "Expression", + "name": "StickRotationValue", + "private": true, + "sentence": "Player _PARAM1_ push axis _PARAM2_ to _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Gamepads::StickAngle(GetArgumentAsNumber(\"player_ID\"), GetArgumentAsString(\"stick\"))" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Stick: \"Left\" or \"Right\"", + "name": "stick", + "supplementaryInformation": "[\"Left\",\"Right\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Return the angle of a gamepad stick.\nIf the deadzone value is high, the angle value is rounded to main axes, left, left, up, down.\nAn zero deadzone value give a total freedom on the angle value.", + "fullName": "Stick angle", + "functionType": "Expression", + "name": "StickAngle", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const stick = eventsFunctionContext.getArgument(\"stick\").toUpperCase();\r", + "\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier is not valid in expression: \"Value of a stick rotation\"');\r", + " return;\r", + "}\r", + "if (stick !== \"LEFT\" && stick !== \"RIGHT\") {\r", + " console.error('Parameter stick is not valid in expression: \"Value of a stick rotation\"');\r", + " return;\r", + "}\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "switch (stick) {\r", + " case 'LEFT':\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.axisToAngle(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId), gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId));\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.axisToAngle(gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId), gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId));\r", + " break;\r", + "\r", + " default:\r", + " eventsFunctionContext.returnValue = -1;\r", + " break;\r", + "}" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Stick: \"Left\" or \"Right\"", + "name": "stick", + "supplementaryInformation": "[\"Left\",\"Right\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Get the value of axis of a gamepad stick.", + "fullName": "Value of a gamepad axis (deprecated)", + "functionType": "Expression", + "name": "AxisValue", + "private": true, + "sentence": "Player _PARAM1_ push axis _PARAM2_ to _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const stick = eventsFunctionContext.getArgument(\"stick\").toUpperCase();\r", + "const direction = eventsFunctionContext.getArgument(\"direction\").toUpperCase();\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier is not valid in expression: \"Value of a gamepad axis\"');\r", + " return;\r", + "}\r", + "if (stick != \"LEFT\" && stick != \"RIGHT\") {\r", + " console.error('Parameter stick is not valid in expression: \"Value of a gamepad axis\"');\r", + " return;\r", + "}\r", + "if (direction != \"UP\" && direction != \"DOWN\" && direction != \"LEFT\" && direction != \"RIGHT\" && direction != \"HORIZONTAL\" && direction != \"VERTICAL\") {\r", + " console.error('Parameter direction is not valid in expression: \"Value of a gamepad axis\"');\r", + " return;\r", + "}\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "let parameterError = false;\r", + "switch (stick) {\r", + " case 'LEFT':\r", + " switch (direction) {\r", + " case 'LEFT':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = -gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId);\r", + " }\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId);\r", + " }\r", + " break;\r", + "\r", + " case 'UP':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = -gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId);\r", + " }\r", + " break;\r", + "\r", + " case 'DOWN':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId);\r", + " }\r", + " break;\r", + "\r", + " case \"HORIZONTAL\":\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[0], playerId);\r", + " break;\r", + "\r", + " case \"VERTICAL\":\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[1], playerId);\r", + " break;\r", + "\r", + " default:\r", + " break;\r", + " }\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " switch (direction) {\r", + " case 'LEFT':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = -gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId);\r", + " }\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId);\r", + " }\r", + " break;\r", + "\r", + " case 'UP':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = -gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId);\r", + " }\r", + " break;\r", + "\r", + " case 'DOWN':\r", + " if (gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId);\r", + " }\r", + " break;\r", + "\r", + " case \"HORIZONTAL\":\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[2], playerId);\r", + " break;\r", + "\r", + " case \"VERTICAL\":\r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[3], playerId);\r", + " break;\r", + "\r", + " default:\r", + " break;\r", + " }\r", + " break;\r", + "\r", + " default:\r", + " break;\r", + "}\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Stick: \"Left\" or \"Right\"", + "name": "stick", + "supplementaryInformation": "[\"Left\",\"Right\"]", + "type": "stringWithSelector" + }, + { + "description": "Direction", + "name": "direction", + "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\",\"Horizontal\",\"Vertical\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Return the gamepad stick force on X axis (from -1 at the left to 1 at the right).", + "fullName": "Stick X force", + "functionType": "Expression", + "name": "StickForceX", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"Gamepad\") - 1;\r", + "const stick = eventsFunctionContext.getArgument(\"Stick\").toLowerCase();\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier is not valid in expression: \"Value of a gamepad axis\"');\r", + " return;\r", + "}\r", + "if (stick != \"left\" && stick != \"right\") {\r", + " console.error('Parameter stick is not valid in expression: \"Value of a gamepad axis\"');\r", + " return;\r", + "}\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "const axisIndex = stick === 'right' ? 2 : 0;\r", + "eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[axisIndex], playerId);\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "Gamepad", + "type": "expression" + }, + { + "description": "Stick: \"Left\" or \"Right\"", + "name": "Stick", + "supplementaryInformation": "[\"Left\",\"Right\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Return the gamepad stick force on Y axis (from -1 at the top to 1 at the bottom).", + "fullName": "Stick Y force", + "functionType": "Expression", + "name": "StickForceY", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"Gamepad\") - 1;\r", + "const stick = eventsFunctionContext.getArgument(\"Stick\").toLowerCase();\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier is not valid in expression: \"Value of a gamepad axis\"');\r", + " return;\r", + "}\r", + "if (stick != \"left\" && stick != \"right\") {\r", + " console.error('Parameter stick is not valid in expression: \"Value of a gamepad axis\"');\r", + " return;\r", + "}\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "const axisIndex = stick === 'right' ? 3 : 1;\r", + "eventsFunctionContext.returnValue = gdjs._extensionController.getNormalizedAxisValue(gamepad.axes[axisIndex], playerId);\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "Gamepad", + "type": "expression" + }, + { + "description": "Stick: \"Left\" or \"Right\"", + "name": "Stick", + "supplementaryInformation": "[\"Left\",\"Right\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Test if a button is released on a gamepad. Buttons can be:\n* Xbox: \"A\", \"B\", \"X\", \"Y\", \"LB\", \"RB\", \"LT\", \"RT\", \"BACK\", \"START\",\n* PS4: \"CROSS\", \"SQUARE\", \"CIRCLE\", \"TRIANGLE\", \"L1\", \"L2\", \"R1\", \"R2\", \"SHARE\", \"OPTIONS\", \"PS_BUTTON\", \"CLICK_TOUCHPAD\",\n* Other: \"UP\", \"DOWN\", \"LEFT\", \"RIGHT\", \"CLICK_STICK_LEFT\", \"CLICK_STICK_RIGHT\".", + "fullName": "Gamepad button released", + "functionType": "Condition", + "name": "C_Button_released", + "sentence": "Button _PARAM2_ of gamepad _PARAM1_ is released", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const button = eventsFunctionContext.getArgument(\"button\").toUpperCase();\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in condition: \"Gamepad button released\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "if (button === \"\") {\r", + " console.error('Parameter button is not valid in condition: \"Gamepad button released\"');\r", + " return;\r", + "}\r", + "\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "let buttonId;\r", + "\r", + "switch (button) {\r", + " case 'A':\r", + " case 'CROSS':\r", + " buttonId = 0;\r", + " break;\r", + " case 'B':\r", + " case 'CIRCLE':\r", + " buttonId = 1;\r", + " break;\r", + " case 'X':\r", + " case 'SQUARE':\r", + " buttonId = 2;\r", + " break;\r", + " case 'Y':\r", + " case 'TRIANGLE':\r", + " buttonId = 3;\r", + " break;\r", + " case 'LB':\r", + " case 'L1':\r", + " buttonId = 4;\r", + " break;\r", + " case 'RB':\r", + " case 'R1':\r", + " buttonId = 5;\r", + " break;\r", + " case 'LT':\r", + " case 'L2':\r", + " buttonId = 6;\r", + " break;\r", + " case 'RT':\r", + " case 'R2':\r", + " buttonId = 7;\r", + " break;\r", + "\r", + " case 'UP':\r", + " buttonId = 12;\r", + " break;\r", + " case 'DOWN':\r", + " buttonId = 13;\r", + " break;\r", + " case 'LEFT':\r", + " buttonId = 14;\r", + " break;\r", + " case 'RIGHT':\r", + " buttonId = 15;\r", + " break;\r", + "\r", + " case 'BACK':\r", + " case 'SHARE':\r", + " buttonId = 8;\r", + " break;\r", + " case 'START':\r", + " case 'OPTIONS':\r", + " buttonId = 9;\r", + " break;\r", + "\r", + " case 'CLICK_STICK_LEFT':\r", + " buttonId = 10;\r", + " break;\r", + " case 'CLICK_STICK_RIGHT':\r", + " buttonId = 11;\r", + " break;\r", + "\r", + " //PS4\r", + " case 'PS_BUTTON':\r", + " buttonId = 16;\r", + " break;\r", + " case 'CLICK_TOUCHPAD':\r", + " buttonId = 17;\r", + " break;\r", + "\r", + " default:\r", + " console.error('The button: ' + button + ' in condition: \"Gamepad button released\" is not valid.');\r", + " break;\r", + "}\r", + "\r", + "if (buttonId === undefined) {\r", + " console.error('There is no buttons valid in condition: \"Gamepad button released\"');\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "if (gamepad.buttons == null || gamepad.buttons[buttonId] == null) {\r", + " console.error('Buttons on the gamepad are not accessible in condition: \"Gamepad button released\"');\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "//Define default value on pressed button or use previous value\r", + "gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId] = gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId] || { pressed: false };\r", + "\r", + "//Get state of button at previous frame\r", + "const previousStateButton = gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed;\r", + "\r", + "//When previousStateButton is true and actual button state is not pressed\r", + "//Player have release the button\r", + "if (previousStateButton === true && gamepad.buttons[buttonId].pressed === false) {\r", + " // Save the last button used for the player \r", + " gdjs._extensionController.players[playerId].lastButtonUsed = buttonId;\r", + " gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed = true;\r", + " eventsFunctionContext.returnValue = true;\r", + "\r", + "} else {\r", + " gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed = false;\r", + " eventsFunctionContext.returnValue = false;\r", + "}\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Name of the button", + "name": "button", + "supplementaryInformation": "[\"A\",\"Cross\",\"B\",\"Circle\",\"X\",\"Square\",\"Y\",\"Triangle\",\"LB\",\"L1\",\"RB\",\"R1\",\"LT\",\"L2\",\"RT\",\"R2\",\"Up\",\"Down\",\"Left\",\"Right\",\"Back\",\"Share\",\"Start\",\"Options\",\"Click_Stick_Left\",\"Click_Stick_Right\",\"PS_Button\",\"Click_Touchpad\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Return the index of the last pressed button of a gamepad.", + "fullName": "Last pressed button (id)", + "functionType": "Expression", + "name": "LastButtonID", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "//Get function parameter\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "\r", + "//Player id is not valid\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in expression: \"Last pressed button (id)\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "\r", + "//Return the last button used by the player\r", + "eventsFunctionContext.returnValue = gdjs._extensionController.players[playerId].lastButtonUsed;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Check if any button is pressed on a gamepad.", + "fullName": "Any gamepad button pressed", + "functionType": "Condition", + "name": "C_Any_Button_pressed", + "sentence": "Any button of gamepad _PARAM1_ is pressed", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameter\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in condition: \"Any gamepad button pressed\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "let buttonId;\r", + "for (let i = 0; i < gamepad.buttons.length; i++) { //For each buttons\r", + " if (gamepad.buttons[i].pressed) { //One of them is pressed\r", + " buttonId = i; //Save the button pressed\r", + " break;\r", + " }\r", + "}\r", + "\r", + "if (buttonId === undefined) {\r", + " // No buttons are pressed.\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "if (gamepad.buttons == null || gamepad.buttons[buttonId] == null) {\r", + " console.error('Buttons on the gamepad are not accessible in condition: \"Any gamepad button pressed\"');\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "//When a button is pressed, save the button in lastButtonUsed for each players\r", + "if (gamepad.buttons[buttonId].pressed) gdjs._extensionController.players[playerId].lastButtonUsed = buttonId;\r", + "eventsFunctionContext.returnValue = gamepad.buttons[buttonId].pressed;\r", + "\r", + "\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Return the last button pressed. \nButtons for Xbox and PS4 can be:\n* Xbox: \"A\", \"B\", \"X\", \"Y\", \"LB\", \"RB\", \"LT\", \"RT\", \"BACK\", \"START\",\n* PS4: \"CROSS\", \"SQUARE\", \"CIRCLE\", \"TRIANGLE\", \"L1\", \"L2\", \"R1\", \"R2\", \"SHARE\", \"OPTIONS\", \"PS_BUTTON\", \"CLICK_TOUCHPAD\",\n* Both: \"UP\", \"DOWN\", \"LEFT\", \"RIGHT\", \"CLICK_STICK_LEFT\", \"CLICK_STICK_RIGHT\".", + "fullName": "Last pressed button (string)", + "functionType": "StringExpression", + "name": "LastButtonString", + "sentence": "Button _PARAM2_ of gamepad _PARAM1_ is pressed", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const controllerType = eventsFunctionContext.getArgument(\"controller_type\").toUpperCase();\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in string expression: \"Last pressed button (LastButtonString)\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "if (controllerType === \"\") {\r", + " console.error('Parameter controller type is not valid in string expression: \"Last pressed button (LastButtonString)\"');\r", + " return;\r", + "}\r", + "\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "if (gamepad !== null) { //Gamepad exist\r", + " //Get last btn id\r", + " const lastButtonUsedID = gdjs._extensionController.players[playerId].lastButtonUsed;\r", + "\r", + " //Return last button as string \r", + " eventsFunctionContext.returnValue = gdjs._extensionController.getInputString(controllerType, lastButtonUsedID);\r", + "\r", + "} else { //Gamepad dosen't exist\r", + " console.error('Your controller is not supported or the gamepad wasn\\'t detected in string expression: \"Last pressed button (LastButtonString)\"');\r", + " eventsFunctionContext.returnValue = \"Gamepad not connected\";\r", + "}" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Controller type", + "name": "controller_type", + "supplementaryInformation": "[\"Xbox\",\"PS4\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Return the number of gamepads.", + "fullName": "Gamepad count", + "functionType": "Expression", + "name": "GamepadCount", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get the last activated controller\r", + "const controllerId = gdjs._extensionController.lastActiveController;\r", + "\r", + "// Check if controller is active\r", + "const gamepad = gamepads[controllerId];\r", + "if (gamepad == null) {\r", + " eventsFunctionContext.returnValue = 0;\r", + "} else {\r", + " // Return active controller id\r", + " eventsFunctionContext.returnValue = controllerId + 1;\r", + "}\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [], + "objectGroups": [] + }, + { + "description": "Check if a button is pressed on a gamepad. \nButtons can be:\n* Xbox: \"A\", \"B\", \"X\", \"Y\", \"LB\", \"RB\", \"LT\", \"RT\", \"BACK\", \"START\",\n* PS4: \"CROSS\", \"SQUARE\", \"CIRCLE\", \"TRIANGLE\", \"L1\", \"L2\", \"R1\", \"R2\", \"SHARE\", \"OPTIONS\", \"PS_BUTTON\", \"CLICK_TOUCHPAD\",\n* Other: \"UP\", \"DOWN\", \"LEFT\", \"RIGHT\", \"CLICK_STICK_LEFT\", \"CLICK_STICK_RIGHT\".", + "fullName": "Gamepad button pressed", + "functionType": "Condition", + "name": "C_Button_pressed", + "sentence": "Button _PARAM2_ of gamepad _PARAM1_ is pressed", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const button = eventsFunctionContext.getArgument(\"button\").toUpperCase();\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in condition: \"Gamepad button pressed\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "if (button === \"\") {\r", + " console.error('Parameter button is not valid in condition: \"Gamepad button pressed\"');\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "let buttonId;\r", + "\r", + "switch (button) {\r", + " case 'A':\r", + " case 'CROSS':\r", + " buttonId = 0;\r", + " break;\r", + " case 'B':\r", + " case 'CIRCLE':\r", + " buttonId = 1;\r", + " break;\r", + " case 'X':\r", + " case 'SQUARE':\r", + " buttonId = 2;\r", + " break;\r", + " case 'Y':\r", + " case 'TRIANGLE':\r", + " buttonId = 3;\r", + " break;\r", + " case 'LB':\r", + " case 'L1':\r", + " buttonId = 4;\r", + " break;\r", + " case 'RB':\r", + " case 'R1':\r", + " buttonId = 5;\r", + " break;\r", + " case 'LT':\r", + " case 'L2':\r", + " buttonId = 6;\r", + " break;\r", + " case 'RT':\r", + " case 'R2':\r", + " buttonId = 7;\r", + " break;\r", + "\r", + " case 'UP':\r", + " buttonId = 12;\r", + " break;\r", + " case 'DOWN':\r", + " buttonId = 13;\r", + " break;\r", + " case 'LEFT':\r", + " buttonId = 14;\r", + " break;\r", + " case 'RIGHT':\r", + " buttonId = 15;\r", + " break;\r", + "\r", + " case 'BACK':\r", + " case 'SHARE':\r", + " buttonId = 8;\r", + " break;\r", + " case 'START':\r", + " case 'OPTIONS':\r", + " buttonId = 9;\r", + " break;\r", + "\r", + " case 'CLICK_STICK_LEFT':\r", + " buttonId = 10;\r", + " break;\r", + " case 'CLICK_STICK_RIGHT':\r", + " buttonId = 11;\r", + " break;\r", + "\r", + " //PS4\r", + " case 'PS_BUTTON':\r", + " buttonId = 16;\r", + " break;\r", + " case 'CLICK_TOUCHPAD':\r", + " buttonId = 17;\r", + " break;\r", + "\r", + " default:\r", + " console.error('The button: ' + button + ' in condition: \"Gamepad button pressed\" is not valid.');\r", + " eventsFunctionContext.returnValue = false;\r", + " break;\r", + "}\r", + "\r", + "\r", + "\r", + "if (buttonId === undefined) {\r", + " console.error('There is no buttons valid in condition: \"Gamepad button pressed\"');\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "if (gamepad.buttons == null || gamepad.buttons[buttonId] == null) {\r", + " console.error('Buttons on the gamepad are not accessible in condition: \"Gamepad button pressed\"');\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "//When a button is pressed, save the button in lastButtonUsed for each players\r", + "if (gamepad.buttons[buttonId].pressed) gdjs._extensionController.players[playerId].lastButtonUsed = buttonId;\r", + "eventsFunctionContext.returnValue = gamepad.buttons[buttonId].pressed;\r", + "\r", + "\r", + "\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Name of the button", + "name": "button", + "supplementaryInformation": "[\"A\",\"Cross\",\"B\",\"Circle\",\"X\",\"Square\",\"Y\",\"Triangle\",\"LB\",\"L1\",\"RB\",\"R1\",\"LT\",\"L2\",\"RT\",\"R2\",\"Up\",\"Down\",\"Left\",\"Right\",\"Back\",\"Share\",\"Start\",\"Options\",\"Click_Stick_Left\",\"Click_Stick_Right\",\"PS_Button\",\"Click_Touchpad\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Return the value of the deadzone applied to a gamepad sticks, between 0 and 1.", + "fullName": "Gamepad deadzone for sticks", + "functionType": "Expression", + "name": "Deadzone", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "//Get function parameter\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in expression: \"Gamepad deadzone for sticks\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "///Return the deadzone value for a given player\r", + "eventsFunctionContext.returnValue = gdjs._extensionController.players[playerId].deadzone;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Set the deadzone for sticks of the gamepad. The deadzone is an area for which movement on sticks won't be taken into account (instead, the stick will be considered as not moved). Deadzone is between 0 and 1, and is by default 0.2.", + "fullName": "Set gamepad deadzone for sticks", + "functionType": "Action", + "name": "A_Set_deadzone", + "sentence": "Set deadzone for sticks on gamepad: _PARAM1_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "//Get function parameter\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const newDeadzone = eventsFunctionContext.getArgument(\"deadzone\");\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in action: \"Set gamepad deadzone for sticks\", is not valid, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "\r", + "// clamp the newDeadzone in range [0, 1].\r", + "// https://github.com/4ian/GDevelop-extensions/pull/33#issuecomment-618224857\r", + "gdjs._extensionController.players[playerId].deadzone = gdjs.evtTools.common.clamp(newDeadzone, 0, 1);\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Deadzone for sticks, 0.2 by default (0 to 1)", + "name": "deadzone", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Check if a stick of a gamepad is pushed in a given direction.", + "fullName": "Gamepad stick pushed (axis)", + "functionType": "Condition", + "name": "C_Axis_pushed", + "sentence": "_PARAM2_ stick of gamepad _PARAM1_ is pushed in direction _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "const stick = eventsFunctionContext.getArgument(\"stick\").toUpperCase();\r", + "const direction = eventsFunctionContext.getArgument(\"direction\").toUpperCase();\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + " console.error('Parameter gamepad identifier in condition: \"Gamepad stick pushed (axis)\", is not valid number, must be between 0 and 4.');\r", + " return;\r", + "}\r", + "if (stick != \"LEFT\" && stick != \"RIGHT\") {\r", + " console.error('Parameter stick in condition: \"Gamepad stick pushed (axis)\", is not valid, must be LEFT or RIGHT');\r", + " return;\r", + "}\r", + "if (direction != \"UP\" && direction != \"DOWN\" && direction != \"LEFT\" && direction != \"RIGHT\" && direction != \"ANY\") {\r", + " console.error('Parameter deadzone in condition: \"Gamepad stick pushed (axis)\", is not valid, must be UP, DOWN, LEFT or RIGHT');\r", + " return;\r", + "}\r", + "\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) {\r", + " eventsFunctionContext.returnValue = false;\r", + " return;\r", + "}\r", + "\r", + "\r", + "//Define in onFirstSceneLoaded function\r", + "const getNormalizedAxisValue = gdjs._extensionController.getNormalizedAxisValue;\r", + "\r", + "switch (stick) {\r", + " case 'LEFT':\r", + " switch (direction) {\r", + " case 'LEFT':\r", + " if (getNormalizedAxisValue(gamepad.axes[0], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " if (getNormalizedAxisValue(gamepad.axes[0], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'UP':\r", + " if (getNormalizedAxisValue(gamepad.axes[1], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'DOWN':\r", + " if (getNormalizedAxisValue(gamepad.axes[1], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'ANY':\r", + " if ( getNormalizedAxisValue(gamepad.axes[0], playerId) < 0\r", + " || getNormalizedAxisValue(gamepad.axes[0], playerId) > 0\r", + " || getNormalizedAxisValue(gamepad.axes[1], playerId) < 0 \r", + " || getNormalizedAxisValue(gamepad.axes[1], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " default:\r", + " console.error('The value Direction on stick Left on the condition: \"Gamepad stick pushed (axis)\" is not valid.');\r", + " eventsFunctionContext.returnValue = false;\r", + " break;\r", + " }\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " switch (direction) {\r", + " case 'LEFT':\r", + " if (getNormalizedAxisValue(gamepad.axes[2], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'RIGHT':\r", + " if (getNormalizedAxisValue(gamepad.axes[2], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'UP':\r", + " if (getNormalizedAxisValue(gamepad.axes[3], playerId) < 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'DOWN':\r", + " if (getNormalizedAxisValue(gamepad.axes[3], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " case 'ANY':\r", + " if ( getNormalizedAxisValue(gamepad.axes[2], playerId) < 0\r", + " || getNormalizedAxisValue(gamepad.axes[2], playerId) > 0\r", + " || getNormalizedAxisValue(gamepad.axes[3], playerId) < 0 \r", + " || getNormalizedAxisValue(gamepad.axes[3], playerId) > 0) {\r", + " eventsFunctionContext.returnValue = true;\r", + " return;\r", + " }\r", + " break;\r", + "\r", + " default:\r", + " console.error('The value Direction on stick Right on the condition: \"Gamepad stick pushed (axis)\" is not valid.');\r", + " eventsFunctionContext.returnValue = false;\r", + " break;\r", + " }\r", + " break;\r", + "\r", + " default:\r", + " console.error('The value Stick on the condition: \"Gamepad stick pushed (axis)\" is not valid.');\r", + " eventsFunctionContext.returnValue = false;\r", + " break;\r", + "}\r", + "\r", + "eventsFunctionContext.returnValue = false;\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Stick: \"Left\" or \"Right\"", + "name": "stick", + "supplementaryInformation": "[\"Left\",\"Right\"]", + "type": "stringWithSelector" + }, + { + "description": "Direction", + "name": "direction", + "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\",\"Any\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Return the number of connected gamepads.", + "fullName": "Connected gamepads number", + "functionType": "Expression", + "name": "ConnectedGamepadsCount", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "// Gamepads can be disconnected and become null, so we have to filter them.\r", + "eventsFunctionContext.returnValue = Object.keys(gamepads).filter(key => !!gamepads[key]).length;\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [], + "objectGroups": [] + }, + { + "description": "Return a string containing informations about the specified gamepad.", + "fullName": "Gamepad type", + "functionType": "StringExpression", + "name": "GamepadType", + "sentence": "Player _PARAM1_ use _PARAM2_ controller", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", + "", + "//Get function parameter", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;", + "", + "if (playerId < 0 || playerId > 4) {", + " console.error('Parameter gamepad identifier in string expression: \"Gamepad type\", is not valid number, must be between 0 and 4');", + " return;", + "}", + "", + "const gamepad = gamepads[playerId];", + "", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.", + "if (gamepad == null) return;", + "", + "eventsFunctionContext.returnValue = (gamepad && gamepad.id) ? gamepad.id : \"No information for player \" + (playerId + 1)", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the specified gamepad has the specified information in its description. Useful to know if the gamepad is a Xbox or PS4 controller.", + "fullName": "Gamepad type", + "functionType": "Condition", + "name": "C_Controller_type", + "sentence": "Gamepad _PARAM1_ is a _PARAM2_ controller", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", + "", + "//Get function parameters", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;", + "const controllerType = eventsFunctionContext.getArgument(\"controller_type\").toUpperCase();", + "", + "if (playerId < 0 || playerId > 4) {", + " console.error('Parameter gamepad identifier in condition: \"Gamepad type\", is not valid number, must be between 0 and 4.');", + " return;", + "}", + "if (controllerType === \"\") {", + " console.error('Parameter type in condition: \"Gamepad type\", is not a string.');", + " return;", + "}", + "", + "const gamepad = gamepads[playerId];", + "", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.", + "if (gamepad == null) return;", + "", + "", + "if (controllerType == \"XBOX\") {", + " eventsFunctionContext.returnValue = gdjs._extensionController.isXbox(gamepad);", + "} else {", + " eventsFunctionContext.returnValue = gamepad ? gamepad.id.toUpperCase().indexOf(controllerType) !== -1 : false;", + "}" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + }, + { + "description": "Type: \"Xbox\", \"PS4\", \"Steam\" or \"PS3\" (among other)", + "name": "controller_type", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Check if a gamepad is connected.", + "fullName": "Gamepad connected", + "functionType": "Condition", + "name": "C_Controller_X_is_connected", + "sentence": "Gamepad _PARAM1_ is plugged and connected", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", + "", + "//Get function parameter", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;", + "", + "if (playerId < 0 || playerId > 4) {", + " console.error('Parameter gamepad identifier in condition: \"Gamepad connected\", is not valid number, must be between 0 and 4.');", + " return;", + "}", + "", + "// If gamepad was disconnected it will be null (so this will return false)", + "// If gamepad was never connected it will be undefined (so this will return false)", + "eventsFunctionContext.returnValue = !!gamepads[playerId];" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Generate a vibration on the specified controller. Might only work if the game is running in a recent web browser.", + "fullName": "Gamepad vibration", + "functionType": "Action", + "name": "A_Vibrate_controller", + "sentence": "Make gamepad _PARAM1_ vibrate for _PARAM2_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */", + "//Vibration work only on game in browser.", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", + "", + "//Get function parameters", + "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;", + "const duration = eventsFunctionContext.getArgument(\"Duration\") || 1;", + "", + "if (playerId < 0 || playerId > 4) {", + " console.error('Parameter gamepad identifier in action: \"Gamepad connected\", is not valid number, must be between 0 and 4.');", + " return;", + "}", + "", + "const gamepad = gamepads[playerId];", + "", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.", + "if (gamepad == null) return;", + "", + "if (gamepad && gamepad.vibrationActuator) {", + " gamepad.vibrationActuator.playEffect(\"dual-rumble\", {", + " startDelay: 0,", + " duration: duration * 1000,", + " weakMagnitude: 1.0,", + " strongMagnitude: 1.0", + " });", + "}" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "Player_ID", + "type": "expression" + }, + { + "description": "Time of the vibration, in seconds (optional, default value is 1)", + "name": "Duration", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Generate an advanced vibration on the specified controller. Incompatible with Firefox.", + "fullName": "Advanced gamepad vibration", + "functionType": "Action", + "name": "A_Advanced_Vibration_Controller", + "sentence": "Make gamepad _PARAM1_ vibrate for _PARAM2_ seconds with the vibration magnitude of _PARAM3_ and _PARAM4_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */", + "//Vibration work only on game in browser.", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", + "", + "//Get function parameters", + "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;", + "const duration = eventsFunctionContext.getArgument(\"Duration\") || 1;", + "const strongRumbleMagnitude = eventsFunctionContext.getArgument(\"StrongMagnitude\");", + "const weakRumbleMagnitude = eventsFunctionContext.getArgument(\"WeakMagnitude\");", + "", + "if (playerId < 0 || playerId > 4) {", + " console.error('Parameter gamepad identifier in action: \"Advanced gamepad vibration\", is not valid number, must be between 0 and 4.');", + " return;", + "}", + "if (weakRumbleMagnitude < 0 || weakRumbleMagnitude > 1) {", + " console.error('Parameter weakRumble identifier in action: \"Advanced gamepad vibration\", is not valid number, must be between 0 and 1.');", + " return;", + "}", + "if (strongRumbleMagnitude < 0 || strongRumbleMagnitude > 1) {", + " console.error('Parameter strongRumble identifier in action: \"Advanced gamepad vibration\", is not valid number, must be between 0 and 1.');", + " return;", + "}", + "", + "const gamepad = gamepads[playerId];", + "", + "//we need keep this condition because when use have not yet plug the controller we can't get the controller in the gamepad variable.", + "if (gamepad == null) return;", + "", + "if (gamepad && gamepad.vibrationActuator) {", + " gamepad.vibrationActuator.playEffect(\"dual-rumble\", {", + " startDelay: 0,", + " duration: duration * 1000,", + " weakMagnitude: weakRumbleMagnitude,", + " strongMagnitude: strongRumbleMagnitude", + " });", + "}", + "", + "gdjs._extensionController.players[playerId].rumble.duration = duration;", + "gdjs._extensionController.players[playerId].rumble.elapsedTime = 0;", + "gdjs._extensionController.players[playerId].rumble.weakMagnitude = weakRumbleMagnitude;", + "gdjs._extensionController.players[playerId].rumble.strongMagnitude = strongRumbleMagnitude;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "Player_ID", + "type": "expression" + }, + { + "description": "Time of the vibration, in seconds (optional, default value is 1)", + "name": "Duration", + "type": "expression" + }, + { + "description": "Strong rumble magnitude (from 0 to 1)", + "name": "StrongMagnitude", + "type": "expression" + }, + { + "description": "Weak rumble magnitude (from 0 to 1)", + "name": "WeakMagnitude", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change a vibration on the specified controller. Incompatible with Firefox.", + "fullName": "Change gamepad active vibration", + "functionType": "Action", + "name": "A_Change_Vibration_Magnitude", + "sentence": "Change the vibration magnitude of _PARAM2_ & _PARAM3_ on gamepad _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */", + "//Vibration work only on game in browser.", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", + "", + "//Get function parameters", + "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;", + "const elapsedTime = gdjs._extensionController.players[playerId].rumble.elapsedTime || 0;", + "const originalDuration = gdjs._extensionController.players[playerId].rumble.duration || 1;", + "const strongRumbleMagnitude = eventsFunctionContext.getArgument(\"StrongMagnitude\");", + "const weakRumbleMagnitude = eventsFunctionContext.getArgument(\"WeakMagnitude\");", + "", + "", + "if (playerId < 0 || playerId > 4) {", + " console.error('Parameter gamepad identifier in action: \"Change gamepad active vibration\", is not valid number, must be between 0 and 4.');", + " return;", + "}", + "if (weakRumbleMagnitude < 0 || weakRumbleMagnitude > 1) {", + " console.error('Parameter weakRumble identifier in action: \"Change gamepad active vibration\", is not valid number, must be between 0 and 1.');", + " return;", + "}", + "if (strongRumbleMagnitude < 0 || strongRumbleMagnitude > 1) {", + " console.error('Parameter strongRumble identifier in action: \"Change gamepad active vibration\", is not valid number, must be between 0 and 1.');", + " return;", + "}", + "", + "const gamepad = gamepads[playerId];", + "", + "//we need keep this condition because when use have not yet plug the controller we can't get the controller in the gamepad variable.", + "if (gamepad == null) return;", + "", + "if (originalDuration - elapsedTime <= 0) return;", + "", + "if (gamepad && gamepad.vibrationActuator) {", + " gamepad.vibrationActuator.playEffect(\"dual-rumble\", {", + " startDelay: 0,", + " duration: 1000 * (originalDuration - elapsedTime),", + " weakMagnitude: weakRumbleMagnitude,", + " strongMagnitude: strongRumbleMagnitude", + " });", + "}", + "", + "gdjs._extensionController.players[playerId].rumble.weakMagnitude = weakRumbleMagnitude;", + "gdjs._extensionController.players[playerId].rumble.strongMagnitude = strongRumbleMagnitude;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "Player_ID", + "type": "expression" + }, + { + "description": "Strong rumble magnitude (from 0 to 1)", + "name": "StrongMagnitude", + "type": "expression" + }, + { + "description": "Weak rumble magnitude (from 0 to 1)", + "name": "WeakMagnitude", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onFirstSceneLoaded", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "//Define an new private object javascript for the gamepad extension\r", + "gdjs._extensionController = {\r", + " players: {\r", + " 0: { mapping: 'DEFAULT', lastButtonUsed: -1, deadzone: 0.2, previousFrameStateButtons: {}, rumble: {} },\r", + " 1: { mapping: 'DEFAULT', lastButtonUsed: -1, deadzone: 0.2, previousFrameStateButtons: {}, rumble: {} },\r", + " 2: { mapping: 'DEFAULT', lastButtonUsed: -1, deadzone: 0.2, previousFrameStateButtons: {}, rumble: {} },\r", + " 3: { mapping: 'DEFAULT', lastButtonUsed: -1, deadzone: 0.2, previousFrameStateButtons: {}, rumble: {} },\r", + " },\r", + " lastActiveController: -1, // Last active controller\r", + " controllerButtonNames: { //Map associating controller button ids to button names\r", + " \"XBOX\": {\r", + " 0: \"A\",\r", + " 1: \"B\",\r", + " 2: \"X\",\r", + " 3: \"Y\",\r", + " 4: \"LB\",\r", + " 5: \"RB\",\r", + " 6: \"LT\",\r", + " 7: \"RT\",\r", + " 8: \"BACK\",\r", + " 9: \"START\",\r", + " 10: \"CLICK_STICK_LEFT\",\r", + " 11: \"CLICK_STICK_RIGHT\",\r", + " 12: \"UP\",\r", + " 13: \"DOWN\",\r", + " 14: \"LEFT\",\r", + " 15: \"RIGHT\",\r", + " 16: \"NONE\",\r", + " 17: \"NONE\"\r", + " },\r", + " \"PS4\": {\r", + " 0: \"CROSS\",\r", + " 1: \"CIRCLE\",\r", + " 2: \"SQUARE\",\r", + " 3: \"TRIANGLE\",\r", + " 4: \"L1\",\r", + " 5: \"R1\",\r", + " 6: \"L2\",\r", + " 7: \"R2\",\r", + " 8: \"SHARE\",\r", + " 9: \"OPTIONS\",\r", + " 10: \"CLICK_STICK_LEFT\",\r", + " 11: \"CLICK_STICK_RIGHT\",\r", + " 12: \"UP\",\r", + " 13: \"DOWN\",\r", + " 14: \"LEFT\",\r", + " 15: \"RIGHT\",\r", + " 16: \"PS_BUTTON\",\r", + " 17: \"CLICK_TOUCHPAD\"\r", + " }\r", + " }\r", + "};\r", + "\r", + "gdjs._extensionController.getInputString = function (type, buttonId) {\r", + " const controllerButtonNames = gdjs._extensionController.controllerButtonNames;\r", + " if (controllerButtonNames[type] !== undefined) {\r", + " return controllerButtonNames[type][buttonId];\r", + " }\r", + "\r", + " return \"UNKNOWN_BUTTON\";\r", + "}\r", + "\r", + "gdjs._extensionController.axisToAngle = function (deltaX, deltaY) {\r", + " const rad = Math.atan2(deltaY, deltaX);\r", + " const deg = rad * (180 / Math.PI);\r", + " return deg;\r", + "}\r", + "\r", + "gdjs._extensionController.isXbox = function (gamepad) {\r", + " return (gamepad ? (\r", + " gamepad.id.toUpperCase().indexOf(\"XBOX\") !== -1\r", + " // \"XINPUT\" cannot be used to check if it is a xbox controller is just a generic\r", + " // name reported in Firefox corresponding to the driver being used by the controller\r", + " // https://gamefaqs.gamespot.com/boards/916373-pc/73341312?page=1\r", + " ) : false);\r", + "}\r", + "\r", + "//Returns the new value taking into account the dead zone for the player_ID given\r", + "gdjs._extensionController.getNormalizedAxisValue = function (v, player_ID) {\r", + " // gdjs._extensionController = gdjs._extensionController || { deadzone: 0.2 };\r", + "\r", + " // Anything smaller than this is assumed to be 0,0\r", + " const DEADZONE = gdjs._extensionController.players[player_ID].deadzone;\r", + "\r", + " if (Math.abs(v) < DEADZONE) {\r", + " // In the dead zone, set to 0\r", + " v = 0;\r", + "\r", + " if (v == null) {\r", + " return 0;\r", + " } else {\r", + " return v;\r", + " }\r", + "\r", + " } else {\r", + " // We're outside the dead zone, but we'd like to smooth\r", + " // this value out so it still runs nicely between 0..1.\r", + " // That is, we don't want it to jump suddenly from 0 to\r", + " // DEADZONE.\r", + "\r", + " // Remap v from\r", + " // DEADZONE..1 to 0..(1-DEADZONE)\r", + " // or from\r", + " // -1..-DEADZONE to -(1-DEADZONE)..0\r", + "\r", + " v = v - Math.sign(v) * DEADZONE;\r", + "\r", + " // Remap v from\r", + " // 0..(1-DEADZONE) to 0..1\r", + " // or from\r", + " // -(1-DEADZONE)..0 to -1..0\r", + "\r", + " return v / (1 - DEADZONE);\r", + " }\r", + "};" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onScenePostEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "//Each time a player press a button i save the last button pressed for the next frame", + "/** @type {Gamepad[]} */", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);", + "", + "//Get function parameter", + "let countPlayers = Object.keys(gdjs._extensionController.players).length;", + "", + "//Repeat for each players", + "for (let i = 0; i < countPlayers; i++) {", + " let gamepad = gamepads[i]; // Get the gamepad of the player", + "", + " //We have to keep this condition because if the user hasn't plugged in his controller yet, we can't get the controller in the gamepad variable.", + " if (gamepad == null) {", + " continue;", + " }", + "", + " for (let b = 0; b < Object.keys(gamepad.buttons).length; b++) { //For each buttons", + " if (gamepad.buttons[b].pressed) { //One of them is pressed", + " gdjs._extensionController.players[i].lastButtonUsed = b; //Save the button pressed", + "", + " //Save the state of the button for the next frame.", + " gdjs._extensionController.players[i].previousFrameStateButtons[b] = { pressed: true };", + "", + " // Update Last Active Controller", + " gdjs._extensionController.lastActiveController = i;", + " } else {", + " gdjs._extensionController.players[i].previousFrameStateButtons[b] = { pressed: false };", + " }", + " }", + "", + "", + " gdjs._extensionController.players[i].rumble.elapsedTime += runtimeScene.getElapsedTime(runtimeScene) / 1000;", + " if (", + " gdjs._extensionController.players[i].rumble.duration - gdjs._extensionController.players[i].rumble.elapsedTime <= 0 &&", + " (gdjs._extensionController.players[i].rumble.weakMagnitude || gdjs._extensionController.players[i].rumble.strongMagnitude)", + " ) {", + " gdjs._extensionController.players[i].rumble.weakMagnitude = 0;", + " gdjs._extensionController.players[i].rumble.strongMagnitude = 0;", + " }", + "", + "", + "}", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [], + "objectGroups": [] + }, + { + "description": "Check if any button is released on a gamepad.", + "fullName": "Any gamepad button released", + "functionType": "Condition", + "name": "C_any_button_released", + "sentence": "Any button of gamepad _PARAM1_ is released", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "/** @type {Gamepad[]} */\r", + "const gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r", + "\r", + "//Get function parameters\r", + "const playerId = eventsFunctionContext.getArgument(\"player_ID\") - 1;\r", + "\r", + "if (playerId < 0 || playerId > 4) {\r", + "\tconsole.error('Parameter gamepad identifier in condition: \"Any gamepad button released\", is not valid number, must be between 0 and 4.');\r", + "\treturn;\r", + "}\r", + "\r", + "const gamepad = gamepads[playerId];\r", + "\r", + "//we need keep this condition because when use have not yet plug her controller we can't get the controller in the gamepad variable.\r", + "if (gamepad == null) return;\r", + "\r", + "for (let buttonId = 0; buttonId < gamepad.buttons.length; buttonId++) { //For each buttons on current frame.\r", + "\r", + "\tif (buttonId === undefined) {\r", + "\t\teventsFunctionContext.returnValue = false;\r", + "\t\treturn;\r", + "\t}\r", + "\r", + "\t//Get previous value or define value by default for the current button\r", + "\tgdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId] = gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId] || { pressed: false };\r", + "\r", + "\t//Get state of the button at previous frame\r", + "\tconst previousStateButtonIsPressed = gdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed;\r", + "\r", + "\t//Get the state of the button on the current frame.\r", + "\tconst currentFrameStateButtonIsPressed = gamepad.buttons[buttonId].pressed;\r", + "\r", + "\t//When previousStateButtonIsPressed is true and actual button state is not pressed\r", + "\t//Player have release the button\r", + "\tif (previousStateButtonIsPressed === true && currentFrameStateButtonIsPressed === false) {\r", + "\t\tgdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed = true;\r", + "\t\teventsFunctionContext.returnValue = true;\r", + "\t\t//break;\r", + "\t\treturn;\r", + "\t} else {\r", + "\t\t//The player didn't released the button yet, the previous frame state is still true\r", + "\t\tgdjs._extensionController.players[playerId].previousFrameStateButtons[buttonId].pressed = false;\r", + "\t\teventsFunctionContext.returnValue = false;\r", + "\t}\r", + "\r", + "\tif (currentFrameStateButtonIsPressed) gdjs._extensionController.players[playerId].lastButtonUsed = buttonId;\r", + "}\r", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "player_ID", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Return the strength of the weak vibration motor on the gamepad of a player.", + "fullName": "Weak rumble magnitude", + "functionType": "Expression", + "name": "WeakVibrationMagnitude", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;\r", + "eventsFunctionContext.returnValue = gdjs._extensionController.players[playerId].rumble.weakMagnitude;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "Player_ID", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Return the strength of the strong vibration motor on the gamepad of a player.", + "fullName": "Strong rumble magnitude", + "functionType": "Expression", + "name": "StrongVibrationMagnitude", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const playerId = eventsFunctionContext.getArgument(\"Player_ID\") - 1;\r", + "eventsFunctionContext.returnValue = gdjs._extensionController.players[playerId].rumble.strongMagnitude;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "The gamepad identifier: 1, 2, 3 or 4", + "name": "Player_ID", + "type": "expression" + } + ], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [ + { + "description": "Control a platformer character with a gamepad.", + "fullName": "Platformer gamepad mapper", + "name": "PlatformerGamepadMapper", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Controller_X_is_connected" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyUseArrows" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Up\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + }, + { + "type": { + "value": "PlatformBehavior::SimulateLadderKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Down\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyUseLeftStick" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Left\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Right\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Up\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + }, + { + "type": { + "value": "PlatformBehavior::SimulateLadderKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Down\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyUseRightStick" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Left\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Right\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Up\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + }, + { + "type": { + "value": "PlatformBehavior::SimulateLadderKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Down\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"A or Cross\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"A\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"B or Circle\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"B\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"X or Square\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"X\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Y or Triangle\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Y\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"LB or L1\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"LB\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"RB or R1\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"RB\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"LT or L2\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"LT\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyJumpButton" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"RT or R2\"" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"RT\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "PlatformerCharacter" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Gamepads::PlatformerGamepadMapper", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Platformer character behavior", + "description": "", + "group": "", + "extraInformation": [ + "PlatformBehavior::PlatformerObjectBehavior" + ], + "name": "PlatformerCharacter" + }, + { + "value": "1", + "type": "Number", + "label": "Gamepad identifier (1, 2, 3 or 4)", + "description": "", + "group": "", + "extraInformation": [], + "name": "GamepadIdentifier" + }, + { + "value": "true", + "type": "Boolean", + "label": "Use directional pad", + "description": "", + "group": "Controls", + "extraInformation": [], + "name": "UseArrows" + }, + { + "value": "true", + "type": "Boolean", + "label": "Use left stick", + "description": "", + "group": "Controls", + "extraInformation": [], + "name": "UseLeftStick" + }, + { + "value": "", + "type": "Boolean", + "label": "Use right stick", + "description": "", + "group": "Controls", + "extraInformation": [], + "name": "UseRightStick" + }, + { + "value": "A or Cross", + "type": "Choice", + "label": "Jump button", + "description": "", + "group": "Controls", + "extraInformation": [ + "A or Cross", + "B or Circle", + "X or Square", + "Y or Triangle", + "LB or L1", + "RB or R1", + "LT or L2", + "RT or R2" + ], + "name": "JumpButton" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Control a top-down character with a gamepad.", + "fullName": "Top-down gamepad mapper", + "name": "TopDownGamepadMapper", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Controller_X_is_connected" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyUseArrows" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Up\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Down\"", + "\"Left\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyUseLeftStick" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Analog\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateStick" + }, + "parameters": [ + "Object", + "TopDownMovement", + "Gamepads::StickRotationValue(Object.Behavior::PropertyGamepadIdentifier(), \"Left\")", + "Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Left\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"360°\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateStick" + }, + "parameters": [ + "Object", + "TopDownMovement", + "Gamepads::StickRotationValue(Object.Behavior::PropertyGamepadIdentifier(), \"Left\")", + "sign(Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Left\"))" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"8 Directions\"" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Left\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Right\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Up\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Left\"", + "\"Down\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::PlatformerGamepadMapper::PropertyUseRightStick" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Analog\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateStick" + }, + "parameters": [ + "Object", + "TopDownMovement", + "Gamepads::StickRotationValue(Object.Behavior::PropertyGamepadIdentifier(), \"Right\")", + "Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Right\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"360°\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateStick" + }, + "parameters": [ + "Object", + "TopDownMovement", + "sign(Gamepads::StickForce(Object.Behavior::PropertyGamepadIdentifier(), \"Right\"))", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::TopDownGamepadMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"8 Directions\"" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Left\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Right\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Up\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyGamepadIdentifier()", + "\"Right\"", + "\"Down\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Gamepads::TopDownGamepadMapper", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Top-down movement behavior", + "description": "", + "group": "", + "extraInformation": [ + "TopDownMovementBehavior::TopDownMovementBehavior" + ], + "name": "TopDownMovement" + }, + { + "value": "1", + "type": "Number", + "label": "Gamepad identifier (1, 2, 3 or 4)", + "description": "", + "group": "", + "extraInformation": [], + "name": "GamepadIdentifier" + }, + { + "value": "true", + "type": "Boolean", + "label": "Use directional pad", + "description": "", + "group": "Controls", + "extraInformation": [], + "name": "UseArrows" + }, + { + "value": "true", + "type": "Boolean", + "label": "Use left stick", + "description": "", + "group": "Controls", + "extraInformation": [], + "name": "UseLeftStick" + }, + { + "value": "", + "type": "Boolean", + "label": "Use right stick", + "description": "", + "group": "Controls", + "extraInformation": [], + "name": "UseRightStick" + }, + { + "value": "Analog", + "type": "Choice", + "label": "Stick mode", + "description": "", + "group": "Controls", + "extraInformation": [ + "Analog", + "360°", + "8 Directions" + ], + "name": "StickMode" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] +} \ No newline at end of file diff --git a/src/externalEvents/player.json b/src/externalEvents/player.json index 7b828e28..c3141048 100644 --- a/src/externalEvents/player.json +++ b/src/externalEvents/player.json @@ -1719,11 +1719,31 @@ "conditions": [ { "type": { - "value": "KeyPressed" + "value": "BuiltinCommonInstructions::Or" }, - "parameters": [ - "", - "a" + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "KeyPressed" + }, + "parameters": [ + "", + "a" + ] + }, + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "1", + "\"Left\"", + "\"Left\"", + "" + ] + } ] } ], @@ -1747,11 +1767,31 @@ "conditions": [ { "type": { - "value": "KeyPressed" + "value": "BuiltinCommonInstructions::Or" }, - "parameters": [ - "", - "d" + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "KeyPressed" + }, + "parameters": [ + "", + "d" + ] + }, + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "1", + "\"Left\"", + "\"Right\"", + "" + ] + } ] } ], @@ -1775,11 +1815,31 @@ "conditions": [ { "type": { - "value": "KeyPressed" + "value": "BuiltinCommonInstructions::Or" }, - "parameters": [ - "", - "w" + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "KeyPressed" + }, + "parameters": [ + "", + "w" + ] + }, + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "1", + "\"Left\"", + "\"Up\"", + "" + ] + } ] } ], @@ -1803,11 +1863,31 @@ "conditions": [ { "type": { - "value": "KeyPressed" + "value": "BuiltinCommonInstructions::Or" }, - "parameters": [ - "", - "s" + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "KeyPressed" + }, + "parameters": [ + "", + "s" + ] + }, + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "1", + "\"Left\"", + "\"Down\"", + "" + ] + } ] } ], diff --git a/src/game.json b/src/game.json index 2b899a12..0b3b76b1 100644 --- a/src/game.json +++ b/src/game.json @@ -2615,6 +2615,10 @@ } ], "eventsFunctionsExtensions": [ + { + "__REFERENCE_TO_SPLIT_OBJECT": true, + "referenceTo": "/eventsFunctionsExtensions/gamepads" + }, { "__REFERENCE_TO_SPLIT_OBJECT": true, "referenceTo": "/eventsFunctionsExtensions/spritemasking" diff --git a/src/layouts/city.json b/src/layouts/city.json index e5b9e9fa..9cfdd31e 100644 --- a/src/layouts/city.json +++ b/src/layouts/city.json @@ -62009,7 +62009,6 @@ "colorG": 176, "colorR": 74, "creationTime": 0, - "folded": true, "name": "Links", "source": "", "type": "BuiltinCommonInstructions::Group", @@ -62030,7 +62029,6 @@ "colorG": 176, "colorR": 74, "creationTime": 0, - "folded": true, "name": "ZOrders", "source": "", "type": "BuiltinCommonInstructions::Group", From 801c2f60f50b47ebdb6c83968d3a8c13c3ffa930 Mon Sep 17 00:00:00 2001 From: Gabriel Momoh <53819287+TheGemDev@users.noreply.github.com> Date: Mon, 22 Apr 2024 23:24:18 +0100 Subject: [PATCH 4/5] added weapon wheel --- src/assets/weapons/icons/ammo_machinegun.png | Bin 0 -> 1271 bytes .../weapons/icons/ammo_machinegunLauncher.png | Bin 0 -> 1391 bytes src/assets/weapons/icons/ammo_pistol.png | Bin 0 -> 1085 bytes src/assets/weapons/icons/ammo_rocket.png | Bin 0 -> 4153 bytes .../weapons/icons/ammo_rocketModern.png | Bin 0 -> 2264 bytes src/assets/weapons/icons/ammo_shotgun.png | Bin 0 -> 1061 bytes src/assets/weapons/icons/ammo_sniper.png | Bin 0 -> 1874 bytes src/assets/weapons/icons/ammo_uzi.png | Bin 0 -> 937 bytes src/assets/weapons/icons/bar.png | Bin 0 -> 3668 bytes .../weapons/icons/flamethrower_long.png | Bin 0 -> 7152 bytes .../weapons/icons/flamethrower_short.png | Bin 0 -> 6741 bytes src/assets/weapons/icons/grenade.png | Bin 0 -> 2902 bytes src/assets/weapons/icons/grenadeFlash.png | Bin 0 -> 2607 bytes src/assets/weapons/icons/grenadeSmoke.png | Bin 0 -> 2973 bytes src/assets/weapons/icons/grenadeVintage.png | Bin 0 -> 4251 bytes src/assets/weapons/icons/knifeRound_sharp.png | Bin 0 -> 2773 bytes .../weapons/icons/knifeRound_smooth.png | Bin 0 -> 3202 bytes src/assets/weapons/icons/knife_sharp.png | Bin 0 -> 3168 bytes src/assets/weapons/icons/knife_smooth.png | Bin 0 -> 2923 bytes src/assets/weapons/icons/machinegun.png | Bin 0 -> 6743 bytes .../weapons/icons/machinegunLauncher.png | Bin 0 -> 7996 bytes src/assets/weapons/icons/pistol.png | Bin 0 -> 3624 bytes src/assets/weapons/icons/pistolSilencer.png | Bin 0 -> 4250 bytes src/assets/weapons/icons/rocketlauncher.png | Bin 0 -> 13833 bytes .../weapons/icons/rocketlauncherModern.png | Bin 0 -> 9528 bytes src/assets/weapons/icons/shotgun.png | Bin 0 -> 5444 bytes src/assets/weapons/icons/shotgunShort.png | Bin 0 -> 4944 bytes src/assets/weapons/icons/sniper.png | Bin 0 -> 11209 bytes src/assets/weapons/icons/uzi.png | Bin 0 -> 4281 bytes src/assets/weapons/icons/uziLong.png | Bin 0 -> 5448 bytes src/assets/weapons/icons/uziLongSilencer.png | Bin 0 -> 6327 bytes src/assets/weapons/icons/uziSilencer.png | Bin 0 -> 4844 bytes .../extendedvariables.json | 1225 ++++++++++ src/eventsFunctionsExtensions/references.json | 152 ++ src/externalEvents/game.json | 8 +- src/externalEvents/weaponselect.json | 165 ++ src/externalEvents/weaponwheel.json | 577 +++++ src/externalLayouts/weaponselect.json | 36 + src/externalLayouts/weaponwheel.json | 53 + src/game.json | 236 +- src/layouts/city.json | 2117 ++++++++++++++--- 41 files changed, 4243 insertions(+), 326 deletions(-) create mode 100644 src/assets/weapons/icons/ammo_machinegun.png create mode 100644 src/assets/weapons/icons/ammo_machinegunLauncher.png create mode 100644 src/assets/weapons/icons/ammo_pistol.png create mode 100644 src/assets/weapons/icons/ammo_rocket.png create mode 100644 src/assets/weapons/icons/ammo_rocketModern.png create mode 100644 src/assets/weapons/icons/ammo_shotgun.png create mode 100644 src/assets/weapons/icons/ammo_sniper.png create mode 100644 src/assets/weapons/icons/ammo_uzi.png create mode 100644 src/assets/weapons/icons/bar.png create mode 100644 src/assets/weapons/icons/flamethrower_long.png create mode 100644 src/assets/weapons/icons/flamethrower_short.png create mode 100644 src/assets/weapons/icons/grenade.png create mode 100644 src/assets/weapons/icons/grenadeFlash.png create mode 100644 src/assets/weapons/icons/grenadeSmoke.png create mode 100644 src/assets/weapons/icons/grenadeVintage.png create mode 100644 src/assets/weapons/icons/knifeRound_sharp.png create mode 100644 src/assets/weapons/icons/knifeRound_smooth.png create mode 100644 src/assets/weapons/icons/knife_sharp.png create mode 100644 src/assets/weapons/icons/knife_smooth.png create mode 100644 src/assets/weapons/icons/machinegun.png create mode 100644 src/assets/weapons/icons/machinegunLauncher.png create mode 100644 src/assets/weapons/icons/pistol.png create mode 100644 src/assets/weapons/icons/pistolSilencer.png create mode 100644 src/assets/weapons/icons/rocketlauncher.png create mode 100644 src/assets/weapons/icons/rocketlauncherModern.png create mode 100644 src/assets/weapons/icons/shotgun.png create mode 100644 src/assets/weapons/icons/shotgunShort.png create mode 100644 src/assets/weapons/icons/sniper.png create mode 100644 src/assets/weapons/icons/uzi.png create mode 100644 src/assets/weapons/icons/uziLong.png create mode 100644 src/assets/weapons/icons/uziLongSilencer.png create mode 100644 src/assets/weapons/icons/uziSilencer.png create mode 100644 src/eventsFunctionsExtensions/extendedvariables.json create mode 100644 src/eventsFunctionsExtensions/references.json create mode 100644 src/externalEvents/weaponselect.json create mode 100644 src/externalEvents/weaponwheel.json create mode 100644 src/externalLayouts/weaponselect.json create mode 100644 src/externalLayouts/weaponwheel.json diff --git a/src/assets/weapons/icons/ammo_machinegun.png b/src/assets/weapons/icons/ammo_machinegun.png new file mode 100644 index 0000000000000000000000000000000000000000..3b0969e7ddeb41beb2b6db15f55284b6af581a33 GIT binary patch literal 1271 zcmV;^z-A@tKXzk2{t=B^V0(XYM=9b@5;pS8BOA1i>qK2v{WZf+(QrqUAe2$h$D5{GdAgHER^ zfX-=J6&CXn^ZUJQI}zn7xL`@I*hy1Fzro0<8yJg}P^0X1B)Scn;ohRFix za#vT^;)027xSct;2Q|Rybb`A%HDxr>YY$66adGj}{r!E@=9NX}*>v%j5(EK6&jM63 zMJilV*YJh}scP%qp1pIMR2(c43Gn!cdxBat5@b%t8vFKAM}-7cSJxgk7=HVEb=AUE z@FF4v_wXBPsNiyEw{Rb-tvx(FZM^4l**OFy5fqiY9yj~`$`z#qRen|T=A>cbFE>G` zAH9*3$cR`h%pr34lms=N)5z!N=a`57Kq)X_XD7}6+{tk3u?UjV)6;Waf^<4v2b`nT za+EtXlmj9}i{t_UFZF8j4!!=6?9d_M5ellwYFTER8_paegR-*OWWK>^?joLBEX&!` z_4TjI6qS`ld#mJ1)zNSu0UY;-8(u&;6>xaFiIjs{?q23Oah)Tn-6c0yTwkf0d$6bf!} z_t2+IIw3(Y2hY(GHOf1oR35x}^VcvE?%oq4^apBEgQG!avzl2`Q}ZznQG`OMmuD}Z z2<~7WN+cruIp(dQNpnb|zJuCvX$w`B)LUraf8jZ>#lC{pDO= hWiC)oM=~@;Zewp`Wpbznf9?PP002ovPDHLkV1ix%VNn18 literal 0 HcmV?d00001 diff --git a/src/assets/weapons/icons/ammo_machinegunLauncher.png b/src/assets/weapons/icons/ammo_machinegunLauncher.png new file mode 100644 index 0000000000000000000000000000000000000000..37cf065724995c7f95a88fdce2f9ad0880a3e9a3 GIT binary patch literal 1391 zcmV-#1(5oQP)Ec8*ZbcfZh8v2&tsSGb zs1ijeX%Yy_^8&U38{0V824jPBo~FkI#H(zB6O$>Yj3a zrTG5+yZ_uBk#y3q**yD)&9?B@qJ44LVzK;gGR=-&Qz|dk{hzD3wY6T7CVYPX3PrXy zDW6Nx&Q6wgi+L*Yy^v3n%jNX6wtiFpTu@U}(~CnxLt`Gdi#CG+ITj1c*-VlF8QLji z8Jw1J$1|f*e-H0J6ZYM;>y2jf46UxXX=8m&P9|akR4nG`V82L*2SwW3D+u6rY>Rqs z-TLU6FqKL*WM5n$|JsTi-;Pi!wauyJsxTa+%g^ORJVFx_<9|NAR?V&TqoaRE9d;W9 z{Ht;z5k*=8w!gnqh3)U{K&_lfC&=qv&a`!QzFhW02LSx z3`r(qv>xz1QQr9ZgBsZNAG<%*>!+(Qq**CE)EyjC2Uv;&;hlb!`m-9?FTK6JI%$%S zCP$=gez8W`K?w$Uj$0-c4b$-Oa8C`audnZc*<_>@@3I`)To+MO$&vwky9MDSV2200 z!Vq>^n4s57_iJEx?x@Wc%Pe_4kI@!F8B&1>aFAO zMuU#53v=XNc2Q_^gJNt#GO;acm&>Lpn@x!W#gRyegZgP~?BPk+=WSQsQ>%aTPESqH zoW(?TyOkT)LmM1Zkl^3$4a0Ksa6i$#B)qYB(h0*gMPlTvGG;R!c}iurlAOm!hl+O^bmBOqj5nuYn;T+Gu7* zzaWMl$~2l^Z93hQsF!cm!*vM>7#u@CRUIvZ00s=fP!1?-XlQt;?(*f9H?)IVk7?E* zYPQNSq*-a&qcl${!*kROFdlfTfFaGnL9G)o>@gqL49a3gXqu$$;Hc9Yi1%8t94=T&_IRxH8N z>9|m4v6z+w3W2tF{0bAixIcC|S-o9sV|-qi zx6q7H+E?DV@!`?_|DpTJ$jC5Z*r5*l%*_oP@cSst^}{e%)=_XHAm$f$|Jo|KI8cAT zs=c~`1_lNkk~H~*|F76}I2JQJQiWh(t*{jiWqGV}u~;O@TQ{G{B=hN1VmBU-7Px(K z94O0s?O&uRT7$0_K51!r^NS9}+0Lt1FLWprXA}zMS)8t}?sE#I@_hMzMyc#M-__lH zPI>d@1-`$-=Ut`pr;F|F-@XOVe>)&s9`bVAivR!sEp$a#bW?9;ba!ELWdLG%E@EtN xZ)9Y7E@N_eaCC1jX>DO=WiC)oM=~@;Zewp`Wpbznf9?PP002ovPDHLkV1hK;m4*NS literal 0 HcmV?d00001 diff --git a/src/assets/weapons/icons/ammo_pistol.png b/src/assets/weapons/icons/ammo_pistol.png new file mode 100644 index 0000000000000000000000000000000000000000..906e2cc6e852c60cdffaf4e0fb053889afbed5a4 GIT binary patch literal 1085 zcmV-D1j74?P)`~|MKfFIF2ZY?1$qL7NJZPW^os45`@0<~(=LMRaL8M|IGc5*>P znkKYPz)8kVQZGrGiPv~v5~tE?sPDsWxd2X4{PF~J>7!5Io}Yj4S3Dl!;68%gZW9i>E&g3Q zs9>=&$ns|P{fif0JpzYsk6iWnmLMM6hFmtq=b}!(AGY~LvZ-r6mxk-tht3{>Mx*hU zU|lwAp&Ro{$(zeT%#S5R28JiQHtudDlbaln8k7v!)@{4slfCH z==g9@HAh_sHwQr~OtG`sY(q@22-75$a+*SOPIhb_oe%mEQEq<{B)4B z6g`qnd!?)VY<~o8tOw!SJ3m}t7p`1+%k6fy7rnp2#zqL}^%0A1^AwTwbY-#74i=<$ z(!G1r>At?f*O}&n%WvGZSyL4B$D8Xod@r-5VxG@LY02j@z4I8M^LSsvWBdXe)#=6- zy$jqe{yxP_s`LH%M+dJizbDhkJSr*()~oEBkvpGHPEJl?CHKOD$KmyQ&62cakt9hM z2(8@>hr^CwFlhI!`0ReaSr-001p?MObuGZ)S9NVRB^v zVtFoNY;SL5WO*)Qa(QrcZ!T$VVP|D7P)Z)9b1s0M%T00000NkvXXu0mjf Dw8;$$ literal 0 HcmV?d00001 diff --git a/src/assets/weapons/icons/ammo_rocket.png b/src/assets/weapons/icons/ammo_rocket.png new file mode 100644 index 0000000000000000000000000000000000000000..9344d1d45c35d730202d2353824f5e6ec7e3f8d5 GIT binary patch literal 4153 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 literal 0 HcmV?d00001 diff --git a/src/assets/weapons/icons/ammo_shotgun.png b/src/assets/weapons/icons/ammo_shotgun.png new file mode 100644 index 0000000000000000000000000000000000000000..62564532908769c08508528955d5ac48bb3a2e5c GIT binary patch literal 1061 zcmV+=1ls$FP)4|2YH&bjBiX=qT6Yt7BZ#*U7T>n$xUH=2#c zMuWlB)Y;j26QAS%_%j#`P54fOdJK+?J)fWd#oF!5OeDfGNiGpeBw`H5#RCTiv8`xy zhhft1!bO(x474QQMA@XqVqgm5ST*~1iwLJ7{#D)9GQCTAJWPAedaCD@LH&P*or zV+}YoGWPP%rU(Cklfp3wxxJDgev+`R?w)yBcuVI^OPbuE5T=0>p|4 zs8&UgWdX|k2^<}zferelKC}6$2DDggZ=DW19K`k@ol4NvE0r>-C_+^h=_2?n6!Mh^ z2CPps;D~L);C4A69*kRZU~Nsd;a zRAr?irJ7BHkMWlK`>l^^HMVYeRy82fRLoH{B25Ga{64HIs(d)m?S_-S94XQ*T+X0(vEu zCcs@Io;GBF0Fyx1s6l5|SEG{nm zroaxP@z&Jz^rwZzg_)(LrLRt>^Yg~W#*D|~ncCXg{1OQGzB3H-joi<;-L9WAv$G%Z z%k>{2g{xb@bXs8m001p?MObuGZ)S9NVRB^vVtFoNY;SL5WO*)Qa(QrcZ!T$VVP|D7 fP)Z)9b1s0M%T00000NkvXXu0mjf(r4|e literal 0 HcmV?d00001 diff --git a/src/assets/weapons/icons/ammo_sniper.png b/src/assets/weapons/icons/ammo_sniper.png new file mode 100644 index 0000000000000000000000000000000000000000..03d3afa225c58a6f083f4651036dd686f73d8603 GIT binary patch literal 1874 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 LNkvXXu0mjf=R~oe literal 0 HcmV?d00001 diff --git a/src/assets/weapons/icons/bar.png b/src/assets/weapons/icons/bar.png new file mode 100644 index 0000000000000000000000000000000000000000..7298f83be63a0e97b0c47c978a7b640302a4c970 GIT binary patch literal 3668 zcmeHK@lP6896!2c(=KlNX$8AZ*JW7~7Y#dE!Ym~<66=!LWnGE7PHmJs8$@a$gK!|E z`(?|h{fUvY>Md;+lU5}wR$?8{WCi0h&Pw+RX59@!;B!B)~vKO2D^SkxF%c=fm z3|cfrSNJhf=<}v&hVf)DAEq~%wtS~)#?%7Ff`mDZz#)7$Pf?VNHY`BvMBSYDnG#y- z&SWw(326_gnZH+f5DaO zvD?J7GJguob{_)(6SryH z93d5R;4I{j2hL>G_0-{T_zxZ=nSIX`noTC8<@_F^ z3<$#9MI=4Woy6^pcT*x~e3qu^r@6X0R2&KxFDE8Y&>6zNmCv&>UbJN%W|)UA<3eba z*xR*wU-q^u0|68*Sv8Uu!=QHsCLaAePV9Zm11ugDNr8P>SeYNQ`xRzi(MB7!ad;{< zJ0h){!3|dGaMgoFweZVCZ3Qw zp|}d#xZ(&YV8qvpF_EyS9oZUjnbwO=a8bqV7~H)q8MlN7rIy4uO0@ZIQ%jkb4q0d0 Jd~5&B{{WexjHv(s literal 0 HcmV?d00001 diff --git a/src/assets/weapons/icons/flamethrower_long.png b/src/assets/weapons/icons/flamethrower_long.png new file mode 100644 index 0000000000000000000000000000000000000000..833edf6d51f897da53f98ec5a0914792a80afc48 GIT binary patch literal 7152 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 AxBvhE literal 0 HcmV?d00001 diff --git a/src/assets/weapons/icons/grenadeFlash.png b/src/assets/weapons/icons/grenadeFlash.png new file mode 100644 index 0000000000000000000000000000000000000000..fcfcea9eb87dd73183e24d3f4caccbb8789a9ffd GIT binary patch literal 2607 zcmWlac{tSDAIHa%C6euSlhjYTQuihkN!CP)vQsw-xm~g(A!Ugy$-c~F8G8s3%3$nb ztYhECI;+{tYGyEz_-)~-GQPp#J-t1HgM(}qV|8^2x4N>typ)ulPNS0Xcx+=+Q)g!zW_39W0ztGi_4W0> zOH4)}S|X$4va+B`YxYp1NgNJ?LZN_$%Vm*B#5DpQgIR_^a;Byx z>FX38mrbRR*4IfND=P4KOnZBKYkOODO>KD0yQ1RKxw%;)0ow?NlS%lYp+WK*-pA)P z;50Q8vPQ(O5pfd}qn4J>UcHK*ot*~!j*JYmS#&0Iy`!@Oi(MWYL#-??rlx0+NyJZ; zRq;tl6f%)aBE%#l<`xt@4GAF{P2d+;EZFALXk;pt z1mM`(G3Zp_Zg4kPOeT%PW~|f58yqG;7RZD~B{3N^DrF5o79}Gi z2W0dy#KFdK-u@APEcIDm`c80a-j9JLv<_)H2ET*+G3dsz2pV@S-g_IgpTpd7Z`$8> zg$9p@SB^di&dv`l^J6qI&HepRZqni^PF>MNRpr*mpyk;K*Tau>37%$mMox|~*&FhgC3a8H z*=M9>4hf0Mik#jD-8bSr1%bpaTAG_W-5z>|7I$*Ie;nk|F2F``x@ud{T`uAQ16=}( z)x*DKCktN?7N)#Ju;;oC%RkZ3yPfF4caRXW9o9R`>FVsn9AJOGg=~}{W1xKQ!ND)i zc*mt=UxjHuwDf}(pIKD4_SFCvzP-+lR!toYe;IbyO>rSjGu$zv5-}ZLF8Y!2{$9&J zyRf?n>WYg>X{@|%Oj^7wc`G1Q>l&_2+GGF2+4XqQFBNBJLP}!_GxgH{)X)Gel8Tf9 z2HWn6S=LZQ;Y(wDuliyrIv#ceD=#A7sp0E+UBS;h#;-2h;MI&7R5ulT!bUN0&ysbP z@#I0vy=xEDH2uJm8OJ+9F>6qVVf+sguzWmp!ygp|Rd=s>3knUx!vDEgzUccP zXIkeR-vZHZ6DPI_Qs9(vN~^d2x)fO0Zz=D6?20w1LS2NJ==6*(;-zC9ZD#L?@X0Uw zJwCj5%rChNcIbGsr~f9aE-CD;V5egM-s-WS48c4aky6I z`-L<+qeEi|9i#lY8)4rUZw@1aD{}t#(NJ*u@}T2fD#b9?W8njcc?=x6m7sA!DBapS z*$PuRZYC8sc`YJM!e`1p&eJ;c+_|joOW9>P#_SHTd#F3atg&H&n)4u`?q4%zBrHtz za7!$^QAK_KA>keJ-FqojO=j(Ihjdo1Kx&WcX`wj3WPWMFe1*3OjW~$aYZPn{`ck|n zoSd8rh4wBlH^3}*8UCHGCXL~ozHaT`1k*-FhRIMKY9z9B*ZuHVWTn z?!?{Sdzqb`U2OGoBh)|q>XbnKGIfW@r=}2SfB*8=P=t)$7_;*X@GIr0s=q4z!vyC* z|EljKcF&pdB)iw(ThhlzuN0t0Q@-b$vDG!aVO?br``U_zfl9MD#A&daap>Q5G8sdh zqvtjJQ*%=JPcT->oBSSzqqu5~wrs!E$~R$HyiGm$bND3ENalUjL{-g~gfrEN27#03 zF*No{(#Q$6IPp0+Kj@i8ee>qA1(M#IN60ra)$wCjJk4iLQzFSDBmzgk=D6(@fvmI(3>2yOEWfp%EcZz?#(MTlw3!={`33IiH--@o;U z`x#?cfj+al%Nh^+DpaN~DY@M9oxj7=QNj6swVRh!H8obD!nC}Yjg;d1@c2?gQ$`*ps)c1?{r&=^w5uNqej35!Pzy za6_~?&(tIyCMWel*0f#HVjC{S0||c;C@B7(uz+%@daT9}LwEoCKLt4#OSvR_di397#$P`8*j10V?lyZ)N zYHH4@>0rprZ5cbYhsG_@N*2np-R^CtwF2g;ah!zIVq#2d;3Jv4w2M>r zU9qL>K1_KZ>Kk|}2#f%0-#Bw%YZSSw7M>f6sHUrLUhwg~0GrA8CiaWx_NTi;^7M>b zyqOTL!s*0E(p=}c^a59EVOACd3WGr*5U89=5d@Z*nWa!9VgmCy5L)S5=+)7a>jPdn OkmXGq^ZFYevHu5y|JYRk literal 0 HcmV?d00001 diff --git a/src/assets/weapons/icons/grenadeSmoke.png b/src/assets/weapons/icons/grenadeSmoke.png new file mode 100644 index 0000000000000000000000000000000000000000..cb63dd36079dd6059bdd4eba80f380dfe5030cb3 GIT binary patch literal 2973 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 TA6SD600000NkvXXu0mjfL|u9D literal 0 HcmV?d00001 diff --git a/src/assets/weapons/icons/grenadeVintage.png b/src/assets/weapons/icons/grenadeVintage.png new file mode 100644 index 0000000000000000000000000000000000000000..dd129eac0b9683247b8fcf3e7214ad603f1f56cc GIT binary patch literal 4251 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 literal 0 HcmV?d00001 diff --git a/src/assets/weapons/icons/knifeRound_sharp.png b/src/assets/weapons/icons/knifeRound_sharp.png new file mode 100644 index 0000000000000000000000000000000000000000..ff01891cc9f820aa620e5d17b29832574e1274de GIT binary patch literal 2773 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 literal 0 HcmV?d00001 diff --git a/src/assets/weapons/icons/knife_sharp.png b/src/assets/weapons/icons/knife_sharp.png new file mode 100644 index 0000000000000000000000000000000000000000..13518f8b8d3fb7bfdf15a996c4166b759c4ed7fa GIT binary patch literal 3168 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 literal 0 HcmV?d00001 diff --git a/src/assets/weapons/icons/knife_smooth.png b/src/assets/weapons/icons/knife_smooth.png new file mode 100644 index 0000000000000000000000000000000000000000..3cc2aa5b02cdea3f69177d33d7ccaf0eeca0cdc7 GIT binary patch literal 2923 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 literal 0 HcmV?d00001 diff --git a/src/assets/weapons/icons/pistolSilencer.png b/src/assets/weapons/icons/pistolSilencer.png new file mode 100644 index 0000000000000000000000000000000000000000..6f8ee5c7fa59e56c7307d15f48edbcbb0ea4f01f GIT binary patch literal 4250 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

~(gwj7%v>Ta{{5CLkVF5h z#RrJj>)Hhmba4pB#0D(QUtM#X^u9j+en@4uH7RxK^H^H6RUR!t*WviJF{gjERK#;A?&x%7L|0_1U`X$4v>sg?sNU*kCWnv zl3IJSi+=@)6&u7(N?t8n$ZD1k#MoU5q4Fy^dx3Fz;wKDlE_jOabC6GP!KiS9ugN(- z|Ko&G{_za;-V=cB#j+*47NRN_IJtWdcbs}qllMf}st|7YbrZ(Ivmj{x`aFbzx7s}r z$(G-LraG!8&JTBWP5pKtO>KbVdGCF?Ji;gP@3gV^VTgU}(S9fQX&pN_kWO-L0LaQ- za|d?+L>eFsAlRBis_d%9JgV?{iM3y`;shVOCU{t%+ zQNju_6%!L+O==gRsKRN{9zMpbS7?DiP9TwycF&*hUJj{kyMIZHC7MK^n4Y$doBiHh zcw2;Ukz<-7Q(zVk8=K1~-%B4KIkOz5LBgAB+#kBhoEWIqikd4cFE4Vvo!iM>6T28k zKMM?)4-p7?*h{dlHRGcUVf8T=o;$X&P_3Cd<#%GE5M^qVVohwEo+skc50nq3Hy|s_q?}v9F;eF5Jc0*^5Q_uK7=gYdv64gFziH+ZVVQRzQ_uXc-@>?WVy;8PN@Tk zC?xhVIb#(HQQ}V4_O_l*oj>CfoWx@q2Lsv4I2v|)dl6&X$pYJ@vHb{uA?T*MhlW(pVp17%tq3bPlalrRKijb^7326%K!O1M&1jt zY_j~?wX=UTdVIoZb@a6bsq42ou5=L1_&o?39p%8T@yP!FF2I6>e%{K{tb~Y_>1VCDNznfQsy1DJ literal 0 HcmV?d00001 diff --git a/src/assets/weapons/icons/shotgun.png b/src/assets/weapons/icons/shotgun.png new file mode 100644 index 0000000000000000000000000000000000000000..13031d16fe59197db8d9852e82d8539172a963c1 GIT binary patch literal 5444 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 u?E5HxUw-}`kdN~BT~@r>B#XlgP-%rm3mZ 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 O0000hjg)+3d_zNoiSmd3jY$&F=0N1ZQw?U?045 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 literal 0 HcmV?d00001 diff --git a/src/assets/weapons/icons/uzi.png b/src/assets/weapons/icons/uzi.png new file mode 100644 index 0000000000000000000000000000000000000000..8e648ed64a99ef67721f794aaf37b889e8b246a2 GIT binary patch literal 4281 zcmV;q5JvBbP)gI`zj^pCr%F4;h%E{8w&!ncNy}i1rtE;=ayRNXXsjI8V z%E!*m&c?>Z*4EW*a(0}ao^Et^)z#8>dw=NV+0ufaC7VG z=-1cQ$H&I9v$Mj(!q(N);NRZ2x3{RNseXZk;^N@t<>Q{8pNo!<`S|t4#>A|zuhrGl z^6~H1*3;M5*4Nk7+}zpU-`wHh-;|e_?dFMQ#i;RPY ziFtf~;o;us=;h$x-p9wrsjRHZ%gMRAy6x@i^z`ua^6$&c%5Qgh;o;tZgol@#n|ptP zhKY)=u&``%c(%8tVQ+8h z>F0}%khHb6#l^&&o}cID*Z$#>U0<^zqQq&(P4%=jY{VadYJ4 z;i##q(b3Sv#l*+R$4W|J;^N?DW@_r`=jZ3;=jY=9005+=r}gyl(9qA3la}}Q^QNe% z&d$x!($QvZbB>XdL{U*)U10b2^Iv9XR%K=O_VNG#0LI0`$j8LP!oa}5zOS#Xy}Y`* zxwqEU)XvSz(9q8O{P@br$Hc_K?(OUQ`}gwl?*IS%%*)CC{rb|;&(F@x?Ca_B^6%#6 zgwmy($M<)_S@Up<>lhs+u79A(&gmg+}zsQ+SuslE`h8?d9a+<>cYv;ojrp;P>|O?d|IB?(6mS^6BX1+1S?G+t}#n<^BBm@9*s0 z-P+>f-`LmH-rd{#`u6AN+0y~>E`Y1>GSjO`uXhJFB{QLLt@9g>b_4f7h`S|qm@$UTl`1|_z^YZWX^YHli^!4=d`1kYo_w)Dm^Z57l z9C^oC0001^bW%=Jarac*-RR+a$&tXGcg4c1$xdHS$U5tE{pFu${3_|<&6JtL+P8{U z;pUTE{+VX7_^`FJzQxNw>~6zxX2zGjZ{l>FVT=3ZWVn=k()U;0+b&#F-~PvuUzvI7 z`uv+6%_m19VQLq3jDz$3h^>%Kqx;ro5aKp(j!D*^@KQ6EkNu~m+!WJZsEm^a&=20& z+5uPoq&xmvp{f!%0|@>N3;qBJUeJmF01UNBL_t(&-nE-|K-*Rt!1?3$-rc*s_O9c) z_e}Rlo6%1vb#^Ep!55NP1v9OJ8$(C%R zaZi%BY?_*v4@;ITOFw__ed8^XM7-=-k}0~flEm#x_T~^X4isH+(x%tmvN=%v^o#?A zSC+K(RU3}x<`$zi$CHa8JaYY(Ei1MxpR-j+`r<6$_!wVqE_(LOiGvDOpC@pK|l)iwC(-d`5ybwRP3n0>4W0&@zgmX~(|>q@~-x z_XSAA<~<34K3VNJKgX{UUPiMLL#HKXG(d8hKP*TDRJ6#95nH&!k3aPBB;v4uw569X zJWeS`ULvHK1U6z=!5wb!t3*4#5Rk6z%?*)y=Oh5S&rBbr364~7zh5O9|4cx75(gy4 zZ+yMmemrREcG~Mj4EM3epV|B%3XgtLQuaOqFc==S#yodjYWmEK^tCg$EyzfIBQ-g7 z?b`HpJ7=e_+&Oz^#>(WK$t!ohk(`m5p7BOT>dIB?l2bEQJ&L^7D3#Jrrf*AKu$l>y zJ`j-JAy^QPa^;$PIXQpc)@$qSwc$44gbti=fIosb4GzIaHufS8#K!JzgnK~Q@!mnR z1ILLVh_ngnsWit=Vgd%}KMe>)2ZW-?h$|#XfseqRyBPRZ7k9=u{_^LSmQ8>9uOSj} z+~A`*R2TSfKsrRBxB#a4>M*JkwY&?1Nh_3yPm!7`+?q$=KJ+UyU zbPC}UaKLXe9WB@Cbdr9FOs1FB_UqOCwf$;Yo2tIzTs0FdtWp7$I1)*snsYU3wYL15 za}}*MHRZaek~Zy*B5^k{SVN7fN!uYc4%8W?(hfz3QCcTeNTuyfx?>vJ#Ry9wpi&p7 z62rJ#b=tZr^||`Cetl=7<+`N&XcBh|gDC2oI)((sypTOi&i(XoUJEDNMew7Rfn?K#DVM_heM5C7*xm*P)(!&72=RA z$>na)Hrt)XTB+P_b-NL^^c*pCqOm%iw3;Q2o?=l!l4VFL@%qTM) z>mrsULujT>FSRS0wC^9g>4q?!Ham)o!%L541*@ABpr~-8 z3y}ifD=T9_%LB)I&k9;$g@iay8`tUB~(0>7_QA0PD0VwexOG!5`Dhob;jl@i^U2mMMYI1*E)0sNkF4rdqqD; zV*95Le2DvE=oLw#BC9D-PdsRr=(0#6(V>S>&?q*5b}@k#$F@G!0m@K=gD`_H;lydS z6>ZKvc+h7y6Lg;Fa!I1kAA5cO{+yI|_P=$%D^BJHDBs-uY5Q^(?cbc1lQSh}O4f}Y zxpMx#w47O@%O?RTEiKJ2Dav0Rv^dR|>x-hdy^y5hW z{$vUvNRL5@?kqoXq(=9X?8_U?5lHqvLtLF`B8v2Lbwkt7@)IPz|0)qPO7NtpPS{i0 zChbjo5+p6%ZjP^$BWeKPDzS9nrbKm`IvEwT?n637k$$5w%HK^?r%&dg5m{?o(({8u zmKQc9NLqq2EnsmnL{zszq^d?SH{uE2b@~6)W zfr!AC35KLsc$}Vh6D6hN0gZ$z(Y_mh@vEC}{_S(m{qC7(p83OVx7}rRdhSZJ^mgK9 z@kzzrn)-$&g%R`_?aqsCkGs!0oN(!Fz=O>bfj?1LW5uyHeWzkTBL`jBo<66w#hY-9 z_`ne$3EheDcGk4Yv_|D1P|51{ctN|J`CFn^{xA_Rabbv{(c6Fh%Uf=F_Su)8{r!u# z-n#PMYhS$g#g|JHBNaYk;7PGSwBysn=QW}wbCJRCPBBS`;gL%Anf)Xx28n=3%HM3J z!X%1>LnJMHd_0n48$8m|$IUd(iU6P&~XsQ z#&^Lq%mhep_QvXk2D`-4$Kz>nyRGcIyM;Y!6Xc z^Ggf=q?a|+s%zD%hPDQox}l+8QVZrjoAmwqs}ozkm=y2A+j6m{(O4%ng1OudjZy>V zbv4QXjb_Ml{U;*0q!wpiH<&OVHJ!5eoO1R#FFLJYZ+CiLnF^Pb=e1hhm2S3P*sT(5 zY<+>%Qu7Pol0L#JD=R%g@p`?(!^2?j#gNA!>x6;l^UwD3dtMN%vH&)TdoB_ra54tQ zz2+Z+OFBR!{-^s1fdgz;0dx`)gM?fffvwYCCYl7cv9U{IBd~2Rk`w@rUAjci`xtWR zk%+MPSc9NB~s10aYIUdTGl8VQ8)VeZ9-TRxV1VaEu}6GH&&66|`)Lp<)FRGx94 z0dHqm81f3_?4IX!TX|_|VUw=aZEay$An`)hX@|#p(aEjbyJ)pKt>A<^0?P|ufn84? zr@fnBy$4nbf>oAw_NdQpw|2w!Cu_IGa-q3OK4>wSs=>-VOZA||Vgl1>*F*NFx8<5T z=|G*>C>4wA1{4G04r5&h`-xEjo74_g_cq96ZR$2vTW!CjU)ENuZab-Eo37Z$-HEt&lIu4n#Hh4dA$yUnH7TpyuJrZeZaDL9IOvwm$89$Y{XPpq{lXH%v$tTT3S|C z+QzJ`6!4yvvODY1jcGY4DQO$iQXYk-Q( literal 0 HcmV?d00001 diff --git a/src/assets/weapons/icons/uziLong.png b/src/assets/weapons/icons/uziLong.png new file mode 100644 index 0000000000000000000000000000000000000000..75dd5716a2245f265a733b3d7404bad9c50196c4 GIT binary patch literal 5448 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 literal 0 HcmV?d00001 diff --git a/src/assets/weapons/icons/uziSilencer.png b/src/assets/weapons/icons/uziSilencer.png new file mode 100644 index 0000000000000000000000000000000000000000..2ca6fa7a8392ef8144bbcdb02a3ddb7b1febdc42 GIT binary patch literal 4844 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 Date: Wed, 12 Jun 2024 22:51:00 -0600 Subject: [PATCH 5/5] Allow sprinting on controller by pressing A/Cross Sprinting was not previously possible on controller. Now by pressing A (Xbox controller) or Cross (PlayStation controller), controller players are now able to sprint. --- src/externalEvents/player.json | 8623 ++++++-------------------------- 1 file changed, 1565 insertions(+), 7058 deletions(-) diff --git a/src/externalEvents/player.json b/src/externalEvents/player.json index c3141048..b3bcc699 100644 --- a/src/externalEvents/player.json +++ b/src/externalEvents/player.json @@ -1,5 +1,5 @@ { - "associatedLayout": "City", + "associatedLayout": "Game_World_old", "lastChangeTimeStamp": 0, "name": "Player", "events": [ @@ -99,7 +99,7 @@ "value": "AnimatableCapability::AnimatableBehavior::SetIndex" }, "parameters": [ - "Body", + "player_body", "Animation", "=", "GlobalVariable(Player.Customisation.body)" @@ -110,7 +110,7 @@ "value": "AnimatableCapability::AnimatableBehavior::SetIndex" }, "parameters": [ - "Leg", + "player_leg", "Animation", "=", "GlobalVariable(Player.Customisation.leg)" @@ -121,7 +121,7 @@ "value": "AnimatableCapability::AnimatableBehavior::SetIndex" }, "parameters": [ - "Hand", + "player_hand", "Animation", "=", "GlobalVariable(Player.Customisation.hand)" @@ -143,7 +143,6 @@ "colorG": 176, "colorR": 74, "creationTime": 0, - "folded": true, "name": "Animation", "source": "", "type": "BuiltinCommonInstructions::Group", @@ -171,11 +170,11 @@ "value": "MettreXY" }, "parameters": [ - "Hand", + "player_hand", "=", - "Body.PointX(\"point\" + Hand.type)", + "player_body.PointX(\"point\" + player_hand.type)", "=", - "Body.PointY(\"point\" + Hand.type)" + "player_body.PointY(\"point\" + player_hand.type)" ] }, { @@ -183,11 +182,11 @@ "value": "MettreXY" }, "parameters": [ - "Leg", + "player_leg", "=", - "Body.PointX(\"point\" + Leg.type)", + "player_body.PointX(\"point\" + player_leg.type)", "=", - "Body.PointY(\"point\" + Leg.type)" + "player_body.PointY(\"point\" + player_leg.type)" ] } ] @@ -215,9 +214,9 @@ "value": "SetAngle" }, "parameters": [ - "Hand", + "player_hand", "=", - "Hand.angle + Body.Angle()" + "player_hand.angle + player_body.Angle()" ] }, { @@ -225,14 +224,15 @@ "value": "SetAngle" }, "parameters": [ - "Leg", + "player_leg", "=", - "Leg.angle + Body.Angle()" + "player_leg.angle + player_body.Angle()" ] } ] }, { + "disabled": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [], "actions": [ @@ -241,7 +241,7 @@ "value": "DebuggerTools::ConsoleLog" }, "parameters": [ - "Body.Animation", + "player_body.Animation", "\"info\"", "" ] @@ -269,7 +269,7 @@ "value": "TopDownMovementBehavior::IsMoving" }, "parameters": [ - "Body", + "player_body", "TopDownMovement" ] } @@ -284,11 +284,22 @@ "value": "VarObjetTxt" }, "parameters": [ - "Body", + "player_body", "Animation", "!=", "\"phoneHold\"" ] + }, + { + "type": { + "value": "VarObjetTxt" + }, + "parameters": [ + "player_body", + "Animation", + "!=", + "\"weaponHold\"" + ] } ], "actions": [], @@ -305,6 +316,30 @@ "", "LShift" ] + }, + { + "type": { + "inverted": true, + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "1", + "\"A\"", + "" + ] + }, + { + "type": { + "inverted": true, + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "1", + "\"Cross\"", + "" + ] } ], "actions": [ @@ -313,7 +348,7 @@ "value": "ModVarObjetTxt" }, "parameters": [ - "Body", + "player_body", "Animation", "=", "\"walk\"" @@ -326,11 +361,41 @@ "conditions": [ { "type": { - "value": "KeyPressed" + "value": "BuiltinCommonInstructions::Or" }, - "parameters": [ - "", - "LShift" + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "KeyPressed" + }, + "parameters": [ + "", + "LShift" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "1", + "\"A\"", + "" + ] + }, + { + "type": { + "value": "Gamepads::C_Button_pressed" + }, + "parameters": [ + "", + "1", + "\"Cross\"", + "" + ] + } ] } ], @@ -340,7 +405,7 @@ "value": "ModVarObjetTxt" }, "parameters": [ - "Body", + "player_body", "Animation", "=", "\"run\"" @@ -362,7 +427,7 @@ "value": "TopDownMovementBehavior::IsMoving" }, "parameters": [ - "Body", + "player_body", "TopDownMovement" ] }, @@ -379,7 +444,7 @@ "value": "ModVarObjetTxt" }, "parameters": [ - "Body", + "player_body", "Animation", "=", "\"idle\"" @@ -395,10 +460,20 @@ "value": "ObjectVariableAsBoolean" }, "parameters": [ - "Body", + "player_body", "Phone.active", "True" ] + }, + { + "type": { + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "player_body", + "Weapon.active", + "False" + ] } ], "actions": [ @@ -407,7 +482,7 @@ "value": "ModVarObjetTxt" }, "parameters": [ - "Body", + "player_body", "Animation", "=", "\"phoneHold\"" @@ -423,11 +498,21 @@ "value": "ObjectVariableAsBoolean" }, "parameters": [ - "Body", + "player_body", "Phone.active", "False" ] }, + { + "type": { + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "player_body", + "Weapon.active", + "False" + ] + }, { "type": { "value": "BuiltinCommonInstructions::Once" @@ -441,7 +526,7 @@ "value": "ModVarObjetTxt" }, "parameters": [ - "Body", + "player_body", "Animation", "=", "\"idle\"" @@ -449,6 +534,44 @@ } ] }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "player_body", + "Weapon.active", + "True" + ] + }, + { + "type": { + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "player_body", + "Phone.active", + "False" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjetTxt" + }, + "parameters": [ + "player_body", + "Animation", + "=", + "\"weaponHold\"" + ] + } + ] + }, { "folded": true, "type": "BuiltinCommonInstructions::Comment", @@ -481,7 +604,7 @@ "value": "ResetObjectTimer" }, "parameters": [ - "Body", + "player_body", "\"switchWalkAngle\"" ] } @@ -501,7 +624,7 @@ "value": "VarObjetTxt" }, "parameters": [ - "Body", + "player_body", "Animation", "=", "\"run\"" @@ -512,7 +635,7 @@ "value": "VarObjetTxt" }, "parameters": [ - "Body", + "player_body", "Animation", "=", "\"walk\"" @@ -545,10 +668,10 @@ "value": "CompareObjectTimer" }, "parameters": [ - "Body", + "player_body", "\"switchWalkAngle\"", ">=", - "Body.TopDownMovement::Speed() / 1000" + "player_body.TopDownMovement::Speed() / 1000" ] }, { @@ -564,12 +687,12 @@ "value": "Tween::TweenBehavior::AddObjectWidthTween2" }, "parameters": [ - "Hand", + "player_hand", "Tween", "\"hand\"", "0", "\"easeInQuad\"", - "Body.Movement.TopDownMovement[Body.Animation].shuffleTweenDuration", + "player_body.Movement.TopDownMovement[player_body.Animation].shuffleTweenDuration", "" ] }, @@ -578,12 +701,12 @@ "value": "Tween::TweenBehavior::AddObjectWidthTween2" }, "parameters": [ - "Leg", + "player_leg", "Tween", "\"leg\"", "0", "\"easeInQuad\"", - "Body.Movement.TopDownMovement[Body.Animation].shuffleTweenDuration", + "player_body.Movement.TopDownMovement[player_body.Animation].shuffleTweenDuration", "" ] }, @@ -592,7 +715,7 @@ "value": "Wait" }, "parameters": [ - "Body.Movement.TopDownMovement[Body.Animation].shuffleTweenDelay" + "player_body.Movement.TopDownMovement[player_body.Animation].shuffleTweenDelay" ] }, { @@ -600,7 +723,7 @@ "value": "ModVarObjet" }, "parameters": [ - "Hand", + "player_hand", "angle", "+", "180" @@ -611,7 +734,7 @@ "value": "ModVarObjet" }, "parameters": [ - "Leg", + "player_leg", "angle", "+", "180" @@ -622,12 +745,12 @@ "value": "Tween::TweenBehavior::AddObjectWidthTween2" }, "parameters": [ - "Hand", + "player_hand", "Tween", "\"hand\"", "35", "\"easeOutQuad\"", - "Body.Movement.TopDownMovement[Body.Animation].shuffleTweenDuration", + "player_body.Movement.TopDownMovement[player_body.Animation].shuffleTweenDuration", "" ] }, @@ -636,12 +759,12 @@ "value": "Tween::TweenBehavior::AddObjectWidthTween2" }, "parameters": [ - "Leg", + "player_leg", "Tween", "\"leg\"", "20", "\"easeOutQuad\"", - "Body.Movement.TopDownMovement[Body.Animation].shuffleTweenDuration", + "player_body.Movement.TopDownMovement[player_body.Animation].shuffleTweenDuration", "" ] }, @@ -650,7 +773,7 @@ "value": "ResetObjectTimer" }, "parameters": [ - "Body", + "player_body", "\"switchWalkAngle\"" ] } @@ -680,7 +803,7 @@ "value": "VarObjetTxt" }, "parameters": [ - "Body", + "player_body", "Animation", "=", "\"idle\"" @@ -693,12 +816,12 @@ "value": "Tween::TweenBehavior::AddObjectWidthTween2" }, "parameters": [ - "Leg", + "player_leg", "Tween", - "\"leg\" + Body.Animation", + "\"leg\" + player_body.Animation", "0", "\"easeOutQuad\"", - "Body.Movement.TopDownMovement.walk.shuffleTweenDuration", + "player_body.Movement.TopDownMovement.walk.shuffleTweenDuration", "" ] }, @@ -707,12 +830,12 @@ "value": "Tween::TweenBehavior::AddObjectWidthTween2" }, "parameters": [ - "Hand", + "player_hand", "Tween", - "\"hand\" + Body.Animation", + "\"hand\" + player_body.Animation", "0", "\"easeOutQuad\"", - "Body.Movement.TopDownMovement.walk.shuffleTweenDuration", + "player_body.Movement.TopDownMovement.walk.shuffleTweenDuration", "" ] } @@ -745,7 +868,7 @@ "value": "VarObjetTxt" }, "parameters": [ - "Body", + "player_body", "Animation", "=", "\"phoneHold\"" @@ -758,10 +881,10 @@ "value": "TopDownMovementBehavior::MaxSpeed" }, "parameters": [ - "Body", + "player_body", "TopDownMovement", "=", - "Body.Movement.TopDownMovement.walk.maxSpeed - 200" + "player_body.Movement.TopDownMovement.walk.maxSpeed - 200" ] } ], @@ -774,7 +897,7 @@ "value": "VarObjetTxt" }, "parameters": [ - "Hand", + "player_hand", "type", "=", "\"R\"" @@ -787,12 +910,12 @@ "value": "Tween::TweenBehavior::AddObjectWidthTween2" }, "parameters": [ - "Hand", + "player_hand", "Tween", - "\"hand\" + Body.Animation", + "\"hand\" + player_body.Animation", "35", "\"easeOutQuad\"", - "Body.Movement.TopDownMovement.walk.shuffleTweenDuration", + "player_body.Movement.TopDownMovement.walk.shuffleTweenDuration", "" ] }, @@ -801,9 +924,9 @@ "value": "SetAngle" }, "parameters": [ - "Hand", + "player_hand", "=", - "Body.Angle()" + "player_body.Angle()" ] } ] @@ -816,7 +939,7 @@ "value": "VarObjetTxt" }, "parameters": [ - "Hand", + "player_hand", "type", "=", "\"L\"" @@ -829,12 +952,12 @@ "value": "Tween::TweenBehavior::AddObjectWidthTween2" }, "parameters": [ - "Hand", + "player_hand", "Tween", - "\"hand\" + Body.Animation", + "\"hand\" + player_body.Animation", "0", "\"easeOutQuad\"", - "Body.Movement.TopDownMovement.walk.shuffleTweenDuration", + "player_body.Movement.TopDownMovement.walk.shuffleTweenDuration", "" ] } @@ -860,7 +983,7 @@ "value": "TopDownMovementBehavior::IsMoving" }, "parameters": [ - "Body", + "player_body", "TopDownMovement" ] } @@ -876,10 +999,10 @@ "value": "CompareObjectTimer" }, "parameters": [ - "Body", + "player_body", "\"switchWalkAngle\"", ">=", - "Body.TopDownMovement::Speed() / Body.Movement.TopDownMovement.walk.shuffleSwitchTime" + "player_body.TopDownMovement::Speed() / player_body.Movement.TopDownMovement.walk.shuffleSwitchTime" ] }, { @@ -895,12 +1018,12 @@ "value": "Tween::TweenBehavior::AddObjectWidthTween2" }, "parameters": [ - "Leg", + "player_leg", "Tween", "\"leg\"", "0", "\"easeInQuad\"", - "Body.Movement.TopDownMovement.walk.shuffleTweenDuration", + "player_body.Movement.TopDownMovement.walk.shuffleTweenDuration", "" ] }, @@ -909,7 +1032,7 @@ "value": "Wait" }, "parameters": [ - "Body.Movement.TopDownMovement.walk.shuffleTweenDelay" + "player_body.Movement.TopDownMovement.walk.shuffleTweenDelay" ] }, { @@ -917,7 +1040,7 @@ "value": "ModVarObjet" }, "parameters": [ - "Leg", + "player_leg", "angle", "+", "180" @@ -928,12 +1051,12 @@ "value": "Tween::TweenBehavior::AddObjectWidthTween2" }, "parameters": [ - "Leg", + "player_leg", "Tween", "\"leg\"", "20", "\"easeOutQuad\"", - "Body.Movement.TopDownMovement.walk.shuffleTweenDuration", + "player_body.Movement.TopDownMovement.walk.shuffleTweenDuration", "" ] }, @@ -942,7 +1065,7 @@ "value": "ResetObjectTimer" }, "parameters": [ - "Body", + "player_body", "\"switchWalkAngle\"" ] } @@ -976,7 +1099,7 @@ "value": "TopDownMovementBehavior::IsMoving" }, "parameters": [ - "Body", + "player_body", "TopDownMovement" ] } @@ -987,12 +1110,12 @@ "value": "Tween::TweenBehavior::AddObjectWidthTween2" }, "parameters": [ - "Leg", + "player_leg", "Tween", - "\"leg\" + Body.Animation", + "\"leg\" + player_body.Animation", "0", "\"easeOutQuad\"", - "Body.Movement.TopDownMovement.walk.shuffleTweenDuration", + "player_body.Movement.TopDownMovement.walk.shuffleTweenDuration", "" ] } @@ -1001,173 +1124,81 @@ ] }, { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "folded": true, - "name": "ZOrder", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "hand should appear below body and legs below hand" - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "DepartScene" - }, - "parameters": [ - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "Hand", - "=", - "Body.ZOrder() - 1" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "Leg", - "=", - "Hand.ZOrder() - 1" - ] - } - ] - } - ], - "parameters": [] - } - ], - "parameters": [] - }, - { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Camera", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "center camera on player" - }, - { - "folded": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "ObjectVariableAsBoolean" + "value": "VarObjetTxt" }, "parameters": [ - "Body", - "Camera.active", - "True" + "player_body", + "Animation", + "=", + "\"weaponHold\"" ] } ], "actions": [ { "type": { - "value": "CentreCamera" + "value": "TopDownMovementBehavior::MaxSpeed" }, "parameters": [ - "", - "Body", - "", - "\"\"", - "" + "player_body", + "TopDownMovement", + "=", + "player_body.Movement.TopDownMovement.walk.maxSpeed" ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "set the variable \"Game.Camera.Zoom\" to 1, the camera uses this to set it's zoom level" - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + }, { "type": { - "value": "GlobalVariableAsBoolean" + "value": "SetGlobalVariableAsBoolean" }, "parameters": [ - "Game.intro", - "" + "debug.cameraControlType", + "True" ] } ], - "actions": [], "events": [ { - "disabled": true, - "folded": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "DepartScene" + "value": "VarObjetTxt" }, "parameters": [ - "" + "player_hand", + "type", + "=", + "\"R\"" ] } ], "actions": [ { "type": { - "value": "ModVarScene" + "value": "Tween::TweenBehavior::AddObjectWidthTween2" }, "parameters": [ - "Game.Camera.Zoom", + "player_hand", + "Tween", + "\"hand\" + player_body.Animation", + "35", + "\"easeOutQuad\"", + "player_body.Movement.TopDownMovement.walk.shuffleTweenDuration", + "" + ] + }, + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "player_hand", "=", - "1" + "player_body.Angle()" ] } ] @@ -1177,31 +1208,45 @@ "conditions": [ { "type": { - "inverted": true, - "value": "TopDownMovementBehavior::IsMoving" + "value": "VarObjetTxt" }, "parameters": [ - "Body", - "TopDownMovement" + "player_hand", + "type", + "=", + "\"L\"" ] } ], "actions": [ { "type": { - "value": "Tween::TweenSceneVariableNumber3" + "value": "Tween::TweenBehavior::AddObjectWidthTween2" }, "parameters": [ - "", - "\"zoomOut\"", - "Game.Camera.Zoom", - "1", - "\"linear\"", - "1" + "player_hand", + "Tween", + "\"hand\" + player_body.Animation", + "0", + "\"easeOutQuad\"", + "player_body.Movement.TopDownMovement.walk.shuffleTweenDuration", + "" ] } ] }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Player is moving while holding his phone, shuffle legs to simulate walk" + }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ @@ -1210,29 +1255,102 @@ "value": "TopDownMovementBehavior::IsMoving" }, "parameters": [ - "Body", + "player_body", "TopDownMovement" ] } ], - "actions": [ + "actions": [], + "events": [ { - "type": { - "value": "Tween::TweenSceneVariableNumber3" - }, - "parameters": [ - "", - "\"zoomOut\"", - "Game.Camera.Zoom", - "0.9", - "\"linear\"", - "1" + "folded": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "player_body", + "\"switchWalkAngle\"", + ">=", + "player_body.TopDownMovement::Speed() / player_body.Movement.TopDownMovement.walk.shuffleSwitchTime" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Tween::TweenBehavior::AddObjectWidthTween2" + }, + "parameters": [ + "player_leg", + "Tween", + "\"leg\"", + "0", + "\"easeInQuad\"", + "player_body.Movement.TopDownMovement.walk.shuffleTweenDuration", + "" + ] + }, + { + "type": { + "value": "Wait" + }, + "parameters": [ + "player_body.Movement.TopDownMovement.walk.shuffleTweenDelay" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "player_leg", + "angle", + "+", + "180" + ] + }, + { + "type": { + "value": "Tween::TweenBehavior::AddObjectWidthTween2" + }, + "parameters": [ + "player_leg", + "Tween", + "\"leg\"", + "20", + "\"easeOutQuad\"", + "player_body.Movement.TopDownMovement.walk.shuffleTweenDuration", + "" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "player_body", + "\"switchWalkAngle\"" + ] + } ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] } ] }, { - "folded": true, "type": "BuiltinCommonInstructions::Comment", "color": { "b": 109, @@ -1242,31 +1360,34 @@ "textG": 0, "textR": 0 }, - "comment": "Revert to the \"Game.Camera.Zoom\" variable if GodMode is not active" + "comment": "Player is not moving while holding his phone hide the legs" }, { - "folded": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "SceneVariableAsBoolean" + "inverted": true, + "value": "TopDownMovementBehavior::IsMoving" }, "parameters": [ - "GodMode.active", - "False" + "player_body", + "TopDownMovement" ] } ], "actions": [ { "type": { - "value": "ZoomCamera" + "value": "Tween::TweenBehavior::AddObjectWidthTween2" }, "parameters": [ - "", - "Game.Camera.Zoom", - "", + "player_leg", + "Tween", + "\"leg\" + player_body.Animation", + "0", + "\"easeOutQuad\"", + "player_body.Movement.TopDownMovement.walk.shuffleTweenDuration", "" ] } @@ -1275,15 +1396,66 @@ ] }, { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [] - }, - { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [] + "name": "ZOrder", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "folded": true, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "hand should appear below body and legs below hand" + }, + { + "folded": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "player_hand", + "=", + "player_body.ZOrder() - 1" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "player_leg", + "=", + "player_hand.ZOrder() - 1" + ] + } + ] + } + ], + "parameters": [] } ], "parameters": [] @@ -1293,112 +1465,89 @@ "colorG": 176, "colorR": 74, "creationTime": 0, - "folded": true, - "name": "Separate", + "name": "Weapon", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Move \"body\" away from all these objects" - }, - { - "folded": true, "type": "BuiltinCommonInstructions::Standard", - "conditions": [], + "conditions": [ + { + "type": { + "value": "VarObjetTxt" + }, + "parameters": [ + "player_body", + "Weapon.equipped", + "=", + "\"0\"" + ] + } + ], "actions": [ { "type": { - "value": "SeparateFromObjects" + "value": "SetObjectVariableAsBoolean" }, "parameters": [ - "Body", - "Static", + "player_body", + "Weapon.active", "" ] - }, + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { "type": { - "value": "SeparateFromObjects" + "value": "VarObjetTxt" }, "parameters": [ - "trash_movable", - "Body", - "" + "player_body", + "Weapon.equipped", + "!=", + "\"0\"" ] - }, + } + ], + "actions": [ { "type": { - "value": "SeparateFromObjects" + "value": "SetObjectVariableAsBoolean" }, "parameters": [ - "trash_movable", - "Static", - "" + "player_body", + "Weapon.active", + "True" ] } ] }, { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "In rooms" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] }, { - "folded": true, "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + "conditions": [ { "type": { - "value": "SeparateFromObjects" + "value": "CollisionNP" }, "parameters": [ - "Body", - "kitchen", + "player_body", + "Weapon_Pick", + "", + "", "" ] - } - ] - } - ], - "parameters": [] - }, - { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "disabled": true, - "folded": true, - "name": "Swimming", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + }, { "type": { - "value": "BuiltinCommonInstructions::Or" + "value": "BuiltinCommonInstructions::Once" }, "parameters": [] } @@ -1406,20 +1555,60 @@ "actions": [ { "type": { - "value": "ModVarScene" + "value": "ModVarObjetTxt" }, "parameters": [ - "swimming", + "player_body", + "Weapon.equipped", "=", - "0" + "SubStr(Weapon_Pick.ObjectName(), 0, StrLength(Weapon_Pick.ObjectName()) - 5)" + ] + }, + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Weapon_Pick", + "" ] } ], "events": [ { - "folded": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ + { + "type": { + "value": "AjoutObjConcern" + }, + "parameters": [ + "", + "player_hand" + ] + }, + { + "type": { + "value": "VarObjetTxt" + }, + "parameters": [ + "player_hand", + "type", + "=", + "\"R\"" + ] + }, + { + "type": { + "value": "SceneInstancesCount" + }, + "parameters": [ + "", + "Weapon_Hold", + "<", + "1" + ] + }, { "type": { "value": "BuiltinCommonInstructions::Once" @@ -1430,54 +1619,45 @@ "actions": [ { "type": { - "value": "ModVarGlobal" + "value": "CreateByName" }, "parameters": [ - "Weapon_holding", - "=", - "GlobalVariable(Old_weapon_holding)" + "", + "Weapon_Hold", + "player_body.Weapon.equipped + \"_hold\"", + "player_hand.PointX(\"finger\")", + "player_hand.PointY(\"finger\")", + "" ] - } - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + }, { "type": { - "value": "ModVarScene" + "value": "SetAngle" }, "parameters": [ - "swimming", + "Weapon_Hold", "=", - "1" + "player_hand.Angle() + Weapon_Hold.properties.angle" ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ + }, { "type": { - "value": "ModVarScene" + "value": "Sticker::Sticker::Stick" }, "parameters": [ - "swimming", - "=", - "2" + "uziLong_hold", + "Sticker", + "player_hand", + "" + ] + }, + { + "type": { + "value": "SetSceneVariableAsBoolean" + }, + "parameters": [ + "Player.Weapons.Active[player_body.Weapon.equipped].active", + "True" ] } ] @@ -1485,574 +1665,314 @@ ] }, { - "folded": true, "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "swimming", - "=", - "1" - ] - } - ], + "conditions": [], "actions": [ { "type": { - "value": "ChangeAnimation" + "value": "ResizableCapability::ResizableBehavior::SetSize" }, "parameters": [ - "Player", - "=", - "10" + "Weapon_Hold", + "Resizable", + "Weapon_Hold.properties.width", + "Weapon_Hold.properties.height" ] } ] }, { + "disabled": true, "folded": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "VarScene" + "value": "VarObjetTxt" }, "parameters": [ - "swimming", + "player_body", + "Weapon.equipped", "=", - "2" + "\"uziLong\"" ] } ], - "actions": [ + "actions": [], + "events": [ { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "Player", - "=", - "9" - ] + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] } ] }, { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Ammo", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ { - "type": { - "value": "BuiltinCommonInstructions::Or" - }, - "parameters": [], - "subInstructions": [ + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { "type": { - "value": "VarScene" + "inverted": true, + "value": "Distance" }, "parameters": [ - "swimming", - "=", - "1" + "player_body", + "player_crosshair", + "100", + "" ] }, { "type": { - "value": "VarScene" - }, - "parameters": [ - "swimming", - "=", - "2" - ] - } - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Old_weapon_holding", - "=", - "GlobalVariable(Weapon_holding)" - ] - }, - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "swimming", - "=", - "0" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::And" - }, - "parameters": [], - "subInstructions": [ - { - "type": { - "value": "Animation" + "value": "ObjectVariableAsBoolean" }, "parameters": [ - "Player", - "!=", - "10" + "player_body", + "Weapon.active", + "True" ] }, { "type": { - "value": "Animation" + "value": "BuiltinCommonInstructions::Or" }, - "parameters": [ - "Player", - "!=", - "9" - ] - } - ] - }, - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "using_phone", - "=", - "0" - ] - } - ], - "actions": [] - } - ], - "parameters": [] - }, - { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "name": "Controls", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Handle movement with \"wasd\" and only move when the object variable \"Movement.canMove\" of player is possible" - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "ObjectVariableAsBoolean" - }, - "parameters": [ - "Body", - "Movement.canMove", - "True" - ] - } - ], - "actions": [], - "events": [ - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "GlobalVariableAsBoolean" - }, - "parameters": [ - "debug.cameraControlType", - "True" - ] - } - ], - "actions": [], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + "parameters": [], + "subInstructions": [ { "type": { - "value": "BuiltinCommonInstructions::Or" + "value": "BuiltinCommonInstructions::And" }, "parameters": [], "subInstructions": [ { "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "a" - ] - }, - { - "type": { - "value": "Gamepads::C_Axis_pushed" + "value": "Gamepads::C_Controller_X_is_connected" }, "parameters": [ "", "1", - "\"Left\"", - "\"Left\"", "" ] - } - ] - } - ], - "actions": [ - { - "type": { - "value": "AddForceAL" - }, - "parameters": [ - "Body", - "Body.Angle() - 90", - "200", - "" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Or" - }, - "parameters": [], - "subInstructions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "d" - ] }, { "type": { - "value": "Gamepads::C_Axis_pushed" + "value": "Gamepads::C_Button_pressed" }, "parameters": [ "", "1", - "\"Left\"", - "\"Right\"", + "\"R2\"", "" ] } ] - } - ], - "actions": [ - { - "type": { - "value": "AddForceAL" - }, - "parameters": [ - "Body", - "Body.Angle() + 90", - "200", - "" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + }, { "type": { - "value": "BuiltinCommonInstructions::Or" + "value": "BuiltinCommonInstructions::And" }, "parameters": [], "subInstructions": [ { "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "w" - ] - }, - { - "type": { - "value": "Gamepads::C_Axis_pushed" + "inverted": true, + "value": "Gamepads::C_Controller_X_is_connected" }, "parameters": [ "", "1", - "\"Left\"", - "\"Up\"", "" ] - } - ] - } - ], - "actions": [ - { - "type": { - "value": "AddForceAL" - }, - "parameters": [ - "Body", - "Body.Angle()", - "200", - "" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Or" - }, - "parameters": [], - "subInstructions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "s" - ] }, { "type": { - "value": "Gamepads::C_Axis_pushed" + "value": "MouseButtonPressed" }, "parameters": [ "", - "1", - "\"Left\"", - "\"Down\"", - "" + "Left" ] } ] } - ], - "actions": [ - { - "type": { - "value": "AddForceAL" - }, - "parameters": [ - "Body", - "Body.Angle() + 180", - "200", - "" - ] - } ] - }, + } + ], + "actions": [ { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "RotateTowardPosition" - }, - "parameters": [ - "Body", - "CursorX()", - "CursorY()", - "0", - "" - ] - } + "type": { + "value": "FireBullet::FireBullet::FireTowardPosition" + }, + "parameters": [ + "player_body", + "FireBullet", + "Weapon_Hold.PointX(\"spawn\")", + "Weapon_Hold.PointY(\"spawn\")", + "uzi_ammo", + "player_crosshair.CenterX()", + "player_crosshair.CenterY()", + "1500", + "" ] }, { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + "type": { + "value": "AddForceAL" + }, + "parameters": [ + "player_body", + "player_body.Angle() + 180", + "Weapon_Hold.properties.pushBackStrength", + "" + ] + }, { "type": { - "value": "GlobalVariableAsBoolean" + "value": "FireBullet::FireBullet::SetAngleVarianceOp" }, "parameters": [ - "debug.cameraControlType", - "False" + "player_body", + "FireBullet", + "=", + "Weapon_Hold.properties.variance", + "" ] - } - ], - "actions": [], - "events": [ + }, { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "a" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateLeftKey" - }, - "parameters": [ - "Body", - "TopDownMovement" - ] - } + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "uzi_ammo", + "=", + "Weapon_Hold.ZOrder() -2" ] }, { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "d" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateRightKey" - }, - "parameters": [ - "Body", - "TopDownMovement" - ] - } + "type": { + "value": "ShakeObject::ShakeObject_PositionAngle::ShakeObject_PositionAngle" + }, + "parameters": [ + "player_hand", + "ShakeObject_PositionAngle", + "0.1", + "-1", + "-2", + "0", + "0.08", + "", + "" ] }, { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "w" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateUpKey" - }, - "parameters": [ - "Body", - "TopDownMovement" - ] - } + "type": { + "value": "ShakeObject::ShakeObject_PositionAngle::ShakeObject_PositionAngle" + }, + "parameters": [ + "player_body", + "ShakeObject_PositionAngle", + "0.1", + "-1", + "-2", + "0", + "0.08", + "", + "" ] - }, + } + ] + }, + { + "disabled": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "s" - ] - } - ], - "actions": [ - { - "type": { - "value": "TopDownMovementBehavior::SimulateDownKey" - }, - "parameters": [ - "Body", - "TopDownMovement" - ] - } + "type": { + "value": "CameraShake::ShakeCamera" + }, + "parameters": [ + "", + "0.05", + "0", + "0", + "" ] } ] } + ], + "parameters": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Camera", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "folded": true, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "center camera on player" + }, + { + "folded": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "player_body", + "Camera.active", + "True" + ] + } + ], + "actions": [ + { + "type": { + "value": "CentreCamera" + }, + "parameters": [ + "", + "player_body", + "", + "\"\"", + "" + ] + } ] }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + }, { "folded": true, "type": "BuiltinCommonInstructions::Comment", @@ -2064,70 +1984,76 @@ "textG": 0, "textR": 0 }, - "comment": "Reveert to values set in the body ovject variable \"Body.Movement.TopDownMovement.*****\"" + "comment": "set the variable \"Game.Camera.Zoom\" to 1, the camera uses this to set it's zoom level" }, { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "SceneVariableAsBoolean" + "value": "GlobalVariableAsBoolean" }, "parameters": [ - "GodMode.active", - "False" + "Game.intro", + "" ] } ], "actions": [], "events": [ { + "disabled": true, + "folded": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "VarObjetTxt" + "value": "DepartScene" }, "parameters": [ - "Body", - "Animation", - "=", - "\"walk\"" + "" ] } ], "actions": [ { "type": { - "value": "TopDownMovementBehavior::MaxSpeed" + "value": "ModVarScene" }, "parameters": [ - "Body", - "TopDownMovement", + "Game.Camera.Zoom", "=", - "Body.Movement.TopDownMovement.walk.maxSpeed" + "1" ] - }, + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { "type": { - "value": "TopDownMovementBehavior::Deceleration" + "inverted": true, + "value": "TopDownMovementBehavior::IsMoving" }, "parameters": [ - "Body", - "TopDownMovement", - "=", - "Body.Movement.TopDownMovement.walk.Deceleration" + "player_body", + "TopDownMovement" ] - }, + } + ], + "actions": [ { "type": { - "value": "TopDownMovementBehavior::Acceleration" + "value": "Tween::TweenSceneVariableNumber3" }, "parameters": [ - "Body", - "TopDownMovement", - "=", - "Body.Movement.TopDownMovement.walk.Acceleration" + "", + "\"zoomOut\"", + "Game.Camera.Zoom", + "1", + "\"linear\"", + "1" ] } ] @@ -2137,59 +2063,78 @@ "conditions": [ { "type": { - "value": "VarObjetTxt" + "value": "TopDownMovementBehavior::IsMoving" }, "parameters": [ - "Body", - "Animation", - "=", - "\"run\"" + "player_body", + "TopDownMovement" ] } ], "actions": [ { "type": { - "value": "TopDownMovementBehavior::MaxSpeed" - }, - "parameters": [ - "Body", - "TopDownMovement", - "=", - "Body.Movement.TopDownMovement.run.maxSpeed" - ] - }, - { - "type": { - "value": "TopDownMovementBehavior::Deceleration" + "value": "Tween::TweenSceneVariableNumber3" }, "parameters": [ - "Body", - "TopDownMovement", - "=", - "Body.Movement.TopDownMovement.run.Deceleration" - ] - }, - { - "type": { - "value": "TopDownMovementBehavior::Acceleration" - }, - "parameters": [ - "Body", - "TopDownMovement", - "=", - "Body.Movement.TopDownMovement.run.Acceleration" + "", + "\"zoomOut\"", + "Game.Camera.Zoom", + "0.9", + "\"linear\"", + "1" ] } ] }, { + "folded": true, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Revert to the \"Game.Camera.Zoom\" variable if GodMode is not active" + }, + { + "folded": true, "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [] + "conditions": [ + { + "type": { + "value": "SceneVariableAsBoolean" + }, + "parameters": [ + "GodMode.active", + "False" + ] + } + ], + "actions": [ + { + "type": { + "value": "ZoomCamera" + }, + "parameters": [ + "", + "Game.Camera.Zoom", + "", + "" + ] + } + ] } ] }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] + }, { "folded": true, "type": "BuiltinCommonInstructions::Standard", @@ -2204,115 +2149,57 @@ "colorG": 176, "colorR": 74, "creationTime": 0, - "disabled": true, "folded": true, - "name": "Weapon system", + "name": "Separate", "source": "", "type": "BuiltinCommonInstructions::Group", "events": [ + { + "folded": true, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move \"body\" away from all these objects" + }, { "folded": true, "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "DepartScene" - }, - "parameters": [ - "" - ] - }, - { - "type": { - "value": "AjoutObjConcern" - }, - "parameters": [ - "", - "reloading" - ] - } - ], + "conditions": [], "actions": [ { "type": { - "value": "Cache" - }, - "parameters": [ - "flame_thrower_fire_collision" - ] - }, - { - "type": { - "value": "Cache" - }, - "parameters": [ - "flame_thrower_fire" - ] - }, - { - "type": { - "value": "Cache" - }, - "parameters": [ - "reloading" - ] - }, - { - "type": { - "value": "ResetTimer" - }, - "parameters": [ - "flame_thrower_fire_collision", - "\"gun3_ammo\"" - ] - }, - { - "type": { - "value": "ModVarSceneTxt" + "value": "SeparateFromObjects" }, "parameters": [ - "gun4_shoot", - "=", - "\"False\"" + "player_body", + "Game_Static", + "" ] }, { "type": { - "value": "ModVarSceneTxt" + "value": "SeparateFromObjects" }, "parameters": [ - "gun5_shoot", - "=", - "\"False\"" + "props_moveable", + "player_body", + "" ] }, { "type": { - "value": "ModVarSceneTxt" - }, - "parameters": [ - "mele2_use", - "=", - "\"False\"" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "MettreXY" + "value": "SeparateFromObjects" }, "parameters": [ - "flame_thrower_fire_collision", - "=", - "Player.PointX(\"f_t_collision\")", - "=", - "Player.PointY(\"f_t_collision\")" + "props_moveable", + "Game_Static", + "" ] } ] @@ -2328,38 +2215,63 @@ "textG": 0, "textR": 0 }, - "comment": "If `Rotate_mouse` do ...." + "comment": "In rooms" }, + { + "folded": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SeparateFromObjects" + }, + "parameters": [ + "player_body", + "kitchen", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": true, + "folded": true, + "name": "Swimming", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ { "folded": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "VarGlobal" + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" }, "parameters": [ - "Rotate_mouse", + "swimming", "=", "0" ] } ], - "actions": [], "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Top down veiw movment rotate = False" - }, { "folded": true, "type": "BuiltinCommonInstructions::Standard", @@ -2371,126 +2283,87 @@ "parameters": [] } ], - "actions": [] + "actions": [ + { + "type": { + "value": "ModVarGlobal" + }, + "parameters": [ + "Weapon_holding", + "=", + "GlobalVariable(Old_weapon_holding)" + ] + } + ] } ] }, { "folded": true, "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Rotate_mouse", - "=", - "1" - ] - } - ], + "conditions": [], "actions": [], "events": [ { "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Top down veiw movment rotate = False" + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "swimming", + "=", + "1" + ] + } + ] }, { "folded": true, "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + "conditions": [], + "actions": [ { "type": { - "value": "BuiltinCommonInstructions::Once" + "value": "ModVarScene" }, - "parameters": [] + "parameters": [ + "swimming", + "=", + "2" + ] } - ], - "actions": [] + ] } ] }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Pick up the gun" - }, { "folded": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - }, { "type": { "value": "VarScene" }, "parameters": [ - "using_phone", + "swimming", "=", - "0" - ] - }, - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "e" + "1" ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] } ], "actions": [ { "type": { - "value": "Delete" - }, - "parameters": [ - "gun1", - "" - ] - }, - { - "type": { - "value": "ModVarGlobal" + "value": "ChangeAnimation" }, "parameters": [ - "Weapon_holding", + "Player", "=", - "1" + "10" ] } ] @@ -2499,60 +2372,26 @@ "folded": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - }, { "type": { "value": "VarScene" }, "parameters": [ - "using_phone", + "swimming", "=", - "0" - ] - }, - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "e" + "2" ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] } ], "actions": [ { "type": { - "value": "Delete" - }, - "parameters": [ - "gun2", - "" - ] - }, - { - "type": { - "value": "ModVarGlobal" + "value": "ChangeAnimation" }, "parameters": [ - "Weapon_holding", + "Player", "=", - "2" + "9" ] } ] @@ -2563,21 +2402,30 @@ "conditions": [ { "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - }, - { - "type": { - "value": "KeyPressed" + "value": "BuiltinCommonInstructions::Or" }, - "parameters": [ - "", - "e" + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "swimming", + "=", + "1" + ] + }, + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "swimming", + "=", + "2" + ] + } ] }, { @@ -2590,11 +2438,12 @@ "actions": [ { "type": { - "value": "Delete" + "value": "ModVarGlobal" }, "parameters": [ - "gun3", - "" + "Old_weapon_holding", + "=", + "GlobalVariable(Weapon_holding)" ] }, { @@ -2604,7 +2453,7 @@ "parameters": [ "Weapon_holding", "=", - "3" + "0" ] } ] @@ -2613,5806 +2462,720 @@ "folded": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - }, { "type": { "value": "VarScene" }, "parameters": [ - "using_phone", + "swimming", "=", "0" ] }, { "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "e" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Delete" + "value": "BuiltinCommonInstructions::And" }, - "parameters": [ - "gun4", - "" + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "Animation" + }, + "parameters": [ + "Player", + "!=", + "10" + ] + }, + { + "type": { + "value": "Animation" + }, + "parameters": [ + "Player", + "!=", + "9" + ] + } ] }, { "type": { - "value": "ModVarGlobal" + "value": "VarScene" }, "parameters": [ - "Weapon_holding", + "using_phone", "=", - "4" + "0" ] } - ] - }, + ], + "actions": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Controls", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ { "folded": true, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Handle movement with \"wasd\" and only move when the object variable \"Movement.canMove\" of player is possible" + }, + { "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - }, - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "using_phone", - "=", - "0" - ] - }, - { - "type": { - "value": "KeyPressed" + "value": "ObjectVariableAsBoolean" }, "parameters": [ - "", - "e" + "player_body", + "Movement.canMove", + "True" ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] } ], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "gun5", - "" - ] - }, + "actions": [], + "events": [ { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "5" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - }, - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "using_phone", - "=", - "0" - ] - }, - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "e" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "mele1", - "" - ] - }, - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "6" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - }, - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "using_phone", - "=", - "0" - ] - }, - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "e" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "mele1", - "" - ] - }, - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "6" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - }, - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "using_phone", - "=", - "0" - ] - }, - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "e" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "mele2", - "" - ] - }, - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "7" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "If holding an gun(0 is not holding) do ...." - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - } - ], - "actions": [ - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "weapon_icons", - "=", - "0" - ] - }, - { - "type": { - "value": "Cache" - }, - "parameters": [ - "weaponholding" - ] - } - ], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Change animation and `Rotate_mouse` " - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Rotate_mouse", - "=", - "0" - ] - }, - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "Player", - "=", - "0" - ] - }, - { - "type": { - "value": "Cache" - }, - "parameters": [ - "AmmoText" - ] - }, - { - "type": { - "value": "Cache" - }, - "parameters": [ - "reloading" - ] - }, - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "crosshair", - "=", - "0" - ] - }, - { - "type": { - "value": "Delete" - }, - "parameters": [ - "Slash1", - "" - ] - }, - { - "type": { - "value": "Delete" - }, - "parameters": [ - "tazer_hitbox", - "" - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "1" - ] - } - ], - "actions": [ - { - "type": { - "value": "Montre" - }, - "parameters": [ - "weaponholding", - "" - ] - }, - { - "type": { - "value": "TextObject::String" - }, - "parameters": [ - "weaponholding", - "=", - "\"weapon: gun1\"" - ] - } - ], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Change animation and `Rotate_mouse` " - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Rotate_mouse", - "=", - "1" - ] - }, - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "Player", - "=", - "2" - ] - }, - { - "type": { - "value": "Montre" - }, - "parameters": [ - "AmmoText", - "" - ] - }, - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "crosshair", - "=", - "4" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Shoot gun" - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "SourisBouton" - }, - "parameters": [ - "", - "Left" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Gun1_ammo", - "!=", - "0" - ] - }, - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "using_phone", - "=", - "0" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "bullet", - "Player.PointX(\"shoot\")", - "Player.PointY(\"shoot\")", - "\"\"" - ] - }, - { - "type": { - "value": "PlaySound" - }, - "parameters": [ - "", - "assets\\gun_shot_1.wav", - "", - "", - "" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "bullet", - "=", - "70000" - ] - }, - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Gun1_ammo", - "-", - "1" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "bullet", - "bullet", - "=", - "1" - ] - }, - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "shooting_effect", - "Player.PointX(\"shoot\")", - "Player.PointY(\"shoot\")", - "\"\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "shooting_effect", - "=", - "70000" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Drop gun" - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyReleased" - }, - "parameters": [ - "", - "q" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "gun1", - "Player.PointX(\"shoot\")", - "Player.PointY(\"shoot\")", - "\"\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "gun1", - "=", - "70000" - ] - }, - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "2" - ] - } - ], - "actions": [ - { - "type": { - "value": "Montre" - }, - "parameters": [ - "weaponholding", - "" - ] - }, - { - "type": { - "value": "TextObject::String" - }, - "parameters": [ - "weaponholding", - "=", - "\"weapon: gun2\"" - ] - } - ], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "DepartScene" - }, - "parameters": [ - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "ResetTimer" - }, - "parameters": [ - "", - "\"gun2_shoot\"" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Change animation and `Rotate_mouse` " - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Rotate_mouse", - "=", - "1" - ] - }, - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "Player", - "=", - "3" - ] - }, - { - "type": { - "value": "Montre" - }, - "parameters": [ - "AmmoText", - "" - ] - }, - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "crosshair", - "=", - "0" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Shoot gun" - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "SourisBouton" - }, - "parameters": [ - "", - "Left" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Gun2_ammo", - "!=", - "0" - ] - }, - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "using_phone", - "=", - "0" - ] - }, - { - "type": { - "value": "Timer" - }, - "parameters": [ - "", - "0.1", - "\"gun2_shoot\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "bullet", - "Player.PointX(\"shoot\")", - "Player.PointY(\"shoot\")", - "\"\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "bullet", - "=", - "70000" - ] - }, - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Gun2_ammo", - "-", - "1" - ] - }, - { - "type": { - "value": "ResetTimer" - }, - "parameters": [ - "", - "\"gun2_shoot\"" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "bullet", - "bullet", - "=", - "2" - ] - }, - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "shooting_effect", - "Player.PointX(\"shoot\")", - "Player.PointY(\"shoot\")", - "\"\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "shooting_effect", - "=", - "70000" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Drop gun" - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyReleased" - }, - "parameters": [ - "", - "q" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "gun2", - "Player.PointX(\"shoot\")", - "Player.PointY(\"shoot\")", - "\"\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "gun2", - "=", - "70000" - ] - }, - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "3" - ] - } - ], - "actions": [ - { - "type": { - "value": "Montre" - }, - "parameters": [ - "weaponholding", - "" - ] - }, - { - "type": { - "value": "TextObject::String" - }, - "parameters": [ - "weaponholding", - "=", - "\"weapon: gun3\"" - ] - } - ], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Change animation and `Rotate_mouse` " - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Rotate_mouse", - "=", - "1" - ] - }, - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "Player", - "=", - "4" - ] - }, - { - "type": { - "value": "Montre" - }, - "parameters": [ - "AmmoText", - "" - ] - }, - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "crosshair", - "=", - "3" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Shoot gun" - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "SourisBouton" - }, - "parameters": [ - "", - "Left" - ] - }, - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "using_phone", - "=", - "0" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Gun3_ammo", - "!=", - "0" - ] - } - ], - "actions": [ - { - "type": { - "value": "Montre" - }, - "parameters": [ - "flame_thrower_fire", - "" - ] - } - ], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ParticleSystem::RecreateParticleSystem" - }, - "parameters": [ - "flame_thrower_fire" - ] - }, - { - "type": { - "value": "ResetTimer" - }, - "parameters": [ - "flame_thrower_fire_collision", - "\"gun3_ammo\"" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Timer" - }, - "parameters": [ - "", - "2", - "\"gun3_ammo\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Gun3_ammo", - "-", - "1" - ] - }, - { - "type": { - "value": "ResetTimer" - }, - "parameters": [ - "flame_thrower_fire_collision", - "\"gun3_ammo\"" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "If fire in collision with burnable object, set it on fire" - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "CreateByName" - }, - "parameters": [ - "", - "flame_thrower_fire_secondary", - "\"flame_thrower_fire_secondary\"", - "flame_thrower_fire_collision.PointX(\"CenterBurning\")", - "flame_thrower_fire_collision.PointY(\"CenterBurning\")", - "\"\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "flame_thrower_fire_secondary", - "=", - "222" - ] - } - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Or" - }, - "parameters": [], - "subInstructions": [ - { - "type": { - "inverted": true, - "value": "SourisBouton" - }, - "parameters": [ - "", - "Left" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Gun3_ammo", - "=", - "0" - ] - } - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Cache" - }, - "parameters": [ - "flame_thrower_fire" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Drop gun" - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyReleased" - }, - "parameters": [ - "", - "q" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "gun3", - "Player.PointX(\"f_t_collision\")", - "Player.PointY(\"f_t_collision\")", - "\"\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "gun3", - "=", - "70000" - ] - }, - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - }, - { - "type": { - "value": "Cache" - }, - "parameters": [ - "flame_thrower_fire" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Put actual fire over hitbox" - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "MettreXY" - }, - "parameters": [ - "flame_thrower_fire", - "=", - "flame_thrower_fire_collision.X()", - "=", - "flame_thrower_fire_collision.Y()" - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "4" - ] - } - ], - "actions": [ - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "weapon_icons", - "=", - "2" - ] - }, - { - "type": { - "value": "Montre" - }, - "parameters": [ - "weaponholding", - "" - ] - }, - { - "type": { - "value": "TextObject::String" - }, - "parameters": [ - "weaponholding", - "=", - "\"weapon: gun4\"" - ] - } - ], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Change animation and `Rotate_mouse` " - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Rotate_mouse", - "=", - "1" - ] - }, - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "Player", - "=", - "5" - ] - }, - { - "type": { - "value": "Montre" - }, - "parameters": [ - "AmmoText", - "" - ] - }, - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "crosshair", - "=", - "1" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Shoot gun" - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "SourisBouton" - }, - "parameters": [ - "", - "Left" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Gun4_ammo", - "!=", - "0" - ] - }, - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "using_phone", - "=", - "0" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Timer" - }, - "parameters": [ - "", - "5", - "\"gun4_shoot\"" - ] - }, - { - "type": { - "value": "VarSceneTxt" - }, - "parameters": [ - "gun4_shoot", - "=", - "\"True\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "bullet", - "Player.PointX(\"shoot\")", - "Player.PointY(\"shoot\")", - "\"\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "bullet", - "=", - "70000" - ] - }, - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Gun4_ammo", - "-", - "1" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "bullet", - "bullet", - "=", - "4" - ] - }, - { - "type": { - "value": "ResetTimer" - }, - "parameters": [ - "", - "\"gun4_shoot\"" - ] - }, - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "shooting_effect_sniper", - "Player.PointX(\"shoot\")", - "Player.PointY(\"shoot\")", - "\"\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "shooting_effect_sniper", - "=", - "70000" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarSceneTxt" - }, - "parameters": [ - "gun4_shoot", - "=", - "\"False\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "bullet", - "Player.PointX(\"shoot\")", - "Player.PointY(\"shoot\")", - "\"\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "bullet", - "=", - "70000" - ] - }, - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Gun4_ammo", - "-", - "1" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "bullet", - "bullet", - "=", - "4" - ] - }, - { - "type": { - "value": "ResetTimer" - }, - "parameters": [ - "", - "\"gun4_shoot\"" - ] - }, - { - "type": { - "value": "ModVarSceneTxt" - }, - "parameters": [ - "gun4_shoot", - "=", - "\"True\"" - ] - }, - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "shooting_effect_sniper", - "Player.PointX(\"shoot\")", - "Player.PointY(\"shoot\")", - "\"\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "shooting_effect_sniper", - "=", - "70000" - ] - } - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Drop gun" - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyReleased" - }, - "parameters": [ - "", - "q" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "gun4", - "Player.PointX(\"shoot\")", - "Player.PointY(\"shoot\")", - "\"\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "gun4", - "=", - "70000" - ] - }, - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - }, - { - "type": { - "value": "Cache" - }, - "parameters": [ - "reloading" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "reloading" - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "Timer" - }, - "parameters": [ - "", - "5", - "\"gun4_shoot\"" - ] - }, - { - "type": { - "value": "VarSceneTxt" - }, - "parameters": [ - "gun4_shoot", - "=", - "\"True\"" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Montre" - }, - "parameters": [ - "reloading", - "" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Timer" - }, - "parameters": [ - "", - "5", - "\"gun4_shoot\"" - ] - }, - { - "type": { - "value": "VarSceneTxt" - }, - "parameters": [ - "gun4_shoot", - "=", - "\"True\"" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Cache" - }, - "parameters": [ - "reloading" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Gun4_ammo", - "=", - "0" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Cache" - }, - "parameters": [ - "reloading" - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "5" - ] - } - ], - "actions": [ - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "weapon_icons", - "=", - "3" - ] - }, - { - "type": { - "value": "Montre" - }, - "parameters": [ - "weaponholding", - "" - ] - }, - { - "type": { - "value": "TextObject::String" - }, - "parameters": [ - "weaponholding", - "=", - "\"weapon: gun5\"" - ] - } - ], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Change animation and `Rotate_mouse` " - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Rotate_mouse", - "=", - "1" - ] - }, - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "Player", - "=", - "6" - ] - }, - { - "type": { - "value": "Montre" - }, - "parameters": [ - "AmmoText", - "" - ] - }, - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "crosshair", - "=", - "2" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Shoot gun" - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "SourisBouton" - }, - "parameters": [ - "", - "Left" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Gun5_ammo", - "!=", - "0" - ] - }, - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "using_phone", - "=", - "0" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Timer" - }, - "parameters": [ - "", - "5", - "\"gun5_shoot\"" - ] - }, - { - "type": { - "value": "VarSceneTxt" - }, - "parameters": [ - "gun5_shoot", - "=", - "\"True\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "bullet", - "Player.PointX(\"shoot\")", - "Player.PointY(\"shoot\")", - "\"\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "bullet", - "=", - "70000" - ] - }, - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Gun5_ammo", - "-", - "1" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "bullet", - "bullet", - "=", - "5" - ] - }, - { - "type": { - "value": "ResetTimer" - }, - "parameters": [ - "", - "\"gun5_shoot\"" - ] - }, - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "shooting_effect_rocket", - "Player.PointX(\"shoot\")", - "Player.PointY(\"shoot\")", - "\"\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "shooting_effect_rocket", - "=", - "70000" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarSceneTxt" - }, - "parameters": [ - "gun5_shoot", - "=", - "\"False\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "bullet", - "Player.PointX(\"shoot\")", - "Player.PointY(\"shoot\")", - "\"\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "bullet", - "=", - "70000" - ] - }, - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Gun5_ammo", - "-", - "1" - ] - }, - { - "type": { - "value": "ModVarObjet" - }, - "parameters": [ - "bullet", - "bullet", - "=", - "5" - ] - }, - { - "type": { - "value": "ResetTimer" - }, - "parameters": [ - "", - "\"gun5_shoot\"" - ] - }, - { - "type": { - "value": "ModVarSceneTxt" - }, - "parameters": [ - "gun5_shoot", - "=", - "\"True\"" - ] - }, - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "shooting_effect_rocket", - "Player.PointX(\"shoot\")", - "Player.PointY(\"shoot\")", - "\"\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "shooting_effect_rocket", - "=", - "70000" - ] - } - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Drop gun" - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyReleased" - }, - "parameters": [ - "", - "q" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - }, - { - "type": { - "value": "Timer" - }, - "parameters": [ - "", - "5", - "\"gun5_shoot\"" - ] - }, - { - "type": { - "value": "VarSceneTxt" - }, - "parameters": [ - "gun5_shoot", - "=", - "\"True\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "gun5", - "Player.PointX(\"shoot\")", - "Player.PointY(\"shoot\")", - "\"\"" - ] - }, - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "gun5", - "=", - "0" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "gun5", - "=", - "70000" - ] - }, - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - }, - { - "type": { - "value": "Cache" - }, - "parameters": [ - "reloading" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "reloading" - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "inverted": true, - "value": "Timer" - }, - "parameters": [ - "", - "5", - "\"gun5_shoot\"" - ] - }, - { - "type": { - "value": "VarSceneTxt" - }, - "parameters": [ - "gun5_shoot", - "=", - "\"True\"" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Montre" - }, - "parameters": [ - "reloading", - "" - ] - }, - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "Player", - "=", - "11" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Timer" - }, - "parameters": [ - "", - "5", - "\"gun5_shoot\"" - ] - }, - { - "type": { - "value": "VarSceneTxt" - }, - "parameters": [ - "gun5_shoot", - "=", - "\"True\"" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Cache" - }, - "parameters": [ - "reloading" - ] - } - ], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Gun5_ammo", - "!=", - "0" - ] - } - ], - "actions": [ - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "Player", - "=", - "6" - ] - } - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Gun5_ammo", - "=", - "0" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "Player", - "=", - "11" - ] - }, - { - "type": { - "value": "Cache" - }, - "parameters": [ - "reloading" - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "6" - ] - } - ], - "actions": [ - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "weapon_icons", - "=", - "1" - ] - }, - { - "type": { - "value": "Montre" - }, - "parameters": [ - "weaponholding", - "" - ] - }, - { - "type": { - "value": "TextObject::String" - }, - "parameters": [ - "weaponholding", - "=", - "\"weapon: mele1\"" - ] - } - ], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Change animation and `Rotate_mouse` " - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Rotate_mouse", - "=", - "1" - ] - }, - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "Player", - "=", - "7" - ] - }, - { - "type": { - "value": "Montre" - }, - "parameters": [ - "AmmoText", - "" - ] - }, - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "crosshair", - "=", - "0" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "use mele " - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "SourisBouton" - }, - "parameters": [ - "", - "Left" - ] - }, - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "using_phone", - "=", - "0" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "mele1_energy", - "!=", - "0" - ] - } - ], - "actions": [], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "MettreXY" - }, - "parameters": [ - "tazer_hitbox", - "=", - "Player.PointX(\"hitbox\")", - "=", - "Player.PointY(\"hitbox\")" - ] - }, - { - "type": { - "value": "ModVarSceneTxt" - }, - "parameters": [ - "mele1_use", - "=", - "\"True\"" - ] - } - ], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "tazer_hitbox", - "Player.PointX(\"hitbox\")", - "Player.PointY(\"hitbox\")", - "\"\"" - ] - }, - { - "type": { - "value": "ResetTimer" - }, - "parameters": [ - "", - "\"mele1_energy\"" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Timer" - }, - "parameters": [ - "", - "2", - "\"mele1_energy\"" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "mele1_energy", - "-", - "1" - ] - }, - { - "type": { - "value": "ResetTimer" - }, - "parameters": [ - "", - "\"mele1_energy\"" - ] - } - ] - } - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Or" - }, - "parameters": [], - "subInstructions": [ - { - "type": { - "value": "MouseButtonReleased" - }, - "parameters": [ - "", - "Left" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "mele1_energy", - "=", - "0" - ] - } - ] - } - ], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "tazer_hitbox", - "tazer_hitbox" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Drop gun" - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyReleased" - }, - "parameters": [ - "", - "q" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "mele1", - "Player.PointX(\"hitbox\")", - "Player.PointY(\"hitbox\")", - "\"\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "mele1", - "=", - "70000" - ] - }, - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "7" - ] - } - ], - "actions": [ - { - "type": { - "value": "Montre" - }, - "parameters": [ - "weaponholding", - "" - ] - }, - { - "type": { - "value": "TextObject::String" - }, - "parameters": [ - "weaponholding", - "=", - "\"weapon: mele2\"" - ] - } - ], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "AjoutObjConcern" - }, - "parameters": [ - "", - "Slash1" - ] - } - ], - "actions": [ - { - "type": { - "value": "MettreXY" - }, - "parameters": [ - "Slash1", - "=", - "Player.PointX(\"slash\")", - "=", - "Player.PointY(\"slash\")" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Change animation and `Rotate_mouse` " - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Rotate_mouse", - "=", - "1" - ] - }, - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "Player", - "=", - "12" - ] - }, - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "crosshair", - "=", - "0" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "use mele " - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "SourisBouton" - }, - "parameters": [ - "", - "Left" - ] - }, - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "using_phone", - "=", - "0" - ] - }, - { - "type": { - "value": "VarSceneTxt" - }, - "parameters": [ - "mele2_use", - "=", - "\"False\"" - ] - } - ], - "actions": [], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "Slash1", - "Player.PointX(\"slash\")", - "Player.PointY(\"slash\")", - "\"\"" - ] - }, - { - "type": { - "value": "ResetTimer" - }, - "parameters": [ - "", - "\"mele2_use\"" - ] - }, - { - "type": { - "value": "ModVarSceneTxt" - }, - "parameters": [ - "mele2_use", - "=", - "\"True\"" - ] - } - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "SourisBouton" - }, - "parameters": [ - "", - "Left" - ] - }, - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "using_phone", - "=", - "0" - ] - }, - { - "type": { - "value": "Timer" - }, - "parameters": [ - "", - "2", - "\"mele2_use\"" - ] - }, - { - "type": { - "value": "VarSceneTxt" - }, - "parameters": [ - "mele2_use", - "=", - "\"True\"" - ] - } - ], - "actions": [], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "MettreXY" - }, - "parameters": [ - "Slash1", - "=", - "Player.PointX(\"slash\")", - "=", - "Player.PointY(\"slash\")" - ] - } - ], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "Slash1", - "Player.PointX(\"slash\")", - "Player.PointY(\"slash\")", - "\"\"" - ] - }, - { - "type": { - "value": "ResetTimer" - }, - "parameters": [ - "", - "\"mele2_use\"" - ] - } - ] - } - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Or" - }, - "parameters": [], - "subInstructions": [ - { - "type": { - "value": "MouseButtonReleased" - }, - "parameters": [ - "", - "Left" - ] - }, - { - "type": { - "value": "Timer" - }, - "parameters": [ - "", - "0.50", - "\"mele2_use\"" - ] - } - ] - } - ], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "Slash1", - "tazer_hitbox" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Drop gun" - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyReleased" - }, - "parameters": [ - "", - "q" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "mele2", - "Player.PointX(\"Center\")", - "Player.PointY(\"Center\")", - "\"\"" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "mele2", - "=", - "70000" - ] - }, - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - }, - { - "type": { - "value": "Delete" - }, - "parameters": [ - "Slash1", - "tazer_hitbox" - ] - } - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "if bullets collide with \"bullet obstacles\"" - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "1" - ] - } - ], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "bullet_destroy_pistol", - "bullet.PointX(\"effects_bullet\")", - "bullet.PointY(\"effects_bullet\")", - "\"\"" - ] - }, - { - "type": { - "value": "SetAngle" - }, - "parameters": [ - "bullet_destroy_pistol", - "=", - "(bullet.Angle())-180" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "bullet_destroy_pistol", - "=", - "2000" - ] - }, - { - "type": { - "value": "Delete" - }, - "parameters": [ - "bullet", - "" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "2" - ] - } - ], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "bullet_destroy_machine", - "bullet.PointX(\"effects_bullet\")", - "bullet.PointY(\"effects_bullet\")", - "\"\"" - ] - }, - { - "type": { - "value": "SetAngle" - }, - "parameters": [ - "bullet_destroy_machine", - "=", - "(bullet.Angle())-180" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "bullet_destroy_machine", - "=", - "2000" - ] - }, - { - "type": { - "value": "Delete" - }, - "parameters": [ - "bullet", - "" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "4" - ] - } - ], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "bullet_destroy_sniper", - "bullet.PointX(\"effects_bullet\")", - "bullet.PointY(\"effects_bullet\")", - "\"\"" - ] - }, - { - "type": { - "value": "SetAngle" - }, - "parameters": [ - "bullet_destroy_sniper", - "=", - "(bullet.Angle())-180" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "bullet_destroy_sniper", - "=", - "2000" - ] - }, - { - "type": { - "value": "Delete" - }, - "parameters": [ - "bullet", - "" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "5" - ] - } - ], - "actions": [ - { - "type": { - "value": "Create" - }, - "parameters": [ - "", - "bullet_destroy_rocket", - "bullet.PointX(\"effects_bullet\")", - "bullet.PointY(\"effects_bullet\")", - "\"\"" - ] - }, - { - "type": { - "value": "SetAngle" - }, - "parameters": [ - "bullet_destroy_rocket", - "=", - "(bullet.Angle())-180" - ] - }, - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "bullet_destroy_rocket", - "=", - "2000" - ] - }, - { - "type": { - "value": "Delete" - }, - "parameters": [ - "bullet", - "" - ] - }, - { - "type": { - "value": "CameraShake::CameraShake" - }, - "parameters": [ - "", - "5", - "5", - "\"\"", - "0", - "0.25", - "2", - "3", - "0", - "no", - "" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Distance" - }, - "parameters": [ - "bullet", - "Fences", - "15", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "Arreter" - }, - "parameters": [ - "bullet" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "Arret" - }, - "parameters": [ - "bullet" - ] - }, - { - "type": { - "value": "CollisionNP" - }, - "parameters": [ - "bullet", - "Fences", - "", - "", - "" - ] - } - ], - "actions": [ - { - "type": { - "value": "ChangePlan" - }, - "parameters": [ - "bullet", - "=", - "-200" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "Ammo" - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "e" - ] - }, - { - "type": { - "value": "Animation" - }, - "parameters": [ - "ammo", - "=", - "0" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "ammo", - "" - ] - } - ], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "1" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Gun1_ammo", - "+", - "10" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "2" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Gun2_ammo", - "+", - "10" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "3" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Gun3_ammo", - "+", - "10" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "4" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Gun4_ammo", - "+", - "10" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "5" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Gun5_ammo", - "+", - "10000" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "6" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "mele1_energy", - "+", - "10" - ] - } - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "1" - ] - } - ], - "actions": [ - { - "type": { - "value": "TextObject::String" - }, - "parameters": [ - "AmmoText", - "=", - "\"Ammo: \" + GlobalVariableString(Gun1_ammo)" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "2" - ] - } - ], - "actions": [ - { - "type": { - "value": "TextObject::String" - }, - "parameters": [ - "AmmoText", - "=", - "\"Ammo: \" + GlobalVariableString(Gun2_ammo)" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "3" - ] - } - ], - "actions": [ - { - "type": { - "value": "TextObject::String" - }, - "parameters": [ - "AmmoText", - "=", - "\"Gas: \" + GlobalVariableString(Gun3_ammo)" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "4" - ] - } - ], - "actions": [ - { - "type": { - "value": "TextObject::String" - }, - "parameters": [ - "AmmoText", - "=", - "\"Ammo: \" + GlobalVariableString(Gun4_ammo)" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "5" - ] - } - ], - "actions": [ - { - "type": { - "value": "TextObject::String" - }, - "parameters": [ - "AmmoText", - "=", - "\"Ammo: \" + GlobalVariableString(Gun5_ammo)" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "6" - ] - } - ], - "actions": [ - { - "type": { - "value": "TextObject::String" - }, - "parameters": [ - "AmmoText", - "=", - "\"Energy: \" + GlobalVariableString(mele1_energy)" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Comment", - "color": { - "b": 109, - "g": 230, - "r": 255, - "textB": 0, - "textG": 0, - "textR": 0 - }, - "comment": "bullet" - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::ForEach", - "object": "bullet", - "conditions": [], - "actions": [], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ResetObjectTimer" - }, - "parameters": [ - "bullet", - "\"delete1\"" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "bullet", - "bullet", - "=", - "4" - ] - } - ], - "actions": [ - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "bullet", - "=", - "1" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "bullet", - "bullet", - "=", - "5" - ] - } - ], - "actions": [ - { - "type": { - "value": "ChangeAnimation" - }, - "parameters": [ - "bullet", - "=", - "2" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "bullet", - "bullet", - "=", - "1" - ] - }, - { - "type": { - "value": "ObjectTimer" - }, - "parameters": [ - "bullet", - "\"delete1\"", - "1" - ] - } - ], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "bullet", - "" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "bullet", - "bullet", - "=", - "2" - ] - }, - { - "type": { - "value": "ObjectTimer" - }, - "parameters": [ - "bullet", - "\"delete1\"", - "1" - ] - } - ], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "bullet", - "" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "bullet", - "bullet", - "=", - "4" - ] - }, - { - "type": { - "value": "ObjectTimer" - }, - "parameters": [ - "bullet", - "\"delete1\"", - "1" - ] - } - ], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "bullet", - "" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarObjet" - }, - "parameters": [ - "bullet", - "bullet", - "=", - "5" - ] - }, - { - "type": { - "value": "ObjectTimer" - }, - "parameters": [ - "bullet", - "\"delete1\"", - "1" - ] - } - ], - "actions": [ - { - "type": { - "value": "Delete" - }, - "parameters": [ - "bullet", - "" - ] - } - ] - } - ] - } - ], - "parameters": [] - }, - { - "colorB": 228, - "colorG": 176, - "colorR": 74, - "creationTime": 0, - "disabled": true, - "folded": true, - "name": "Weapon system wheel", - "source": "", - "type": "BuiltinCommonInstructions::Group", - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [], - "actions": [ - { - "type": { - "value": "TextObject::String" - }, - "parameters": [ - "Wheel_info", - "=", - "\"Wheel using: \" + GlobalVariableString(Wheel_stuff.wheel)" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "IsMouseWheelScrollingUp" - }, - "parameters": [ - "" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel", - "!=", - "5" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel", - "+", - "1" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "IsMouseWheelScrollingDown" - }, - "parameters": [ - "" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel", - "!=", - "1" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel", - "-", - "1" - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel", - "=", - "1" - ] - } - ], - "actions": [], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.old wheel", - "=", - "2" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel2", - "=", - "GlobalVariable(Weapon_holding)" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Wheel_stuff.old wheel", - "=", - "1" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "v" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel1", - "=", - "0" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel1", - "=", - "GlobalVariable(Weapon_holding)" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "b" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel1", - "!=", - "0" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - }, - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "using_phone", - "=", - "0" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "GlobalVariable(Wheel_stuff.wheel1)" - ] - } - ] - }, - { - "folded": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "q" - ] - }, - { - "type": { - "value": "VarGlobal" + "value": "GlobalVariableAsBoolean" }, "parameters": [ - "Wheel_stuff.wheel1", - "=", - "GlobalVariable(Weapon_holding)" + "debug.cameraControlType", + "True" ] } ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel1", - "=", - "0" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + "actions": [], + "events": [ { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "h" + "disabled": true, + "folded": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "KeyPressed" + }, + "parameters": [ + "", + "a" + ] + }, + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "1", + "\"Left\"", + "\"Left\"", + "" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "AddForceAL" + }, + "parameters": [ + "player_body", + "player_body.Angle() - 90", + "200", + "" + ] + } ] }, { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel1", - "=", - "GlobalVariable(Weapon_holding)" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel", - "=", - "2" - ] - } - ], - "actions": [], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Or" - }, - "parameters": [], - "subInstructions": [ + "disabled": true, + "folded": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { "type": { - "value": "BuiltinCommonInstructions::And" + "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { - "value": "VarGlobal" + "value": "KeyPressed" }, "parameters": [ - "Wheel_stuff.old wheel", - "=", - "1" + "", + "d" ] }, { "type": { - "value": "VarGlobal" + "value": "Gamepads::C_Axis_pushed" }, "parameters": [ - "Wheel_stuff.wheel1", - "=", - "GlobalVariable(Weapon_holding)" + "", + "1", + "\"Left\"", + "\"Right\"", + "" ] } ] - }, + } + ], + "actions": [ { "type": { - "value": "BuiltinCommonInstructions::And" + "value": "AddForceAL" + }, + "parameters": [ + "player_body", + "player_body.Angle() + 90", + "200", + "" + ] + } + ] + }, + { + "disabled": true, + "folded": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { - "value": "VarGlobal" + "value": "KeyPressed" }, "parameters": [ - "Wheel_stuff.old wheel", - "=", - "3" + "", + "w" ] }, { "type": { - "value": "VarGlobal" + "value": "Gamepads::C_Axis_pushed" }, "parameters": [ - "Wheel_stuff.wheel3", - "=", - "GlobalVariable(Weapon_holding)" + "", + "1", + "\"Left\"", + "\"Up\"", + "" ] } ] } - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Wheel_stuff.old wheel", - "=", - "2" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "v" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel2", - "=", - "0" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel2", - "=", - "GlobalVariable(Weapon_holding)" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "b" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel2", - "!=", - "0" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - }, - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "using_phone", - "=", - "0" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "GlobalVariable(Wheel_stuff.wheel2)" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel2", - "=", - "GlobalVariable(Weapon_holding)" - ] - }, - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "q" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel2", - "=", - "0" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "h" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel2", - "=", - "GlobalVariable(Weapon_holding)" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel", - "=", - "3" - ] - } - ], - "actions": [], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Or" - }, - "parameters": [], - "subInstructions": [ + ], + "actions": [ + { + "type": { + "value": "AddForceAL" + }, + "parameters": [ + "player_body", + "player_body.Angle()", + "200", + "" + ] + } + ] + }, + { + "disabled": true, + "folded": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { "type": { - "value": "BuiltinCommonInstructions::And" + "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { - "value": "VarGlobal" + "value": "KeyPressed" }, "parameters": [ - "Wheel_stuff.old wheel", - "=", - "2" + "", + "s" ] }, { "type": { - "value": "VarGlobal" + "value": "Gamepads::C_Axis_pushed" }, "parameters": [ - "Wheel_stuff.wheel2", - "=", - "GlobalVariable(Weapon_holding)" + "", + "1", + "\"Left\"", + "\"Down\"", + "" ] } ] - }, + } + ], + "actions": [ { "type": { - "value": "BuiltinCommonInstructions::And" + "value": "AddForceAL" + }, + "parameters": [ + "player_body", + "player_body.Angle() + 180", + "200", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "RotateTowardPosition" + }, + "parameters": [ + "player_body", + "player_crosshair.CenterX()", + "player_crosshair.CenterY()", + "0", + "" + ] + } + ] + }, + { + "folded": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { - "value": "VarGlobal" + "value": "KeyPressed" }, "parameters": [ - "Wheel_stuff.old wheel", - "=", - "4" + "", + "a" ] }, { "type": { - "value": "VarGlobal" + "value": "Gamepads::C_Axis_pushed" }, "parameters": [ - "Wheel_stuff.wheel4", - "=", - "GlobalVariable(Weapon_holding)" + "", + "1", + "\"Left\"", + "\"Left\"", + "" ] } ] } - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Wheel_stuff.old wheel", - "=", - "3" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "v" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel3", - "=", - "0" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel3", - "=", - "GlobalVariable(Weapon_holding)" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "b" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel3", - "!=", - "0" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - }, - { - "type": { - "value": "VarScene" - }, - "parameters": [ - "using_phone", - "=", - "0" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "GlobalVariable(Wheel_stuff.wheel3)" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "q" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel3", - "=", - "GlobalVariable(Weapon_holding)" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel3", - "=", - "0" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "h" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel3", - "=", - "GlobalVariable(Weapon_holding)" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - } - ] - } - ] - }, - { - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel", - "=", - "4" - ] - } - ], - "actions": [], - "events": [ - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateLeftKey" + }, + "parameters": [ + "player_body", + "TopDownMovement" + ] + } + ] + }, { - "type": { - "value": "BuiltinCommonInstructions::Or" - }, - "parameters": [], - "subInstructions": [ + "folded": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ { "type": { - "value": "BuiltinCommonInstructions::And" + "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { - "value": "VarGlobal" + "value": "KeyPressed" }, "parameters": [ - "Wheel_stuff.old wheel", - "=", - "3" + "", + "d" ] }, { "type": { - "value": "VarGlobal" + "value": "Gamepads::C_Axis_pushed" }, "parameters": [ - "Wheel_stuff.wheel3", - "=", - "GlobalVariable(Weapon_holding)" + "", + "1", + "\"Left\"", + "\"Right\"", + "" ] } ] - }, + } + ], + "actions": [ { "type": { - "value": "BuiltinCommonInstructions::And" + "value": "TopDownMovementBehavior::SimulateRightKey" + }, + "parameters": [ + "player_body", + "TopDownMovement" + ] + } + ] + }, + { + "folded": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" }, "parameters": [], "subInstructions": [ { "type": { - "value": "VarGlobal" + "value": "KeyPressed" }, "parameters": [ - "Wheel_stuff.old wheel", - "=", - "5" + "", + "w" ] }, { "type": { - "value": "VarGlobal" + "value": "Gamepads::C_Axis_pushed" }, "parameters": [ - "Wheel_stuff.wheel5", - "=", - "GlobalVariable(Weapon_holding)" + "", + "1", + "\"Left\"", + "\"Up\"", + "" ] } ] } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateUpKey" + }, + "parameters": [ + "player_body", + "TopDownMovement" + ] + } ] - } - ], - "actions": [ + }, { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" + "folded": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "KeyPressed" + }, + "parameters": [ + "", + "s" + ] + }, + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "1", + "\"Left\"", + "\"Down\"", + "" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateDownKey" + }, + "parameters": [ + "player_body", + "TopDownMovement" + ] + } ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ + }, { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Wheel_stuff.old wheel", - "=", - "5" - ] + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [] } ] }, { - "folded": true, "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "v" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel4", - "=", - "0" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel4", - "=", - "GlobalVariable(Weapon_holding)" - ] - } - ] + "conditions": [], + "actions": [] }, { - "folded": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "b" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel4", - "!=", - "0" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - }, - { - "type": { - "value": "VarScene" + "value": "GlobalVariableAsBoolean" }, "parameters": [ - "using_phone", - "=", - "0" + "debug.cameraControlType", + "False" ] } ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "GlobalVariable(Wheel_stuff.wheel4)" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ + "actions": [], + "events": [ { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "q" + "folded": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "KeyPressed" + }, + "parameters": [ + "", + "a" + ] + }, + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "1", + "\"Left\"", + "\"Left\"", + "" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateLeftKey" + }, + "parameters": [ + "player_body", + "TopDownMovement" + ] + } ] }, { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel4", - "=", - "GlobalVariable(Weapon_holding)" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel4", - "=", - "0" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "h" + "folded": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "KeyPressed" + }, + "parameters": [ + "", + "d" + ] + }, + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "1", + "\"Left\"", + "\"Right\"", + "" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateRightKey" + }, + "parameters": [ + "player_body", + "TopDownMovement" + ] + } ] }, { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel4", - "=", - "GlobalVariable(Weapon_holding)" + "folded": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "KeyPressed" + }, + "parameters": [ + "", + "w" + ] + }, + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "1", + "\"Left\"", + "\"Up\"", + "" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateUpKey" + }, + "parameters": [ + "player_body", + "TopDownMovement" + ] + } ] - } - ], - "actions": [ + }, { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" + "folded": true, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "KeyPressed" + }, + "parameters": [ + "", + "s" + ] + }, + { + "type": { + "value": "Gamepads::C_Axis_pushed" + }, + "parameters": [ + "", + "1", + "\"Left\"", + "\"Down\"", + "" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateDownKey" + }, + "parameters": [ + "player_body", + "TopDownMovement" + ] + } ] } ] @@ -8424,253 +3187,156 @@ "conditions": [ { "type": { - "value": "VarGlobal" + "value": "Gamepads::C_Axis_pushed" }, "parameters": [ - "Wheel_stuff.wheel", - "=", - "5" + "", + "1", + "\"Left\"", + "\"Right\"", + "" ] } ], - "actions": [], - "events": [ + "actions": [ { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.old wheel", - "=", - "4" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel4", - "=", - "GlobalVariable(Weapon_holding)" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Weapon_holding", - "=", - "0" - ] - } + "type": { + "value": "DebuggerTools::ConsoleLog" + }, + "parameters": [ + "\"lol\"", + "\"info\"", + "" ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Wheel_stuff.old wheel", - "=", - "5" - ] - } + } + ] + }, + { + "folded": true, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Reveert to values set in the body ovject variable \"Body.Movement.TopDownMovement.*****\"" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SceneVariableAsBoolean" + }, + "parameters": [ + "GodMode.active", + "False" ] - }, + } + ], + "actions": [], + "events": [ { - "folded": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "v" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel5", - "=", - "0" - ] - }, - { - "type": { - "value": "VarScene" + "value": "VarObjetTxt" }, "parameters": [ - "using_phone", + "player_body", + "Animation", "=", - "0" + "\"walk\"" ] } ], "actions": [ { "type": { - "value": "ModVarGlobal" + "value": "TopDownMovementBehavior::MaxSpeed" }, "parameters": [ - "Wheel_stuff.wheel5", + "player_body", + "TopDownMovement", "=", - "GlobalVariable(Weapon_holding)" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "b" - ] - }, - { - "type": { - "value": "VarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel5", - "!=", - "0" + "player_body.Movement.TopDownMovement.walk.maxSpeed" ] }, { "type": { - "value": "VarGlobal" + "value": "TopDownMovementBehavior::Deceleration" }, "parameters": [ - "Weapon_holding", + "player_body", + "TopDownMovement", "=", - "0" + "player_body.Movement.TopDownMovement.walk.Deceleration" ] }, { "type": { - "value": "VarScene" - }, - "parameters": [ - "using_phone", - "=", - "0" - ] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" + "value": "TopDownMovementBehavior::Acceleration" }, "parameters": [ - "Weapon_holding", + "player_body", + "TopDownMovement", "=", - "GlobalVariable(Wheel_stuff.wheel5)" + "player_body.Movement.TopDownMovement.walk.Acceleration" ] } ] }, { - "folded": true, "type": "BuiltinCommonInstructions::Standard", "conditions": [ { "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "q" - ] - }, - { - "type": { - "value": "VarGlobal" + "value": "VarObjetTxt" }, "parameters": [ - "Wheel_stuff.wheel5", + "player_body", + "Animation", "=", - "GlobalVariable(Weapon_holding)" + "\"run\"" ] } ], "actions": [ { "type": { - "value": "ModVarGlobal" + "value": "TopDownMovementBehavior::MaxSpeed" }, "parameters": [ - "Wheel_stuff.wheel5", + "player_body", + "TopDownMovement", "=", - "0" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "h" + "player_body.Movement.TopDownMovement.run.maxSpeed" ] }, { "type": { - "value": "VarGlobal" + "value": "TopDownMovementBehavior::Deceleration" }, "parameters": [ - "Wheel_stuff.wheel5", + "player_body", + "TopDownMovement", "=", - "GlobalVariable(Weapon_holding)" + "player_body.Movement.TopDownMovement.run.Deceleration" ] - } - ], - "actions": [ + }, { "type": { - "value": "ModVarGlobal" + "value": "TopDownMovementBehavior::Acceleration" }, "parameters": [ - "Weapon_holding", + "player_body", + "TopDownMovement", "=", - "0" + "player_body.Movement.TopDownMovement.run.Acceleration" ] } ] @@ -8680,167 +3346,8 @@ { "folded": true, "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "Num1" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel", - "=", - "1" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "Num2" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel", - "=", - "2" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "Num3" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel", - "=", - "3" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "Num4" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel", - "=", - "4" - ] - } - ] - }, - { - "folded": true, - "type": "BuiltinCommonInstructions::Standard", - "conditions": [ - { - "type": { - "value": "KeyPressed" - }, - "parameters": [ - "", - "Num5" - ] - }, - { - "type": { - "value": "BuiltinCommonInstructions::Once" - }, - "parameters": [] - } - ], - "actions": [ - { - "type": { - "value": "ModVarGlobal" - }, - "parameters": [ - "Wheel_stuff.wheel", - "=", - "5" - ] - } - ] + "conditions": [], + "actions": [] } ], "parameters": [] @@ -8857,4 +3364,4 @@ "parameters": [] } ] -} \ No newline at end of file +}