From 88b252ef5b47073d7741761a24ae13fbe206757c Mon Sep 17 00:00:00 2001 From: HelperWesley <72082749+HelperWesley@users.noreply.github.com> Date: Thu, 10 Aug 2023 22:22:46 -0230 Subject: [PATCH 1/2] Wave defense shooter example This beginner-friendly example covers player movement, firing a bullet, enemy logic, leveling up character stats, mobile controls, and spawning enemies with a timer. --- examples/wave-defense-shooter/README.md | 3 + .../wave-defense-shooter/android-icon-144.png | Bin 0 -> 13157 bytes .../wave-defense-shooter/android-icon-192.png | Bin 0 -> 16928 bytes .../wave-defense-shooter/android-icon-36.png | Bin 0 -> 2652 bytes .../wave-defense-shooter/android-icon-48.png | Bin 0 -> 3895 bytes .../wave-defense-shooter/android-icon-72.png | Bin 0 -> 6267 bytes .../wave-defense-shooter/android-icon-96.png | Bin 0 -> 8367 bytes ...android-windowSplashScreenAnimatedIcon.png | Bin 0 -> 42967 bytes .../8BitOperatorPlus8Regular_Edited.fnt | 95 + .../8BitOperatorPlus8Regular_Edited3.png | Bin 0 -> 5299 bytes .../wave-defense-shooter/assets/Bullet.png | Bin 0 -> 133 bytes .../assets/Collision Masks.png | Bin 0 -> 99 bytes .../wave-defense-shooter/assets/EXPPoint2.png | Bin 0 -> 89 bytes .../assets/EnemyBullet1.png | Bin 0 -> 227 bytes .../assets/EnemyBullet2.png | Bin 0 -> 231 bytes .../assets/EnemyHealthBar2.png | Bin 0 -> 93 bytes .../assets/Enemy_Spawn_Location.png | Bin 0 -> 99 bytes .../assets/Flat Bar Red Fill Bar.png | Bin 0 -> 157 bytes .../assets/Flat Bar White Border.png | Bin 0 -> 204 bytes .../wave-defense-shooter/assets/Ghost1.png | Bin 0 -> 337 bytes .../wave-defense-shooter/assets/Ghost2.png | Bin 0 -> 341 bytes .../wave-defense-shooter/assets/Ghost3.png | Bin 0 -> 339 bytes .../wave-defense-shooter/assets/Ghost4.png | Bin 0 -> 341 bytes .../assets/Ghost_Hurt1.png | Bin 0 -> 178 bytes .../assets/Ghost_Hurt2.png | Bin 0 -> 337 bytes .../assets/Ghost_Hurt3.png | Bin 0 -> 336 bytes .../assets/Ghost_Hurt4.png | Bin 0 -> 338 bytes examples/wave-defense-shooter/assets/Gun.wav | Bin 0 -> 19648 bytes examples/wave-defense-shooter/assets/Gun1.png | Bin 0 -> 322 bytes .../wave-defense-shooter/assets/ImpFly1.png | Bin 0 -> 518 bytes .../wave-defense-shooter/assets/ImpFly2.png | Bin 0 -> 497 bytes .../wave-defense-shooter/assets/ImpFly3.png | Bin 0 -> 528 bytes .../wave-defense-shooter/assets/ImpFly5.png | Bin 0 -> 497 bytes .../wave-defense-shooter/assets/ImpFly6.png | Bin 0 -> 528 bytes .../wave-defense-shooter/assets/ImpHurt.png | Bin 0 -> 225 bytes .../assets/Kenney Mini Square.ttf | Bin 0 -> 26156 bytes .../assets/Line light joystick border.png | Bin 0 -> 2283 bytes .../assets/Line light joystick thumb.png | Bin 0 -> 1600 bytes .../wave-defense-shooter/assets/Player1.png | Bin 0 -> 433 bytes .../wave-defense-shooter/assets/Player2.png | Bin 0 -> 437 bytes .../wave-defense-shooter/assets/Player22.png | Bin 0 -> 437 bytes .../wave-defense-shooter/assets/Player3.png | Bin 0 -> 444 bytes .../wave-defense-shooter/assets/Player4.png | Bin 0 -> 437 bytes .../wave-defense-shooter/assets/Spider1.png | Bin 0 -> 327 bytes .../wave-defense-shooter/assets/Spider2.png | Bin 0 -> 354 bytes .../wave-defense-shooter/assets/Spider3.png | Bin 0 -> 331 bytes .../wave-defense-shooter/assets/Spider4.png | Bin 0 -> 372 bytes .../assets/SpiderCharging1.png | Bin 0 -> 311 bytes .../assets/SpiderCharging2.png | Bin 0 -> 318 bytes .../assets/SpiderDropping.png | Bin 0 -> 170 bytes .../assets/SpiderHurt.png | Bin 0 -> 189 bytes .../assets/SpiderShadow.png | Bin 0 -> 121 bytes .../assets/Square White Slider Border.png | Bin 0 -> 210 bytes .../assets/Square White Slider Fill Bar.png | Bin 0 -> 132 bytes .../assets/Square White Slider Thumb.png | Bin 0 -> 107 bytes .../wave-defense-shooter/assets/TheRoom2.png | Bin 0 -> 23537 bytes ... Button With White Blue Border_Hovered.png | Bin 0 -> 299 bytes ...ent Button With White Blue Border_Idle.png | Bin 0 -> 295 bytes ... Button With White Blue Border_Pressed.png | Bin 0 -> 274 bytes .../wave-defense-shooter/assets/Vingette.png | Bin 0 -> 14640 bytes .../wave-defense-shooter/desktop-icon-512.png | Bin 0 -> 60304 bytes .../wave-defense-shooter/ios-icon-100.png | Bin 0 -> 9233 bytes .../wave-defense-shooter/ios-icon-1024.png | Bin 0 -> 148075 bytes .../wave-defense-shooter/ios-icon-114.png | Bin 0 -> 10739 bytes .../wave-defense-shooter/ios-icon-120.png | Bin 0 -> 11366 bytes .../wave-defense-shooter/ios-icon-144.png | Bin 0 -> 13157 bytes .../wave-defense-shooter/ios-icon-152.png | Bin 0 -> 14696 bytes .../wave-defense-shooter/ios-icon-167.png | Bin 0 -> 16303 bytes .../wave-defense-shooter/ios-icon-180.png | Bin 0 -> 17948 bytes examples/wave-defense-shooter/ios-icon-20.png | Bin 0 -> 1101 bytes examples/wave-defense-shooter/ios-icon-29.png | Bin 0 -> 1921 bytes examples/wave-defense-shooter/ios-icon-40.png | Bin 0 -> 3070 bytes examples/wave-defense-shooter/ios-icon-50.png | Bin 0 -> 4172 bytes examples/wave-defense-shooter/ios-icon-57.png | Bin 0 -> 4856 bytes examples/wave-defense-shooter/ios-icon-58.png | Bin 0 -> 5006 bytes examples/wave-defense-shooter/ios-icon-60.png | Bin 0 -> 5237 bytes examples/wave-defense-shooter/ios-icon-72.png | Bin 0 -> 6267 bytes examples/wave-defense-shooter/ios-icon-76.png | Bin 0 -> 6806 bytes examples/wave-defense-shooter/ios-icon-80.png | Bin 0 -> 7252 bytes examples/wave-defense-shooter/ios-icon-87.png | Bin 0 -> 7967 bytes examples/wave-defense-shooter/thumbnail.png | Bin 0 -> 241920 bytes .../wave-defense-shooter.json | 44368 ++++++++++++++++ 82 files changed, 44466 insertions(+) create mode 100644 examples/wave-defense-shooter/README.md create mode 100644 examples/wave-defense-shooter/android-icon-144.png create mode 100644 examples/wave-defense-shooter/android-icon-192.png create mode 100644 examples/wave-defense-shooter/android-icon-36.png create mode 100644 examples/wave-defense-shooter/android-icon-48.png create mode 100644 examples/wave-defense-shooter/android-icon-72.png create mode 100644 examples/wave-defense-shooter/android-icon-96.png create mode 100644 examples/wave-defense-shooter/android-windowSplashScreenAnimatedIcon.png create mode 100644 examples/wave-defense-shooter/assets/8BitOperatorPlus8Regular_Edited.fnt create mode 100644 examples/wave-defense-shooter/assets/8BitOperatorPlus8Regular_Edited3.png create mode 100644 examples/wave-defense-shooter/assets/Bullet.png create mode 100644 examples/wave-defense-shooter/assets/Collision Masks.png create mode 100644 examples/wave-defense-shooter/assets/EXPPoint2.png create mode 100644 examples/wave-defense-shooter/assets/EnemyBullet1.png create mode 100644 examples/wave-defense-shooter/assets/EnemyBullet2.png create mode 100644 examples/wave-defense-shooter/assets/EnemyHealthBar2.png create mode 100644 examples/wave-defense-shooter/assets/Enemy_Spawn_Location.png create mode 100644 examples/wave-defense-shooter/assets/Flat Bar Red Fill Bar.png create mode 100644 examples/wave-defense-shooter/assets/Flat Bar White Border.png create mode 100644 examples/wave-defense-shooter/assets/Ghost1.png create mode 100644 examples/wave-defense-shooter/assets/Ghost2.png create mode 100644 examples/wave-defense-shooter/assets/Ghost3.png create mode 100644 examples/wave-defense-shooter/assets/Ghost4.png create mode 100644 examples/wave-defense-shooter/assets/Ghost_Hurt1.png create mode 100644 examples/wave-defense-shooter/assets/Ghost_Hurt2.png create mode 100644 examples/wave-defense-shooter/assets/Ghost_Hurt3.png create mode 100644 examples/wave-defense-shooter/assets/Ghost_Hurt4.png create mode 100644 examples/wave-defense-shooter/assets/Gun.wav create mode 100644 examples/wave-defense-shooter/assets/Gun1.png create mode 100644 examples/wave-defense-shooter/assets/ImpFly1.png create mode 100644 examples/wave-defense-shooter/assets/ImpFly2.png create mode 100644 examples/wave-defense-shooter/assets/ImpFly3.png create mode 100644 examples/wave-defense-shooter/assets/ImpFly5.png create mode 100644 examples/wave-defense-shooter/assets/ImpFly6.png create mode 100644 examples/wave-defense-shooter/assets/ImpHurt.png create mode 100644 examples/wave-defense-shooter/assets/Kenney Mini Square.ttf create mode 100644 examples/wave-defense-shooter/assets/Line light joystick border.png create mode 100644 examples/wave-defense-shooter/assets/Line light joystick thumb.png create mode 100644 examples/wave-defense-shooter/assets/Player1.png create mode 100644 examples/wave-defense-shooter/assets/Player2.png create mode 100644 examples/wave-defense-shooter/assets/Player22.png create mode 100644 examples/wave-defense-shooter/assets/Player3.png create mode 100644 examples/wave-defense-shooter/assets/Player4.png create mode 100644 examples/wave-defense-shooter/assets/Spider1.png create mode 100644 examples/wave-defense-shooter/assets/Spider2.png create mode 100644 examples/wave-defense-shooter/assets/Spider3.png create mode 100644 examples/wave-defense-shooter/assets/Spider4.png create mode 100644 examples/wave-defense-shooter/assets/SpiderCharging1.png create mode 100644 examples/wave-defense-shooter/assets/SpiderCharging2.png create mode 100644 examples/wave-defense-shooter/assets/SpiderDropping.png create mode 100644 examples/wave-defense-shooter/assets/SpiderHurt.png create mode 100644 examples/wave-defense-shooter/assets/SpiderShadow.png create mode 100644 examples/wave-defense-shooter/assets/Square White Slider Border.png create mode 100644 examples/wave-defense-shooter/assets/Square White Slider Fill Bar.png create mode 100644 examples/wave-defense-shooter/assets/Square White Slider Thumb.png create mode 100644 examples/wave-defense-shooter/assets/TheRoom2.png create mode 100644 examples/wave-defense-shooter/assets/Transparent Button With White Blue Border_Hovered.png create mode 100644 examples/wave-defense-shooter/assets/Transparent Button With White Blue Border_Idle.png create mode 100644 examples/wave-defense-shooter/assets/Transparent Button With White Blue Border_Pressed.png create mode 100644 examples/wave-defense-shooter/assets/Vingette.png create mode 100644 examples/wave-defense-shooter/desktop-icon-512.png create mode 100644 examples/wave-defense-shooter/ios-icon-100.png create mode 100644 examples/wave-defense-shooter/ios-icon-1024.png create mode 100644 examples/wave-defense-shooter/ios-icon-114.png create mode 100644 examples/wave-defense-shooter/ios-icon-120.png create mode 100644 examples/wave-defense-shooter/ios-icon-144.png create mode 100644 examples/wave-defense-shooter/ios-icon-152.png create mode 100644 examples/wave-defense-shooter/ios-icon-167.png create mode 100644 examples/wave-defense-shooter/ios-icon-180.png create mode 100644 examples/wave-defense-shooter/ios-icon-20.png create mode 100644 examples/wave-defense-shooter/ios-icon-29.png create mode 100644 examples/wave-defense-shooter/ios-icon-40.png create mode 100644 examples/wave-defense-shooter/ios-icon-50.png create mode 100644 examples/wave-defense-shooter/ios-icon-57.png create mode 100644 examples/wave-defense-shooter/ios-icon-58.png create mode 100644 examples/wave-defense-shooter/ios-icon-60.png create mode 100644 examples/wave-defense-shooter/ios-icon-72.png create mode 100644 examples/wave-defense-shooter/ios-icon-76.png create mode 100644 examples/wave-defense-shooter/ios-icon-80.png create mode 100644 examples/wave-defense-shooter/ios-icon-87.png create mode 100644 examples/wave-defense-shooter/thumbnail.png create mode 100644 examples/wave-defense-shooter/wave-defense-shooter.json diff --git a/examples/wave-defense-shooter/README.md b/examples/wave-defense-shooter/README.md new file mode 100644 index 000000000..c59c11b3d --- /dev/null +++ b/examples/wave-defense-shooter/README.md @@ -0,0 +1,3 @@ +Create a wave defense game without coding, using GDevelop. This beginner-friendly example covers player movement, firing a bullet, enemy logic, leveling up character stats, mobile controls, and spawning the enemies. + +Example made along with this tutorial series for GDevelop: https://www.youtube.com/watch?v=mckuSpr8vio&list=PL3YlZTdKiS8_R32-DlXGi7YGZNfG7B8Vf&ab_channel=GDevelop \ No newline at end of file diff --git a/examples/wave-defense-shooter/android-icon-144.png b/examples/wave-defense-shooter/android-icon-144.png new file mode 100644 index 0000000000000000000000000000000000000000..a13051a51a5e09ca471c24efda31b4b3fb122721 GIT binary patch literal 13157 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 S;RZbUfx*+&&t;ucLK6TUU-#hv literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/android-icon-36.png b/examples/wave-defense-shooter/android-icon-36.png new file mode 100644 index 0000000000000000000000000000000000000000..9233620215e2debff6101567e33c8d6ec0671482 GIT binary patch literal 2652 zcmV-i3ZwOjP) zcjvp`clSGUiIV`Mua|b-{|%GCFhGETfdQgIRGCp>)R;$wfdCWBi3+jAs4@Wt5+K09 z4CDYNYFtTxA&Dwa7$6J;GGTyZm~jI$qf}fVKc6K(pCP}Hp)jANkk8S#<4Yh>BN-s7 zj4EMZ!px{~&5SC~zySmpU{sk5JTMFl#;+VFml-BMpP{gjrBo{5a~;u{iqY2?r#oH8 zTbB=!cT+UAZ9pc#!7wnRNbBn%K01{l{E;O0kJADN_kWt?@5YgnC* z(VdR7Diyi8O2P{S@d82I!W_P0G|60g6=gTX^uSqQ z6yI!il2}~>H4;^3R2d+yb3yndFf*1LA3jHL@;sfl^>Hb)KroS{uB(T#8^Yw^luI-Y zAH$8+6H2!dZCyn;946{5GCg#WXfVJ`W}N2s9>fwet`T5>ah+>s+{joW>XJ;xGeO#wdFpk}xxTv)Ks{ z2;nm`YQz%bI@kDkiDVPL@4t7ELaEHiOr9rSdWV_0d3=#bgh(VpCX>PU{PWMVd-rbE zty@QLZ!g(wmRxp%--gR4h$b3v0xqXAC2sHOV(ZQ}4jwwf_B-$5#TQ?sv$K-}2M(}r z-#&aBH*RFtu3h+gdV1*Z?`J-Dm2#we3Cu9SbwfnsNuGJ+KEC~@ zU%~gs-~KK~hG$s4dNsb@-d<|Xo;{0iW@d&vw`?X-$nfUTbIfKZs86@DoB=Y!Cy6RE zT(QJhVrDFtNH%fko%c9cU*z6Lzr=>s?Y#WPVHOt`85kHKJ3YzQ9@@pK<}}5@BXo3h zFg7;EpFDgI`=5T8J%8~6x$Fe>4J{yXjTs&wD$GDsxkimqWh{~KB~mS1xZKao^dvJ^ zr}*N%TUp;+$C{2dE{{)j-BUAl?Zbdqm=`Ew+^0-FO_nuddj z?C2o^<`;1t5ezuAB_bRe9_Le$a9KtY z%MG7D#o+Px>Dc@r3z<=Vb$NoOo}H}dU0{A{h?kCB#P{;Ke`5EeTX@7KNm~J22j3lc z-%GZAnjanc9*e~VLg5(8nHe{8`H&=P1Q^EH;8~){R)Wza!DtfNdhspHPvb@tC=g)l zKYxdz<0ttWx5R=faaIM-fj1L_q9+;(^d7r<2>TV8v z{VUW*LmazjH<#Nx=t(B&a$WYexAElfY~iuK&CKTV{Ny`7;0Lc9A`(jC1Y8=LJ8<0~ zhJhJX5>;jx5a`?f;C=y;5KGMSIMe?okyJZwte(LWukh>_w(!Gm{W+V~cG8qevg`H@ z{Qa}fL3=0Zjhk2u26@+m5rd{!4DW+0oV$=G6mP(h!|c>JS56;eW_p4^z#&qX06E;u zMFKO-^N@s3j@bUt;~ahaZLW@-z`O!aKJ*z}*JZhHJ@Y8vj6_Jz&hU-;C?`BPYVdLy z`VYPb65&J>;Y1T&xkNrYLhkA?Q*XXTFdU(|Yb`CSdq^}iQ4`p__4E7ji3(w6_!bKV zE}!hDI5SPEuAY@mVQyc)8pm<)xq$$Z_{V3y&RksrHyUMUI>lY#5TP@d_{G1yhF4xh zP5_@AhhQ{GEZspg)rOhKj9y~+%rOe{IT}}X0!Codwg>i$3IPTJB;kfabgbV@ePc6| zQzN{8;sgHd_xB=+La~T|zx~&j`JdB+OtrM}`qd2o@@_vTM@BjSvv(N1Fv`T~H&~p{ zA~^)YF(l!0+z{cqMk2{p=B6&vwsr$`sYWCb=-c+derhC;zzj)94$(xCa4gQ$=pbX` zqjWT<`S(|U&6of31>QY1z>1X{>6mv|l_`;*80FaX7^DC33eVir$`ha8!oyC*Mj+s@x3o=6jNTt*MQ#uF)z@Bh_P+`VND+ctOc#NO?^^y<%8APkEI zW=7AG&yIn4c*QKK70onvu0sMzxF8U>Fr&f%!%HCM++7#lc4v5@1AJ-0fx_&s1P**j3r`;BzZD{f{8pIBm; z8L_$~@wybg%+v_^g;|V`77Rs5H+N8FVE7F448!mVA+f~xkoZ6S5g6jSluJhd0000< KMNUMnLSTY(1?(yS literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/android-icon-48.png b/examples/wave-defense-shooter/android-icon-48.png new file mode 100644 index 0000000000000000000000000000000000000000..71433a7171d62321a593e18b3ddc8adff2d09e0c GIT binary patch literal 3895 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 FV1m3OOjG~> literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/android-icon-72.png b/examples/wave-defense-shooter/android-icon-72.png new file mode 100644 index 0000000000000000000000000000000000000000..329dc3f25800a947a3cb5c18b60613bc33244082 GIT binary patch literal 6267 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 literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/android-icon-96.png b/examples/wave-defense-shooter/android-icon-96.png new file mode 100644 index 0000000000000000000000000000000000000000..a5f57dca0818fb72c2ea5d8be1a7379bd305bcbd GIT binary patch literal 8367 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 L>}l?)^I!c95QFdq literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/8BitOperatorPlus8Regular_Edited.fnt b/examples/wave-defense-shooter/assets/8BitOperatorPlus8Regular_Edited.fnt new file mode 100644 index 000000000..def784a82 --- /dev/null +++ b/examples/wave-defense-shooter/assets/8BitOperatorPlus8Regular_Edited.fnt @@ -0,0 +1,95 @@ +info face="8-bitOperatorPlus8-Regular" size=23 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=10,10,10,10 spacing=5,5 +common lineHeight=23 base=14 scaleW=392 scaleH=387 pages=1 packed=0 +page id=0 file="8BitOperatorPlus8Regular_Edited.png" +chars count=91 +char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15 +char id=33 x=364 y=111 width=26 height=38 xoffset=-10 yoffset=-11.98 xadvance=6 page=0 chnl=15 +char id=34 x=288 y=152 width=34 height=30 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=35 x=52 y=0 width=36 height=36 xoffset=-10 yoffset=-9.98 xadvance=16 page=0 chnl=15 +char id=36 x=210 y=86 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=37 x=0 y=339 width=36 height=36 xoffset=-10 yoffset=-9.98 xadvance=16 page=0 chnl=15 +char id=38 x=210 y=129 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=39 x=364 y=76 width=28 height=30 xoffset=-10 yoffset=-11.98 xadvance=8 page=0 chnl=15 +char id=40 x=327 y=203 width=30 height=38 xoffset=-10 yoffset=-11.98 xadvance=10 page=0 chnl=15 +char id=41 x=327 y=246 width=30 height=38 xoffset=-10 yoffset=-11.98 xadvance=10 page=0 chnl=15 +char id=42 x=0 y=210 width=38 height=34 xoffset=-10 yoffset=-9.98 xadvance=18 page=0 chnl=15 +char id=43 x=288 y=78 width=34 height=34 xoffset=-10 yoffset=-9.98 xadvance=14 page=0 chnl=15 +char id=44 x=364 y=41 width=28 height=30 xoffset=-10 yoffset=-1.99 xadvance=8 page=0 chnl=15 +char id=45 x=327 y=0 width=32 height=26 xoffset=-10 yoffset=-5.99 xadvance=12 page=0 chnl=15 +char id=46 x=364 y=236 width=26 height=26 xoffset=-10 yoffset=0 xadvance=6 page=0 chnl=15 +char id=47 x=288 y=222 width=32 height=40 xoffset=-10 yoffset=-11.98 xadvance=12 page=0 chnl=15 +char id=48 x=52 y=86 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=49 x=327 y=31 width=30 height=38 xoffset=-10 yoffset=-11.98 xadvance=10 page=0 chnl=15 +char id=50 x=52 y=129 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=51 x=52 y=172 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=52 x=52 y=215 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=53 x=52 y=258 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=54 x=52 y=301 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=55 x=52 y=344 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=56 x=93 y=0 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=57 x=93 y=43 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=58 x=364 y=197 width=26 height=34 xoffset=-10 yoffset=-7.98 xadvance=6 page=0 chnl=15 +char id=59 x=364 y=0 width=28 height=36 xoffset=-10 yoffset=-7.98 xadvance=8 page=0 chnl=15 +char id=61 x=288 y=117 width=34 height=30 xoffset=-10 yoffset=-7.98 xadvance=14 page=0 chnl=15 +char id=63 x=210 y=43 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=64 x=0 y=294 width=36 height=40 xoffset=-10 yoffset=-11.98 xadvance=16 page=0 chnl=15 +char id=65 x=93 y=258 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=66 x=93 y=301 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=67 x=93 y=344 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=68 x=132 y=0 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=69 x=132 y=43 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=70 x=132 y=86 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=71 x=132 y=129 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=72 x=132 y=172 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=73 x=327 y=160 width=30 height=38 xoffset=-10 yoffset=-11.98 xadvance=10 page=0 chnl=15 +char id=74 x=132 y=215 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=75 x=132 y=258 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=76 x=132 y=301 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=77 x=0 y=46 width=38 height=38 xoffset=-10 yoffset=-11.98 xadvance=18 page=0 chnl=15 +char id=78 x=132 y=344 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=79 x=171 y=0 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=80 x=171 y=43 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=81 x=0 y=249 width=36 height=40 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=82 x=171 y=86 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=83 x=171 y=129 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=84 x=171 y=172 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=85 x=171 y=215 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=86 x=171 y=258 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=87 x=0 y=89 width=38 height=38 xoffset=-10 yoffset=-11.98 xadvance=18 page=0 chnl=15 +char id=88 x=171 y=301 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=89 x=171 y=344 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=90 x=210 y=0 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=91 x=327 y=289 width=30 height=38 xoffset=-10 yoffset=-11.98 xadvance=10 page=0 chnl=15 +char id=93 x=327 y=332 width=30 height=38 xoffset=-10 yoffset=-11.98 xadvance=10 page=0 chnl=15 +char id=94 x=288 y=187 width=34 height=30 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=95 x=288 y=353 width=32 height=26 xoffset=-12 yoffset=2 xadvance=8 page=0 chnl=15 +char id=97 x=249 y=41 width=34 height=34 xoffset=-10 yoffset=-7.98 xadvance=14 page=0 chnl=15 +char id=98 x=93 y=86 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=99 x=249 y=80 width=34 height=34 xoffset=-10 yoffset=-7.98 xadvance=14 page=0 chnl=15 +char id=100 x=93 y=129 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=101 x=249 y=119 width=34 height=34 xoffset=-10 yoffset=-7.98 xadvance=14 page=0 chnl=15 +char id=102 x=288 y=267 width=32 height=38 xoffset=-10 yoffset=-11.98 xadvance=12 page=0 chnl=15 +char id=103 x=210 y=258 width=34 height=36 xoffset=-10 yoffset=-7.98 xadvance=14 page=0 chnl=15 +char id=104 x=93 y=172 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=105 x=327 y=74 width=30 height=38 xoffset=-10 yoffset=-11.98 xadvance=10 page=0 chnl=15 +char id=106 x=52 y=41 width=34 height=40 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=107 x=93 y=215 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=108 x=327 y=117 width=30 height=38 xoffset=-10 yoffset=-11.98 xadvance=10 page=0 chnl=15 +char id=109 x=0 y=132 width=38 height=34 xoffset=-10 yoffset=-7.98 xadvance=18 page=0 chnl=15 +char id=110 x=249 y=158 width=34 height=34 xoffset=-10 yoffset=-7.98 xadvance=14 page=0 chnl=15 +char id=111 x=249 y=197 width=34 height=34 xoffset=-10 yoffset=-7.98 xadvance=14 page=0 chnl=15 +char id=112 x=210 y=299 width=34 height=36 xoffset=-10 yoffset=-7.98 xadvance=14 page=0 chnl=15 +char id=113 x=210 y=340 width=34 height=36 xoffset=-10 yoffset=-7.98 xadvance=14 page=0 chnl=15 +char id=114 x=249 y=236 width=34 height=34 xoffset=-10 yoffset=-7.98 xadvance=14 page=0 chnl=15 +char id=115 x=249 y=275 width=34 height=34 xoffset=-10 yoffset=-7.98 xadvance=14 page=0 chnl=15 +char id=116 x=288 y=310 width=32 height=38 xoffset=-10 yoffset=-11.98 xadvance=12 page=0 chnl=15 +char id=117 x=249 y=314 width=34 height=34 xoffset=-10 yoffset=-7.98 xadvance=14 page=0 chnl=15 +char id=118 x=249 y=353 width=34 height=34 xoffset=-10 yoffset=-7.98 xadvance=14 page=0 chnl=15 +char id=119 x=0 y=171 width=38 height=34 xoffset=-10 yoffset=-7.98 xadvance=18 page=0 chnl=15 +char id=120 x=288 y=0 width=34 height=34 xoffset=-10 yoffset=-7.98 xadvance=14 page=0 chnl=15 +char id=121 x=249 y=0 width=34 height=36 xoffset=-10 yoffset=-7.98 xadvance=14 page=0 chnl=15 +char id=122 x=288 y=39 width=34 height=34 xoffset=-10 yoffset=-7.98 xadvance=14 page=0 chnl=15 +char id=123 x=210 y=172 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=124 x=364 y=154 width=26 height=38 xoffset=-10 yoffset=-11.98 xadvance=6 page=0 chnl=15 +char id=125 x=210 y=215 width=34 height=38 xoffset=-10 yoffset=-11.98 xadvance=14 page=0 chnl=15 +char id=8470 x=0 y=0 width=47 height=41 xoffset=-13 yoffset=-8 xadvance=22 page=0 chnl=15 diff --git a/examples/wave-defense-shooter/assets/8BitOperatorPlus8Regular_Edited3.png b/examples/wave-defense-shooter/assets/8BitOperatorPlus8Regular_Edited3.png new file mode 100644 index 0000000000000000000000000000000000000000..5b99c613b72ca78157679e492895c845c312c355 GIT binary patch literal 5299 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 literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/Collision Masks.png b/examples/wave-defense-shooter/assets/Collision Masks.png new file mode 100644 index 0000000000000000000000000000000000000000..2ac2fa9fb302f52981034bdccaf06c5e14534d08 GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|WIbIRLo9le v&#d}$|BM4;!XlT?D;O8E^+*}a;9+3+*~HWu%eFWMsF1k44ofy`glX(f`2z$CXhDd}b l|M~y_e?6PZ0gqh_40S#HUta`FX#h$yc)I$ztaD0e0sxm788H9= literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/EnemyBullet1.png b/examples/wave-defense-shooter/assets/EnemyBullet1.png new file mode 100644 index 0000000000000000000000000000000000000000..b5fcc8be6d2fa3012f5f3ebfdb1e62c76cff11b6 GIT binary patch literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^!XP#W8<6zw2~`JDjKx9jP7LeL$-D$|=6bp~hGH5r93U$@I|`6Y1k=Be+WH)Rzn z`JX#?E&0A4_d{m^{}+u_4!r`C&g;*dA=f?q!PPx$b{*WbdFmvu4@w+N?WZ<0u$X;h z-e}!yu!2W+(KP#mD^!Jpn;-Gqe`L1VUhU4ECkNE5)k2%TRb3DaPU;cPEB*=VV?2IpUr!jv*W~ olmDDQ@L_%<%K?|JBsL&m*q_eCbT)qKMxYV~Pgg&ebxsLQ0Hc`~`v3p{ literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/Enemy_Spawn_Location.png b/examples/wave-defense-shooter/assets/Enemy_Spawn_Location.png new file mode 100644 index 0000000000000000000000000000000000000000..b466cec3aa69af3157f4db28268515d3443b8b50 GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|WIbIRLo9le v|C~Q?;fw=g!XlT?D;O8E^+*}a;9+1$s%KneQE~q%P$7e-tDnm{r-UW|mtPzV literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/Flat Bar Red Fill Bar.png b/examples/wave-defense-shooter/assets/Flat Bar Red Fill Bar.png new file mode 100644 index 0000000000000000000000000000000000000000..ed4af9e9afa17cfb65708b65f96041f6a45e7fbc GIT binary patch literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^H-K1zgAGW|IAI(Kq&N#aB8wRqxP?HN@zUM8KR`i$ zPZ!6Kid%0l8}c$R@EqRIBwg<%+g$s*W`@I(B{P}qm6#-Wc-TOgjTwZS8G*R*AOjE| mNN51!1Oq`30m23n1(7w%h<%=*ucaBq*ytCl$8jF01F2$e1|0?%`SO1&u6{1-oD!M>MWXcbu&_kx;NiX;yTDuBMRJJeTMVsgJqZfVzxwZth@O zFQM09JZa(5$Nv}qzOFExT{pl|#Bftrwn~7n!#>gZDvI13l71J2W-V8m#eQ+Y2S%O+ gzggCwPGn#(42$4>vcTseFpL;HUHx3vIVCg!0Ha5OVE_OC literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/Ghost2.png b/examples/wave-defense-shooter/assets/Ghost2.png new file mode 100644 index 0000000000000000000000000000000000000000..36829f045989e2e50979ba6f1b4ea496c4fba988 GIT binary patch literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^5%EiT(RJ zX)v9~?$@P>@Lu1#Ugo+>X zH@8b2cFJj3V$mSkckURw$0x>(lKhf9eIYK!+#6IKolXkLKG4ldbT!p^vppwMKErS$o2!oU{#HjvPvP};i)tB+?;O*da`2d@h-;6Q*aYs5O%D$4 zea$2JQ+`p|&v)Ghx%FN8H(jj+ecVD=EU?Btd^S;jPja~6OYbF|TCoE91myr7h zRC#QJfV6@pUqajB%^w*j)i~rFb7pH+7QJ|sDd*(G0HM?b1tY#~IWY$h9ANP5+fd;k zb~t?2qb&@pUfK&uvu)^n$l{{e)RbjXr@d9j!CXT2!PbsvD?29ebL^C3EBKXkp!UE4 hgDa02BqvPuVU*bt@+K-aq!1WN44$rjF6*2UngGcRfK~ti literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/Ghost4.png b/examples/wave-defense-shooter/assets/Ghost4.png new file mode 100644 index 0000000000000000000000000000000000000000..36829f045989e2e50979ba6f1b4ea496c4fba988 GIT binary patch literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^5%EiT(RJ zX)v9~?$@P>@Lu1#Ugo+>X zH@8b2cFJj3V$mSkckURw$0x>(lKhf9eIYK!+#6IKolXkLKG4ldbT!p^vppwv`3?HU==AT=B*E^q#qH&m@&*b>4schJj%UY)XS!zlY8FF_psqZ5qt^|0|0%qE^p)?-KD%b) c;PWNy$!`>8XCC)=1KP{r>FVdQ&MBb@0EZhws{jB1 literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/Ghost_Hurt2.png b/examples/wave-defense-shooter/assets/Ghost_Hurt2.png new file mode 100644 index 0000000000000000000000000000000000000000..f51e22d0195cb008c6b875e17d03e5d14f54c628 GIT binary patch literal 337 zcmeAS@N?(olHy`uVBq!ia0vp^5w=G(YZdkM~>Ilp^*j#;G z(&$sP1PJuKi9TD9azBfWjje-U?#}MMaQ#3>7Vfsb&g_j{@jGiK8gVBqP_mbhvvL2n z_SgmiX$4KugFNo(kC|0|Hr(iG=V_~RQ@+KNb8=#UP-=pL5#P3)n1crnFnIQDsBjQF z96syO7KT+X?S-V-HgrB@anWpQ$}*|b-m2qZE+PA1Ysa&d9TWIDcFM68{7O1dd*Fb< hmB$Q{6Q=qwe%l`MrrK-oD_|Hgc)I$ztaD0e0suEAg&6<< literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/Ghost_Hurt3.png b/examples/wave-defense-shooter/assets/Ghost_Hurt3.png new file mode 100644 index 0000000000000000000000000000000000000000..79a5cb998468961609305a6077aeb458fd561383 GIT binary patch literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^5X5&unOu(SgEZ$s#W*&lj|v+hQ_Wx2^Ak? zZf=)4?3B~6B!tCSW^OP4geS~N#&Sjyza)DzxHqV}J9$oNY&>CcV^bk3&}Ax?haNFT z^2BF$U1nOb?7zpGtQ8^LlO!A+dKP6deOmiNB~$KXOO3;cuLcd5#hKqRv$ZXhV?V)g fSG^*ZkD1{fNAT;?Q_C&@gNVV?)z4*}Q$iB}$1Q&Z literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/Ghost_Hurt4.png b/examples/wave-defense-shooter/assets/Ghost_Hurt4.png new file mode 100644 index 0000000000000000000000000000000000000000..b66c05479eb604b21b7c684fd161a5e3891efe54 GIT binary patch literal 338 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 E-{DXzs{jB1 literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/Gun1.png b/examples/wave-defense-shooter/assets/Gun1.png new file mode 100644 index 0000000000000000000000000000000000000000..2376f83fe38541941fb396c6b55ac50ed0e756e0 GIT binary patch literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^GC(ZA!3HE*&&$6DQjEnx?oJHr&dIz4a{hR_IEGmC zCMQU+E^cr+;IYPuQ}F8l6My_qF4Xu`Qyl*I>iRQ~zh=NK72|KW*)%sgh__;}{- z|0h_a&!+IgIps88sk^ZO5Zsu0F3IB1fddEX+=u?0I9|Gu7JIy*x?iTS?OZ3#&U35hkb&i~|<4jCPx$z)3_wR9J=WRXt0?P!v5HLpPT|=hCS|i$%vMl4cDABtrg$KR|F0`~m(8K`98X ztw`?_n#k(IEBt6 z5l!fNQPP<&q=de0ZN$ig?TV7u8%+dZoDt|G2Y}9eu@)1AG3t$`uyT96kEzv7L)NvSOKm87C{)}>G5tQa5j|(IAtPS2`vFE+IGJs|82?xd_ zuCGwQ?Qj4L2Wux_@!Gw|aqE2J8AwY{afm9GYYl1WRz(Eq77%ixUN;%*FY3Qk01*MK zR><|DTypCP-;rFaQ7m07*qo IM6N<$g12wm^Z)<= literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/ImpFly2.png b/examples/wave-defense-shooter/assets/ImpFly2.png new file mode 100644 index 0000000000000000000000000000000000000000..781d32256858223faf2fa3f1e5805c415aa7f587 GIT binary patch literal 497 zcmVPx$t4TybR9J=WRzFL_KotMg7`k-{bQUKEMbYsTNwXFT5~1J14h zq|CyYKYV@}bt2z$B4Mp)6Fd)zHCqD9f{_5#TdsRD85@)3e0yh4bfg8V1X>x{&V4CKXd8u6 zM~#&v}1BHu&gdud5reJEL}j+~eQV6ih*Kv|dc zRawwB;o1HHHa55L{`QKO(GUo#nY$re1XTdD+LI5AhDu#6f$KpZ81#SaK*m$&7KgRd zU+=&?^@0yw#pk;WaRGxD}_7_bDkl;S{8w`=?E<~J~ut0%t<}}Jj@eWi*00000NkvXXu0mjfbKuv% literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/ImpFly3.png b/examples/wave-defense-shooter/assets/ImpFly3.png new file mode 100644 index 0000000000000000000000000000000000000000..701f14f05deb8b261ab426e8a8093464879f1b57 GIT binary patch literal 528 zcmV+r0`L8aP)Px$%1J~)R9J=Wm%&N`Q51&1GHKUFa4oJ}6h$qkh|#Se#00)Y4-m8ndVt^^wN?l40jjk+opvLz55MN|(Q|pi z{(!H_N<@I;dj8?j36f(};6aZ4ehYx!@g)G|*B1c3FRlWf?7u!UA|fJSP4ElFlJ0&H zF(#NzC(6Evybu{E6iam44MgJ&zve+OQG#%AxirF7$!4h5>U_MvDMe^AFq=-;*7f`S z7U$(_00zA#tji&zyI4|L_m5EqK>f+d84x#9p}SZ{xPouggaS9GXB3L1Aa&&OTQeeX zm&*gI#uH~SohZ3l0gvMmj7J+c2xHJ|Zj?Yg!zvRF@H?3=`>POJ0+pj`@aTq-$wJaDBi(_zW&-<_;sU|ZlsLQDnN1~(RAHHv=&|E2^sLadrFMT#H6$Px$t4TybR9J=WRzFL_KotMg7`k-{bQUKEMbYsTNwXFT5~1J14h zq|CyYKYV@}bt2z$B4Mp)6Fd)zHCqD9f{_5#TdsRD85@)3e0yh4bfg8V1X>x{&V4CKXd8u6 zM~#&v}1BHu&gdud5reJEL}j+~eQV6ih*Kv|dc zRawwB;o1HHHa55L{`QKO(GUo#nY$re1XTdD+LI5AhDu#6f$KpZ81#SaK*m$&7KgRd zU+=&?^@0yw#pk;WaRGxD}_7_bDkl;S{8w`=?E<~J~ut0%t<}}Jj@eWi*00000NkvXXu0mjfbKuv% literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/ImpFly6.png b/examples/wave-defense-shooter/assets/ImpFly6.png new file mode 100644 index 0000000000000000000000000000000000000000..701f14f05deb8b261ab426e8a8093464879f1b57 GIT binary patch literal 528 zcmV+r0`L8aP)Px$%1J~)R9J=Wm%&N`Q51&1GHKUFa4oJ}6h$qkh|#Se#00)Y4-m8ndVt^^wN?l40jjk+opvLz55MN|(Q|pi z{(!H_N<@I;dj8?j36f(};6aZ4ehYx!@g)G|*B1c3FRlWf?7u!UA|fJSP4ElFlJ0&H zF(#NzC(6Evybu{E6iam44MgJ&zve+OQG#%AxirF7$!4h5>U_MvDMe^AFq=-;*7f`S z7U$(_00zA#tji&zyI4|L_m5EqK>f+d84x#9p}SZ{xPouggaS9GXB3L1Aa&&OTQeeX zm&*gI#uH~SohZ3l0gvMmj7J+c2xHJ|Zj?Yg!zvRF@H?3=`>POJ0+pj`@aTq-$wJaDBi(_zW&-<_;sU|ZlsLQDnN1~(RAHHv=&|E2^sLadrFMT#H6$ZGvhx17H@iP7iC}P#fnJX~O z$KLIG4UYj+7gI|TrvppVKmIcr*S(cCm9Lw~p{rZBhULIqSH*qRd?izMF);}l=}q-f Z-zpgSO78Emi$G^Gc)I$ztaD0e0sy%VRObKy literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/Kenney Mini Square.ttf b/examples/wave-defense-shooter/assets/Kenney Mini Square.ttf new file mode 100644 index 0000000000000000000000000000000000000000..5cbfd3760d9afe712fba7dd845728add3bdcf5af GIT binary patch literal 26156 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 literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/Line light joystick border.png b/examples/wave-defense-shooter/assets/Line light joystick border.png new file mode 100644 index 0000000000000000000000000000000000000000..a795a9e845c988a6241f7c22123ecfbaa2a4ccf3 GIT binary patch literal 2283 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 be0BH)d>nI+$v2)!00000NkvXXu0mjfrUtz> literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/Player2.png b/examples/wave-defense-shooter/assets/Player2.png new file mode 100644 index 0000000000000000000000000000000000000000..29a601d6336924d612c59a7fffd0884cfaa69026 GIT binary patch literal 437 zcmV;m0ZRUfP)Px$Z%IT!R7i>KmN7`fKoo{Q#i?}eQt03y?H0O8gIG8BI%QC#Aa2g;B-*8mn+Qc* zoZ8*3m5|a!BwM9}L&2r9bk#vG#@KszL{SjG=`Qc?|8sfo?gIb(HgmQEE7jVwF4pgL zv^quuC49P?(T>@>nQBcIOyZKT4fB%t*5cEb#KEuvfN(rvX?Z2;XCChXnC6QBj0QfC zO>Y3;I;Hncyd4?n(I#1{npxn^D^aG0EGzJ4ON17~=|TOeDk=d?RJrS%^29I`ER>ag(=r>MQfW5LcX}HLx+!io*|-sr7FQ fpI0Kj`QPCM=*Vx`S2&N000000NkvXXu0mjfdHTrS literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/Player22.png b/examples/wave-defense-shooter/assets/Player22.png new file mode 100644 index 0000000000000000000000000000000000000000..29a601d6336924d612c59a7fffd0884cfaa69026 GIT binary patch literal 437 zcmV;m0ZRUfP)Px$Z%IT!R7i>KmN7`fKoo{Q#i?}eQt03y?H0O8gIG8BI%QC#Aa2g;B-*8mn+Qc* zoZ8*3m5|a!BwM9}L&2r9bk#vG#@KszL{SjG=`Qc?|8sfo?gIb(HgmQEE7jVwF4pgL zv^quuC49P?(T>@>nQBcIOyZKT4fB%t*5cEb#KEuvfN(rvX?Z2;XCChXnC6QBj0QfC zO>Y3;I;Hncyd4?n(I#1{npxn^D^aG0EGzJ4ON17~=|TOeDk=d?RJrS%^29I`ER>ag(=r>MQfW5LcX}HLx+!io*|-sr7FQ fpI0Kj`QPCM=*Vx`S2&N000000NkvXXu0mjfdHTrS literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/Player3.png b/examples/wave-defense-shooter/assets/Player3.png new file mode 100644 index 0000000000000000000000000000000000000000..2765051e0e875a837dd6464cef261c1ecf0ee295 GIT binary patch literal 444 zcmV;t0YmPx$c1c7*R7i>KmN7^|Q51&1qDh=x1c!#O?co-RWLvvUZzw{Dww4xa3UhI3i$J2q zN%uC5#}k*3w;2u%LW^^_+R}a5URAVEy$=;viH25KN|QY!yR0@$v+~ES&{lJn(?z z@(BP6&gO@)xDFHO(KgvMHF4;gtnC4S*KqL~E&zVFjo)pDzNoFknBeyMMih{+>OtMj zQP|lF*T5&c+8S#28hfC|R85hZAjK@5Wjye>drmHQ(G=r>hm%PWOr}(t_W(32yEqnm ztr94lOp3>g{cvrAvB`(WN1}ifBUWIO#DuYe@4%SA4@RPZ6camI`BHfv-r!)Qo%6bz z3*V{YX)AVA#U4~!L;AhWd8`j=UgYtMB0hFH@rAhBdt9uR^vOIE{EADRPx$Z%IT!R7i>KmN7`fKoo{Q#i?}eQt03y?H0O8gIG8BI%QC#Aa2g;B-*8mn+Qc* zoZ8*3m5|a!BwM9}L&2r9bk#vG#@KszL{SjG=`Qc?|8sfo?gIb(HgmQEE7jVwF4pgL zv^quuC49P?(T>@>nQBcIOyZKT4fB%t*5cEb#KEuvfN(rvX?Z2;XCChXnC6QBj0QfC zO>Y3;I;Hncyd4?n(I#1{npxn^D^aG0EGzJ4ON17~=|TOeDk=d?RJrS%^29I`ER>ag(=r>MQfW5LcX}HLx+!io*|-sr7FQ fpI0Kj`QPCM=*Vx`S2&N000000NkvXXu0mjfdHTrS literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/Spider1.png b/examples/wave-defense-shooter/assets/Spider1.png new file mode 100644 index 0000000000000000000000000000000000000000..a0d9c2ecaf38a19c836969d9e225ca15373064a5 GIT binary patch literal 327 zcmV-N0l5B&P)Px$0ZBwbR7iF6XU=%PCQef>E@*ki4(fw=int@l++A-w6n1~==2fTXo9`3kG{9KZb+*HZdI8w;C>P@8kz%u~TLNES!VF(y)rZdh;HqUXp@n-Ktp(uim_8 zc=hHz!@59b|$b4(ZkQQR~VgP6XSIxk{P>sw+$5_;10DOgAHHq$O#U@DeoJ_DjU?A)htS%ou Z000G`W_}(cS8f0R002ovPDHLkV1lMEg@^zE literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/Spider2.png b/examples/wave-defense-shooter/assets/Spider2.png new file mode 100644 index 0000000000000000000000000000000000000000..59315d0f73ac9c9ab99b08b54ab9fb0dbe75cb43 GIT binary patch literal 354 zcmV-o0iFJdP)Px$97#k$R7i>KRZ$9pKoEUJ;J36$cQFw60DjqN>eDXK5i0uV07g)E5n1sBVjsGp z?e4fmL_`k+nc02s&5XMOfBfpM*VCTlAd`L=*B*081Gy+k5o5xJ+(u+# z#Q>lX8P4gk7YlfVDVve|#s<-3N$UO+BSL2?R~aN1(IBn z6(Uny%15Gt^ZGfc;3&?!g00&X(DdIAPx$1xZ9fR7i>KRZR+lKotIppmh|{T@1uIfQ!(M&?RhHm+%NCE;@h_)Lmp4@d&kP zLZ@+jW^Td{gva-OzULd?2n-m|6{DsA%kds2|NRmhYZ#rD<2{y(nXv&b3ZqD^gHoI# zG9gs}kc$l0^jzU==3>5B8S}xTa^^($kx_nftP) z-2~*EH`|?-=c1_1Z8f4K3c*DIE(#=3NXls?AP-lyO(1`!06^V~GPKLlX2~S#mhFR( z#pS`3Z56sWRfIgE`z78hjT|U>y)T*;uPZtL5R`58(ZqegbX^B6`#S2#-bd8?Q dXgmKOJOPGGU!HMqpuhkC002ovPDHLkV1ipAi;@5U literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/Spider4.png b/examples/wave-defense-shooter/assets/Spider4.png new file mode 100644 index 0000000000000000000000000000000000000000..ad22f38e39236a1aa57a76f1be33092ae3a28828 GIT binary patch literal 372 zcmV-)0gL{LP)Px$E=fc|R7i>KR849FAsBtr6tWH((yn_ALxUb5D|4F8GQC8O5G0EpAku|b=(^BN z5QFP3!gQrL(Qzb%Qc4~O!~2}~{X7-8;f6ntYG?zYyv@ax6j_aIkWk*v>PfZ$ZEQA4 zZ=giHB*}e|0)V4A;C=tr;TCL(Y5kb}@2)g~6Q8pc=4{pBu9DzVL~{#Ijq~7W4glhc z7iD)yCo)Ci@XNacwNLu^8by+PvFte0;avcz#w-dhbip10_Xu!Z_lc zx$fJI&UKqg;*Y74q9T;Hxl2OsE2Px#@kvBMR7i>KluHVOFc60SKEQRUl-|Wfu?OhN+t_7$36CJ+!UHHSyh{m@oIvcN zT7t&O*wRh$1HpMul3{>_g@vE9vN?Eu&{FoQNXQ(d(es1$;O@u|!5@`2O&0sz=_x?Xaynt zH*V~RZvTV;Lj8aE8T>|2yC|I5*WIL?HKw0nUDvRm#Mt@&@B}7;Vwg2-<7NN=002ov JPDHLkV1i`|h++T$ literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/SpiderCharging2.png b/examples/wave-defense-shooter/assets/SpiderCharging2.png new file mode 100644 index 0000000000000000000000000000000000000000..06c08d5ca987148bc70d94a1da49867a9464b4dc GIT binary patch literal 318 zcmV-E0m1%>P)Px#_(?=TR7i>KRZ9wkFc5wHfa_8zy^DoX573o8ja{~v@CYIcDyGV$50-p}$RceHtU3iLg!LYQsSS+Rqc(Dj z03Z$nFkXZ48gUqqVkQwB+>27yfjmV3KpopYl(ReK4hW3hg@HmO7YEmuWvKjQ5^{@* zEV@dC+$eFA4*6r~UQi!^-K3)l>h($ literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/SpiderDropping.png b/examples/wave-defense-shooter/assets/SpiderDropping.png new file mode 100644 index 0000000000000000000000000000000000000000..5622daae814b5b1a603f1eb7f600fb1f494ff51b GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^5E8cT%js(S|afpZ+gTe~DWM4fjPynR literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/SpiderShadow.png b/examples/wave-defense-shooter/assets/SpiderShadow.png new file mode 100644 index 0000000000000000000000000000000000000000..8678db3278544db1e87d7065af9e9e72f0533d00 GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^5EaktaqI2fjhqbzBCZ!* zWE>sYFKFt{y~L^`^XN8rlf)6F=TkK63oCETP*xH;(0h!NVIqSI(+{`mT8ZB`Ll-3d z-WVz5aBz}`rtUeW&}d!G2ZkVd0Zs=MutF#Uoexq0me-j2ms?~5MC}hpxm_pCIS))? cxM#^YVKZ;vj&;V%fR1GFboFyt=akR{0F=)?-T(jq literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/Square White Slider Fill Bar.png b/examples/wave-defense-shooter/assets/Square White Slider Fill Bar.png new file mode 100644 index 0000000000000000000000000000000000000000..c5ed083397c5f4e842681d5c5be6d1a06a365a26 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^e}PzlgAGXDeP6i%NO^m@IEG~0dwbiFmqCGt#j%S` zPU67+Bd>+|4U`w2d=|G>Me>08GU0|7j2D>~vAghh$O+ggR5^Ts3&d=_{xOw(np{OF Z^JQz+>;w8?EI?x!JYD@<);T3K0RY&=DSiL| literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/Square White Slider Thumb.png b/examples/wave-defense-shooter/assets/Square White Slider Thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..5307d8c6804de1de23182244f3b2d96a6deb0249 GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fMxHK?Ar_~TCkO=6fLgRBoL4lZWvm$Csdo-m5B0fA@W)`gFg7$(RDp8PmxQ#?>NgQu&X%Q~loCIIP9 BAyohX literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/assets/TheRoom2.png b/examples/wave-defense-shooter/assets/TheRoom2.png new file mode 100644 index 0000000000000000000000000000000000000000..bd7d679e26d5e05c1c738eda82501cfdd9c33bb6 GIT binary patch literal 23537 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 z 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 MdjxyW8khcm096NvApigX literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/desktop-icon-512.png b/examples/wave-defense-shooter/desktop-icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..74fb6f503f147a0ccef5fedbf4b11cd5eeb4b741 GIT binary patch literal 60304 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 YKW!}aD8D@By#N3J07*qoM6N<$f(KJU@Bjb+ literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/ios-icon-60.png b/examples/wave-defense-shooter/ios-icon-60.png new file mode 100644 index 0000000000000000000000000000000000000000..d0f06346aca9e165385b61ae10d2dddd84d72605 GIT binary patch literal 5237 zcmV-*6pHJKP)(pf00op91q4)-Dvv5fsq&~XlyWIgsjx;dw?eUyrkGDt zETnOYYq)NS?UagH)Pr(q4LcadFib>+8UvrARH;%Wf=@)aOoXjiT#Eq8It7GnO`d<2 z#hKS}og%6pSF@uj$Y4v9fmD>imMHzr5xNpl{?%9if{I&W-|ZhJp6ud=iLf0@@u*Tj z*+4|_DK)|+9$QjC#K0-%@d*$OSnO?Uq9+k%Z(9?+%@OvrHqoDq5D8dp=Bd&e@|ewf z6m!eOlU*n^qRIv$Y#_q6R6zubn?TjWDHkZLtuUA{_?-_9(USD-?3ephBIBQl-KT5iSx?#o#hw1EogUno#9=6}*ar&k)F#T;8t1mMFeb zA;Zn2fYsU8g8+(hCE-enFPmOuEwjkS4)<`Vxt&|uVsynr#6vc3SAQ~sub5BM(c6h( zn22zZQl(rZDBBZ2*-WwQfQ?Y2T)$_3_!V;5B_6o%7Ct&Oz|FL~wTT+VDd&hKTG&9T zQnn`4C>sf2;1h0GJh=nQ5T>(5-ZBw9Gk_D0Q;fB-WW^a?Tw`IaOwcs&WtL}91yxW5 zRZu_y5fI@D3Me3e00Ic0fJL1E$~BF=dXnXZ3GVMw9(?yvQjq{xC4y&Ih~SwDsDwd4(uV`*2`8ZfiQ@H9ZO(EV%YH{ zv6gNEO>u(3AeLp}8+qnwT&GNLbC}aJtK_pQTrc6;ECE!NttlG`@#GGC3%L??W!J-3 zF60prEXyJs4ig9j2!}!hfwf76Tx*=&~S z>1pb0+vfcF^CS`p>du@w!()#EE+~c*w@#EZ)RqOVzEf0p`jr*d*zi^Xk-`$x9;D^ z?(TLD4ff#6Wfpl$MA*#YA_0^usVZAZq&o0TEi5xNK2B+El|-tQmd-Br?(D?3y1L5b z`O@H~%Dz@{^mU}0i}M<0EZ^XJcV_Uu`Phlly(dxtpjk$=mnbCdk$ zfB7m-xkw?OAsmTQCBhX{QLaV-!Qv7DlV%K z!LC+(s!A@iL^u*>ORD&k8sQREs)WldE>h~04U}~v)HTIZSauNCDKVQZva>nD>e3>< zXgI_lfBK_zBx8L0&p*cl5Bvzv^Qimg!=IwJJw;txbBxw#kbzW$_VzXg`+7Lkonrd* z^EibZO#zd&a)oSWk=D*Zwj@*uHL9#rrIE$;QUwuwrfCz3#8_J`F|}HNUdU%xsr%5o z?;xAaGBUk@=Xr<-5!;|U5k^)Q3CF-J7ckv2DW|~C{{8z9fn2hOLcAR(pX0)d&*JM& zgn46OjqJ)iH%yf(p6jBO3chz97~~7T z{cCi!COBA}!m5;k0xVCmfly_Z^O$ZK({nIH@KouDg?M9OjkU}o+Y=gza3xg~u(&1x zl+B{C6uy~k5nsi1c>Jr6Q7#rp^z@PH-%TnWB^8h2^X8YJPzEtD6RlYBR_q=9Sg8&s z&-{#um!2VL=h&TF#uqS!qN{Yr!}u~QbKEcyY7`Jq#bN`Ykx(a8iBK0$b^yXc-ojHb z1j@w%3jFE!h8fyl<~_IWU?6T{yG2$rYb-2hiS+K{*zf)i#4xCv$rj1~2t3(8gZ3vr);49|Wc=^YFPb}3+EY<@G3we*fd$Yvj!zFg~?jh3VP)N_tghurw)N23(T|8A zB8Uhgf`}j@Tn~#)M1<|ADs$uK@P!gP5W~U_$4P|a#5?xlmU4(;;uA3l#oJN!C}rl6 zfKB|4Au`XOVYsb}7p!i+L>G5zo)3BRJm@Wv&=PeP9*LG#e7E#>GcmhJF1y0jhzO|S zQ`U)4r3x0RAc9Xs*osh-Sy>>LUcnbmcGE}<6FVHoSIjMuUK}RbehY==DSWN(eJAhv z>gQQLKhE$gFZ23^aq^iAKanUuF$egZ*~k06G!J?6+|vYhyczX8#4s4_-hpp*X$C<+ z*hrPjL{LCjC&DF)g$O?3+GfwciO&i(VMm&2RB=nVPLW_Z!P4x@EKa?|{KT_ZW`vL( zr|Y2)B8EZB?g3hM4{+4;=o}y8#Zxcw)VUGTj>ET%6yGvZ?8f3>+aW$axyYWK?HnB3 zi7%g9K~)hEZiFfb7b#d=BwUM7skkg$7{wQE?nFdrv^@73)93$zzTW-(#(lT&ttT!p zIT7)a^chag%yO>i^2dMk zJfHvZi@fvDPTEsJ48ta$UBM|A2!tY3DOJiPs#J-vnX00yn71A|egdBe+Yw-KYK+;@ zVMGiPJqIyNoAly2rbeD7U|EEnahB6deB%AL@n^sDNq*~N$2oR*FOK6dd)G1a*n3$k zm)X_aOvo@u2@DE^1wyvXq3$kz<&N9=(EfcyOpDR)`~WYVVRCMjvtvty14%41Og!06 zG~SFD23IA*WvWyOmqe0tgLM89DVFg|!U9SPRkCK72Ey&yZanDdyIgcwJ^#XNZA_z4lgr>giwghqyG(7pEn(L{<|-o*+;Seku>?D8l(l5zh0KYkk9ve-(o zR7SlD=kpHU?|qg6@C!kkPshS^3RHkJ-~tQ4nX=12{I_r8981%aObx$Eesu-Ywg^RHhzM6uFb^I%enJ4{5&=O_>J*=dK|Yga;>{N>1A38|VwrLUAZ@_H^B!C<+ z_QIPieD5UNF{}W=rdFb@eb~`ve3fzm^(y36SC}6kVP^CVoMM4MB!V3XA;M+m!6U~{ zph}f+iQrRJ8cm;jo$SgYT5&MNBpgiQd3mBip}%Vf0o!Ifk9_GHocf!`DV%zVr>p>( zLY~f86Nzw`fCyazw;S-xm;Mhk6AOR>!nQ=Pf>FYW4kD>u%s>RsbMV{}6~`g7ILFM$ zS&|){1jAA4%!BWE-~@HTCBkL`q&j+N?drv}EsFUZ<#K_u6KDDMQ_petfdTdn^s<%Z zl{BCElSgsf3f%iX(#=UuPE7K(7hdAz=qT!W^d=G%b44Eg@86~3dSqvZ$uCc07#3zA zgov;mF-!uH1d&t^p~McHLI%$%5sX9`96ExCfCxTIStnegichE!5voLpwX_pUwJ|Vs zl#y4Sg;5u)yu`hC-A*INaadYO)6w3>H-7LFa>X)LFFX&P!hwU70|8D>OmcE!l0SUn zNp79bky)I@jwC3oOjB`+6w|YqfiU6bPQuA9tY8yYV+A63P8nbO&OtB?l#5gmF)$Av zIevnRgo}hNi3l5rU>GJ9uR=@vP8Ke_ih;*KXDjho6TT;Y`XYCI^0S;g^%{>qcber) zj!+~{Dj26NhzK=8one}+m4(lK z@tZvIKflBMM-TFA4<6%*=T1|0EByU)XYh6O?q_iS-B@;z%T|gkJo$ZaRyp+kd)e6< z=EX&WUw`m6?moPSPkiuh&QHwpS5KVc%invBY{A9Jr*ZOWvNLZGjJFX}){PZF(eC@yTi}&5bA3XNI z_}ObCluLOmJ4hqfDYG&^0TqY;bg+wG{_T%5c43abt~Puk!mhqfe(RSaeC{v5hFb~J z)q5+&Y?g}SP)yHKOwVEl!h{kXgqu4k=a%qw4(?+s76KxIPnE0kJf%jd6A==rF4k5T z=$j^ps~ z7r)N?@4k(Zi5YUmB6iT=(6OIKfW-@A%#IF|U0$G4E|6OorKK&--~%6KZu}hWz5NJ^ zQX?XOAiw;XKT{Dwm36B4lo|n)Mv8A?W(=?5l3tu5lb)kB)k?H9&YKg{tYp?GmL1wU zcXP`f_akg?d0~?2*PrI&_utL0K6s3G-?pD0{PZP${y%&U#Nf_jA7yE24m%L!)}s$1 z)F?_mlV)~onE8qG9DdJ(L=#C+#iyz$jRZ>-RFx`Ke5#61sSz#`K}4t#8a20e)7;vP z@8lCd!YLQ1E0^;aBB(0cnY-{N%h?=X`0kT@;k!?=uXhInd*4A*^9~HtBG}YIS5pfu z?Y#&WiQp52Xd=a~!*?=x=qMtBs)ACb%0&tyfZ(&JQ)Mecjj%Okod7#`-+^J8gu-#c zu_S?DglpM-@E#JW4rV9cAeUKSV!1?HpoiP<*-541P^WB9M7SOnD5}(`;!{9GFhmeQ zL};Yc7$T?$N{s+LgNN8mxjHKlqOb19=2QoEFvL1xo#InfP*4<~h~N_e5!NXU1Xac2 vCJ@8GGzfcA|b|-vBYmWzjN+=pY#6lKKFU=J)gULo z#teq6f;&7nj@wk8BW6m0wQlq9J0;3+4t&P45O6R|d8~=ubu)B5b{MSn=9$9OSt0#PLm$rqA5FPvDgV=`E@b?#u?)hCC`!5 zNEzcefU$1vjS9@rlM#fa><`(c92tQL+l!}(S+J5j@s^cNrdG96GK-LvU*9-Eu@8gN zzguRS*!u8vOTv)&07=MI>LQ(e$oy}LA9y=*dV;?~6XI$Simmn6j-S^K`7eHd=ymau zsj&R%gb*eRf0AwEZ5Li|DK?Xh&Tv=ZkT%Sh5);t(V%|SirE=(igY(i*4fE z?!>u23wybkYJU-NOqO+a!La)kH(W#ZXn9Skme)RDe@zXy2FnUc)w!GKvVP;;(W}Te zRxQ1NRyL}hP-a0NFMnn-+Q(AM$1)$Sg_R;`>jl2x44!z|sHXYBm;D;SwwAH`7f@u| z1yG6Bo6OVv_BK{RwqX=>Koy+js-?om)ImQXj$VN9`8#EnwZUb;4#>K;e5$qh@UR!> zy0G?b>$*bX@YXyMw{|&{3m3LA_nA5axmB)?^#NV&X-VZV!Lj{tPkQ7Z=a@|v8ju|5 z!}1UO0M@sf?>c2wo@~T)(YpSapMSdyy88LU2L;VSr#`Fqh_n8y^InPpAhGrf*^~rL zC^;}lgYsBddc;UA0R2W4Vp1a=!7ahzYJES?qCeWF@Q))~wS(Bryt8MQA_3x5Q)i^-ideaWq8 z)^wv%b*(4M>{7|VeH$&u!ROim_<%%WkmRu|&^B<$)3|lu%DI<5HZ`9VJqitFjE5H} zE$!14XZV?OUT2bXEXD_jkQWC%cu=+{7zErrjFJQD@-+(10B!)zXSg?;t6b~xB{>mm z#F4TWGn?gROATw-r}lpU>KaYLF<(V4U|}wI%9m&h3hmMDW6DEX(0et7e;lQ~B+R=u z4A23EkIAxLO4ulf|0!;=Z=t(J+>Ek2^b1Ee6LFv~vl$yu!`#zUzj_72&i~2g5+vYy zHjc8;y}bSJED;^RqiDeE+4wnHgW#(VcOeK7CSuYmkj6 z_(z&NrB9r_;C5Q4=7P>Ya%l^h+YQ?cQ-j8Ldr^sUgoYH0;Q;rj*u=ckHzIa9KRheA z^~O=sxo(bO+Ze~uZJAQgJ+IPqpUd+7rHq#!`*ZxT4Hf3J%tC4yZt{*hK2- zK51_h?Gw$NPcrYf)(IB(UDj zN3w=c;~6MIdS#ATetKF(R|8R=Y+9Ktw>bFB0z&^X(b@mSI_bxqB0ohWvbQjFwtsU| zA@a|f+s16i&d!d4ii+_ITlZ!i1bNtTZF`g1zIG7Dr?_V%!{tVR}(c=HPkG4R$eyP}O-ug#; zLo3&@B}cKQ>5E*+pL?`-hp7r*rpU+Zx@$te%3d}Wp6tGs-;_UDm(`+V9~x$Qdx5LeWN)H_wDT0y#WKCc<;T z+O3BC2>_NUS-$nIS5J(UI-ZnIYFS9bViy+sGitmksUl4(p}&R6?%)LCQ)2=ud`p6` zcDXp>NL%CN75C=3PC63<(BxrPnsTYpbrU;kF0bFl4-(bE3Rfn7jK$o`+?fX$oDWa2 zMC!+Qs}|Bg?1O@ReSMB2jJTyf9MQcQnIhu+c4ZY$Badj38x3xHMMUK1iOPL6HSFdDZ_q+VI);4D z1{=Yfg>DSGk63coMM?D!y9T;o!zd6;F!gfX&b*p>oGvQ*FEjU3^Gd4v^k7E`$q5tCB|7#&b1%G<@S*V&Uk34^aoU~5IkHDPk(g)=L08$^; z1e=`MoSDp*{8|>_$?16sEDXSwiL`nJOJep-g{DTn1)mEJ4o1bskNYZSmDyL%_4L*7 zDf)R1Ipw8oJl;%8_+6>AST_C+r&A+9Ax#%71_=sxfJLc6kMH=NZ@WQJFss8gB*AOt z>M|&+lx1!k#1B-C-1h;3b!*fO`8w6T)RM03ROsOa1wL%YSFlQ@g&5|;JtnYbYD6=3 zaBDx1voH49^`SB%-Kfa4a4x|~Lx1+ZJn6@s!Q>u$1(*oX z;EzZ1{e_j8q)I;~rSZOr;u8t#8(FoAZtV$upw7oY&ex{{e*_!dMJ5k|YO#}87O;JC z=v_DWHE6U&3KjFXR2i{dsp;aiLZ}R1OLa?4>4kz=?FojGIZMrX90aGr!Zh{1PtqEC z7jH&hW$f&GzrgrwpSNI`X*W-|J>lv+CCfxUNEiQ|r)!=CWT2|R$(`;h8grZ<*|u)O-{n#JEQ``V0n{`~n{SGofz zcXonDINRsDA}+`*@r)Y%Qk?a$R7d7_eO|C!UC+_S>kTH`bPubjA}CCU!1Z$IW0+@! zzQd?%{p;kUDdtH}O9CdLQ`2FQ8mxB!lZtFJ{Z0K<7J7ip6L_b0Us3!1Z{gh`-rcp! zV@`RuBk_~K&0Llr`DVS|VD7No;cVHZi7GgZ^w|B?De#;x;#qXz(7Z5Sp>@xSh(nTX zVLTk<4u) z#=dJ#f@zv5JzJ*}ch zIvtp6(w#LZ z;j=1SqTTuojsSO;)=28a5#3)Ik=UC3mp-H|@bpOVYQMNG z68_sc&!6dg-_!I1dLtrHUq1Jg9&S*SRD0$JDd7i0sBIiTIl%NtSn13@fOMvor*m;P z@Mftg>ZixaA8`yWD(Relw+_%v2{?7M=-djRMSoHX{v96lf_47u;q=!9w{c|EC;yLi zRxL`Ie%HNzw-tKyOME7|&2-!ljt7ZCe|k^3YUb&rFH+6xntu0_ztDzVAvX}lN; z{sXok--&m5=@G$w)xUTn0%;H!j8VJ@#^MKL7Q&^Cfw97l#=Vq>pVV)0UeI$Ag;MBM* z#9}F;eO8Ey{>sV#wV=ZrAspOuc*^q{Z@A*%UUU$k&8h5Qe*5TFU}DBTAhd~0g|MYp z$TABz&Ot{n)ZZ)#j!r!LvK`l>pbnflU~Ss9dC4bR!OQn_;^W2B!asD1RwnK#JUHOg zp@l>kgp8@9V&!?<8;8bv(ljJtVzI<|Ua*s3MSphTA%1Vis@bfU4d!02@Rx0WhcC5K z<2Vh~8ma2=RGv?UkIi&Q&Nb#JBka#(>$=G>*!P8E>|YLc&g&)mHs?{5n^Q5n9^;h0 z+n%}S+e<@q3U%o)7u1?BYx63KNPrDC3gl{ROXV%9#rw>&V--v@IAt9%7Zf?>T^^)# z?5Jf8K#v`{_ZKC^fKianfRjRuS&YTila*kLt+ryi%$bvU>02Yk(rRi$ZDrydu7gg;J$`Hge7?k?lTFV$(@mCzu(-f~0SI|S3W_yGu=f2*q;>OVC&$fw z_$+sH?!A*wn#&K$%9?PxsMxMk%v?-HxQ+JcB7txDZjBrhx?-~y4C!zxZ+%wMs-|1} ztj9_gk}If59-_-KeBbh0)o?l6ji=i)^?dY>EQSOp>HlhmH#=noDW_ z(3iit2Svn3a{un$*b9`rN&j{A+QE`@iSgWb|09L0rBzM!zUd)3@xkZPLfszuC;(vO z?+Q0mw4l%GQiY-^J2-Aw!IXQ}QnfTyJ8BF8ta31^a-mpV;$IPlO7ZzKgE0^yCb2#V zlp5eHeK@vHPWVIAC-XE$Z-e*lT}D$-oCsb`66Xyt7}B zwPEW3_71w461Iv@*@W-RDvkIQv)~ zlH{I+gKHgV^uJBJcS^GeH9YoKo>#!#gmyFFOL?tt@9!SyhbZlS^216kNPH;%uFL)P z@wer&Nn7`9M+s9T?^2t5yQ#aZnXWSX%@g>S2-UUD(?`*KtxtxxCoo?`69}e0jT9(x9Dom4t+YsSRD7M8l}>5hrAPJHCvIS+uJ3q ze)Q7@BSGpz^ElzZ6K#{wpCjITXDh4&)L-#1s~6^0B(CPfEOYPIY90txj+oI31yY0E z+yo88pcmwBs3`HjJv;c{3xPDZ^gR%ih3(_HcDw}j zSyq)7{-G-0PC8DHE(+UIkD{kX((+lp#jM;XHmjWcZ5x@}JcwOu{}DaYmcW=@`e%9t zr1Bzn59>ok$2tx{BbTgB=_ja$9hH8jfA2}4Pl;aK92(0wqJBF{5wI||tedHt$yC~A z2=u%r19^|aG-qA;crd%Zi9v|O3(&`B{WtU(1j-Bw{eM^07+@dcL1wWRi(T~n3x>9Y zUy#{ROE%Y|!;Z|}?R0jI9IwZHc^4|3p~TLZQf>M5sKJ}3&{+G#?R!u1h2r{IkLhEd z=_Kix^w}1sG+}CYk-u{Qz5RSh+Rk=q0=Jc%+~&|=C8G&sRR3l_TXvtMe)i1q?W&pF zBBppBD?@Xue#AU>9%}o&x~;ZZL4??E%RTl# z3Pz4{F@f3E_wyn}4^e}OKG_x0RhdaBUxFO9SGGaPgI?zH-=96}8(fyv_CG~tA2B7( z^DrRARcb`#vqM-r;b7}{5OJWetc~7G5&c)gdgm{Hi=^>OEkk7UMTFmO^w9r`%cZ65 z-uW7iKc2HXA^=xx^Zz*VfxCAPrk$hcuTSuMUqi8xTx)a9jjX~h&LN|dnmVB;pk`(R z$NW6^KSzS&+e*_doW5r{BBsMvMN-yO4W-^Z)P(AX7mVvX;f|S4hBF9HA8RrLYg#@8 z6vSJqYN{HAcoxZ7tZ696>*2L_UCImMSnD0Y-Ntn!OqzV$NmEPQez`qb+7Y#*zDJ`o zhmJzhwpZkjyx;8%cajw&=!!aHArRhsimiW{)S27B2nYCLZUL(2%YI<|y*GtLrR&J5 zc}u%Y`&a@S(Krr{uwzWptR=`qw|br1JP1MPo6}RKmo2J|71P9H8KhFPFOHnoh$@QS zm$2xJdTQ~v+aYZJ>)zJH_H{;h;@x;Reo~s$I5sqN95xgyb?iEB!FI)lpV%6!wuSsmHO9?DlqYDUl;HCxxV40J}@a5 zZxnjM_4Y8-5`N1uH#~Wt-D8JqO`mCS3;g*0f~8h?!Dx9>&@~2cV8DN|5JWY96qe94?3Gg2SWGM~Zp1jy7Y1ar+T@nG%OU6`TS zr$Gg!#432TtXPfbt9%fm)CfKO1f-MU=7d56-8=>u13J4M0*vr>g2bTjYDEKW-w3&hknCiWOjeUjtkA$7 z1#0g6W%>#JIp(6tw47c5tDh`_k&UY(I`lj2$pj+i;>4C~J_M9=HttF$i(VirKqn5A zV`C2%PI3>l8|dT9f#)>c_wN=5)wzr7s$8S&f`Db%vUM?}Y>o_qTq+~O`41VwFp>~J iCdWpBalV}srh}Uswe1Fr9E{rpCL=v_be)cC?Ee64s_7O0 literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/ios-icon-76.png b/examples/wave-defense-shooter/ios-icon-76.png new file mode 100644 index 0000000000000000000000000000000000000000..4c3dedec1cad0da064f91c022fe7fac32600ef4e GIT binary patch literal 6806 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 literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/ios-icon-87.png b/examples/wave-defense-shooter/ios-icon-87.png new file mode 100644 index 0000000000000000000000000000000000000000..9891566a562f91418f207a6dac937e34fec5e70c GIT binary patch literal 7967 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 literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/thumbnail.png b/examples/wave-defense-shooter/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..3f613e8468ca0c00ebea2441aa6fb4b398241d6e GIT binary patch literal 241920 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%0ACV)V)Pb`mi>Vz+^x3h|X`gw0>r%J#d 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'>Nm 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≶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 C{2KEB literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/wave-defense-shooter.json b/examples/wave-defense-shooter/wave-defense-shooter.json new file mode 100644 index 000000000..20d678eaa --- /dev/null +++ b/examples/wave-defense-shooter/wave-defense-shooter.json @@ -0,0 +1,44368 @@ +{ + "firstLayout": "", + "gdVersion": { + "build": 99, + "major": 4, + "minor": 0, + "revision": 0 + }, + "properties": { + "adaptGameResolutionAtRuntime": true, + "antialiasingMode": "MSAA", + "antialisingEnabledOnMobile": false, + "folderProject": false, + "orientation": "landscape", + "packageName": "com.example.wavedefenseexample", + "pixelsRounding": true, + "projectUuid": "a9dd0966-1216-45c7-abfa-940dc5a704f0", + "scaleMode": "nearest", + "sizeOnStartupMode": "", + "templateSlug": "", + "useExternalSourceFiles": false, + "version": "1.0.0", + "name": "Wave Defense Example", + "description": "Create a wave defense game without coding, using GDevelop. This beginner-friendly example covers player movement, firing a bullet, enemy logic, leveling up character stats, mobile controls, and spawning the enemies.", + "author": "", + "windowWidth": 768, + "windowHeight": 432, + "latestCompilationDirectory": "", + "maxFPS": 60, + "minFPS": 20, + "verticalSync": false, + "platformSpecificAssets": { + "android-icon-144": "android-icon-144.png", + "android-icon-192": "android-icon-192.png", + "android-icon-36": "android-icon-36.png", + "android-icon-48": "android-icon-48.png", + "android-icon-72": "android-icon-72.png", + "android-icon-96": "android-icon-96.png", + "android-windowSplashScreenAnimatedIcon": "android-windowSplashScreenAnimatedIcon.png", + "desktop-icon-512": "desktop-icon-512.png", + "ios-icon-100": "ios-icon-100.png", + "ios-icon-1024": "ios-icon-1024.png", + "ios-icon-114": "ios-icon-114.png", + "ios-icon-120": "ios-icon-120.png", + "ios-icon-144": "ios-icon-144.png", + "ios-icon-152": "ios-icon-152.png", + "ios-icon-167": "ios-icon-167.png", + "ios-icon-180": "ios-icon-180.png", + "ios-icon-20": "ios-icon-20.png", + "ios-icon-29": "ios-icon-29.png", + "ios-icon-40": "ios-icon-40.png", + "ios-icon-50": "ios-icon-50.png", + "ios-icon-57": "ios-icon-57.png", + "ios-icon-58": "ios-icon-58.png", + "ios-icon-60": "ios-icon-60.png", + "ios-icon-72": "ios-icon-72.png", + "ios-icon-76": "ios-icon-76.png", + "ios-icon-80": "ios-icon-80.png", + "ios-icon-87": "ios-icon-87.png", + "liluo-thumbnail": "thumbnail.png" + }, + "loadingScreen": { + "backgroundColor": 0, + "backgroundFadeInDuration": 0.2, + "backgroundImageResourceName": "", + "gdevelopLogoStyle": "light", + "logoAndProgressFadeInDuration": 0.2, + "logoAndProgressLogoFadeInDelay": 0.2, + "minDuration": 1.5, + "progressBarColor": 16777215, + "progressBarHeight": 20, + "progressBarMaxWidth": 200, + "progressBarMinWidth": 40, + "progressBarWidthPercent": 30, + "showGDevelopSplash": true, + "showProgressBar": true + }, + "watermark": { + "placement": "bottom-left", + "showWatermark": true + }, + "authorIds": [], + "authorUsernames": [], + "categories": [], + "playableDevices": [], + "extensionProperties": [], + "platforms": [ + { + "name": "GDevelop JS platform" + } + ], + "currentPlatform": "GDevelop JS platform" + }, + "resources": { + "resources": [ + { + "alwaysLoaded": false, + "file": "assets/TheRoom2.png", + "kind": "image", + "metadata": "", + "name": "TheRoom2.png", + "smoothed": false, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/Player1.png", + "kind": "image", + "metadata": "", + "name": "Player1.png", + "smoothed": false, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/Player2.png", + "kind": "image", + "metadata": "", + "name": "Player2.png", + "smoothed": false, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/Player3.png", + "kind": "image", + "metadata": "", + "name": "Player3.png", + "smoothed": false, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/Player4.png", + "kind": "image", + "metadata": "", + "name": "Player4.png", + "smoothed": false, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/Player22.png", + "kind": "image", + "metadata": "", + "name": "Player22.png", + "smoothed": false, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/Gun1.png", + "kind": "image", + "metadata": "", + "name": "Gun1.png", + "smoothed": false, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/Bullet.png", + "kind": "image", + "metadata": "", + "name": "Bullet.png", + "smoothed": false, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/Ghost1.png", + "kind": "image", + "metadata": "", + "name": "Ghost1.png", + "smoothed": false, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/Ghost2.png", + "kind": "image", + "metadata": "", + "name": "Ghost2.png", + "smoothed": false, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/Ghost3.png", + "kind": "image", + "metadata": "", + "name": "Ghost3.png", + "smoothed": false, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/Ghost4.png", + "kind": "image", + "metadata": "", + "name": "Ghost4.png", + "smoothed": false, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/Collision Masks.png", + "kind": "image", + "metadata": "", + "name": "Collision Masks.png", + "smoothed": false, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/Enemy_Spawn_Location.png", + "kind": "image", + "metadata": "", + "name": "Enemy_Spawn_Location.png", + "smoothed": false, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/EnemyHealthBar2.png", + "kind": "image", + "metadata": "", + "name": "EnemyHealthBar2.png", + "smoothed": false, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/Ghost_Hurt1.png", + "kind": "image", + "metadata": "", + "name": "Ghost_Hurt1.png", + "smoothed": false, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/Ghost_Hurt2.png", + "kind": "image", + "metadata": "", + "name": "Ghost_Hurt2.png", + "smoothed": false, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/Ghost_Hurt3.png", + "kind": "image", + "metadata": "", + "name": "Ghost_Hurt3.png", + "smoothed": false, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/Ghost_Hurt4.png", + "kind": "image", + "metadata": "", + "name": "Ghost_Hurt4.png", + "smoothed": false, + "userAdded": true + }, + { + "file": "assets/Gun.wav", + "kind": "audio", + "metadata": "{\"extension\":\".wav\",\"jfxr\":{\"data\":\"{\\\"_version\\\":1,\\\"_name\\\":\\\"Jump 1\\\",\\\"_locked\\\":[],\\\"sampleRate\\\":44100,\\\"attack\\\":0,\\\"sustain\\\":0.030229527243904375,\\\"sustainPunch\\\":0,\\\"decay\\\":0.19202170294597032,\\\"tremoloDepth\\\":0,\\\"tremoloFrequency\\\":21,\\\"frequency\\\":832.9875963088932,\\\"frequencySweep\\\":-604.6970292115017,\\\"frequencyDeltaSweep\\\":-19.19788497092078,\\\"repeatFrequency\\\":0,\\\"frequencyJump1Onset\\\":33,\\\"frequencyJump1Amount\\\":-5,\\\"frequencyJump2Onset\\\":70,\\\"frequencyJump2Amount\\\":0,\\\"harmonics\\\":0,\\\"harmonicsFalloff\\\":0.51,\\\"waveform\\\":\\\"pinknoise\\\",\\\"interpolateNoise\\\":true,\\\"vibratoDepth\\\":0,\\\"vibratoFrequency\\\":10,\\\"squareDuty\\\":50,\\\"squareDutySweep\\\":0,\\\"flangerOffset\\\":0,\\\"flangerOffsetSweep\\\":-7,\\\"bitCrush\\\":16,\\\"bitCrushSweep\\\":-2,\\\"lowPassCutoff\\\":21800,\\\"lowPassCutoffSweep\\\":-3100,\\\"highPassCutoff\\\":0,\\\"highPassCutoffSweep\\\":0,\\\"compression\\\":0.7000000000000001,\\\"normalization\\\":true,\\\"amplification\\\":100}\",\"name\":\"Gun\"},\"localFilePath\":\"assets/Gun.wav\"}", + "name": "Gun", + "preloadAsMusic": false, + "preloadAsSound": false, + "preloadInCache": false, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/Vingette.png", + "kind": "image", + "metadata": "", + "name": "Vingette.png", + "smoothed": false, + "userAdded": true + }, + { + "file": "assets/8BitOperatorPlus8Regular_Edited.fnt", + "kind": "bitmapFont", + "metadata": "", + "name": "8BitOperatorPlus8Regular_Edited.fnt", + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/8BitOperatorPlus8Regular_Edited3.png", + "kind": "image", + "metadata": "", + "name": "8BitOperatorPlus8Regular_Edited3.png", + "smoothed": false, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/Square White Slider Border.png", + "kind": "image", + "metadata": "", + "name": "Square White Slider Border.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Settings UI/Slider/pixel art/324e5f522f6242e9f93090e75ddc38427c3a6c42e8236dbf0ed541bd85cf7221_Square White Slider Border.png", + "name": "Square White Slider Border.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Square White Slider Fill Bar.png", + "kind": "image", + "metadata": "", + "name": "Square White Slider Fill Bar.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Settings UI/Slider/pixel art/47bc684198cd25b3ec74b0e72c2e2c7abb1b6736bd9f4b78a943c663e83118bf_Square White Slider Fill Bar.png", + "name": "Square White Slider Fill Bar.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Square White Slider Thumb.png", + "kind": "image", + "metadata": "", + "name": "Square White Slider Thumb.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Settings UI/Slider/pixel art/848f861767e7ce4581dba9e122ee7bafeaca57987655cebe1f78ab31d1300f0f_Square White Slider Thumb.png", + "name": "Square White Slider Thumb.png" + } + }, + { + "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": "assets/EXPPoint2.png", + "kind": "image", + "metadata": "{\"extension\":\".png\"}", + "name": "EXPPoint2", + "smoothed": false, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/Transparent Button With White Blue Border_Hovered.png", + "kind": "image", + "metadata": "", + "name": "Transparent Button With White Blue Border_Hovered.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Menu buttons/6d8e529f898d0d1cfc8e94ba10ae0a01e0a31b08bc0d11ec35074a34f3485f55_Transparent Button With White Blue Border_Hovered.png", + "name": "Transparent Button With White Blue Border_Hovered.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Transparent Button With White Blue Border_Idle.png", + "kind": "image", + "metadata": "", + "name": "Transparent Button With White Blue Border_Idle.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Menu buttons/7311d88d62c25c9a5e7ed4f2031f4d58fabe564e093b203e62e467a1a995ed32_Transparent Button With White Blue Border_Idle.png", + "name": "Transparent Button With White Blue Border_Idle.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Transparent Button With White Blue Border_Pressed.png", + "kind": "image", + "metadata": "", + "name": "Transparent Button With White Blue Border_Pressed.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Menu buttons/c18e2e342a2cce350f068208df2b7f5549dc600d2201609b1d3d76c497fffd30_Transparent Button With White Blue Border_Pressed.png", + "name": "Transparent Button With White Blue Border_Pressed.png" + } + }, + { + "file": "assets/Kenney Mini Square.ttf", + "kind": "font", + "metadata": "", + "name": "Kenney Mini Square.ttf", + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Menu buttons/5e2e3fcc57885d5e510934e621be5f8dd7a5b6425cf46ef38073e3d2c3b04048_Kenney Mini Square.ttf", + "name": "Kenney Mini Square.ttf" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Spider1.png", + "kind": "image", + "metadata": "", + "name": "Spider1.png", + "smoothed": false, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/Spider2.png", + "kind": "image", + "metadata": "", + "name": "Spider2.png", + "smoothed": false, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/Spider3.png", + "kind": "image", + "metadata": "", + "name": "Spider3.png", + "smoothed": false, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/Spider4.png", + "kind": "image", + "metadata": "", + "name": "Spider4.png", + "smoothed": false, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/SpiderCharging1.png", + "kind": "image", + "metadata": "", + "name": "SpiderCharging1.png", + "smoothed": false, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/SpiderCharging2.png", + "kind": "image", + "metadata": "", + "name": "SpiderCharging2.png", + "smoothed": false, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/SpiderHurt.png", + "kind": "image", + "metadata": "", + "name": "SpiderHurt.png", + "smoothed": false, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/ImpFly1.png", + "kind": "image", + "metadata": "", + "name": "ImpFly1.png", + "smoothed": false, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/ImpFly2.png", + "kind": "image", + "metadata": "", + "name": "ImpFly2.png", + "smoothed": false, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/ImpFly3.png", + "kind": "image", + "metadata": "", + "name": "ImpFly3.png", + "smoothed": false, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/ImpFly5.png", + "kind": "image", + "metadata": "", + "name": "ImpFly5.png", + "smoothed": false, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/ImpFly6.png", + "kind": "image", + "metadata": "", + "name": "ImpFly6.png", + "smoothed": false, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/ImpHurt.png", + "kind": "image", + "metadata": "", + "name": "ImpHurt.png", + "smoothed": false, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/EnemyBullet1.png", + "kind": "image", + "metadata": "", + "name": "EnemyBullet1.png", + "smoothed": false, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/EnemyBullet2.png", + "kind": "image", + "metadata": "", + "name": "EnemyBullet2.png", + "smoothed": false, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/SpiderShadow.png", + "kind": "image", + "metadata": "", + "name": "SpiderShadow.png", + "smoothed": false, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "assets/SpiderDropping.png", + "kind": "image", + "metadata": "", + "name": "SpiderDropping.png", + "smoothed": false, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "assets/Line light joystick border.png", + "kind": "image", + "metadata": "", + "name": "Line light joystick border.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Multitouch joysticks/1da99d3c0a498c8b22ca295dfb33d5f121d13ac6241f68fb81dd730955db5e1f_Line light joystick border.png", + "name": "Line light joystick border.png" + } + }, + { + "alwaysLoaded": false, + "file": "assets/Line light joystick thumb.png", + "kind": "image", + "metadata": "", + "name": "Line light joystick thumb.png", + "smoothed": false, + "userAdded": false, + "origin": { + "identifier": "https://asset-resources.gdevelop.io/public-resources/Multitouch joysticks/6e451170154c7ae31c25495ad2d2ac48ba8c8d62e93e90bfcfe3c7e509c9ce66_Line light joystick thumb.png", + "name": "Line light joystick thumb.png" + } + }, + { + "alwaysLoaded": false, + "file": "desktop-icon-512.png", + "kind": "image", + "metadata": "", + "name": "desktop-icon-512.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "android-icon-192.png", + "kind": "image", + "metadata": "", + "name": "android-icon-192.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "android-icon-144.png", + "kind": "image", + "metadata": "", + "name": "android-icon-144.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "android-icon-96.png", + "kind": "image", + "metadata": "", + "name": "android-icon-96.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "android-icon-72.png", + "kind": "image", + "metadata": "", + "name": "android-icon-72.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "android-icon-48.png", + "kind": "image", + "metadata": "", + "name": "android-icon-48.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "android-icon-36.png", + "kind": "image", + "metadata": "", + "name": "android-icon-36.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "android-windowSplashScreenAnimatedIcon.png", + "kind": "image", + "metadata": "", + "name": "android-windowSplashScreenAnimatedIcon.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "ios-icon-1024.png", + "kind": "image", + "metadata": "", + "name": "ios-icon-1024.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "ios-icon-180.png", + "kind": "image", + "metadata": "", + "name": "ios-icon-180.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "ios-icon-167.png", + "kind": "image", + "metadata": "", + "name": "ios-icon-167.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "ios-icon-152.png", + "kind": "image", + "metadata": "", + "name": "ios-icon-152.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "ios-icon-144.png", + "kind": "image", + "metadata": "", + "name": "ios-icon-144.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "ios-icon-120.png", + "kind": "image", + "metadata": "", + "name": "ios-icon-120.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "ios-icon-114.png", + "kind": "image", + "metadata": "", + "name": "ios-icon-114.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "ios-icon-100.png", + "kind": "image", + "metadata": "", + "name": "ios-icon-100.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "ios-icon-87.png", + "kind": "image", + "metadata": "", + "name": "ios-icon-87.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "ios-icon-80.png", + "kind": "image", + "metadata": "", + "name": "ios-icon-80.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "ios-icon-76.png", + "kind": "image", + "metadata": "", + "name": "ios-icon-76.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "ios-icon-72.png", + "kind": "image", + "metadata": "", + "name": "ios-icon-72.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "ios-icon-60.png", + "kind": "image", + "metadata": "", + "name": "ios-icon-60.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "ios-icon-58.png", + "kind": "image", + "metadata": "", + "name": "ios-icon-58.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "ios-icon-57.png", + "kind": "image", + "metadata": "", + "name": "ios-icon-57.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "ios-icon-50.png", + "kind": "image", + "metadata": "", + "name": "ios-icon-50.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "ios-icon-40.png", + "kind": "image", + "metadata": "", + "name": "ios-icon-40.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "ios-icon-29.png", + "kind": "image", + "metadata": "", + "name": "ios-icon-29.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "ios-icon-20.png", + "kind": "image", + "metadata": "", + "name": "ios-icon-20.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "thumbnail.png", + "kind": "image", + "metadata": "", + "name": "thumbnail.png", + "smoothed": false, + "userAdded": true + } + ], + "resourceFolders": [] + }, + "objects": [ + { + "assetStoreId": "", + "name": "Transition", + "tags": "", + "type": "PrimitiveDrawing::Drawer", + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "FlashTransitionPainter", + "type": "FlashTransitionPainter::FlashTransitionPainter", + "Timer": 1, + "Color": "255;255;255", + "Type": "", + "Direction": "", + "MaxOpacity": 255 + } + ], + "fillOpacity": 255, + "outlineSize": 1, + "outlineOpacity": 255, + "fillColor": { + "b": 0, + "g": 0, + "r": 0 + }, + "outlineColor": { + "b": 0, + "g": 0, + "r": 0 + }, + "absoluteCoordinates": false, + "clearBetweenFrames": true, + "antialiasing": "none" + }, + { + "assetStoreId": "", + "name": "Darken", + "tags": "", + "type": "PrimitiveDrawing::Drawer", + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "FlashTransitionPainter", + "type": "FlashTransitionPainter::FlashTransitionPainter", + "Timer": 1, + "Color": "255;255;255", + "Type": "", + "Direction": "", + "MaxOpacity": 255 + } + ], + "fillOpacity": 180, + "outlineSize": 1, + "outlineOpacity": 180, + "fillColor": { + "b": 0, + "g": 0, + "r": 0 + }, + "outlineColor": { + "b": 0, + "g": 0, + "r": 0 + }, + "absoluteCoordinates": true, + "clearBetweenFrames": false, + "antialiasing": "none" + } + ], + "objectsGroups": [], + "variables": [ + { + "name": "Settings", + "type": "structure", + "children": [ + { + "folded": true, + "name": "Music", + "type": "number", + "value": 50 + }, + { + "folded": true, + "name": "Sound", + "type": "number", + "value": 50 + } + ] + } + ], + "layouts": [ + { + "b": 37, + "disableInputWhenNotFocused": true, + "mangledName": "MainMenu", + "name": "MainMenu", + "r": 24, + "standardSortMethod": true, + "stopSoundsOnStartup": true, + "title": "", + "v": 20, + "uiSettings": { + "grid": true, + "gridType": "rectangular", + "gridWidth": 32, + "gridHeight": 32, + "gridOffsetX": 0, + "gridOffsetY": 0, + "gridColor": 10401023, + "gridAlpha": 0.8, + "snap": true, + "zoomFactor": 0.5017435328637433, + "windowMask": false + }, + "objectsGroups": [ + { + "name": "Buttons", + "objects": [ + { + "name": "Play" + }, + { + "name": "Settings" + }, + { + "name": "Back" + }, + { + "name": "Quit" + } + ] + } + ], + "variables": [ + { + "folded": true, + "name": "TempSettings", + "type": "string", + "value": "" + } + ], + "instances": [ + { + "angle": 357, + "customSize": true, + "height": 127, + "layer": "Title", + "name": "Title", + "persistentUuid": "e085a9cb-0111-4e77-9c02-bf87d81facd0", + "width": 379, + "x": 197, + "y": 23, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 50, + "layer": "", + "name": "Play", + "persistentUuid": "bd030748-dd27-4603-86f0-e028af4a1216", + "width": 102, + "x": 333, + "y": 191, + "zOrder": 2, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 46, + "layer": "", + "name": "Quit", + "persistentUuid": "59cdd634-4e45-4367-930c-ee8d259b34f0", + "width": 98, + "x": 335, + "y": 328, + "zOrder": 3, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 42, + "layer": "", + "name": "Settings", + "persistentUuid": "d1231d80-7115-4993-b707-58f2c85c8c5c", + "width": 206, + "x": 281, + "y": 254, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 32, + "layer": "", + "name": "Marker", + "persistentUuid": "97fbd7e1-d18e-4db4-9b32-aa44006ba598", + "width": 768, + "x": 0, + "y": 0, + "zOrder": 5, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 76, + "layer": "", + "name": "SoundVolume", + "persistentUuid": "577f5311-3be9-4c31-a8cd-b80b8d65ffa8", + "width": 138, + "x": 1211, + "y": 146, + "zOrder": 6, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 50, + "layer": "", + "name": "MusicVolume", + "persistentUuid": "d0861843-5053-486e-ae25-db876e6903aa", + "width": 138, + "x": 1211, + "y": 242, + "zOrder": 7, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 28, + "layer": "", + "name": "SoundSlider", + "persistentUuid": "2fb11ddd-f78f-4f3d-95eb-2c2362981c57", + "width": 384, + "x": 1088, + "y": 192, + "zOrder": 8, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 32, + "layer": "", + "name": "MusicSlider", + "persistentUuid": "0f5e7ef3-7df4-465f-88ef-79e2321de786", + "width": 384, + "x": 1088, + "y": 288, + "zOrder": 9, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 76, + "layer": "", + "name": "Back", + "persistentUuid": "7b3e103f-83ec-4cac-874f-195e4e36f73d", + "width": 110, + "x": 1225, + "y": 352, + "zOrder": 10, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 32, + "layer": "", + "name": "SettingsMarker", + "persistentUuid": "4aba9d72-467e-4e55-bba9-a42de645f588", + "width": 768, + "x": 896, + "y": 0, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "transition", + "name": "Transition", + "persistentUuid": "f6a12ffd-a250-4a99-80ec-4ed637f58e38", + "width": 0, + "x": 1056, + "y": -160, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + } + ], + "objects": [ + { + "assetStoreId": "", + "name": "Title", + "tags": "", + "type": "BitmapText::BitmapTextObject", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "text": "Title", + "opacity": 255, + "scale": 6, + "fontSize": 20, + "tint": "255;255;255", + "bitmapFontResourceName": "8BitOperatorPlus8Regular_Edited.fnt", + "textureAtlasResourceName": "8BitOperatorPlus8Regular_Edited3.png", + "align": "left", + "wordWrap": true + } + }, + { + "assetStoreId": "", + "name": "Play", + "tags": "", + "type": "BitmapText::BitmapTextObject", + "variables": [], + "effects": [ + { + "effectType": "Outline", + "name": "Effect", + "doubleParameters": { + "padding": 2, + "thickness": 2 + }, + "stringParameters": { + "color": "255;255;255" + }, + "booleanParameters": {} + } + ], + "behaviors": [ + { + "name": "ButtonFSM", + "type": "ButtonStates::ButtonFSM", + "ShouldCheckHovering": true, + "State": "Idle", + "TouchId": 0, + "TouchIsInside": false, + "MouseIsInside": false, + "Index": 0 + } + ], + "content": { + "text": "Play", + "opacity": 255, + "scale": 2, + "fontSize": 20, + "tint": "255;255;255", + "bitmapFontResourceName": "8BitOperatorPlus8Regular_Edited.fnt", + "textureAtlasResourceName": "8BitOperatorPlus8Regular_Edited3.png", + "align": "left", + "wordWrap": true + } + }, + { + "assetStoreId": "", + "name": "Settings", + "tags": "", + "type": "BitmapText::BitmapTextObject", + "variables": [], + "effects": [ + { + "effectType": "Outline", + "name": "Effect", + "doubleParameters": { + "padding": 2, + "thickness": 2 + }, + "stringParameters": { + "color": "255;255;255" + }, + "booleanParameters": {} + } + ], + "behaviors": [ + { + "name": "ButtonFSM", + "type": "ButtonStates::ButtonFSM", + "ShouldCheckHovering": true, + "State": "Idle", + "TouchId": 0, + "TouchIsInside": false, + "MouseIsInside": false, + "Index": 0 + } + ], + "content": { + "text": "Settings", + "opacity": 255, + "scale": 2, + "fontSize": 20, + "tint": "255;255;255", + "bitmapFontResourceName": "8BitOperatorPlus8Regular_Edited.fnt", + "textureAtlasResourceName": "8BitOperatorPlus8Regular_Edited3.png", + "align": "left", + "wordWrap": true + } + }, + { + "assetStoreId": "", + "name": "SoundVolume", + "tags": "", + "type": "BitmapText::BitmapTextObject", + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ButtonFSM", + "type": "ButtonStates::ButtonFSM", + "ShouldCheckHovering": true, + "State": "Idle", + "TouchId": 0, + "TouchIsInside": false, + "MouseIsInside": false, + "Index": 0 + } + ], + "content": { + "text": "Sound", + "opacity": 255, + "scale": 2, + "fontSize": 20, + "tint": "255;255;255", + "bitmapFontResourceName": "8BitOperatorPlus8Regular_Edited.fnt", + "textureAtlasResourceName": "8BitOperatorPlus8Regular_Edited3.png", + "align": "left", + "wordWrap": true + } + }, + { + "assetStoreId": "", + "name": "MusicVolume", + "tags": "", + "type": "BitmapText::BitmapTextObject", + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ButtonFSM", + "type": "ButtonStates::ButtonFSM", + "ShouldCheckHovering": true, + "State": "Idle", + "TouchId": 0, + "TouchIsInside": false, + "MouseIsInside": false, + "Index": 0 + } + ], + "content": { + "text": "Music", + "opacity": 255, + "scale": 2, + "fontSize": 20, + "tint": "255;255;255", + "bitmapFontResourceName": "8BitOperatorPlus8Regular_Edited.fnt", + "textureAtlasResourceName": "8BitOperatorPlus8Regular_Edited3.png", + "align": "left", + "wordWrap": true + } + }, + { + "assetStoreId": "", + "name": "Back", + "tags": "", + "type": "BitmapText::BitmapTextObject", + "variables": [], + "effects": [ + { + "effectType": "Outline", + "name": "Effect", + "doubleParameters": { + "padding": 2, + "thickness": 2 + }, + "stringParameters": { + "color": "255;255;255" + }, + "booleanParameters": {} + } + ], + "behaviors": [ + { + "name": "ButtonFSM", + "type": "ButtonStates::ButtonFSM", + "ShouldCheckHovering": true, + "State": "Idle", + "TouchId": 0, + "TouchIsInside": false, + "MouseIsInside": false, + "Index": 0 + } + ], + "content": { + "text": "Back", + "opacity": 255, + "scale": 2, + "fontSize": 20, + "tint": "255;255;255", + "bitmapFontResourceName": "8BitOperatorPlus8Regular_Edited.fnt", + "textureAtlasResourceName": "8BitOperatorPlus8Regular_Edited3.png", + "align": "left", + "wordWrap": true + } + }, + { + "assetStoreId": "", + "name": "Quit", + "tags": "", + "type": "BitmapText::BitmapTextObject", + "variables": [], + "effects": [ + { + "effectType": "Outline", + "name": "Effect", + "doubleParameters": { + "padding": 2, + "thickness": 2 + }, + "stringParameters": { + "color": "255;255;255" + }, + "booleanParameters": {} + } + ], + "behaviors": [ + { + "name": "ButtonFSM", + "type": "ButtonStates::ButtonFSM", + "ShouldCheckHovering": true, + "State": "Idle", + "TouchId": 0, + "TouchIsInside": false, + "MouseIsInside": false, + "Index": 0 + } + ], + "content": { + "text": "Quit", + "opacity": 255, + "scale": 2, + "fontSize": 20, + "tint": "255;255;255", + "bitmapFontResourceName": "8BitOperatorPlus8Regular_Edited.fnt", + "textureAtlasResourceName": "8BitOperatorPlus8Regular_Edited3.png", + "align": "left", + "wordWrap": true + } + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Marker", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Enemy_Spawn_Location.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "SettingsMarker", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Enemy_Spawn_Location.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "bfeeb465a4a164b560a2215e3ff9e78e66123af43cbf7ef1f22d56fca4271c80", + "name": "SoundSlider", + "tags": "", + "type": "PanelSpriteSlider::PanelSpriteSlider", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "BarTopPadding": 6, + "BarLeftPadding": 6, + "BarRightPadding": 6, + "BarBottomPadding": 6, + "LabelMargin": 6 + }, + "childrenContent": { + "Background": { + "bottomMargin": 4, + "height": 28, + "leftMargin": 2, + "rightMargin": 2, + "texture": "Square White Slider Border.png", + "tiled": false, + "topMargin": 4, + "width": 265 + }, + "FillBar": { + "bottomMargin": 2, + "height": 16, + "leftMargin": 0, + "rightMargin": 0, + "texture": "Square White Slider Fill Bar.png", + "tiled": false, + "topMargin": 0, + "width": 16 + }, + "Label": { + "bold": false, + "italic": false, + "smoothed": true, + "underlined": false, + "string": "It displays the value when it changes.", + "font": "", + "textAlignment": "", + "characterSize": 20, + "color": { + "b": 221, + "g": 221, + "r": 221 + } + }, + "Thumb": { + "bottomMargin": 2, + "height": 36, + "leftMargin": 1, + "rightMargin": 1, + "texture": "Square White Slider Thumb.png", + "tiled": false, + "topMargin": 2, + "width": 22 + } + } + }, + { + "assetStoreId": "bfeeb465a4a164b560a2215e3ff9e78e66123af43cbf7ef1f22d56fca4271c80", + "name": "MusicSlider", + "tags": "", + "type": "PanelSpriteSlider::PanelSpriteSlider", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "BarTopPadding": 6, + "BarLeftPadding": 6, + "BarRightPadding": 6, + "BarBottomPadding": 6, + "LabelMargin": 6 + }, + "childrenContent": { + "Background": { + "bottomMargin": 4, + "height": 28, + "leftMargin": 2, + "rightMargin": 2, + "texture": "Square White Slider Border.png", + "tiled": false, + "topMargin": 4, + "width": 265 + }, + "FillBar": { + "bottomMargin": 2, + "height": 16, + "leftMargin": 0, + "rightMargin": 0, + "texture": "Square White Slider Fill Bar.png", + "tiled": false, + "topMargin": 0, + "width": 16 + }, + "Label": { + "bold": false, + "italic": false, + "smoothed": true, + "underlined": false, + "string": "It displays the value when it changes.", + "font": "", + "textAlignment": "", + "characterSize": 20, + "color": { + "b": 221, + "g": 221, + "r": 221 + } + }, + "Thumb": { + "bottomMargin": 2, + "height": 36, + "leftMargin": 1, + "rightMargin": 1, + "texture": "Square White Slider Thumb.png", + "tiled": false, + "topMargin": 2, + "width": 22 + } + } + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Setting game defaults and loading in saved settings" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Marker" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "SettingsMarker" + ] + }, + { + "type": { + "value": "LireFichierTxt" + }, + "parameters": [ + "\"Settings\"", + "\"Settings\"", + "", + "TempSettings" + ] + }, + { + "type": { + "value": "JSONToGlobalVariableStructure" + }, + "parameters": [ + "VariableString(TempSettings)", + "Settings" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::SetValue" + }, + "parameters": [ + "SoundSlider", + "=", + "GlobalVariable(Settings.Sound)", + "" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::SetValue" + }, + "parameters": [ + "MusicSlider", + "=", + "GlobalVariable(Settings.Music)", + "" + ] + }, + { + "type": { + "value": "ZoomCamera" + }, + "parameters": [ + "", + "1.5", + "\"transition\"", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Visual and sound effects when interacting with the Buttons" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsHovered" + }, + "parameters": [ + "Buttons", + "ButtonFSM", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "EnableEffect" + }, + "parameters": [ + "Buttons", + "\"Effect\"", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "ButtonStates::ButtonFSM::IsHovered" + }, + "parameters": [ + "Buttons", + "ButtonFSM", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "EnableEffect" + }, + "parameters": [ + "Buttons", + "\"Effect\"", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::IsBeingDragged" + }, + "parameters": [ + "SoundSlider", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarGlobal" + }, + "parameters": [ + "Settings.Sound", + "=", + "SoundSlider.Value()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::IsBeingDragged" + }, + "parameters": [ + "MusicSlider", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarGlobal" + }, + "parameters": [ + "Settings.Music", + "=", + "MusicSlider.Value()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Results for Buttons being clicked" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsClicked" + }, + "parameters": [ + "Play", + "ButtonFSM", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::PaintEffect" + }, + "parameters": [ + "Transition", + "FlashTransitionPainter", + "\"0;0;0\"", + "1", + "\"Circular\"", + "\"Forward\"", + "", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::PaintEffectIsEnd" + }, + "parameters": [ + "Transition", + "FlashTransitionPainter", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Scene" + }, + "parameters": [ + "", + "\"Untitled scene\"", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsClicked" + }, + "parameters": [ + "Quit", + "ButtonFSM", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Quit" + }, + "parameters": [ + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsClicked" + }, + "parameters": [ + "Settings", + "ButtonFSM", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween::TweenCameraPosition" + }, + "parameters": [ + "", + "\"CameraMove\"", + "SettingsMarker.CenterX()", + "CameraCenterY()", + "", + "1000", + "\"easeInOutQuad\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::IsClicked" + }, + "parameters": [ + "Back", + "ButtonFSM", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween::TweenCameraPosition" + }, + "parameters": [ + "", + "\"CameraMove\"", + "Marker.CenterX()", + "CameraCenterY()", + "", + "1000", + "\"easeInOutQuad\"" + ] + }, + { + "type": { + "value": "EcrireFichierTxt" + }, + "parameters": [ + "\"Settings\"", + "\"Settings\"", + "GlobalVarToJSON(Settings)" + ] + } + ] + } + ], + "layers": [ + { + "ambientLightColorB": 14020160, + "ambientLightColorG": 0, + "ambientLightColorR": 150995054, + "camera3DFarPlaneDistance": 10000, + "camera3DFieldOfView": 45, + "camera3DNearPlaneDistance": 0.1, + "followBaseLayerCamera": false, + "isLightingLayer": false, + "isLocked": false, + "name": "", + "renderingType": "", + "visibility": true, + "cameras": [ + { + "defaultSize": true, + "defaultViewport": true, + "height": 0, + "viewportBottom": 1, + "viewportLeft": 0, + "viewportRight": 1, + "viewportTop": 0, + "width": 0 + } + ], + "effects": [] + }, + { + "ambientLightColorB": 14164184, + "ambientLightColorG": 12, + "ambientLightColorR": 6071152, + "camera3DFarPlaneDistance": 10000, + "camera3DFieldOfView": 45, + "camera3DNearPlaneDistance": 0.1, + "followBaseLayerCamera": false, + "isLightingLayer": false, + "isLocked": false, + "name": "Title", + "renderingType": "", + "visibility": true, + "cameras": [], + "effects": [] + }, + { + "ambientLightColorB": 11611592, + "ambientLightColorG": 12, + "ambientLightColorR": 6070592, + "camera3DFarPlaneDistance": 10000, + "camera3DFieldOfView": 45, + "camera3DNearPlaneDistance": 0.1, + "followBaseLayerCamera": false, + "isLightingLayer": false, + "isLocked": false, + "name": "transition", + "renderingType": "", + "visibility": true, + "cameras": [], + "effects": [] + } + ], + "behaviorsSharedData": [ + { + "name": "ButtonFSM", + "type": "ButtonStates::ButtonFSM" + }, + { + "name": "FlashTransitionPainter", + "type": "FlashTransitionPainter::FlashTransitionPainter" + } + ] + }, + { + "b": 37, + "disableInputWhenNotFocused": true, + "mangledName": "Untitled_32scene", + "name": "Untitled scene", + "r": 24, + "standardSortMethod": true, + "stopSoundsOnStartup": true, + "title": "", + "v": 20, + "uiSettings": { + "grid": true, + "gridType": "rectangular", + "gridWidth": 32, + "gridHeight": 16, + "gridOffsetX": 0, + "gridOffsetY": 0, + "gridColor": 10401023, + "gridAlpha": 0.2, + "snap": true, + "zoomFactor": 0.7370816317994106, + "windowMask": false + }, + "objectsGroups": [ + { + "name": "Entities", + "objects": [ + { + "name": "Player" + }, + { + "name": "Bullet" + }, + { + "name": "GhostEnemy" + }, + { + "name": "SpiderEnemy" + }, + { + "name": "ImpEnemy" + } + ] + }, + { + "name": "LevelingButtons", + "objects": [ + { + "name": "PowerButton" + }, + { + "name": "FireRateButton" + }, + { + "name": "AccuracyButton" + } + ] + }, + { + "name": "Enemies", + "objects": [ + { + "name": "GhostEnemy" + }, + { + "name": "SpiderEnemy" + }, + { + "name": "ImpEnemy" + } + ] + } + ], + "variables": [ + { + "name": "Variable", + "type": "structure", + "children": [ + { + "folded": true, + "name": "Accuracy", + "type": "number", + "value": 1 + }, + { + "folded": true, + "name": "CurrentEXP", + "type": "number", + "value": 0 + }, + { + "folded": true, + "name": "FireRate", + "type": "number", + "value": 1 + }, + { + "folded": true, + "name": "MaxEXP", + "type": "number", + "value": 10 + }, + { + "folded": true, + "name": "Power", + "type": "number", + "value": 1 + } + ] + }, + { + "folded": true, + "name": "Wave", + "type": "number", + "value": 1 + }, + { + "name": "RandomEnemy", + "type": "number", + "value": 0 + } + ], + "instances": [ + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Floor", + "persistentUuid": "d9113390-20f0-4491-8cd1-d4cfff0e0da4", + "width": 0, + "x": 192, + "y": 96, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Player", + "persistentUuid": "898bef57-dc9a-4d2c-9fae-7a764eeffed4", + "width": 0, + "x": 396, + "y": 251, + "zOrder": 2, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Gun", + "persistentUuid": "e0860cb0-dd24-47ce-80b2-e92e1022a0db", + "width": 0, + "x": 422, + "y": 236, + "zOrder": 3, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "Center", + "persistentUuid": "fdfa7eb5-650a-40ed-b8c7-7ea0dabd1c42", + "width": 0, + "x": 384, + "y": 192, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "SpawnPoints", + "persistentUuid": "fcfbfae9-f510-481e-b8f5-f2dbe45e2b88", + "width": 0, + "x": 616, + "y": 72, + "zOrder": 5, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "SpawnPoints", + "persistentUuid": "45b336a5-ddf1-4f08-9651-e2feea7f4fcc", + "width": 0, + "x": 152, + "y": 72, + "zOrder": 6, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "SpawnPoints", + "persistentUuid": "ef42bd0c-517c-457e-bef2-84a99f0b9604", + "width": 0, + "x": 616, + "y": 328, + "zOrder": 7, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "SpawnPoints", + "persistentUuid": "e3197ba7-0a5b-4628-8265-02066df47cc0", + "width": 0, + "x": 152, + "y": 328, + "zOrder": 8, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "SpawnPoints", + "persistentUuid": "5f3d8fda-32a3-4523-bda9-60cd9cc9ed4b", + "width": 0, + "x": 616, + "y": 200, + "zOrder": 9, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "SpawnPoints", + "persistentUuid": "aabdd61d-aab3-423a-b436-84c62295c79d", + "width": 0, + "x": 152, + "y": 200, + "zOrder": 10, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "SpawnPoints", + "persistentUuid": "77905709-fa64-47ba-9297-727f99a0a124", + "width": 0, + "x": 456, + "y": 344, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "SpawnPoints", + "persistentUuid": "6b81d45b-b170-4dde-bf7f-23929ef3cf01", + "width": 0, + "x": 328, + "y": 72, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 204, + "layer": "", + "name": "WallCollision", + "persistentUuid": "7048aa1f-992f-47bb-b7b5-78fc92a97049", + "width": 21, + "x": 555, + "y": 116, + "zOrder": 13, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 209, + "layer": "", + "name": "WallCollision", + "persistentUuid": "6bda0740-55dd-4564-83f3-c66448dd5a27", + "width": 21, + "x": 192, + "y": 111, + "zOrder": 13, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 26, + "layer": "", + "name": "WallCollision", + "persistentUuid": "744c39fe-8c62-4e4f-b40e-0d6fce38a703", + "width": 384, + "x": 192, + "y": 294, + "zOrder": 14, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 28, + "layer": "", + "name": "WallCollision", + "persistentUuid": "b3c923bb-ff8e-4a24-a6a5-667262e84478", + "width": 384, + "x": 192, + "y": 102, + "zOrder": 15, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "Vignette", + "name": "vignette", + "persistentUuid": "938aa876-c8a4-486b-a27f-0cc15e8e0629", + "width": 0, + "x": 192, + "y": 96, + "zOrder": 16, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "transition", + "name": "Transition", + "persistentUuid": "a902be8c-0e27-42db-a6a6-be8051858829", + "width": 0, + "x": 817, + "y": -40, + "zOrder": 17, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 32, + "height": 28, + "layer": "UI", + "name": "RedFlatBar", + "persistentUuid": "e8983d4c-378d-446e-ade0-511a3445b7c4", + "width": 768, + "x": 0, + "y": 7, + "zOrder": 18, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "LevelUp", + "name": "Stats", + "persistentUuid": "3134243a-5fdb-42ca-8e92-5ed1c8ad47d7", + "width": 0, + "x": 288, + "y": 128, + "zOrder": 19, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 32, + "height": 31, + "layer": "LevelUp", + "name": "PowerButton", + "persistentUuid": "fb52ea9e-f0ad-4331-a705-a5a7b10537ed", + "width": 32, + "x": 224, + "y": 128, + "zOrder": 20, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 32, + "height": 32, + "layer": "LevelUp", + "name": "FireRateButton", + "persistentUuid": "0fe92404-4a7d-4def-b3fa-8ddd572c0654", + "width": 32, + "x": 224, + "y": 176, + "zOrder": 21, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 32, + "height": 32, + "layer": "LevelUp", + "name": "AccuracyButton", + "persistentUuid": "71e27148-e0db-4e02-9cd2-aefe0d64018d", + "width": 32, + "x": 224, + "y": 224, + "zOrder": 22, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "LevelUp", + "name": "Darken", + "persistentUuid": "b346d150-55b4-416c-ba5e-d154507ff202", + "width": 0, + "x": 832, + "y": 16, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 0, + "height": 40, + "layer": "UI", + "name": "WaveNumber", + "persistentUuid": "ae112c77-f8ca-44d4-a1df-120d532c883d", + "width": 251, + "x": 5, + "y": 391, + "zOrder": 25, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "SpiderSpawnPoints", + "persistentUuid": "d46d48fb-70cf-4c19-ad6b-eec4f91b6872", + "width": 0, + "x": 488, + "y": 168, + "zOrder": 26, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "SpiderSpawnPoints", + "persistentUuid": "462da85a-5dcc-4d04-8f1f-66b8e257bb4d", + "width": 0, + "x": 248, + "y": 184, + "zOrder": 27, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "SpiderSpawnPoints", + "persistentUuid": "0c12ce60-647c-47ae-bb00-77de59242fd5", + "width": 0, + "x": 280, + "y": 264, + "zOrder": 28, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "SpiderSpawnPoints", + "persistentUuid": "90538e2d-bbaa-4d24-a93d-63a17ff71cf1", + "width": 0, + "x": 520, + "y": 248, + "zOrder": 29, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "SpiderSpawnPoints", + "persistentUuid": "bf01bad5-b2a3-4dfa-b5bc-c4ef7977957d", + "width": 0, + "x": 248, + "y": 248, + "zOrder": 30, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "SpiderSpawnPoints", + "persistentUuid": "43540561-9f76-471e-94d7-78fd835047ae", + "width": 0, + "x": 520, + "y": 184, + "zOrder": 31, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "SpiderSpawnPoints", + "persistentUuid": "f5c24097-cb6c-4244-b8c8-feaf99942ce3", + "width": 0, + "x": 488, + "y": 264, + "zOrder": 32, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "name": "SpiderSpawnPoints", + "persistentUuid": "c8a3abd4-4d62-4829-8681-8a7e3644104c", + "width": 0, + "x": 280, + "y": 168, + "zOrder": 33, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 32, + "height": 96, + "layer": "MobileControls", + "name": "Movement", + "persistentUuid": "6c9f1cd5-970f-42b1-a77e-80129b1ef763", + "width": 96, + "x": 80, + "y": 336, + "zOrder": 34, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "depth": 32, + "height": 96, + "layer": "MobileControls", + "name": "Aiming", + "persistentUuid": "35c16455-2e53-4abd-9bc7-3e9e06abc880", + "width": 96, + "x": 688, + "y": 336, + "zOrder": 35, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + } + ], + "objects": [ + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Floor", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TheRoom2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Player", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "TopDownMovement", + "type": "TopDownMovementBehavior::TopDownMovementBehavior", + "acceleration": 700, + "maxSpeed": 125, + "deceleration": 8000, + "allowDiagonals": true, + "angleOffset": 0, + "angularMaxSpeed": 180, + "customIsometryAngle": 30, + "ignoreDefaultControls": false, + "movementAngleOffset": 0, + "rotateObject": false, + "viewpoint": "TopDown" + }, + { + "name": "TopDownMultitouchMapper", + "type": "SpriteMultitouchJoystick::TopDownMultitouchMapper", + "TopDownMovement": "TopDownMovement", + "ControllerIdentifier": 1, + "JoystickIdentifier": "Primary", + "StickMode": "Analog" + } + ], + "animations": [ + { + "name": "Idle", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "Player22.png", + "points": [ + { + "name": "Gun", + "x": 12, + "y": 18.5 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 24.5 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 6, + "y": 7 + }, + { + "x": 18, + "y": 7 + }, + { + "x": 18, + "y": 24 + }, + { + "x": 6, + "y": 24 + } + ] + ] + } + ] + } + ] + }, + { + "name": "Run", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.12, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "Player1.png", + "points": [ + { + "name": "Gun", + "x": 12, + "y": 18.5 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 24.5 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 6, + "y": 7 + }, + { + "x": 18, + "y": 7 + }, + { + "x": 18, + "y": 24 + }, + { + "x": 6, + "y": 24 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Player2.png", + "points": [ + { + "name": "Gun", + "x": 12, + "y": 18.5 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 24.5 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 6, + "y": 7 + }, + { + "x": 18, + "y": 7 + }, + { + "x": 18, + "y": 24 + }, + { + "x": 6, + "y": 24 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Player3.png", + "points": [ + { + "name": "Gun", + "x": 12, + "y": 18.5 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 24.5 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 6, + "y": 7 + }, + { + "x": 18, + "y": 7 + }, + { + "x": 18, + "y": 24 + }, + { + "x": 6, + "y": 24 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Player4.png", + "points": [ + { + "name": "Gun", + "x": 12, + "y": 18.5 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 24.5 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 6, + "y": 7 + }, + { + "x": 18, + "y": 7 + }, + { + "x": 18, + "y": 24 + }, + { + "x": 6, + "y": 24 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Gun", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "FireBullet", + "type": "FireBullet::FireBullet", + "FireCooldown": 0.35, + "HasJustFired": false, + "FiringArc": 45, + "BulletQuantity": 1, + "AngleVariance": 15, + "RotateBullet": true, + "AmmoQuantity": 0, + "ShotsPerReload": 0, + "ReloadDuration": 1, + "MaxAmmo": 0, + "ShotsBeforeNextReload": 0, + "TotalShotsFired": 0, + "TotalBulletsCreated": 0, + "StartingAmmo": 0, + "TotalReloadsCompleted": 0, + "UnlimitedAmmo": true, + "ReloadInProgress": false, + "HeatIncreasePerShot": 0, + "HeatLevel": 0, + "AutomaticReloading": true, + "OverheatDuration": 0, + "LinearCoolingRate": 0.1, + "ExponentialCoolingRate": 0.3, + "BulletLayer": "", + "RandomizedAngle": 0, + "BulletSpeedVariance": 0 + }, + { + "name": "ShakeObject_PositionAngle", + "type": "ShakeObject::ShakeObject_PositionAngle" + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Gun1.png", + "points": [ + { + "name": "BulletPoint", + "x": 24, + "y": 7 + } + ], + "originPoint": { + "name": "origine", + "x": 14, + "y": 8 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Bullet", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "Bullet.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 4, + "y": 4 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 2, + "y": 3 + }, + { + "x": 6, + "y": 3 + }, + { + "x": 6, + "y": 5 + }, + { + "x": 2, + "y": 5 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "GhostEnemy", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "BoidsMovement", + "type": "BoidsMovement::BoidsMovement", + "MaxSpeed": 25, + "MaxAcceleration": 25, + "ShouldRotate": false, + "CohesionRadius": 64, + "AlignmentRadius": 48, + "SeparationRadius": 32, + "CohesionWeight": 1, + "AlignmentWeight": 1, + "SeparationWeight": 2, + "TrajectoryDistance": 2 + }, + { + "name": "Health", + "type": "Health::Health", + "Health": 3, + "CurrentHealth": 0, + "MaxHealth": 3, + "DamageCooldown": 0, + "IsHealthJustDamaged": false, + "HealthRegenRate": 0, + "HealthRegenDelay": 0, + "AllowOverHealing": false, + "HitAtLeastOnce": false, + "IsJustHealed": false, + "CurrentShieldPoints": 0, + "MaxShieldPoints": 0, + "ShieldDuration": 5, + "ShieldRegenRate": 0, + "BlockExcessDamage": false, + "ShieldRegenDelay": 0, + "IsShieldJustDamaged": false, + "ChanceToDodge": 0, + "DamageToBeApplied": 0, + "FlatDamageReduction": 0, + "PercentDamageReduction": 0, + "IsJustDodged": false, + "ShieldDamageTaken": 0, + "HealToBeApplied": 0 + } + ], + "animations": [ + { + "name": "Walking", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.18, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "Ghost1.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 26 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Ghost2.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 26 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Ghost3.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 26 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Ghost4.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 26 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + } + ] + } + ] + }, + { + "name": "Hurt", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.12, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "Ghost_Hurt1.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 26 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Ghost_Hurt2.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 26 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Ghost_Hurt3.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 26 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Ghost_Hurt4.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 26 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "SpiderEnemy", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "Health", + "type": "Health::Health", + "Health": 3, + "CurrentHealth": 0, + "MaxHealth": 3, + "DamageCooldown": 0, + "IsHealthJustDamaged": false, + "HealthRegenRate": 0, + "HealthRegenDelay": 0, + "AllowOverHealing": false, + "HitAtLeastOnce": false, + "IsJustHealed": false, + "CurrentShieldPoints": 0, + "MaxShieldPoints": 0, + "ShieldDuration": 5, + "ShieldRegenRate": 0, + "BlockExcessDamage": false, + "ShieldRegenDelay": 0, + "IsShieldJustDamaged": false, + "ChanceToDodge": 0, + "DamageToBeApplied": 0, + "FlatDamageReduction": 0, + "PercentDamageReduction": 0, + "IsJustDodged": false, + "ShieldDamageTaken": 0, + "HealToBeApplied": 0 + } + ], + "animations": [ + { + "name": "Walking", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.18, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "Spider1.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 22 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Spider2.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 22 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Spider3.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 22 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "Spider4.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 22 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + } + ] + } + ] + }, + { + "name": "Hurt", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.12, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "SpiderHurt.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 22 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "SpiderCharging1.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 22 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "SpiderCharging2.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 22 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "SpiderCharging1.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 22 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "ImpEnemy", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "BoidsMovement", + "type": "BoidsMovement::BoidsMovement", + "MaxSpeed": 10, + "MaxAcceleration": 10, + "ShouldRotate": false, + "CohesionRadius": 64, + "AlignmentRadius": 48, + "SeparationRadius": 32, + "CohesionWeight": 1, + "AlignmentWeight": 1, + "SeparationWeight": 2, + "TrajectoryDistance": 2 + }, + { + "name": "FireBullet", + "type": "FireBullet::FireBullet", + "FireCooldown": 7, + "HasJustFired": false, + "FiringArc": 45, + "BulletQuantity": 1, + "AngleVariance": 0, + "RotateBullet": true, + "AmmoQuantity": 0, + "ShotsPerReload": 0, + "ReloadDuration": 1, + "MaxAmmo": 0, + "ShotsBeforeNextReload": 0, + "TotalShotsFired": 0, + "TotalBulletsCreated": 0, + "StartingAmmo": 0, + "TotalReloadsCompleted": 0, + "UnlimitedAmmo": true, + "ReloadInProgress": false, + "HeatIncreasePerShot": 0, + "HeatLevel": 0, + "AutomaticReloading": true, + "OverheatDuration": 0, + "LinearCoolingRate": 0.1, + "ExponentialCoolingRate": 0.3, + "BulletLayer": "", + "RandomizedAngle": 0, + "BulletSpeedVariance": 0 + }, + { + "name": "Health", + "type": "Health::Health", + "Health": 3, + "CurrentHealth": 0, + "MaxHealth": 3, + "DamageCooldown": 0, + "IsHealthJustDamaged": false, + "HealthRegenRate": 0, + "HealthRegenDelay": 0, + "AllowOverHealing": false, + "HitAtLeastOnce": false, + "IsJustHealed": false, + "CurrentShieldPoints": 0, + "MaxShieldPoints": 0, + "ShieldDuration": 5, + "ShieldRegenRate": 0, + "BlockExcessDamage": false, + "ShieldRegenDelay": 0, + "IsShieldJustDamaged": false, + "ChanceToDodge": 0, + "DamageToBeApplied": 0, + "FlatDamageReduction": 0, + "PercentDamageReduction": 0, + "IsJustDodged": false, + "ShieldDamageTaken": 0, + "HealToBeApplied": 0 + } + ], + "animations": [ + { + "name": "Walking", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.18, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "ImpFly1.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 16, + "y": 28 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "ImpFly2.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 16, + "y": 28 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "ImpFly3.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 16, + "y": 28 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + } + ] + } + ] + }, + { + "name": "Hurt", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.12, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "ImpHurt.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 16, + "y": 28 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "ImpFly5.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 16, + "y": 28 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "ImpFly6.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 16, + "y": 28 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "ImpFly5.png", + "points": [ + { + "name": "HealthBar", + "x": 12, + "y": 3 + } + ], + "originPoint": { + "name": "origine", + "x": 16, + "y": 28 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 7, + "y": 8 + }, + { + "x": 17, + "y": 8 + }, + { + "x": 17, + "y": 28.5 + }, + { + "x": 7, + "y": 28.5 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Center", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Collision Masks.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "SpawnPoints", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Enemy_Spawn_Location.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 8, + "y": 8 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "SpiderSpawnPoints", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Enemy_Spawn_Location.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 8, + "y": 8 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "HealthBar_Enemy", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "EnemyHealthBar2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 6, + "y": 1 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "WallCollision", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Collision Masks.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "vignette", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Vingette.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "3d6c54e76a9a06cbd7629c1e78388d4ab808bbf36d644c61d6a14c9ad34d4f89", + "name": "RedFlatBar", + "tags": "", + "type": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "PreviousHighValueDuration": 0, + "ShowLabel": true, + "BarTopPadding": 4, + "BarBottomPadding": 6, + "BarLeftPadding": 4, + "BarRightPadding": 4, + "MaxValue": 10, + "InitialValue": 0 + }, + "childrenContent": { + "Background": { + "bottomMargin": 6, + "height": 34, + "leftMargin": 4, + "rightMargin": 4, + "texture": "Flat Bar White Border.png", + "tiled": true, + "topMargin": 6, + "width": 224 + }, + "Buffer": { + "bottomMargin": 0, + "height": 24, + "leftMargin": 0, + "rightMargin": 0, + "texture": "Flat Bar Red Fill Bar.png", + "tiled": true, + "topMargin": 0, + "width": 24 + }, + "FillBar": { + "bottomMargin": 0, + "height": 24, + "leftMargin": 0, + "rightMargin": 0, + "texture": "Flat Bar Red Fill Bar.png", + "tiled": true, + "topMargin": 0, + "width": 24 + }, + "Label": { + "bold": false, + "italic": false, + "smoothed": true, + "underlined": false, + "string": "8 / 16", + "font": "", + "textAlignment": "center", + "characterSize": 16, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + } + } + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "EXP_Point", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "EXPPoint", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "metadata": "{\"pskl\":{}}", + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "EXPPoint2", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "", + "name": "Stats", + "tags": "", + "type": "BitmapText::BitmapTextObject", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "text": "Power: 1\nFire Rate: 1\nAccuracy: 1", + "opacity": 255, + "scale": 2, + "fontSize": 20, + "tint": "255;255;255", + "bitmapFontResourceName": "8BitOperatorPlus8Regular_Edited.fnt", + "textureAtlasResourceName": "8BitOperatorPlus8Regular_Edited3.png", + "align": "left", + "wordWrap": true + } + }, + { + "assetStoreId": "f0c3d7ae6099e3b9b8beed4e30b555107550b4fb2a5879e984a014b1e06865bf", + "name": "PowerButton", + "tags": "", + "type": "PanelSpriteButton::PanelSpriteButton", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "LeftPadding": 0, + "RightPadding": 0, + "PressedLabelOffsetY": 4, + "BottomPadding": 6, + "TopPadding": 0, + "HoveredFadeOutDuration": 0 + }, + "childrenContent": { + "Hovered": { + "bottomMargin": 10, + "height": 64, + "leftMargin": 6, + "rightMargin": 6, + "texture": "Transparent Button With White Blue Border_Hovered.png", + "tiled": false, + "topMargin": 10, + "width": 192 + }, + "Idle": { + "bottomMargin": 10, + "height": 64, + "leftMargin": 6, + "rightMargin": 6, + "texture": "Transparent Button With White Blue Border_Idle.png", + "tiled": false, + "topMargin": 10, + "width": 192 + }, + "Label": { + "bold": false, + "italic": false, + "smoothed": true, + "underlined": false, + "string": "", + "font": "Kenney Mini Square.ttf", + "textAlignment": "center", + "characterSize": 40, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + "Pressed": { + "bottomMargin": 10, + "height": 64, + "leftMargin": 6, + "rightMargin": 6, + "texture": "Transparent Button With White Blue Border_Pressed.png", + "tiled": false, + "topMargin": 10, + "width": 192 + } + } + }, + { + "assetStoreId": "f0c3d7ae6099e3b9b8beed4e30b555107550b4fb2a5879e984a014b1e06865bf", + "name": "FireRateButton", + "tags": "", + "type": "PanelSpriteButton::PanelSpriteButton", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "LeftPadding": 0, + "RightPadding": 0, + "PressedLabelOffsetY": 4, + "BottomPadding": 6, + "TopPadding": 0, + "HoveredFadeOutDuration": 0 + }, + "childrenContent": { + "Hovered": { + "bottomMargin": 10, + "height": 64, + "leftMargin": 6, + "rightMargin": 6, + "texture": "Transparent Button With White Blue Border_Hovered.png", + "tiled": false, + "topMargin": 10, + "width": 192 + }, + "Idle": { + "bottomMargin": 10, + "height": 64, + "leftMargin": 6, + "rightMargin": 6, + "texture": "Transparent Button With White Blue Border_Idle.png", + "tiled": false, + "topMargin": 10, + "width": 192 + }, + "Label": { + "bold": false, + "italic": false, + "smoothed": true, + "underlined": false, + "string": "", + "font": "Kenney Mini Square.ttf", + "textAlignment": "center", + "characterSize": 45, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + "Pressed": { + "bottomMargin": 10, + "height": 64, + "leftMargin": 6, + "rightMargin": 6, + "texture": "Transparent Button With White Blue Border_Pressed.png", + "tiled": false, + "topMargin": 10, + "width": 192 + } + } + }, + { + "assetStoreId": "f0c3d7ae6099e3b9b8beed4e30b555107550b4fb2a5879e984a014b1e06865bf", + "name": "AccuracyButton", + "tags": "", + "type": "PanelSpriteButton::PanelSpriteButton", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "LeftPadding": 0, + "RightPadding": 0, + "PressedLabelOffsetY": 4, + "BottomPadding": 6, + "TopPadding": 0, + "HoveredFadeOutDuration": 0 + }, + "childrenContent": { + "Hovered": { + "bottomMargin": 10, + "height": 64, + "leftMargin": 6, + "rightMargin": 6, + "texture": "Transparent Button With White Blue Border_Hovered.png", + "tiled": false, + "topMargin": 10, + "width": 192 + }, + "Idle": { + "bottomMargin": 10, + "height": 64, + "leftMargin": 6, + "rightMargin": 6, + "texture": "Transparent Button With White Blue Border_Idle.png", + "tiled": false, + "topMargin": 10, + "width": 192 + }, + "Label": { + "bold": false, + "italic": false, + "smoothed": true, + "underlined": false, + "string": "", + "font": "Kenney Mini Square.ttf", + "textAlignment": "center", + "characterSize": 45, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + "Pressed": { + "bottomMargin": 10, + "height": 64, + "leftMargin": 6, + "rightMargin": 6, + "texture": "Transparent Button With White Blue Border_Pressed.png", + "tiled": false, + "topMargin": 10, + "width": 192 + } + } + }, + { + "assetStoreId": "", + "bold": false, + "italic": false, + "name": "WaveNumber", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "effects": [], + "behaviors": [], + "string": "Wave: 1", + "font": "Kenney Mini Square.ttf", + "textAlignment": "left", + "characterSize": 40, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + { + "adaptCollisionMaskAutomatically": true, + "assetStoreId": "", + "name": "EnemyBullet", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.5, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "EnemyBullet1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 9.5, + "y": 6.5 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 2, + "y": 0 + }, + { + "x": 19, + "y": 0 + }, + { + "x": 19, + "y": 13 + }, + { + "x": 2, + "y": 13 + } + ] + ] + }, + { + "hasCustomCollisionMask": true, + "image": "EnemyBullet2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 9.5, + "y": 6.5 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 2, + "y": 0 + }, + { + "x": 19, + "y": 0 + }, + { + "x": 19, + "y": 13 + }, + { + "x": 2, + "y": 13 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": true, + "assetStoreId": "", + "name": "Shadow", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "Tween", + "type": "Tween::TweenBehavior" + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "SpiderShadow.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 12, + "y": 22 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 6, + "y": 19 + }, + { + "x": 18, + "y": 19 + }, + { + "x": 18, + "y": 25 + }, + { + "x": 6, + "y": 25 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": true, + "assetStoreId": "", + "name": "Drop", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "Tween", + "type": "Tween::TweenBehavior" + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": true, + "image": "SpiderDropping.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 12, + "y": 22 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 8, + "y": 10 + }, + { + "x": 16, + "y": 10 + }, + { + "x": 16, + "y": 17 + }, + { + "x": 8, + "y": 17 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "assetStoreId": "112c69f62e03fa6df7716cc6b8f174c17857fbf71c8d3fffd16fa8fdbfa49bf1", + "name": "Movement", + "tags": "", + "type": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", + "variables": [], + "effects": [], + "behaviors": [], + "content": {}, + "childrenContent": { + "Border": { + "adaptCollisionMaskAutomatically": false, + "updateIfNotVisible": false, + "animations": [ + { + "name": "Idle", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Line light joystick border.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + "Thumb": { + "adaptCollisionMaskAutomatically": false, + "updateIfNotVisible": false, + "animations": [ + { + "name": "Idle", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Line light joystick thumb.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + } + } + }, + { + "assetStoreId": "112c69f62e03fa6df7716cc6b8f174c17857fbf71c8d3fffd16fa8fdbfa49bf1", + "name": "Aiming", + "tags": "", + "type": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", + "variables": [], + "effects": [], + "behaviors": [], + "content": { + "ControllerIdentifier": 2, + "JoystickIdentifier": "Secondary" + }, + "childrenContent": { + "Border": { + "adaptCollisionMaskAutomatically": false, + "updateIfNotVisible": false, + "animations": [ + { + "name": "Idle", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Line light joystick border.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + "Thumb": { + "adaptCollisionMaskAutomatically": false, + "updateIfNotVisible": false, + "animations": [ + { + "name": "Idle", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Line light joystick thumb.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + } + } + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Beginning of scene", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Setting the camera and game defaults" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ZoomCamera" + }, + "parameters": [ + "", + "2", + "", + "" + ] + }, + { + "type": { + "value": "ZoomCamera" + }, + "parameters": [ + "", + "2", + "\"Vignette\"", + "" + ] + }, + { + "type": { + "value": "CentreCamera" + }, + "parameters": [ + "", + "Floor", + "", + "", + "" + ] + }, + { + "type": { + "value": "CentreCamera" + }, + "parameters": [ + "", + "vignette", + "", + "\"Vignette\"", + "" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "WallCollision" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "SpiderSpawnPoints" + ] + }, + { + "type": { + "value": "CameraShake::SetLayerRotationAmplitude" + }, + "parameters": [ + "", + "1", + "", + "" + ] + }, + { + "type": { + "value": "CameraShake::SetDefaultZoomAmplitude" + }, + "parameters": [ + "", + "1", + "" + ] + }, + { + "type": { + "value": "CameraShake::SetLayerTranslationAmplitude" + }, + "parameters": [ + "", + "1", + "1", + "", + "" + ] + }, + { + "type": { + "value": "CameraShake::SetLayerShakingFrequency" + }, + "parameters": [ + "", + "5", + "", + "" + ] + }, + { + "type": { + "value": "ZoomCamera" + }, + "parameters": [ + "", + "1.5", + "\"transition\"", + "" + ] + }, + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::PaintEffect" + }, + "parameters": [ + "Transition", + "FlashTransitionPainter", + "\"0;0;0\"", + "1", + "\"Circular\"", + "\"Backward\"", + "", + "" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "SystemInfo::IsMobile" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Movement", + "" + ] + }, + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Aiming", + "" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Z-ordering/separation", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Entities", + "=", + "Entities.Y()" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Gun", + "=", + "Player.ZOrder()+1" + ] + }, + { + "type": { + "value": "SeparateFromObjects" + }, + "parameters": [ + "Enemies", + "Entities", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Enemies", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResetTimer" + }, + "parameters": [ + "", + "\"Enemy Spawn\"" + ] + }, + { + "type": { + "value": "ResetTimer" + }, + "parameters": [ + "", + "\"Wave\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareTimer" + }, + "parameters": [ + "", + "\"Wave\"", + ">", + "30" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "Wave", + "+", + "1" + ] + }, + { + "type": { + "value": "TextObject::String" + }, + "parameters": [ + "WaveNumber", + "=", + "\"Wave: \" + ToString(Variable(Wave))" + ] + }, + { + "type": { + "value": "ResetTimer" + }, + "parameters": [ + "", + "\"Wave\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Enemy controls" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "AnimationName" + }, + "parameters": [ + "ImpEnemy", + "\"Hurt\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "BoidsMovement::BoidsMovement::MoveToObject" + }, + "parameters": [ + "ImpEnemy", + "BoidsMovement", + "Center", + "0.5", + "" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::FireTowardPosition" + }, + "parameters": [ + "ImpEnemy", + "FireBullet", + "ImpEnemy.CenterX()", + "ImpEnemy.CenterY()", + "EnemyBullet", + "Center.CenterX()", + "Center.CenterY()", + "35", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "AnimationName" + }, + "parameters": [ + "SpiderEnemy", + "\"Hurt\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "AddForceVers" + }, + "parameters": [ + "SpiderEnemy", + "Center", + "15", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "AnimationName" + }, + "parameters": [ + "GhostEnemy", + "\"Hurt\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "BoidsMovement::BoidsMovement::MoveToObject" + }, + "parameters": [ + "GhostEnemy", + "BoidsMovement", + "Center", + "0.5", + "" + ] + }, + { + "type": { + "value": "BoidsMovement::BoidsMovement::AvoidObject" + }, + "parameters": [ + "GhostEnemy", + "BoidsMovement", + "Player", + "50", + "30", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PosX" + }, + "parameters": [ + "Enemies", + "<", + "Center.X()" + ] + } + ], + "actions": [ + { + "type": { + "value": "FlipX" + }, + "parameters": [ + "Enemies", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PosX" + }, + "parameters": [ + "Enemies", + ">=", + "Center.X()" + ] + } + ], + "actions": [ + { + "type": { + "value": "FlipX" + }, + "parameters": [ + "Enemies", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Spawning enemies with the \"Enemy Spawn\" scene timer" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareTimer" + }, + "parameters": [ + "", + "\"Enemy Spawn\"", + ">", + "3/Variable(Wave)" + ] + }, + { + "type": { + "value": "AjoutHasard" + }, + "parameters": [ + "", + "SpawnPoints" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "RandomEnemy", + "=", + "0" + ] + }, + { + "type": { + "value": "AjoutHasard" + }, + "parameters": [ + "", + "SpiderSpawnPoints" + ] + } + ], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Shadow", + "SpiderSpawnPoints.X()", + "SpiderSpawnPoints.Y()", + "" + ] + }, + { + "type": { + "value": "ChangeScale" + }, + "parameters": [ + "Shadow", + "=", + "0" + ] + }, + { + "type": { + "value": "Tween::AddObjectScaleTween" + }, + "parameters": [ + "Shadow", + "Tween", + "\"Grow\"", + "1", + "1", + "\"linear\"", + "1000", + "yes", + "" + ] + }, + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Drop", + "SpiderSpawnPoints.X()", + "SpiderSpawnPoints.Y()-100", + "" + ] + }, + { + "type": { + "value": "Tween::AddObjectPositionYTween" + }, + "parameters": [ + "Drop", + "Tween", + "\"Drop\"", + "Drop.Y()+100", + "\"linear\"", + "1000", + "yes" + ] + }, + { + "type": { + "value": "Wait" + }, + "parameters": [ + "1" + ] + }, + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "SpiderEnemy", + "SpiderSpawnPoints.X()", + "SpiderSpawnPoints.Y()", + "" + ] + }, + { + "type": { + "value": "Health::Health::SetMaxHealthOp" + }, + "parameters": [ + "SpiderEnemy", + "Health", + "=", + "2 + floor(Variable(Wave)/3)", + "" + ] + }, + { + "type": { + "value": "Health::Health::SetHealth" + }, + "parameters": [ + "SpiderEnemy", + "Health", + "SpiderEnemy.Health::MaxHealth()", + "3 + floor(Variable(Wave)/3)" + ] + }, + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "HealthBar_Enemy", + "SpiderEnemy.X()", + "SpiderEnemy.Y()", + "" + ] + }, + { + "type": { + "value": "LinkedObjects::LinkObjects" + }, + "parameters": [ + "", + "HealthBar_Enemy", + "SpiderEnemy" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "RandomEnemy", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "GhostEnemy", + "SpawnPoints.X()", + "SpawnPoints.Y()", + "" + ] + }, + { + "type": { + "value": "Health::Health::SetMaxHealthOp" + }, + "parameters": [ + "GhostEnemy", + "Health", + "=", + "3 + floor(Variable(Wave)/3)", + "" + ] + }, + { + "type": { + "value": "Health::Health::SetHealth" + }, + "parameters": [ + "GhostEnemy", + "Health", + "GhostEnemy.Health::MaxHealth()", + "3 + floor(Variable(Wave)/3)" + ] + }, + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "HealthBar_Enemy", + "GhostEnemy.X()", + "GhostEnemy.Y()", + "" + ] + }, + { + "type": { + "value": "LinkedObjects::LinkObjects" + }, + "parameters": [ + "", + "HealthBar_Enemy", + "GhostEnemy" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "RandomEnemy", + "=", + "2" + ] + } + ], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "ImpEnemy", + "SpawnPoints.X()", + "SpawnPoints.Y()", + "" + ] + }, + { + "type": { + "value": "Health::Health::SetMaxHealthOp" + }, + "parameters": [ + "ImpEnemy", + "Health", + "=", + "4 + floor(Variable(Wave)/3)", + "" + ] + }, + { + "type": { + "value": "Health::Health::SetHealth" + }, + "parameters": [ + "ImpEnemy", + "Health", + "ImpEnemy.Health::MaxHealth()", + "3 + floor(Variable(Wave)/3)" + ] + }, + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "HealthBar_Enemy", + "ImpEnemy.X()", + "ImpEnemy.Y()", + "" + ] + }, + { + "type": { + "value": "LinkedObjects::LinkObjects" + }, + "parameters": [ + "", + "HealthBar_Enemy", + "ImpEnemy" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResetTimer" + }, + "parameters": [ + "", + "\"Enemy Spawn\"" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "RandomEnemy", + "=", + "RandomInRange(0,min(floor(Variable(Wave)/3),2))" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Positioning the HealthBar_Enemy to follow the enemy it is linked with" + }, + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "Enemies", + "conditions": [ + { + "type": { + "value": "LinkedObjects::PickObjectsLinkedTo" + }, + "parameters": [ + "", + "HealthBar_Enemy", + "Enemies", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreXY" + }, + "parameters": [ + "HealthBar_Enemy", + "=", + "Enemies.PointX(\"HealthBar\")", + "=", + "Enemies.PointY(\"HealthBar\")" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "HealthBar_Enemy", + "=", + "Enemies.ZOrder() + 5" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Enemies taking damage" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Bullet", + "Enemies", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Bullet", + "" + ] + }, + { + "type": { + "value": "Health::Health::Hit" + }, + "parameters": [ + "Enemies", + "Health", + "Variable(Variable.Power)", + "", + "", + "" + ] + }, + { + "type": { + "value": "SetAnimationName" + }, + "parameters": [ + "Enemies", + "\"Hurt\"" + ] + }, + { + "type": { + "value": "ChangeSprite" + }, + "parameters": [ + "Enemies", + "=", + "0" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "LinkedObjects::PickObjectsLinkedTo" + }, + "parameters": [ + "", + "HealthBar_Enemy", + "Enemies", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ChangeWidth" + }, + "parameters": [ + "HealthBar_Enemy", + "=", + "(Enemies.Health::Health() / Enemies.Health::MaxHealth()) * 12" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "AnimationName" + }, + "parameters": [ + "Enemies", + "\"Hurt\"" + ] + }, + { + "type": { + "value": "AnimationEnded2" + }, + "parameters": [ + "Enemies" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAnimationName" + }, + "parameters": [ + "Enemies", + "\"Walking\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::IsDead" + }, + "parameters": [ + "Enemies", + "Health", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "LinkedObjects::PickObjectsLinkedTo" + }, + "parameters": [ + "", + "HealthBar_Enemy", + "Enemies", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "HealthBar_Enemy", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "EXP_Point", + "Enemies.X()", + "Enemies.Y()", + "" + ] + }, + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Enemies", + "" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Player", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Player collision mask deleting the EnemyBullet" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "EnemyBullet", + "Player", + "", + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "EnemyBullet", + "" + ] + } + ] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Gun", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Gun position and orientation controls" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "MettreXY" + }, + "parameters": [ + "Gun", + "=", + "Player.PointX(\"Gun\")", + "=", + "Player.PointY(\"Gun\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "SystemInfo::IsMobile" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "RotateTowardPosition" + }, + "parameters": [ + "Gun", + "CursorX()", + "CursorY()", + "0", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SystemInfo::IsMobile" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "RotateTowardAngle" + }, + "parameters": [ + "Gun", + "SpriteMultitouchJoystick::StickAngle(2, \"Secondary\")", + "0", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SystemInfo::IsMobile" + }, + "parameters": [] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::IsDirectionPushed4Way" + }, + "parameters": [ + "", + "2", + "\"Secondary\"", + "\"Left\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "FlipX" + }, + "parameters": [ + "Player", + "yes" + ] + }, + { + "type": { + "value": "FlipY" + }, + "parameters": [ + "Gun", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::IsDirectionPushed4Way" + }, + "parameters": [ + "", + "2", + "\"Secondary\"", + "\"Right\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "FlipX" + }, + "parameters": [ + "Player", + "" + ] + }, + { + "type": { + "value": "FlipY" + }, + "parameters": [ + "Gun", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "SystemInfo::IsMobile" + }, + "parameters": [] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PosX" + }, + "parameters": [ + "Player", + "<", + "CursorX()" + ] + } + ], + "actions": [ + { + "type": { + "value": "FlipX" + }, + "parameters": [ + "Player", + "" + ] + }, + { + "type": { + "value": "FlipY" + }, + "parameters": [ + "Gun", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PosX" + }, + "parameters": [ + "Player", + ">", + "CursorX()" + ] + } + ], + "actions": [ + { + "type": { + "value": "FlipX" + }, + "parameters": [ + "Player", + "yes" + ] + }, + { + "type": { + "value": "FlipY" + }, + "parameters": [ + "Gun", + "yes" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Firing a bullet" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "BuiltinCommonInstructions::And" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "MouseButtonPressed" + }, + "parameters": [ + "", + "Left" + ] + }, + { + "type": { + "inverted": true, + "value": "SystemInfo::IsMobile" + }, + "parameters": [] + } + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::StickForce" + }, + "parameters": [ + "", + ">", + "0", + "2", + "\"Secondary\"", + "" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::Fire" + }, + "parameters": [ + "Gun", + "FireBullet", + "Gun.PointX(\"BulletPoint\")", + "Gun.PointY(\"BulletPoint\")", + "Bullet", + "Gun.Angle()", + "200", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::HasJustFired" + }, + "parameters": [ + "Gun", + "FireBullet", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlaySound" + }, + "parameters": [ + "", + "Gun", + "", + "GlobalVariable(Settings.Sound)", + "RandomFloatInRange(0.8,1)" + ] + }, + { + "type": { + "value": "CameraShake::ShakeCamera" + }, + "parameters": [ + "", + "0.1", + "0", + "0.05", + "" + ] + }, + { + "type": { + "value": "ShakeObject::ShakeObject_PositionAngle::ShakeObject_PositionAngle" + }, + "parameters": [ + "Gun", + "ShakeObject_PositionAngle", + "0.1", + "3", + "3", + "1", + "0.05", + "", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Deleting bullets that have gone off screen, to improve performance" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Distance" + }, + "parameters": [ + "Bullet", + "Player", + "400", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "Bullet", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Movement", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SeparateFromObjects" + }, + "parameters": [ + "Player", + "WallCollision", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Player movement animations" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "TopDownMovementBehavior::IsMoving" + }, + "parameters": [ + "Player", + "TopDownMovement" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAnimationName" + }, + "parameters": [ + "Player", + "\"Run\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "TopDownMovementBehavior::IsMoving" + }, + "parameters": [ + "Player", + "TopDownMovement" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAnimationName" + }, + "parameters": [ + "Player", + "\"Idle\"" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Game over", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Reset the game scene if conditions are met" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "Enemies", + "Center", + "", + "", + "" + ] + }, + { + "type": { + "value": "CollisionNP" + }, + "parameters": [ + "EnemyBullet", + "Center", + "", + "", + "" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "Scene" + }, + "parameters": [ + "", + "\"MainMenu\"", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Leveling", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Exp", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Creating darkening layer for pause screen" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DepartScene" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::Rectangle" + }, + "parameters": [ + "Darken", + "0", + "CameraBorderTop(\"LevelUp\", )", + "CameraBorderRight(\"LevelUp\", )", + "CameraBorderBottom(\"LevelUp\", )" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Collecting EXP_Points" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Distance" + }, + "parameters": [ + "EXP_Point", + "Player", + "50", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "AddForceVers" + }, + "parameters": [ + "EXP_Point", + "Player", + "100", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Distance" + }, + "parameters": [ + "EXP_Point", + "Player", + "3", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Delete" + }, + "parameters": [ + "EXP_Point", + "" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "Variable.CurrentEXP", + "+", + "1" + ] + }, + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetMaxValue" + }, + "parameters": [ + "RedFlatBar", + "=", + "Variable(Variable.MaxEXP)", + "" + ] + }, + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetValue" + }, + "parameters": [ + "RedFlatBar", + "=", + "Variable(Variable.CurrentEXP)", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Showing the LevelUP layer when CurrenctEXP variable reaches MaxEXP" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "Variable.CurrentEXP", + ">=", + "Variable(Variable.MaxEXP)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ChangeTimeScale" + }, + "parameters": [ + "", + "0" + ] + }, + { + "type": { + "value": "ShowLayer" + }, + "parameters": [ + "", + "\"LevelUp\"" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "Variable.CurrentEXP", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "Variable.MaxEXP", + "=", + "floor(Variable(Variable.MaxEXP)*1.5)" + ] + }, + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetValue" + }, + "parameters": [ + "RedFlatBar", + "=", + "Variable(Variable.CurrentEXP)", + "" + ] + }, + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetMaxValue" + }, + "parameters": [ + "RedFlatBar", + "=", + "Variable(Variable.MaxEXP)", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Leveling", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Increasing stat variables when LevelingButtons are clicked" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::PanelSpriteButton::IsClicked" + }, + "parameters": [ + "LevelingButtons", + "" + ] + }, + { + "type": { + "value": "LayerVisible" + }, + "parameters": [ + "", + "\"LevelUp\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "HideLayer" + }, + "parameters": [ + "", + "\"LevelUp\"" + ] + }, + { + "type": { + "value": "ChangeTimeScale" + }, + "parameters": [ + "", + "1" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::PanelSpriteButton::IsClicked" + }, + "parameters": [ + "PowerButton", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "Variable.Power", + "+", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::PanelSpriteButton::IsClicked" + }, + "parameters": [ + "FireRateButton", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "Variable.FireRate", + "+", + "1" + ] + }, + { + "type": { + "value": "FireBullet::FireBullet::SetCooldownOp" + }, + "parameters": [ + "Gun", + "FireBullet", + "=", + "Gun.FireBullet::Cooldown()*0.9", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::PanelSpriteButton::IsClicked" + }, + "parameters": [ + "AccuracyButton", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "Variable.Accuracy", + "+", + "1" + ] + }, + { + "type": { + "value": "FireBullet::FireBullet::SetAngleVarianceOp" + }, + "parameters": [ + "Gun", + "FireBullet", + "=", + "Gun.FireBullet::AngleVariance()*0.9", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "BitmapText::BitmapTextObject::SetText" + }, + "parameters": [ + "Stats", + "=", + "\"Power: \" + ToString(Variable(Variable.Power)) + \"\nFire Rate: \" + ToString(Variable(Variable.FireRate)) + \"\nAccuracy: \" + ToString(Variable(Variable.Accuracy))" + ] + } + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [] + } + ], + "layers": [ + { + "ambientLightColorB": 0, + "ambientLightColorG": 8042920, + "ambientLightColorR": 16, + "camera3DFarPlaneDistance": 10000, + "camera3DFieldOfView": 45, + "camera3DNearPlaneDistance": 0.1, + "followBaseLayerCamera": false, + "isLightingLayer": false, + "isLocked": false, + "name": "", + "renderingType": "", + "visibility": true, + "cameras": [ + { + "defaultSize": true, + "defaultViewport": true, + "height": 0, + "viewportBottom": 1, + "viewportLeft": 0, + "viewportRight": 1, + "viewportTop": 0, + "width": 0 + } + ], + "effects": [] + }, + { + "ambientLightColorB": 22831128, + "ambientLightColorG": 6069792, + "ambientLightColorR": 24523232, + "camera3DFarPlaneDistance": 10000, + "camera3DFieldOfView": 45, + "camera3DNearPlaneDistance": 0.1, + "followBaseLayerCamera": false, + "isLightingLayer": false, + "isLocked": false, + "name": "Vignette", + "renderingType": "", + "visibility": true, + "cameras": [], + "effects": [] + }, + { + "ambientLightColorB": 200, + "ambientLightColorG": 200, + "ambientLightColorR": 200, + "camera3DFarPlaneDistance": 10000, + "camera3DFieldOfView": 45, + "camera3DNearPlaneDistance": 0.1, + "followBaseLayerCamera": false, + "isLightingLayer": false, + "isLocked": false, + "name": "LevelUp", + "renderingType": "", + "visibility": false, + "cameras": [], + "effects": [] + }, + { + "ambientLightColorB": 200, + "ambientLightColorG": 200, + "ambientLightColorR": 200, + "camera3DFarPlaneDistance": 10000, + "camera3DFieldOfView": 45, + "camera3DNearPlaneDistance": 0.1, + "followBaseLayerCamera": false, + "isLightingLayer": false, + "isLocked": false, + "name": "UI", + "renderingType": "", + "visibility": true, + "cameras": [], + "effects": [] + }, + { + "ambientLightColorB": 200, + "ambientLightColorG": 200, + "ambientLightColorR": 200, + "camera3DFarPlaneDistance": 10000, + "camera3DFieldOfView": 45, + "camera3DNearPlaneDistance": 0.1, + "followBaseLayerCamera": false, + "isLightingLayer": false, + "isLocked": false, + "name": "MobileControls", + "renderingType": "", + "visibility": true, + "cameras": [], + "effects": [] + }, + { + "ambientLightColorB": 1701470831, + "ambientLightColorG": 14969176, + "ambientLightColorR": 6070032, + "camera3DFarPlaneDistance": 10000, + "camera3DFieldOfView": 45, + "camera3DNearPlaneDistance": 0.1, + "followBaseLayerCamera": false, + "isLightingLayer": false, + "isLocked": false, + "name": "transition", + "renderingType": "", + "visibility": true, + "cameras": [], + "effects": [] + } + ], + "behaviorsSharedData": [ + { + "name": "BoidsMovement", + "type": "BoidsMovement::BoidsMovement" + }, + { + "name": "FireBullet", + "type": "FireBullet::FireBullet" + }, + { + "name": "FlashTransitionPainter", + "type": "FlashTransitionPainter::FlashTransitionPainter" + }, + { + "name": "Health", + "type": "Health::Health" + }, + { + "name": "ShakeObject_PositionAngle", + "type": "ShakeObject::ShakeObject_PositionAngle" + }, + { + "name": "TopDownMovement", + "type": "TopDownMovementBehavior::TopDownMovementBehavior" + }, + { + "name": "TopDownMultitouchMapper", + "type": "SpriteMultitouchJoystick::TopDownMultitouchMapper" + }, + { + "name": "Tween", + "type": "Tween::TweenBehavior" + } + ] + } + ], + "externalEvents": [], + "eventsFunctionsExtensions": [ + { + "author": "", + "category": "Input", + "extensionNamespace": "", + "fullName": "Multitouch joystick and buttons (sprite)", + "helpPath": "/objects/multitouch-joystick", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPGNpcmNsZSBjbGFzcz0ic3QwIiBjeD0iMTYiIGN5PSIxNiIgcj0iMTMiLz4NCjxwb2x5bGluZSBjbGFzcz0ic3QwIiBwb2ludHM9IjI4LjQsMTIgMjAsMTIgMjAsMy42ICIvPg0KPHBvbHlsaW5lIGNsYXNzPSJzdDAiIHBvaW50cz0iMjAsMjguNCAyMCwyMCAyOC40LDIwICIvPg0KPHBvbHlsaW5lIGNsYXNzPSJzdDAiIHBvaW50cz0iMy42LDIwIDEyLDIwIDEyLDI4LjQgIi8+DQo8cG9seWxpbmUgY2xhc3M9InN0MCIgcG9pbnRzPSIxMiwzLjYgMTIsMTIgMy42LDEyICIvPg0KPHBvbHlnb24gY2xhc3M9InN0MCIgcG9pbnRzPSIxNiw2IDE2LjcsNyAxNS4zLDcgIi8+DQo8cG9seWdvbiBjbGFzcz0ic3QwIiBwb2ludHM9IjE2LDI2IDE1LjMsMjUgMTYuNywyNSAiLz4NCjxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iNiwxNiA3LDE1LjMgNywxNi43ICIvPg0KPHBvbHlnb24gY2xhc3M9InN0MCIgcG9pbnRzPSIyNiwxNiAyNSwxNi43IDI1LDE1LjMgIi8+DQo8L3N2Zz4NCg==", + "name": "SpriteMultitouchJoystick", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/Videogames/Videogames_controller_joystick_arrows_direction.svg", + "shortDescription": "Joysticks or buttons for touchscreens.", + "version": "1.2.2", + "description": [ + "Multitouch joysticks can be used the same way as physical gamepads:", + "- 4 or 8 directions", + "- Analogus pads", + "- Player selection", + "- Controls mapping for top-down movement and platformer characters", + "", + "There are ready-to-use joysticks in the asset-store [multitouch joysticks pack](https://editor.gdevelop.io/?initial-dialog=asset-store&asset-pack=multitouch-joysticks-multitouch-joysticks)." + ], + "origin": { + "identifier": "SpriteMultitouchJoystick", + "name": "gdevelop-extension-store" + }, + "tags": [ + "multitouch", + "joystick", + "thumbstick", + "controller", + "touchscreen", + "twin stick", + "shooter", + "virtual" + ], + "authorIds": [ + "gqDaZjCfevOOxBYkK6zlhtZnXCg1", + "1OgYzWp5UeVPbiWGJwI6vqfgZLC3", + "v0YRpdAnIucZFgiRCCecqVnGKno2", + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" + ], + "dependencies": [], + "eventsFunctions": [ + { + "description": "Check if a button is pressed on a gamepad.", + "fullName": "Multitouch controller button pressed", + "functionType": "Condition", + "name": "IsButtonPressed", + "sentence": "Button _PARAM2_ of multitouch controller _PARAM1_ is pressed", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarSceneTxt" + }, + "parameters": [ + "__MultitouchJoystick.Controllers[GetArgumentAsNumber(\"ControllerIdentifier\")].Buttons[GetArgumentAsString(\"Button\")].State", + "=", + "\"Pressed\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Multitouch controller identifier (1, 2, 3, 4...)", + "name": "ControllerIdentifier", + "type": "expression" + }, + { + "description": "Button name", + "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": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Check if a button is released on a gamepad.", + "fullName": "Multitouch controller button released", + "functionType": "Condition", + "name": "IsButtonReleased", + "sentence": "Button _PARAM2_ of multitouch controller _PARAM1_ is released", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarSceneTxt" + }, + "parameters": [ + "__MultitouchJoystick.Controllers[GetArgumentAsNumber(\"ControllerIdentifier\")].Buttons[GetArgumentAsString(\"Button\")].State", + "=", + "\"Released\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Multitouch controller identifier (1, 2, 3, 4...)", + "name": "ControllerIdentifier", + "type": "expression" + }, + { + "description": "Button name", + "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": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Change a button state for a multitouch controller.", + "fullName": "Button state", + "functionType": "Action", + "name": "SetButtonState", + "private": true, + "sentence": "Mark _PARAM2_ button as _PARAM3_ for multitouch controller _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarSceneTxt" + }, + "parameters": [ + "__MultitouchJoystick.Controllers[GetArgumentAsNumber(\"ControllerIdentifier\")].Buttons[GetArgumentAsString(\"Button\")].State", + "=", + "GetArgumentAsString(\"ButtonState\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Multitouch controller identifier (1, 2, 3, 4...)", + "name": "ControllerIdentifier", + "type": "expression" + }, + { + "description": "Button name", + "name": "Button", + "type": "string" + }, + { + "description": "Button state", + "name": "ButtonState", + "supplementaryInformation": "[\"Idle\",\"Pressed\",\"Released\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Change the dead zone radius of a joystick. 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).", + "fullName": "Dead zone radius", + "functionType": "Action", + "name": "SetDeadZone", + "private": true, + "sentence": "Change the dead zone of multitouch joystick _PARAM2_ of multitouch controller _PARAM1_ to _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__MultitouchJoystick.Controllers[GetArgumentAsNumber(\"ControllerIdentifier\")].Joystick[GetArgumentAsString(\"JoystickIdentifier\")].DeadZone", + "=", + "GetArgumentAsNumber(\"DeadZoneRadius\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Multitouch controller identifier (1, 2, 3, 4...)", + "name": "ControllerIdentifier", + "type": "expression" + }, + { + "description": "Joystick name", + "name": "JoystickIdentifier", + "type": "string" + }, + { + "description": "Dead zone radius", + "name": "DeadZoneRadius", + "supplementaryInformation": "[]", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Return the dead zone radius of a joystick. 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).", + "fullName": "Dead zone radius", + "functionType": "Expression", + "name": "DeadZone", + "private": true, + "sentence": "Change multitouch joystick _PARAM2_ of multitouch controller _PARAM1_ dead zone to _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Variable(__MultitouchJoystick.Controllers[GetArgumentAsNumber(\"ControllerIdentifier\")].Joystick[GetArgumentAsString(\"JoystickIdentifier\")].DeadZone)" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Multitouch controller identifier (1, 2, 3, 4...)", + "name": "ControllerIdentifier", + "type": "expression" + }, + { + "description": "Joystick name", + "name": "JoystickIdentifier", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "the direction index (left = 1, bottom = 1, right = 2, top = 3) for an angle (in degrees).", + "fullName": "Angle to 4-way index", + "functionType": "ExpressionAndCondition", + "name": "AngleTo4Way", + "private": true, + "sentence": "The angle _PARAM1_ 4-way index", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "mod(round(GetArgumentAsNumber(\"Angle\") * 4 / 360), 4)" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Angle", + "name": "Angle", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the direction index (left = 1, bottom-left = 1... top-left = 7) for an angle (in degrees).", + "fullName": "Angle to 8-way index", + "functionType": "ExpressionAndCondition", + "name": "AngleTo8Way", + "private": true, + "sentence": "The angle _PARAM1_ 8-way index", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "mod(round(GetArgumentAsNumber(\"Angle\") * 8 / 360), 8)" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Angle", + "name": "Angle", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Check if angle is in a given direction.", + "fullName": "Angle 4-way direction", + "functionType": "Condition", + "name": "IsAngleIn4WayDirection", + "private": true, + "sentence": "The angle _PARAM1_ is the 4-way direction _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareStrings" + }, + "parameters": [ + "GetArgumentAsString(\"Direction\")", + "=", + "\"Right\"" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::AngleTo4Way" + }, + "parameters": [ + "", + "=", + "0", + "GetArgumentAsNumber(\"Angle\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareStrings" + }, + "parameters": [ + "GetArgumentAsString(\"Direction\")", + "=", + "\"Down\"" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::AngleTo4Way" + }, + "parameters": [ + "", + "=", + "1", + "GetArgumentAsNumber(\"Angle\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareStrings" + }, + "parameters": [ + "GetArgumentAsString(\"Direction\")", + "=", + "\"Left\"" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::AngleTo4Way" + }, + "parameters": [ + "", + "=", + "2", + "GetArgumentAsNumber(\"Angle\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareStrings" + }, + "parameters": [ + "GetArgumentAsString(\"Direction\")", + "=", + "\"Up\"" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::AngleTo4Way" + }, + "parameters": [ + "", + "=", + "3", + "GetArgumentAsNumber(\"Angle\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Angle", + "name": "Angle", + "type": "expression" + }, + { + "description": "Direction", + "name": "Direction", + "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Check if angle is in a given direction.", + "fullName": "Angle 8-way direction", + "functionType": "Condition", + "name": "IsAngleIn8WayDirection", + "private": true, + "sentence": "The angle _PARAM1_ is the 8-way direction _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareStrings" + }, + "parameters": [ + "GetArgumentAsString(\"Direction\")", + "=", + "\"Right\"" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::AngleTo8Way" + }, + "parameters": [ + "", + "=", + "0", + "GetArgumentAsNumber(\"Angle\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareStrings" + }, + "parameters": [ + "GetArgumentAsString(\"Direction\")", + "=", + "\"DownRight\"" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::AngleTo8Way" + }, + "parameters": [ + "", + "=", + "1", + "GetArgumentAsNumber(\"Angle\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareStrings" + }, + "parameters": [ + "GetArgumentAsString(\"Direction\")", + "=", + "\"Down\"" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::AngleTo8Way" + }, + "parameters": [ + "", + "=", + "2", + "GetArgumentAsNumber(\"Angle\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareStrings" + }, + "parameters": [ + "GetArgumentAsString(\"Direction\")", + "=", + "\"DownLeft\"" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::AngleTo8Way" + }, + "parameters": [ + "", + "=", + "3", + "GetArgumentAsNumber(\"Angle\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareStrings" + }, + "parameters": [ + "GetArgumentAsString(\"Direction\")", + "=", + "\"Left\"" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::AngleTo8Way" + }, + "parameters": [ + "", + "=", + "4", + "GetArgumentAsNumber(\"Angle\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareStrings" + }, + "parameters": [ + "GetArgumentAsString(\"Direction\")", + "=", + "\"UpLeft\"" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::AngleTo8Way" + }, + "parameters": [ + "", + "=", + "5", + "GetArgumentAsNumber(\"Angle\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareStrings" + }, + "parameters": [ + "GetArgumentAsString(\"Direction\")", + "=", + "\"Up\"" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::AngleTo8Way" + }, + "parameters": [ + "", + "=", + "6", + "GetArgumentAsNumber(\"Angle\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareStrings" + }, + "parameters": [ + "GetArgumentAsString(\"Direction\")", + "=", + "\"UpRight\"" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::AngleTo8Way" + }, + "parameters": [ + "", + "=", + "7", + "GetArgumentAsNumber(\"Angle\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Angle", + "name": "Angle", + "type": "expression" + }, + { + "description": "Direction", + "name": "Direction", + "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\",\"UpLeft\",\"UpRight\",\"DownLeft\",\"DownRight\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Check if joystick is pushed in a given direction.", + "fullName": "Joystick pushed in a direction (4-way)", + "functionType": "Condition", + "name": "IsDirectionPushed4Way", + "sentence": "Joystick _PARAM2_ of multitouch controller _PARAM1_ is pushed in direction _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Make sure the joystick has moved from center" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::JoystickForce" + }, + "parameters": [ + "", + ">", + "SpriteMultitouchJoystick::DeadZone(GetArgumentAsNumber(\"ControllerIdentifier\"), GetArgumentAsString(\"JoystickIdentifier\"))", + "GetArgumentAsNumber(\"ControllerIdentifier\")", + "GetArgumentAsString(\"JoystickIdentifier\")", + "" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::IsAngleIn4WayDirection" + }, + "parameters": [ + "", + "SpriteMultitouchJoystick::JoystickAngle(GetArgumentAsNumber(\"ControllerIdentifier\"), GetArgumentAsString(\"JoystickIdentifier\"))", + "GetArgumentAsString(\"Direction\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Multitouch controller identifier (1, 2, 3, 4...)", + "name": "ControllerIdentifier", + "type": "expression" + }, + { + "description": "Joystick name", + "name": "JoystickIdentifier", + "supplementaryInformation": "[\"Primary\",\"Secondary\"]", + "type": "stringWithSelector" + }, + { + "description": "Direction", + "name": "Direction", + "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Check if joystick is pushed in a given direction.", + "fullName": "Joystick pushed in a direction (8-way)", + "functionType": "Condition", + "name": "IsDirectionPushed8Way", + "sentence": "Joystick _PARAM2_ of multitouch controller _PARAM1_ is pushed in direction _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Make sure the joystick has moved from center" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::JoystickForce" + }, + "parameters": [ + "", + ">", + "SpriteMultitouchJoystick::DeadZone(GetArgumentAsNumber(\"ControllerIdentifier\"), GetArgumentAsString(\"JoystickIdentifier\"))", + "GetArgumentAsNumber(\"ControllerIdentifier\")", + "GetArgumentAsString(\"JoystickIdentifier\")", + "" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::IsAngleIn8WayDirection" + }, + "parameters": [ + "", + "SpriteMultitouchJoystick::JoystickAngle(GetArgumentAsNumber(\"ControllerIdentifier\"), GetArgumentAsString(\"JoystickIdentifier\"))", + "GetArgumentAsString(\"Direction\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Multitouch controller identifier (1, 2, 3, 4...)", + "name": "ControllerIdentifier", + "type": "expression" + }, + { + "description": "Joystick name", + "name": "JoystickIdentifier", + "supplementaryInformation": "[\"Primary\",\"Secondary\"]", + "type": "stringWithSelector" + }, + { + "description": "Direction", + "name": "Direction", + "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\",\"UpLeft\",\"UpRight\",\"DownLeft\",\"DownRight\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "the percentage the thumb has been pulled away from the joystick center (Range: 0 to 1).", + "fullName": "Joystick force (deprecated)", + "functionType": "ExpressionAndCondition", + "name": "JoystickForce", + "private": true, + "sentence": "Joystick _PARAM2_ of multitouch controller _PARAM1_ force", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "SpriteMultitouchJoystick::StickForce(GetArgumentAsNumber(\"ControllerIdentifier\"), GetArgumentAsString(\"JoystickIdentifier\"))" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Multitouch controller identifier (1, 2, 3, 4...)", + "name": "ControllerIdentifier", + "type": "expression" + }, + { + "description": "Joystick name", + "name": "JoystickIdentifier", + "supplementaryInformation": "[\"Primary\",\"Secondary\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "the force of multitouch contoller stick (from 0 to 1).", + "fullName": "Stick force", + "functionType": "ExpressionAndCondition", + "name": "StickForce", + "sentence": "multitouch controller _PARAM1_ _PARAM2_ stick force", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Variable(__MultitouchJoystick.Controllers[GetArgumentAsNumber(\"ControllerIdentifier\")].Joystick[GetArgumentAsString(\"JoystickIdentifier\")].Force)" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Multitouch controller identifier (1, 2, 3, 4...)", + "name": "ControllerIdentifier", + "type": "expression" + }, + { + "description": "Stick name", + "name": "JoystickIdentifier", + "supplementaryInformation": "[\"Primary\",\"Secondary\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Change the percentage the thumb has been pulled away from the joystick center (Range: 0 to 1).", + "fullName": "Joystick force", + "functionType": "Action", + "name": "SetJoystickForce", + "private": true, + "sentence": "Change the force of the joystick _PARAM2_ of multitouch controller _PARAM1_ to _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__MultitouchJoystick.Controllers[GetArgumentAsNumber(\"ControllerIdentifier\")].Joystick[GetArgumentAsString(\"JoystickIdentifier\")].Force", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Multitouch controller identifier (1, 2, 3, 4...)", + "name": "ControllerIdentifier", + "type": "expression" + }, + { + "description": "Joystick name", + "name": "JoystickIdentifier", + "type": "string" + }, + { + "description": "Value", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Return the angle the joystick is pointing towards (Range: -180 to 180).", + "fullName": "Joystick angle (deprecated)", + "functionType": "Expression", + "name": "JoystickAngle", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "SpriteMultitouchJoystick::StickAngle(GetArgumentAsNumber(\"ControllerIdentifier\"), GetArgumentAsString(\"JoystickIdentifier\"))" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Multitouch controller identifier (1, 2, 3, 4...)", + "name": "ControllerIdentifier", + "type": "expression" + }, + { + "description": "Joystick name", + "name": "JoystickIdentifier", + "supplementaryInformation": "[\"Primary\",\"Secondary\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Return the angle the multitouch controller stick is pointing towards (Range: -180 to 180).", + "fullName": "Stick angle", + "functionType": "Expression", + "name": "StickAngle", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Variable(__MultitouchJoystick.Controllers[GetArgumentAsNumber(\"ControllerIdentifier\")].Joystick[GetArgumentAsString(\"JoystickIdentifier\")].Angle)" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Multitouch controller identifier (1, 2, 3, 4...)", + "name": "ControllerIdentifier", + "type": "expression" + }, + { + "description": "Joystick name", + "name": "JoystickIdentifier", + "supplementaryInformation": "[\"Primary\",\"Secondary\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Change the angle the joystick is pointing towards (Range: -180 to 180).", + "fullName": "Joystick angle", + "functionType": "Action", + "name": "SetJoystickAngle", + "private": true, + "sentence": "Change the angle of the joystick _PARAM2_ of multitouch controller _PARAM1_ to _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__MultitouchJoystick.Controllers[GetArgumentAsNumber(\"ControllerIdentifier\")].Joystick[GetArgumentAsString(\"JoystickIdentifier\")].Angle", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Multitouch controller identifier (1, 2, 3, 4...)", + "name": "ControllerIdentifier", + "type": "expression" + }, + { + "description": "Joystick name", + "name": "JoystickIdentifier", + "type": "string" + }, + { + "description": "Value", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Return the multitouch contoller 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::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "SpriteMultitouchJoystick::JoystickForce(GetArgumentAsNumber(\"ControllerIdentifier\"), GetArgumentAsString(\"JoystickIdentifier\")) * cos(ToRad(SpriteMultitouchJoystick::JoystickAngle(GetArgumentAsNumber(\"ControllerIdentifier\"), GetArgumentAsString(\"JoystickIdentifier\"))))" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Multitouch controller identifier (1, 2, 3, 4...)", + "name": "ControllerIdentifier", + "type": "expression" + }, + { + "description": "Joystick name", + "name": "JoystickIdentifier", + "supplementaryInformation": "[\"Primary\",\"Secondary\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Return the multitouch contoller 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::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "SpriteMultitouchJoystick::JoystickForce(GetArgumentAsNumber(\"ControllerIdentifier\"), GetArgumentAsString(\"JoystickIdentifier\")) * sin(ToRad(SpriteMultitouchJoystick::JoystickAngle(GetArgumentAsNumber(\"ControllerIdentifier\"), GetArgumentAsString(\"JoystickIdentifier\"))))" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Multitouch controller identifier (1, 2, 3, 4...)", + "name": "ControllerIdentifier", + "type": "expression" + }, + { + "description": "Joystick name", + "name": "JoystickIdentifier", + "supplementaryInformation": "[\"Primary\",\"Secondary\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [ + { + "description": "Joystick that can be controlled by interacting with a touchscreen.", + "fullName": "Multitouch Joystick", + "name": "MultitouchJoystick", + "objectType": "", + "private": true, + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::SetDeadZone" + }, + "parameters": [ + "", + "Object.Behavior::PropertyControllerIdentifier()", + "Object.Behavior::PropertyJoystickIdentifier()", + "Object.Behavior::PropertyDeadZoneRadius()", + "" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::Reset" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onDeActivate", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::Reset" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "HasGameJustResumed" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::Reset" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Manage touches", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "HasAnyTouchOrMouseStarted" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetPropertyTouchIndex" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Repeat", + "repeatExpression": "StartedTouchOrMouseCount()", + "conditions": [], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::PropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + }, + { + "type": { + "value": "CollisionPoint" + }, + "parameters": [ + "Object", + "TouchX(StartedTouchOrMouseId(Object.Behavior::PropertyTouchIndex()), Object.Layer(), 0)", + "TouchY(StartedTouchOrMouseId(Object.Behavior::PropertyTouchIndex()), Object.Layer(), 0)" + ] + } + ], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetPropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "StartedTouchOrMouseId(Object.Behavior::PropertyTouchIndex())" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetPropertyTouchIndex" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "1" + ] + } + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move thumb back to center when not being pressed (acts like a spring on a real controller)" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "HasTouchEnded" + }, + "parameters": [ + "", + "Object.Behavior::PropertyTouchId()" + ] + } + ], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::Reset" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Update joystick position", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::PropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetJoystickAngle" + }, + "parameters": [ + "Object", + "Behavior", + "AngleBetweenPositions(Object.CenterX(), Object.CenterY(), TouchX(Object.Behavior::PropertyTouchId(), Object.Layer(), 0), TouchY(Object.Behavior::PropertyTouchId(), Object.Layer(), 0))", + "AngleBetweenPositions(Object.CenterX(), Object.CenterY(), TouchX(Object.Behavior::PropertyTouchId(), Object.Layer(), 0), TouchY(Object.Behavior::PropertyTouchId(), Object.Layer(), 0))" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetJoystickForce" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "clamp(2 * DistanceBetweenPositions(Object.CenterX(), Object.CenterY(), TouchX(Object.Behavior::PropertyTouchId(), Object.Layer(), 0), TouchY(Object.Behavior::PropertyTouchId(), Object.Layer(), 0)) / Object.Width(), 0, 1)", + "" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the joystick force (from 0 to 1).", + "fullName": "Joystick force", + "functionType": "ExpressionAndCondition", + "name": "JoystickForce", + "sentence": "the joystick force", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyJoystickForce()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "JoystickForce", + "name": "SetJoystickForce", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetPropertyJoystickForce" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::SetJoystickForce" + }, + "parameters": [ + "", + "Object.Behavior::PropertyControllerIdentifier()", + "Object.Behavior::PropertyJoystickIdentifier()", + "Object.Behavior::PropertyJoystickForce()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Return the angle the joystick is pointing towards (Range: -180 to 180).", + "fullName": "Joystick angle", + "functionType": "Expression", + "name": "JoystickAngle", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyJoystickAngle()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the angle the joystick is pointing towards (Range: -180 to 180).", + "fullName": "Joystick angle", + "functionType": "Action", + "name": "SetJoystickAngle", + "private": true, + "sentence": "Change the joystick angle of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetPropertyJoystickAngle" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::SetJoystickAngle" + }, + "parameters": [ + "", + "Object.Behavior::PropertyControllerIdentifier()", + "Object.Behavior::PropertyJoystickIdentifier()", + "Object.Behavior::PropertyJoystickAngle()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", + "type": "behavior" + }, + { + "description": "Angle", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Return the 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::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::JoystickForce() * cos(ToRad(Object.Behavior::JoystickAngle()))" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Return the 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::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::JoystickForce() * sin(ToRad(Object.Behavior::JoystickAngle()))" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if joystick is pushed in a given direction.", + "fullName": "Joystick pushed in a direction (4-way movement)", + "functionType": "Condition", + "name": "IsDirectionPushed4Way", + "sentence": "_PARAM0_ is pushed in direction _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::PropertyJoystickForce" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "Object.Behavior::PropertyDeadZoneRadius()" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::IsAngleIn4WayDirection" + }, + "parameters": [ + "", + "Object.Behavior::JoystickAngle()", + "GetArgumentAsString(\"Direction\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", + "type": "behavior" + }, + { + "description": "Direction", + "name": "Direction", + "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Check if joystick is pushed in a given direction.", + "fullName": "Joystick pushed in a direction (8-way movement)", + "functionType": "Condition", + "name": "IsDirectionPushed8Way", + "sentence": "_PARAM0_ is pushed in direction _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::PropertyJoystickForce" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "Object.Behavior::PropertyDeadZoneRadius()" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::IsAngleIn8WayDirection" + }, + "parameters": [ + "", + "Object.Behavior::JoystickAngle()", + "GetArgumentAsString(\"Direction\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", + "type": "behavior" + }, + { + "description": "Direction", + "name": "Direction", + "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\",\"UpLeft\",\"UpRight\",\"DownLeft\",\"DownRight\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Check if a joystick is pressed.", + "fullName": "Joystick pressed", + "functionType": "Condition", + "name": "IsPressed", + "sentence": "Joystick _PARAM0_ is pressed", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::PropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Reset the joystick values (except for angle, which stays the same)", + "fullName": "Reset", + "functionType": "Action", + "name": "Reset", + "private": true, + "sentence": "Reset the joystick of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetJoystickForce" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0", + "" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetPropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the multitouch controller identifier.", + "fullName": "Multitouch controller identifier", + "functionType": "ExpressionAndCondition", + "group": "Multitouch Joystick configuration", + "name": "ControllerIdentifier", + "sentence": "the multitouch controller identifier", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyControllerIdentifier()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "ControllerIdentifier", + "name": "SetControllerIdentifier", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetPropertyControllerIdentifier" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the joystick name.", + "fullName": "Joystick name", + "functionType": "ExpressionAndCondition", + "group": "Multitouch Joystick configuration", + "name": "JoystickIdentifier", + "sentence": "the joystick name", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyJoystickIdentifier()" + ] + } + ] + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "JoystickIdentifier", + "name": "SetJoystickIdentifier", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetPropertyJoystickIdentifier" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the dead zone radius (range: 0 to 1) of the joystick. 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).", + "fullName": "Dead zone radius", + "functionType": "ExpressionAndCondition", + "group": "Multitouch Joystick configuration", + "name": "DeadZoneRadius", + "sentence": "the dead zone radius", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyDeadZoneRadius()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "DeadZoneRadius", + "name": "SetDeadZoneRadius", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetPropertyDeadZoneRadius" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchJoystick", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "1", + "type": "Number", + "label": "Multitouch controller identifier (1, 2, 3, 4...)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "ControllerIdentifier" + }, + { + "value": "Primary", + "type": "String", + "label": "Joystick name", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "JoystickIdentifier" + }, + { + "value": "0.4", + "type": "Number", + "label": "Dead zone radius (range: 0 to 1)", + "description": "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)", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "DeadZoneRadius" + }, + { + "value": "0", + "type": "Number", + "label": "Joystick angle (range: -180 to 180)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "JoystickAngle" + }, + { + "value": "0", + "type": "Number", + "label": "Joystick force (range: 0 to 1)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "JoystickForce" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TouchId" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TouchIndex" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Detect button presses made on a touchscreen.", + "fullName": "Multitouch button", + "name": "MultitouchButton", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchButton::IsReleased" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchButton::SetPropertyIsReleased" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchButton::SetButtonState" + }, + "parameters": [ + "Object", + "Behavior", + "\"Idle\"", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "SpriteMultitouchJoystick::MultitouchButton::IsPressed" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "HasAnyTouchOrMouseStarted" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchButton::SetPropertyTouchIndex" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Repeat", + "repeatExpression": "StartedTouchOrMouseCount()", + "conditions": [], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionPoint" + }, + "parameters": [ + "Object", + "TouchX(StartedTouchOrMouseId(Object.Behavior::PropertyTouchIndex()), Object.Layer(), 0)", + "TouchY(StartedTouchOrMouseId(Object.Behavior::PropertyTouchIndex()), Object.Layer(), 0)" + ] + } + ], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchButton::SetPropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "StartedTouchOrMouseId(Object.Behavior::PropertyTouchIndex())" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchButton::SetButtonState" + }, + "parameters": [ + "Object", + "Behavior", + "\"Pressed\"", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchButton::SetPropertyTouchIndex" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "1" + ] + } + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchButton::IsPressed" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "HasTouchEnded" + }, + "parameters": [ + "", + "Object.Behavior::PropertyTouchId()" + ] + } + ], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchButton::SetButtonState" + }, + "parameters": [ + "Object", + "Behavior", + "\"Released\"", + "" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchButton::SetPropertyIsReleased" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchButton::SetPropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchButton", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if button is released.", + "fullName": "Button released", + "functionType": "Condition", + "name": "IsReleased", + "sentence": "Button _PARAM0_ is released", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchButton::PropertyIsReleased" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchButton", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if button is pressed.", + "fullName": "Button pressed", + "functionType": "Condition", + "name": "IsPressed", + "sentence": "Button _PARAM0_ is pressed", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchButton::PropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchButton", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "Button state", + "functionType": "Action", + "name": "SetButtonState", + "private": true, + "sentence": "Mark the button _PARAM0_ as _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::SetButtonState" + }, + "parameters": [ + "", + "Object.Behavior::PropertyControllerIdentifier()", + "Object.Behavior::PropertyButtonIdentifier()", + "GetArgumentAsString(\"ButtonState\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::MultitouchButton", + "type": "behavior" + }, + { + "description": "Button state", + "name": "ButtonState", + "supplementaryInformation": "[\"Idle\",\"Pressed\",\"Released\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "1", + "type": "Number", + "label": "Multitouch controller identifier (1, 2, 3, 4...)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "ControllerIdentifier" + }, + { + "value": "A", + "type": "String", + "label": "Button identifier", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "ButtonIdentifier" + }, + { + "value": "0", + "type": "Number", + "label": "TouchID", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TouchId" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TouchIndex" + }, + { + "value": "", + "type": "Boolean", + "label": "Button released", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "IsReleased" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Control a platformer character with a multitouch controller.", + "fullName": "Platformer multitouch controller mapper", + "name": "PlatformerMultitouchMapper", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::IsDirectionPushed4Way" + }, + "parameters": [ + "", + "Object.Behavior::PropertyControllerIdentifier()", + "Object.Behavior::PropertyJoystickIdentifier()", + "\"Left\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "Property" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::IsDirectionPushed4Way" + }, + "parameters": [ + "", + "Object.Behavior::PropertyControllerIdentifier()", + "Object.Behavior::PropertyJoystickIdentifier()", + "\"Right\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "Property" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::IsDirectionPushed4Way" + }, + "parameters": [ + "", + "Object.Behavior::PropertyControllerIdentifier()", + "Object.Behavior::PropertyJoystickIdentifier()", + "\"Up\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "Property" + ] + }, + { + "type": { + "value": "PlatformBehavior::SimulateLadderKey" + }, + "parameters": [ + "Object", + "Property" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::IsDirectionPushed4Way" + }, + "parameters": [ + "", + "Object.Behavior::PropertyControllerIdentifier()", + "Object.Behavior::PropertyJoystickIdentifier()", + "\"Down\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "Property" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::IsButtonPressed" + }, + "parameters": [ + "", + "Object.Behavior::PropertyControllerIdentifier()", + "Object.Behavior::PropertyJumpButton()", + "\"Down\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Object", + "Property" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::PlatformerMultitouchMapper", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Platform character behavior", + "description": "", + "group": "", + "extraInformation": [ + "PlatformBehavior::PlatformerObjectBehavior" + ], + "hidden": false, + "name": "Property" + }, + { + "value": "1", + "type": "Number", + "label": "Controller identifier (1, 2, 3, 4...)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "ControllerIdentifier" + }, + { + "value": "Primary", + "type": "Choice", + "label": "Joystick name", + "description": "", + "group": "Controls", + "extraInformation": [ + "Primary", + "Secondary" + ], + "hidden": false, + "name": "JoystickIdentifier" + }, + { + "value": "A", + "type": "String", + "label": "Jump button name", + "description": "", + "group": "Controls", + "extraInformation": [], + "hidden": false, + "name": "JumpButton" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "Control a top-down character with a multitouch controller.", + "fullName": "Top-down multitouch controller mapper", + "name": "TopDownMultitouchMapper", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::TopDownMultitouchMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Analog\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateStick" + }, + "parameters": [ + "Object", + "TopDownMovement", + "SpriteMultitouchJoystick::StickAngle(Object.Behavior::PropertyControllerIdentifier(), Object.Behavior::PropertyJoystickIdentifier())", + "SpriteMultitouchJoystick::StickForce(Object.Behavior::PropertyControllerIdentifier(), Object.Behavior::PropertyJoystickIdentifier())" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::TopDownMultitouchMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"360°\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateStick" + }, + "parameters": [ + "Object", + "TopDownMovement", + "SpriteMultitouchJoystick::StickAngle(Object.Behavior::PropertyControllerIdentifier(), Object.Behavior::PropertyJoystickIdentifier())", + "sign(SpriteMultitouchJoystick::StickForce(Object.Behavior::PropertyControllerIdentifier(), Object.Behavior::PropertyJoystickIdentifier()))" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::TopDownMultitouchMapper::PropertyStickMode" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"8 Directions\"" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "TopDownMovementBehavior::DiagonalsAllowed" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::IsDirectionPushed4Way" + }, + "parameters": [ + "", + "Object.Behavior::PropertyControllerIdentifier()", + "Object.Behavior::PropertyJoystickIdentifier()", + "\"Left\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::IsDirectionPushed4Way" + }, + "parameters": [ + "", + "Object.Behavior::PropertyControllerIdentifier()", + "Object.Behavior::PropertyJoystickIdentifier()", + "\"Right\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::IsDirectionPushed4Way" + }, + "parameters": [ + "", + "Object.Behavior::PropertyControllerIdentifier()", + "Object.Behavior::PropertyJoystickIdentifier()", + "\"Up\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::IsDirectionPushed4Way" + }, + "parameters": [ + "", + "Object.Behavior::PropertyControllerIdentifier()", + "Object.Behavior::PropertyJoystickIdentifier()", + "\"Down\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "TopDownMovementBehavior::DiagonalsAllowed" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::IsDirectionPushed8Way" + }, + "parameters": [ + "", + "Object.Behavior::PropertyControllerIdentifier()", + "Object.Behavior::PropertyJoystickIdentifier()", + "\"Left\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::IsDirectionPushed8Way" + }, + "parameters": [ + "", + "Object.Behavior::PropertyControllerIdentifier()", + "Object.Behavior::PropertyJoystickIdentifier()", + "\"Right\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::IsDirectionPushed8Way" + }, + "parameters": [ + "", + "Object.Behavior::PropertyControllerIdentifier()", + "Object.Behavior::PropertyJoystickIdentifier()", + "\"Up\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::IsDirectionPushed8Way" + }, + "parameters": [ + "", + "Object.Behavior::PropertyControllerIdentifier()", + "Object.Behavior::PropertyJoystickIdentifier()", + "\"Down\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::IsDirectionPushed8Way" + }, + "parameters": [ + "", + "Object.Behavior::PropertyControllerIdentifier()", + "Object.Behavior::PropertyJoystickIdentifier()", + "\"UpLeft\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + }, + { + "type": { + "value": "TopDownMovementBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::IsDirectionPushed8Way" + }, + "parameters": [ + "", + "Object.Behavior::PropertyControllerIdentifier()", + "Object.Behavior::PropertyJoystickIdentifier()", + "\"UpRight\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateUpKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + }, + { + "type": { + "value": "TopDownMovementBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::IsDirectionPushed8Way" + }, + "parameters": [ + "", + "Object.Behavior::PropertyControllerIdentifier()", + "Object.Behavior::PropertyJoystickIdentifier()", + "\"DownLeft\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + }, + { + "type": { + "value": "TopDownMovementBehavior::SimulateLeftKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::IsDirectionPushed8Way" + }, + "parameters": [ + "", + "Object.Behavior::PropertyControllerIdentifier()", + "Object.Behavior::PropertyJoystickIdentifier()", + "\"DownRight\"", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "TopDownMovementBehavior::SimulateDownKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + }, + { + "type": { + "value": "TopDownMovementBehavior::SimulateRightKey" + }, + "parameters": [ + "Object", + "TopDownMovement" + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "SpriteMultitouchJoystick::TopDownMultitouchMapper", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Top-down movement behavior", + "description": "", + "group": "", + "extraInformation": [ + "TopDownMovementBehavior::TopDownMovementBehavior" + ], + "hidden": false, + "name": "TopDownMovement" + }, + { + "value": "1", + "type": "Number", + "label": "Controller identifier (1, 2, 3, 4...)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "ControllerIdentifier" + }, + { + "value": "Primary", + "type": "Choice", + "label": "Joystick name", + "description": "", + "group": "", + "extraInformation": [ + "Primary", + "Secondary" + ], + "hidden": false, + "name": "JoystickIdentifier" + }, + { + "value": "Analog", + "type": "Choice", + "label": "Stick mode", + "description": "", + "group": "Controls", + "extraInformation": [ + "Analog", + "360°", + "8 Directions" + ], + "hidden": false, + "name": "StickMode" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [ + { + "defaultName": "Joystick", + "description": "Joystick for touchscreens.", + "fullName": "Multitouch Joystick", + "name": "SpriteMultitouchJoystick", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Border", + "0", + "0", + "" + ] + }, + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Thumb", + "0", + "0", + "" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Border", + "=", + "1" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Thumb", + "=", + "2" + ] + }, + { + "type": { + "value": "SetCenter" + }, + "parameters": [ + "Border", + "=", + "0", + "=", + "0" + ] + }, + { + "type": { + "value": "SetCenter" + }, + "parameters": [ + "Thumb", + "=", + "0", + "=", + "0" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::SpriteMultitouchJoystick::UpdateConfiguration" + }, + "parameters": [ + "Object", + "" + ] + }, + { + "type": { + "value": "SetIncludedInParentCollisionMask" + }, + "parameters": [ + "Thumb", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "MettreAutour" + }, + "parameters": [ + "Thumb", + "Border", + "Border.MultitouchJoystick::JoystickForce() * Border.Width() / 2", + "Border.MultitouchJoystick::JoystickAngle()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onHotReloading", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::SpriteMultitouchJoystick::UpdateConfiguration" + }, + "parameters": [ + "Object", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Pass the object property values to the behavior.", + "fullName": "Update configuration", + "functionType": "Action", + "name": "UpdateConfiguration", + "private": true, + "sentence": "Update the configuration of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetControllerIdentifier" + }, + "parameters": [ + "Border", + "MultitouchJoystick", + "=", + "Object.PropertyControllerIdentifier()", + "" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetJoystickIdentifier" + }, + "parameters": [ + "Border", + "MultitouchJoystick", + "=", + "Object.PropertyJoystickIdentifier()", + "" + ] + }, + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetDeadZoneRadius" + }, + "parameters": [ + "Border", + "MultitouchJoystick", + "=", + "Object.PropertyDeadZoneRadius()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "De/activate control of the joystick.", + "fullName": "De/activate control", + "functionType": "Action", + "name": "ActivateControl", + "sentence": "Activate control of _PARAM0_: _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"ShouldActivate\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Border", + "MultitouchJoystick", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"ShouldActivate\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Border", + "MultitouchJoystick", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", + "type": "object" + }, + { + "description": "Activate", + "name": "ShouldActivate", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Check if a stick is pressed.", + "fullName": "Stick pressed", + "functionType": "Condition", + "name": "IsPressed", + "sentence": "Stick _PARAM0_ is pressed", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::IsPressed" + }, + "parameters": [ + "Border", + "MultitouchJoystick", + "!=" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the joystick force (from 0 to 1).", + "fullName": "Joystick force (deprecated)", + "functionType": "ExpressionAndCondition", + "name": "JoystickForce", + "private": true, + "sentence": "the joystick force", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Border.MultitouchJoystick::JoystickForce()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the strick force (from 0 to 1).", + "fullName": "Stick force", + "functionType": "ExpressionAndCondition", + "name": "StickForce", + "sentence": "the stick force", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Border.MultitouchJoystick::JoystickForce()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the stick force on X axis (from -1 at the left to 1 at the right).", + "fullName": "Stick X force", + "functionType": "ExpressionAndCondition", + "name": "StickForceX", + "sentence": "the stick X force", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Border.MultitouchJoystick::StickForceX()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the stick force on Y axis (from -1 at the top to 1 at the bottom).", + "fullName": "Stick Y force", + "functionType": "ExpressionAndCondition", + "name": "StickForceY", + "sentence": "the stick Y force", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Border.MultitouchJoystick::StickForceY()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Return the angle the joystick is pointing towards (from -180 to 180).", + "fullName": "Joystick angle (deprecated)", + "functionType": "Expression", + "name": "JoystickAngle", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Border.MultitouchJoystick::JoystickAngle()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Return the angle the stick is pointing towards (from -180 to 180).", + "fullName": "Stick angle", + "functionType": "Expression", + "name": "StickAngle", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Border.MultitouchJoystick::JoystickAngle()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Check if joystick is pushed in a given direction.", + "fullName": "Joystick pushed in a direction (4-way movement)", + "functionType": "Condition", + "name": "IsDirectionPushed4Way", + "sentence": "_PARAM0_ is pushed in direction _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::IsDirectionPushed4Way" + }, + "parameters": [ + "Border", + "MultitouchJoystick", + "GetArgumentAsString(\"Direction\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", + "type": "object" + }, + { + "description": "Direction", + "name": "Direction", + "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "Check if joystick is pushed in a given direction.", + "fullName": "Joystick pushed in a direction (8-way movement)", + "functionType": "Condition", + "name": "IsDirectionPushed8Way", + "sentence": "_PARAM0_ is pushed in direction _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::IsDirectionPushed8Way" + }, + "parameters": [ + "Border", + "MultitouchJoystick", + "GetArgumentAsString(\"Direction\")", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", + "type": "object" + }, + { + "description": "Direction", + "name": "Direction", + "supplementaryInformation": "[\"Up\",\"Down\",\"Left\",\"Right\",\"UpLeft\",\"UpRight\",\"DownLeft\",\"DownRight\"]", + "type": "stringWithSelector" + } + ], + "objectGroups": [] + }, + { + "description": "the multitouch controller identifier (1, 2, 3, 4...).", + "fullName": "Multitouch controller identifier", + "functionType": "ExpressionAndCondition", + "group": "Multitouch Joystick configuration", + "name": "ControllerIdentifier", + "sentence": "the multitouch controller identifier", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Border.MultitouchJoystick::PropertyControllerIdentifier()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "ControllerIdentifier", + "name": "SetControllerIdentifier", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetControllerIdentifier" + }, + "parameters": [ + "Border", + "MultitouchJoystick", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the joystick name of the object.", + "fullName": "Joystick name", + "functionType": "ExpressionAndCondition", + "group": "Multitouch Joystick configuration", + "name": "JoystickIdentifier", + "sentence": "the joystick name", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Border.MultitouchJoystick::PropertyJoystickIdentifier()" + ] + } + ] + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "JoystickIdentifier", + "name": "SetJoystickIdentifier", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetJoystickIdentifier" + }, + "parameters": [ + "Border", + "MultitouchJoystick", + "=", + "GetArgumentAsString(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the dead zone radius of the joystick (range: 0 to 1). 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).", + "fullName": "Dead zone radius", + "functionType": "ExpressionAndCondition", + "group": "Multitouch Joystick configuration", + "name": "DeadZoneRadius", + "sentence": "the dead zone radius", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Border.MultitouchJoystick::PropertyDeadZoneRadius()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "DeadZoneRadius", + "name": "SetDeadZoneRadius", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SpriteMultitouchJoystick::MultitouchJoystick::SetDeadZoneRadius" + }, + "parameters": [ + "Border", + "MultitouchJoystick", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "SpriteMultitouchJoystick::SpriteMultitouchJoystick", + "type": "object" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "1", + "type": "Number", + "label": "Multitouch controller identifier (1, 2, 3, 4...)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "ControllerIdentifier" + }, + { + "value": "Primary", + "type": "Choice", + "label": "Joystick name", + "description": "", + "group": "", + "extraInformation": [ + "Primary", + "Secondary" + ], + "hidden": false, + "name": "JoystickIdentifier" + }, + { + "value": "0.4", + "type": "Number", + "label": "Dead zone radius (range: 0 to 1)", + "description": "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)", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "DeadZoneRadius" + }, + { + "value": "Center-center", + "type": "String", + "label": "", + "description": "Only used by the scene editor.", + "group": "", + "extraInformation": [ + "Thumb" + ], + "hidden": true, + "name": "ThumbAnchorOrigin" + }, + { + "value": "Center-center", + "type": "Number", + "label": "", + "description": "Only used by the scene editor.", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ThumbAnchorTarget" + }, + { + "value": "true", + "type": "Boolean", + "label": "", + "description": "Only used by the scene editor.", + "group": "", + "extraInformation": [ + "Thumb" + ], + "hidden": true, + "name": "ThumbIsScaledProportionally" + }, + { + "value": "Center-center", + "type": "String", + "label": "", + "description": "Only used by the scene editor.", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ParentOrigin" + } + ], + "objects": [ + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Thumb", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [], + "animations": [ + { + "name": "Idle", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [] + } + ] + } + ] + }, + { + "adaptCollisionMaskAutomatically": false, + "assetStoreId": "", + "name": "Border", + "tags": "", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "MultitouchJoystick", + "type": "SpriteMultitouchJoystick::MultitouchJoystick", + "ControllerIdentifier": 1, + "JoystickIdentifier": "Primary", + "FloatingEnabled": false, + "DeadZoneRadius": 0.4, + "JoystickAngle": 0, + "JoystickForce": 0, + "TouchId": 0, + "TouchIndex": 0 + } + ], + "animations": [ + { + "name": "Idle", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [] + } + ] + } + ] + } + ] + } + ] + }, + { + "author": "", + "category": "Movement", + "extensionNamespace": "", + "fullName": "Boids movement (experimental)", + "helpPath": "/extensions/boids-movement/details/", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8cGF0aCBkPSJNMjkuMywxMC4xYy0wLjQtMC4xLTAuOCwwLTEuMSwwLjNsLTMuMiw0Yy0xLjctMi01LjktNi40LTExLTYuNGMtMC4yLDAtMC4zLDAtMC41LDBjMS40LDIuNCwyLjEsNS4xLDIuMSw4DQoJCWMwLDIuOC0wLjcsNS42LTIuMSw4YzAuMiwwLDAuMywwLDAuNSwwYzUuMSwwLDkuMy00LjMsMTEtNi40bDMuMiw0YzAuMiwwLjIsMC41LDAuNCwwLjgsMC40YzAuMSwwLDAuMiwwLDAuMy0wLjENCgkJYzAuNC0wLjEsMC43LTAuNSwwLjctMC45VjExQzMwLDEwLjYsMjkuNywxMC4yLDI5LjMsMTAuMXoiLz4NCgk8cGF0aCBkPSJNMTEuNCw4LjRjLTUuMiwxLjUtOSw2LjgtOS4yLDdjLTAuMiwwLjMtMC4yLDAuOCwwLDEuMmMwLjIsMC4zLDQsNS42LDkuMiw3YzEuNS0yLjMsMi4yLTQuOSwyLjItNy42DQoJCUMxMy42LDEzLjMsMTIuOCwxMC42LDExLjQsOC40eiBNMTAsMTZjMCwwLjYtMC40LDEtMSwxcy0xLTAuNC0xLTF2LTJjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMVYxNnoiLz4NCjwvZz4NCjwvc3ZnPg0K", + "name": "BoidsMovement", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/Glyphster Pack/Master/SVG/Restaurant/Restaurant_restaurant_seafood_animal_fish.svg", + "shortDescription": "Simulates flocks movement.", + "version": "0.1.6", + "description": [ + "Simulates swarms or flocks movement following the separation, alignment, cohesion principles. The flock can be attracted to a location or avoid some obstacles.", + "", + "The [Fish School example](https://editor.gdevelop.io/?project=example://fish-school) shows how properties impact on the movement." + ], + "origin": { + "identifier": "BoidsMovement", + "name": "gdevelop-extension-store" + }, + "tags": [ + "flock", + "swarm", + "boids", + "crowd", + "horde" + ], + "authorIds": [ + "rotBq28wITdtfsrE7McHQri4k2w2", + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" + ], + "dependencies": [], + "eventsFunctions": [ + { + "description": "Define JavaScript classes.", + "fullName": "Define JavaScript classes", + "functionType": "Action", + "name": "DefineJavaScript", + "private": true, + "sentence": "Define JavaScript classes", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GlobalVariableAsBoolean" + }, + "parameters": [ + "__BoidsMovement_ClassesDefined", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetGlobalVariableAsBoolean" + }, + "parameters": [ + "__BoidsMovement_ClassesDefined", + "True" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "gdjs.__boidsExtension = gdjs.__boidsExtension || {};", + "", + "/**", + " * A vector", + " * @param {float} x - coordinate of the vectors starting position", + " * @param {float} y - coordinate of the vectors starting position", + " * @constructor", + " */", + "gdjs.__boidsExtension.Vector = /** @class */ (function () {", + " ", + " /**", + " * Create a vector.", + " * @param {number} x", + " * @param {number} y", + " */", + " function Vector(x, y) {", + " this.x = x;", + " this.y = y;", + " }", + "", + " /**", + " * @param {number} x", + " * @param {number} y", + " * @returns {Vector} this object", + " */", + " Vector.prototype.set = function (x, y) {", + " this.x = x;", + " this.y = y;", + " return this;", + " }", + "", + " /**", + " * Adds a velocity to this vector", + " * @param {Vector} referenceVector gets the velocity to be added", + " * @returns {Vector} this object", + " */", + " Vector.prototype.add = function (referenceVector) {", + " this.x += referenceVector.x;", + " this.y += referenceVector.y;", + "", + " return this;", + " }", + "", + " /**", + " * Normalize the vector", + " * @returns {Vector}", + " */", + " Vector.prototype.normalize = function () {", + " var len = this.magnitude();", + " if (len !== 0) this.multiply(1 / len);", + " return this;", + " }", + "", + " /**", + " * Multiply vectors verticies", + " * @param {float} amount", + " * @returns {Vector}", + " */", + " Vector.prototype.multiply = function (amount) {", + " this.x *= amount;", + " this.y *= amount;", + " return this;", + " }", + "", + " /**", + " * Divide vectors verticies", + " * @param {float} amount", + " * @returns {Vector}", + " */", + " Vector.prototype.divide = function (amount) {", + " this.x /= amount;", + " this.y /= amount;", + "", + " return this;", + " }", + "", + " /**", + " * Subtracts vectors verticies from a reference vector", + " * @param {Vector} referenceVector", + " * @returns {Vector}", + " */", + " Vector.prototype.subtract = function (referenceVector) {", + " this.x -= referenceVector.x;", + " this.y -= referenceVector.y;", + "", + " return this;", + " }", + "", + " /**", + " * Limits Vectors speed", + " * @returns {Vector}", + " */", + " Vector.prototype.limit = function limit(max) {", + " var mSq = this.magnitudeSquare();", + " if (mSq > max * max) {", + " this.divide(Math.sqrt(mSq)).multiply(max);", + " }", + " return this;", + " }", + "", + " /**", + " * Calculate the vectors direction", + " * @returns {float}", + " */", + " Vector.prototype.heading = function () {", + " let h = Math.atan2(this.y, this.x);", + " return h;", + " }", + "", + " /**", + " * Calculate the vectors magnitude squared", + " * @returns {float}", + " */", + " Vector.prototype.magnitudeSquare = function () {", + " var x = this.x;", + " var y = this.y;", + " return x * x + y * y;", + " };", + "", + " /**", + " * Calculate the vectors magnitude", + " * @returns {float}", + " */", + " Vector.prototype.magnitude = function () {", + " return Math.sqrt(this.magnitudeSquare());", + " }", + " ", + " return Vector;", + "}());", + "", + "/**", + " * A boid agent", + " * Methods for Separation, Cohesion, Alignment added", + " * Inspired from The Nature of Code - Daniel Shiffman", + " * http://natureofcode.com", + " * ", + " * Original source code:", + " * https://github.com/nature-of-code/noc-examples-processing/blob/master/chp06_agents/NOC_6_09_Flocking/Boid.pde", + " */", + "gdjs.__boidsExtension.Boid = /** @class */ (function () {", + "", + " /**", + " * Create a boid agent.", + " * @parameter {gdjs.RuntimeBehavior} behavior", + " */", + " function Boid(behavior) {", + " /** @type {gdjs.RuntimeBehavior} */", + " this.behavior = behavior;", + " this.acceleration = new gdjs.__boidsExtension.Vector(0, 0);", + " this.velocity = new gdjs.__boidsExtension.Vector(gdjs.randomFloatInRange(-1, 1), gdjs.randomFloatInRange(-1, 1));", + " this.separationDirection = new gdjs.__boidsExtension.Vector(0, 0);", + " this.alignmentDirection = new gdjs.__boidsExtension.Vector(0, 0);", + " this.cohesionDirection = new gdjs.__boidsExtension.Vector(0, 0);", + " this.customIntentsDirectionSum = new gdjs.__boidsExtension.Vector(0, 0);", + " this.separateWorkingVector = new gdjs.__boidsExtension.Vector(0, 0);", + " }", + "", + " /**", + " * Add a custom intent.", + " * @param {Boid} boid", + " * @param {number} directionX", + " * @param {number} directionY", + " * @param {number} weight", + " */", + " Boid.prototype.addIntent = function (directionX, directionY, weight) {", + "", + " if (directionX === 0 && directionY === 0) {", + " return;", + " }", + "", + " const length = Math.hypot(directionX, directionY);", + " const unitX = directionX / length;", + " const unitY = directionY / length;", + "", + " this.customIntentsDirectionSum.x += unitX * weight;", + " this.customIntentsDirectionSum.y += unitY * weight;", + " }", + "", + " /**", + " * Vector between 2 boids.", + " * @param {Boid} boid", + " * @param {Vector} vector the vector to return the result", + " * @returns {Vector} vector", + " */", + " Boid.prototype.getVectorTo = function (boid, vector) {", + " const object = this.behavior.owner;", + " const otherObject = boid.behavior.owner;", + " let x = otherObject.x - object.x;", + " let y = otherObject.y - object.y;", + " vector.set(x, y);", + " return vector;", + " }", + "", + " /**", + " * Applys the three rules of boids", + " */", + " Boid.prototype.flock = function () {", + " const separationDirection = this.separate();", + " const alignmentDirection = this.align();", + " const cohesionDirection = this.cohesion();", + "", + " separationDirection.multiply(this.behavior.SeparationWeight());", + " alignmentDirection.multiply(this.behavior.AlignmentWeight());", + " cohesionDirection.multiply(this.behavior.CohesionWeight());", + "", + " const direction = separationDirection.add(alignmentDirection).add(cohesionDirection).add(this.customIntentsDirectionSum);", + " this.acceleration.add(this.steer(direction));", + "", + " this.customIntentsDirectionSum.set(0, 0);", + " }", + "", + " /**", + " * Apply the acceleration from the steer force.", + " */", + " Boid.prototype.move = function () {", + " const object = this.behavior.owner;", + " const timeDelta = object.getElapsedTime(object.getInstanceContainer()) / 1000;", + " this.acceleration.multiply(timeDelta);", + "", + " const previousVelocityX = this.velocity.x;", + " const previousVelocityY = this.velocity.y;", + "", + " this.velocity.add(this.acceleration);", + " this.velocity.limit(this.behavior.MaxSpeed());", + " this.acceleration.set(0, 0);", + "", + " if (this.behavior.ShouldRotate()) {", + " let theta = this.velocity.heading() * 180 / Math.PI;", + " object.setAngle(theta);", + " }", + " // Verlet integration", + " object.setX(object.x + (previousVelocityX + this.velocity.x) / 2 * timeDelta);", + " object.setY(object.y + (previousVelocityY + this.velocity.y) / 2 * timeDelta);", + " }", + "", + " /**", + " * Calculates and applies steering force towards a direction", + " * @param desiredDirection {Vector}", + " * @return {Vector} alignment force", + " */", + " Boid.prototype.steer = function (desiredDirection) {", + " desiredDirection.normalize();", + " desiredDirection.multiply(this.behavior.MaxSpeed());", + " let steer = desiredDirection.subtract(this.velocity);", + " steer.limit(this.behavior.MaxAcceleration());", + " return steer;", + " }", + "", + " /**", + " * Separation: checks for nearby boids.", + " * @return {Vector} separation direction", + " */", + " Boid.prototype.separate = function () {", + " const runtimeScene = this.behavior.owner.getInstanceContainer();", + " /** @type {gdjs.__boidsExtension.BoidsManager} */", + " const manager = runtimeScene.__boidsExtension.boidsManager;", + " const separationRadius = this.behavior.SeparationRadius();", + " this.separationDirection.set(0, 0);", + " let diff = this.separateWorkingVector;", + " const object = this.behavior.owner;", + "", + " const nearbyBoids = manager.getAllBoidsAround(this, separationRadius);", + " for (let i = 0; i < nearbyBoids.length; i++) {", + " const boid = nearbyBoids[i];", + " const otherObject = boid.behavior.owner;", + " const distance = object.getDistanceToObject(otherObject);", + " if (distance > 0) {", + " diff = boid.getVectorTo(this, diff);", + " diff.normalize();", + " diff.divide(distance);", + " this.separationDirection.add(diff);", + " }", + " }", + " if (this.separationDirection.magnitudeSquare() > 0) {", + " this.separationDirection.normalize();", + " }", + " return this.separationDirection;", + " }", + "", + " /**", + " * Alignment: calculate the average velocity for every nearby boid in the system", + " * @return {Vector} alignment direction", + " */", + " Boid.prototype.align = function () {", + " const runtimeScene = this.behavior.owner.getInstanceContainer();", + " /** @type {gdjs.__boidsExtension.BoidsManager} */", + " const manager = runtimeScene.__boidsExtension.boidsManager;", + " const alignmentRadius = this.behavior.AlignmentRadius();", + " this.alignmentDirection.set(0, 0);", + " let count = 0;", + " const object = this.behavior.owner;", + "", + " const nearbyBoids = manager.getAllBoidsAround(this, alignmentRadius);", + " for (let i = 0; i < nearbyBoids.length; i++) {", + " const boid = nearbyBoids[i];", + " this.alignmentDirection.add(boid.velocity);", + " count++;", + " }", + " if (count > 0) {", + " this.alignmentDirection.normalize();", + " }", + " return this.alignmentDirection;", + " }", + "", + " /**", + " * Cohesion: calculate direction vector towards the average location of all nearby boids", + " * @return {Vector} cohesion direction", + " */", + " Boid.prototype.cohesion = function () {", + " const runtimeScene = this.behavior.owner.getInstanceContainer();", + " /** @type {gdjs.__boidsExtension.BoidsManager} */", + " const manager = runtimeScene.__boidsExtension.boidsManager;", + " const cohesionRadius = this.behavior.CohesionRadius();", + " let count = 0;", + " let sumX = 0;", + " let sumY = 0;", + " const object = this.behavior.owner;", + "", + " const nearbyBoids = manager.getAllBoidsAround(this, cohesionRadius);", + " for (let i = 0; i < nearbyBoids.length; i++) {", + " const boid = nearbyBoids[i];", + " const otherObject = boid.behavior.owner;", + " sumX += otherObject.getCenterXInScene();", + " sumY += otherObject.getCenterYInScene();", + " count++;", + " }", + " if (count > 0) {", + " sumX /= count;", + " sumY /= count;", + "", + " // A vector pointing from the position to the target", + " this.cohesionDirection.set(", + " sumX - object.getCenterXInScene(),", + " sumY - object.getCenterYInScene()", + " )", + " }", + " return this.cohesionDirection.normalize();", + " }", + "", + " return Boid;", + "}());", + "", + "/**", + " * A boids manager", + " */", + "gdjs.__boidsExtension.BoidsManager = /** @class */ (function () {", + " /**", + " * Create a manager.", + " */", + " function BoidsManager() {", + " /**", + " * @type {Map}", + " */", + " this.boids = new Map();", + " this.boidsRBush = new rbush();", + " }", + "", + " /**", + " * Create and register a boid.", + " * @param {gdjs.RuntimeBehavior} behavior", + " * @returns {Boid} the created Boid", + " */", + " BoidsManager.prototype.add = function (behavior) {", + " const boid = new gdjs.__boidsExtension.Boid(behavior);", + " this.boids.set(behavior.owner.id, boid);", + " this.addToRBush(boid);", + " return boid;", + " }", + "", + " /**", + " * Add a boid to the R-Tree.", + " * @param {Boid} boid", + " */", + " BoidsManager.prototype.addToRBush = function (boid) {", + " if (boid.currentRBushAABB) {", + " boid.currentRBushAABB.updateAABBFromOwner();", + " }", + " else {", + " boid.currentRBushAABB = new gdjs.BehaviorRBushAABB(", + " boid.behavior", + " );", + " }", + " this.boidsRBush.insert(boid.currentRBushAABB);", + " }", + "", + " /**", + " * Unregister the boid.", + " * @param {gdjs.RuntimeBehavior} behavior", + " */", + " BoidsManager.prototype.remove = function (behavior) {", + " this.boids.delete(behavior.owner.id);", + "", + " this.removeFromRBush(behavior.__boidsExtension.boid.currentRBushAABB);", + " }", + "", + " /**", + " * Remove a boid from the R-Tree.", + " * @param {Boid} boid", + " */", + " BoidsManager.prototype.removeFromRBush = function (boid) {", + " this.boidsRBush.remove(boid.currentRBushAABB);", + " }", + "", + " /**", + " * Move all instances.", + " */", + " BoidsManager.prototype.moveAll = function () {", + " this.boids.forEach(boid => boid.flock());", + " this.boids.forEach(boid => {", + " boid.move();", + " this.removeFromRBush(boid);", + " this.addToRBush(boid);", + " });", + " }", + "", + " /**", + " * Returns all the boids around the specified boid.", + " * @param {Boid} boid", + " * @param {number} radius", + " * @return {Boid[]} An array with all boids near the object.", + " */", + " BoidsManager.prototype.getAllBoidsAround = function (boid, radius, results) {", + " const object = boid.behavior.owner;", + "", + " const x = object.getCenterXInScene();", + " const y = object.getCenterYInScene();", + " const searchArea = gdjs.staticObject(", + " gdjs.__boidsExtension.BoidsManager.prototype.getAllBoidsAround", + " );", + " searchArea.minX = x - radius;", + " searchArea.minY = y - radius;", + " searchArea.maxX = x + radius;", + " searchArea.maxY = y + radius;", + " // TODO The R-Tree should not allocate an array.", + " const nearbys = this.boidsRBush.search(searchArea);", + "", + " const radiusSq = radius * radius;", + " const result = gdjs.staticArray(", + " gdjs.__boidsExtension.BoidsManager.prototype.getAllBoidsAround", + " );", + " result.length = 0;", + " // Cap the number of boids between 20 and 40.", + " const step = Math.ceil(nearbys.length / 40);", + " for (let i = 0; i < nearbys.length; i += step) {", + " const behavior = nearbys[i].behavior;", + " const otherObject = behavior.owner;", + " if (object === otherObject) {", + " continue;", + " }", + " const distanceSq = object.getSqDistanceToObject(otherObject);", + " if (distanceSq < radiusSq) {", + " result.push(behavior.__boidsExtension.boid);", + " }", + " }", + " return result;", + " }", + "", + " return BoidsManager;", + "}());", + "" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ] + } + ], + "parameters": [], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [ + { + "description": "Move as part of a flock.", + "fullName": "Boids Movement (experimental)", + "name": "BoidsMovement", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Initiate and attach properties as objects variables" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "BoidsMovement::DefineJavaScript" + }, + "parameters": [ + "", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "\r", + "runtimeScene.__boidsExtension = runtimeScene.__boidsExtension || {};\r", + "runtimeScene.__boidsExtension.boidsManager = runtimeScene.__boidsExtension.boidsManager || new gdjs.__boidsExtension.BoidsManager();\r", + "\r", + "const object = objects[0];\r", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");\r", + "const behavior = object.getBehavior(behaviorName);\r", + "behavior.__boidsExtension = behavior.__boidsExtension || {};\r", + "behavior.__boidsExtension.boid = runtimeScene.__boidsExtension.boidsManager.add(behavior);" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "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 boids position every frame" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "SceneVariableAsBoolean" + }, + "parameters": [ + "__BoidsBehaviour_hasAlreadyRunThisFrame", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetSceneVariableAsBoolean" + }, + "parameters": [ + "__BoidsBehaviour_hasAlreadyRunThisFrame", + "True" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "runtimeScene.__boidsExtension.boidsManager.moveAll();", + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetSceneVariableAsBoolean" + }, + "parameters": [ + "__BoidsBehaviour_hasAlreadyRunThisFrame", + "False" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onActivate", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const behavior = object.getBehavior(behaviorName);", + "runtimeScene.__boidsExtension.boidsManager.add(behavior);" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onDeActivate", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const behavior = object.getBehavior(behaviorName);", + "runtimeScene.__boidsExtension.boidsManager.remove(behavior);" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onDestroy", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "\r", + "const object = objects[0];\r", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");\r", + "const behavior = object.getBehavior(behaviorName);\r", + "runtimeScene.__boidsExtension.boidsManager.remove(behavior);" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Intend to move in a given direction.", + "fullName": "Move in a direction", + "functionType": "Action", + "name": "MoveInDirection", + "sentence": "_PARAM0_ intent to move in the direction _PARAM2_; _PARAM3_ (decision weight: _PARAM4_)", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const behavior = object.getBehavior(behaviorName);", + "const directionX = eventsFunctionContext.getArgument(\"DirectionX\");", + "const directionY = eventsFunctionContext.getArgument(\"DirectionY\");", + "const decisionWeight = eventsFunctionContext.getArgument(\"DecisionWeight\");", + "", + "behavior.__boidsExtension.boid.addIntent(directionX, directionY, decisionWeight);" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + }, + { + "description": "Direction X", + "name": "DirectionX", + "type": "expression" + }, + { + "description": "Direction Y", + "name": "DirectionY", + "type": "expression" + }, + { + "description": "Decision weight", + "name": "DecisionWeight", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Intend to move toward a position.", + "fullName": "Move toward a position", + "functionType": "Action", + "name": "MoveToPosition", + "sentence": "_PARAM0_ intend to move toward _PARAM2_; _PARAM3_ (decision weight: _PARAM4_)", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "BoidsMovement::BoidsMovement::MoveInDirection" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsNumber(\"TargetX\") - Object.CenterX()", + "GetArgumentAsNumber(\"TargetY\") - Object.CenterY()", + "GetArgumentAsNumber(\"DecisionWeight\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + }, + { + "description": "Target X", + "name": "TargetX", + "type": "expression" + }, + { + "description": "Target Y", + "name": "TargetY", + "type": "expression" + }, + { + "description": "Decision weight", + "name": "DecisionWeight", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Intend to move toward an object.", + "fullName": "Move toward an object", + "functionType": "Action", + "name": "MoveToObject", + "sentence": "_PARAM0_ intend to move toward _PARAM2_ (decision weight: _PARAM3_)", + "events": [ + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "TargetedObject", + "conditions": [], + "actions": [ + { + "type": { + "value": "BoidsMovement::BoidsMovement::MoveToPosition" + }, + "parameters": [ + "Object", + "Behavior", + "TargetedObject.CenterX()", + "TargetedObject.CenterY()", + "GetArgumentAsNumber(\"DecisionWeight\")", + "GetArgumentAsNumber(\"DecisionWeight\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + }, + { + "description": "Targeted object", + "name": "TargetedObject", + "type": "objectList" + }, + { + "description": "Decision weight", + "name": "DecisionWeight", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Intend to avoid an area with a given center and radius.", + "fullName": "Avoid a position", + "functionType": "Action", + "name": "AvoidPosition", + "sentence": "_PARAM0_ intend to avoid a radius of _PARAM4_ around _PARAM2_; _PARAM3_ (decision weight: _PARAM5_)", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Evaluate at which distance the object will go past a location if it were to continue in its current direction.\n\nspeedUnitX = velocityX / speed\nspeedUnitY = velocityY / speed\n\ndeltaX = centerX - object.CenterX\ndeltaY = centerY - object.CenterY\n\nnormalX = -deltaY;\nnormalY = deltaX;\n\ntrajectoryDistance = speedUnitX * normalX + speedUnitY * normalY" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "BoidsMovement::BoidsMovement::SetPropertyTrajectoryDistance" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "(Object.Behavior::VelocityX() * (Object.CenterY() - GetArgumentAsNumber(\"CenterY\")) + Object.Behavior::VelocityY() * (GetArgumentAsNumber(\"CenterX\") - Object.CenterX())) / Object.Behavior::Speed()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If this distance is smaller than the specified radius, the Boid must try turn in the right direction to avoid the area." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BoidsMovement::BoidsMovement::PropertyTrajectoryDistance" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "- GetArgumentAsNumber(\"Radius\")" + ] + }, + { + "type": { + "value": "BoidsMovement::BoidsMovement::PropertyTrajectoryDistance" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "GetArgumentAsNumber(\"Radius\")" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "(normalX ; normalY)" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BoidsMovement::BoidsMovement::PropertyTrajectoryDistance" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "BoidsMovement::BoidsMovement::MoveInDirection" + }, + "parameters": [ + "Object", + "Behavior", + "-(GetArgumentAsNumber(\"CenterY\") - Object.CenterY())", + "GetArgumentAsNumber(\"CenterX\") - Object.CenterX()", + "GetArgumentAsNumber(\"DecisionWeight\")", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "(-normalX ; -normalY)" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BoidsMovement::BoidsMovement::PropertyTrajectoryDistance" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "BoidsMovement::BoidsMovement::MoveInDirection" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsNumber(\"CenterY\") - Object.CenterY()", + "-(GetArgumentAsNumber(\"CenterX\") - Object.CenterX())", + "GetArgumentAsNumber(\"DecisionWeight\")", + "" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + }, + { + "description": "Center X", + "name": "CenterX", + "type": "expression" + }, + { + "description": "Center Y", + "name": "CenterY", + "type": "expression" + }, + { + "description": "Radius", + "name": "Radius", + "type": "expression" + }, + { + "description": "Decision weight", + "name": "DecisionWeight", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Intend to avoid an area from an object center and a given radius.", + "fullName": "Avoid an object", + "functionType": "Action", + "name": "AvoidObject", + "sentence": "_PARAM0_ intend to avoid a radius of _PARAM3_ around _PARAM2_ (decision weight: _PARAM4_)", + "events": [ + { + "type": "BuiltinCommonInstructions::ForEach", + "object": "AvoidedObject", + "conditions": [], + "actions": [ + { + "type": { + "value": "BoidsMovement::BoidsMovement::AvoidPosition" + }, + "parameters": [ + "Object", + "Behavior", + "AvoidedObject.CenterX()", + "AvoidedObject.CenterY()", + "GetArgumentAsNumber(\"Radius\")", + "GetArgumentAsNumber(\"DecisionWeight\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + }, + { + "description": "Avoided object", + "name": "AvoidedObject", + "type": "objectList" + }, + { + "description": "Radius", + "name": "Radius", + "type": "expression" + }, + { + "description": "Decision weight", + "name": "DecisionWeight", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Return the current speed.", + "fullName": "Speed", + "functionType": "Expression", + "name": "Speed", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const behavior = object.getBehavior(behaviorName);", + "const directionX = eventsFunctionContext.getArgument(\"DirectionX\");", + "const directionY = eventsFunctionContext.getArgument(\"DirectionY\");", + "const decisionWeight = eventsFunctionContext.getArgument(\"DecisionWeight\");", + "", + "eventsFunctionContext.returnValue = behavior.__boidsExtension.boid.velocity.magnitude();" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Return the current vertical speed.", + "fullName": "Velocity Y", + "functionType": "Expression", + "name": "VelocityX", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const behavior = object.getBehavior(behaviorName);", + "const directionX = eventsFunctionContext.getArgument(\"DirectionX\");", + "const directionY = eventsFunctionContext.getArgument(\"DirectionY\");", + "const decisionWeight = eventsFunctionContext.getArgument(\"DecisionWeight\");", + "", + "eventsFunctionContext.returnValue = behavior.__boidsExtension.boid.velocity.x;" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Return the current horizontal speed.", + "fullName": "Velocity X", + "functionType": "Expression", + "name": "VelocityY", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const object = objects[0];", + "const behaviorName = eventsFunctionContext.getBehaviorName(\"Behavior\");", + "const behavior = object.getBehavior(behaviorName);", + "const directionX = eventsFunctionContext.getArgument(\"DirectionX\");", + "const directionY = eventsFunctionContext.getArgument(\"DirectionY\");", + "const decisionWeight = eventsFunctionContext.getArgument(\"DecisionWeight\");", + "", + "eventsFunctionContext.returnValue = behavior.__boidsExtension.boid.velocity.y;" + ], + "parameterObjects": "Object", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the maximum speed of the object.", + "fullName": "Maximum speed", + "functionType": "Action", + "group": "Boids movement configuration", + "name": "SetMaxSpeed", + "sentence": "Change the maximum speed of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "BoidsMovement::BoidsMovement::SetPropertyMaxSpeed" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"MaxSpeed\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + }, + { + "description": "Max Speed", + "name": "MaxSpeed", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the maximum acceleration of the object.", + "fullName": "Maximum acceleration", + "functionType": "Action", + "group": "Boids movement configuration", + "name": "SetMaxAcceleration", + "sentence": "Change the maximum acceleration of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "BoidsMovement::BoidsMovement::SetPropertyMaxAcceleration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"SteeringForce\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + }, + { + "description": "Steering Force", + "name": "SteeringForce", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the object is rotated while moving on its path.", + "fullName": "Object Rotated", + "functionType": "Condition", + "group": "Boids movement configuration", + "name": "ShouldRotate", + "sentence": "_PARAM0_ is rotated when moving", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BoidsMovement::BoidsMovement::PropertyShouldRotate" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Return the maximum speed.", + "fullName": "Maximum speed", + "functionType": "Expression", + "group": "Boids movement configuration", + "name": "MaxSpeed", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyMaxSpeed()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Return the maximum acceleration.", + "fullName": "Maximum acceleration", + "functionType": "Expression", + "group": "Boids movement configuration", + "name": "MaxAcceleration", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyMaxAcceleration()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Return the cohesion sight radius.", + "fullName": "Cohesion sight radius", + "functionType": "Expression", + "group": "Boids sight configuration", + "name": "CohesionRadius", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyCohesionRadius()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the cohesion sight radius.", + "fullName": "Cohesion sight radius", + "functionType": "Action", + "group": "Boids sight configuration", + "name": "SetCohesionRadius", + "sentence": "Change the cohesion sight radius of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "BoidsMovement::BoidsMovement::SetPropertyCohesionRadius" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + }, + { + "description": "Value", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Return the alignment sight radius.", + "fullName": "Alignment sight radius", + "functionType": "Expression", + "group": "Boids sight configuration", + "name": "AlignmentRadius", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyAlignmentRadius()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Return the alignment sight radius.", + "fullName": "Alignment sight radius", + "functionType": "Action", + "group": "Boids sight configuration", + "name": "SetAlignmentRadius", + "sentence": "Change the alignment sight radius of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "BoidsMovement::BoidsMovement::SetPropertyAlignmentRadius" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + }, + { + "description": "Value", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Return the separation sight radius.", + "fullName": "Separation sight radius", + "functionType": "Expression", + "group": "Boids sight configuration", + "name": "SeparationRadius", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertySeparationRadius()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Return the separation sight radius.", + "fullName": "Separation sight radius", + "functionType": "Action", + "group": "Boids sight configuration", + "name": "SetSeparationRadius", + "sentence": "Change the separation sight radius of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "BoidsMovement::BoidsMovement::SetPropertySeparationRadius" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + }, + { + "description": "Value", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Return which weight the cohesion takes in the chosen direction.", + "fullName": "Cohesion weight", + "functionType": "Expression", + "group": "Boids decision configuration", + "name": "CohesionWeight", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyCohesionWeight()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the weight the cohesion takes in the chosen direction.", + "fullName": "Cohesion weight", + "functionType": "Action", + "group": "Boids decision configuration", + "name": "SetCohesionWeight", + "sentence": "Change the cohesion weight of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "BoidsMovement::BoidsMovement::SetPropertyCohesionWeight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + }, + { + "description": "Value", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Return which weight the alignment takes in the chosen direction.", + "fullName": "Alignment weight", + "functionType": "Expression", + "group": "Boids decision configuration", + "name": "AlignmentWeight", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyAlignmentWeight()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the weight the alignment takes in the chosen direction.", + "fullName": "Alignment weight", + "functionType": "Action", + "group": "Boids decision configuration", + "name": "SetAlignmentWeight", + "sentence": "Change the alignment weight of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "BoidsMovement::BoidsMovement::SetPropertyAlignmentWeight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + }, + { + "description": "Value", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Return which weight the separation takes in the chosen direction.", + "fullName": "Separation weight", + "functionType": "Expression", + "group": "Boids decision configuration", + "name": "SeparationWeight", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertySeparationWeight()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the weight the separation takes in the chosen direction.", + "fullName": "Separation weight", + "functionType": "Action", + "group": "Boids decision configuration", + "name": "SetSeparationWeight", + "sentence": "Change the separation weight of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "BoidsMovement::BoidsMovement::SetPropertySeparationWeight" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "BoidsMovement::BoidsMovement", + "type": "behavior" + }, + { + "description": "Value", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "360", + "type": "Number", + "label": "Maximum speed (in pixels per second)", + "description": "", + "group": "Movement", + "extraInformation": [], + "hidden": false, + "name": "MaxSpeed" + }, + { + "value": "720", + "type": "Number", + "label": "Maximum acceleration (in pixels per second per second)", + "description": "", + "group": "Movement", + "extraInformation": [], + "hidden": false, + "name": "MaxAcceleration" + }, + { + "value": "true", + "type": "Boolean", + "label": "Rotate object", + "description": "", + "group": "Movement", + "extraInformation": [], + "hidden": false, + "name": "ShouldRotate" + }, + { + "value": "64", + "type": "Number", + "label": "Cohesion sight radius", + "description": "", + "group": "Sight", + "extraInformation": [], + "hidden": false, + "name": "CohesionRadius" + }, + { + "value": "48", + "type": "Number", + "label": "Alignement sight radius", + "description": "", + "group": "Sight", + "extraInformation": [], + "hidden": false, + "name": "AlignmentRadius" + }, + { + "value": "32", + "type": "Number", + "label": "Separation sight radius", + "description": "", + "group": "Sight", + "extraInformation": [], + "hidden": false, + "name": "SeparationRadius" + }, + { + "value": "1", + "type": "Number", + "label": "Cohesion decision weight", + "description": "", + "group": "Decision", + "extraInformation": [], + "hidden": false, + "name": "CohesionWeight" + }, + { + "value": "1", + "type": "Number", + "label": "Alignment decision weight", + "description": "", + "group": "Decision", + "extraInformation": [], + "hidden": false, + "name": "AlignmentWeight" + }, + { + "value": "2", + "type": "Number", + "label": "Separation decision weight", + "description": "", + "group": "Decision", + "extraInformation": [], + "hidden": false, + "name": "SeparationWeight" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TrajectoryDistance" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "", + "category": "User interface", + "extensionNamespace": "", + "fullName": "Panel sprite button", + "helpPath": "/objects/button", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPHBhdGggY2xhc3M9InN0MCIgZD0iTTI5LDIzSDNjLTEuMSwwLTItMC45LTItMlYxMWMwLTEuMSwwLjktMiwyLTJoMjZjMS4xLDAsMiwwLjksMiwydjEwQzMxLDIyLjEsMzAuMSwyMywyOSwyM3oiLz4NCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMywxOUwxMywxOWMtMS4xLDAtMi0wLjktMi0ydi0yYzAtMS4xLDAuOS0yLDItMmgwYzEuMSwwLDIsMC45LDIsMnYyQzE1LDE4LjEsMTQuMSwxOSwxMywxOXoiLz4NCjxsaW5lIGNsYXNzPSJzdDAiIHgxPSIxOCIgeTE9IjEzIiB4Mj0iMTgiIHkyPSIxOSIvPg0KPGxpbmUgY2xhc3M9InN0MCIgeDE9IjIxIiB5MT0iMTMiIHgyPSIxOCIgeTI9IjE3Ii8+DQo8bGluZSBjbGFzcz0ic3QwIiB4MT0iMjEiIHkxPSIxOSIgeDI9IjE5IiB5Mj0iMTYiLz4NCjwvc3ZnPg0K", + "name": "PanelSpriteButton", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/Interface Elements/Interface Elements_interface_ui_button_ok_cta_clock_tap.svg", + "shortDescription": "A button that can be customized.", + "version": "1.4.4", + "description": [ + "The button can be customized with a background for each state and a label. It handles user interactions and a simple condition can be used to check if it is clicked.", + "", + "There are ready-to-use buttons in the asset-store [menu buttons pack](https://editor.gdevelop.io/?initial-dialog=asset-store&asset-pack=menu-buttons-menu-buttons)." + ], + "origin": { + "identifier": "PanelSpriteButton", + "name": "gdevelop-extension-store" + }, + "tags": [ + "button", + "ui" + ], + "authorIds": [ + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" + ], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "The finite state machine used internally by the button object.", + "fullName": "Button finite state machine", + "name": "ButtonFSM", + "objectType": "", + "private": true, + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Finite state machine", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The \"Validated\" state only last one frame." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Validated\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Check position", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Make sure the cursor position is only checked once per frame." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::SetPropertyMouseIsInside" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::PropertyShouldCheckHovering" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "CollisionPoint" + }, + "parameters": [ + "Object", + "MouseOnlyCursorX(Object.Layer(), 0)", + "MouseOnlyCursorY(Object.Layer(), 0)" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::SetPropertyMouseIsInside" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Touches are always pressed, so ShouldCheckHovering doesn't matter." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::SetPropertyTouchIsInside" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::PropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + }, + { + "type": { + "value": "CollisionPoint" + }, + "parameters": [ + "Object", + "TouchX(Object.Behavior::PropertyTouchId(), Object.Layer(), 0)", + "TouchY(Object.Behavior::PropertyTouchId(), Object.Layer(), 0)" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::SetPropertyTouchIsInside" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Handle touch start", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "HasAnyTouchOrMouseStarted" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::SetPropertyIndex" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Repeat", + "repeatExpression": "StartedTouchOrMouseCount()", + "conditions": [], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionPoint" + }, + "parameters": [ + "Object", + "TouchX(StartedTouchOrMouseId(Object.Behavior::PropertyIndex()), Object.Layer(), 0)", + "TouchY(StartedTouchOrMouseId(Object.Behavior::PropertyIndex()), Object.Layer(), 0)" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::SetPropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "StartedTouchOrMouseId(Object.Behavior::PropertyIndex())" + ] + }, + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::SetPropertyTouchIsInside" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Hovered\"" + ] + }, + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::SetPropertyIndex" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "1" + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Apply position changes", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "PanelSpriteButton::ButtonFSM::PropertyMouseIsInside" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Hovered\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::PropertyMouseIsInside" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Hovered\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "PanelSpriteButton::ButtonFSM::PropertyTouchIsInside" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedOutside\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::PropertyTouchIsInside" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedOutside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Handle touch end", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "HasTouchEnded" + }, + "parameters": [ + "", + "Object.Behavior::PropertyTouchId()" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::SetPropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Validated\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "PanelSpriteButton::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + }, + { + "type": { + "inverted": true, + "value": "PanelSpriteButton::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Validated\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteButton::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onDeActivate", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::ResetState" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteButton::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Reset the state of the button.", + "fullName": "Reset state", + "functionType": "Action", + "name": "ResetState", + "private": true, + "sentence": "Reset the button state of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + }, + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::SetPropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteButton::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button is not used.", + "fullName": "Is idle", + "functionType": "Condition", + "name": "IsIdle", + "sentence": "_PARAM0_ is idle", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteButton::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button was just clicked.", + "fullName": "Is clicked", + "functionType": "Condition", + "name": "IsClicked", + "sentence": "_PARAM0_ is clicked", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Validated\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteButton::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the cursor is hovered over the button.", + "fullName": "Is hovered", + "functionType": "Condition", + "name": "IsHovered", + "sentence": "_PARAM0_ is hovered", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Hovered\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteButton::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button is either hovered or pressed but not hovered.", + "fullName": "Is focused", + "functionType": "Condition", + "name": "IsFocused", + "sentence": "_PARAM0_ is focused", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Hovered\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedOutside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteButton::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button is currently being pressed with mouse or touch.", + "fullName": "Is pressed", + "functionType": "Condition", + "name": "IsPressed", + "sentence": "_PARAM0_ is pressed", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteButton::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button is currently being pressed outside with mouse or touch.", + "fullName": "Is held outside", + "functionType": "Condition", + "name": "IsPressedOutside", + "sentence": "_PARAM0_ is held outside", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedOutside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteButton::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the touch id that is using the button or 0 if none.", + "fullName": "Touch id", + "functionType": "ExpressionAndCondition", + "name": "TouchId", + "sentence": "the touch id", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyTouchId()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteButton::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "true", + "type": "Boolean", + "label": "", + "description": "Should check hovering", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ShouldCheckHovering" + }, + { + "value": "Idle", + "type": "Choice", + "label": "State", + "description": "", + "group": "", + "extraInformation": [ + "Idle", + "Hovered", + "PressedInside", + "PressedOutside", + "Validated" + ], + "hidden": true, + "name": "State" + }, + { + "value": "0", + "type": "Number", + "label": "Touch id", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TouchId" + }, + { + "value": "", + "type": "Boolean", + "label": "Touch is inside", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TouchIsInside" + }, + { + "value": "", + "type": "Boolean", + "label": "Mouse is inside", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "MouseIsInside" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "Index" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [ + { + "defaultName": "Button", + "description": "A button that can be customized.", + "fullName": "Button (panel sprite)", + "name": "PanelSpriteButton", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Create one background instance for of each state.\nOnly the instance for the current state is shown." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Idle", + "0", + "0", + "" + ] + }, + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Hovered", + "0", + "0", + "" + ] + }, + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Pressed", + "0", + "0", + "" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Hovered" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Pressed" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Hovered", + "=", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Place the label over the backgrounds." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Label", + "0", + "0", + "" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Label", + "=", + "2" + ] + }, + { + "type": { + "value": "TextObject::SetWrapping" + }, + "parameters": [ + "Label", + "yes" + ] + }, + { + "type": { + "value": "PanelSpriteButton::PanelSpriteButton::CenterLabel" + }, + "parameters": [ + "Object", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", + "type": "object" + } + ], + "objectGroups": [ + { + "name": "Background", + "objects": [ + { + "name": "Idle" + }, + { + "name": "Hovered" + }, + { + "name": "Pressed" + } + ] + } + ] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onHotReloading", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteButton::PanelSpriteButton::CenterLabel" + }, + "parameters": [ + "Object", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Apply states", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Show the right background accordingly to the new state." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::PanelSpriteButton::IsIdle" + }, + "parameters": [ + "Object", + "ButtonFSM" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "SetCenterY" + }, + "parameters": [ + "Label", + "=", + "Object.CenterWithPaddingY()" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "Idle", + "" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Pressed" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Visible" + }, + "parameters": [ + "Hovered" + ] + }, + { + "type": { + "value": "PanelSpriteButton::PanelSpriteButton::PropertyHoveredFadeOutDuration" + }, + "parameters": [ + "Object", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectOpacityTween" + }, + "parameters": [ + "Hovered", + "Tween", + "\"Fadeout\"", + "0", + "\"linear\"", + "Object.PropertyHoveredFadeOutDuration() * 1000", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::PanelSpriteButton::PropertyHoveredFadeOutDuration" + }, + "parameters": [ + "Object", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Hovered" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteObject::Opacity" + }, + "parameters": [ + "Hovered", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Hovered" + ] + }, + { + "type": { + "value": "PanelSpriteObject::SetOpacity" + }, + "parameters": [ + "Hovered", + "=", + "255" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::PanelSpriteButton::IsHovered" + }, + "parameters": [ + "Object", + "ButtonFSM" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "SetCenterY" + }, + "parameters": [ + "Label", + "=", + "Object.CenterWithPaddingY()" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Idle" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "Hovered", + "" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Pressed" + ] + }, + { + "type": { + "value": "Tween::RemoveTween" + }, + "parameters": [ + "Hovered", + "Tween", + "\"Fadeout\"" + ] + }, + { + "type": { + "value": "PanelSpriteObject::SetOpacity" + }, + "parameters": [ + "Hovered", + "=", + "255" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::PanelSpriteButton::IsPressed" + }, + "parameters": [ + "Object", + "ButtonFSM" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "SetCenterY" + }, + "parameters": [ + "Label", + "=", + "Object.CenterWithPaddingY() + Object.PropertyPressedLabelOffsetY()" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Idle" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Hovered" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "Pressed", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::PanelSpriteButton::IsFocused" + }, + "parameters": [ + "Object", + "ButtonFSM" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "SetCenterY" + }, + "parameters": [ + "Label", + "=", + "Object.CenterWithPaddingY()" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Idle" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "Hovered", + "" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Pressed" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Resize", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Children instances must be resized when the button size change:\n- backgrounds for each state are resized to take the full dimensions of the button\n- the label is put back at the center of the button\n\nThe scale is set back to 1 because it means that the parent instance has the same dimensions as the union of its children instances." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "Object.Width()", + "!=", + "max(Idle.BoundingBoxRight(), Label.BoundingBoxRight()) - min(Idle.BoundingBoxLeft(), Label.BoundingBoxLeft())" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "Object.Height()", + "!=", + "max(Idle.BoundingBoxBottom(), Label.BoundingBoxBottom()) - min(Idle.BoundingBoxTop(), Label.BoundingBoxTop())" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Idle", + "Width", + "=", + "Object.Width()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Idle", + "Height", + "=", + "Object.Height()" + ] + }, + { + "type": { + "value": "PanelSpriteButton::Scale" + }, + "parameters": [ + "Object", + "=", + "1" + ] + }, + { + "type": { + "value": "PanelSpriteObject::Width" + }, + "parameters": [ + "Background", + "=", + "Idle.Variable(Width)" + ] + }, + { + "type": { + "value": "PanelSpriteObject::Height" + }, + "parameters": [ + "Background", + "=", + "Idle.Variable(Height)" + ] + }, + { + "type": { + "value": "PanelSpriteButton::PanelSpriteButton::CenterLabel" + }, + "parameters": [ + "Object", + "" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", + "type": "object" + } + ], + "objectGroups": [ + { + "name": "Background", + "objects": [ + { + "name": "Idle" + }, + { + "name": "Hovered" + }, + { + "name": "Pressed" + } + ] + } + ] + }, + { + "description": "Check if the button is not used.", + "fullName": "Is idle", + "functionType": "Condition", + "name": "IsIdle", + "sentence": "_PARAM0_ is idle", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::IsIdle" + }, + "parameters": [ + "Idle", + "ButtonFSM", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button was just clicked.", + "fullName": "Is clicked", + "functionType": "Condition", + "name": "IsClicked", + "sentence": "_PARAM0_ is clicked", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::IsClicked" + }, + "parameters": [ + "Idle", + "ButtonFSM", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the cursor is hovered over the button.", + "fullName": "Is hovered", + "functionType": "Condition", + "name": "IsHovered", + "sentence": "_PARAM0_ is hovered", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::IsHovered" + }, + "parameters": [ + "Idle", + "ButtonFSM", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button is either hovered or pressed but not hovered.", + "fullName": "Is focused", + "functionType": "Condition", + "name": "IsFocused", + "sentence": "_PARAM0_ is focused", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::IsFocused" + }, + "parameters": [ + "Idle", + "ButtonFSM", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button is currently being pressed with mouse or touch.", + "fullName": "Is pressed", + "functionType": "Condition", + "name": "IsPressed", + "sentence": "_PARAM0_ is pressed", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::ButtonFSM::IsPressed" + }, + "parameters": [ + "Idle", + "ButtonFSM", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Change the text of the button label.", + "fullName": "Label text", + "functionType": "Action", + "name": "SetLabelText", + "sentence": "Change the text of _PARAM0_ to _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "TextObject::String" + }, + "parameters": [ + "Label", + "=", + "GetArgumentAsString(\"LabelText\")" + ] + }, + { + "type": { + "value": "PanelSpriteButton::PanelSpriteButton::CenterLabel" + }, + "parameters": [ + "Object", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", + "type": "object" + }, + { + "description": "Text", + "name": "LabelText", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Return the label text.", + "fullName": "Label text", + "functionType": "StringExpression", + "name": "LabelText", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Label.String()" + ] + } + ] + } + ], + "expressionType": { + "type": "string" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Return the label center Y according to the button configuration. This expression is used in doStepPostEvents when the button is pressed or released.", + "fullName": "", + "functionType": "Expression", + "name": "CenterWithPaddingY", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Idle.CenterY() + (Object.PropertyTopPadding() - Object.PropertyBottomPadding()) / 2" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Center the label according to the button configuration. This is used in doStepPostEvents when the button is resized.", + "fullName": "", + "functionType": "Action", + "name": "CenterLabel", + "private": true, + "sentence": "Center the label of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "MettreXY" + }, + "parameters": [ + "Label", + "=", + "Object.PropertyLeftPadding()", + "=", + "Object.PropertyTopPadding()" + ] + }, + { + "type": { + "value": "TextObject::WrappingWidth" + }, + "parameters": [ + "Label", + "=", + "Idle.Width() - Object.PropertyLeftPadding() - Object.PropertyRightPadding()" + ] + }, + { + "type": { + "value": "SetCenterY" + }, + "parameters": [ + "Label", + "=", + "Object.CenterWithPaddingY()" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetCenterX" + }, + "parameters": [ + "Label", + "=", + "Background.CenterX() + (Object.PropertyLeftPadding() - Object.PropertyRightPadding()) / 2" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteButton::PanelSpriteButton::IsPressed" + }, + "parameters": [ + "Object", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreY" + }, + "parameters": [ + "Label", + "+", + "Object.PropertyPressedLabelOffsetY()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", + "type": "object" + } + ], + "objectGroups": [ + { + "name": "Background", + "objects": [ + { + "name": "Idle" + }, + { + "name": "Hovered" + }, + { + "name": "Pressed" + } + ] + } + ] + }, + { + "description": "De/activate interactions with the button.", + "fullName": "De/activate interactions", + "functionType": "Action", + "name": "Activate", + "sentence": "Activate interactions with _PARAM0_: _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"ShouldActivate\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Idle", + "ButtonFSM", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"ShouldActivate\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Idle", + "ButtonFSM", + "no" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", + "type": "object" + }, + { + "description": "Activate", + "name": "ShouldActivate", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Check if interactions are activated on the button.", + "fullName": "Interactions activated", + "functionType": "Condition", + "name": "IsActivated", + "sentence": "Interactions on _PARAM0_ are activated", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BehaviorActivated" + }, + "parameters": [ + "Idle", + "ButtonFSM" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteButton::PanelSpriteButton", + "type": "object" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "0", + "type": "Number", + "label": "Label offset on Y axis when pressed", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "PressedLabelOffsetY" + }, + { + "value": "0", + "type": "Number", + "label": "Left padding", + "description": "", + "group": "Padding", + "extraInformation": [ + "Label" + ], + "hidden": false, + "name": "LeftPadding" + }, + { + "value": "0", + "type": "Number", + "label": "Right padding", + "description": "", + "group": "Padding", + "extraInformation": [ + "Label" + ], + "hidden": false, + "name": "RightPadding" + }, + { + "value": "0", + "type": "Number", + "label": "Top padding", + "description": "", + "group": "Padding", + "extraInformation": [ + "Label" + ], + "hidden": false, + "name": "TopPadding" + }, + { + "value": "0", + "type": "Number", + "label": "Bottom padding", + "description": "", + "group": "Padding", + "extraInformation": [ + "Label" + ], + "hidden": false, + "name": "BottomPadding" + }, + { + "value": "0.25", + "type": "Number", + "label": "Hovered fade out duration (in seconds)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "HoveredFadeOutDuration" + } + ], + "objects": [ + { + "assetStoreId": "", + "bold": false, + "italic": false, + "name": "Label", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "effects": [], + "behaviors": [], + "string": "Text", + "font": "", + "textAlignment": "", + "characterSize": 20, + "color": { + "b": 0, + "g": 0, + "r": 0 + } + }, + { + "assetStoreId": "", + "bottomMargin": 0, + "height": 32, + "leftMargin": 0, + "name": "Idle", + "rightMargin": 0, + "tags": "", + "texture": "", + "tiled": false, + "topMargin": 0, + "type": "PanelSpriteObject::PanelSprite", + "width": 32, + "variables": [ + { + "folded": true, + "name": "State", + "type": "string", + "value": "Idle" + } + ], + "effects": [], + "behaviors": [ + { + "name": "ButtonFSM", + "type": "PanelSpriteButton::ButtonFSM", + "ShouldCheckHovering": true + } + ] + }, + { + "assetStoreId": "", + "bottomMargin": 0, + "height": 32, + "leftMargin": 0, + "name": "Hovered", + "rightMargin": 0, + "tags": "", + "texture": "", + "tiled": false, + "topMargin": 0, + "type": "PanelSpriteObject::PanelSprite", + "width": 32, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "Tween", + "type": "Tween::TweenBehavior" + } + ] + }, + { + "assetStoreId": "", + "bottomMargin": 0, + "height": 32, + "leftMargin": 0, + "name": "Pressed", + "rightMargin": 0, + "tags": "", + "texture": "", + "tiled": false, + "topMargin": 0, + "type": "PanelSpriteObject::PanelSprite", + "width": 32, + "variables": [], + "effects": [], + "behaviors": [] + } + ] + } + ] + }, + { + "author": "", + "category": "User interface", + "extensionNamespace": "", + "fullName": "Resource bar (continuous)", + "helpPath": "/objects/resource-bar", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8cGF0aCBkPSJNMjgsMTJIMTRINGMtMi4yLDAtNCwxLjgtNCw0czEuOCw0LDQsNGgxMGgxNGMyLjIsMCw0LTEuOCw0LTRTMzAuMiwxMiwyOCwxMnogTTQsMThjLTEuMSwwLTItMC45LTItMnMwLjktMiwyLTJoMTANCgljMS4xLDAsMiwwLjksMiwycy0wLjksMi0yLDJINHoiLz4NCjwvc3ZnPg0K", + "name": "PanelSpriteContinuousBar", + "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/Glyphster Pack/Master/SVG/Interface Elements/ea06363a57846caab544f536b78a952234b68d4941d41c1577852a1d61aefec3_Interface Elements_interface_ui_loading_progress_bar.svg", + "shortDescription": "A bar that represents a resource in the game (health, mana, ammo, etc).", + "version": "1.1.1", + "description": [ + "A bar that represents a resource in the game (health, mana, ammo, etc).", + "", + "There are ready-to-use resource bars in the asset-store [resource bars pack](https://editor.gdevelop.io/?initial-dialog=asset-store&asset-pack=resource-bars-resource-bars)." + ], + "origin": { + "identifier": "PanelSpriteContinuousBar", + "name": "gdevelop-extension-store" + }, + "tags": [ + "resource", + "bar", + "health", + "mana", + "shield", + "hearts", + "lives", + "ammo" + ], + "authorIds": [ + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2", + "gqDaZjCfevOOxBYkK6zlhtZnXCg1", + "q8ubdigLvIRXLxsJDDTaokO41mc2" + ], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "A bar that represents a resource in the game (health, mana, ammo, etc).", + "fullName": "Resource bar", + "name": "ResourceBar", + "objectType": "", + "private": true, + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "This is done after the events to allow users to read the previous value at the end of the change." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"__ResourceBar.LastValueChange\"", + "<=", + "Object.Behavior::PropertyPreviousHighValueDuration()" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::ResourceBar::UpdatePreviousHighValue" + }, + "parameters": [ + "Object", + "Behavior", + "=" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the value of the object.", + "fullName": "Value", + "functionType": "ExpressionAndCondition", + "name": "Value", + "sentence": "the value", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyValue()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Value", + "name": "SetValue", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::ResourceBar::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "clamp(GetArgumentAsNumber(\"Value\"), 0, Object.Behavior::MaxValue())" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::ResourceBar::PropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::PreviousHighValue()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__ResourceBar.LastValueChange\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::ResourceBar::PropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + ">=", + "Object.Behavior::PropertyPreviousHighValue()" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::ResourceBar::UpdatePreviousHighValue" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the maximum value of the object.", + "fullName": "Maximum value", + "functionType": "ExpressionAndCondition", + "group": "Resource bar configuration", + "name": "MaxValue", + "sentence": "the maximum value", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyMaxValue()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "MaxValue", + "name": "SetMaxValue", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::ResourceBar::SetPropertyMaxValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the bar is empty.", + "fullName": "Empty", + "functionType": "Condition", + "name": "IsEmpty", + "sentence": "_PARAM0_ bar is empty", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::ResourceBar::PropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the bar is full.", + "fullName": "Full", + "functionType": "Condition", + "name": "IsFull", + "sentence": "_PARAM0_ bar is full", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::ResourceBar::PropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyMaxValue()" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the previous high value of the resource bar before the current change.", + "fullName": "Previous high value", + "functionType": "ExpressionAndCondition", + "name": "PreviousHighValue", + "sentence": "the previous high value", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyPreviousHighValue()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Force the previous resource value to update to the current one.", + "fullName": "Update previous value", + "functionType": "Action", + "name": "UpdatePreviousHighValue", + "sentence": "Update the previous resource value of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::ResourceBar::SetPropertyPreviousHighValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyValue()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the previous high value conservation duration (in seconds) of the object.", + "fullName": "Previous high value conservation duration", + "functionType": "ExpressionAndCondition", + "group": "FillBar bar configuration", + "name": "PreviousHighValueDuration", + "sentence": "the previous high value conservation duration", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyPreviousHighValueDuration()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "PreviousHighValueDuration", + "name": "SetPreviousHighValueDuration", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::ResourceBar::SetPropertyPreviousHighValueDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the resource value is changing.", + "fullName": "Value is changing", + "functionType": "Condition", + "name": "IsChanging", + "sentence": "_PARAM0_ value is changing", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::ResourceBar::PreviousHighValue" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "Object.Behavior::PropertyValue()", + "" + ] + }, + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"__ResourceBar.LastValueChange\"", + "<=", + "Object.Behavior::PropertyPreviousHighValueDuration()" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "1", + "type": "Number", + "label": "Value", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Value" + }, + { + "value": "3", + "type": "Number", + "label": "Maximum value", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "MaxValue" + }, + { + "value": "", + "type": "Number", + "label": "Previous high value", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "PreviousHighValue" + }, + { + "value": "1", + "type": "Number", + "label": "Previous high value conservation duration (in seconds)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "PreviousHighValueDuration" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [ + { + "defaultName": "ResourceBar", + "description": "A bar that represents a resource in the game (health, mana, ammo, etc).", + "fullName": "Resource bar (continuous)", + "name": "PanelSpriteContinuousBar", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "This allows to detect a change of \"intial value\" on hot reload." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetPropertyPreviousInitialValue" + }, + "parameters": [ + "Object", + "=", + "Object.PropertyInitialValue()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Create the child-object instances." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Background", + "0", + "0", + "" + ] + }, + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "FillBar", + "0", + "0", + "" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Background", + "=", + "1" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "FillBar", + "=", + "3" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::PropertyPreviousHighValueDuration" + }, + "parameters": [ + "Object", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Buffer", + "0", + "0", + "" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Buffer", + "=", + "2" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Create the label over the bar." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Label", + "0", + "0", + "" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Label", + "=", + "4" + ] + }, + { + "type": { + "value": "TextObject::SetTextAlignment" + }, + "parameters": [ + "Label", + "\"center\"" + ] + }, + { + "type": { + "value": "TextObject::SetWrapping" + }, + "parameters": [ + "Label", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::PropertyShowLabel" + }, + "parameters": [ + "Object" + ] + } + ], + "actions": [ + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Label" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Pass the configuration to the behavior." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetMaxValue" + }, + "parameters": [ + "Object", + "=", + "Object.PropertyMaxValue()", + "Object.PropertyMaxValue()" + ] + }, + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetValue" + }, + "parameters": [ + "Object", + "=", + "Object.PropertyInitialValue()", + "Object.PropertyInitialValue()" + ] + }, + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetPreviousValueDuration" + }, + "parameters": [ + "Object", + "=", + "Object.PropertyPreviousHighValueDuration()", + "" + ] + }, + { + "type": { + "value": "Tween::RemoveTween" + }, + "parameters": [ + "FillBar", + "Tween", + "\"ChangeValue\"" + ] + }, + { + "type": { + "value": "PanelSpriteObject::Width" + }, + "parameters": [ + "FillBar", + "=", + "Object.WidthForValue()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onHotReloading", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::UpdateLayout" + }, + "parameters": [ + "Object", + "" + ] + }, + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetMaxValue" + }, + "parameters": [ + "Object", + "=", + "Object.PropertyMaxValue()", + "Object.PropertyMaxValue()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::PropertyInitialValue" + }, + "parameters": [ + "Object", + "!=", + "Object.PropertyPreviousInitialValue()" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetPropertyPreviousInitialValue" + }, + "parameters": [ + "Object", + "=", + "Object.PropertyInitialValue()" + ] + }, + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetValue" + }, + "parameters": [ + "Object", + "=", + "Object.PropertyInitialValue()", + "Object.PropertyInitialValue()" + ] + }, + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetPreviousValueDuration" + }, + "parameters": [ + "Object", + "=", + "Object.PropertyPreviousHighValueDuration()", + "" + ] + }, + { + "type": { + "value": "Tween::RemoveTween" + }, + "parameters": [ + "FillBar", + "Tween", + "\"ChangeValue\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteObject::Width" + }, + "parameters": [ + "FillBar", + "=", + "Object.WidthForValue()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Resize", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Children instances must be resized when the parent size change:\n- background is resized to take the full dimensions of the parent\n- the bar size is refreshed according to the value\n- the label is put back at the center of the bar\n\nThe scale is set back to 1 because it means that the parent instance has the same dimensions as the union of its children instances." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "Object.Width()", + "!=", + "max(Background.BoundingBoxRight(), Label.BoundingBoxRight()) - min(Background.BoundingBoxLeft(), Label.BoundingBoxLeft())" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "Object.Height()", + "!=", + "max(Background.BoundingBoxBottom(), Label.BoundingBoxBottom()) - min(Background.BoundingBoxTop(), Label.BoundingBoxTop())" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Background", + "Width", + "=", + "Object.Width()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Background", + "Height", + "=", + "Object.Height()" + ] + }, + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::Scale" + }, + "parameters": [ + "Object", + "=", + "1" + ] + }, + { + "type": { + "value": "PanelSpriteObject::Width" + }, + "parameters": [ + "Background", + "=", + "Background.Variable(Width)" + ] + }, + { + "type": { + "value": "PanelSpriteObject::Height" + }, + "parameters": [ + "Background", + "=", + "Background.Variable(Height)" + ] + }, + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::UpdateLayout" + }, + "parameters": [ + "Object", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::IsChanging" + }, + "parameters": [ + "Object", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectWidthTween" + }, + "parameters": [ + "Buffer", + "Tween", + "\"ChangeValue\"", + "Object.WidthForValue()", + "\"linear\"", + "Object.PropertyEasingDuration() * 1000", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteObject::Width" + }, + "parameters": [ + "FillBar", + "<", + "Buffer.Width()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Montre" + }, + "parameters": [ + "Buffer", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteObject::Width" + }, + "parameters": [ + "FillBar", + ">=", + "Buffer.Width()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Buffer" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Center the bar according to the button configuration. This is used in doStepPostEvents when the button is resized.", + "fullName": "Update layout", + "functionType": "Action", + "name": "UpdateLayout", + "private": true, + "sentence": "Update layout of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "MettreXY" + }, + "parameters": [ + "FillBar", + "=", + "Object.PropertyBarLeftPadding()", + "=", + "Object.PropertyBarTopPadding()" + ] + }, + { + "type": { + "value": "PanelSpriteObject::Width" + }, + "parameters": [ + "FillBar", + "=", + "Object.WidthForValue()" + ] + }, + { + "type": { + "value": "PanelSpriteObject::Height" + }, + "parameters": [ + "FillBar", + "=", + "round(Background.Height() - Object.PropertyBarTopPadding() - Object.PropertyBarBottomPadding())" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "MettreXY" + }, + "parameters": [ + "Buffer", + "=", + "FillBar.X()", + "=", + "FillBar.Y()" + ] + }, + { + "type": { + "value": "PanelSpriteObject::Width" + }, + "parameters": [ + "Buffer", + "=", + "FillBar.Width()" + ] + }, + { + "type": { + "value": "PanelSpriteObject::Height" + }, + "parameters": [ + "Buffer", + "=", + "FillBar.Height()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "MettreXY" + }, + "parameters": [ + "Label", + "=", + "Object.PropertyBarLeftPadding()", + "=", + "Object.PropertyBarTopPadding()" + ] + }, + { + "type": { + "value": "TextObject::WrappingWidth" + }, + "parameters": [ + "Label", + "=", + "Object.FullBarWidth()" + ] + }, + { + "type": { + "value": "SetCenterY" + }, + "parameters": [ + "Label", + "=", + "FillBar.CenterY()" + ] + }, + { + "type": { + "value": "SetCenterX" + }, + "parameters": [ + "Label", + "=", + "Background.CenterX() + (Object.PropertyBarLeftPadding() - Object.PropertyBarRightPadding()) / 2" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the value of the object.", + "fullName": "Value", + "functionType": "ExpressionAndCondition", + "group": "Resource bar", + "name": "Value", + "sentence": "the value", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "FillBar.ResourceBar::Value()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Value", + "name": "SetValue", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::ResourceBar::SetValue" + }, + "parameters": [ + "FillBar", + "ResourceBar", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::PropertyEasingDuration" + }, + "parameters": [ + "Object", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween::AddObjectWidthTween" + }, + "parameters": [ + "FillBar", + "Tween", + "\"ChangeValue\"", + "Object.WidthForValue()", + "\"linear\"", + "Object.PropertyEasingDuration() * 1000", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::PropertyEasingDuration" + }, + "parameters": [ + "Object", + "<=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteObject::Width" + }, + "parameters": [ + "FillBar", + "=", + "Object.WidthForValue()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::UpdateLabel" + }, + "parameters": [ + "Object", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::ResourceBar::IsChanging" + }, + "parameters": [ + "FillBar", + "ResourceBar", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteObject::Width" + }, + "parameters": [ + "Buffer", + "=", + "round(Object.FullBarWidth() * FillBar.ResourceBar::PreviousHighValue() / FillBar.ResourceBar::MaxValue())" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the maximum value of the object.", + "fullName": "Maximum value", + "functionType": "ExpressionAndCondition", + "group": "Resource bar configuration", + "name": "MaxValue", + "sentence": "the maximum value", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "FillBar.ResourceBar::PropertyMaxValue()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "MaxValue", + "name": "SetMaxValue", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::ResourceBar::SetMaxValue" + }, + "parameters": [ + "FillBar", + "ResourceBar", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + }, + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::UpdateLabel" + }, + "parameters": [ + "Object", + "" + ] + }, + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::UpdateLayout" + }, + "parameters": [ + "Object", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the bar is empty.", + "fullName": "Empty", + "functionType": "Condition", + "group": "Resource bar", + "name": "IsEmpty", + "sentence": "_PARAM0_ is empty", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::ResourceBar::IsEmpty" + }, + "parameters": [ + "FillBar", + "ResourceBar", + "=" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the bar is full.", + "fullName": "Full", + "functionType": "Condition", + "group": "Resource bar", + "name": "IsFull", + "sentence": "_PARAM0_ is full", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::ResourceBar::IsFull" + }, + "parameters": [ + "FillBar", + "ResourceBar", + "=" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the previous value conservation duration (in seconds) of the object.", + "fullName": "Previous value conservation duration", + "functionType": "ExpressionAndCondition", + "group": "Resource bar configuration", + "name": "PreviousValueDuration", + "sentence": "the previous value conservation duration", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "FillBar.ResourceBar::PropertyPreviousHighValueDuration()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "PreviousValueDuration", + "name": "SetPreviousValueDuration", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::ResourceBar::SetPreviousHighValueDuration" + }, + "parameters": [ + "FillBar", + "ResourceBar", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsNumber" + }, + "parameters": [ + "\"Value\"", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Montre" + }, + "parameters": [ + "Buffer", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareArgumentAsNumber" + }, + "parameters": [ + "\"Value\"", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Buffer" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteContinuousBar::ResourceBar", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the resource value is changing.", + "fullName": "Value is changing", + "functionType": "Condition", + "group": "Resource bar", + "name": "IsChanging", + "private": true, + "sentence": "_PARAM0_ value is changing", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::ResourceBar::IsChanging" + }, + "parameters": [ + "FillBar", + "ResourceBar", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "Value width", + "functionType": "Expression", + "name": "WidthForValue", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "round(Object.FullBarWidth() * FillBar.ResourceBar::Value() / FillBar.ResourceBar::MaxValue())" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Expression", + "name": "FullBarWidth", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Background.Width() - Object.PropertyBarLeftPadding() - Object.PropertyBarRightPadding()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the label is shown.", + "fullName": "Label is shown", + "functionType": "Condition", + "group": "Resource bar configuration", + "name": "IsLabelShown", + "sentence": "_PARAM0_ label is shown", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::PropertyShowLabel" + }, + "parameters": [ + "Object" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Show (or hide) the label on the bar.", + "fullName": "Show label", + "functionType": "Action", + "group": "Resource bar configuration", + "name": "SetLabelShown", + "sentence": "Show the label of _PARAM0_: _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetPropertyShowLabel" + }, + "parameters": [ + "Object", + "no" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Label" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteContinuousBar::PanelSpriteContinuousBar::SetPropertyShowLabel" + }, + "parameters": [ + "Object", + "yes" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "Label", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", + "type": "object" + }, + { + "description": "Show the label", + "name": "Value", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Update the text that display the current value and maximum value.", + "fullName": "Update label", + "functionType": "Action", + "name": "UpdateLabel", + "private": true, + "sentence": "Update label of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "TextObject::String" + }, + "parameters": [ + "Label", + "=", + "ToString(round(Object.Value())) + \" / \" + ToString(Object.MaxValue())" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteContinuousBar::PanelSpriteContinuousBar", + "type": "object" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "Bar", + "extraInformation": [ + "Label", + "FillBar", + "Buffer" + ], + "hidden": false, + "name": "BarLeftPadding" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "Bar", + "extraInformation": [ + "Label", + "FillBar", + "Buffer" + ], + "hidden": false, + "name": "BarTopPadding" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "Bar", + "extraInformation": [ + "Label", + "FillBar", + "Buffer" + ], + "hidden": false, + "name": "BarRightPadding" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "Bar", + "extraInformation": [ + "Label", + "FillBar", + "Buffer" + ], + "hidden": false, + "name": "BarBottomPadding" + }, + { + "value": "3", + "type": "Number", + "label": "Maximum value", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "MaxValue" + }, + { + "value": "3", + "type": "Number", + "label": "Initial value", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "InitialValue" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "It's used to detect a change at hot reload.", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "PreviousInitialValue" + }, + { + "value": "1", + "type": "Number", + "label": "Previous high value conservation duration (in seconds)", + "description": "", + "group": "Animation", + "extraInformation": [], + "hidden": false, + "name": "PreviousHighValueDuration" + }, + { + "value": "0.25", + "type": "Number", + "label": "Easing duration", + "description": "", + "group": "Animation", + "extraInformation": [], + "hidden": false, + "name": "EasingDuration" + }, + { + "value": "true", + "type": "Boolean", + "label": "Show the label", + "description": "", + "group": "", + "extraInformation": [ + "Label" + ], + "hidden": false, + "name": "ShowLabel" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "Only used by the scene editor.", + "group": "", + "extraInformation": [ + "Buffer" + ], + "hidden": true, + "name": "ShowBuffer" + }, + { + "value": "Center", + "type": "String", + "label": "", + "description": "Only used by the scene editor.", + "group": "", + "extraInformation": [ + "Label" + ], + "hidden": true, + "name": "LabelVerticalAnchorOrigin" + }, + { + "value": "Center", + "type": "String", + "label": "", + "description": "Only used by the scene editor.", + "group": "", + "extraInformation": [ + "FillBar" + ], + "hidden": true, + "name": "LabelVerticalAnchorTarget" + } + ], + "objects": [ + { + "assetStoreId": "", + "bold": false, + "italic": false, + "name": "Label", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "effects": [], + "behaviors": [], + "string": "2 / 3", + "font": "", + "textAlignment": "center", + "characterSize": 20, + "color": { + "b": 0, + "g": 0, + "r": 0 + } + }, + { + "assetStoreId": "", + "bottomMargin": 0, + "height": 32, + "leftMargin": 0, + "name": "FillBar", + "rightMargin": 0, + "tags": "", + "texture": "", + "tiled": true, + "topMargin": 0, + "type": "PanelSpriteObject::PanelSprite", + "width": 32, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ResourceBar", + "type": "PanelSpriteContinuousBar::ResourceBar", + "Value": 1, + "MaxValue": 3, + "PreviousValue": 0 + }, + { + "name": "Tween", + "type": "Tween::TweenBehavior" + } + ] + }, + { + "assetStoreId": "", + "bottomMargin": 0, + "height": 32, + "leftMargin": 0, + "name": "Buffer", + "rightMargin": 0, + "tags": "", + "texture": "", + "tiled": true, + "topMargin": 0, + "type": "PanelSpriteObject::PanelSprite", + "width": 32, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "Tween", + "type": "Tween::TweenBehavior" + } + ] + }, + { + "assetStoreId": "", + "bottomMargin": 0, + "height": 32, + "leftMargin": 0, + "name": "Background", + "rightMargin": 0, + "tags": "", + "texture": "", + "tiled": true, + "topMargin": 0, + "type": "PanelSpriteObject::PanelSprite", + "width": 32, + "variables": [], + "effects": [], + "behaviors": [] + } + ] + } + ] + }, + { + "author": "Westboy31", + "category": "Visual effect", + "extensionNamespace": "", + "fullName": "Flash and transition painter", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLW1vdmllLWZpbHRlciIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xOCA0TDIwIDdIMTdMMTUgNEgxM0wxNSA3SDEyTDEwIDRIOEwxMCA3SDdMNSA0SDRDMi45IDQgMiA0LjkgMiA2TDIgMThDMiAxOS4xIDIuOSAyMCA0IDIwSDIwQzIxLjEgMjAgMjIgMTkuMSAyMiAxOFY0SDE4TTExLjI1IDE1LjI1TDEwIDE4TDguNzUgMTUuMjVMNiAxNEw4Ljc1IDEyLjc1TDEwIDEwTDExLjI1IDEyLjc1TDE0IDE0TDExLjI1IDE1LjI1TTE2Ljk0IDExLjk0TDE2IDE0TDE1LjA2IDExLjk0TDEzIDExTDE1LjA2IDEwLjA2TDE2IDhMMTYuOTQgMTAuMDZMMTkgMTFMMTYuOTQgMTEuOTRaIiAvPjwvc3ZnPg==", + "name": "FlashTransitionPainter", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/movie-filter.svg", + "shortDescription": "Behavior for shape painter allows you to paint a color all over the screen for period of time with an effect (useful for simulate flash and transition effect).", + "version": "0.1.0", + "description": [ + "* __Paint effect:__Action to paint a color all over the screen for a period of time with specific effect.", + "effect type:", + " * __Flash:__ is a monochrome color appear with fade then disappear with fade out.", + " * __Vertical:__ is a monochrome color comes from right side then comes back.", + " * __Horizontal:__ is a monochrome color come from top side then comes back.", + " * __Circular:__ is a circle which increases from the center and narrows.", + "* __Paint effect ended:__ event when the paint effect ends." + ], + "origin": { + "identifier": "FlashTransitionPainter", + "name": "gdevelop-extension-store" + }, + "tags": [ + "shape painter", + "flash", + "transition", + "effect" + ], + "authorIds": [], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "Paint all over the screen a color for a period of time.", + "fullName": "Flash and transition painter", + "name": "FlashTransitionPainter", + "objectType": "PrimitiveDrawing::Drawer", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Disable effect when the game starts." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "PauseObjectTimer" + }, + "parameters": [ + "Object", + "\"__FlashTransitionPainter_timerEffect\"" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FlashTransitionPainter::FlashTransitionPainter", + "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": "Avoid default parameter of painter that could make the extension doesn't work." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "PrimitiveDrawing::ClearBetweenFrames" + }, + "parameters": [ + "Object", + "yes" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::OutlineSize" + }, + "parameters": [ + "Object", + "=", + "0" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__FlashTransitionPainter_timerEffect\"" + ] + }, + { + "type": { + "value": "UnPauseObjectTimer" + }, + "parameters": [ + "Object", + "\"__FlashTransitionPainter_timerEffect\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Initialise position of painter. \nIncrement or decrement \"_TimeProgressionEffect\" depending on direction." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "MettreXY" + }, + "parameters": [ + "Object", + "=", + "CameraX(Object.Layer(),0) - SceneWindowWidth()/2", + "=", + "CameraY(Object.Layer(),0) - SceneWindowHeight()/2" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::FillColor" + }, + "parameters": [ + "Object", + "Object.Behavior::PropertyColor()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_TimeProgressionEffect", + "+", + "(TimeDelta() / Object.Behavior::PropertyTimer())*Object.Variable(__FlashTransitionPainter_ReverseDirection)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Here this the paints functions of different effect depending on the type chosen by the user.\nDetect the direction of the animation and its end." + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Type 1 : flash effect. " + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::PropertyType" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"\"" + ] + }, + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::PropertyType" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Flash\"" + ] + } + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_OpacityFlash", + ">=", + "Object.Behavior::PropertyMaxOpacity()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_ReverseDirection", + "=", + "-1" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::PropertyDirection" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Forward\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_OpacityFlash", + "<", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_OpacityFlash", + "=", + "lerp(0, Object.Behavior::PropertyMaxOpacity(), Object.Variable(__FlashTransitionPainter_TimeProgressionEffect))" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::FillOpacity" + }, + "parameters": [ + "Object", + "=", + "Object.Variable(__FlashTransitionPainter_OpacityFlash)" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::Rectangle" + }, + "parameters": [ + "Object", + "CameraX(Object.Layer(),0) - SceneWindowWidth()/2", + "CameraY(Object.Layer(),0) - SceneWindowHeight()/2", + "SceneWindowWidth()", + "SceneWindowHeight()" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Type 2 : screen come from top then return." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::PropertyType" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Horizontal\"" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_ProgressiveWidth", + ">=", + "SceneWindowWidth()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_ReverseDirection", + "=", + "-1" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::PropertyDirection" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Forward\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_ProgressiveWidth", + "<", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_SmoothEdge", + "=", + "10" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_SmoothEdgeOpacity", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_ProgressiveWidth", + "=", + "lerp(0,SceneWindowWidth(),Object.Variable(__FlashTransitionPainter_TimeProgressionEffect))" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Repeat", + "repeatExpression": "5", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_SmoothEdge", + "-", + "2" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_SmoothEdgeOpacity", + "+", + "51" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::FillOpacity" + }, + "parameters": [ + "Object", + "=", + "Object.Variable(__FlashTransitionPainter_SmoothEdgeOpacity)" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::Rectangle" + }, + "parameters": [ + "Object", + "0", + "0", + "Object.Variable(__FlashTransitionPainter_ProgressiveWidth) + Object.Variable(__FlashTransitionPainter_SmoothEdge)", + "SceneWindowHeight()" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Type 3 : screen come from left then return." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::PropertyType" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Vertical\"" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_ProgressiveHeight", + ">=", + "SceneWindowHeight()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_ReverseDirection", + "=", + "-1" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::PropertyDirection" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Forward\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_ProgressiveHeight", + "<", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_SmoothEdge", + "=", + "10" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_SmoothEdgeOpacity", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_ProgressiveHeight", + "=", + "lerp(0,SceneWindowHeight(),Object.Variable(__FlashTransitionPainter_TimeProgressionEffect))" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Repeat", + "repeatExpression": "5", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_SmoothEdge", + "-", + "2" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_SmoothEdgeOpacity", + "+", + "51" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::FillOpacity" + }, + "parameters": [ + "Object", + "=", + "Object.Variable(__FlashTransitionPainter_SmoothEdgeOpacity)" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::Rectangle" + }, + "parameters": [ + "Object", + "0", + "0", + "SceneWindowWidth()", + "Object.Variable(__FlashTransitionPainter_ProgressiveHeight) + Object.Variable(__FlashTransitionPainter_SmoothEdge)" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Type 4 : a circle scale up from the middle then scale down." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::PropertyType" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Circular\"" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_ProgressiveWidth", + ">=", + "(sqrt (pow(SceneWindowHeight(),2) + pow(SceneWindowWidth(),2) )) /2 " + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_ReverseDirection", + "=", + "-1" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::PropertyDirection" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Forward\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_ProgressiveWidth", + "<", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_SmoothEdge", + "=", + "1" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_SmoothEdgeOpacity", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_ProgressiveWidth", + "=", + "lerp(0,(sqrt (pow(SceneWindowHeight(),2) + pow(SceneWindowWidth(),2) ))/2 ,Object.Variable(__FlashTransitionPainter_TimeProgressionEffect))" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Repeat", + "repeatExpression": "5", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_SmoothEdge", + "-", + "0.2" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_SmoothEdgeOpacity", + "+", + "51" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::FillOpacity" + }, + "parameters": [ + "Object", + "=", + "Object.Variable(__FlashTransitionPainter_SmoothEdgeOpacity)" + ] + }, + { + "type": { + "value": "PrimitiveDrawing::Circle" + }, + "parameters": [ + "Object", + "SceneWindowWidth()/2", + "SceneWindowHeight()/2", + "Object.Variable(__FlashTransitionPainter_ProgressiveWidth) + Object.Variable(__FlashTransitionPainter_SmoothEdge)" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The repeat 5 times is used to have clean and smooth edges , especially for circle.\n" + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FlashTransitionPainter::FlashTransitionPainter", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onDeActivate", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Reset variables." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_OpacityFlash", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_ReverseDirection", + "=", + "1" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_TimeProgressionEffect", + "=", + "0" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FlashTransitionPainter::FlashTransitionPainter", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Paint Effect.", + "fullName": "Paint Effect", + "functionType": "Action", + "name": "PaintEffect", + "sentence": "Paint effect type _PARAM4_ of _PARAM0_ with direction _PARAM5_ and color _PARAM2_ for _PARAM3_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Initialise all variables and then activate the behavior.\nIf user doesn't assign value to color and type , we take the last value registred.\nIf user doesn't assign value to timer we take a default value (0.2)." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + }, + { + "type": { + "inverted": true, + "value": "BehaviorActivated" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::SetPropertyTimer" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Timer\") + (3*TimeDelta())" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__FlashTransitionPainter_timerEffect\"" + ] + }, + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::SetPropertyDirection" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Direction\")" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StrEqual" + }, + "parameters": [ + "GetArgumentAsString(\"Type\")", + "!=", + "\"\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::SetPropertyType" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Type\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StrEqual" + }, + "parameters": [ + "GetArgumentAsString(\"Color\")", + "!=", + "\"\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::SetPropertyColor" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Color\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::PropertyTimer" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::SetPropertyTimer" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0.2" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::PropertyDirection" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Both\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::SetPropertyTimer" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Timer\")/2 + (3*TimeDelta())" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StrEqual" + }, + "parameters": [ + "GetArgumentAsString(\"Direction\")", + "=", + "\"Backward\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_ReverseDirection", + "=", + "-1" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FlashTransitionPainter_TimeProgressionEffect", + "=", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "GetArgumentAsNumber(\"MaxOpacity\")", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::SetPropertyMaxOpacity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"MaxOpacity\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FlashTransitionPainter::FlashTransitionPainter", + "type": "behavior" + }, + { + "description": "Color", + "name": "Color", + "type": "color" + }, + { + "description": "Duration", + "name": "Timer", + "type": "expression" + }, + { + "description": "Type of effect ", + "name": "Type", + "supplementaryInformation": "[\"Flash\",\"Horizontal\",\"Vertical\",\"Circular\"]", + "type": "stringWithSelector" + }, + { + "description": "Direction transition", + "name": "Direction", + "supplementaryInformation": "[\"Both\",\"Forward\",\"Backward\"]", + "type": "stringWithSelector" + }, + { + "description": "End opacity (only for flash)", + "name": "MaxOpacity", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Paint effect ended.", + "fullName": "Paint effect ended ", + "functionType": "Condition", + "name": "PaintEffectIsEnd", + "sentence": "When paint effect of _PARAM0_ ends", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Detect when the animation ends with a timer which is initialised in PaintEffect function." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::PropertyDirection" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Backward\"" + ] + }, + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::PropertyDirection" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Forward\"" + ] + } + ] + }, + { + "type": { + "value": "ObjectTimer" + }, + "parameters": [ + "Object", + "\"__FlashTransitionPainter_timerEffect\"", + "Object.Behavior::PropertyTimer() - (3*TimeDelta())" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FlashTransitionPainter::FlashTransitionPainter::PropertyDirection" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Both\"" + ] + }, + { + "type": { + "value": "ObjectTimer" + }, + "parameters": [ + "Object", + "\"__FlashTransitionPainter_timerEffect\"", + "Object.Behavior::PropertyTimer()*2 - (3*TimeDelta())" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PrimitiveDrawing::Drawer", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FlashTransitionPainter::FlashTransitionPainter", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "1", + "type": "Number", + "label": "Timer", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "Timer" + }, + { + "value": "255;255;255", + "type": "String", + "label": "Color", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "Color" + }, + { + "value": "", + "type": "String", + "label": "Type of effect ", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "Type" + }, + { + "value": "", + "type": "String", + "label": "Direction of transition", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "Direction" + }, + { + "value": "255", + "type": "Number", + "label": "The maximum of the opacity only for flash", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "MaxOpacity" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "", + "category": "User interface", + "extensionNamespace": "", + "fullName": "Slider", + "helpPath": "/objects/slider", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPGNpcmNsZSBjbGFzcz0ic3QwIiBjeD0iMjMiIGN5PSI3IiByPSIzIi8+DQo8bGluZSBjbGFzcz0ic3QwIiB4MT0iMyIgeTE9IjciIHgyPSIyMCIgeTI9IjciLz4NCjxsaW5lIGNsYXNzPSJzdDAiIHgxPSIyOSIgeTE9IjciIHgyPSIyNiIgeTI9IjciLz4NCjxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjEyIiBjeT0iMTYiIHI9IjMiLz4NCjxsaW5lIGNsYXNzPSJzdDAiIHgxPSIzIiB5MT0iMTYiIHgyPSI5IiB5Mj0iMTYiLz4NCjxsaW5lIGNsYXNzPSJzdDAiIHgxPSIyOSIgeTE9IjE2IiB4Mj0iMTUiIHkyPSIxNiIvPg0KPGNpcmNsZSBjbGFzcz0ic3QwIiBjeD0iMjMiIGN5PSIyNSIgcj0iMyIvPg0KPGxpbmUgY2xhc3M9InN0MCIgeDE9IjMiIHkxPSIyNSIgeDI9IjIwIiB5Mj0iMjUiLz4NCjxsaW5lIGNsYXNzPSJzdDAiIHgxPSIyOSIgeTE9IjI1IiB4Mj0iMjYiIHkyPSIyNSIvPg0KPC9zdmc+DQo=", + "name": "PanelSpriteSlider", + "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/Line Hero Pack/Master/SVG/UI Essentials/1678c39a3b2bd3df4f82a8a293770db4986a6bcfd3f78e738ddfc86e39176423_UI Essentials_sliders_options.svg", + "shortDescription": "A draggable slider that users can move to select a numerical value.", + "version": "1.4.2", + "description": [ + "A draggable slider that users can move to select a numerical value. The slider can be customized with sprites.", + "", + "There are ready-to-use sliders in the asset-store [settings UI pack](https://editor.gdevelop.io/?initial-dialog=asset-store&asset-pack=settings-ui-settings-ui)." + ], + "origin": { + "identifier": "PanelSpriteSlider", + "name": "gdevelop-extension-store" + }, + "tags": [ + "draggable", + "slider", + "ui", + "widget" + ], + "authorIds": [ + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2", + "gqDaZjCfevOOxBYkK6zlhtZnXCg1" + ], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "Represent a value on a slider.", + "fullName": "Slider", + "name": "Slider", + "objectType": "", + "private": true, + "eventsFunctions": [ + { + "description": "the value of the object.", + "fullName": "Value", + "functionType": "ExpressionAndCondition", + "name": "Value", + "sentence": "the value", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyValue()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteSlider::Slider", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Value", + "name": "SetValue", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::Slider::PropertyStepSize" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::Slider::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "clamp(GetArgumentAsNumber(\"Value\"), Object.Behavior::PropertyMinValue(), Object.Behavior::PropertyMaxValue())" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::Slider::PropertyStepSize" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::Slider::SetPropertyValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "clamp(round(GetArgumentAsNumber(\"Value\") / Object.Behavior::PropertyStepSize()) * Object.Behavior::PropertyStepSize(), Object.Behavior::PropertyMinValue(), Object.Behavior::PropertyMaxValue())" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteSlider::Slider", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the minimum value of the object.", + "fullName": "Minimum value", + "functionType": "ExpressionAndCondition", + "group": "Resource bar configuration", + "name": "MinValue", + "sentence": "the minimum value", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyMinValue()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteSlider::Slider", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "MinValue", + "name": "SetMinValue", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::Slider::SetPropertyMinValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::Slider::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::Value()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteSlider::Slider", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the maximum value of the object.", + "fullName": "Maximum value", + "functionType": "ExpressionAndCondition", + "group": "Resource bar configuration", + "name": "MaxValue", + "sentence": "the maximum value", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyMaxValue()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteSlider::Slider", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "MaxValue", + "name": "SetMaxValue", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::Slider::SetPropertyMaxValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::Slider::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::Value()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteSlider::Slider", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the bar value bounds size.", + "fullName": "Size", + "functionType": "ExpressionAndCondition", + "name": "Size", + "sentence": "the bar value bounds size", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::MaxValue() - Object.Behavior::MinValue()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteSlider::Slider", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the step size of the object.", + "fullName": "Step size", + "functionType": "ExpressionAndCondition", + "group": "Resource bar configuration", + "name": "StepSize", + "sentence": "the step size", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyStepSize()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteSlider::Slider", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "StepSize", + "name": "SetStepSize", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::Slider::SetPropertyStepSize" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::Slider::SetValue" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::Value()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteSlider::Slider", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "0", + "type": "Number", + "label": "Value", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "Value" + }, + { + "value": "0", + "type": "Number", + "label": "Minimum value", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "MinValue" + }, + { + "value": "1", + "type": "Number", + "label": "Maximum value", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "MaxValue" + }, + { + "value": "0", + "type": "Number", + "label": "Step size", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "StepSize" + } + ], + "sharedPropertyDescriptors": [] + }, + { + "description": "The finite state machine used internally by the button object.", + "fullName": "Button finite state machine", + "name": "ButtonFSM", + "objectType": "", + "private": true, + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Finite state machine", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The \"Validated\" state only last one frame." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Validated\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Check position", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Make sure the cursor position is only checked once per frame." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::SetPropertyMouseIsInside" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::PropertyShouldCheckHovering" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "CollisionPoint" + }, + "parameters": [ + "Object", + "MouseOnlyCursorX(Object.Layer(), 0)", + "MouseOnlyCursorY(Object.Layer(), 0)" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::SetPropertyMouseIsInside" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Touches are always pressed, so ShouldCheckHovering doesn't matter." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::SetPropertyTouchIsInside" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::PropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + }, + { + "type": { + "value": "CollisionPoint" + }, + "parameters": [ + "Object", + "TouchX(Object.Behavior::PropertyTouchId(), Object.Layer(), 0)", + "TouchY(Object.Behavior::PropertyTouchId(), Object.Layer(), 0)" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::SetPropertyTouchIsInside" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Handle touch start", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "HasAnyTouchOrMouseStarted" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::SetPropertyIndex" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Repeat", + "repeatExpression": "StartedTouchOrMouseCount()", + "conditions": [], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionPoint" + }, + "parameters": [ + "Object", + "TouchX(StartedTouchOrMouseId(Object.Behavior::PropertyIndex()), Object.Layer(), 0)", + "TouchY(StartedTouchOrMouseId(Object.Behavior::PropertyIndex()), Object.Layer(), 0)" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::SetPropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "StartedTouchOrMouseId(Object.Behavior::PropertyIndex())" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::SetPropertyTouchIsInside" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Hovered\"" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::SetPropertyIndex" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "1" + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Apply position changes", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "PanelSpriteSlider::ButtonFSM::PropertyMouseIsInside" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Hovered\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::PropertyMouseIsInside" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Hovered\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "PanelSpriteSlider::ButtonFSM::PropertyTouchIsInside" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedOutside\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::PropertyTouchIsInside" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedOutside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Handle touch end", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "HasTouchEnded" + }, + "parameters": [ + "", + "Object.Behavior::PropertyTouchId()" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::SetPropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Validated\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "PanelSpriteSlider::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + }, + { + "type": { + "inverted": true, + "value": "PanelSpriteSlider::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Validated\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteSlider::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onDeActivate", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::SetPropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteSlider::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button is not used.", + "fullName": "Is idle", + "functionType": "Condition", + "name": "IsIdle", + "sentence": "_PARAM0_ is idle", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteSlider::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button was just clicked.", + "fullName": "Is clicked", + "functionType": "Condition", + "name": "IsClicked", + "sentence": "_PARAM0_ is clicked", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Validated\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteSlider::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the cursor is hovered over the button.", + "fullName": "Is hovered", + "functionType": "Condition", + "name": "IsHovered", + "sentence": "_PARAM0_ is hovered", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Hovered\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteSlider::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button is either hovered or pressed but not hovered.", + "fullName": "Is focused", + "functionType": "Condition", + "name": "IsFocused", + "sentence": "_PARAM0_ is focused", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Hovered\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedOutside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteSlider::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button is currently being pressed with mouse or touch.", + "fullName": "Is pressed", + "functionType": "Condition", + "name": "IsPressed", + "sentence": "_PARAM0_ is pressed", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteSlider::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button is currently being pressed outside with mouse or touch.", + "fullName": "Is held outside", + "functionType": "Condition", + "name": "IsPressedOutside", + "sentence": "_PARAM0_ is held outside", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedOutside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteSlider::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the touch id that is using the button or 0 if none.", + "fullName": "Touch id", + "functionType": "ExpressionAndCondition", + "name": "TouchId", + "sentence": "the touch id", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyTouchId()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteSlider::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "true", + "type": "Boolean", + "label": "", + "description": "Should check hovering", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ShouldCheckHovering" + }, + { + "value": "Idle", + "type": "Choice", + "label": "State", + "description": "", + "group": "", + "extraInformation": [ + "Idle", + "Hovered", + "PressedInside", + "PressedOutside", + "Validated" + ], + "hidden": true, + "name": "State" + }, + { + "value": "0", + "type": "Number", + "label": "Touch id", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TouchId" + }, + { + "value": "", + "type": "Boolean", + "label": "Touch is inside", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TouchIsInside" + }, + { + "value": "", + "type": "Boolean", + "label": "Mouse is inside", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "MouseIsInside" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "Index" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [ + { + "defaultName": "Slider", + "description": "Let users select a numerical value by dragging a slider.", + "fullName": "Slider", + "name": "PanelSpriteSlider", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "This allows to detect a change of \"intial value\" on hot reload." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::SetPropertyPreviousInitialValue" + }, + "parameters": [ + "Object", + "=", + "Object.PropertyInitialValue()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Create the child-object instances." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Background", + "0", + "0", + "" + ] + }, + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "FillBar", + "0", + "0", + "" + ] + }, + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Thumb", + "0", + "0", + "" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Background", + "=", + "1" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "FillBar", + "=", + "2" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Thumb", + "=", + "3" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Create the label that is displayed over the thumb." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Label", + "0", + "0", + "" + ] + }, + { + "type": { + "value": "ChangePlan" + }, + "parameters": [ + "Label", + "=", + "4" + ] + }, + { + "type": { + "value": "TextObject::SetWrapping" + }, + "parameters": [ + "Label", + "no" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Label" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Pass the configuration to the behavior." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::UpdateSliderConfiguration" + }, + "parameters": [ + "Object", + "" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::SetValue" + }, + "parameters": [ + "Object", + "=", + "Object.PropertyInitialValue()", + "Object.PropertyInitialValue()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetIncludedInParentCollisionMask" + }, + "parameters": [ + "Label", + "" + ] + }, + { + "type": { + "value": "SetIncludedInParentCollisionMask" + }, + "parameters": [ + "Thumb", + "" + ] + }, + { + "type": { + "value": "SetIncludedInParentCollisionMask" + }, + "parameters": [ + "FillBar", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteSlider::PanelSpriteSlider", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onHotReloading", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::UpdateLayout" + }, + "parameters": [ + "Object", + "" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::UpdateSliderConfiguration" + }, + "parameters": [ + "Object", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::PropertyInitialValue" + }, + "parameters": [ + "Object", + "!=", + "Object.PropertyPreviousInitialValue()" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::SetPropertyPreviousInitialValue" + }, + "parameters": [ + "Object", + "=", + "Object.PropertyInitialValue()" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::SetValue" + }, + "parameters": [ + "Object", + "=", + "Object.PropertyInitialValue()", + "Object.PropertyInitialValue()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteSlider::PanelSpriteSlider", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Handle touches", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BehaviorActivated" + }, + "parameters": [ + "Background", + "ButtonFSM" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "DraggableBehavior::Dragged" + }, + "parameters": [ + "Thumb", + "Draggable" + ] + }, + { + "type": { + "inverted": true, + "value": "DraggableBehavior::Dropped" + }, + "parameters": [ + "Thumb", + "Draggable" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::IsPressed" + }, + "parameters": [ + "Background", + "ButtonFSM", + "" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::IsPressedOutside" + }, + "parameters": [ + "Background", + "ButtonFSM", + "" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::SetValue" + }, + "parameters": [ + "Object", + "=", + "FillBar.Slider::MinValue() + FillBar.Slider::Size() * (TouchX(Background.ButtonFSM::TouchId(), Object.Layer()) - Object.FullBarLeft()) / Object.FullBarWidth()", + "FillBar.Slider::MinValue() + FillBar.Slider::Size() * (MouseX() - Object.FullBarLeft()) / Object.FullBarWidth()" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::PropertyShowLabelAtChanges" + }, + "parameters": [ + "Object" + ] + } + ], + "actions": [ + { + "type": { + "value": "Montre" + }, + "parameters": [ + "Label", + "" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Label", + "\"HideBack\"" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableBehavior::Dragged" + }, + "parameters": [ + "Thumb", + "Draggable" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::SetValue" + }, + "parameters": [ + "Object", + "=", + "FillBar.Slider::MinValue() + FillBar.Slider::Size() * (Thumb.CenterX() - Object.FullBarLeft()) / Object.FullBarWidth()", + "FillBar.Slider::MinValue() + FillBar.Slider::Size() * (Thumb.CenterX() - Object.FullBarLeft()) / Object.FullBarWidth()" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::PropertyShowLabelAtChanges" + }, + "parameters": [ + "Object" + ] + } + ], + "actions": [ + { + "type": { + "value": "Montre" + }, + "parameters": [ + "Label", + "" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "DraggableBehavior::Dropped" + }, + "parameters": [ + "Thumb", + "Draggable" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Label", + "\"HideBack\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::PropertyShowLabelAtChanges" + }, + "parameters": [ + "Object" + ] + }, + { + "type": { + "value": "CollisionPoint" + }, + "parameters": [ + "Thumb", + "MouseOnlyCursorX(Object.Layer(), 0)", + "MouseOnlyCursorY(Thumb.Layer(), 0)" + ] + } + ], + "actions": [ + { + "type": { + "value": "Montre" + }, + "parameters": [ + "Label", + "" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Label", + "\"HideBack\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Label", + "\"HideBack\"", + ">", + "0.5" + ] + } + ], + "actions": [ + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Label" + ] + }, + { + "type": { + "value": "RemoveObjectTimer" + }, + "parameters": [ + "Label", + "\"HideBack\"" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Resize", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Children instances must be resized when the parent size change:\n- background is resized to take the full dimensions of the parent\n- the label is put back at the center of the bar\n\nThe scale is set back to 1 because it means that the parent instance has the same dimensions as the union of its children instances." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "Object.Width()", + "!=", + "max(Background.BoundingBoxRight(), max(Label.BoundingBoxRight(), Thumb.BoundingBoxRight())) - min(Background.BoundingBoxLeft(), min(Label.BoundingBoxLeft(), Thumb.BoundingBoxLeft()))" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "Object.Height()", + "!=", + "max(Background.BoundingBoxBottom(), max(Label.BoundingBoxBottom(), Thumb.BoundingBoxBottom())) - min(Background.BoundingBoxTop(), min(Label.BoundingBoxTop(), Thumb.BoundingBoxTop()))" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Background", + "Width", + "=", + "Object.Width()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Background", + "Height", + "=", + "Object.Height()" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::Scale" + }, + "parameters": [ + "Object", + "=", + "1" + ] + }, + { + "type": { + "value": "PanelSpriteObject::Width" + }, + "parameters": [ + "Background", + "=", + "Background.Variable(Width)" + ] + }, + { + "type": { + "value": "PanelSpriteObject::Height" + }, + "parameters": [ + "Background", + "=", + "Background.Variable(Height)" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::UpdateLayout" + }, + "parameters": [ + "Object", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The parent size is not defined in onCreate so it needs to be done here." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::UpdateLayout" + }, + "parameters": [ + "Object", + "" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::UpdateThumbPosition" + }, + "parameters": [ + "Object", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteSlider::PanelSpriteSlider", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the slider is being dragged.", + "fullName": "Being dragged", + "functionType": "Condition", + "group": "Slider", + "name": "IsBeingDragged", + "sentence": "_PARAM0_ is being dragged", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "DraggableBehavior::Dragged" + }, + "parameters": [ + "Thumb", + "Draggable" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::IsPressed" + }, + "parameters": [ + "Background", + "ButtonFSM", + "" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::ButtonFSM::IsPressedOutside" + }, + "parameters": [ + "Background", + "ButtonFSM", + "" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteSlider::PanelSpriteSlider", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "the value of the slider.", + "fullName": "Value", + "functionType": "ExpressionAndCondition", + "name": "Value", + "sentence": "the value", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "FillBar.Slider::Value()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteSlider::PanelSpriteSlider", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Value", + "name": "SetValue", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::Slider::SetValue" + }, + "parameters": [ + "FillBar", + "Slider", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::UpdateThumbPosition" + }, + "parameters": [ + "Object", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteSlider::PanelSpriteSlider", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteSlider::Slider", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the minimum value of the slider.", + "fullName": "Minimum value", + "functionType": "ExpressionAndCondition", + "group": "Slider configuration", + "name": "MinValue", + "sentence": "the minimum value", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "FillBar.Slider::MinValue()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteSlider::PanelSpriteSlider", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "MinValue", + "name": "SetMinValue", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::Slider::SetMinValue" + }, + "parameters": [ + "FillBar", + "Slider", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::UpdateLayout" + }, + "parameters": [ + "Object", + "" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::UpdateThumbPosition" + }, + "parameters": [ + "Object", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteSlider::PanelSpriteSlider", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteSlider::Slider", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the maximum value of the slider.", + "fullName": "Maximum value", + "functionType": "ExpressionAndCondition", + "group": "Slider configuration", + "name": "MaxValue", + "sentence": "the maximum value", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "FillBar.Slider::MaxValue()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteSlider::PanelSpriteSlider", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "MaxValue", + "name": "SetMaxValue", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::Slider::SetMaxValue" + }, + "parameters": [ + "FillBar", + "Slider", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::UpdateLayout" + }, + "parameters": [ + "Object", + "" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::UpdateThumbPosition" + }, + "parameters": [ + "Object", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteSlider::PanelSpriteSlider", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteSlider::Slider", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the step size of the slider.", + "fullName": "Step size", + "functionType": "ExpressionAndCondition", + "group": "Slider configuration", + "name": "StepSize", + "sentence": "the step size", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "FillBar.Slider::StepSize()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteSlider::PanelSpriteSlider", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "StepSize", + "name": "SetStepSize", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::Slider::SetStepSize" + }, + "parameters": [ + "FillBar", + "Slider", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteSlider::PanelSpriteSlider", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "PanelSpriteSlider::Slider", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the label is shown.", + "fullName": "Label is shown", + "functionType": "Condition", + "group": "Slider configuration", + "name": "IsLabelShown", + "sentence": "_PARAM0_ label is shown", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::PropertyShowLabelAtChanges" + }, + "parameters": [ + "Object" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteSlider::PanelSpriteSlider", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Show (or hide) the label on the bar.", + "fullName": "Show label", + "functionType": "Action", + "group": "Slider configuration", + "name": "SetLabelShown", + "sentence": "Show the label of _PARAM0_: _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::SetPropertyShowLabelAtChanges" + }, + "parameters": [ + "Object", + "no" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Label" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::SetPropertyShowLabelAtChanges" + }, + "parameters": [ + "Object", + "yes" + ] + }, + { + "type": { + "value": "Montre" + }, + "parameters": [ + "Label", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteSlider::PanelSpriteSlider", + "type": "object" + }, + { + "description": "Show the label", + "name": "Value", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Center the bar according to the button configuration. This is used in doStepPostEvents when the button is resized.", + "fullName": "Update layout", + "functionType": "Action", + "name": "UpdateLayout", + "private": true, + "sentence": "Update layout of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "MettreXY" + }, + "parameters": [ + "FillBar", + "=", + "Object.PropertyBarLeftPadding()", + "=", + "Object.PropertyBarTopPadding()" + ] + }, + { + "type": { + "value": "PanelSpriteObject::Height" + }, + "parameters": [ + "FillBar", + "=", + "round(Background.Height() - Object.PropertyBarTopPadding() - Object.PropertyBarBottomPadding())" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteSlider::PanelSpriteSlider", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Update the thumb position according to the slider value.", + "fullName": "Update thumb position", + "functionType": "Action", + "name": "UpdateThumbPosition", + "private": true, + "sentence": "Update the thumb position of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "PanelSpriteSlider::Slider::Size" + }, + "parameters": [ + "FillBar", + "Slider", + ">", + "0", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteObject::Width" + }, + "parameters": [ + "FillBar", + "=", + "Object.FullBarWidth() * (FillBar.Slider::Value() - FillBar.Slider::MinValue()) / FillBar.Slider::Size()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetCenterX" + }, + "parameters": [ + "Thumb", + "=", + "Object.FullBarLeft() + FillBar.Width()" + ] + }, + { + "type": { + "value": "SetCenterY" + }, + "parameters": [ + "Thumb", + "=", + "FillBar.CenterY()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "TextObject::String" + }, + "parameters": [ + "Label", + "=", + "ToString(Object.Value())" + ] + }, + { + "type": { + "value": "SetCenterX" + }, + "parameters": [ + "Label", + "=", + "Thumb.CenterX()" + ] + }, + { + "type": { + "value": "MettreY" + }, + "parameters": [ + "Label", + "=", + "Thumb.Y() - Label.Height() - Object.PropertyLabelMargin()" + ] + }, + { + "type": { + "value": "TextObject::Angle" + }, + "parameters": [ + "Label", + "=", + "-Object.Angle()" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteSlider::PanelSpriteSlider", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Expression", + "name": "FullBarLeft", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.PropertyBarLeftPadding()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteSlider::PanelSpriteSlider", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Expression", + "name": "FullBarRight", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Background.Width() - Object.PropertyBarRightPadding()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteSlider::PanelSpriteSlider", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Expression", + "name": "FullBarWidth", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Background.Width() - Object.PropertyBarLeftPadding() - Object.PropertyBarRightPadding()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteSlider::PanelSpriteSlider", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "Update the slider configuration.", + "fullName": "Update slider configuration", + "functionType": "Action", + "name": "UpdateSliderConfiguration", + "private": true, + "sentence": "Update the slider configuration of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Pass configuration to the behavior and update children." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::SetMinValue" + }, + "parameters": [ + "Object", + "=", + "Object.PropertyMinValue()", + "Object.PropertyMaxValue()", + "" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::SetMaxValue" + }, + "parameters": [ + "Object", + "=", + "Object.PropertyMaxValue()", + "Object.PropertyMaxValue()" + ] + }, + { + "type": { + "value": "PanelSpriteSlider::PanelSpriteSlider::SetStepSize" + }, + "parameters": [ + "Object", + "=", + "Object.PropertyStepSize()", + "Object.PropertyMaxValue()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteSlider::PanelSpriteSlider", + "type": "object" + } + ], + "objectGroups": [] + }, + { + "description": "De/activate interactions with the button.", + "fullName": "De/activate interactions", + "functionType": "Action", + "name": "Activate", + "sentence": "Activate interactions with _PARAM0_: _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"ShouldActivate\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Thumb", + "Draggable", + "yes" + ] + }, + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Background", + "ButtonFSM", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"ShouldActivate\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Thumb", + "Draggable", + "no" + ] + }, + { + "type": { + "value": "ActivateBehavior" + }, + "parameters": [ + "Background", + "ButtonFSM", + "no" + ] + }, + { + "type": { + "value": "Cache" + }, + "parameters": [ + "Label" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteSlider::PanelSpriteSlider", + "type": "object" + }, + { + "description": "Activate", + "name": "ShouldActivate", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the slider allows interactions.", + "fullName": "Interactions activated", + "functionType": "Condition", + "name": "IsActivated", + "sentence": "Interactions on _PARAM0_ are activated", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BehaviorActivated" + }, + "parameters": [ + "Background", + "ButtonFSM" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "PanelSpriteSlider::PanelSpriteSlider", + "type": "object" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "0", + "type": "Number", + "label": "Bar left margin", + "description": "", + "group": "Bar", + "extraInformation": [ + "Label", + "FillBar" + ], + "hidden": false, + "name": "BarLeftPadding" + }, + { + "value": "0", + "type": "Number", + "label": "Bar top margin", + "description": "", + "group": "Bar", + "extraInformation": [ + "Label", + "FillBar" + ], + "hidden": false, + "name": "BarTopPadding" + }, + { + "value": "0", + "type": "Number", + "label": "Bar right margin", + "description": "", + "group": "Bar", + "extraInformation": [ + "Label", + "FillBar" + ], + "hidden": false, + "name": "BarRightPadding" + }, + { + "value": "0", + "type": "Number", + "label": "Bar bottom margin", + "description": "", + "group": "Bar", + "extraInformation": [ + "Label", + "FillBar" + ], + "hidden": false, + "name": "BarBottomPadding" + }, + { + "value": "true", + "type": "Boolean", + "label": "Show the label when the value is changed", + "description": "", + "group": "Label", + "extraInformation": [], + "hidden": false, + "name": "ShowLabelAtChanges" + }, + { + "value": "8", + "type": "Number", + "label": "Label margin", + "description": "", + "group": "Label", + "extraInformation": [], + "hidden": false, + "name": "LabelMargin" + }, + { + "value": "0", + "type": "Number", + "label": "Minimum value", + "description": "", + "group": "Value", + "extraInformation": [], + "hidden": false, + "name": "MinValue" + }, + { + "value": "100", + "type": "Number", + "label": "Maximum value", + "description": "", + "group": "Value", + "extraInformation": [], + "hidden": false, + "name": "MaxValue" + }, + { + "value": "1", + "type": "Number", + "label": "Step size", + "description": "", + "group": "Value", + "extraInformation": [], + "hidden": false, + "name": "StepSize" + }, + { + "value": "50", + "type": "Number", + "label": "Initial value", + "description": "", + "group": "Value", + "extraInformation": [], + "hidden": false, + "name": "InitialValue" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "It's used to detect a change at hot reload.", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "PreviousInitialValue" + }, + { + "value": "Center-center", + "type": "String", + "label": "", + "description": "Only used by the scene editor.", + "group": "", + "extraInformation": [ + "Thumb" + ], + "hidden": true, + "name": "ThumbAnchorOrigin" + }, + { + "value": "Center-right", + "type": "String", + "label": "", + "description": "Only used by the scene editor.", + "group": "", + "extraInformation": [ + "FillBar" + ], + "hidden": true, + "name": "ThumbAnchorTarget" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "Only used by the scene editor.", + "group": "", + "extraInformation": [ + "Label" + ], + "hidden": true, + "name": "ShowLabel" + } + ], + "objects": [ + { + "assetStoreId": "", + "bold": false, + "italic": false, + "name": "Label", + "smoothed": true, + "tags": "", + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "effects": [], + "behaviors": [], + "string": "It displays the value when it changes.", + "font": "", + "textAlignment": "", + "characterSize": 20, + "color": { + "b": 0, + "g": 0, + "r": 0 + } + }, + { + "assetStoreId": "", + "bottomMargin": 0, + "height": 32, + "leftMargin": 0, + "name": "Thumb", + "rightMargin": 0, + "tags": "", + "texture": "", + "tiled": false, + "topMargin": 0, + "type": "PanelSpriteObject::PanelSprite", + "width": 32, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "Draggable", + "type": "DraggableBehavior::Draggable", + "checkCollisionMask": false + } + ] + }, + { + "assetStoreId": "", + "bottomMargin": 0, + "height": 32, + "leftMargin": 0, + "name": "FillBar", + "rightMargin": 0, + "tags": "", + "texture": "", + "tiled": true, + "topMargin": 0, + "type": "PanelSpriteObject::PanelSprite", + "width": 32, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "Slider", + "type": "PanelSpriteSlider::Slider", + "Value": 0, + "MinValue": 0, + "MaxValue": 1, + "StepSize": 1 + } + ] + }, + { + "assetStoreId": "", + "bottomMargin": 0, + "height": 32, + "leftMargin": 0, + "name": "Background", + "rightMargin": 0, + "tags": "", + "texture": "", + "tiled": true, + "topMargin": 0, + "type": "PanelSpriteObject::PanelSprite", + "width": 32, + "variables": [], + "effects": [], + "behaviors": [ + { + "name": "ButtonFSM", + "type": "PanelSpriteSlider::ButtonFSM", + "ShouldCheckHovering": true, + "State": "Idle", + "TouchId": 0, + "TouchIsInside": false, + "MouseIsInside": false, + "Index": 0 + } + ] + } + ] + } + ] + }, + { + "author": "", + "category": "User interface", + "extensionNamespace": "", + "fullName": "Button States", + "helpPath": "/objects/button", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWdlc3R1cmUtdGFwLWJ1dHRvbiIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xMyA1QzE1LjIxIDUgMTcgNi43OSAxNyA5QzE3IDEwLjUgMTYuMiAxMS43NyAxNSAxMi40NlYxMS4yNEMxNS42MSAxMC42OSAxNiA5Ljg5IDE2IDlDMTYgNy4zNCAxNC42NiA2IDEzIDZTMTAgNy4zNCAxMCA5QzEwIDkuODkgMTAuMzkgMTAuNjkgMTEgMTEuMjRWMTIuNDZDOS44IDExLjc3IDkgMTAuNSA5IDlDOSA2Ljc5IDEwLjc5IDUgMTMgNU0yMCAyMC41QzE5Ljk3IDIxLjMyIDE5LjMyIDIxLjk3IDE4LjUgMjJIMTNDMTIuNjIgMjIgMTIuMjYgMjEuODUgMTIgMjEuNTdMOCAxNy4zN0w4Ljc0IDE2LjZDOC45MyAxNi4zOSA5LjIgMTYuMjggOS41IDE2LjI4SDkuN0wxMiAxOFY5QzEyIDguNDUgMTIuNDUgOCAxMyA4UzE0IDguNDUgMTQgOVYxMy40N0wxNS4yMSAxMy42TDE5LjE1IDE1Ljc5QzE5LjY4IDE2LjAzIDIwIDE2LjU2IDIwIDE3LjE0VjIwLjVNMjAgMkg0QzIuOSAyIDIgMi45IDIgNFYxMkMyIDEzLjExIDIuOSAxNCA0IDE0SDhWMTJMNCAxMkw0IDRIMjBMMjAgMTJIMThWMTRIMjBWMTMuOTZMMjAuMDQgMTRDMjEuMTMgMTQgMjIgMTMuMDkgMjIgMTJWNEMyMiAyLjkgMjEuMTEgMiAyMCAyWiIgLz48L3N2Zz4=", + "name": "ButtonStates", + "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/753a9a794bd885058159b7509f06f5a8f67f72decfccb9a1b0efee26f41c3c4c_gesture-tap-button.svg", + "shortDescription": "Use any object as a button.", + "version": "1.0.0", + "description": [ + "Tracks player interaction with an object, including:", + "- hovered", + "- pressed", + "- clicked" + ], + "origin": { + "identifier": "ButtonStates", + "name": "gdevelop-extension-store" + }, + "tags": [ + "ui", + "button", + "fsm" + ], + "authorIds": [ + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2" + ], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "Use objects as buttons.", + "fullName": "Button states", + "name": "ButtonFSM", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Finite state machine", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The \"Validated\" state only last one frame." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Validated\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Check position", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Make sure the cursor position is only checked once per frame." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyMouseIsInside" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyShouldCheckHovering" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "CollisionPoint" + }, + "parameters": [ + "Object", + "MouseOnlyCursorX(Object.Layer(), 0)", + "MouseOnlyCursorY(Object.Layer(), 0)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyMouseIsInside" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Touches are always pressed, so ShouldCheckHovering doesn't matter." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyTouchIsInside" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + }, + { + "type": { + "value": "CollisionPoint" + }, + "parameters": [ + "Object", + "TouchX(Object.Behavior::PropertyTouchId(), Object.Layer(), 0)", + "TouchY(Object.Behavior::PropertyTouchId(), Object.Layer(), 0)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyTouchIsInside" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Handle touch start", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "HasAnyTouchOrMouseStarted" + }, + "parameters": [ + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyIndex" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Repeat", + "repeatExpression": "StartedTouchOrMouseCount()", + "conditions": [], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CollisionPoint" + }, + "parameters": [ + "Object", + "TouchX(StartedTouchOrMouseId(Object.Behavior::PropertyIndex()), Object.Layer(), 0)", + "TouchY(StartedTouchOrMouseId(Object.Behavior::PropertyIndex()), Object.Layer(), 0)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "StartedTouchOrMouseId(Object.Behavior::PropertyIndex())" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyTouchIsInside" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Hovered\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyIndex" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "1" + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Apply position changes", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "ButtonStates::ButtonFSM::PropertyMouseIsInside" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Hovered\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyMouseIsInside" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Hovered\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "ButtonStates::ButtonFSM::PropertyTouchIsInside" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedOutside\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyTouchIsInside" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedOutside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Handle touch end", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "HasTouchEnded" + }, + "parameters": [ + "", + "Object.Behavior::PropertyTouchId()" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Validated\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + }, + { + "type": { + "inverted": true, + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Validated\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onDeActivate", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::ResetState" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Reset the state of the button.", + "fullName": "Reset state", + "functionType": "Action", + "name": "ResetState", + "private": true, + "sentence": "Reset the button state of _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + }, + { + "type": { + "value": "ButtonStates::ButtonFSM::SetPropertyTouchId" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button is not used.", + "fullName": "Is idle", + "functionType": "Condition", + "name": "IsIdle", + "sentence": "_PARAM0_ is idle", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Idle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button was just clicked.", + "fullName": "Is clicked", + "functionType": "Condition", + "name": "IsClicked", + "sentence": "_PARAM0_ is clicked", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Validated\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the cursor is hovered over the button.", + "fullName": "Is hovered", + "functionType": "Condition", + "name": "IsHovered", + "sentence": "_PARAM0_ is hovered", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Hovered\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button is either hovered or pressed but not hovered.", + "fullName": "Is focused", + "functionType": "Condition", + "name": "IsFocused", + "sentence": "_PARAM0_ is focused", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"Hovered\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedOutside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button is currently being pressed with mouse or touch.", + "fullName": "Is pressed", + "functionType": "Condition", + "name": "IsPressed", + "sentence": "_PARAM0_ is pressed", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedInside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the button is currently being pressed outside with mouse or touch.", + "fullName": "Is held outside", + "functionType": "Condition", + "name": "IsPressedOutside", + "sentence": "_PARAM0_ is held outside", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ButtonStates::ButtonFSM::PropertyState" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "\"PressedOutside\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the touch id that is using the button or 0 if none.", + "fullName": "Touch id", + "functionType": "ExpressionAndCondition", + "name": "TouchId", + "sentence": "the touch id", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyTouchId()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ButtonStates::ButtonFSM", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "true", + "type": "Boolean", + "label": "", + "description": "Should check hovering", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ShouldCheckHovering" + }, + { + "value": "Idle", + "type": "Choice", + "label": "State", + "description": "", + "group": "", + "extraInformation": [ + "Idle", + "Hovered", + "PressedInside", + "PressedOutside", + "Validated" + ], + "hidden": true, + "name": "State" + }, + { + "value": "0", + "type": "Number", + "label": "Touch id", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TouchId" + }, + { + "value": "", + "type": "Boolean", + "label": "Touch is inside", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TouchIsInside" + }, + { + "value": "", + "type": "Boolean", + "label": "Mouse is inside", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "MouseIsInside" + }, + { + "value": "", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "Index" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "Tristan Rhodes (https://victrisgames.itch.io/)", + "category": "Visual effect", + "extensionNamespace": "", + "fullName": "Shake object", + "helpPath": "https://victrisgames.itch.io/gdevelop-camera-shake-example", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWFycm93LWFsbCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xMywxMUgxOEwxNi41LDkuNUwxNy45Miw4LjA4TDIxLjg0LDEyTDE3LjkyLDE1LjkyTDE2LjUsMTQuNUwxOCwxM0gxM1YxOEwxNC41LDE2LjVMMTUuOTIsMTcuOTJMMTIsMjEuODRMOC4wOCwxNy45Mkw5LjUsMTYuNUwxMSwxOFYxM0g2TDcuNSwxNC41TDYuMDgsMTUuOTJMMi4xNiwxMkw2LjA4LDguMDhMNy41LDkuNUw2LDExSDExVjZMOS41LDcuNUw4LjA4LDYuMDhMMTIsMi4xNkwxNS45Miw2LjA4TDE0LjUsNy41TDEzLDZWMTFaIiAvPjwvc3ZnPg==", + "name": "ShakeObject", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/arrow-all.svg", + "shortDescription": "Shake an object.", + "version": "1.5.6", + "description": [ + "Shake an object (position, angle or scale).", + "", + "It can be used for:", + "- Hit or impact", + "- Object slowly rocking back and forth (like a ship)", + "- Simulate engine vibration, earthquake, or pulsing", + "", + "The top-down RPG example uses this extension for damage animations ([open the project online](https://editor.gdevelop.io/?project=example://top-down-rpg))." + ], + "origin": { + "identifier": "ShakeObject", + "name": "gdevelop-extension-store" + }, + "tags": [ + "shaking", + "object", + "effect", + "shake", + "scale", + "position", + "rotate", + "angle" + ], + "authorIds": [ + "gqDaZjCfevOOxBYkK6zlhtZnXCg1" + ], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "Shake an object, using one or more ways to shake (position, angle).\nThis behavior can be used on any type of object.", + "fullName": "Shake object (position, angle)", + "name": "ShakeObject_PositionAngle", + "objectType": "", + "eventsFunctions": [ + { + "description": "Shake an object, using one or more ways to shake (position, angle). Make sure to \"Stop shaking\" before starting a new shake if it uses different parameters. ", + "fullName": "Shake object (position, angle)", + "functionType": "Action", + "name": "ShakeObject_PositionAngle", + "sentence": "Shake object _PARAM0_ for _PARAM2_ seconds. Modify position amplitude _PARAM3_ on X axis and _PARAM4_ on Y axis, angle rotation amplitude _PARAM5_. Wait _PARAM6_ seconds between shakes. Keep shaking until stopped: _PARAM7_", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Shake Object", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Start/Reset duration timer" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_DurationTimer\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Pass input parameters to global variables so that onScenePostEvents can use them" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "=", + "GetArgumentAsNumber(\"Duration\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "=", + "GetArgumentAsNumber(\"PowerX\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "=", + "GetArgumentAsNumber(\"PowerY\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerAngle", + "=", + "GetArgumentAsNumber(\"PowerAngle\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_TimeBetweenShakes", + "=", + "GetArgumentAsNumber(\"TimeBetweenShakes\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Determine if the shake should keep going until stopped" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeForever", + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"ShakeForever\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeForever", + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Add default values if none were provided" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "=", + "0.5" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_TimeBetweenShakes", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_TimeBetweenShakes", + "=", + "0.08" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If duration is less than a single shake, increase duration to make 1 full shake" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "<", + "Object.Variable(__ShakeObject_TimeBetweenShakes)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "=", + "Object.Variable(__ShakeObject_TimeBetweenShakes)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Detect initial shake" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_InitialShake", + "=", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Initiate the onScenePostEvents function" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "1" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngle", + "type": "behavior" + }, + { + "description": "Duration of shake (in seconds) (Default: 0.5) ", + "name": "Duration", + "type": "expression" + }, + { + "description": "Amplitude of postion shake in X direction (in pixels) (For example: 5)", + "name": "PowerX", + "type": "expression" + }, + { + "description": "Amplitude of position shake in Y direction (in pixels) (For example: 5)", + "longDescription": "Use a negative number to make the single-shake move in the opposite direction.", + "name": "PowerY", + "type": "expression" + }, + { + "description": "Amplitude of angle rotation shake (in degrees) (For example: 5)", + "name": "PowerAngle", + "type": "expression" + }, + { + "description": "Amount of time between shakes (in seconds) (Default: 0.08)", + "longDescription": "For a single-shake effect, set it to the same value as \"Duration\".", + "name": "TimeBetweenShakes", + "type": "expression" + }, + { + "description": "Keep shaking until stopped", + "longDescription": "Duration value will be ignored", + "name": "ShakeForever", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Shake Object", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Start shaking", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "1" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Keep object shaking forever (if desired)" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeForever", + "True" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "=", + "100" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_DurationTimer\"" + ] + } + ] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Calculate movement of the shake", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Run once before every shake movement" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_InitialShake", + "=", + "1" + ] + }, + { + "type": { + "value": "ObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_ShakeTimer\"", + "Object.Variable(__ShakeObject_TimeBetweenShakes)" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_ShakeTimer\"" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeCounter", + "+", + "1" + ] + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Correct for drift and reset drift tracking variables", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move to correct any drift from previous shake" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreX" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_DisplacementTravelledX)" + ] + }, + { + "type": { + "value": "MettreY" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_DisplacementTravelledY)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerAngle", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_AngleTravelled)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Reset drift detection variables" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledX", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledY", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_AngleTravelled", + "=", + "0" + ] + } + ] + } + ], + "parameters": [] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Calculate Position Shake" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "PositionDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude * [-1 or 1]" + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Make initial shake NOT random so users can set a direction for a one-shake effect" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_InitialShake", + "=", + "1" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementX", + "=", + "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerX)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementY", + "=", + "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerY)" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "After initial shake pick a random direction" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_InitialShake", + "=", + "0" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementX", + "=", + "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerX) * RandomWithStep(-1, 1, 2)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementY", + "=", + "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerY) * RandomWithStep(-1, 1, 2)" + ] + } + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Calculate Rotation (angle) shake " + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerAngle", + "!=", + "0" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Every \"even\" shake, rotate clockwise" + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "AngleDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "mod(Object.Variable(__ShakeObject_ShakeCounter),2)", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementAngle", + "=", + "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerAngle)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Every \"odd\" shake, rotate counter-clockwise" + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "AngleDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "mod(Object.Variable(__ShakeObject_ShakeCounter),2)", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementAngle", + "=", + "-1 *(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerAngle)" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save that initial shake has been processed" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_InitialShake", + "=", + "0" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Move object", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Calculate the fraction of shake that occured during this frame" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PercentTimeElapsedThisFrame", + "=", + "min(1,TimeDelta()/Object.Variable(__ShakeObject_TimeBetweenShakes))" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Increase change for the first half of the shake (move away from original values)" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "ObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_ShakeTimer\"", + "Object.Variable(__ShakeObject_TimeBetweenShakes)/2" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change position" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreX" + }, + "parameters": [ + "Object", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + }, + { + "type": { + "value": "MettreY" + }, + "parameters": [ + "Object", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save movement to calculate drift" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledX", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledY", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change angle" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Variable(__ShakeObject_PowerAngle)", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save movement to calculate drift" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_AngleTravelled", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Decrease change the second half of the shake (return to original position)" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_ShakeTimer\"", + "Object.Variable(__ShakeObject_TimeBetweenShakes)/2" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change position" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreX" + }, + "parameters": [ + "Object", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + }, + { + "type": { + "value": "MettreY" + }, + "parameters": [ + "Object", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save movement to calculate drift" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledX", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledY", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change angle" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Variable(__ShakeObject_PowerAngle)", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save movement to calculate drift" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_AngleTravelled", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Stop shaking", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Stop shaking when the duration has been reached (or if the stop shaking function was called)" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "ObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_DurationTimer\"", + "Object.Variable(__ShakeObject_Duration)" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "-1" + ] + } + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeCounter", + "=", + "0" + ] + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Correct for drift and reset drift tracking variables", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move to correct any drift from previous shake" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreX" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_DisplacementTravelledX)" + ] + }, + { + "type": { + "value": "MettreY" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_DisplacementTravelledY)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerAngle", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_AngleTravelled)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Reset drift detection variables" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledX", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledY", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_AngleTravelled", + "=", + "0" + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngle", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Stop any shaking of object that was initiated by the Shake Object extension.", + "fullName": "Stop shaking the object", + "functionType": "Action", + "name": "StopShaking", + "sentence": "Stop shaking _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject::ShakeObject_PositionAngle::IsShaking" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "-1" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngle", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if an object is shaking.", + "fullName": "Check if an object is shaking", + "functionType": "Condition", + "name": "IsShaking", + "sentence": "_PARAM0_ is shaking", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngle", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [], + "sharedPropertyDescriptors": [] + }, + { + "description": "Shake an object, using one or more ways to shake (position, angle, scale)\nThis behavior can only be used on sprite objects.", + "fullName": "Shake object (position, angle, scale)", + "name": "ShakeObject_PositionAngleScale", + "objectType": "Sprite", + "eventsFunctions": [ + { + "description": "Shake an object, using one or more ways to shake (position, angle, scale). Make sure to \"Stop shaking\" before starting a new shake if it uses different parameters.", + "fullName": "Shake object (position, angle, scale)", + "functionType": "Action", + "name": "ShakeObject_PositionAngleScale", + "sentence": "Shake object _PARAM0_ for _PARAM2_ seconds. Modify position amplitude _PARAM3_ on X axis and _PARAM4_ on Y axis, angle rotation amplitude _PARAM5_, and scale amplitude _PARAM6_. Wait _PARAM7_ seconds between shakes. Keep shaking until stopped: _PARAM8_", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Shake Object", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Start/Reset duration timer" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_DurationTimer\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Pass input parameters to global variables so that onScenePostEvents can use them" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "=", + "GetArgumentAsNumber(\"Duration\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "=", + "GetArgumentAsNumber(\"PowerX\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "=", + "GetArgumentAsNumber(\"PowerY\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerAngle", + "=", + "GetArgumentAsNumber(\"PowerAngle\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerScale", + "=", + "GetArgumentAsNumber(\"PowerScale\")" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_TimeBetweenShakes", + "=", + "GetArgumentAsNumber(\"TimeBetweenShakes\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Determine if the shake should keep going until stopped" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeForever", + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"ShakeForever\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeForever", + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Add default values if none were provided" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "=", + "0.5" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_TimeBetweenShakes", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_TimeBetweenShakes", + "=", + "0.08" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If duration is less than a single shake, increase duration to make 1 full shake" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "<", + "Object.Variable(__ShakeObject_TimeBetweenShakes)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "=", + "Object.Variable(__ShakeObject_TimeBetweenShakes)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Detect initial shake" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_InitialShake", + "=", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Initiate the onScenePostEvents function" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "1" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngleScale", + "type": "behavior" + }, + { + "description": "Duration of shake (in seconds) (Default: 0.5)", + "name": "Duration", + "type": "expression" + }, + { + "description": "Amplitude of postion shake in X direction (in pixels) (For example: 5)", + "name": "PowerX", + "type": "expression" + }, + { + "description": "Amplitude of position shake in Y direction (in pixels) (For example: 5)", + "longDescription": "Use a negative number to make the single-shake move in the opposite direction.", + "name": "PowerY", + "type": "expression" + }, + { + "description": "Amplitude of angle rotation shake (in degrees) (For example: 5)", + "name": "PowerAngle", + "type": "expression" + }, + { + "description": "Amplitude of scale shake (in percent change) (For example: 5)", + "name": "PowerScale", + "type": "expression" + }, + { + "description": "Amount of time between shakes (in seconds) (Default: 0.08)", + "longDescription": "For a single-shake effect, set it to the same value as \"Duration\".", + "name": "TimeBetweenShakes", + "type": "expression" + }, + { + "description": "Keep shaking until stopped", + "longDescription": "Duration value will be ignored", + "name": "ShakeForever", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPostEvents", + "sentence": "", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Shake Object", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Start shaking", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "1" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Keep object shaking forever (if desired)" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectVariableAsBoolean" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeForever", + "True" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_Duration", + "=", + "100" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_DurationTimer\"" + ] + } + ] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Calculate movement of the shake", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Run once before every shake movement" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_InitialShake", + "=", + "1" + ] + }, + { + "type": { + "value": "ObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_ShakeTimer\"", + "Object.Variable(__ShakeObject_TimeBetweenShakes)" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_ShakeTimer\"" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeCounter", + "+", + "1" + ] + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "folded": true, + "name": "Correct for drift and reset drift tracking variables", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move to correct any drift from previous shake" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreX" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_DisplacementTravelledX)" + ] + }, + { + "type": { + "value": "MettreY" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_DisplacementTravelledY)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerAngle", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_AngleTravelled)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerScale", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ChangeScale" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_ScaleTravelled)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Reset drift detection variables" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledX", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledY", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_AngleTravelled", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ScaleTravelled", + "=", + "0" + ] + } + ] + } + ], + "parameters": [] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Calculate Position Shake" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "PositionDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude * [-1 or 1]" + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Make initial shake NOT random so users can set a direction for a one-shake effect" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_InitialShake", + "=", + "1" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementX", + "=", + "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerX)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementY", + "=", + "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerY)" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "After initial shake pick a random direction" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_InitialShake", + "=", + "0" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementX", + "=", + "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerX) * RandomWithStep(-1, 1, 2)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementY", + "=", + "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerY) * RandomWithStep(-1, 1, 2)" + ] + } + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Calculate Rotation (angle) shake " + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerAngle", + "!=", + "0" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Every \"even\" shake, rotate clockwise" + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "AngleDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "mod(Object.Variable(__ShakeObject_ShakeCounter),2)", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementAngle", + "=", + "-1 * (Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerAngle)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Every \"odd\" shake, rotate counter-clockwise" + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "AngleDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "mod(Object.Variable(__ShakeObject_ShakeCounter),2)", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementAngle", + "=", + "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerAngle)" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Calculate Scale shake" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerScale", + "!=", + "0" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Calculate object scale displacement, with linear decay over time" + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "ScaleDisplacement = (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude * 1/100" + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Every even shake, increase scale" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "mod(Object.Variable(__ShakeObject_ShakeCounter),2)", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementScale", + "=", + "-1 * (Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerScale) * (1/100)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Every \"odd\" shake, decrease scale" + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "ScaleDisplacement = -1 * (DesiredDuration - RunningTimer) / DesiredDuration * Amplitude * 1/100" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "mod(Object.Variable(__ShakeObject_ShakeCounter),2)", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementScale", + "=", + "(Object.Variable(__ShakeObject_Duration) - Object.ObjectTimerElapsedTime(\"__ShakeObject_DurationTimer\")) / Object.Variable(__ShakeObject_Duration) * Object.Variable(__ShakeObject_PowerScale) * (1/100)" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save that initial shake has been processed" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_InitialShake", + "=", + "0" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Move object", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Calculate the fraction of shake that occured during this frame" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PercentTimeElapsedThisFrame", + "=", + "min(1,TimeDelta()/Object.Variable(__ShakeObject_TimeBetweenShakes))" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Increase change for the first half of the shake (move away from original values)" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "ObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_ShakeTimer\"", + "Object.Variable(__ShakeObject_TimeBetweenShakes)/2" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change position" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreX" + }, + "parameters": [ + "Object", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + }, + { + "type": { + "value": "MettreY" + }, + "parameters": [ + "Object", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save movement to calculate drift" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledX", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledY", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change angle" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Variable(__ShakeObject_PowerAngle)", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save movement to calculate drift" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_AngleTravelled", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change scale" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Variable(__ShakeObject_PowerScale)", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ChangeScale" + }, + "parameters": [ + "Object", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementScale) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save movement to calculate drift" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ScaleTravelled", + "+", + "round(1024 * Object.Variable(__ShakeObject_DisplacementScale) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Decrease change the second half of the shake (return to original position)" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_ShakeTimer\"", + "Object.Variable(__ShakeObject_TimeBetweenShakes)/2" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change position" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreX" + }, + "parameters": [ + "Object", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + }, + { + "type": { + "value": "MettreY" + }, + "parameters": [ + "Object", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save movement to calculate drift" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledX", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementX) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledY", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementY) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change angle" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Variable(__ShakeObject_PowerAngle)", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save movement to calculate drift" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_AngleTravelled", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementAngle) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Change scale" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Egal" + }, + "parameters": [ + "Object.Variable(__ShakeObject_PowerScale)", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ChangeScale" + }, + "parameters": [ + "Object", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementScale) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Save movement to calculate drift" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ScaleTravelled", + "-", + "round(1024 * Object.Variable(__ShakeObject_DisplacementScale) * Object.Variable(__ShakeObject_PercentTimeElapsedThisFrame)) / 1024" + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Stop shaking", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Stop shaking when the duration has been reached (or if the stop shaking function was called)" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "ObjectTimer" + }, + "parameters": [ + "Object", + "\"__ShakeObject_DurationTimer\"", + "Object.Variable(__ShakeObject_Duration)" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "-1" + ] + } + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeCounter", + "=", + "0" + ] + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Correct for drift and reset drift tracking variables", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move to correct any drift from previous shake" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerX", + "!=", + "0" + ] + }, + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerY", + "!=", + "0" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "MettreX" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_DisplacementTravelledX)" + ] + }, + { + "type": { + "value": "MettreY" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_DisplacementTravelledY)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerAngle", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_AngleTravelled)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_PowerScale", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ChangeScale" + }, + "parameters": [ + "Object", + "-", + "Object.Variable(__ShakeObject_ScaleTravelled)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Reset drift detection variables" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledX", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_DisplacementTravelledY", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_AngleTravelled", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ScaleTravelled", + "=", + "0" + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngleScale", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Stop shaking an object.", + "fullName": "Stop shaking an object", + "functionType": "Action", + "name": "StopShaking", + "sentence": "Stop shaking _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "ShakeObject::ShakeObject_PositionAngleScale::IsShaking" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "-1" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngleScale", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if an object is shaking.", + "fullName": "Check if an object is shaking", + "functionType": "Condition", + "name": "IsShaking", + "sentence": "_PARAM0_ is shaking", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarObjet" + }, + "parameters": [ + "Object", + "__ShakeObject_ShakeInProgress", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "ShakeObject::ShakeObject_PositionAngleScale", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "westboy31, Tristan Rhodes (https://victrisgames.itch.io/)", + "category": "Camera", + "extensionNamespace": "", + "fullName": "Camera shake", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXZlY3Rvci1kaWZmZXJlbmNlLWFiIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTMsMUMxLjg5LDEgMSwxLjg5IDEsM1Y1SDNWM0g1VjFIM003LDFWM0gxMFYxSDdNMTIsMVYzSDE0VjVIMTZWM0MxNiwxLjg5IDE1LjExLDEgMTQsMUgxMk0xLDdWMTBIM1Y3SDFNMTQsN0MxNCw3IDE0LDExLjY3IDE0LDE0QzExLjY3LDE0IDcsMTQgNywxNEM3LDE0IDcsMTggNywyMEM3LDIxLjExIDcuODksMjIgOSwyMkgyMEMyMS4xMSwyMiAyMiwyMS4xMSAyMiwyMFY5QzIyLDcuODkgMjEuMTEsNyAyMCw3QzE4LDcgMTQsNyAxNCw3TTE2LDlIMjBWMjBIOVYxNkgxNEMxNS4xMSwxNiAxNiwxNS4xMSAxNiwxNFY5TTEsMTJWMTRDMSwxNS4xMSAxLjg5LDE2IDMsMTZINVYxNEgzVjEySDFaIiAvPjwvc3ZnPg==", + "name": "CameraShake", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/vector-difference-ab.svg", + "shortDescription": "Shake layer cameras.", + "version": "3.0.2", + "description": [ + "Shake layer cameras with translation, rotation and zoom.", + "", + "- Short shaking can be used to give impact (explosion, hit)", + "- Shaking can go indefinitely to set an ambiance (engine vibration, earthquake, pulsing)", + "- Low frequency shaking allows to simulate slow moving objects (ship rocking back and forth)", + "", + "Release notes:", + "- Version 3.0.0", + " - No adaptation of the game events is needed.", + " - It fixes an issue when used with scrolling, the amplitude will feel bigger in this case.", + " - The shaking relies on noise which could feel a bit different.", + " - This extension can no longer do impulses. For this, another extension \"Camera impulse\" can be used." + ], + "origin": { + "identifier": "CameraShake", + "name": "gdevelop-extension-store" + }, + "tags": [ + "shaking", + "camera", + "effect", + "screen", + "shake", + "zoom", + "translate", + "rotate" + ], + "authorIds": [ + "gqDaZjCfevOOxBYkK6zlhtZnXCg1", + "IWykYNRvhCZBN3vEgKEbBPOR3Oc2", + "m4hBMBTUilft4s1V4FQQPakVDGx1" + ], + "dependencies": [], + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onSceneLoaded", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "CameraShake::SetLayerShakable" + }, + "parameters": [ + "", + "", + "\"\"", + "" + ] + }, + { + "type": { + "value": "CameraShake::SetDefaultShakingFrequency" + }, + "parameters": [ + "", + "12", + "" + ] + }, + { + "type": { + "value": "CameraShake::SetDefaultTranslationAmplitude" + }, + "parameters": [ + "", + "4", + "4", + "" + ] + }, + { + "type": { + "value": "CameraShake::SetDefaultRotationAmplitude" + }, + "parameters": [ + "", + "0", + "" + ] + }, + { + "type": { + "value": "CameraShake::SetDefaultZoomAmplitude" + }, + "parameters": [ + "", + "1", + "" + ] + } + ] + } + ], + "parameters": [], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onScenePostEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Step time counters." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.Time", + "+", + "TimeDelta()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CameraShake::IsShaking" + }, + "parameters": [ + "", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.EaseFactor", + "=", + "1" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "__CameraShake.Time", + "<", + "Variable(__CameraShake.StartEaseDuration)" + ] + }, + { + "type": { + "inverted": true, + "value": "VarScene" + }, + "parameters": [ + "__CameraShake.Time", + ">", + "Variable(__CameraShake.Duration) - Variable(__CameraShake.StopEaseDuration)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.EaseFactor", + "=", + "clamp(0, 1, Variable(__CameraShake.Time) / Variable(__CameraShake.StartEaseDuration))" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "__CameraShake.Time", + ">", + "Variable(__CameraShake.Duration) - Variable(__CameraShake.StopEaseDuration)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.EaseFactor", + "=", + "clamp(0, 1, (Variable(__CameraShake.Duration) - Variable(__CameraShake.Time)) / Variable(__CameraShake.StopEaseDuration))" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::ForEachChildVariable", + "iterableVariableName": "__CameraShake.Layers", + "valueIteratorVariableName": "__CameraShake.Layer", + "keyIteratorVariableName": "__CameraShake.LayerName", + "conditions": [ + { + "type": { + "value": "SceneVariableAsBoolean" + }, + "parameters": [ + "__CameraShake.Layers[VariableString(__CameraShake.LayerName)].Shakable", + "True" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarSceneTxt" + }, + "parameters": [ + "__CameraShake.ActualLayerName", + "=", + "VariableString(__CameraShake.LayerName)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarSceneTxt" + }, + "parameters": [ + "__CameraShake.LayerName", + "=", + "\"__BaseLayer\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarSceneTxt" + }, + "parameters": [ + "__CameraShake.ActualLayerName", + "=", + "\"\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Use user defined default values when there is no layer specific value set." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "CameraShake::SetFrequency" + }, + "parameters": [ + "", + "Variable(__CameraShake.DefaultFrequency)", + "\"\"", + "" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.AmplitudeX", + "=", + "Variable(__CameraShake.DefaultAmplitudeX)" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.AmplitudeY", + "=", + "Variable(__CameraShake.DefaultAmplitudeY)" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.AmplitudeAngle", + "=", + "Variable(__CameraShake.DefaultAmplitudeAngle)" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.AmplitudeZoom", + "=", + "Variable(__CameraShake.DefaultAmplitudeZoom)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VariableChildExists" + }, + "parameters": [ + "__CameraShake.Layer", + "\"Frequency\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "CameraShake::SetFrequency" + }, + "parameters": [ + "", + "Variable(__CameraShake.Layer.Frequency)", + "\"\"", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VariableChildExists" + }, + "parameters": [ + "__CameraShake.Layer", + "\"AmplitudeX\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.AmplitudeX", + "=", + "Variable(__CameraShake.Layer.AmplitudeX)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VariableChildExists" + }, + "parameters": [ + "__CameraShake.Layer", + "\"AmplitudeY\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.AmplitudeY", + "=", + "Variable(__CameraShake.Layer.AmplitudeY)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VariableChildExists" + }, + "parameters": [ + "__CameraShake.Layer", + "\"AmplitudeAngle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.AmplitudeAngle", + "=", + "Variable(__CameraShake.Layer.AmplitudeAngle)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VariableChildExists" + }, + "parameters": [ + "__CameraShake.Layer", + "\"AmplitudeZoom\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.AmplitudeZoom", + "=", + "Variable(__CameraShake.Layer.AmplitudeZoom)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Shake the layer camera.\nSave the camera displacement to revert it in onScenePostEvents." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "__CameraShake.AmplitudeX", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.Layers[VariableString(__CameraShake.LayerName)].CameraDeltaX", + "=", + "CameraShake::Noise2d(\"\", TimeFromStart(), 1000) * Variable(__CameraShake.AmplitudeX) * Variable(__CameraShake.EaseFactor)" + ] + }, + { + "type": { + "value": "SetCameraX" + }, + "parameters": [ + "", + "+", + "Variable(__CameraShake.Layers[VariableString(__CameraShake.LayerName)].CameraDeltaX)", + "VariableString(__CameraShake.ActualLayerName)", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "__CameraShake.AmplitudeY", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.Layers[VariableString(__CameraShake.LayerName)].CameraDeltaY", + "=", + "CameraShake::Noise2d(\"\", TimeFromStart(), 2000) * Variable(__CameraShake.AmplitudeY) * Variable(__CameraShake.EaseFactor)" + ] + }, + { + "type": { + "value": "SetCameraY" + }, + "parameters": [ + "", + "+", + "Variable(__CameraShake.Layers[VariableString(__CameraShake.LayerName)].CameraDeltaY)", + "VariableString(__CameraShake.ActualLayerName)", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "__CameraShake.AmplitudeAngle", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.Layers[VariableString(__CameraShake.LayerName)].CameraDeltaAngle", + "=", + "CameraShake::Noise2d(\"\", TimeFromStart(), 3000) * Variable(__CameraShake.AmplitudeAngle) * Variable(__CameraShake.EaseFactor)" + ] + }, + { + "type": { + "value": "RotateCamera" + }, + "parameters": [ + "", + "+", + "Variable(__CameraShake.Layers[VariableString(__CameraShake.LayerName)].CameraDeltaAngle)", + "VariableString(__CameraShake.ActualLayerName)", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "__CameraShake.AmplitudeZoom", + "!=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.Layers[VariableString(__CameraShake.LayerName)].CameraDeltaZoom", + "=", + "pow(Variable(__CameraShake.AmplitudeZoom), CameraShake::Noise2d(\"\", TimeFromStart(), 4000) * Variable(__CameraShake.EaseFactor))" + ] + }, + { + "type": { + "value": "ZoomCamera" + }, + "parameters": [ + "", + "CameraZoom(VariableString(__CameraShake.ActualLayerName), 0) * Variable(__CameraShake.Layers[VariableString(__CameraShake.LayerName)].CameraDeltaZoom)", + "VariableString(__CameraShake.ActualLayerName)", + "0" + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onScenePreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Revert the shaking." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CameraShake::IsShaking" + }, + "parameters": [ + "", + "" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::ForEachChildVariable", + "iterableVariableName": "__CameraShake.Layers", + "valueIteratorVariableName": "__CameraShake.Layer", + "keyIteratorVariableName": "__CameraShake.LayerName", + "conditions": [ + { + "type": { + "value": "SceneVariableAsBoolean" + }, + "parameters": [ + "__CameraShake.Layers[VariableString(__CameraShake.LayerName)].Shakable", + "True" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarSceneTxt" + }, + "parameters": [ + "__CameraShake.ActualLayerName", + "=", + "VariableString(__CameraShake.LayerName)" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarSceneTxt" + }, + "parameters": [ + "__CameraShake.LayerName", + "=", + "\"__BaseLayer\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarSceneTxt" + }, + "parameters": [ + "__CameraShake.ActualLayerName", + "=", + "\"\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "__CameraShake.AmplitudeX", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetCameraX" + }, + "parameters": [ + "", + "-", + "Variable(__CameraShake.Layers[VariableString(__CameraShake.LayerName)].CameraDeltaX)", + "VariableString(__CameraShake.ActualLayerName)", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "__CameraShake.AmplitudeY", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetCameraY" + }, + "parameters": [ + "", + "-", + "Variable(__CameraShake.Layers[VariableString(__CameraShake.LayerName)].CameraDeltaY)", + "VariableString(__CameraShake.ActualLayerName)", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "__CameraShake.AmplitudeAngle", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "RotateCamera" + }, + "parameters": [ + "", + "-", + "Variable(__CameraShake.Layers[VariableString(__CameraShake.LayerName)].CameraDeltaAngle)", + "VariableString(__CameraShake.ActualLayerName)", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "__CameraShake.AmplitudeZoom", + "!=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "ZoomCamera" + }, + "parameters": [ + "", + "CameraZoom(VariableString(__CameraShake.ActualLayerName), 0) / Variable(__CameraShake.Layers[VariableString(__CameraShake.LayerName)].CameraDeltaZoom)", + "VariableString(__CameraShake.ActualLayerName)", + "0" + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [], + "objectGroups": [] + }, + { + "description": "Shake the camera on layers chosen with configuration actions.", + "fullName": "Shake camera", + "functionType": "Action", + "name": "ShakeCamera", + "sentence": "Shake camera for _PARAM1_ seconds with _PARAM2_ seconds of easing to start and _PARAM3_ seconds to stop", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.Time", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.Duration", + "=", + "GetArgumentAsNumber(\"Duration\")" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.StartEaseDuration", + "=", + "GetArgumentAsNumber(\"StartEaseDuration\")" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.StopEaseDuration", + "=", + "GetArgumentAsNumber(\"StopEaseDuration\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "__CameraShake.Duration", + "<", + "Variable(__CameraShake.StartEaseDuration) + Variable(__CameraShake.StopEaseDuration)" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.StartEaseDuration", + "=", + "GetArgumentAsNumber(\"StartEaseDuration\") * Variable(__CameraShake.Duration) / (GetArgumentAsNumber(\"StartEaseDuration\") + GetArgumentAsNumber(\"StopEaseDuration\"))" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.StopEaseDuration", + "=", + "GetArgumentAsNumber(\"StopEaseDuration\") * Variable(__CameraShake.Duration) / (GetArgumentAsNumber(\"StartEaseDuration\") + GetArgumentAsNumber(\"StopEaseDuration\"))" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Duration (in seconds)", + "name": "Duration", + "type": "expression" + }, + { + "description": "Ease duration to start (in seconds)", + "name": "StartEaseDuration", + "type": "expression" + }, + { + "description": "Ease duration to stop (in seconds)", + "name": "StopEaseDuration", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Shake the camera on the specified layer, using one or more ways to shake (position, angle, zoom). This action is deprecated. Please use the other one with the same name.", + "fullName": "Shake camera (deprecated)", + "functionType": "Action", + "name": "CameraShake", + "private": true, + "sentence": "Shake camera on _PARAM3_ layer for _PARAM5_ seconds. Use an amplitude of _PARAM1_px on X axis and _PARAM2_px on Y axis, angle rotation amplitude _PARAM6_ degrees, and zoom amplitude _PARAM7_ percent. Wait _PARAM8_ seconds between shakes. Keep shaking until stopped: _PARAM9_", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Camera Shake", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "VariableClearChildren" + }, + "parameters": [ + "__CameraShake.Layers" + ] + }, + { + "type": { + "value": "CameraShake::SetLayerShakable" + }, + "parameters": [ + "", + "", + "GetArgumentAsString(\"Layer\")", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.Time", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarSceneTxt" + }, + "parameters": [ + "__CameraShake.Layer", + "=", + "GetArgumentAsString(\"Layer\")" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.Duration", + "=", + "GetArgumentAsNumber(\"Duration\")" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.StartEaseDuration", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.StopEaseDuration", + "=", + "GetArgumentAsNumber(\"Duration\")" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.DefaultAmplitudeX", + "=", + "abs(GetArgumentAsNumber(\"AmplitudeX\"))" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.DefaultAmplitudeY", + "=", + "abs(GetArgumentAsNumber(\"AmplitudeY\"))" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.DefaultAmplitudeAngle", + "=", + "GetArgumentAsNumber(\"AmplitudeAngle\")" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.DefaultAmplitudeZoom", + "=", + "1 + GetArgumentAsNumber(\"AmplitudeZoom\") / 100" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "GetArgumentAsNumber(\"ShakePeriod\")", + "!=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.DefaultFrequency", + "=", + "1 / GetArgumentAsNumber(\"ShakePeriod\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "GetArgumentAsNumber(\"ShakePeriod\")", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.DefaultFrequency", + "=", + "1 / 0.08" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Determine if the shake should keep going until stopped" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"ShakeForever\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.Duration", + "=", + "1234567890" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Add default values if none were provided" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "__CameraShake.Duration", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.Duration", + "=", + "0.5" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Amplitude of shaking on the X axis (in pixels)", + "name": "AmplitudeX", + "type": "expression" + }, + { + "description": "Amplitude of shaking on the Y axis (in pixels)", + "name": "AmplitudeY", + "type": "expression" + }, + { + "description": "Layer (base layer if empty)", + "name": "Layer", + "type": "layer" + }, + { + "description": "Camera index (Default: 0)", + "name": "Camera", + "type": "expression" + }, + { + "description": "Duration (in seconds) (Default: 0.5)", + "name": "Duration", + "type": "expression" + }, + { + "description": "Angle rotation amplitude (in degrees) (For example: 2)", + "name": "AmplitudeAngle", + "type": "expression" + }, + { + "description": "Zoom factor amplitude", + "name": "AmplitudeZoom", + "type": "expression" + }, + { + "description": "Period between shakes (in seconds) (Default: 0.08)", + "name": "ShakePeriod", + "type": "expression" + }, + { + "description": "Keep shaking until stopped", + "longDescription": "Duration value will be ignored", + "name": "ShakeForever", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Start shaking the camera indefinitely.", + "fullName": "Start camera shaking", + "functionType": "Action", + "name": "StartShaking", + "sentence": "Start shaking the camera with _PARAM1_ seconds of easing", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.Time", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.Duration", + "=", + "1234567890" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.StartEaseDuration", + "=", + "GetArgumentAsNumber(\"EaseDuration\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Ease duration (in seconds)", + "name": "EaseDuration", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Stop shaking the camera.", + "fullName": "Stop camera shaking", + "functionType": "Action", + "name": "StopShaking", + "sentence": "Stop shaking the camera with _PARAM1_ seconds of easing", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.Time", + "=", + "0" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.Duration", + "=", + "GetArgumentAsNumber(\"EaseDuration\")" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.StopEaseDuration", + "=", + "GetArgumentAsNumber(\"EaseDuration\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Ease duration (in seconds)", + "name": "EaseDuration", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Mark a layer as shakable.", + "fullName": "Shakable layer", + "functionType": "Action", + "group": "Camera shake configuration", + "name": "SetLayerShakable", + "sentence": "Mark the layer: _PARAM2_ as shakable: _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarSceneTxt" + }, + "parameters": [ + "__CameraShake.LayerName", + "=", + "GetArgumentAsString(\"Layer\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareStrings" + }, + "parameters": [ + "GetArgumentAsString(\"Layer\")", + "=", + "\"\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarSceneTxt" + }, + "parameters": [ + "__CameraShake.LayerName", + "=", + "\"__BaseLayer\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Shakable\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetSceneVariableAsBoolean" + }, + "parameters": [ + "__CameraShake.Layers[VariableString(__CameraShake.LayerName)].Shakable", + "=" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Shakable\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetSceneVariableAsBoolean" + }, + "parameters": [ + "__CameraShake.Layers[VariableString(__CameraShake.LayerName)].Shakable", + "True" + ] + } + ] + } + ], + "parameters": [ + { + "defaultValue": "yes", + "description": "Shakable", + "name": "Shakable", + "optional": true, + "type": "yesorno" + }, + { + "description": "Layer", + "name": "Layer", + "type": "layer" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the camera is shaking.", + "fullName": "Camera is shaking", + "functionType": "Condition", + "name": "IsShaking", + "sentence": "Camera is shaking", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "VarScene" + }, + "parameters": [ + "__CameraShake.Time", + "<", + "Variable(__CameraShake.Duration)" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [], + "objectGroups": [] + }, + { + "description": "Change the translation amplitude of the shaking (in pixels).", + "fullName": "Layer translation amplitude", + "functionType": "Action", + "group": "Camera shake configuration", + "name": "SetLayerTranslationAmplitude", + "sentence": "Change the translation amplitude of the shaking to _PARAM1_; _PARAM2_ (layer: _PARAM3_)", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarSceneTxt" + }, + "parameters": [ + "__CameraShake.LayerName", + "=", + "GetArgumentAsString(\"Layer\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareStrings" + }, + "parameters": [ + "GetArgumentAsString(\"Layer\")", + "=", + "\"\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarSceneTxt" + }, + "parameters": [ + "__CameraShake.LayerName", + "=", + "\"__BaseLayer\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.Layers[VariableString(__CameraShake.LayerName)].AmplitudeX", + "=", + "GetArgumentAsNumber(\"AmplitudeX\")" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.Layers[VariableString(__CameraShake.LayerName)].AmplitudeY", + "=", + "GetArgumentAsNumber(\"AmplitudeY\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Amplitude of shaking on the X axis (in pixels)", + "name": "AmplitudeX", + "type": "expression" + }, + { + "description": "Amplitude of shaking on the Y axis (in pixels)", + "name": "AmplitudeY", + "type": "expression" + }, + { + "description": "Layer", + "name": "Layer", + "type": "layer" + } + ], + "objectGroups": [] + }, + { + "description": "Change the rotation amplitude of the shaking (in degrees).", + "fullName": "Layer rotation amplitude", + "functionType": "Action", + "group": "Camera shake configuration", + "name": "SetLayerRotationAmplitude", + "sentence": "Change the rotation amplitude of the shaking to _PARAM1_ degrees (layer: _PARAM2_)", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarSceneTxt" + }, + "parameters": [ + "__CameraShake.LayerName", + "=", + "GetArgumentAsString(\"Layer\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareStrings" + }, + "parameters": [ + "GetArgumentAsString(\"Layer\")", + "=", + "\"\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarSceneTxt" + }, + "parameters": [ + "__CameraShake.LayerName", + "=", + "\"__BaseLayer\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.Layers[VariableString(__CameraShake.LayerName)].AmplitudeAngle", + "=", + "GetArgumentAsNumber(\"AmplitudeAngle\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Angle (in degree)", + "name": "AmplitudeAngle", + "type": "expression" + }, + { + "description": "Layer", + "name": "Layer", + "type": "layer" + } + ], + "objectGroups": [] + }, + { + "description": "Change the zoom factor amplitude of the shaking. The shaking will zoom and unzoom by this factor (for instance 1.0625 is a valid value).", + "fullName": "Layer zoom amplitude", + "functionType": "Action", + "group": "Camera shake configuration", + "name": "SetLayerZoomAmplitude", + "sentence": "Change the zoom factor amplitude of the shaking to _PARAM1_ (layer: _PARAM2_)", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarSceneTxt" + }, + "parameters": [ + "__CameraShake.LayerName", + "=", + "GetArgumentAsString(\"Layer\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareStrings" + }, + "parameters": [ + "GetArgumentAsString(\"Layer\")", + "=", + "\"\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarSceneTxt" + }, + "parameters": [ + "__CameraShake.LayerName", + "=", + "\"__BaseLayer\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.Layers[VariableString(__CameraShake.LayerName)].AmplitudeZoom", + "=", + "GetArgumentAsNumber(\"AmplitudeZoom\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Zoom factor", + "name": "AmplitudeZoom", + "type": "expression" + }, + { + "description": "Layer", + "name": "Layer", + "type": "layer" + } + ], + "objectGroups": [] + }, + { + "description": "Change the number of back and forth per seconds.", + "fullName": "Layer shaking frequency", + "functionType": "Action", + "group": "Camera shake configuration", + "name": "SetLayerShakingFrequency", + "sentence": "Change the shaking frequency to _PARAM1_ (layer: _PARAM2_)", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarSceneTxt" + }, + "parameters": [ + "__CameraShake.LayerName", + "=", + "GetArgumentAsString(\"Layer\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareStrings" + }, + "parameters": [ + "GetArgumentAsString(\"Layer\")", + "=", + "\"\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarSceneTxt" + }, + "parameters": [ + "__CameraShake.LayerName", + "=", + "\"__BaseLayer\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.Layers[VariableString(__CameraShake.LayerName)].Frequency", + "=", + "GetArgumentAsNumber(\"Frequency\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Frequency", + "name": "Frequency", + "type": "expression" + }, + { + "description": "Layer", + "name": "Layer", + "type": "layer" + } + ], + "objectGroups": [] + }, + { + "description": "Change the default translation amplitude of the shaking (in pixels).", + "fullName": "Default translation amplitude", + "functionType": "Action", + "group": "Camera shake configuration", + "name": "SetDefaultTranslationAmplitude", + "sentence": "Change the default translation amplitude of the shaking to _PARAM1_; _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.DefaultAmplitudeX", + "=", + "GetArgumentAsNumber(\"AmplitudeX\")" + ] + }, + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.DefaultAmplitudeY", + "=", + "GetArgumentAsNumber(\"AmplitudeY\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Amplitude of shaking on the X axis (in pixels)", + "name": "AmplitudeX", + "type": "expression" + }, + { + "description": "Amplitude of shaking on the Y axis (in pixels)", + "name": "AmplitudeY", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the default rotation amplitude of the shaking (in degrees).", + "fullName": "Default rotation amplitude", + "functionType": "Action", + "group": "Camera shake configuration", + "name": "SetDefaultRotationAmplitude", + "sentence": "Change the default rotation amplitude of the shaking to _PARAM1_ degrees", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.DefaultAmplitudeAngle", + "=", + "GetArgumentAsNumber(\"AmplitudeAngle\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Angle (in degree)", + "name": "AmplitudeAngle", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the default zoom factor amplitude of the shaking. The shaking will zoom and unzoom by this factor (for instance 1.0625 is a valid value).", + "fullName": "Default zoom amplitude", + "functionType": "Action", + "group": "Camera shake configuration", + "name": "SetDefaultZoomAmplitude", + "sentence": "Change the default zoom factor amplitude of the shaking to _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.DefaultAmplitudeZoom", + "=", + "GetArgumentAsNumber(\"AmplitudeZoom\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Zoom factor", + "name": "AmplitudeZoom", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the default number of back and forth per seconds.", + "fullName": "Default shaking frequency", + "functionType": "Action", + "group": "Camera shake configuration", + "name": "SetDefaultShakingFrequency", + "sentence": "Change the default shaking frequency to _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarScene" + }, + "parameters": [ + "__CameraShake.DefaultFrequency", + "=", + "GetArgumentAsNumber(\"Frequency\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Frequency", + "name": "Frequency", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "onFirstSceneLoaded", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "gdjs._cameraShakeExtension = gdjs._cameraShakeExtension || {};", + "", + "/** Noise generator manager. */", + "gdjs._cameraShakeExtension.NoiseManager = /** @class */ (function () {", + " /**", + " * Create the manager of noise generators.", + " */", + " function NoiseManager() {", + " this.seed = gdjs.randomInRange(1, Number.MAX_SAFE_INTEGER);", + " /** @type {Map} */", + " this.generators = new Map();", + " }", + "", + " /**", + " * @param name {string}", + " * @return {gdjs._cameraShakeExtension.NoiseGenerator}", + " */", + " NoiseManager.prototype.getGenerator = function (name) {", + " let generator = this.generators.get(name);", + " if (!generator) {", + " generator = new gdjs._cameraShakeExtension.NoiseGenerator(name + this.seed);", + " this.generators.set(name, generator);", + " }", + " return generator;", + " }", + "", + " /**", + " * @param seed {number}", + " */", + " NoiseManager.prototype.setSeed = function (seed) {", + " this.seed = seed;", + " this.generators.forEach(generator => generator.setSeed(seed));", + " }", + "", + " /**", + " * @param name {string}", + " */", + " NoiseManager.prototype.deleteGenerator = function (name) {", + " this.generators.delete(name);", + " }", + "", + " /**", + " */", + " NoiseManager.prototype.deleteAllGenerators = function () {", + " this.generators.clear();", + " }", + "", + " return NoiseManager;", + "}());", + "", + "/** Noise generator with octaves. */", + "gdjs._cameraShakeExtension.NoiseGenerator = /** @class */ (function () {", + " /**", + " * Create a noise generator with a seed.", + " * @param seed {string}", + " */", + " function NoiseGenerator(seed) {", + " this.simplexNoise = new gdjs._cameraShakeExtension.SimplexNoise(seed);", + " this.frequency = 1;", + " this.octaves = 1;", + " this.persistence = 0.5;", + " this.lacunarity = 2;", + " this.xLoopPeriod = 0;", + " this.yLoopPeriod = 0;", + " }", + "", + " /**", + " * @param seed {string}", + " */", + " NoiseGenerator.prototype.setSeed = function(seed) {", + " this.simplexNoise = new gdjs._cameraShakeExtension.SimplexNoise(seed);", + " }", + "", + " /**", + " * @param x {float}", + " * @param y {float}", + " * @param z {float} optionnal", + " * @param w {float} optionnal", + " * @return {float}", + " */", + " NoiseGenerator.prototype.noise = function (x, y, z, w) {", + " if (this.xLoopPeriod && this.yLoopPeriod) {", + " const circleRatioX = 2 * Math.PI / this.xLoopPeriod;", + " const circleRatioY = 2 * Math.PI / this.yLoopPeriod;", + " const angleX = circleRatioX * x;", + " const angleY = circleRatioY * y;", + " x = Math.cos(angleX) / circleRatioX;", + " y = Math.sin(angleX) / circleRatioX;", + " z = Math.cos(angleY) / circleRatioY;", + " w = Math.sin(angleY) / circleRatioY;", + " }", + " else if (this.xLoopPeriod) {", + " const circleRatio = 2 * Math.PI / this.xLoopPeriod;", + " const angleX = circleRatio * x;", + " w = z;", + " z = y; ", + " x = Math.cos(angleX) / circleRatio;", + " y = Math.sin(angleX) / circleRatio;", + " }", + " else if (this.yLoopPeriod) {", + " const circleRatio = 2 * Math.PI / this.xLoopPeriod;", + " const angleX = circleRatio * x;", + " w = z;", + " // Make the circle perimeter equals to the looping period", + " // to keep the same perceived frequency with or without looping.", + " y = Math.cos(angleX) / circleRatio;", + " z = Math.sin(angleX) / circleRatio;", + " }", + " let noiseFunction = this.simplexNoise.noise4D.bind(this.simplexNoise);", + " if (z === undefined) {", + " noiseFunction = this.simplexNoise.noise2D.bind(this.simplexNoise);", + " }", + " else if (w === undefined) {", + " noiseFunction = this.simplexNoise.noise3D.bind(this.simplexNoise);", + " }", + " let frequency = this.frequency;", + " let noiseSum = 0;", + " let amplitudeSum = 0;", + " let amplitude = 1;", + " for (let i = 0; i < this.octaves; i++) {", + " noiseSum += noiseFunction(x * frequency, y * frequency, z * frequency, w * frequency) * amplitude;", + " amplitudeSum += Math.abs(amplitude);", + " amplitude *= this.persistence;", + " frequency *= this.lacunarity;", + " }", + " return noiseSum / amplitudeSum;", + " }", + "", + " return NoiseGenerator;", + "}());", + "", + "/*", + "A fast javascript implementation of simplex noise by Jonas Wagner", + "https://github.com/jwagner/simplex-noise.js", + "", + "Based on a speed-improved simplex noise algorithm for 2D, 3D and 4D in Java.", + "Which is based on example code by Stefan Gustavson (stegu@itn.liu.se).", + "With Optimisations by Peter Eastman (peastman@drizzle.stanford.edu).", + "Better rank ordering method by Stefan Gustavson in 2012.", + "", + " Copyright (c) 2021 Jonas Wagner", + "", + " Permission is hereby granted, free of charge, to any person obtaining a copy", + " of this software and associated documentation files (the \"Software\"), to deal", + " in the Software without restriction, including without limitation the rights", + " to use, copy, modify, merge, publish, distribute, sublicense, and/or sell", + " copies of the Software, and to permit persons to whom the Software is", + " furnished to do so, subject to the following conditions:", + "", + " The above copyright notice and this permission notice shall be included in all", + " copies or substantial portions of the Software.", + "", + " THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR", + " IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", + " FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE", + " AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", + " LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,", + " OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE", + " SOFTWARE.", + " */", + "", + "const F2 = 0.5 * (Math.sqrt(3.0) - 1.0);", + "const G2 = (3.0 - Math.sqrt(3.0)) / 6.0;", + "const F3 = 1.0 / 3.0;", + "const G3 = 1.0 / 6.0;", + "const F4 = (Math.sqrt(5.0) - 1.0) / 4.0;", + "const G4 = (5.0 - Math.sqrt(5.0)) / 20.0;", + "const grad3 = new Float32Array([1, 1, 0,", + " -1, 1, 0,", + " 1, -1, 0,", + " -1, -1, 0,", + " 1, 0, 1,", + " -1, 0, 1,", + " 1, 0, -1,", + " -1, 0, -1,", + " 0, 1, 1,", + " 0, -1, 1,", + " 0, 1, -1,", + " 0, -1, -1]);", + "const grad4 = new Float32Array([0, 1, 1, 1, 0, 1, 1, -1, 0, 1, -1, 1, 0, 1, -1, -1,", + " 0, -1, 1, 1, 0, -1, 1, -1, 0, -1, -1, 1, 0, -1, -1, -1,", + " 1, 0, 1, 1, 1, 0, 1, -1, 1, 0, -1, 1, 1, 0, -1, -1,", + " -1, 0, 1, 1, -1, 0, 1, -1, -1, 0, -1, 1, -1, 0, -1, -1,", + " 1, 1, 0, 1, 1, 1, 0, -1, 1, -1, 0, 1, 1, -1, 0, -1,", + " -1, 1, 0, 1, -1, 1, 0, -1, -1, -1, 0, 1, -1, -1, 0, -1,", + " 1, 1, 1, 0, 1, 1, -1, 0, 1, -1, 1, 0, 1, -1, -1, 0,", + " -1, 1, 1, 0, -1, 1, -1, 0, -1, -1, 1, 0, -1, -1, -1, 0]);", + "", + "/** Deterministic simplex noise generator suitable for 2D, 3D and 4D spaces. */", + "gdjs._cameraShakeExtension.SimplexNoise = /** @class */ (function () {", + " /**", + " * Creates a new `SimplexNoise` instance.", + " * This involves some setup. You can save a few cpu cycles by reusing the same instance.", + " * @param {(() => number)|string|number} randomOrSeed A random number generator or a seed (string|number).", + " * Defaults to Math.random (random irreproducible initialization).", + " */", + " function SimplexNoise(randomOrSeed) {", + " if (randomOrSeed === void 0) { randomOrSeed = Math.random; }", + " const random = typeof randomOrSeed == 'function' ? randomOrSeed : alea(randomOrSeed);", + " this.p = buildPermutationTable(random);", + " this.perm = new Uint8Array(512);", + " this.permMod12 = new Uint8Array(512);", + " for (let i = 0; i < 512; i++) {", + " this.perm[i] = this.p[i & 255];", + " this.permMod12[i] = this.perm[i] % 12;", + " }", + " }", + "", + " /**", + " * Samples the noise field in 2 dimensions", + " * @param {number} x", + " * @param {number} y", + " * @returns a number in the interval [-1, 1]", + " */", + " SimplexNoise.prototype.noise2D = function (x, y) {", + " const permMod12 = this.permMod12;", + " const perm = this.perm;", + " let n0 = 0; // Noise contributions from the three corners", + " let n1 = 0;", + " let n2 = 0;", + " // Skew the input space to determine which simplex cell we're in", + " const s = (x + y) * F2; // Hairy factor for 2D", + " const i = Math.floor(x + s);", + " const j = Math.floor(y + s);", + " const t = (i + j) * G2;", + " const X0 = i - t; // Unskew the cell origin back to (x,y) space", + " const Y0 = j - t;", + " const x0 = x - X0; // The x,y distances from the cell origin", + " const y0 = y - Y0;", + " // For the 2D case, the simplex shape is an equilateral triangle.", + " // Determine which simplex we are in.", + " let i1, j1; // Offsets for second (middle) corner of simplex in (i,j) coords", + " if (x0 > y0) {", + " i1 = 1;", + " j1 = 0;", + " } // lower triangle, XY order: (0,0)->(1,0)->(1,1)", + " else {", + " i1 = 0;", + " j1 = 1;", + " } // upper triangle, YX order: (0,0)->(0,1)->(1,1)", + " // A step of (1,0) in (i,j) means a step of (1-c,-c) in (x,y), and", + " // a step of (0,1) in (i,j) means a step of (-c,1-c) in (x,y), where", + " // c = (3-sqrt(3))/6", + " const x1 = x0 - i1 + G2; // Offsets for middle corner in (x,y) unskewed coords", + " const y1 = y0 - j1 + G2;", + " const x2 = x0 - 1.0 + 2.0 * G2; // Offsets for last corner in (x,y) unskewed coords", + " const y2 = y0 - 1.0 + 2.0 * G2;", + " // Work out the hashed gradient indices of the three simplex corners", + " const ii = i & 255;", + " const jj = j & 255;", + " // Calculate the contribution from the three corners", + " let t0 = 0.5 - x0 * x0 - y0 * y0;", + " if (t0 >= 0) {", + " const gi0 = permMod12[ii + perm[jj]] * 3;", + " t0 *= t0;", + " n0 = t0 * t0 * (grad3[gi0] * x0 + grad3[gi0 + 1] * y0); // (x,y) of grad3 used for 2D gradient", + " }", + " let t1 = 0.5 - x1 * x1 - y1 * y1;", + " if (t1 >= 0) {", + " const gi1 = permMod12[ii + i1 + perm[jj + j1]] * 3;", + " t1 *= t1;", + " n1 = t1 * t1 * (grad3[gi1] * x1 + grad3[gi1 + 1] * y1);", + " }", + " let t2 = 0.5 - x2 * x2 - y2 * y2;", + " if (t2 >= 0) {", + " const gi2 = permMod12[ii + 1 + perm[jj + 1]] * 3;", + " t2 *= t2;", + " n2 = t2 * t2 * (grad3[gi2] * x2 + grad3[gi2 + 1] * y2);", + " }", + " // Add contributions from each corner to get the final noise value.", + " // The result is scaled to return values in the interval [-1,1].", + " return 70.0 * (n0 + n1 + n2);", + " }", + "", + " /**", + " * Samples the noise field in 3 dimensions", + " * @param {number} x", + " * @param {number} y", + " * @param {number} z", + " * @returns a number in the interval [-1, 1]", + " */", + " SimplexNoise.prototype.noise3D = function (x, y, z) {", + " const permMod12 = this.permMod12;", + " const perm = this.perm;", + " let n0, n1, n2, n3; // Noise contributions from the four corners", + " // Skew the input space to determine which simplex cell we're in", + " const s = (x + y + z) * F3; // Very nice and simple skew factor for 3D", + " const i = Math.floor(x + s);", + " const j = Math.floor(y + s);", + " const k = Math.floor(z + s);", + " const t = (i + j + k) * G3;", + " const X0 = i - t; // Unskew the cell origin back to (x,y,z) space", + " const Y0 = j - t;", + " const Z0 = k - t;", + " const x0 = x - X0; // The x,y,z distances from the cell origin", + " const y0 = y - Y0;", + " const z0 = z - Z0;", + " // For the 3D case, the simplex shape is a slightly irregular tetrahedron.", + " // Determine which simplex we are in.", + " let i1, j1, k1; // Offsets for second corner of simplex in (i,j,k) coords", + " let i2, j2, k2; // Offsets for third corner of simplex in (i,j,k) coords", + " if (x0 >= y0) {", + " if (y0 >= z0) {", + " i1 = 1;", + " j1 = 0;", + " k1 = 0;", + " i2 = 1;", + " j2 = 1;", + " k2 = 0;", + " } // X Y Z order", + " else if (x0 >= z0) {", + " i1 = 1;", + " j1 = 0;", + " k1 = 0;", + " i2 = 1;", + " j2 = 0;", + " k2 = 1;", + " } // X Z Y order", + " else {", + " i1 = 0;", + " j1 = 0;", + " k1 = 1;", + " i2 = 1;", + " j2 = 0;", + " k2 = 1;", + " } // Z X Y order", + " }", + " else { // x0 y0)", + " rankx++;", + " else", + " ranky++;", + " if (x0 > z0)", + " rankx++;", + " else", + " rankz++;", + " if (x0 > w0)", + " rankx++;", + " else", + " rankw++;", + " if (y0 > z0)", + " ranky++;", + " else", + " rankz++;", + " if (y0 > w0)", + " ranky++;", + " else", + " rankw++;", + " if (z0 > w0)", + " rankz++;", + " else", + " rankw++;", + " // simplex[c] is a 4-vector with the numbers 0, 1, 2 and 3 in some order.", + " // Many values of c will never occur, since e.g. x>y>z>w makes x= 3 ? 1 : 0;", + " const j1 = ranky >= 3 ? 1 : 0;", + " const k1 = rankz >= 3 ? 1 : 0;", + " const l1 = rankw >= 3 ? 1 : 0;", + " // The integer offsets for the third simplex corner", + " const i2 = rankx >= 2 ? 1 : 0;", + " const j2 = ranky >= 2 ? 1 : 0;", + " const k2 = rankz >= 2 ? 1 : 0;", + " const l2 = rankw >= 2 ? 1 : 0;", + " // The integer offsets for the fourth simplex corner", + " const i3 = rankx >= 1 ? 1 : 0;", + " const j3 = ranky >= 1 ? 1 : 0;", + " const k3 = rankz >= 1 ? 1 : 0;", + " const l3 = rankw >= 1 ? 1 : 0;", + " // The fifth corner has all coordinate offsets = 1, so no need to compute that.", + " const x1 = x0 - i1 + G4; // Offsets for second corner in (x,y,z,w) coords", + " const y1 = y0 - j1 + G4;", + " const z1 = z0 - k1 + G4;", + " const w1 = w0 - l1 + G4;", + " const x2 = x0 - i2 + 2.0 * G4; // Offsets for third corner in (x,y,z,w) coords", + " const y2 = y0 - j2 + 2.0 * G4;", + " const z2 = z0 - k2 + 2.0 * G4;", + " const w2 = w0 - l2 + 2.0 * G4;", + " const x3 = x0 - i3 + 3.0 * G4; // Offsets for fourth corner in (x,y,z,w) coords", + " const y3 = y0 - j3 + 3.0 * G4;", + " const z3 = z0 - k3 + 3.0 * G4;", + " const w3 = w0 - l3 + 3.0 * G4;", + " const x4 = x0 - 1.0 + 4.0 * G4; // Offsets for last corner in (x,y,z,w) coords", + " const y4 = y0 - 1.0 + 4.0 * G4;", + " const z4 = z0 - 1.0 + 4.0 * G4;", + " const w4 = w0 - 1.0 + 4.0 * G4;", + " // Work out the hashed gradient indices of the five simplex corners", + " const ii = i & 255;", + " const jj = j & 255;", + " const kk = k & 255;", + " const ll = l & 255;", + " // Calculate the contribution from the five corners", + " let t0 = 0.6 - x0 * x0 - y0 * y0 - z0 * z0 - w0 * w0;", + " if (t0 < 0)", + " n0 = 0.0;", + " else {", + " const gi0 = (perm[ii + perm[jj + perm[kk + perm[ll]]]] % 32) * 4;", + " t0 *= t0;", + " n0 = t0 * t0 * (grad4[gi0] * x0 + grad4[gi0 + 1] * y0 + grad4[gi0 + 2] * z0 + grad4[gi0 + 3] * w0);", + " }", + " let t1 = 0.6 - x1 * x1 - y1 * y1 - z1 * z1 - w1 * w1;", + " if (t1 < 0)", + " n1 = 0.0;", + " else {", + " const gi1 = (perm[ii + i1 + perm[jj + j1 + perm[kk + k1 + perm[ll + l1]]]] % 32) * 4;", + " t1 *= t1;", + " n1 = t1 * t1 * (grad4[gi1] * x1 + grad4[gi1 + 1] * y1 + grad4[gi1 + 2] * z1 + grad4[gi1 + 3] * w1);", + " }", + " let t2 = 0.6 - x2 * x2 - y2 * y2 - z2 * z2 - w2 * w2;", + " if (t2 < 0)", + " n2 = 0.0;", + " else {", + " const gi2 = (perm[ii + i2 + perm[jj + j2 + perm[kk + k2 + perm[ll + l2]]]] % 32) * 4;", + " t2 *= t2;", + " n2 = t2 * t2 * (grad4[gi2] * x2 + grad4[gi2 + 1] * y2 + grad4[gi2 + 2] * z2 + grad4[gi2 + 3] * w2);", + " }", + " let t3 = 0.6 - x3 * x3 - y3 * y3 - z3 * z3 - w3 * w3;", + " if (t3 < 0)", + " n3 = 0.0;", + " else {", + " const gi3 = (perm[ii + i3 + perm[jj + j3 + perm[kk + k3 + perm[ll + l3]]]] % 32) * 4;", + " t3 *= t3;", + " n3 = t3 * t3 * (grad4[gi3] * x3 + grad4[gi3 + 1] * y3 + grad4[gi3 + 2] * z3 + grad4[gi3 + 3] * w3);", + " }", + " let t4 = 0.6 - x4 * x4 - y4 * y4 - z4 * z4 - w4 * w4;", + " if (t4 < 0)", + " n4 = 0.0;", + " else {", + " const gi4 = (perm[ii + 1 + perm[jj + 1 + perm[kk + 1 + perm[ll + 1]]]] % 32) * 4;", + " t4 *= t4;", + " n4 = t4 * t4 * (grad4[gi4] * x4 + grad4[gi4 + 1] * y4 + grad4[gi4 + 2] * z4 + grad4[gi4 + 3] * w4);", + " }", + " // Sum up and scale the result to cover the range [-1,1]", + " return 27.0 * (n0 + n1 + n2 + n3 + n4);", + " };", + "", + " /**", + " * Builds a random permutation table.", + " * This is exported only for (internal) testing purposes.", + " * Do not rely on this export.", + " * @param {() => number} random", + " * @private", + " */", + " function buildPermutationTable(random) {", + " const p = new Uint8Array(256);", + " for (let i = 0; i < 256; i++) {", + " p[i] = i;", + " }", + " for (let i = 0; i < 255; i++) {", + " const r = i + ~~(random() * (256 - i));", + " const aux = p[i];", + " p[i] = p[r];", + " p[r] = aux;", + " }", + " return p;", + " }", + "", + " /*", + " The ALEA PRNG and masher code used by simplex-noise.js", + " is based on code by Johannes Baagøe, modified by Jonas Wagner.", + " See alea.md for the full license.", + " @param {string|number} seed", + " */", + " function alea(seed) {", + " let s0 = 0;", + " let s1 = 0;", + " let s2 = 0;", + " let c = 1;", + " const mash = masher();", + " s0 = mash(' ');", + " s1 = mash(' ');", + " s2 = mash(' ');", + " s0 -= mash(seed);", + " if (s0 < 0) {", + " s0 += 1;", + " }", + " s1 -= mash(seed);", + " if (s1 < 0) {", + " s1 += 1;", + " }", + " s2 -= mash(seed);", + " if (s2 < 0) {", + " s2 += 1;", + " }", + " return function () {", + " const t = 2091639 * s0 + c * 2.3283064365386963e-10; // 2^-32", + " s0 = s1;", + " s1 = s2;", + " return s2 = t - (c = t | 0);", + " };", + " }", + "", + " function masher() {", + " let n = 0xefc8249d;", + " return function (data) {", + " data = data.toString();", + " for (let i = 0; i < data.length; i++) {", + " n += data.charCodeAt(i);", + " let h = 0.02519603282416938 * n;", + " n = h >>> 0;", + " h -= n;", + " h *= n;", + " n = h >>> 0;", + " h -= n;", + " n += h * 0x100000000; // 2^32", + " }", + " return (n >>> 0) * 2.3283064365386963e-10; // 2^-32", + " };", + " }", + " return SimplexNoise;", + "}());", + "", + "gdjs._cameraShakeExtension.noiseManager = new gdjs._cameraShakeExtension.NoiseManager();" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [], + "objectGroups": [] + }, + { + "description": "Generate a number from 2 dimensional simplex noise.", + "fullName": "2D noise", + "functionType": "Expression", + "name": "Noise2d", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "const x = eventsFunctionContext.getArgument(\"X\");\r", + "const y = eventsFunctionContext.getArgument(\"Y\");\r", + "\r", + "eventsFunctionContext.returnValue = gdjs._cameraShakeExtension.noiseManager.getGenerator(name).noise(x, y);" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Generator name", + "name": "Name", + "type": "string" + }, + { + "description": "X coordinate", + "name": "X", + "type": "expression" + }, + { + "description": "Y coordinate", + "name": "Y", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Generate a number from 3 dimensional simplex noise.", + "fullName": "3D noise", + "functionType": "Expression", + "name": "Noise3d", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "const x = eventsFunctionContext.getArgument(\"X\");\r", + "const y = eventsFunctionContext.getArgument(\"Y\");\r", + "const z = eventsFunctionContext.getArgument(\"Z\");\r", + "\r", + "eventsFunctionContext.returnValue = gdjs._cameraShakeExtension.noiseManager.getGenerator(name).noise(x, y, z);" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Generator name", + "name": "Name", + "type": "string" + }, + { + "description": "X coordinate", + "name": "X", + "type": "expression" + }, + { + "description": "Y coordinate", + "name": "Y", + "type": "expression" + }, + { + "description": "Z coordinate", + "name": "Z", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Generate a number from 4 dimensional simplex noise.", + "fullName": "4D noise", + "functionType": "Expression", + "name": "Noise4d", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "const x = eventsFunctionContext.getArgument(\"X\");\r", + "const y = eventsFunctionContext.getArgument(\"Y\");\r", + "const z = eventsFunctionContext.getArgument(\"Z\");\r", + "const w = eventsFunctionContext.getArgument(\"W\");\r", + "\r", + "eventsFunctionContext.returnValue = gdjs._cameraShakeExtension.noiseManager.getGenerator(name).noise(x, y, z, w);" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Generator name", + "name": "Name", + "type": "string" + }, + { + "description": "X coordinate", + "name": "X", + "type": "expression" + }, + { + "description": "Y coordinate", + "name": "Y", + "type": "expression" + }, + { + "description": "Z coordinate", + "name": "Z", + "type": "expression" + }, + { + "description": "W coordinate", + "name": "W", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Create a noise generator with default settings (frequency = 1, octaves = 1, persistence = 0.5, lacunarity = 2).", + "fullName": "Create a noise generator", + "functionType": "Action", + "name": "Create", + "private": true, + "sentence": "Create a noise generator named _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "gdjs._cameraShakeExtension.noiseManager.getGenerator(name);" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Delete a noise generator and loose its settings.", + "fullName": "Delete a noise generator", + "functionType": "Action", + "name": "Delete", + "private": true, + "sentence": "Delete _PARAM1_ noise generator", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "gdjs._cameraShakeExtension.noiseManager.deleteGenerator(name);" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Delete all noise generators and loose their settings.", + "fullName": "Delete all noise generators", + "functionType": "Action", + "name": "DeleteAll", + "private": true, + "sentence": "Delete all noise generators", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "gdjs._cameraShakeExtension.noiseManager.deleteAllGenerators();", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [], + "objectGroups": [] + }, + { + "description": "The seed is a number used to generate the random noise. Setting the same seed will result in the same random noise generation. It's for example useful to generate the same world, by saving this seed value and reusing it later to generate again a world.", + "fullName": "Noise seed", + "functionType": "Action", + "name": "SetSeed", + "private": true, + "sentence": "Change the noise seed to _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "gdjs._cameraShakeExtension.noiseManager.setSeed(eventsFunctionContext.getArgument(\"Seed\"));", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Seed", + "longDescription": "15 digits numbers maximum", + "name": "Seed", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the looping period on X used for noise generation. The noise will wrap-around on X.", + "fullName": "Noise looping period on X", + "functionType": "Action", + "name": "SetLoopPeriodX", + "private": true, + "sentence": "Change the looping period on X of _PARAM2_: _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "gdjs._cameraShakeExtension.noiseManager.getGenerator(name).xLoopPeriod = eventsFunctionContext.getArgument(\"LoopPeriod\");" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Looping period on X", + "name": "LoopPeriod", + "type": "expression" + }, + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Change the looping period on Y used for noise generation. The noise will wrap-around on Y.", + "fullName": "Noise looping period on Y", + "functionType": "Action", + "name": "SetLoopPeriodY", + "private": true, + "sentence": "Change the looping period on Y of _PARAM2_: _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "gdjs._cameraShakeExtension.noiseManager.getGenerator(name).yLoopPeriod = eventsFunctionContext.getArgument(\"LoopPeriod\");" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": true + } + ], + "parameters": [ + { + "description": "Looping period on Y", + "name": "LoopPeriod", + "type": "expression" + }, + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Change the base frequency used for noise generation. A lower frequency will zoom in the noise.", + "fullName": "Noise base frequency", + "functionType": "Action", + "name": "SetFrequency", + "private": true, + "sentence": "Change the noise frequency of _PARAM2_: _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "gdjs._cameraShakeExtension.noiseManager.getGenerator(name).frequency = eventsFunctionContext.getArgument(\"Frequency\");" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Frequency", + "name": "Frequency", + "type": "expression" + }, + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Change the number of octaves used for noise generation. It can be seen as layers of noise with different zoom.", + "fullName": "Noise octaves", + "functionType": "Action", + "name": "SetOctaves", + "private": true, + "sentence": "Change the number of noise octaves of _PARAM2_: _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "gdjs._cameraShakeExtension.noiseManager.getGenerator(name).octaves = eventsFunctionContext.getArgument(\"Octaves\");" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Octaves", + "name": "Octaves", + "type": "expression" + }, + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Change the persistence used for noise generation. At its default value \"0.5\", it halves the noise amplitude at each octave.", + "fullName": "Noise persistence", + "functionType": "Action", + "name": "SetPersistence", + "private": true, + "sentence": "Change the noise persistence of _PARAM2_: _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "gdjs._cameraShakeExtension.noiseManager.getGenerator(name).persistence = eventsFunctionContext.getArgument(\"Persistence\");" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Persistence", + "name": "Persistence", + "type": "expression" + }, + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "Change the lacunarity used for noise generation. At its default value \"2\", it doubles the frequency at each octave.", + "fullName": "Noise lacunarity", + "functionType": "Action", + "name": "SetLacunarity", + "private": true, + "sentence": "Change the noise lacunarity of _PARAM2_: _PARAM1_", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "gdjs._cameraShakeExtension.noiseManager.getGenerator(name).lacunarity = eventsFunctionContext.getArgument(\"Lacunarity\");" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "parameters": [ + { + "description": "Lacunarity", + "name": "Lacunarity", + "type": "expression" + }, + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "The seed used for noise generation.", + "fullName": "Noise seed", + "functionType": "Expression", + "name": "Seed", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": "eventsFunctionContext.returnValue = gdjs._cameraShakeExtension.noiseManager.seed;", + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [], + "objectGroups": [] + }, + { + "description": "The base frequency used for noise generation.", + "fullName": "Noise base frequency", + "functionType": "Expression", + "name": "Frequency", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "eventsFunctionContext.returnValue = gdjs._cameraShakeExtension.noiseManager.getGenerator(name).frequency;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "The number of octaves used for noise generation.", + "fullName": "Noise octaves number", + "functionType": "Expression", + "name": "Octaves", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "eventsFunctionContext.returnValue = gdjs._cameraShakeExtension.noiseManager.getGenerator(name).octaves;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "The persistence used for noise generation.", + "fullName": "Noise persistence", + "functionType": "Expression", + "name": "Persistence", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "eventsFunctionContext.returnValue = gdjs._cameraShakeExtension.noiseManager.getGenerator(name).persistence;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + }, + { + "description": "The lacunarity used for noise generation.", + "fullName": "Noise lacunarity", + "functionType": "Expression", + "name": "Lacunarity", + "private": true, + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::JsCode", + "inlineCode": [ + "const name = eventsFunctionContext.getArgument(\"Name\");\r", + "\r", + "eventsFunctionContext.returnValue = gdjs._cameraShakeExtension.noiseManager.getGenerator(name).lacunarity;" + ], + "parameterObjects": "", + "useStrict": true, + "eventsSheetExpanded": false + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Generator name", + "name": "Name", + "type": "string" + } + ], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [], + "eventsBasedObjects": [] + }, + { + "author": "@4ian", + "category": "Game mechanic", + "extensionNamespace": "", + "fullName": "Health points and damage", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWhlYXJ0LWhhbGYtZnVsbCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xNi41LDVDMTUsNSAxMy41OCw1LjkxIDEzLDcuMlYxNy43NEMxNy4yNSwxMy44NyAyMCwxMS4yIDIwLDguNUMyMCw2LjUgMTguNSw1IDE2LjUsNU0xNi41LDNDMTkuNTgsMyAyMiw1LjQxIDIyLDguNUMyMiwxMi4yNyAxOC42LDE1LjM2IDEzLjQ1LDIwLjAzTDEyLDIxLjM1TDEwLjU1LDIwLjAzQzUuNCwxNS4zNiAyLDEyLjI3IDIsOC41QzIsNS40MSA0LjQyLDMgNy41LDNDOS4yNCwzIDEwLjkxLDMuODEgMTIsNS4wOEMxMy4wOSwzLjgxIDE0Ljc2LDMgMTYuNSwzWiIgLz48L3N2Zz4=", + "name": "Health", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/heart-half-full.svg", + "shortDescription": "Manage health points and damage, including a protective shield and armor.", + "version": "0.3.0", + "description": [ + "Manage health points including a protective shield and armor. Health can be assigned to players, enemies, NPCs, or even inanimate objects such as breaking doors and mining rocks.", + "", + "Damage calculations are performed in this order:", + "", + "Incoming Damage -> Is Damage Cooldown active? -> Chance to Dodge -> Flat Damage Reduction -> Percent Damage Reduction -> Damage to Shield -> Damage to Health", + "", + "How to use:", + "", + "- Set desired values in behavior properties", + "- To apply damage use “Apply damage to an object”", + "- To heal health, use “Heal object” action", + "- To activate the shield, use “Activate shield” action", + "- Health and shield regeneration will happen automatically based on properties", + " ", + "Tips:", + "", + "- While damage cooldown is active, no damage will be applied to health or shield (the object is invincible)", + "- Try using the “Blink” extension while damage cooldown is active", + "- Use the “Is just damaged” or \"Is just healed\" conditions to trigger sound and visual effects", + "", + "Health properties:", + "", + "- Starting health points", + "- Maximum health points. Use \"0\" for no maximum", + "- Damage cooldown (seconds) Use \"0\" for no cooldown", + "- Rate of health regeneration (points per second)", + "- Delay before health regeneration starts after being hit (seconds)", + "- Allow heals to increase health above max health (regen will never exceed max health)", + "", + "Shield properties:", + "", + "- Max shield points. Use \"0\" for no maximum", + "- Duration of shield (seconds) Use \"0\" to make shield permanent", + "- Rate of shield regeneration (points per second)", + "- Delay before shield regeneration starts after being hit (seconds)", + "- Block excess damage when shield is broken (yes/no)", + "", + "The top-down RPG example uses this extension ([open the project online](https://editor.gdevelop.io/?project=example://top-down-rpg))." + ], + "origin": { + "identifier": "Health", + "name": "gdevelop-extension-store" + }, + "tags": [ + "health", + "life", + "damage", + "hit", + "heal", + "shield", + "regeneration", + "armor" + ], + "authorIds": [ + "wWP8BSlAW0UP4NeaHa2LcmmDzmH2", + "xpwUwByyImTDcHEqDUqfyg0oRBt1", + "gqDaZjCfevOOxBYkK6zlhtZnXCg1" + ], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "Manage health (life) points including a protective shield and armor.", + "fullName": "Health", + "name": "Health", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__Health.TimeSinceLastHit\"" + ] + }, + { + "type": { + "value": "Health::Health::SetCurrentHealth" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyHealth()", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "colorB": 224, + "colorG": 16, + "colorR": 189, + "creationTime": 0, + "name": "Health", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Regeneration", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Health" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyHealthRegenRate" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + }, + { + "type": { + "value": "Health::Health::PropertyCurrentHealth" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::MaxHealth()" + ] + }, + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"__Health.TimeSinceLastHit\"", + ">", + "Object.Behavior::PropertyHealthRegenDelay()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyCurrentHealth" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "Object.Behavior::PropertyHealthRegenRate() * TimeDelta()" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Correct any values above maximum limits" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyCurrentHealth" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "Object.Behavior::MaxHealth()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyCurrentHealth" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyMaxHealth()" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Reset triggers", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyIsHealthJustDamaged" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + }, + { + "type": { + "value": "Health::Health::SetPropertyIsJustHealed" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + }, + { + "type": { + "value": "Health::Health::SetPropertyIsJustDodged" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [] + }, + { + "colorB": 224, + "colorG": 16, + "colorR": 189, + "creationTime": 0, + "name": "Shield", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Regeneration", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Shield" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyShieldRegenRate" + }, + "parameters": [ + "Object", + "Behavior", + "!=", + "0" + ] + }, + { + "type": { + "value": "Health::Health::PropertyCurrentShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "<", + "Object.Behavior::PropertyMaxShieldPoints()" + ] + }, + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"__Health.TimeSinceLastHit\"", + ">", + "Object.Behavior::PropertyShieldRegenDelay()" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyCurrentShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::RenewShieldDuration" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyCurrentShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "Object.Behavior::PropertyShieldRegenRate() * TimeDelta()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Correct any values above maximum limits" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyCurrentShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "Object.Behavior::PropertyMaxShieldPoints()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyCurrentShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyMaxShieldPoints()" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Remove shield points if shield expired", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Health::Health::IsShieldActive" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyCurrentShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Reset damage trigger", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyIsShieldJustDamaged" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Apply damage to the object. Shield and armor can reduce this damage if enabled.", + "fullName": "Apply damage to an object", + "functionType": "Action", + "group": "Health", + "name": "Hit", + "sentence": "Apply _PARAM2_ points of damage to _PARAM0_ (Damage can be reduced by Shield: _PARAM3_, Armor: _PARAM4_)", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Incoming damage", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Only consider incoming damage when damage cooldown is not active" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Health::Health::IsDamageCooldownActive" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyDamageToBeApplied" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"DamageValue\")" + ] + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Chance to dodge", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "No damage will be applied when dodged" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "RandomFloatInRange(0,1)", + "<", + "Object.Behavior::PropertyChanceToDodge()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyIsJustDodged" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + }, + { + "type": { + "value": "Health::Health::SetPropertyDamageToBeApplied" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Damage reduction from Armor", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"UseArmor\"" + ] + }, + { + "type": { + "value": "Health::Health::PropertyDamageToBeApplied" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Flat damage reduction", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyDamageToBeApplied" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "max(0,Object.Behavior::PropertyDamageToBeApplied() - Object.Behavior::PropertyFlatDamageReduction())" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Percent damage reduction", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyPercentDamageReduction" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + }, + { + "type": { + "value": "Health::Health::PropertyDamageToBeApplied" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyDamageToBeApplied" + }, + "parameters": [ + "Object", + "Behavior", + "*", + "1 - min(1, Object.Behavior::PropertyPercentDamageReduction())" + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Apply damage to shield", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If shield is active, damage the shield first" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"UseShield\"" + ] + }, + { + "type": { + "value": "Health::Health::IsShieldActive" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "Health::Health::PropertyDamageToBeApplied" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyIsShieldJustDamaged" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + }, + { + "type": { + "value": "Health::Health::TriggerDamageCooldown" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If damage is less than shield, subtract damage from shield." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyDamageToBeApplied" + }, + "parameters": [ + "Object", + "Behavior", + "<=", + "Object.Behavior::PropertyCurrentShieldPoints()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyCurrentShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "-", + "Object.Behavior::PropertyDamageToBeApplied()" + ] + }, + { + "type": { + "value": "Health::Health::SetPropertyShieldDamageTaken" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyDamageToBeApplied()" + ] + }, + { + "type": { + "value": "Health::Health::SetPropertyDamageToBeApplied" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If damage is greater than shield, conditionally apply excess damage based on property" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyDamageToBeApplied" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "Object.Behavior::PropertyCurrentShieldPoints()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyShieldDamageTaken" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyCurrentShieldPoints()" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyBlockExcessDamage" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyDamageToBeApplied" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + }, + { + "type": { + "value": "Health::Health::SetPropertyCurrentShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Apply excess damage only if shield does not block excess damage" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Health::Health::PropertyBlockExcessDamage" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyDamageToBeApplied" + }, + "parameters": [ + "Object", + "Behavior", + "-", + "Object.Behavior::PropertyCurrentShieldPoints()" + ] + }, + { + "type": { + "value": "Health::Health::SetPropertyCurrentShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Apply damage to health", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyDamageToBeApplied" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetJustDamaged" + }, + "parameters": [ + "Object", + "Behavior", + "yes", + "" + ] + }, + { + "type": { + "value": "Health::Health::TriggerDamageCooldown" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetCurrentHealth" + }, + "parameters": [ + "Object", + "Behavior", + "Object.Behavior::PropertyCurrentHealth() - Object.Behavior::PropertyDamageToBeApplied()", + "" + ] + } + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Points of damage", + "name": "DamageValue", + "type": "expression" + }, + { + "defaultValue": "yes", + "description": "Shield can reduce damage taken", + "name": "UseShield", + "optional": true, + "type": "yesorno" + }, + { + "defaultValue": "yes", + "description": "Armor can reduce damage taken", + "name": "UseArmor", + "optional": true, + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "current health points of the object.", + "fullName": "Health points", + "functionType": "ExpressionAndCondition", + "group": "Health", + "name": "Health", + "sentence": "health points", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyCurrentHealth()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Change the health points of the object. Will not trigger damage cooldown.", + "fullName": "Change health points", + "functionType": "Action", + "group": "Health", + "name": "SetHealth", + "sentence": "Change the health of _PARAM0_ to _PARAM2_ points", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyCurrentHealth" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If MaxHealth is set, prevent health from going above it" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyMaxHealth" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyCurrentHealth" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "min(Object.Behavior::PropertyCurrentHealth(), Object.Behavior::PropertyMaxHealth())" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "New health value", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the health points of the object. Will not trigger damage cooldown.", + "fullName": "Change health points (deprecated)", + "functionType": "Action", + "group": "Health configuration", + "name": "SetCurrentHealth", + "private": true, + "sentence": "Change the health of _PARAM0_ to _PARAM2_ points", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetHealth" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "New health value", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Heal the object by increasing its health points.", + "fullName": "Heal object", + "functionType": "Action", + "group": "Health", + "name": "Heal", + "sentence": "Heal _PARAM0_ with _PARAM2_ health points", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Heal", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If Max Health is not set, do not enforce Max Health" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyMaxHealth" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyHealToBeApplied" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"HealValue\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If Max Health is set and Overhealing is not allowed" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyMaxHealth" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + }, + { + "type": { + "inverted": true, + "value": "Health::Health::PropertyAllowOverHealing" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyHealToBeApplied" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "min(GetArgumentAsNumber(\"HealValue\"),Object.Behavior::PropertyMaxHealth() - Object.Behavior::PropertyCurrentHealth())" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Perform heal" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyCurrentHealth" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "Object.Behavior::PropertyHealToBeApplied()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Update healing trigger" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyIsJustHealed" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Points to heal (will be added to object health)", + "name": "HealValue", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the maximum health points of the object.", + "fullName": "Maximum health points", + "functionType": "ExpressionAndCondition", + "group": "Health configuration", + "name": "MaxHealth", + "sentence": "the maximum health points", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyMaxHealth()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "MaxHealth", + "name": "SetMaxHealthOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyMaxHealth" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Make sure Current Health does not exceed new Max Health" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyCurrentHealth" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "Object.Behavior::MaxHealth()" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyCurrentHealth" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::MaxHealth()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Maximum health", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the object maximum health points.", + "fullName": "Maximum health points (deprecated)", + "functionType": "Action", + "group": "Health configuration", + "name": "SetMaxHealth", + "private": true, + "sentence": "Change the maximum health of _PARAM0_ to _PARAM2_ points", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetMaxHealthOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Maximum health", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the rate of health regeneration (points per second).", + "fullName": "Rate of health regeneration", + "functionType": "ExpressionAndCondition", + "group": "Health configuration", + "name": "HealthRegenRate", + "sentence": "the rate of health regeneration", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyHealthRegenRate()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "HealthRegenRate", + "name": "SetHealthRegenRateOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyHealthRegenRate" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Rate of regen", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the rate of health regeneration.", + "fullName": "Rate of health regeneration (deprecated)", + "functionType": "Action", + "group": "Health configuration", + "name": "SetHealthRegenRate", + "private": true, + "sentence": "Change the rate of health regen of _PARAM0_ to _PARAM2_ points per second", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetHealthRegenRateOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Rate of regen", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the duration of damage cooldown (seconds).", + "fullName": "Damage cooldown", + "functionType": "ExpressionAndCondition", + "group": "Health configuration", + "name": "DamageCooldownDuration", + "sentence": "the duration of damage cooldown", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyDamageCooldown()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "DamageCooldownDuration", + "name": "SetCooldownDurationOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyDamageCooldown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Duration of damage cooldown (seconds)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the duration of damage cooldown (seconds).", + "fullName": "Damage cooldown (deprecated)", + "functionType": "Action", + "group": "Health configuration", + "name": "SetCooldownDuration", + "private": true, + "sentence": "Change the duration of damage cooldown on _PARAM0_ to _PARAM2_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetCooldownDurationOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Duration of damage cooldown (seconds)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the delay before health regeneration starts after last being hit (seconds).", + "fullName": "Health regeneration delay", + "functionType": "ExpressionAndCondition", + "group": "Health configuration", + "name": "HealthRegenDelay", + "sentence": "the health regeneration delay", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyHealthRegenDelay()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "HealthRegenDelay", + "name": "SetHealthRegenDelayOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyHealthRegenDelay" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Delay (seconds)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the delay before health regeneration starts after being hit.", + "fullName": "Health regeneration delay (deprecated)", + "functionType": "Action", + "group": "Health configuration", + "name": "SetHealthRegenDelay", + "private": true, + "sentence": "Change the health regeneration delay on _PARAM0_ to _PARAM2_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetHealthRegenDelayOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Delay (seconds)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the chance to dodge incoming damage (range: 0 to 1).", + "fullName": "Dodge chance", + "functionType": "ExpressionAndCondition", + "group": "Health configuration", + "name": "ChanceToDodge", + "sentence": "the chance to dodge incoming damage", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyChanceToDodge()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "ChanceToDodge", + "name": "SetChanceToDodgeOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyChanceToDodge" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Chance to dodge (Range: 0 to 1)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the chance to dodge incoming damage.", + "fullName": "Chance to dodge incoming damage (deprecated)", + "functionType": "Action", + "group": "Health configuration", + "name": "SetChanceToDodge", + "private": true, + "sentence": "Change the chance to dodge on _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetChanceToDodgeOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Chance to dodge (Range: 0 to 1)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the flat damage reduction from the armor. Incoming damage is reduced by this value.", + "fullName": "Armor flat damage reduction", + "functionType": "ExpressionAndCondition", + "group": "Health configuration", + "name": "FlatDamageReduction", + "sentence": "the armor flat damage reduction", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyFlatDamageReduction()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "FlatDamageReduction", + "name": "SetFlatDamageReductionOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyFlatDamageReduction" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Flat reduction from armor", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the flat damage reduction from armor. Incoming damage is reduced by this value.", + "fullName": "Flat damage reduction from armor (deprecated)", + "functionType": "Action", + "group": "Health configuration", + "name": "SetFlatDamageReduction", + "private": true, + "sentence": "Change the flat damage reduction from armor on _PARAM0_ to _PARAM2_ points", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetFlatDamageReductionOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Flat reduction from armor", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the percent damage reduction from armor (range: 0 to 1).", + "fullName": "Armor percent damage reduction", + "functionType": "ExpressionAndCondition", + "group": "Health configuration", + "name": "PercentDamageReduction", + "sentence": "the armor percent damage reduction", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyPercentDamageReduction()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "PercentDamageReduction", + "name": "SetPercentDamageReductionOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyPercentDamageReduction" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Percent damage reduction from armor", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the percent damage reduction from armor. Range: 0 to 1.", + "fullName": "Percent damage reduction from armor (deprecated)", + "functionType": "Action", + "group": "Health configuration", + "name": "SetPercentDamageReduction", + "private": true, + "sentence": "Change the percent damage reduction from armor on _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPercentDamageReductionOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Percent damage reduction from armor", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Allow heals to increase health above max health. Regeneration will not exceed max health.", + "fullName": "Allow over-healing", + "functionType": "Action", + "group": "Health configuration", + "name": "AllowOverHealing", + "sentence": "Allow over-healing on _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyAllowOverHealing" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyAllowOverHealing" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Allow over-healing", + "name": "Value", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Mark object as hit at least once.", + "fullName": "Mark object as hit at least once", + "functionType": "Action", + "group": "Health configuration", + "name": "SetHitAtLeastOnce", + "private": true, + "sentence": "Mark _PARAM0_ as hit at least once: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyHitAtLeastOnce" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyHitAtLeastOnce" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Hit at least once", + "name": "Value", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Mark object as just damaged.", + "fullName": "Mark object as just damaged", + "functionType": "Action", + "group": "Health configuration", + "name": "SetJustDamaged", + "private": true, + "sentence": "Mark _PARAM0_ as just damaged: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyIsHealthJustDamaged" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyIsHealthJustDamaged" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Just damaged", + "name": "Value", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Trigger damage cooldown.", + "fullName": "Trigger damage cooldown", + "functionType": "Action", + "group": "Health", + "name": "TriggerDamageCooldown", + "sentence": "Trigger the damage cooldown on _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Mark that the object was hit at least once (used for initial state of damage cooldown)" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Health::Health::HitAtLeastOnce" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetHitAtLeastOnce" + }, + "parameters": [ + "Object", + "Behavior", + "yes", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__Health.TimeSinceLastHit\"" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the object has been hit at least once.", + "fullName": "Object has been hit at least once", + "functionType": "Condition", + "group": "Health", + "name": "HitAtLeastOnce", + "private": true, + "sentence": "_PARAM0_ has been hit at least once", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "This condition is used to prevent \"damage cooldown\" from being active when the game starts." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyHitAtLeastOnce" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if health was just damaged previously in the events.", + "fullName": "Is health just damaged", + "functionType": "Condition", + "group": "Health", + "name": "IsJustDamaged", + "sentence": "Health has just been damaged on _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyIsHealthJustDamaged" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the object was just healed previously in the events.", + "fullName": "Is just healed", + "functionType": "Condition", + "group": "Health", + "name": "IsJustHealed", + "sentence": "_PARAM0_ has just been healed", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyIsJustHealed" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if damage cooldown is active. Object and shield cannot be damaged while this is active.", + "fullName": "Is damage cooldown active", + "functionType": "Condition", + "group": "Health", + "name": "IsDamageCooldownActive", + "sentence": "Damage cooldown on _PARAM0_ is active", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyHitAtLeastOnce" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "Health::Health::PropertyDamageCooldown" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + }, + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"__Health.TimeSinceLastHit\"", + "<", + "Object.Behavior::PropertyDamageCooldown()" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the time before damage cooldown ends (seconds).", + "fullName": "Time remaining in damage cooldown", + "functionType": "ExpressionAndCondition", + "group": "Health", + "name": "DamageCooldownRemaining", + "sentence": "the time before damage cooldown end", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::IsDamageCooldownActive" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "max(0,Object.Behavior::PropertyDamageCooldown() - Object.ObjectTimerElapsedTime(\"__Health.TimeSinceLastHit\"))" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the object is considered dead (no health points).", + "fullName": "Is dead", + "functionType": "Condition", + "group": "Health", + "name": "IsDead", + "sentence": "_PARAM0_ is dead", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyCurrentHealth" + }, + "parameters": [ + "Object", + "Behavior", + "<=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the time since last taken hit (seconds).", + "fullName": "Time since last hit", + "functionType": "ExpressionAndCondition", + "group": "Health", + "name": "TimeSinceLastHit", + "sentence": "the time since last taken hit on health", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.ObjectTimerElapsedTime(\"__Health.TimeSinceLastHit\")" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the health damage taken from most recent hit.", + "fullName": "Health damage taken from most recent hit", + "functionType": "ExpressionAndCondition", + "group": "Health", + "name": "PreviousDamageTaken", + "sentence": "the health damage taken from most recent hit", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyDamageToBeApplied()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the maximum shield points of the object.", + "fullName": "Maximum shield points", + "functionType": "ExpressionAndCondition", + "group": "Shield configuration", + "name": "MaxShield", + "sentence": "the maximum shield points", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyMaxShieldPoints()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "MaxShield", + "name": "SetMaxShieldOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyMaxShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Maximum shield", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the maximum shield points of the object.", + "fullName": "Maximum shield points (deprecated)", + "functionType": "Action", + "group": "Shield configuration", + "name": "SetMaxShield", + "private": true, + "sentence": "Change the maximum shield of _PARAM0_ to _PARAM2_ points", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetMaxShieldOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Maximum shield", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change maximum shield points.", + "fullName": "Max shield points (deprecated)", + "functionType": "Action", + "group": "Shield configuration", + "name": "SetMaxShieldPoints", + "private": true, + "sentence": "Change the maximum shield points on _PARAM0_ to _PARAM2_ points", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetMaxShieldOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Shield points", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the current shield points of the object.", + "fullName": "Shield points", + "functionType": "ExpressionAndCondition", + "group": "Shield", + "name": "ShieldPoints", + "sentence": "the shield points", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyCurrentShieldPoints()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "ShieldPoints", + "name": "SetShieldPointsOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyCurrentShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Shield points", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change current shield points. Will not trigger damage cooldown.", + "fullName": "Shield points (deprecated)", + "functionType": "Action", + "group": "Shield configuration", + "name": "SetShieldPoints", + "private": true, + "sentence": "Change current shield points on _PARAM0_ to _PARAM2_ points", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetShieldPointsOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Shield points", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the rate of shield regeneration (points per second).", + "fullName": "Rate of shield regeneration", + "functionType": "ExpressionAndCondition", + "group": "Shield configuration", + "name": "ShieldRegenRate", + "sentence": "the rate of shield regeneration", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyShieldRegenRate()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "ShieldRegenRate", + "name": "SetShieldRegenRateOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyShieldRegenRate" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Regeneration rate (points per second)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change rate of shield regeneration.", + "fullName": "Shield regeneration rate (deprecated)", + "functionType": "Action", + "group": "Shield configuration", + "name": "SetShieldRegenRate", + "private": true, + "sentence": "Change the shield regeneration rate of _PARAM0_ to _PARAM2_ points per second", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetShieldRegenRateOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Regeneration rate (points per second)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the delay before shield regeneration starts after being hit (seconds).", + "fullName": "Shield regeneration delay", + "functionType": "ExpressionAndCondition", + "group": "Shield configuration", + "name": "ShieldRegenDelay", + "sentence": "the shield regeneration delay", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyShieldRegenDelay()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "ShieldRegenDelay", + "name": "SetShieldRegenDelayOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyShieldRegenDelay" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Regeneration delay (seconds)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change delay before shield regeneration starts after being hit.", + "fullName": "Shield regeneration delay (deprecated)", + "functionType": "Action", + "group": "Shield configuration", + "name": "SetShieldRegenDelay", + "private": true, + "sentence": "Change the shield regeneration delay on _PARAM0_ to _PARAM2_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetShieldRegenDelayOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Regeneration delay (seconds)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the duration of the shield (seconds). A value of \"0\" means the shield is permanent.", + "fullName": "Duration of shield", + "functionType": "ExpressionAndCondition", + "group": "Shield configuration", + "name": "ShieldDuration", + "sentence": "the duration of the shield", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyShieldDuration()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "ShieldDuration", + "name": "SetShieldDurationOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyShieldDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Shield duration (seconds)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change duration of shield. Use \"0\" to make shield permanent.", + "fullName": "Duration of shield (deprecated)", + "functionType": "Action", + "group": "Shield configuration", + "name": "SetShieldDuration", + "private": true, + "sentence": "Change the duration of shield on _PARAM0_ to _PARAM2_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetShieldDurationOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Shield duration (seconds)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Renew shield duration to it's full value.", + "fullName": "Renew shield duration", + "functionType": "Action", + "group": "Shield", + "name": "RenewShieldDuration", + "sentence": "Renew the shield duration on _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__Health.ShieldDuration\"" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Activate the shield by setting the shield points and renewing the shield duration (optional).", + "fullName": "Activate shield", + "functionType": "Action", + "group": "Shield", + "name": "ActivateShield", + "sentence": "Activate the shield on _PARAM0_ with _PARAM2_ points (Renew shield duration: _PARAM3_)", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyCurrentShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"ShieldPoints\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyMaxShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyCurrentShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "min(GetArgumentAsNumber(\"ShieldPoints\"),Object.Behavior::MaxShield())" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"RenewShieldDuration\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::RenewShieldDuration" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Shield points", + "name": "ShieldPoints", + "type": "expression" + }, + { + "defaultValue": "yes", + "description": "Renew shield duration", + "name": "RenewShieldDuration", + "optional": true, + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Enable (or disable) blocking excess damage when shield breaks.", + "fullName": "Block excess damage when shield breaks", + "functionType": "Action", + "group": "Shield configuration", + "name": "SetShieldBlockExcessDamage", + "sentence": "Shield on _PARAM0_ blocks excess damage when it breaks: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyBlockExcessDamage" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Health::Health::SetPropertyBlockExcessDamage" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + }, + { + "description": "Block excess damage", + "name": "Value", + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the shield was just damaged previously in the events.", + "fullName": "Is shield just damaged", + "functionType": "Condition", + "group": "Shield", + "name": "IsShieldJustDamaged", + "sentence": "Shield on _PARAM0_ has just been damaged", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyIsShieldJustDamaged" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if incoming damage was just dodged.", + "fullName": "Damage was just dodged", + "functionType": "Condition", + "group": "Health", + "name": "IsJustDodged", + "sentence": "_PARAM0_ just dodged incoming damage", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyIsJustDodged" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the shield is active (based on shield points and duration).", + "fullName": "Is shield active", + "functionType": "Condition", + "group": "Shield", + "name": "IsShieldActive", + "sentence": "Shield on _PARAM0_ is active", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "To be considered \"active\", a shield must have positive points AND not exceed duration" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyCurrentShieldPoints" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Don't check the timer when duration is zero (or negative)" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyShieldDuration" + }, + "parameters": [ + "Object", + "Behavior", + "<=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyShieldDuration" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + }, + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"__Health.ShieldDuration\"", + "<", + "Object.Behavior::PropertyShieldDuration()" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the time before the shield duration ends (seconds).", + "fullName": "Time before shield duration ends", + "functionType": "ExpressionAndCondition", + "group": "Shield", + "name": "ShieldTimeRemaining", + "sentence": "the time before the shield duration end", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "Health::Health::PropertyShieldDuration" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "max(0,Object.Behavior::PropertyShieldDuration() - Object.ObjectTimerElapsedTime(\"__Health.ShieldDuration\"))" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the shield damage taken from most recent hit.", + "fullName": "Shield damage taken from most recent hit", + "functionType": "ExpressionAndCondition", + "group": "Shield", + "name": "PreviousDamageToShield", + "sentence": "the shield damage taken from most recent hit", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyShieldDamageTaken()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the health points gained from previous heal.", + "fullName": "Health points gained from previous heal", + "functionType": "ExpressionAndCondition", + "group": "Health", + "name": "PreviousHealAmount", + "sentence": "the health points gained from previous heal", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyHealToBeApplied()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Health::Health", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "100", + "type": "Number", + "label": "Starting health (life) points", + "description": "", + "group": "Health", + "extraInformation": [], + "hidden": false, + "name": "Health" + }, + { + "value": "0", + "type": "Number", + "label": "Current health (life) points", + "description": "", + "group": "Health", + "extraInformation": [], + "hidden": true, + "name": "CurrentHealth" + }, + { + "value": "100", + "type": "Number", + "label": "Maximum health (points) Use \"0\" for no maximum", + "description": "", + "group": "Health", + "extraInformation": [], + "hidden": false, + "name": "MaxHealth" + }, + { + "value": "0", + "type": "Number", + "unit": "Second", + "label": "Damage cooldown", + "description": "", + "group": "Health", + "extraInformation": [], + "hidden": false, + "name": "DamageCooldown" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "", + "group": "Health", + "extraInformation": [], + "hidden": true, + "name": "IsHealthJustDamaged" + }, + { + "value": "0", + "type": "Number", + "label": "Rate of health regeneration (points per second)", + "description": "", + "group": "Health regeneration", + "extraInformation": [], + "hidden": false, + "name": "HealthRegenRate" + }, + { + "value": "0", + "type": "Number", + "unit": "Second", + "label": "Delay before health regeneration starts after being hit", + "description": "", + "group": "Health regeneration", + "extraInformation": [], + "hidden": false, + "name": "HealthRegenDelay" + }, + { + "value": "", + "type": "Boolean", + "label": "Allow heals to increase health above max health (regen will never exceed max health)", + "description": "", + "group": "Health", + "extraInformation": [], + "hidden": false, + "name": "AllowOverHealing" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "", + "group": "Health", + "extraInformation": [], + "hidden": true, + "name": "HitAtLeastOnce" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "IsJustHealed" + }, + { + "value": "", + "type": "Number", + "label": "Current shield points", + "description": "", + "group": "Shield", + "extraInformation": [], + "hidden": true, + "name": "CurrentShieldPoints" + }, + { + "value": "0", + "type": "Number", + "label": "Maximum shield (points)", + "description": "Leave \"0\" for unlimited.", + "group": "Shield", + "extraInformation": [], + "hidden": false, + "name": "MaxShieldPoints" + }, + { + "value": "5", + "type": "Number", + "unit": "Second", + "label": "Duration of shield", + "description": "Use \"0\" to make the shield permanent.", + "group": "Shield", + "extraInformation": [], + "hidden": false, + "name": "ShieldDuration" + }, + { + "value": "0", + "type": "Number", + "label": "Rate of shield regeneration (points per second)", + "description": "", + "group": "Shield regeneration", + "extraInformation": [], + "hidden": false, + "name": "ShieldRegenRate" + }, + { + "value": "", + "type": "Boolean", + "label": "Block excess damage when shield is broken", + "description": "", + "group": "Shield", + "extraInformation": [], + "hidden": false, + "name": "BlockExcessDamage" + }, + { + "value": "0", + "type": "Number", + "unit": "Second", + "label": "Delay before shield regeneration starts after being hit", + "description": "", + "group": "Shield regeneration", + "extraInformation": [], + "hidden": false, + "name": "ShieldRegenDelay" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "", + "group": "Shield", + "extraInformation": [], + "hidden": true, + "name": "IsShieldJustDamaged" + }, + { + "value": "0", + "type": "Number", + "label": "Chance to dodge incoming damage (Range: 0 to 1)", + "description": "When a damage is dodged, no damage is applied.", + "group": "Health", + "extraInformation": [], + "hidden": false, + "name": "ChanceToDodge" + }, + { + "value": "0", + "type": "Number", + "label": "Damage to health from the previous incoming damage", + "description": "", + "group": "Health", + "extraInformation": [], + "hidden": true, + "name": "DamageToBeApplied" + }, + { + "value": "0", + "type": "Number", + "label": "Flat damage reduction from armor", + "description": "Incoming damages are reduced by this value.", + "group": "Armor", + "extraInformation": [], + "hidden": false, + "name": "FlatDamageReduction" + }, + { + "value": "0", + "type": "Number", + "label": "Percentage damage reduction from armor (Range: 0 to 1)", + "description": "", + "group": "Armor", + "extraInformation": [], + "hidden": false, + "name": "PercentDamageReduction" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "IsJustDodged" + }, + { + "value": "", + "type": "Number", + "label": "Damage to shield from the previous incoming damage", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ShieldDamageTaken" + }, + { + "value": "0", + "type": "Number", + "label": "Health points gained from the previous heal", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "HealToBeApplied" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + }, + { + "author": "@4ian", + "category": "Game mechanic", + "extensionNamespace": "", + "fullName": "Fire bullets", + "helpPath": "/extensions/fire-bullet/details", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLWJ1bGxldCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xNCwyMkgxMFYyMUgxNFYyMk0xMywxMFY3SDExVjEwTDEwLDExLjVWMjBIMTRWMTEuNUwxMywxME0xMiwyQzEyLDIgMTEsMyAxMSw1VjZIMTNWNUMxMyw1IDEzLDMgMTIsMloiIC8+PC9zdmc+", + "name": "FireBullet", + "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/bullet.svg", + "shortDescription": "Fire bullets, manage ammo, reloading and overheating.", + "version": "0.6.1", + "description": [ + "This extension allows objects to fire bullets.", + "", + "It handles:", + "- Cooldown between shots", + "- Firing multiple bullets at a time ([open the project online](https://editor.gdevelop.io/?project=example://fire-bullet))", + "- Ammo management", + "- Overheat", + "", + "It can be used for:", + "- Twin-stick shooters ([open the project online](https://editor.gdevelop.io/?project=example://conviction-of-gun-dude-desktop))", + "- Shoot'em up ([open the project online](https://editor.gdevelop.io/?project=example://space-shooter))", + "", + "A simple example shows how to make firing patterns ([open the project online](https://editor.gdevelop.io/?project=example://firing-patterns))." + ], + "origin": { + "identifier": "FireBullet", + "name": "gdevelop-extension-store" + }, + "tags": [ + "fire", + "bullet", + "spawn", + "firerate", + "reload", + "weapon", + "ranged", + "ammo", + "overheat" + ], + "authorIds": [ + "wWP8BSlAW0UP4NeaHa2LcmmDzmH2", + "xpwUwByyImTDcHEqDUqfyg0oRBt1", + "2OwwM8ToR9dx9RJ2sAKTcrLmCB92", + "gqDaZjCfevOOxBYkK6zlhtZnXCg1" + ], + "dependencies": [], + "eventsFunctions": [], + "eventsBasedBehaviors": [ + { + "description": "Fire bullets, manage ammo, reloading, and overheating.", + "fullName": "Fire bullets", + "name": "FireBullet", + "objectType": "", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "onCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__FireBullet.FiringCooldown\"" + ] + }, + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyStartingAmmo()" + ] + }, + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyShotsBeforeNextReload" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyShotsPerReload()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "colorB": 224, + "colorG": 16, + "colorR": 189, + "creationTime": 0, + "name": "Take a shot (if triggered)", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Creators can use the \"FireBullet\" action multiple times in a frame and it will be counted as a single \"shot\"." + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyHasJustFired" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Reset firing cooldown", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__FireBullet.FiringCooldown\"" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Update ammo", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Subtract 1 from ammo (if not unlimited ammo)" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::PropertyUnlimitedAmmo" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "-", + "1" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Update reloading counter", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyShotsPerReload" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyShotsBeforeNextReload" + }, + "parameters": [ + "Object", + "Behavior", + "-", + "1" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Automatically reload gun when needed", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyAutomaticReloading" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "FireBullet::FireBullet::IsReloadNeeded" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::IsReloadInProgress" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::ReloadAmmo" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Update Overheat", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Increase heat (if needed)" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyHeatIncreasePerShot" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyHeatLevel" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "Object.Behavior::PropertyHeatIncreasePerShot()" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Check if this caused overheat" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyOverheatDuration" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + }, + { + "type": { + "value": "FireBullet::FireBullet::IsOverheated" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__FireBullet.OverheatDuration\"" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Update statistics", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyTotalShotsFired" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "1" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Reset firing detection", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyHasJustFired" + }, + "parameters": [ + "Object", + "Behavior", + "=" + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Reload gun when needed", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Detect when reload is completed" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::IsReloadInProgress" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"__FireBullet.ReloadingTimer\"", + ">=", + "Object.Behavior::PropertyReloadDuration()" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyTotalReloadsCompleted" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "1" + ] + }, + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyReloadInProgress" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::IsUnlimitedAmmo" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyShotsBeforeNextReload" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyShotsPerReload()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Only reload the amount of ammo available" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::IsUnlimitedAmmo" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyShotsBeforeNextReload" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "min(Object.Behavior::PropertyShotsPerReload(), Object.Behavior::PropertyAmmoQuantity())" + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Reduce heat level (based on cooling rate)", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "Object.Behavior::HeatLevel()", + ">", + "0" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyExponentialCoolingRate" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyHeatLevel" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "max(0, Object.Behavior::PropertyHeatLevel() - TimeDelta() * Object.Behavior::PropertyExponentialCoolingRate() * Object.Behavior::PropertyHeatLevel())" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyLinearCoolingRate" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyHeatLevel" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "max(0, Object.Behavior::PropertyHeatLevel() - TimeDelta() * Object.Behavior::PropertyLinearCoolingRate())" + ] + } + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Fire bullets toward a position.", + "fullName": "Fire bullets toward a position", + "functionType": "Action", + "name": "FireTowardPosition", + "sentence": "Fire _PARAM4_ from _PARAM0_, at position _PARAM2_; _PARAM3_, toward position _PARAM5_;_PARAM6_ with speed _PARAM7_ px/s", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Calculate the trajectory angle and use the \"Fire bullets\" action", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::Fire" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsNumber(\"XPosition\")", + "GetArgumentAsNumber(\"YPosition\")", + "Bullet", + "Object.AngleToPosition(GetArgumentAsNumber(\"TargetXPosition\"),GetArgumentAsNumber(\"TargetYPosition\"))", + "GetArgumentAsNumber(\"Speed\")", + "" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "X position, where to create the bullet", + "name": "XPosition", + "type": "expression" + }, + { + "description": "Y position, where to create the bullet", + "name": "YPosition", + "type": "expression" + }, + { + "description": "The bullet object", + "name": "Bullet", + "type": "objectList" + }, + { + "description": "Target X position", + "name": "TargetXPosition", + "type": "expression" + }, + { + "description": "Target Y position", + "name": "TargetYPosition", + "type": "expression" + }, + { + "description": "Speed of the bullet, in pixels per second", + "name": "Speed", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Fire bullets in the direction of a given angle.", + "fullName": "Fire bullets toward an angle", + "functionType": "Action", + "name": "Fire", + "sentence": "Fire _PARAM4_ from _PARAM0_, at position _PARAM2_; _PARAM3_, toward angle _PARAM5_ and speed _PARAM6_ px/s", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Check if ready to shoot", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::IsReadyToShoot" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyHasJustFired" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Single bullet", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "Object.Behavior::PropertyBulletQuantity()", + "=", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::FireSingleBullet" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsNumber(\"XPosition\")", + "GetArgumentAsNumber(\"YPosition\")", + "Bullet", + "GetArgumentAsNumber(\"Angle\")", + "GetArgumentAsNumber(\"Speed\")", + "" + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Multiple bullets", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "Object.Behavior::PropertyBulletQuantity()", + ">", + "1" + ] + } + ], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FireBullet.CurrentBulletAngle", + "=", + "GetArgumentAsNumber(\"Angle\") - Object.Behavior::PropertyFiringArc()/2" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FireBullet.BatchOrderID", + "=", + "0" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Repeat", + "repeatExpression": "Object.Behavior::PropertyBulletQuantity()", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::FireSingleBullet" + }, + "parameters": [ + "Object", + "Behavior", + "GetArgumentAsNumber(\"XPosition\")", + "GetArgumentAsNumber(\"YPosition\")", + "Bullet", + "Object.Variable(__FireBullet.CurrentBulletAngle) + RandomInRange(-Object.Behavior::PropertyAngleVariance(),Object.Behavior::PropertyAngleVariance())", + "GetArgumentAsNumber(\"Speed\")", + "" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move temp variable to the next angle a bullet will be sent" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FireBullet.CurrentBulletAngle", + "+", + "Object.Behavior::PropertyFiringArc() / (Object.Behavior::PropertyBulletQuantity() - 1)" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Object", + "__FireBullet.BatchOrderID", + "+", + "1" + ] + } + ] + } + ] + } + ] + } + ], + "parameters": [] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "X position, where to create the bullet", + "name": "XPosition", + "type": "expression" + }, + { + "description": "Y position, where to create the bullet", + "name": "YPosition", + "type": "expression" + }, + { + "description": "The bullet object", + "name": "Bullet", + "type": "objectList" + }, + { + "description": "Angle of the bullet, in degrees", + "name": "Angle", + "type": "expression" + }, + { + "description": "Speed of the bullet, in pixels per second", + "name": "Speed", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Fire a single bullet. This is only meant to be used inside the \"Fire bullet\" action.", + "fullName": "Fire a single bullet", + "functionType": "Action", + "group": "Firing", + "name": "FireSingleBullet", + "private": true, + "sentence": "Fire a single bullet _PARAM4_ from _PARAM0_, at position _PARAM2_; _PARAM3_, with angle _PARAM5_ and speed _PARAM6_ px/s", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "name": "Fire a single bullet", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Create bullet" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Bullet", + "GetArgumentAsNumber(\"XPosition\")", + "GetArgumentAsNumber(\"YPosition\")", + "Object.Behavior::PropertyBulletLayer()" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move bullet (apply angle and bullet speed variances)" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyRandomizedAngle" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Angle\") + RandomInRange(-Object.Behavior::PropertyAngleVariance(), Object.Behavior::PropertyAngleVariance())" + ] + }, + { + "type": { + "value": "AddForceAL" + }, + "parameters": [ + "Bullet", + "Object.Behavior::PropertyRandomizedAngle()", + "GetArgumentAsNumber(\"Speed\") + RandomInRange(-Object.Behavior::PropertyBulletSpeedVariance(), Object.Behavior::PropertyBulletSpeedVariance())", + "1" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Add identifier variables (to enable advanced picking by users)" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Bullet", + "__FireBullet.BulletID", + "=", + "Object.Behavior::PropertyTotalBulletsCreated()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Bullet", + "__FireBullet.BatchID", + "=", + "Object.Behavior::PropertyTotalShotsFired()" + ] + }, + { + "type": { + "value": "ModVarObjet" + }, + "parameters": [ + "Bullet", + "__FireBullet.BatchOrderID", + "=", + "0" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Rotate newly created bullet, if needed" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyRotateBullet" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetAngle" + }, + "parameters": [ + "Bullet", + "=", + "Object.Behavior::PropertyRandomizedAngle()" + ] + } + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Update statistics" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyTotalBulletsCreated" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "1" + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "X position, where to create the bullet", + "name": "XPosition", + "type": "expression" + }, + { + "description": "Y position, where to create the bullet", + "name": "YPosition", + "type": "expression" + }, + { + "description": "The bullet object", + "name": "Bullet", + "type": "objectList" + }, + { + "description": "Angle of the bullet, in degrees", + "name": "Angle", + "type": "expression" + }, + { + "description": "Speed of the bullet, in pixels per second", + "name": "Speed", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Reload ammo.", + "fullName": "Reload ammo", + "functionType": "Action", + "name": "ReloadAmmo", + "sentence": "Reload ammo on _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::IsOutOfAmmo" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyReloadInProgress" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + }, + { + "type": { + "value": "ResetObjectTimer" + }, + "parameters": [ + "Object", + "\"__FireBullet.ReloadingTimer\"" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the object has just fired something.", + "fullName": "Has just fired", + "functionType": "Condition", + "group": "Firing", + "name": "HasJustFired", + "sentence": "_PARAM0_ has just fired", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyHasJustFired" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if bullet rotates to match trajectory.", + "fullName": "Is bullet rotation enabled", + "functionType": "Condition", + "group": "Firing", + "name": "BulletRotationEnabled", + "sentence": "Bullet rotation enabled on _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyRotateBullet" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the firing arc (in degrees) where bullets are shot. Bullets are evenly spaced out inside the firing arc.", + "fullName": "Firing arc", + "functionType": "ExpressionAndCondition", + "group": "Multi-Fire", + "name": "FiringArc", + "sentence": "the firing arc", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyFiringArc()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "FiringArc", + "name": "SetFiringArcOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyFiringArc" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Firing arc (degrees) Range: 0 to 360", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the firing arc (in degrees) where bullets will be shot. Bullets will be evenly spaced out inside the firing arc.", + "fullName": "Set firing arc (deprecated)", + "functionType": "Action", + "group": "Multi-Fire", + "name": "SetFiringArc", + "private": true, + "sentence": "Set firing arc of _PARAM0_ to _PARAM2_ degrees", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetFiringArcOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Firing arc (degrees) Range: 0 to 360", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the angle variance (in degrees) applied to each bullet.", + "fullName": "Angle variance", + "functionType": "ExpressionAndCondition", + "group": "Firing variance", + "name": "AngleVariance", + "sentence": "the angle variance", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyAngleVariance()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "AngleVariance", + "name": "SetAngleVarianceOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAngleVariance" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Angle variance (degrees) Range: 0 to 180", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the angle variance (in degrees) applied to each bullet.", + "fullName": "Set angle variance (deprecated)", + "functionType": "Action", + "group": "Firing", + "name": "SetAngleVariance", + "private": true, + "sentence": "Set angle variance of _PARAM0_ to _PARAM2_ degrees", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetAngleVarianceOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Angle variance (degrees) Range: 0 to 180", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the bullet speed variance (pixels per second) applied to each bullet.", + "fullName": "Bullet speed variance", + "functionType": "ExpressionAndCondition", + "group": "Firing variance", + "name": "BulletSpeedVariance", + "sentence": "the bullet speed variance", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyBulletSpeedVariance()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "BulletSpeedVariance", + "name": "SetBulletSpeedVarianceOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyBulletSpeedVariance" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Angle variance (degrees) Range: 0 to 180", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the speed variance (pixels per second) applied to each bullet.", + "fullName": "Set bullet speed variance (deprecated)", + "functionType": "Action", + "group": "Multi-Fire", + "name": "SetBulletSpeedVariance", + "private": true, + "sentence": "Set bullet speed variance of _PARAM0_ to _PARAM2_ pixels per second", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetBulletSpeedVarianceOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Angle variance (degrees) Range: 0 to 180", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the number of bullets shot every time the \"fire bullet\" action is used.", + "fullName": "Bullets per shot", + "functionType": "ExpressionAndCondition", + "group": "Multi-Fire", + "name": "BulletQuantity", + "sentence": "the number of bullets per shot", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyBulletQuantity()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "BulletQuantity", + "name": "SetBulletQuantityOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyBulletQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Bullets", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the number of bullets shot every time the \"fire bullet\" action is used.", + "fullName": "Set number of bullets per shot (deprecated)", + "functionType": "Action", + "group": "Multi-Fire", + "name": "SetBulletQuantity", + "private": true, + "sentence": "Set number of bullets per shot of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetBulletQuantityOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Bullets", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the layer that bullets are created on.", + "fullName": "Set bullet layer", + "functionType": "Action", + "group": "Firing", + "name": "SetBulletLayer", + "sentence": "Set the layer used to create bullets fired by _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyBulletLayer" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsString(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Layer", + "name": "Value", + "type": "layer" + } + ], + "objectGroups": [] + }, + { + "description": "Enable bullet rotation.", + "fullName": "Enable (or disable) bullet rotation", + "functionType": "Action", + "group": "Firing", + "name": "SetRotateBullet", + "sentence": "Enable bullet rotation on _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"RotateBullet\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyRotateBullet" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"RotateBullet\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyRotateBullet" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "defaultValue": "yes", + "description": "Rotate bullet to match trajetory", + "name": "RotateBullet", + "optional": true, + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "Enable unlimited ammo.", + "fullName": "Enable (or disable) unlimited ammo", + "functionType": "Action", + "group": "Ammo", + "name": "SetUnlimitedAmmo", + "sentence": "Enable unlimited ammo on _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"UnlimitedAmmo\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyUnlimitedAmmo" + }, + "parameters": [ + "Object", + "Behavior", + "no" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"UnlimitedAmmo\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyUnlimitedAmmo" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "defaultValue": "yes", + "description": "Unlimited ammo", + "name": "UnlimitedAmmo", + "optional": true, + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "the firing cooldown (in seconds) also known as rate of fire.", + "fullName": "Firing cooldown", + "functionType": "ExpressionAndCondition", + "group": "Firing", + "name": "Cooldown", + "sentence": "the firing cooldown", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyFireCooldown()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "Cooldown", + "name": "SetCooldownOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyFireCooldown" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Cooldown in seconds", + "name": "NewCooldown", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the firing cooldown, which changes the rate of fire.", + "fullName": "Set firing cooldown (deprecated)", + "functionType": "Action", + "group": "Firing", + "name": "SetCooldown", + "private": true, + "sentence": "Set the fire rate of _PARAM0_ to _PARAM2_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetCooldownOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"NewCooldown\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Cooldown in seconds", + "name": "NewCooldown", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the reload duration (in seconds).", + "fullName": "Reload duration", + "functionType": "ExpressionAndCondition", + "group": "Reload", + "name": "ReloadDuration", + "sentence": "the reload duration", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyReloadDuration()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "ReloadDuration", + "name": "SetReloadDurationOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyReloadDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Reload duration (seconds)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the duration to reload ammo.", + "fullName": "Set reload duration (deprecated)", + "functionType": "Action", + "group": "Reload", + "name": "SetReloadDuration", + "private": true, + "sentence": "Set the reload duration of _PARAM0_ to _PARAM2_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetReloadDurationOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Reload duration (seconds)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the overheat duration (in seconds). When an object is overheated, it can't fire for this duration.", + "fullName": "Overheat duration", + "functionType": "ExpressionAndCondition", + "group": "Overheat", + "name": "OverheatDuration", + "sentence": "the overheat duration", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyOverheatDuration()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "OverheatDuration", + "name": "SetOverheatDurationOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyOverheatDuration" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Overheat duration (seconds)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the duration after becoming overheated.", + "fullName": "Set overheat duration (deprecated)", + "functionType": "Action", + "group": "Overheat", + "name": "SetOverheatDuration", + "private": true, + "sentence": "Set the overheat duration of _PARAM0_ to _PARAM2_ seconds", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetOverheatDurationOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Overheat duration (seconds)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the ammo quantity.", + "fullName": "Ammo quantity", + "functionType": "ExpressionAndCondition", + "group": "Ammo", + "name": "AmmoQuantity", + "sentence": "the ammo quantity", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyAmmoQuantity()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "AmmoQuantity", + "name": "SetAmmoQuantityOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Ammo", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the quantity of ammo.", + "fullName": "Set ammo quantity (deprecated)", + "functionType": "Action", + "group": "Ammo", + "name": "SetAmmoQuantity", + "private": true, + "sentence": "Set the ammo quantity of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetAmmoQuantityOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Ammo", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the heat increase per shot.", + "fullName": "Heat increase per shot", + "functionType": "ExpressionAndCondition", + "group": "Overheat", + "name": "HeatIncreasePerShot", + "sentence": "the heat increase per shot", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyHeatIncreasePerShot()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "HeatIncreasePerShot", + "name": "SetHeatPerShotOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyHeatIncreasePerShot" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Heat increase per shot (Range: 0 to 1)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the heat increase per shot.", + "fullName": "Set heat increase per shot (deprecated)", + "functionType": "Action", + "group": "Overheat", + "name": "SetHeatPerShot", + "private": true, + "sentence": "Set the heat increase of _PARAM0_ to _PARAM2_ per shot", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetHeatPerShotOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Heat increase per shot (Range: 0 to 1)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the max ammo.", + "fullName": "Max ammo", + "functionType": "ExpressionAndCondition", + "group": "Ammo", + "name": "MaxAmmo", + "sentence": "the max ammo", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyMaxAmmo()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "MaxAmmo", + "name": "SetMaxAmmoOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyMaxAmmo" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyMaxAmmo" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "min(Object.Behavior::MaxAmmo(),Object.Behavior::AmmoQuantity())" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Max ammo", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the max ammo.", + "fullName": "Set max ammo (deprecated)", + "functionType": "Action", + "group": "Ammo", + "name": "SetMaxAmmo", + "private": true, + "sentence": "Set the max ammo of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetMaxAmmoOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Max ammo", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Reset total shots fired.", + "fullName": "Reset total shots fired", + "functionType": "Action", + "group": "Stats", + "name": "ResetTotalShotsFired", + "sentence": "Reset total shots fired by _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyTotalShotsFired" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Reset total bullets created.", + "fullName": "Reset total bullets created", + "functionType": "Action", + "group": "Stats", + "name": "ResetTotalBulletsCreated", + "sentence": "Reset total bullets created by _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyTotalBulletsCreated" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Reset total reloads completed.", + "fullName": "Reset total reloads completed", + "functionType": "Action", + "group": "Stats", + "name": "ResetTotalReloadsCompleted", + "sentence": "Reset total reloads completed by _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyTotalReloadsCompleted" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the number of shots per reload.", + "fullName": "Shots per reload", + "functionType": "ExpressionAndCondition", + "group": "Reload", + "name": "ShotsPerReload", + "sentence": "the shots per reload", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyShotsPerReload()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "ShotsPerReload", + "name": "SetShotsPerReloadOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyShotsPerReload" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyShotsBeforeNextReload" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "Object.Behavior::PropertyShotsPerReload()" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyShotsBeforeNextReload" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "Object.Behavior::PropertyShotsPerReload()" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Shots per reload", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the number of shots per reload.", + "fullName": "Set shots per reload (deprecated)", + "functionType": "Action", + "group": "Reload", + "name": "SetShotsPerReload", + "private": true, + "sentence": "Set the shots per reload of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetShotsPerReloadOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Shots per reload", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Enable (or disable) automatic reloading.", + "fullName": "Enable (or disable) automatic reloading", + "functionType": "Action", + "group": "Reload", + "name": "SetAutomaticReload", + "sentence": "Enable automatic reloading on _PARAM0_: _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAutomaticReloading" + }, + "parameters": [ + "Object", + "Behavior", + "=" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "GetArgumentAsBoolean" + }, + "parameters": [ + "\"Value\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAutomaticReloading" + }, + "parameters": [ + "Object", + "Behavior", + "yes" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "defaultValue": "yes", + "description": "Enable automatic reloading", + "name": "Value", + "optional": true, + "type": "yesorno" + } + ], + "objectGroups": [] + }, + { + "description": "the linear cooling rate (per second).", + "fullName": "Linear cooling rate", + "functionType": "ExpressionAndCondition", + "group": "Overheat", + "name": "LinearCoolingRate", + "sentence": "the linear cooling rate", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyLinearCoolingRate()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "LinearCoolingRate", + "name": "SetLinearCoolingRateOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyLinearCoolingRate" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Heat cooling rate (per second)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the linear rate of cooling.", + "fullName": "Set linear cooling rate (deprecated)", + "functionType": "Action", + "group": "Overheat", + "name": "SetLinearCoolingRate", + "private": true, + "sentence": "Set the linear cooling rate of _PARAM0_ to _PARAM2_ per second", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetLinearCoolingRateOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Heat cooling rate (per second)", + "name": "Value", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the exponential cooling rate, per second.", + "fullName": "Exponential cooling rate", + "functionType": "ExpressionAndCondition", + "group": "Overheat", + "name": "ExponentialCoolingRate", + "sentence": "the exponential cooling rate", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyExponentialCoolingRate()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "fullName": "", + "functionType": "ActionWithOperator", + "getterName": "ExponentialCoolingRate", + "name": "SetExponentialCoolingRateOp", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyExponentialCoolingRate" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Exponential cooling rate", + "name": "Value", + "supplementaryInformation": "[\"Exponential\",\"Linear\"]", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Change the exponential rate of cooling.", + "fullName": "Set exponential cooling rate (deprecated)", + "functionType": "Action", + "group": "Overheat", + "name": "SetExponentialCoolingRate", + "private": true, + "sentence": "Set the exponential cooling rate of _PARAM0_ to _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetExponentialCoolingRateOp" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "GetArgumentAsNumber(\"Value\")", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Exponential cooling rate", + "name": "Value", + "supplementaryInformation": "[\"Exponential\",\"Linear\"]", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Increase ammo quantity.", + "fullName": "Increase ammo", + "functionType": "Action", + "name": "IncreaseAmmo", + "sentence": "Increase ammo of _PARAM0_ by _PARAM2_ shots", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "+", + "GetArgumentAsNumber(\"AmmoGained\")" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If Max Ammo is set, do not exceed the value" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyMaxAmmo" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::SetPropertyAmmoQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "min(Object.Behavior::MaxAmmo(),Object.Behavior::AmmoQuantity())" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::IsReloadNeeded" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "FireBullet::FireBullet::PropertyAutomaticReloading" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "FireBullet::FireBullet::ReloadAmmo" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + }, + { + "description": "Ammo gained", + "name": "AmmoGained", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "Layer that bullets are created on.", + "fullName": "Bullet layer", + "functionType": "StringExpression", + "group": "Multi-Fire", + "name": "BulletLayer", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnString" + }, + "parameters": [ + "Object.Behavior::PropertyBulletLayer()" + ] + } + ] + } + ], + "expressionType": { + "type": "layer" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the heat level (range: 0 to 1).", + "fullName": "Heat level", + "functionType": "ExpressionAndCondition", + "group": "Overheat", + "name": "HeatLevel", + "sentence": "the heat level", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "min(1,Object.Behavior::PropertyHeatLevel())" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Total shots fired (multi-bullet shots are considered one shot).", + "fullName": "Shots fired", + "functionType": "Expression", + "group": "Stats", + "name": "TotalShotsFired", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyTotalShotsFired()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Total bullets created.", + "fullName": "Bullets created", + "functionType": "Expression", + "group": "Stats", + "name": "TotalBulletsCreated", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyTotalBulletsCreated()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Reloads completed.", + "fullName": "Reloads completed", + "functionType": "Expression", + "group": "Stats", + "name": "TotalReloadsCompleted", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyTotalReloadsCompleted()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the remaining shots before the next reload is required.", + "fullName": "Shots before next reload", + "functionType": "ExpressionAndCondition", + "group": "Reload", + "name": "ShotsBeforeNextReload", + "sentence": "the remaining shots (before the next reload)", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "Object.Behavior::PropertyShotsBeforeNextReload()" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the remaining duration before the cooldown will permit a bullet to be fired, in seconds.", + "fullName": "Duration before cooldown end", + "functionType": "ExpressionAndCondition", + "group": "Firing", + "name": "CooldownTimeLeft", + "sentence": "the remaining duration before the cooldown end", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "max(0,Object.Behavior::Cooldown() - Object.ObjectTimerElapsedTime(\"__FireBullet.FiringCooldown\"))" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "the remaining duration before the overheat penalty ends, in seconds.", + "fullName": "Duration before overheat end", + "functionType": "ExpressionAndCondition", + "group": "Overheat", + "name": "OverheatTimeLeft", + "sentence": "the remaining duration before the overheat end", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "CompareObjectTimer" + }, + "parameters": [ + "Object", + "\"__FireBullet.OverheatDuration\"", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "max(0, Object.Behavior::PropertyOverheatDuration() - Object.ObjectTimerElapsedTime(\"__FireBullet.OverheatDuration\"))" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if object is currently performing an ammo reload.", + "fullName": "Is ammo reloading in progress", + "functionType": "Condition", + "group": "Reload", + "name": "IsReloadInProgress", + "sentence": "_PARAM0_ is reloading ammo", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyReloadInProgress" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if object is ready to shoot.", + "fullName": "Is ready to shoot", + "functionType": "Condition", + "group": "Firing", + "name": "IsReadyToShoot", + "sentence": "_PARAM0_ is ready to shoot", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyHasJustFired" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::And" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "BehaviorActivated" + }, + "parameters": [ + "Object", + "Behavior" + ] + }, + { + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::IsOutOfAmmo" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::IsReloadNeeded" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::IsReloadInProgress" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::IsFiringCooldownActive" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::IsOverheated" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if automatic reloading is enabled.", + "fullName": "Is automatic reloading enabled", + "functionType": "Condition", + "group": "Reload", + "name": "IsAutomaticReloadingEnabled", + "sentence": "Automatic reloading is enabled on_PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyAutomaticReloading" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if ammo is unlimited.", + "fullName": "Is ammo unlimited", + "functionType": "Condition", + "group": "Ammo", + "name": "IsUnlimitedAmmo", + "sentence": "_PARAM0_ has unlimited ammo", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyUnlimitedAmmo" + }, + "parameters": [ + "Object", + "Behavior" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if object has no ammo available.", + "fullName": "Is out of ammo", + "functionType": "Condition", + "group": "Ammo", + "name": "IsOutOfAmmo", + "sentence": "_PARAM0_ is out of ammo", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "FireBullet::FireBullet::IsUnlimitedAmmo" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + }, + { + "type": { + "value": "FireBullet::FireBullet::PropertyAmmoQuantity" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if object needs to reload ammo.", + "fullName": "Is a reload needed", + "functionType": "Condition", + "group": "Reload", + "name": "IsReloadNeeded", + "sentence": "_PARAM0_ needs to reload ammo", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Shots per reload must not be \"0\"" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyShotsPerReload" + }, + "parameters": [ + "Object", + "Behavior", + ">", + "0" + ] + }, + { + "type": { + "value": "FireBullet::FireBullet::PropertyShotsBeforeNextReload" + }, + "parameters": [ + "Object", + "Behavior", + "=", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if object is overheated.", + "fullName": "Is overheated", + "functionType": "Condition", + "group": "Overheat", + "name": "IsOverheated", + "sentence": "_PARAM0_ is overheated", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "value": "FireBullet::FireBullet::PropertyHeatLevel" + }, + "parameters": [ + "Object", + "Behavior", + ">=", + "1" + ] + }, + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "Object.Behavior::OverheatTimeLeft()", + ">", + "0" + ] + } + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if firing cooldown is active.", + "fullName": "Is firing cooldown active", + "functionType": "Condition", + "group": "Firing", + "name": "IsFiringCooldownActive", + "sentence": "Firing cooldown is active on _PARAM0_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "False" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BuiltinCommonInstructions::CompareNumbers" + }, + "parameters": [ + "Object.Behavior::CooldownTimeLeft()", + ">", + "0" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "FireBullet::FireBullet", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "propertyDescriptors": [ + { + "value": "0.1", + "type": "Number", + "unit": "Second", + "label": "Firing cooldown", + "description": "Objects cannot shoot while firing cooldown is active", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "FireCooldown" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "HasJustFired" + }, + { + "value": "45", + "type": "Number", + "unit": "DegreeAngle", + "label": "Firing arc", + "description": "Multi-Fire bullets will be evenly spaced inside the firing arc", + "group": "Multi-Fire", + "extraInformation": [], + "hidden": false, + "name": "FiringArc" + }, + { + "value": "1", + "type": "Number", + "label": "Number of bullets created at once (Multi-Fire)", + "description": "Multi-Fire bullets will be evenly spaced inside the firing arc", + "group": "Multi-Fire", + "extraInformation": [], + "hidden": false, + "name": "BulletQuantity" + }, + { + "value": "0", + "type": "Number", + "unit": "DegreeAngle", + "label": "Angle variance", + "description": "Make imperfect aim (Range: 0 to 180 degrees)", + "group": "Firing variance", + "extraInformation": [], + "hidden": false, + "name": "AngleVariance" + }, + { + "value": "true", + "type": "Boolean", + "label": "Rotate bullets to match their trajectory", + "description": "", + "group": "", + "extraInformation": [], + "hidden": false, + "name": "RotateBullet" + }, + { + "value": "0", + "type": "Number", + "label": "Ammo quantity (current)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "AmmoQuantity" + }, + { + "value": "0", + "type": "Number", + "label": "Shots per reload ", + "description": "Use 0 to disable reloading", + "group": "Reload", + "extraInformation": [], + "hidden": false, + "name": "ShotsPerReload" + }, + { + "value": "1", + "type": "Number", + "unit": "Second", + "label": "Reloading duration", + "description": "Objects cannot shoot while reloading is in progress", + "group": "Reload", + "extraInformation": [], + "hidden": false, + "name": "ReloadDuration" + }, + { + "value": "0", + "type": "Number", + "label": "Max ammo ", + "description": "", + "group": "Ammo", + "extraInformation": [], + "hidden": false, + "name": "MaxAmmo" + }, + { + "value": "0", + "type": "Number", + "label": "Shots before next reload", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ShotsBeforeNextReload" + }, + { + "value": "0", + "type": "Number", + "label": "Total shots fired", + "description": "Regardless of how many bullets are created, only 1 shot will be counted per frame", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TotalShotsFired" + }, + { + "value": "0", + "type": "Number", + "label": "Total bullets created", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TotalBulletsCreated" + }, + { + "value": "0", + "type": "Number", + "label": "Starting ammo", + "description": "", + "group": "Ammo", + "extraInformation": [], + "hidden": false, + "name": "StartingAmmo" + }, + { + "value": "0", + "type": "Number", + "label": "Total reloads completed", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "TotalReloadsCompleted" + }, + { + "value": "true", + "type": "Boolean", + "label": "Unlimited ammo", + "description": "", + "group": "Ammo", + "extraInformation": [], + "hidden": false, + "name": "UnlimitedAmmo" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "ReloadInProgress" + }, + { + "value": "0", + "type": "Number", + "label": "Heat increase per shot (Range: 0 to 1)", + "description": " Object is overheated when Heat reaches 1", + "group": "Overheat", + "extraInformation": [], + "hidden": false, + "name": "HeatIncreasePerShot" + }, + { + "value": "0", + "type": "Number", + "label": "Heat level (Range: 0 to 1)", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "HeatLevel" + }, + { + "value": "true", + "type": "Boolean", + "label": "Reload automatically", + "description": "", + "group": "Reload", + "extraInformation": [], + "hidden": false, + "name": "AutomaticReloading" + }, + { + "value": "0", + "type": "Number", + "unit": "Second", + "label": "Overheat duration", + "description": "Object cannot shoot while overheat duration is active", + "group": "Overheat", + "extraInformation": [], + "hidden": false, + "name": "OverheatDuration" + }, + { + "value": "0.1", + "type": "Number", + "label": "Linear cooling rate (per second)", + "description": "", + "group": "Overheat", + "extraInformation": [], + "hidden": false, + "name": "LinearCoolingRate" + }, + { + "value": "0.3", + "type": "Number", + "label": "Exponential cooling rate (per second)", + "description": "Happens faster when heat is high and slower when heat is low", + "group": "Overheat", + "extraInformation": [ + "Linear", + "Exponential" + ], + "hidden": false, + "name": "ExponentialCoolingRate" + }, + { + "value": "", + "type": "String", + "label": "Layer the bullets are created on", + "description": "Base layer by default", + "group": "Shooting configuration", + "extraInformation": [], + "hidden": true, + "name": "BulletLayer" + }, + { + "value": "0", + "type": "Number", + "label": "", + "description": "", + "group": "", + "extraInformation": [], + "hidden": true, + "name": "RandomizedAngle" + }, + { + "value": "0", + "type": "Number", + "unit": "PixelSpeed", + "label": "Bullet speed variance", + "description": "Bullet speed will be adjusted by a random value within this range", + "group": "Firing variance", + "extraInformation": [], + "hidden": false, + "name": "BulletSpeedVariance" + } + ], + "sharedPropertyDescriptors": [] + } + ], + "eventsBasedObjects": [] + } + ], + "externalLayouts": [], + "externalSourceFiles": [] +} \ No newline at end of file From 51cfd3a32a1ad42d5e5b262e4b592b4d6d18366a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Aug 2023 00:56:01 +0000 Subject: [PATCH 2/2] Optimised images with calibre/image-actions --- .../wave-defense-shooter/android-icon-144.png | Bin 13157 -> 10974 bytes .../wave-defense-shooter/android-icon-192.png | Bin 16928 -> 14169 bytes .../wave-defense-shooter/android-icon-36.png | Bin 2652 -> 2415 bytes .../wave-defense-shooter/android-icon-48.png | Bin 3895 -> 3427 bytes .../wave-defense-shooter/android-icon-72.png | Bin 6267 -> 5291 bytes .../wave-defense-shooter/android-icon-96.png | Bin 8367 -> 6793 bytes .../8BitOperatorPlus8Regular_Edited3.png | Bin 5299 -> 4548 bytes .../wave-defense-shooter/assets/Bullet.png | Bin 133 -> 118 bytes .../assets/EnemyBullet1.png | Bin 227 -> 172 bytes .../assets/EnemyBullet2.png | Bin 231 -> 173 bytes .../wave-defense-shooter/assets/Ghost1.png | Bin 337 -> 209 bytes .../wave-defense-shooter/assets/Ghost2.png | Bin 341 -> 204 bytes .../wave-defense-shooter/assets/Ghost3.png | Bin 339 -> 200 bytes .../wave-defense-shooter/assets/Ghost4.png | Bin 341 -> 204 bytes .../assets/Ghost_Hurt1.png | Bin 178 -> 143 bytes .../assets/Ghost_Hurt2.png | Bin 337 -> 196 bytes .../assets/Ghost_Hurt3.png | Bin 336 -> 197 bytes .../assets/Ghost_Hurt4.png | Bin 338 -> 201 bytes examples/wave-defense-shooter/assets/Gun1.png | Bin 322 -> 199 bytes .../wave-defense-shooter/assets/ImpFly1.png | Bin 518 -> 327 bytes .../wave-defense-shooter/assets/ImpFly2.png | Bin 497 -> 319 bytes .../wave-defense-shooter/assets/ImpFly3.png | Bin 528 -> 318 bytes .../wave-defense-shooter/assets/ImpFly5.png | Bin 497 -> 319 bytes .../wave-defense-shooter/assets/ImpFly6.png | Bin 528 -> 318 bytes .../wave-defense-shooter/assets/ImpHurt.png | Bin 225 -> 180 bytes .../wave-defense-shooter/assets/Player1.png | Bin 433 -> 259 bytes .../wave-defense-shooter/assets/Player2.png | Bin 437 -> 258 bytes .../wave-defense-shooter/assets/Player22.png | Bin 437 -> 258 bytes .../wave-defense-shooter/assets/Player3.png | Bin 444 -> 265 bytes .../wave-defense-shooter/assets/Player4.png | Bin 437 -> 258 bytes .../wave-defense-shooter/assets/Spider1.png | Bin 327 -> 211 bytes .../wave-defense-shooter/assets/Spider2.png | Bin 354 -> 230 bytes .../wave-defense-shooter/assets/Spider3.png | Bin 331 -> 210 bytes .../wave-defense-shooter/assets/Spider4.png | Bin 372 -> 227 bytes .../assets/SpiderCharging1.png | Bin 311 -> 206 bytes .../assets/SpiderCharging2.png | Bin 318 -> 204 bytes .../assets/SpiderDropping.png | Bin 170 -> 146 bytes .../assets/SpiderHurt.png | Bin 189 -> 151 bytes .../assets/SpiderShadow.png | Bin 121 -> 116 bytes .../wave-defense-shooter/assets/TheRoom2.png | Bin 23537 -> 17369 bytes ... Button With White Blue Border_Hovered.png | Bin 299 -> 244 bytes ...ent Button With White Blue Border_Idle.png | Bin 295 -> 246 bytes ... Button With White Blue Border_Pressed.png | Bin 274 -> 229 bytes .../wave-defense-shooter/assets/Vingette.png | Bin 14640 -> 10172 bytes .../wave-defense-shooter/ios-icon-100.png | Bin 9233 -> 7702 bytes .../wave-defense-shooter/ios-icon-114.png | Bin 10739 -> 8921 bytes .../wave-defense-shooter/ios-icon-120.png | Bin 11366 -> 9542 bytes .../wave-defense-shooter/ios-icon-144.png | Bin 13157 -> 10974 bytes .../wave-defense-shooter/ios-icon-152.png | Bin 14696 -> 12557 bytes .../wave-defense-shooter/ios-icon-167.png | Bin 16303 -> 14028 bytes .../wave-defense-shooter/ios-icon-180.png | Bin 17948 -> 15551 bytes examples/wave-defense-shooter/ios-icon-20.png | Bin 1101 -> 1049 bytes examples/wave-defense-shooter/ios-icon-29.png | Bin 1921 -> 1812 bytes examples/wave-defense-shooter/ios-icon-40.png | Bin 3070 -> 2790 bytes examples/wave-defense-shooter/ios-icon-50.png | Bin 4172 -> 3680 bytes examples/wave-defense-shooter/ios-icon-57.png | Bin 4856 -> 4189 bytes examples/wave-defense-shooter/ios-icon-58.png | Bin 5006 -> 4268 bytes examples/wave-defense-shooter/ios-icon-60.png | Bin 5237 -> 4448 bytes examples/wave-defense-shooter/ios-icon-72.png | Bin 6267 -> 5291 bytes examples/wave-defense-shooter/ios-icon-76.png | Bin 6806 -> 5737 bytes examples/wave-defense-shooter/ios-icon-80.png | Bin 7252 -> 6068 bytes examples/wave-defense-shooter/ios-icon-87.png | Bin 7967 -> 6653 bytes examples/wave-defense-shooter/thumbnail.png | Bin 241920 -> 217744 bytes 63 files changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/wave-defense-shooter/android-icon-144.png b/examples/wave-defense-shooter/android-icon-144.png index a13051a51a5e09ca471c24efda31b4b3fb122721..c971b5a569710548a49c9cb0ab79a8b029a5d0ba 100644 GIT binary patch literal 10974 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 XyPPPp5I}wFl>N7zh17Yephq literal 16928 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 S;RZbUfx*+&&t;ucLK6TUU-#hv diff --git a/examples/wave-defense-shooter/android-icon-36.png b/examples/wave-defense-shooter/android-icon-36.png index 9233620215e2debff6101567e33c8d6ec0671482..403db3f5b1f3590df614216f978e12e62bbc687d 100644 GIT binary patch delta 2404 zcmV-q37huZ6z>v{B!3BTNLh0L01FZT01FZU(%pXi000RgNkl@YCSus)P^7GxWCW)u_y0#lS>Gf`2HA|j*+qA{*DW;;g{iOo{2r#Uw5 zY4upEv1!sQwpL4Hb8MSG^wg6WmwbEQoi}gh&5Xo9>N(#tbAK;)?(g${zu*1+?o-5Q zJCUX91fw$(ai3Z^#J8*g*^zKoS&(`3nLe7SDx9B%%_#yCKSNK6J5xXk#KFk4r<8 zTuXmv*{jnA!GQ?otsb%(%H-T<4G*Icih6~ti-}0U(g;5^q=aEmmxyD=H2k_f57+yO z@%ODIyb7WN;1?LpdxmlJ4hJIuVm)LT*u~tMJ6an^Vt;BaynUn)&+)`I0%33XNovlB zz&vlstRZs(Vm-9nuno%%0~Xb>pWEy-0CnYaV3t+Es0>A)Iv!_QvY!fQxJV9ncQFd< z`Yn4KIU9og9YpMlj6a$LE5j3%lu?X8@3~I}!RlszDZc0{!NHmonpmBambzt6}6ff!zxFh$OHy){@$2w%p!@KkMkQV@X?FU;=@B*sNt&zHe+U>4F4Rh$5)4X z@#Q-&;NNEtuZKP-4KZQC@Njph>)qVk`1&LbOW?xf90gZi z6MxM{TWs7!H)U%ITYDD!dST&wFW#7^rzaLITEvfshlg?g{CV8IeH%VLK6GyWLdpLR zsJdkg?jB-DCB7)iQo(F2L0otUv|250-n@y&j~`=XWP}Hro}PyFUwV2v=Ph^CwvM|z zT@><%fE*XGPq?MIhR+jIbs-pr;SIA8R)3(;(NQ{g_wHSoTc1IWB8JWv88*6nV52=4 zXZHu|kTfhFYIy{H*{#R7zj+P2dz&DUNbumn16;dy4Mz_jL`!KlhMLMTWLg24Oh$T~ z80Km<&Q11Gpk>ROU@%Px_a@^ycFrp9Fo~Q_7r($VAFIei1j!vXssHu%6mGn|4}Yh} z%m@vXP-Ba{y>R7VA3oZ*0cW??qc=Ae&p%UwH#gSfRC6vpr3yxmC!J;%s;+I9MW$Vj zK+fM&b80ci!yPAAXW`TR&tc}o^Rx!->spCd%+lj#YM9kU!8dg_h&xCqkDJo z^G-c3bQDl9c0GGS1A?QUt`3C1|w&INFC-`%Sb^RyB_}?LRA! z{lXRWa}tZgv#>a-5X!t>fua<(B-srFHW{UF{Q`>ZlMwIx3FZ#%K*`{o(J;PfTm#K|*77NK{qQCuZ+D{@QXh z-1`n44}hV2_p$5phhUDr47Z^X1donk%Z46Yd2Kh`2vC-GwH?e9Uv~sRd>wK@s!FRS zAxbA8JqV7>gEF-YQL-SsG185{{%juxnyV2ywHFcBXRw|Cz4#FL;(vSK7SVdRXUjao`wye;&Nt{LP+dfO2-pXYf!)V{1!Zmzc_V2=#9|GC{E{IhN=zz- zM&C(}__*sF;z7v37JpOH$JUM_CP9zTXe|kk8*ZIG%(o9K&`-CR;P=w2Xt{M8*NJD| zdj#wxKx_z^rg1^uDY82en_P!b*)r-iSx^d6GV4eK-{O4zF!DD!Tjp0Z4kIi$js7?^ zAR0&d+Ng)@p{~9@4iU+xxWVn%dGQiH{_i~+vQwYUa1dsv1AoCPi7_E6PLJTgRJ#9? zlnPp<`AW?LImFdK7HBJaAPZMP9vO{^M8ZSg82xIBCu&iNG)!Hf7L38*O?I*qQbDL6~~ABP@Y`~sc#~r{z_WA z1)3`vIC8!`EYahKu$>;^2*w&d;`MJ zTB#uo_z=E+{}tY&DY4Ozg{lxP%b+0&k!B)BUX7?|HGdSUazV2dxjOPjhpx;5#j7-k zi&vqFw2L)m1z4JvMy?fWc^Fo?r6yEp)Hu6mE6ult!eyviu0@b64h0n*GzD~38=z3? z5uczVb|z3mykon^+xIfA+tzYd0sAWm3uHCwwSa`mFPNM@l>mkUm6+fokx@@ZhJ`_% zqCs+IDSryc@15)2gza6;WP7m?)tPK}5*Egq0PYd;(f=5w*hgowhsG($^NjkzF!D43sA1zxY)SaVpMQ=EXLU+uB8Q15HjJ_ za)m=rV}aQ3Weo#Dn5P9=+2?#y)R;$wfdCWBi3+jAs4@Wt5+K094CDYNYFtTxA&Dwa7$6J;GGTyZm~jI$qf}fV zKc6K(pCP}Hp)jANkk8S#<4Yh>BN-s7j4EMZ!px{~&5SC~zySmpU{sk5JTMFl#;+VF zml-BMpP{gjrGHc^;By_(nTpZZ7^gd3$6J>Vk#|!xwQWEqz`-yuqe?;&NG#_X9vEPN zfg}tN6$TjB7~tkdSs$6Cdu5z;jcZt)j?tZtvnmzCbwth6Kkny)Oopbm4HzIZswA$F zxPciiCcr>|fdQgIfPu-#T^(iU{9EMbGdy=+H(%SalYjqDcRI#9V;L~vGZ~opL=tYQ zu>mlu43N0aSS;qzLYaqFyR1ofac5VWPop~>r!aqoWIBl?5MWe@k7b6NN~iD{AMM29 zpEGgtm;CtI-FzA*Q79WL;$b|mL?|rci3X|+j2j6su5%Gfj9Xkfdzi-J2w(k7FJ;dN zIHF3z3x5Rh0zuru9KK>S$y|CBWjDn1z*%4v-)wf0SX~1(5>;kY86d86LHHyvGnN}4 zK1Xo!Je{}oaVfJvFp;FLtB0~1!sOtTOEeB2!;RGwO1BbiT}3z?Ch9FRJ#>+1Fu+V^ zoaXi(#1b>E5nzCEooi;?$XFukl1&T_;xGeO#wdFpk}xxTv)Ks{2;nm`YQz%bI@kDkiDVPL@4t7ELaEHi zOn;syUwVg`xp{n%NQ6ivLMD^J_x$tEvwQb$)~#DdZ*MQzY?fShg5QSACx|8*Z~`u; zG9_;B>0;~7HVz&-!uC7w;>8zVq_eY=0|ySUZ{I$A8#iub*REaodU|^3@9$?mca?If zj1vg3oT!k%jOAQzA_>eez;#1J<4K-*Ig8nvOOuk57@Ri}Bju zJ&Ri^GBPqkc1?_yJ)fhyIYstZKZ&qQE;|VlHxLLg1I)kxfy)g9qQa<2Bv)|sL>@Dk z9KJ$bx{20wl5c+bb0oY1n*&*zhJTLWOG)(XTFXMRm3*np;OHW4i3qdV32r5P64#g+ zE}uXWiPQ?pp2Or^krRjBWOUAOR&8R(nl@s^9J7})gmyhny6-OB#+AJK+#iz84bYN^ zFbJ$nMme6Hdj?C2V7#EwN_IjJfO-;g&epm>~({MlKcNRx^|1%+F+LT)Tmqsga{3;&BF!{S+xc z`m=jUJ$OIekL=~KVuAR{zuJpK9rk8SBhKrTB$x__mUDg&d!3?!~G zBha_)f&EC_?BenNWnq4S`nL6q4;>~Rn5CR~pTB_w(!Gm{W+V~cG8qevg`H@{Qa}fL3=0Zjhk2u26@+m z5rd{!4DW+0oV$=G6mP(h!|c>JS56;eW_p4^z#&qX06E;uMFKO-^N@s3j@bUt;~aha zZLW@-z`O!aKJ*z}*JZhHJ@Y8vj6_Jz&hU-;C?`BPYVdLy`hO3;2NK~#6X8S?Ub#d* zJ3{X2FjH^7Mlc+qxoa>9wW^G*J`Sy!G?@@repyX80Bh1umcLr#LfBs;-`uO<`_d zzZ%DJ@VS8ilK97GzRp}-0yi3EXFA1Q;SixSm-xlMy@pp_L{0#o9EV^uNi5w#G}VTg z$c$cM_{=d1^M5%SS9StMVAHk-_KOMu1_C7EhC+0#-%NdDGm}#zyno^Y{_OYnB8ft= zh=9NS*O&R9(}PU4wDJ1Y4FB?OKPN{S;d9&&;krg5 z$yVm3F4DGk19hoJBoXM__P~B>B#^)iNk|USM3QhU&VSVCAY6QAG0#Kbrk&YfXyY6x#JkK=|31jG0i zriUmkWa!;-FHRtUFR*$01N*6wxJFb6-&}5*D?{fw_||Xu?tdL*-&Y@JIyc9=Cogc@ z&fg=RNPiP@Tt*MQ#uF)z@Bh_P+`VND+ctOc#NO?^^y<%8APkEIW=7AG&yIn4c*QKK z70onvu0sMzxF8U>Fr&f%!%HCM++7#lc4v44=`jy=CiX|V_xHLjUaWrmqyfB;D# z0m9ePz8>GfH-17e7$(us!kX3)H!%41ku&`C^WZrcIU$^%w;I%=SVfS z<9{7S&WYs3`IyccTiZN4t%`?>dmu)Rc7=_NEfflcfZ)i9 z+{&`h>Nyx%hc!<*g4r!n@|FY$W{_=~P01e6n|}!r31F7c(I3E{G zi}A(ctWfMMjljiTJ#0k_5ZU;^;fxs#uBHXf4gY$ehj1$|OK!4uXjo29r}-Y+Gjbc!CYBYzn^3`w9!OASb}fQ_N+)@#4s}UESd%vad!{Gi%mV!b z3t-^qJQBl(*>`mW1HN)n)kXiJ3URVGho2Y9Vcf z!u?B+PR5y?%LN>Lyq@+kJ28Ov8Iw|CQ9!wsm8dYSz>^R|?geI<|2_61zCH9b?PH};P5T@lnI=2C zmIx0vA&WEL%Ypo!*9%))dng@;)4_SX*RI>`mruwgPM4MD!|hx1P`(ghbW*|Dt~~$*_E}~Jyl79fVUSG$&$Q#Y9G$;+k%6e zy0CG64dzbHfj%J;UT!YL^GKugC@0s47jVCqD?}csuP};|-$$^sJOS_RSdHyV>d`Ty z2>GdT81L%^dpld%l)}l$3GwmqP%4#@_R_iQsLfY4J&DRj7M3>dAOYn=6rhgFp?`yg zdN?A0hI-_Y+@EFZx4FCefxG?ym%3J@7|@bx3?Fb&C1Gx__J->Hc4M8xph{(jhry6 z0>m%yFX<<@(ZR|L$@uB`OM<;Gt$&+B+YcN#AR!qN5+V@v^YfG3JAC-CL_lO>9(5G= zbDI@1-0mxYZ!50tp@Zo(q14OVdiQr!z^>&@w0-^h^%9Z=1qBk4*REZ|>C>mt-`|h! zrHiq-wGwOVS@8j3Nmd2Oig=Js%zGw#hmjaF!XEo;k_8WReD@kkqM@MycYp5O!MSti z@cQeoV`)!+*f;&T8!HtRb<&h`posPn?%~9Gs=75p z6TpxcK_MG?W!f0K(w^U`ZgR~8$f-AN>||ptY=+sQR1+XXg-UZ=R1&dK++Zz5(ydOULaSS26JGJ-VrHUb( z<>0}PXVPh7*&>V@?tcdFv1(+6XwYSdM@w2PJYCcji2)isHYph|%}A!?zQ2A2_kOsE z+n;}m?@k<~D{yX+kqThGnP)mOSa%y9qyKHGghdx>hVj9f@b^uED%c2b&v=1!M8a%@ zMpeSkH;r6J&^9k3FjpOoXR8eOtgBGItX!IhBg-nVx4nW2@P7@8wm9}f3n-}Sro?=_ zb%@Srr%=b&Atlp7LgOctN(l1^oG=+7G1Czkl24yAKKnAtKmHWa&peOe>&YOi z)=-45?8egWMt_`sv;x;R*5K~Ze(J^ilx{R#uV^6SHEohY#6!ZZiTxImIe7t_=sjO= zl0lB008MJEKsqXYAp#(L3n-d?zK1PmKY{Uumtf!X z1QlYpdJPJ<_F?~qmH7Gny~x!@)Ax(2SDKOEBuk#3+5ck?<4O#8jnd$;1yuMisCF#m=MxTs+mJD6z$s z&IYuU8h>$Y$0{MQ`|{9Eq;@UF*kdPAa`PuDpq*eB@ua7I1+H>JuKqfJy2V=%5S&Yj zoG8H|Fit|7J`=??JytVN$sQ2fnE7&*)o*~0S1i2Tqp8V6rZmHb*s4nDihHL9myJJ= za?yG8NZ5FfgZk1{lzsOTIyh5eu!5|{D@4pkw|{h)^x#(DaS@2 zG|Yg^ye5>+S$7`++|2V!BDJ?ZQZ21Vd`dOc3A5lEVx(r%RX16-l)QEH1@yMfKuG5z zxShX<_OJep%VfsiBD24dkZ7zulQ4wj!hjf;1F5%$1&B4i&~fsD4N zWCe(!Ch^7G#8kdoB&E%ulgcM{3SmQt1emMLnAk{{lv!F=r(m+-Z1LzU`Bk|5r>BTF zBIPDABgW&nuIokJ8;5Z4$`{o3&s_TtVt+C_5UC@5YAUG-SrZbKzJQq6bolzDQW1fw z6l&UovQhJ+J>HxuMVqO3<|>3nW@E%iC+t{SFCqTT+t1PTdUZYPofJwh()lzfR;&`@ zfSP!p;?8x{RD!|^S$lWWKow-9fiXH`p+zA~&}5$1W>lk;2q@)53|#<+tfCf#Xn!)0 zo20=T8y~@)5B6f<^nQf+DiIr^g14IshL3QBZ(tO8E)!ANl?bctz_5m9C{{iOH&r71 zJT*A7V=cOBs}b&J%B8%O2?!1=rmG_ru#l!NO4kY0Lovh!0Tq^NPLXNR;|^}KGXf?g zOcDwgrRx}MXstqCax96a>`4W4KYyd3Q9zWgn6?)d=<)O;ZRnX(E3Dk@6E9;esousq z1_(ktiK+VfrV1vej<2Qd;cBB`)(rV_b`SIkVR;Y)QKqv>Mu5&xLkT&K8UYul(fIS$ z6_m`TMRVcoI*t++3y4Xbim@JkIM}yDVs?LjVFQW8FJsfuD`hpKOTJ%E{-FibazL*E+0zYFzQ|SNy{r=ikO6{Q2A-eOmE~4z52`q zh_g|yKw!$WQVwkGDfPX)0Dm6#!$-1tki7#uyn{(P&?GBBlT=9m&|q^W8{}qW!`nXs z{-jK0?&no5kxgkBqT>C@^4utsPK)bJ&d18_i>%^SWH2N-#HW{&O0AA1%C}osg(O2Y z0>ZWQJT#8HC%#7on8hOTA0N_#hF-A%X|Y@?nsvGKVq*CtFqU>uqJNn(uqJ?-S0VGe zL1@b=YKCEII|^oW5Bg6)LcW3JXdaCflH&?aVTBoaak5vz{gx$eg*-2S2j7-M$jcum znj8o3_j%VT*~DT2;^OB2E&w}*DMtKGG3S+*iuzH&Iu1tcUS7?_X{NJ}XV zFlia4rF1gW&}lmqJO!rxqcbJYls2>jCYhEYluScf&Zef&gq+yKIErLha;&v=uC$l- z(C+(HZ`UiWWI1u*kA6OK?X90s6cD9G1w?VE4G1d~5uur?(o7XlK$KM~Y$U8v>V!IF zjTo#_n;J0y6`GlXAOb4X37`TB2z3IYfuE5 zKZK~zOhiG28fBHB)Tp4UG&4~}MZg9G5b6X_RwyVa3J5i-Ab?UQ)GU_^6qgn$E-g?h zW+>!SlnQA|g*3KZrNQkDVEMx!)QEDPplm_}VTA}AnaT=PP~`&38iN%IHXxv?pm6r| z3oOo0P{^mKR?2LqFXE@S)yF_vkiMv&@$6Z?`LpNf=(~zo#|}WK6F{j^1rZ#=#hHpt zjj~Eaa42=c3Y!ZkP%h=jrKf1~d+6KJ%3wT5Z>yi}Z9)2@e)=K-yrx03AC63O_~{gd z{5%e&PE=VX!YUCipo+t!L0F@J00N?{V^=F=7Lyc~QWWxO-q{QHzyDT3mYYk}7xCjL zMuSymAqXEvO3y3TeXo<2)sZlN@fU=&6P^Y}6 z%5sVBXe+zj3971GDm6?>fhbkCm#XO{H9O1PnF)ek6GwJ&nm|jGjYOzXWt9TLdM1}( z_S_gp9{+pZxwD;nuiZx2a?_xON!9J8;*&O1S$Mr(irFsyYxpI4T75WjnRyz7HL9!<>XbTVjfpDCW|TT15RBk*xtYlo zag-`HrHW0UP{8l=;k7KhUN1h&!sGSg+qVywX|kE+s?FGZp7B&3M`mFfp-$PHa&ab` zQq~b67;a-aHAT5<<8c`{OjU-4hS;c5t@85tBxA{GhQ}v)<<+yCnw;Xq_$1S*MO0ap z%gpoZFj*mh(oAS3KrkF9otk1QQ=~WIM}hI=IgY$=oD<`dj7?54JdtGN^jS_%&9Ypn zvQbM*3s+sWpUKHdrl+TIEM-$vtIN1dH--o(HMS}Z!Wv~gQvu=ig(6!>j=#h|K68q4 z#pYbLNU37OqtDaKG)=Z`+s??y2n~1Mc_$A&^bqlQ91-EZ`|jg`2Ogjyo1UY!tpio+ zRA~@io5>30wJ8v2X~Quxo5RuD9%FlVJExM+8ee_xo91UdEA5 zr%5CdGz<(3&@7jpBOL7jlxD(tBGjm|k;x`Rgc?;G3WOpF9CyF%dJZ4@1b)kld?dM;O}Lh2zwzQGW z5YAHtp~h4ily#Ik5gdXLj&5OYYJz-e8DlYpsb4&2{|=`n^>W-QD!{b}{qHFDa)}1U)WtnR#kNxPX9Ar%IhF4JMmW)~JFAjzCKr zb5j#crVH%wm@MV8L_#6<@7PMdP@=!Rjow&@L7&ZAI^Be)M{z9|F{;aaa(^85$H}$z zQVhnJKJg3eN`>yQpW)do8Bq)TrVxSx2~#&=3sAF~mhOQ^AoOeTBlZ@}t=)4qm&Roe3}AN{Ms161ifT zw|w?r@WeV0!^PsOCwcZ$_Yf{th?!L^LveJ4eK_*j6tVVx-YAn*LW9sC)QGTLE)opK zusp3iHR)r%nCFIG59yN4_l_s|-U~_kT21a43bH*4ZbK^y!7MmQ!W*VcV9(0o8rXm5+`OW#0IXXwKq>8mE`nd ziZ4CAh#|1A-9!5RdwKI#9~M;{?JX7!mfJ{%f^u#C*U$lz`PauLP5W$g|AIEh2sN~Z) z_I>V8X}xkEBhNm^aAuyv1%tyzoIx$|UVE0iBt=h)MYUYQ>krTsk8pNw78Jw~)=@=7 za42g;Kov|@2p1!$+Dwg)B4Xfc?Vv$b$;_XkCDO;_$tPJZWiVY9Rxn2NUAGa7wUOAn ziyNv{c8(77#Iav+WPF0ZmTvw=x_O7!$A_O8nH zZshDuH)9KI@%b2Z8Qk5T;63~H@>`c*&Xz!csce?#kB;!-e+)F>-dsS#n7Dh}7~0|yU@2qJ=rAT&{B{H5o~rx$4H+==N8kUV*W$&nv%=$<#T zy(7xK@4lILz2yKOc*l+W?j1MtRN2K$XD>TDy9jyQK}As)|EIXb?l_8rX$x3#HOB znbZX7xlum;8wa`d+AG;;xl$qEb#v;<>zUhkB{!M|e-sK36DR@G3a1sm``ZzyE|c{1 zt7PV9u(e9Siu2CvE@v}Azn?$;(0h5}4?e@hi^uSP{_|9$t?YKY+3kXi!f}Pa``)u` z#^tsM#NQzJ~B8o?I~v1RK3Jv;Xyh6{&l_tggvp$fuzf~wNY zFbpb{Wy(uSh?xA-l$pi!`VleM$mO=MLJ0!#t(aB|cBM=yzsPc_Naw&12sNgv;tDk86twJ z;&AP``rsjDEkQX$XJp8H?^^@mUKmB)SnYLm{Fc>4GVnS6nr zSG<5+GVl{2TA{`W_?Jt%zatyeMB8|6cH+`!we*~v%mx(>9+PmZ2MR4M0E z@8b*K_%4UO`k%N=H_Z%}NhIFG$8I^m?KfUS!?EEpcJ%i!e(nqlxd{%u^#i!n z&D8iPOPLhqTnb5=^zFF{I(z8YHi)1oAR;(SUWc+mS)nv|EI;i%Lu`r18H(9_?w`NK zhd%v9s-6h@uD=6ey-;g{UHjk8U;M*28JnEqH*b3rp@5&a{{Cn1S^>HTu3<~}4tfW! zz~wUO-FZ2g)GSluBP>iO>D##n!*w~RqN=PBOjS@-P{pCDD0RXL5kv$Knhox|3CF+v z=rGHr0;bzT#AjlNpsH+?NlkP7Y2( zgxV5>+7hVRhzP0*3aYG75Cexv6II0_A~*~YYD8Ei0wOf*yXJO0Rsgrh0uhwWMdIBY zxaEV)BuAJ@jxwh)F5A0O^QTK~V)%aVQ{wh#(>~D0N=158JL% zDishQ7>?0Qxj3&Cpm*R(dbeKz2oA$AaJjv>Ob-rKRwxb;YE%`6sv;tQ&|uOag2Mnr z1QDT`h~Nmfbs!>4of)B-a-J%$MU@qTP-nWmMB?2zR6#gTs8I#mwrM7;F=-+q)QIr^ zPC-!|B0__R(98ru1Vn^p3aBa$5kRRC5gL>R1%w(AP-Qbh6QNF6M^PMVD-K053>Ozt z9HwwFiqIf{;!vd~5Q-wyRjU;W`3w$K<@E$ZZ6MURTqbK26cj~K1VKa)VU2R0peQDr zQZ7z$1Vd2-!BH+1DC9F-s$eJz0w^`g8bv{=6JC=b{2#H)AW88R@jCzj002ovPDHLk FV1m3OOjG~> diff --git a/examples/wave-defense-shooter/android-icon-72.png b/examples/wave-defense-shooter/android-icon-72.png index 329dc3f25800a947a3cb5c18b60613bc33244082..47834fde20b7643ff6c2335f5ac4fef9dc92b863 100644 GIT binary patch literal 5291 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 literal 6267 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 diff --git a/examples/wave-defense-shooter/android-icon-96.png b/examples/wave-defense-shooter/android-icon-96.png index a5f57dca0818fb72c2ea5d8be1a7379bd305bcbd..824734d7dcf31d1291d7d32b156aa382b6355b56 100644 GIT binary patch literal 6793 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 literal 8367 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 B(18E| literal 5299 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 JPDHLkV1l{KEBF8a diff --git a/examples/wave-defense-shooter/assets/EnemyBullet1.png b/examples/wave-defense-shooter/assets/EnemyBullet1.png index b5fcc8be6d2fa3012f5f3ebfdb1e62c76cff11b6..3c599dd575303d35e4af0fbd90b63dbaa2ff688d 100644 GIT binary patch delta 144 zcmaFNxQ20pN};+9`*WUIXWgyh<4go3bbDZ9c6qhi%d$sYSdhB7Q2>)3w?XizPR*Es|){KJ!A3 wlVvjdrqdc+6)DXhU0FOMx#IU7NfTgLwE9QaXLE%VpiP_%p00i_>zopr09PnBS^xk5 delta 199 zcmV;&0671w0pkIXB!2;OQb$4nuFf3k0001;NklPx)F+}5ha)N@;pP~(a`uik37!7z8 zex2`rE-_<4;|a6FCJDwJK!(&rUX>O@o+GIO8{3jh1tKRXU4Qu5EHuV#TH+HnyFfi> wf2EXmam{rqTIvGAbt>taH9v)8FVdQ&MBb@0N0)~lK=n! delta 203 zcmV;+05t!t0p|gbB!2;OQb$4nuFf3k0001?Nkl!v51{}FSBZMQD zWx__t75>0#ihW#cgbdti02#Idd7+JPt_qK}!9IGp{EZ`MaCTCU& z-R(&&XQnOkPtqQfq)A8XmT4{HE`c)80&ai6E`i+Z);|6krq%Twm<#{_002ovPDHLk FV1msXS8V_Q diff --git a/examples/wave-defense-shooter/assets/Ghost1.png b/examples/wave-defense-shooter/assets/Ghost1.png index 87b25d941a95eb7d3b2b21874e5974c6117307f7..1050dc7a7f492453279a5025cf9c0ed82283e11a 100644 GIT binary patch delta 181 zcmV;m080PS0?`4GB!3BTNLh0L01FZT01FZU(%pXi0001kNklUZ2>IDqUUU?Sb!^1k;Nz~QGrx73?tP6C@x}@);ZM#Fij1o*bx(c@hg`vQf2`RROAQ4!~e*>)fg6H10=-(%y4uzK0uNW zh|PG&U~r@&np=P^DH2MaL|d?B;|hi=moGAG*|-9)7%qS_lA)#J|D*fYAeRR%P&pJa zvWjaYP)$I-6)&G8Aqxl@PS6sXry`mM(V*}F450f2ughTo05Mir4dkFq(EtDd07*qo IM6N<$f^{x{p8x;= diff --git a/examples/wave-defense-shooter/assets/Ghost2.png b/examples/wave-defense-shooter/assets/Ghost2.png index 36829f045989e2e50979ba6f1b4ea496c4fba988..9159b4894d94defbd51ee8de841fed017db7e9e0 100644 GIT binary patch delta 176 zcmV;h08jtb0?YxBB!3BTNLh0L01FZT01FZU(%pXi0001fNklef%Q`x#2%POK?gMX*dG|0|UdBjVo~ago!8PP!ut$SU@fy%7O>?t}|rhw|_7&FfcG2*|(bE$iCGK z3=EJUdT{SLUcE%c0W6$5Ca%RQe&zB-$}E6^iu_=B_#fG~8pA?tfTTEp8II1z2T1Y( zu^A5;431PpGYhaKK|;wA9pEi$VMR48?6+)O0hdD-!&jQ(jbtQ^|Dk;3vY`b{4OT#~ z!eL-ws3suaiZf4==8;Uu2ZUS?12}y#;67kr80v9=4A6ao*X1w(03JS3x>(1>^Z)<= M07*qoM6N<$f=i2mF#rGn diff --git a/examples/wave-defense-shooter/assets/Ghost3.png b/examples/wave-defense-shooter/assets/Ghost3.png index 6c9e93e2ed7da87152cd1b25d316536abc83a70f..8073e8ea16cc1c9db2619b0a2db6f3abb2a17cae 100644 GIT binary patch delta 172 zcmV;d08{_d0>}Z7B!3BTNLh0L01FZT01FZU(%pXi0001bNklV0h$Ybc3mulW|2X#YHwY1E^9D-~iQVm}Ul3-6bNLT2M_S9=sL|{WzdF anF0V>^#acP++^a#LoDxJD&cMLHz_4ZG3Yi;K9A?3>ozyL{(uy{Zg!&jQ(v;eB#BmxgG{^`eML+z`!un;{X|ul}rH~v{dX`T~u)Z0000< KMNUMnLSTZ5=6;U= diff --git a/examples/wave-defense-shooter/assets/Ghost4.png b/examples/wave-defense-shooter/assets/Ghost4.png index 36829f045989e2e50979ba6f1b4ea496c4fba988..9159b4894d94defbd51ee8de841fed017db7e9e0 100644 GIT binary patch delta 176 zcmV;h08jtb0?YxBB!3BTNLh0L01FZT01FZU(%pXi0001fNklef%Q`x#2%POK?gMX*dG|0|UdBjVo~ago!8PP!ut$SU@fy%7O>?t}|rhw|_7&FfcG2*|(bE$iCGK z3=EJUdT{SLUcE%c0W6$5Ca%RQe&zB-$}E6^iu_=B_#fG~8pA?tfTTEp8II1z2T1Y( zu^A5;431PpGYhaKK|;wA9pEi$VMR48?6+)O0hdD-!&jQ(jbtQ^|Dk;3vY`b{4OT#~ z!eL-ws3suaiZf4==8;Uu2ZUS?12}y#;67kr80v9=4A6ao*X1w(03JS3x>(1>^Z)<= M07*qoM6N<$f=i2mF#rGn diff --git a/examples/wave-defense-shooter/assets/Ghost_Hurt1.png b/examples/wave-defense-shooter/assets/Ghost_Hurt1.png index 46444baefbf7747dfa878ef361558059e88e3afc..27891fb6d9e83c0fb1a904eb5fa0ac84efc6a5b8 100644 GIT binary patch delta 114 zcmdnQ*v~jYC7ZLrBeIx*fm;ZK886+f`@_J%;OOb%7~*j}IYEMT@dJBChv37So1WNr zCR}L>lB3B!3BTNLh0L01FZT01FZU(%pXi0001XNkla#LoDxJD&cMLHz_4ZG3Y>`f7=IWTj_g~_aAeHK?Dnij)`lrieI^WkunQlpdvpQ9y~|(t;Vnr8z3na!3;-d;{zo5fY^+O z42FJ2BiaIN$&pYJWndsO4z_Gu!N9-(Nsh31Ko-MSn&Pwos_8!x8wRk6;RHk}f`V!^ zek-*sKsOj2;4ig^=BbE~4+yy)25|afzHq)$07*qo IM6N<$g8WB=N&o-= diff --git a/examples/wave-defense-shooter/assets/Ghost_Hurt3.png b/examples/wave-defense-shooter/assets/Ghost_Hurt3.png index 79a5cb998468961609305a6077aeb458fd561383..bae5002248b4c6eef7fecfd687dd6a4e30723a12 100644 GIT binary patch delta 169 zcmV;a09OCd0>uH4B!3BTNLh0L01FZT01FZU(%pXi0001YNklK35q;?aCS|BQxiFx4^|u85_$$VM}u8ic7*51@f+0(fv+P$Eqv9=sL|{W!p95m5jD X>SX@MfLu=n00000NkvXXu0mjfu+>Dg delta 309 zcmV-50m}Zx0nh@FB!2;OQb$4nuFf3k0003BNklef%Q`x#2%POK?gMX*dG|0|UdBjVo~ago!84vq={D_(LR6~ZsQcnVB-{uB1W+V5AI!O$jEPDV1Hm>U^udGHN%m8s~H#= zAU=3-?>b(+L94ynVtNyqIiDh%uZZOXzMvdS3H?bN~{gnguWbi(D8O8WwyIVc00000NkvXXu0mjfLsdYQ delta 311 zcmV-70m%Nz0n!4HB!2;OQb$4nuFf3k0003DNklg9rDnGt8J+gCdrZ z-@>4vq={D_(LR6~ZsQcnVB-{uB1RPp$OS}M@ZjEchK&3c27d+y28JX1Rx=#gx0->0 z0TM(H?p?>Lm#8>^g>%QmwOGZkT)s$|1u#&N9}ExwBl}ikScnaf6bCTF(b@O_Nj@Mp z;~|5=k&5VI0k-5wD2XyK5E%zsHm+b`V1Oh?SUez$;VVsXS^(AbABhbE*u(}7km8DJ zG=3|!EI>CH9Wdavh~~+ZkPisC9tLpwV!(aCz%bO~02z>#OaWq6RO}{Kgv0;<002ov JPDHLkV1o9ReHQ=# diff --git a/examples/wave-defense-shooter/assets/Gun1.png b/examples/wave-defense-shooter/assets/Gun1.png index 2376f83fe38541941fb396c6b55ac50ed0e756e0..e05ada4944ab54059872e21920efda3e698f25a6 100644 GIT binary patch delta 171 zcmV;c0960N0>=T6B!3BTNLh0L01FZT01FZU(%pXi0001aNklZku3sYYsU~UHrcidZYc~? z-9nH>f6uH3W0@L32`hwgi-q$Ey4hQi{Ps#$|3hK>SC Z0RW_x=~h+e%v}Hg002ovPDHLkV1hUWM^FF& delta 295 zcmX@kc!+6&NGZx^prw85kJ;c)B=-So9_*NU$z$a5>i-je{7){_ z_*7FI{`l(uM`v^0*nmJRNjJ!-ASD3^c9bXDJ0Cf`ng;})=J*tp9!$Ugz~u40*1rX2 zaonmdA^#8SB!N`^`Q7Ij89x8viG$2MX5aXD=I*cmCs?GPv~0~>B$<3CHS^2N12#sB~3MgIT)e&*NzYk|^> qS8p!kQ8=jOC%B+<;o^oM28L}PLjyN^f3^jN1cRrmpUXO@geCy@?1HKQ diff --git a/examples/wave-defense-shooter/assets/ImpFly1.png b/examples/wave-defense-shooter/assets/ImpFly1.png index 1fbf94ef0388c416012125f80a2a18a425d461c5..757d3e654e6db6cede89c1eb2b77068af4af8900 100644 GIT binary patch delta 300 zcmV+{0n`451jho9B!3BTNLh0L01FZT01FZU(%pXi0002_NklK@NgI3`IGS z7tok^1QYMz&I_QfQkh|fKD z$7EPJ*OJb6CI4hR{0z{}?I- zfMc#vGyw~MEzkhP6POC1?}9J@hVVWK-OYzyBy!A8JnLN1izvsMq2-+Y|3LVtBdqya y^Qx+W>(mQgT zMaL+TW(@=+LjHw6KyVQJ0sad?DG08uNbT5CX$L297P@qkQsU6O^!4?928#$eQ<8h{ zx#!)F7vPVvV;bOkQ6jVVpC61kh0Y`qP3U@2(wQ%$guZQU#DBv7L)NvSOKm87C{)}>G5tQa5j|( zIAtPS2`vFE+o4lRQ~(hHtX9bNqU3t|m1WsUui0<3KON75v<19C-o+!j zjC6j@(tChMC>ka}Ug}?k>qQCudu87X6ewVVJUe@-u-|M;fGTk=A-V!glWU7Gx{9}f if71dJAx1-3pui6_D90v9X9Al4Kw3Q+|B3&CF$7*CgA$ayfsxWxD8JIPxq2Iy}AUFtq0KbJ`DG08%NX^(%se_X^3thSuk#lHYdY*TeyFig*eh^6R z{rlZ}@7@I{@ZV8#HDF=PP4cAMa`Ne<%)*#Ie0~{qBHwc&VSlY?6Fd)zHCqD9f{_5# zTdsRD85@)3e0yh4bfg8V1X>x{&V4CKXd8u6M~#&v}1 zBHu&gdud5reSaufsg9hO0bsE+RX|yn^i^5VHsRU+0X8_Em-=N5;x(_invJoSPPUB4 diff --git a/examples/wave-defense-shooter/assets/ImpFly3.png b/examples/wave-defense-shooter/assets/ImpFly3.png index 701f14f05deb8b261ab426e8a8093464879f1b57..545ec2c6918438b044c1f9e327b5ca03df01955d 100644 GIT binary patch delta 291 zcmV+;0o?wO1ik{0B!3BTNLh0L01FZT01FZU(%pXi0002+NklU z)kLI_yNZxSV6R00=bOnd*W0HMoDF6pJf2?T|kt#rY z59OO3VB5I`+ku)! delta 502 zcmV$6(?aiXow;|scOW8|e>Kec z&prP==gc__{4sWH9URy5^^wN?l40jjk+opvLz55MN|(Q|pi{(!H_N<@I;dj8?j36f(};6aZ4ehYx!@g)G| z*B1c3FRlWf?7u!UA|fJSP4ElFlJ0&HF(#NzC(6Evybu{E6iam44MgJ&zve+OQG#%A zxirF7$!4h5>VJH^zbQp%GccP@*w*#?{TAotYXAnlCalXLqq|sAS@(}o20;DE$r%tg zQ=z+9M!14+)Pw>zr)Lz3r66_W@>??^aF@#itHu*&Fr6s5S^(2fx2b_`&FD6j_dj1ZI@(Yrbv+j68skcw_EHFza?N>;6y@9 s1=t2R7GX7te*^!f1U5pfnlMF*AHm7g4h{<*CIA2c07*qoM6N<$f@d`5WB>pF diff --git a/examples/wave-defense-shooter/assets/ImpFly5.png b/examples/wave-defense-shooter/assets/ImpFly5.png index 781d32256858223faf2fa3f1e5805c415aa7f587..62eeeccb058da1167736bdf27ae6351405e62e80 100644 GIT binary patch delta 292 zcmV+<0o(rZ1HS^0B!3BTNLh0L01FZT01FZU(%pXi0002-Nkl9Al4Kw3Q+|B3&CF$7*CgA$ayfsxWxD8JIPxq2Iy}AUFtq0KbJ`DG08%NX^(%se_X^3thSuk#lHYdY*TeyFig*eh^6R z{rlZ}@7@I{@ZV8#HDF=PP4cAMa`Ne<%)*#Ie0~{qBHwc&VSlY?6Fd)zHCqD9f{_5# zTdsRD85@)3e0yh4bfg8V1X>x{&V4CKXd8u6M~#&v}1 zBHu&gdud5reSaufsg9hO0bsE+RX|yn^i^5VHsRU+0X8_Em-=N5;x(_invJoSPPUB4 diff --git a/examples/wave-defense-shooter/assets/ImpFly6.png b/examples/wave-defense-shooter/assets/ImpFly6.png index 701f14f05deb8b261ab426e8a8093464879f1b57..545ec2c6918438b044c1f9e327b5ca03df01955d 100644 GIT binary patch delta 291 zcmV+;0o?wO1ik{0B!3BTNLh0L01FZT01FZU(%pXi0002+NklU z)kLI_yNZxSV6R00=bOnd*W0HMoDF6pJf2?T|kt#rY z59OO3VB5I`+ku)! delta 502 zcmV$6(?aiXow;|scOW8|e>Kec z&prP==gc__{4sWH9URy5^^wN?l40jjk+opvLz55MN|(Q|pi{(!H_N<@I;dj8?j36f(};6aZ4ehYx!@g)G| z*B1c3FRlWf?7u!UA|fJSP4ElFlJ0&HF(#NzC(6Evybu{E6iam44MgJ&zve+OQG#%A zxirF7$!4h5>VJH^zbQp%GccP@*w*#?{TAotYXAnlCalXLqq|sAS@(}o20;DE$r%tg zQ=z+9M!14+)Pw>zr)Lz3r66_W@>??^aF@#itHu*&Fr6s5S^(2fx2b_`&FD6j_dj1ZI@(Yrbv+j68skcw_EHFza?N>;6y@9 s1=t2R7GX7te*^!f1U5pfnlMF*AHm7g4h{<*CIA2c07*qoM6N<$f@d`5WB>pF diff --git a/examples/wave-defense-shooter/assets/ImpHurt.png b/examples/wave-defense-shooter/assets/ImpHurt.png index 61918c6deb7aabdd568150732106e7027e053f42..54a8b25d33a7462d4ee6af8a1241755aee595f2c 100644 GIT binary patch delta 152 zcmV;J0B8T<0ki>-B!3BTNLh0L01FZT01FZU(%pXi0001HNklK?=Yi34s?{d0s;~;E|p9twGmnB9{tAA00000NkvXXu0mjfvGY=V diff --git a/examples/wave-defense-shooter/assets/Player1.png b/examples/wave-defense-shooter/assets/Player1.png index 01fb200ea964639ed440779e3aadee17bba9d553..7549958d47bef88dce7d4af3c40041bfd9fbe7c1 100644 GIT binary patch delta 231 zcmVy7$O4e2*~uQXw*Z6>&S`^Vn4vH}NSYwtSUSgN z0W1+vluQZX!D#`^66A6SJ*kqNL~;27W&u@P4+YieMFu(_q=q63V3r^mhQX(_I<6*w h83w%txGWkW002@vHSJbXvvL3c002ovPDHLkV1kLaRB`|S delta 407 zcmV;I0cie%0QHE6A||L)y;xr2XJo;BNru3w(&e1l#`t78nHgm3mT+BN4-6Mt=x4U@PeY{R-Fe!Thd zBXKZf05BYl+1m9IJM;buz$9M;AdW&HyLC}3J+%)lmy zgqXo^AYRw5U!JPA1d?`4&q?or@rdT`p;>@Mb2`K$8uU61uNG+iUM*nI>oiQ8l&AxB z*Dp_Jm)}BL60mubMFHSSa{g@>rATKY?tFFl1biHGj}XZ>o=E@z002ovPDHLkV1gM1 ByJ!Fa diff --git a/examples/wave-defense-shooter/assets/Player2.png b/examples/wave-defense-shooter/assets/Player2.png index 29a601d6336924d612c59a7fffd0884cfaa69026..f47915a31a47ad31e3a83d2a4de0db99525a793f 100644 GIT binary patch delta 230 zcmVs0L(yiKG{J;7Yjg<2{Q;5xyXE~r6Tm?Nwri2%MTzL249fHsAd5+Opyh!bdJvg zSR$Y(nG(W-*8)%~A!Im3$rL>gpktT=s8Un_g{qM;7J2e(Gjzj|Eupl^tR@mO(9#ly gL2m&ri$(|l08j8oXYULxng9R*07*qoM6N<$g1VYig#Z8m delta 411 zcmV;M0c8Gy0<{B>B!2;OQb$4nuFf3k0004RNkl{kkUmYTcv|T!KJfw)j==D*n4+GQ4qiB zF7NLDb9wLX0{{FrbG8F3)!MTz*6($+Iz|H}e7c&^j@i4JYJW`@OyZKT4fB%t*5cEb z#KEuvfN(rvX?Z2;XCChXnC6QBj0QfCO>Y3;I;Hncyd4?n(I#1{npxw8PZ(Re>s;}c%%(XI5IE5UyN1IXG1~JLoyE{e!(-`9lY)mA? z6?_MxK@bj&0;VzICvu$Rg;Fy=rB^n0Dd`14A&cI+k&zFCMjnmX{3 z;&GF=cs0L(yiKG{J;7Yjg<2{Q;5xyXE~r6Tm?Nwri2%MTzL249fHsAd5+Opyh!bdJvg zSR$Y(nG(W-*8)%~A!Im3$rL>gpktT=s8Un_g{qM;7J2e(Gjzj|Eupl^tR@mO(9#ly gL2m&ri$(|l08j8oXYULxng9R*07*qoM6N<$g1VYig#Z8m delta 411 zcmV;M0c8Gy0<{B>B!2;OQb$4nuFf3k0004RNkl{kkUmYTcv|T!KJfw)j==D*n4+GQ4qiB zF7NLDb9wLX0{{FrbG8F3)!MTz*6($+Iz|H}e7c&^j@i4JYJW`@OyZKT4fB%t*5cEb z#KEuvfN(rvX?Z2;XCChXnC6QBj0QfCO>Y3;I;Hncyd4?n(I#1{npxw8PZ(Re>s;}c%%(XI5IE5UyN1IXG1~JLoyE{e!(-`9lY)mA? z6?_MxK@bj&0;VzICvu$Rg;Fy=rB^n0Dd`14A&cI+k&zFCMjnmX{3 z;&GF=cURAVEy$= z;viH25KN|QY!yR0@$v+~ES&{lJn(?z@(BP6&gO@)xDFHO(KgvMHF4;gtnC4S*KqL~ zE&zVFjo)pDzNoFknBeyMMih{+>OtMjQP|lF*T5&c+8S#28hfC|R85hZAjK@5Wjye> zdrmHQ(G=r>hkuhv5lp63n)d)SE4w%rd#w^EoJ@+xi~VqIgR#kn$48=o6eCt(lf;Cv zg73hXzz;^EfD{uuTKQ6W9^T+!q@DA+n+xBm;%O^(RK*@tTSNN2&Uvg4YF^~=iy}UD zI`M_L+Iw8Amh{Oy6a0!xo#V%+$mXv?szQ5u_$3u6q8pVMPyTm!1GbcO<@{oOiU0rr M07*qoM6N<$f_?GIGXMYp diff --git a/examples/wave-defense-shooter/assets/Player4.png b/examples/wave-defense-shooter/assets/Player4.png index 29a601d6336924d612c59a7fffd0884cfaa69026..f47915a31a47ad31e3a83d2a4de0db99525a793f 100644 GIT binary patch delta 230 zcmVs0L(yiKG{J;7Yjg<2{Q;5xyXE~r6Tm?Nwri2%MTzL249fHsAd5+Opyh!bdJvg zSR$Y(nG(W-*8)%~A!Im3$rL>gpktT=s8Un_g{qM;7J2e(Gjzj|Eupl^tR@mO(9#ly gL2m&ri$(|l08j8oXYULxng9R*07*qoM6N<$g1VYig#Z8m delta 411 zcmV;M0c8Gy0<{B>B!2;OQb$4nuFf3k0004RNkl{kkUmYTcv|T!KJfw)j==D*n4+GQ4qiB zF7NLDb9wLX0{{FrbG8F3)!MTz*6($+Iz|H}e7c&^j@i4JYJW`@OyZKT4fB%t*5cEb z#KEuvfN(rvX?Z2;XCChXnC6QBj0QfCO>Y3;I;Hncyd4?n(I#1{npxw8PZ(Re>s;}c%%(XI5IE5UyN1IXG1~JLoyE{e!(-`9lY)mA? z6?_MxK@bj&0;VzICvu$Rg;Fy=rB^n0Dd`14A&cI+k&zFCMjnmX{3 z;&GF=cE4twrLn<|dZAOxEuA|G!{RaWmykU=aIeU|^!dz{&s(~uCuxTbPP@8kz%u~TLN zES!VF(y)rZdh;HqUXp@n-Ktp(uim_8c=hHz!@59b|$b4(ZkQQR~VgP6XSIxk{P>sw+$5_;1 y0DOgAHHq$O#U&<4^PEhuK42j16Ra*DJ^%m(pk{s^BUf$!0000)xLl8($&iB(Sq!fw$ckW^iOmOOS%9yYKtnRD8d*P4!GpsPIL2iG z(cur%h|O>u7LaBMHbb#lf+j{1s3s9J3_1&lwP=_F0FfY#nr(Z!G5`Po07*qoM6N<$ Ef)L3|C;$Ke delta 327 zcmV-N0l5C=0pbFXB!2;OQb$4nuFf3k0003TNklV&groi3wVSnn}3n}#s<-3N$UO+BSL2?R~aN1(IBn6(Uny%15Gt^ZGfc;3&?!g00&X(DdIA8puiPGAWRh>&^(f1 z!Gs({RJQ;U1S*X2(@WKr*V8{Zo&_Q$M=4|=NsP$3>eTAqox4M@g64s z{Sq5%7@d~mJ(i1^u>md$qe!iTQk)_(Ayoj7iwxKFT;XiyVt>9^8S}xTa^^($kx_nftP)-2~*EH`|?-=c1_1Z8f4K3c*DIE(#=3NXls? zAP-lyO(1`!06^V~GPKLlX2~S#mhFR(#pS`3Z56sWRfIgE`z78hjT|U>y)T*;uPZtL z5R`58(ZqegbSYg2E&Dp^$lgcP_(wzYn`k@#A3OnuOkbXHZ=k>c0000D~FY5*1;{>f5MUN0ZWF=0ea5CoLklt70JyGRYO&Vi+yBFDzY zvu;3Mvt{1`h#ElQo*sa&e6wYmW24=404?a}dH@DujXWCC{XhT!002ovPDHLkV1nSb BQ?dX6 delta 345 zcmV-f0jB=r0rUcpB!2;OQb$4nuFf3k0003lNklB#Ry((uG&(y3kD!gX=EBbfq}aaU_INN*)Nq`<(avJQcX%hCh#L zXak|V&Bc`zS&eLvP~Oh!NwxrOY&J=6phUbR$$gOmfTKC!eSiPf;TCL(Y5kb}@2)g~ z6Q8pc=4{pBu9DzVL~{#Ijq~7W4glhc7iD)yCo)Ci@XNacwNLu^8by z+PvFte0;avcz#w-dhbip10_Xu!Z_lcx$fJI&UKqg;*Y74q9T;Hxl2`j@40V#M{Quww#BL8Z)rCQi$a6Wf3S z7e6yZ?rX?YG41Hs#u900B|V$}!p)RuhAFGujsdC7+AKE}N)B&4IdSr&Rh~z9n$IyM e=}J9gV3_~dt)b+2$3dWD7(8A5T-G@yGywp+b40TM delta 284 zcmV+%0ptG80k;B>B!2;OQb$4nuFf3k0002-NklKrJ6e{oXy2acgdYGJnrd<{26|XyCkM8>|!5 z@`2O&0sz=_x?XayntH*V~RZvTV;Lj8aE8T>|2yC|I5*WIL?HKw0n iUDvRm#Mt@&@D&6mf?}98Y~yAC0000) diff --git a/examples/wave-defense-shooter/assets/SpiderCharging2.png b/examples/wave-defense-shooter/assets/SpiderCharging2.png index 06c08d5ca987148bc70d94a1da49867a9464b4dc..7c34ef339d89ae77c741cc42c9293bb78821fb5a 100644 GIT binary patch delta 176 zcmV;h08jtE0?YxBB!3BTNLh0L01FZT01FZU(%pXi0001fNklTg`;QW}2%0000ryGbi-l4T z(3L%nUAC9-2qG>#fa1ctNQig>v5T4_F(xBzp%fnolli^LWD(K&hT&faJXV7%6nj2bA(DI{xB1^^W=mHMr{*TyZW1b=y&AWsuCu+YGItxX{9 zpyDNt?im2E>U3iLg!LYQsSS+Rqc(Dj03Z$nFkXZ48gUqqVkQwB+>27yfjmV3KpopY zl(ReK4hW3hg@HmO7YEmuWvKjQ5^{@*EV@dC+$eFA4*6r~UQi!^-|C@cRTJOHw_TeyXAXJG&U002ovPDHLkV1jV=edGWD diff --git a/examples/wave-defense-shooter/assets/SpiderDropping.png b/examples/wave-defense-shooter/assets/SpiderDropping.png index 5622daae814b5b1a603f1eb7f600fb1f494ff51b..5afa83227c5f20557dc058371e6b02dc04ab1f80 100644 GIT binary patch delta 117 zcmZ3*IEitBN*-r{M`SSr1Gf+eGhVt|_lJRj!Nt?XF~s9|a)Jcw;slW%frPgbpXN&# zZsO(V@%_ucXriG{&nmHoj1;r0wT(S1(=1|j9JaT-YEzDOGCu5nP(y;XS%QIKSG&tu U7Q-irK=T+pUHx3vIVCg!0MdvjzyJUM delta 142 zcmbQlxQcOtNGZx^prw85kH+JY5_^JUWvTBv=lF~s9|a)Jcw;)EB?|5+G(d6%D< z^k1bZklRgHB2Vm(y6}Z71&eeKF5W05$sfm^Fik0lfi`B!2;OQb$4nuFf3k0001YNklO>_%)r1c1j3A$?$-TbU|>-5ba4#vIG&s!!MZp>q^Bv+fXj_>s)H$` mk8!i+wu~!Hjr~s+GBPMS${jp{o2ZN`ppUXO@geCw$S{mR0 delta 90 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 JPDHLkV1hOJLJ9x? literal 23537 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 z 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 literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^`+(S#gAGXjXAW!wQjEnx?oJHr&dIz4a-Mp+IEGZr zd3$4_;2{SAhl?!>TR5Z+xCZd42JtbuGYf9a$Y4htxfPsL0mGuKApL+VX+^vg3bW@9g!T1eUYE|Ks$pJ$aTKe-4}QY|npg z235{EU*+Lsm6}N{P<3E4$P|=%{`Bj;YK|MTV3vXn>s|ixO?bPEG}IzHT@Su~PrhC) QpobYeUHx3vIVCg!07Kw%)4MFqJJ&>xzVH4KUype6+U)r`fbBwUvD2iu=}iKzV~x8JI_Pv zo(OF%{*yj<3Q;B)_1BQ)k1@dZjt}<-{63B$OMO(-p3p^|5r-`fv~LHGpzds?GCX&Z2sW* zBf$KRifo*EO^ZGZy)WR9Z{deZE7SPrEfEuu>dRXz}!CiHzro%_gjHWT}o56d~ Q8t6m@Pgg&ebxsLQ06jWWaR2}S literal 274 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 uZD$XnktT4h5CO{t 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 MdjxyW8khcm096NvApigX diff --git a/examples/wave-defense-shooter/ios-icon-100.png b/examples/wave-defense-shooter/ios-icon-100.png index b8e91c049ee2abe4f600f784ab0c3fff94da5125..43e6759e6b85003a967ba4ab23d47b6811607c9c 100644 GIT binary patch literal 7702 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 diff --git a/examples/wave-defense-shooter/ios-icon-114.png b/examples/wave-defense-shooter/ios-icon-114.png index 15b3e78c56ff0c751f903a1c0592079d4f3d15b0..0e4bfc75cd7e8912071e96a2270a9378997a6745 100644 GIT binary patch literal 8921 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 diff --git a/examples/wave-defense-shooter/ios-icon-120.png b/examples/wave-defense-shooter/ios-icon-120.png index 57b8c3adf4e8d8d9c9ab0d69100864958db14b63..1bed116a2b71934062a6cfc637ae42e008120b18 100644 GIT binary patch literal 9542 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 literal 11366 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 QI833hZGx!Mdhp`^06#g8fdBvi diff --git a/examples/wave-defense-shooter/ios-icon-144.png b/examples/wave-defense-shooter/ios-icon-144.png index a13051a51a5e09ca471c24efda31b4b3fb122721..c971b5a569710548a49c9cb0ab79a8b029a5d0ba 100644 GIT binary patch literal 10974 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 literal 14696 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 diff --git a/examples/wave-defense-shooter/ios-icon-167.png b/examples/wave-defense-shooter/ios-icon-167.png index 730d49210a749b24991227b749d939f812a006ca..d40b6c0ebd95d92c8ae8fcaefa7e848e632e9b1b 100644 GIT binary patch literal 14028 zcmZX5Wl$VV7cRkVAvnRE5Zo7c_uv*J1ee9#EjR>s*Wm6h!CBm4ad+3t``x;~Zq>|m z)znOPAMft-oG@iYDF8A7G87aPKt@{p`$t>+-;D_W@pQtKKlx~oK+@WdP*5nC|J|Ra z*L+@}pva(P#6{HHmQOPg+_2RbhGtL>JMPy# >VKTnH^B2g8DPKg3Cr#umAa-hE_ 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 ZqJ<&PX^-C+`XBKzpb8q0O1U>5{|_4?HWdH> diff --git a/examples/wave-defense-shooter/ios-icon-180.png b/examples/wave-defense-shooter/ios-icon-180.png index 5db8a1b3dc43dd33a58f846dcfa10193ce5c5b43..d63b1f41489c73f4e59c5e7512794ac36fee3384 100644 GIT binary patch literal 15551 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 literal 17948 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 diff --git a/examples/wave-defense-shooter/ios-icon-40.png b/examples/wave-defense-shooter/ios-icon-40.png index 5f98cbc65bbd00a166a3f1d538eff9dbcaa0c048..b5486b865750e36b915f81ba91ade9799592a94a 100644 GIT binary patch delta 2782 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 delta 3064 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 literal 4856 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 YKW!}aD8D@By#N3J07*qoM6N<$f(KJU@Bjb+ diff --git a/examples/wave-defense-shooter/ios-icon-60.png b/examples/wave-defense-shooter/ios-icon-60.png index d0f06346aca9e165385b61ae10d2dddd84d72605..52b4f25a74c51433fe2a5d42e35ccd8435d5d4a8 100644 GIT binary patch literal 4448 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 vCJ@8GGzB3M{fr&f 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 literal 6267 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 diff --git a/examples/wave-defense-shooter/ios-icon-76.png b/examples/wave-defense-shooter/ios-icon-76.png index 4c3dedec1cad0da064f91c022fe7fac32600ef4e..48b6d76c8f8f2d2e9e768d941bf96a36b9bed45b 100644 GIT binary patch literal 5737 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%0AC-+#}&X7S?1 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 diff --git a/examples/wave-defense-shooter/ios-icon-87.png b/examples/wave-defense-shooter/ios-icon-87.png index 9891566a562f91418f207a6dac937e34fec5e70c..78d39a6d4c6b140c7c626e0efb32c45197c1a164 100644 GIT binary patch literal 6653 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 diff --git a/examples/wave-defense-shooter/thumbnail.png b/examples/wave-defense-shooter/thumbnail.png index 3f613e8468ca0c00ebea2441aa6fb4b398241d6e..b6fcd9b932e1ae3a10e885675a9ae5daeae58762 100644 GIT binary patch literal 217744 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%0DY-26h`_+$rGNwJKe7IJeC3ffzJ$|)YY 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
P#3_*(R?!+66pt)b!#ozRdW@n+L; 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

?ZjvqIG_>)fuM-<;Nche$c=SOAM(1h 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 SO;^Jq@Ih{|h9{fu{p~+(zb*X$ literal 241920 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%0ACV)V)Pb`mi>Vz+^x3h|X`gw0>r%J#d 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'>Nm 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≶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 C{2KEB

*0X4ZxlXl5R3X} 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 literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/ios-icon-1024.png b/examples/wave-defense-shooter/ios-icon-1024.png new file mode 100644 index 0000000000000000000000000000000000000000..483318f723624e877f9f1423eded2cf377d1e0ee GIT binary patch literal 148075 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%0D}!G8nz%=V21g=$ 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 w8_Jw9*IeCH&Gjeq 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 literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/ios-icon-114.png b/examples/wave-defense-shooter/ios-icon-114.png new file mode 100644 index 0000000000000000000000000000000000000000..15b3e78c56ff0c751f903a1c0592079d4f3d15b0 GIT binary patch literal 10739 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 literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/ios-icon-120.png b/examples/wave-defense-shooter/ios-icon-120.png new file mode 100644 index 0000000000000000000000000000000000000000..57b8c3adf4e8d8d9c9ab0d69100864958db14b63 GIT binary patch literal 11366 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 QI833hZGx!Mdhp`^06#g8fdBvi literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/ios-icon-144.png b/examples/wave-defense-shooter/ios-icon-144.png new file mode 100644 index 0000000000000000000000000000000000000000..a13051a51a5e09ca471c24efda31b4b3fb122721 GIT binary patch literal 13157 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 literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/ios-icon-167.png b/examples/wave-defense-shooter/ios-icon-167.png new file mode 100644 index 0000000000000000000000000000000000000000..730d49210a749b24991227b749d939f812a006ca GIT binary patch literal 16303 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 ZqJ<&PX^-C+`XBKzpb8q0O1U>5{|_4?HWdH> literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/ios-icon-180.png b/examples/wave-defense-shooter/ios-icon-180.png new file mode 100644 index 0000000000000000000000000000000000000000..5db8a1b3dc43dd33a58f846dcfa10193ce5c5b43 GIT binary patch literal 17948 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 Hu0mjf=!$od literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/ios-icon-40.png b/examples/wave-defense-shooter/ios-icon-40.png new file mode 100644 index 0000000000000000000000000000000000000000..5f98cbc65bbd00a166a3f1d538eff9dbcaa0c048 GIT binary patch literal 3070 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 M07*qoM6N<$g4v0?*#H0l literal 0 HcmV?d00001 diff --git a/examples/wave-defense-shooter/ios-icon-50.png b/examples/wave-defense-shooter/ios-icon-50.png new file mode 100644 index 0000000000000000000000000000000000000000..dc4d0e44b6fbdb9cb370dd5199a6c2985e6a7c28 GIT binary patch literal 4172 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