From 0ee7fb42101e802b22e4918fa2d345991d7f1602 Mon Sep 17 00:00:00 2001 From: Noah Petherbridge Date: Tue, 18 Jan 2022 18:32:15 -0800 Subject: [PATCH] White Azulian, Respawn invincibility timer * Respawning from a checkpoint grants 3 seconds of immunity in case enemies are spawn camping. * Add the white Azulian as an even faster and harder enemy than the red Azulian: twice as fast, jumps higher, and can detect the player from further away. --- dev-assets/doodads/azulian/Makefile | 5 +++++ dev-assets/doodads/azulian/azulian.js | 12 ++++++++++-- dev-assets/doodads/azulian/white-back.png | Bin 0 -> 1029 bytes dev-assets/doodads/azulian/white-front.png | Bin 0 -> 1004 bytes dev-assets/doodads/azulian/white-wl1.png | Bin 0 -> 1041 bytes dev-assets/doodads/azulian/white-wl2.png | Bin 0 -> 1062 bytes dev-assets/doodads/azulian/white-wl3.png | Bin 0 -> 1026 bytes dev-assets/doodads/azulian/white-wl4.png | Bin 0 -> 1002 bytes dev-assets/doodads/azulian/white-wr1.png | Bin 0 -> 994 bytes dev-assets/doodads/azulian/white-wr2.png | Bin 0 -> 1043 bytes dev-assets/doodads/azulian/white-wr3.png | Bin 0 -> 985 bytes dev-assets/doodads/azulian/white-wr4.png | Bin 0 -> 999 bytes dev-assets/doodads/bird/bird.js | 18 ++++++++++-------- 13 files changed, 25 insertions(+), 10 deletions(-) create mode 100644 dev-assets/doodads/azulian/white-back.png create mode 100644 dev-assets/doodads/azulian/white-front.png create mode 100644 dev-assets/doodads/azulian/white-wl1.png create mode 100644 dev-assets/doodads/azulian/white-wl2.png create mode 100644 dev-assets/doodads/azulian/white-wl3.png create mode 100644 dev-assets/doodads/azulian/white-wl4.png create mode 100644 dev-assets/doodads/azulian/white-wr1.png create mode 100644 dev-assets/doodads/azulian/white-wr2.png create mode 100644 dev-assets/doodads/azulian/white-wr3.png create mode 100644 dev-assets/doodads/azulian/white-wr4.png diff --git a/dev-assets/doodads/azulian/Makefile b/dev-assets/doodads/azulian/Makefile index 1fde043..d9e4930 100644 --- a/dev-assets/doodads/azulian/Makefile +++ b/dev-assets/doodads/azulian/Makefile @@ -14,6 +14,11 @@ build: doodad edit-doodad --tag "color=red" azu-red.doodad doodad install-script azulian.js azu-red.doodad + doodad convert -t "White Azulian" white-front.png white-back.png \ + white-wr{1,2,3,4}.png white-wl{1,2,3,4}.png azu-white.doodad + doodad edit-doodad --tag "color=white" azu-white.doodad + doodad install-script azulian.js azu-white.doodad + # Tag the category for these doodads for i in *.doodad; do\ doodad edit-doodad --tag "category=creatures" $${i};\ diff --git a/dev-assets/doodads/azulian/azulian.js b/dev-assets/doodads/azulian/azulian.js index 2a8d3e6..d34cefa 100644 --- a/dev-assets/doodads/azulian/azulian.js +++ b/dev-assets/doodads/azulian/azulian.js @@ -9,9 +9,17 @@ var playerSpeed = color === 'blue' ? 2 : 4, direction = "right", lastDirection = "right"; +// white Azulian is faster yet than the red +if (color === 'white') { + aggroX = 1000; + aggroY = 400; + playerSpeed = 8; + jumpSpeed = 16; +} + function setupAnimations(color) { - let left = color === 'blue' ? 'blu-wl' : 'red-wl', - right = color === 'blue' ? 'blu-wr' : 'red-wr', + let left = color === 'blue' ? 'blu-wl' : color+'-wl', + right = color === 'blue' ? 'blu-wr' : color+'-wr', leftFrames = [left + '1', left + '2', left + '3', left + '4'], rightFrames = [right + '1', right + '2', right + '3', right + '4']; diff --git a/dev-assets/doodads/azulian/white-back.png b/dev-assets/doodads/azulian/white-back.png new file mode 100644 index 0000000000000000000000000000000000000000..12f0a740e3f9dc0fdefb681790ed4608412a5519 GIT binary patch literal 1029 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 QGf;-X)78&qol`;+08G`H-v9sr literal 0 HcmV?d00001 diff --git a/dev-assets/doodads/azulian/white-wl3.png b/dev-assets/doodads/azulian/white-wl3.png new file mode 100644 index 0000000000000000000000000000000000000000..a87537f553db50a80fddf5410bc07ba71e18efc4 GIT binary patch literal 1026 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vLGRFxF%`I|pPYCo?c;Ost(~>v1?h zq}4yz+f|FNOrZ2cz+9bW~QF;4C31NwbXxaNO|GBr}w|7e_d7C&B!>hVw&VK-#v~tdo!iyeD7SmMrHMp z=SPy&Vki8V_`2(O{+w<-ZX4sQv`e3l1SV~~anOr>^Q4u6{({Fte3#cKzTSAMvU_vb z%8l1-e{w5V)~3#Uy`^p95v6Ggjx9}6r&b(rn^QJdggev9|HlvZ*!?bgtud(vMLG+( zcsIRf|KEIn^H#3O!f`<=j4g38&y!g=-ZP!u^|(gf+V3+9haGcx)$RCP2IKiluHTM& z!|~!ao8G$Hvo^8EyklVYZ_7EgPGpIy2-kt%lC{BnFZQ!mUE8yB>$$>T3@I65E2SSi z5RlLf`nK!*?%meUzvcU9*V+GdEvhJY*m4>aDajr|z6=aiY77hwEes65fIzr%$ffT4FCWC_s(M02Z}S7 z1o;I6>0f0>?g1&rByV>Yw#2j@wLlJMfk$L91B0G22s2hJwJ!q-vX^-Jy0SlG6lP*k zI@o);04Oxm)5S4FVWer1_1)=3^ZE0n818MsIhRv(`+ujTikpV=X;b=LWM`b&BIO4681OVc=1~* zeAU)nGJ-E(n?Gjm-6(fs&jOSAKu1cJxJHyX=jZ08=9Mrw7o{eaq^2m8XO?6rxO@5r zgg5eu0~M))6r}*AtdhYh7>o>z40R2G$RfnR(8}1t%Ggrdz`)ADK+qr{0YyV@eoAIq zC2kD~xi9VjHAsVO0A?bqH6Ahz*%9LQrQc{bP zi!uvJGV}8oKn_(%D$UF((ap?LC=POW@=13T2C5c?sm@KzD@{vGE-5WaEdnd|nK$7S fPyruYL4HbV4g*MQbb_ZdP=>+N)z4*}Q$iB}EWe0o literal 0 HcmV?d00001 diff --git a/dev-assets/doodads/azulian/white-wl4.png b/dev-assets/doodads/azulian/white-wl4.png new file mode 100644 index 0000000000000000000000000000000000000000..74016073bbc65388fc9ed3ac96f4f9bd0a4a080f GIT binary patch literal 1002 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vLGRFxF%`I|pPYCo?c;Ost(~>v1?h zq}4yz+f|FNOrZ2cz+9bW~QF;4C31NwbXxaNO|GBr}w|7e_d7C&B!>hVw&VK-#v~tdo!iyeD7SmMrHMp z=SPy&Vki8V_`2(O{+w<-ZX4sQv`e3l1SV~~anOr>^Q4u6{({Fte3#cKzTSAMvU_vb z%8l1-e{w5V)~3#Uy`^p95v6Ggjx9}6r&b(rn^QJdggev9|HlvZ*!?bgtud(vMLG+( zcsIRf|KEIn^H#3O!f`<=j4g38&y!g=-ZP!u^|(gf+V3+9haGcx)$RCP2IKiluHTM& z!|~!ao8G$Hvo^8EyklVYZ_7EgPGpIy2-kt%lC{BnFZQ!mUE8yB>$$>T3@I65E2SSi z5RlLf`nK!*?%meUzvcU9*V+GdEvhJY*m4>aDajr|z6=aiY77hwEes65fIOm3p^r=85s1GL71^(seKtxkiEpy*OmPlqc9V@h^myR z7Eq|o)5S4Ff)u3yrL2;{Dj19mj0|-R zfyg4nz|hLr!phiE+rYrez(CL-AOS@~ZhlH;S|x4`3Ar!s05wR1Yyf5!tK|HG%A(Bl zj1q=`(xjZsWCfS}+{DbhZ4(Wnfy$I%%2HB`lZ!G7N;32F7(fnHNGi?DDbdZ$Qz#B{ zck)Sh6b7mmg{jU>%qvYxOfD%cN-Y8__n9~06i@*lTtR+HY7PTPYjlFAGf;-X)78&q Iol`;+0A)md!2kdN literal 0 HcmV?d00001 diff --git a/dev-assets/doodads/azulian/white-wr1.png b/dev-assets/doodads/azulian/white-wr1.png new file mode 100644 index 0000000000000000000000000000000000000000..d9c26d1cbbdf0596f7360a911a278555f6106170 GIT binary patch literal 994 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vLGRFxF%`I|pPYCo?c;Ost(~>v1?h zq}4yz+f|FNOrZ2cz+9bW~QF;4C31NwbXxaNO|GBr}w|7e_d7C&B!>hVw&VK-#v~tdo!iyeD7SmMrHMp z=SPy&Vki8V_`2(O{+w<-ZX4sQv`e3l1SV~~anOr>^Q4u6{({Fte3#cKzTSAMvU_vb z%8l1-e{w5V)~3#Uy`^p95v6Ggjx9}6r&b(rn^QJdggev9|HlvZ*!?bgtud(vMLG+( zcsIRf|KEIn^H#3O!f`<=j4g38&y!g=-ZP!u^|(gf+V3+9haGcx)$RCP2IKiluHTM& z!|~!ao8G$Hvo^8EyklVYZ_7EgPGpIy2-kt%lC{BnFZQ!mUE8yB>$$>T3@I65E2SSi z5RlLf`nK!*?%meUzvcU9*V+GdEvhJY*m4>aDajr|z6=aiY77hwEes65fITT$X?><>&pI&QJ9HE?}YXIXrNG| zr;B5V#`(1q4)QV^a- z=Xft_wS5sw#WIM3mX1dm`g=e9oIZ5p>G|)UnQ$= zz3J@g@@+4}z6crrU|>6^TJ)dmOKHi%caL)!Tg}tg^YZIUpkpLUTq8=H^K)}k z^GX<;i&7IyQd1PlGfOfQ+&z5*!W;R-fr?Z?ic)}5R>@!$3`PbQch;F zf=hmGVrJg9iH4w{Q-Uc=Ni9w;$}A|!%+F&0IaDF3G&83}H#1M6ILO_}C*4sPs9F@J yIyW(|G%Yc?q_ilt2&~*^-h@*?1$=M?`6;P63?Qx137*bC83s>RKbLh*2~7ZAdwjM4 literal 0 HcmV?d00001 diff --git a/dev-assets/doodads/azulian/white-wr2.png b/dev-assets/doodads/azulian/white-wr2.png new file mode 100644 index 0000000000000000000000000000000000000000..1a1a56680c69979ff4e316bee7765121261f5ba4 GIT binary patch literal 1043 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vLGRFxF%`I|pPYCo?c;Ost(~>v1?h zq}4yz+f|FNOrZ2cz+9bW~QF;4C31NwbXxaNO|GBr}w|7e_d7C&B!>hVw&VK-#v~tdo!iyeD7SmMrHMp z=SPy&Vki8V_`2(O{+w<-ZX4sQv`e3l1SV~~anOr>^Q4u6{({Fte3#cKzTSAMvU_vb z%8l1-e{w5V)~3#Uy`^p95v6Ggjx9}6r&b(rn^QJdggev9|HlvZ*!?bgtud(vMLG+( zcsIRf|KEIn^H#3O!f`<=j4g38&y!g=-ZP!u^|(gf+V3+9haGcx)$RCP2IKiluHTM& z!|~!ao8G$Hvo^8EyklVYZ_7EgPGpIy2-kt%lC{BnFZQ!mUE8yB>$$>T3@I65E2SSi z5RlLf`nK!*?%meUzvcU9*V+GdEvhJY*m4>aDajr|z6=aiY77hwEes65fIzr%$ffT3^QlW{Qv*|9J9x1 zKq=;uAirQB{j2QAJs`!H zlfS;Kmk9b*{)vBu_5{%vN{LflLDes;&AvP1}WXTfOh!W@g+}zZ> z5(ej@)Wnk16ovB4k_-iRPv3y>Mm}+%B2|#06rhwc2YH@N=Wo8nRyDuLGDgI>5jrc)uJ%f yxruqDX^F`trA4VlVC6pZCY%B);Dam3Pf5*T0BMa*@N@>sFnGH9xvXv1?h zq}4yz+f|FNOrZ2cz+9bW~QF;4C31NwbXxaNO|GBr}w|7e_d7C&B!>hVw&VK-#v~tdo!iyeD7SmMrHMp z=SPy&Vki8V_`2(O{+w<-ZX4sQv`e3l1SV~~anOr>^Q4u6{({Fte3#cKzTSAMvU_vb z%8l1-e{w5V)~3#Uy`^p95v6Ggjx9}6r&b(rn^QJdggev9|HlvZ*!?bgtud(vMLG+( zcsIRf|KEIn^H#3O!f`<=j4g38&y!g=-ZP!u^|(gf+V3+9haGcx)$RCP2IKiluHTM& z!|~!ao8G$Hvo^8EyklVYZ_7EgPGpIy2-kt%lC{BnFZQ!mUE8yB>$$>T3@I65E2SSi z5RlLf`nK!*?%meUzvcU9*V+GdEvhJY*m4>aDajr|z6=aiY77hwEes65fITT$X?><>&pI&QJ9Iv!sfjeD5X?* zx;TbtoL@WPAnySK4(3GWGi*zwxBPw|=KeR~*QzUjimVJ0zTN&T-ocsGWI82AlzGi1 zu6@f`4qg=%kVy|Vy75@x!Ohtg%CfrY{!h8rW?$2D-fAcj!!~)wD{}>n$o~5x52R0& zS$eJDNjOn?q-TA@VrN!cE#3!)c{9s-%%87VZ3=XQWQl7;iF1B#Zfaf$gL6@8Vo7R> zLV0FMhJw4NZ$Nk>pEyvFDo9ZZP|7M9tb)PFz{pV75Qr>73=FM|Ev$?!wG9lc3=9Mf z0uoR(Rtj{)RRg{0EVoD$v4JcZ&QcPF28M`569QJCu7#Jtk9#N?9F pqSPX=a-Vq4Eq~a*Is;`GJYD@<);T3K0RW;4beRAE literal 0 HcmV?d00001 diff --git a/dev-assets/doodads/azulian/white-wr4.png b/dev-assets/doodads/azulian/white-wr4.png new file mode 100644 index 0000000000000000000000000000000000000000..ee29adbdfdabb47217c607593423eab4aa8f26b6 GIT binary patch literal 999 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vLGRFxF%`I|pPYCo?c;Ost(~>v1?h zq}4yz+f|FNOrZ2cz+9bW~QF;4C31NwbXxaNO|GBr}w|7e_d7C&B!>hVw&VK-#v~tdo!iyeD7SmMrHMp z=SPy&Vki8V_`2(O{+w<-ZX4sQv`e3l1SV~~anOr>^Q4u6{({Fte3#cKzTSAMvU_vb z%8l1-e{w5V)~3#Uy`^p95v6Ggjx9}6r&b(rn^QJdggev9|HlvZ*!?bgtud(vMLG+( zcsIRf|KEIn^H#3O!f`<=j4g38&y!g=-ZP!u^|(gf+V3+9haGcx)$RCP2IKiluHTM& z!|~!ao8G$Hvo^8EyklVYZ_7EgPGpIy2-kt%lC{BnFZQ!mUE8yB>$$>T3@I65E2SSi z5RlLf`nK!*?%meUzvcU9*V+GdEvhJY*m4>aDajr|z6=aiY77hwEes65fIOm3p^r=85s1GL71^(seKtxkiEpy*OmPlqc9UYgZ+Vn z;Xt8gPZ!4!jq`ISUgT|X;BfBeV4i#6$lvry-aa~a=GW}oviDH$$MO`$7YD36 z)HW8F2*k-+u6Ur*>9aw8{t*M?GA2GlzKL79KUqsn2&lVZ(>$f&#}-ZPoM!?JTbId& zeGiS_mff{x)0`FZ7iTG~<_|f(Hhk}|vdv1f^TRs>bmo6Q$GlmM*S*U8nibGFk|nMY zCC>S|xv6<249-QVi6yBi3gww484B*6z5(HleBwYwsvt!vKq;$aunGnv10zFSLm;vU zF)*|;wy-j`)HX1%GB6M{2uMKDkei>9nO2EgLqhJ0J3tN6ARB-=#VR?!pt2}4J)?vn zpfo8bGg-kUKQ}QmZ`(w}XrMABn6i}A;^d;tf|AVqJO+?M6_QFbb4qkG^Aw7M+?{;V z9fg6aMPaIQ6Z1;b5|c|xi&Bfg%6;ZdI0aO|2Un1vlA6N+(i)xM=?s)%@O1TaS?83{ F1OSKvepLVf literal 0 HcmV?d00001 diff --git a/dev-assets/doodads/bird/bird.js b/dev-assets/doodads/bird/bird.js index 277769f..8d24276 100644 --- a/dev-assets/doodads/bird/bird.js +++ b/dev-assets/doodads/bird/bird.js @@ -4,13 +4,13 @@ let speed = 4, Vx = Vy = 0, altitude = Self.Position().Y; // original height in the level - let direction = "left", - lastDirection = "left"; - let states = { - flying: 0, - diving: 1, - }; - let state = states.flying; +let direction = "left", + lastDirection = "left"; +let states = { + flying: 0, + diving: 1, +}; +let state = states.flying; function main() { Self.SetMobile(true); @@ -106,6 +106,8 @@ function main() { // A.I. subroutine: scan for the player character. // The bird scans in a 45 degree angle downwards, if the // player is seen nearby in that scan it will begin a dive. +// It's not hostile towards characters that can fly (having +// no gravity). function AI_ScanForPlayer() { let stepY = 12, // number of pixels to skip stepX = stepY, @@ -130,7 +132,7 @@ function AI_ScanForPlayer() { scanX += stepX; scanY += stepY; for (let actor of Actors.At(Point(scanX, scanY))) { - if (actor.IsPlayer()) { + if (actor.IsPlayer() && actor.HasGravity()) { state = states.diving; return; }