From 17a69427f147ea27e2a491f97ebf54caa7d1cfb7 Mon Sep 17 00:00:00 2001 From: Aaron Delasy Date: Sat, 2 Nov 2024 04:29:18 +0200 Subject: [PATCH] Add more zombie sprites --- public/entities/zombie-dead.png | Bin 0 -> 935 bytes public/entities/zombie-dead.svg | 44 ------------------ public/entities/zombie-idle-frame1.png | Bin 0 -> 1151 bytes public/entities/zombie-idle-frame2.png | Bin 0 -> 1160 bytes public/entities/zombie-idle-frame3.png | Bin 0 -> 1148 bytes public/entities/zombie-idle-frame4.png | Bin 0 -> 1129 bytes public/entities/zombie-idle.svg | 60 ------------------------- renderer/Assets.ts | 27 ++++++++--- renderer/Renderer.ts | 20 ++++++++- 9 files changed, 40 insertions(+), 111 deletions(-) create mode 100644 public/entities/zombie-dead.png delete mode 100644 public/entities/zombie-dead.svg create mode 100644 public/entities/zombie-idle-frame1.png create mode 100644 public/entities/zombie-idle-frame2.png create mode 100644 public/entities/zombie-idle-frame3.png create mode 100644 public/entities/zombie-idle-frame4.png delete mode 100644 public/entities/zombie-idle.svg diff --git a/public/entities/zombie-dead.png b/public/entities/zombie-dead.png new file mode 100644 index 0000000000000000000000000000000000000000..b91e6b6ca9eaa40d98e4b569b884356cab0b4447 GIT binary patch literal 935 zcmV;Y16cftP)x*R=! zJvjf%!W(m6HAh`I(xuCr&tE&^&~J~Ah$~3cpqk>rK=UqLo|~L-+OguZFBT#V7+P3T z(_fcV@%TQ|cJJDhiUZ>Nwl}H12aiqLhwoq1o~=7fdHPbnnJ-`nNW?Yht>lZ}*3#_M zzZHt=cISRA#0CM5wKq9!FyqkScBjoZA5Z-KnQz&-vmj5LGj(c z{^$~dfe3;jgY$DLge^>X*Sb@eFalR-Orzi^$UL)y8I}6EQC|>?QW(EGS#us|2jGtw zA>t9d7~mg;z4_0oZFh^)mfieYm-beCG-VQ|nOEi({$&^7%r`%I>pUCcB?gGUmCopU zKXIz6_D~YkMqD|1tTK3$`=*2m5RP_R42%eg2QUCh6FCCMW$|Od7>9cpfo<%A#8wY& z$2<=q_lJ%pI zBT_X1TIGAe=#G3>iU|UOy!z~ELi+5nSiz_*FXHXhzj&Z)*&D<*H=D2YA=3{X>~M^M zA^wWn&xU9m*%SRqQ};}8sQIyA3l;Hxe@HxzhQDLPOj&v0n;?XC8ca#GHW@QujNl(r zJRfcKm{8Z(QV0<*NTQUy;2VbVp_PxrH^Wc5QO6S4CV=W!=;{~%{G$-sB{t=ZtjCwX z9usoE)*z3G39D|vN?A`6K>7cd#&W=V;G2Nm5!DyM9#05qn7=xNv~S<_JNf_s002ov JPDHLkV1nq#re**D literal 0 HcmV?d00001 diff --git a/public/entities/zombie-dead.svg b/public/entities/zombie-dead.svg deleted file mode 100644 index bb77ab7..0000000 --- a/public/entities/zombie-dead.svg +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/entities/zombie-idle-frame1.png b/public/entities/zombie-idle-frame1.png new file mode 100644 index 0000000000000000000000000000000000000000..625134e0ad821dd30a28078251e0b6739bb281bf GIT binary patch literal 1151 zcmV-_1c3XAP)w5_(9qs-UQrE~NHh(6*2wY#9<*o1&zhMK3}_ z)Fh203=>OQ6lFEt?|1%l&y4pmXXcEX{NOTYX6~8!zVkotxkQUt#3B|E0uEWi5{e&= zZ|pQRH2ANFM%)6NmLtu4q!e+6EfEQd4@}M#z?hzxQsct1Vm{vP>W;)CE&;sqLKtLq z@_zL6_J-yXs|B`KY~?{=*=ltWVruKFdEEEntr8Yi#4?HxiPvLqln6k`KfcRk>C}Z| zeC)o}LtznD5If`xP>^q$UCQGV_vQq=9~|dnlsJgP0#5stHXgLKwyTRHuSTh9TNRH# zbhaf|zkJ?23L(O_1w1YTA>#iy_T>Fh_b#9B;N#K#XE~*6X?33UvcYx`vw(BSl|E2Z zK*xs$JvSQ<&eeggYxgM`AEb-Lxzq``o9k9NdBzsRoz(@@Slz$@D>+|>kOy%WiDV{H z#SUp$vQ^R*GrE^e7gFwXwSPoi#HvfGEPnEij}IDmGjW%Ef>PuXZaQTk&Ek^{HeHAX zh|fEJ z$~dV$M|vRH zkVCLy^@Y4f67Nw3P9Q-&wP%Am_sv-t0kDANcm!-q@j6wse15D7l!%cmqc?aM2XHYf z0-W0X3d&oxoKNyAiaa;9f|Tw(o@(pM`z$bsh{%NuRjL4ruloG#+ik1zOeV+IkpCl&!Zo)1tQ z2onQN>B<6Hzh*6;Aa!Q=LC)U;N>=2nxG;!^KnP_45Q1w|Hf&1U>$^z6DgdmJDb+@W zsQ~t2-F0&0daBv6nLqj*n=lc;nMd3L7=F~Ba}q3s1`k#P-0Wp7m`!|fp6};q71TU^ zmkx-s6X!=z3#fpU%mVU3EC8T8MT0jrFu_Ng2r7UB622^e@B1rmrn#4%J>|i}!+Xg# zjI$6#Ap5`)2AL&+A2!%#LBDSk#@(pCXXBXcg7O4S4HNcIn_wAP$5fZ!*ErTL|3}f)EyQLUIW`Dc367+-LoN@DEM=$yCl< R$aw$&002ovPDHLkV1nV_|A_zq literal 0 HcmV?d00001 diff --git a/public/entities/zombie-idle-frame2.png b/public/entities/zombie-idle-frame2.png new file mode 100644 index 0000000000000000000000000000000000000000..34101642ed87c19d266d914cfa45c92da5a00d8e GIT binary patch literal 1160 zcmV;31b6$1P)q?tuOLPOLf zjU)^+OBxhqb$e@j_i^8=&v(zg=i0;tmv`=et+UtO=iKv%CNYUg{115K2vaD1c%ime zRaqH69vf*3@D3f=%fB>2oZ(7DhSCF*^93*ldiza#UbcjPZ`C&>;*pjB?s*{$vYLDt zjZIClxuhC_^<`_gF)usE9E6y4o0oID`S}|oEUt)YlpZp#x?dX+fRKN5hso0MbBFo2 z;btSn#Y9vg2FO2W}lM=1r+ zn>ry;X8TT@MAOT&MTWBoNXbOPqS`c0|6|De?=d5^078KNZA;BQM3-K_CikQ+z*|>T zM$>1{;GLqf`GJ%EfTZ7JdRN3qRP+=Z?Wh(@EMQZ11r2@w#XBVx*}%!c?$7k1wmOl})+UqX_(*l~Irm6Sn}DP5u2$Ddzz9KA2efavxoWJ_4mC`^Q3weuX71QFm3wQ^mGtY_wUkAWeVyB2!ii}th03leTymIBJ z4;6(Bq5>cqx=Oi(tpN70woX@5`?xn$Y*@vczQ-kO1aRdMTL2voTMFKU2w{RJ)yc13 z&Q_;wyg17HV@wssyiYGP0!fw+h^F_A448gZ>>jbZ4ivsy+>ZE=^&sGchOvrgL=1|q3D zW%cHrbiVqO^)s!jkW2~Gh-za4UOJTZBG?JUfjH!CZt(OJLPtUnBO+c*F0pTN{xLF% a9R2}Q*w>n*A1dJh0000#oha$oviXTo| z*{QCqOuru(aSL!7>TCH-|A;f95|NIi$LEgDu24MU62L7lgh5u5 zPe*r8Phc*wMqp>*b}p<*uJUd|Oj$(Z!$CK7MOjz}x;2K8NWCaYbN8c6t45h^luKbNO9+ORDt?CDWL&X;K;xIx+gycTbB#8kT6aG`GT%vx8T2`!q90}q7g_#%ulAaV=Ipaq{7?=JFe z08e+M&TUjDKh4^B*~lBc#1ONNy3^PG%wtN7rc-fNev$S8ArI0x#Lwbm*vchuf_Y1$ zzG-s#uRklXQd@1E5S$Cv4I0WqTEvI%pK*Xd0wVD2{g;p4^DB@0 zC=LX%kh5V$E^S=BjxUfpGwdkv?*Q0J>||&qV+4u-2*Dafm0M;kR1^}33V>+nEEOee z1+a&;b%uHd=B!Yh(Pv1BrGyZ0t*{#v&b4DDp)V-^`?`XCat`z_lo8l=#17YrWoGggK;O$v<+wr zWF!5z6NMCGY@xIf*Lv2N4n1{FSyDt;ztgk=r%^psc4wWoAM{01H_En(19ZOmjP*OM zvye;))QD2#DO5>Z7Mi=3ZWw*2oMn`AeX?EB43OwAcemeH^#lJewEY! O0000Wi`F;_|EOT@jYkm%pF_g2gBSuGk50u?)kar-A6Q!dCcQqz#~UkK*_`N zwY~bzFzr<(MSQ;A)g6mRQUZA9g)qo! z@_zL6_D1HCs0DVEZR5tOk`?A6#8lN(aJ%oxD!%iS``E2%0dEIJ`5Y$>lCr>z?DG2AFx7A0$nAHX?djPsB^O8{ z2E2~*?c5Mo5orJKx_FyTUudDj4XqT1n`;5=^G&S{=7J8?x&zbe0LZ7~gY>$f0ihYU z3gnrHfKzE#*}uAwjt&mYcmN_GAQwcGtPx_Z_O_0^ToVi8&Wb`a;~<2ixo9o-@6_!k zO6EgWzYJ$vHQ zaIFkd6fl87JF@^ zgB=3Hh=^Uxf&A3hA35(0_YTfBR1;${Dodr(?ZmTC*6eE$a!v4bY$(jPIF@WnYi9xk z5E4-UzmqIEMO}%RyatHB|MJnawMD8+HVL^PSWjr=Qeyo3q-le!^!p}9vYx}emR*%x z1ChfGEkUeWNQ?OJ?K2LpZy*Bq#3I0@$NiK9qQro=ZdoC%U%7@mNS%3h6!S*a+avBW?i< z-Fp!@2o^$t2de>@?By(&ZG3Tt?+26$W}Mz;1mbKZ`VrOwCLkrVfP5GW0H{t;;7#<8 zncu~(5LN&OBz#!_-}kS$`Np1m^pG2O5A7w_u+Bmdf$RfISY(zIe%N4}Mg1mr0_$p2 zZ#retq?Iq{+AEqXAQ<_d7K#oR@5n;vAkMc9XbWT`{kIdv6cgHod@HVX+3Sb?>nZJ$ zBEtHeVFz#;mBk3iRGqdT%(A4Ol&v-U=xp0b>vvjbAt?#eifZEqy!R>lpKvD-2cnR- v8Q|#>LR&%*!6IHnE|CWX&9bu+`M<&+w12w~e_ASL00000NkvXXu0mjf{=5Z^ literal 0 HcmV?d00001 diff --git a/public/entities/zombie-idle.svg b/public/entities/zombie-idle.svg deleted file mode 100644 index b757918..0000000 --- a/public/entities/zombie-idle.svg +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/renderer/Assets.ts b/renderer/Assets.ts index b129ddd..48e347c 100644 --- a/renderer/Assets.ts +++ b/renderer/Assets.ts @@ -6,8 +6,11 @@ export interface RendererAssets { landmine: HTMLImageElement | null; player: HTMLImageElement | null; rock: HTMLImageElement | null; - zombie: HTMLImageElement | null; zombieDead: HTMLImageElement | null; + zombieIdleFrame1: HTMLImageElement | null; + zombieIdleFrame2: HTMLImageElement | null; + zombieIdleFrame3: HTMLImageElement | null; + zombieIdleFrame4: HTMLImageElement | null; zombieWalkingFrame1: HTMLImageElement | null; zombieWalkingFrame2: HTMLImageElement | null; zombieWalkingFrame3: HTMLImageElement | null; @@ -22,8 +25,11 @@ export const assets: RendererAssets = { landmine: null, player: null, rock: null, - zombie: null, zombieDead: null, + zombieIdleFrame1: null, + zombieIdleFrame2: null, + zombieIdleFrame3: null, + zombieIdleFrame4: null, zombieWalkingFrame1: null, zombieWalkingFrame2: null, zombieWalkingFrame3: null, @@ -43,8 +49,11 @@ export async function loadAssets() { landmine, player, rock, - zombie, zombieDead, + zombieIdleFrame1, + zombieIdleFrame2, + zombieIdleFrame3, + zombieIdleFrame4, zombieWalkingFrame1, zombieWalkingFrame2, zombieWalkingFrame3, @@ -55,8 +64,11 @@ export async function loadAssets() { loadAssetImage("/entities/landmine.svg"), loadAssetImage("/entities/player-attacking.svg"), loadAssetImage("/entities/rock.svg"), - loadAssetImage("/entities/zombie-idle.svg"), - loadAssetImage("/entities/zombie-dead.svg"), + loadAssetImage("/entities/zombie-dead.png"), + loadAssetImage("/entities/zombie-idle-frame1.png"), + loadAssetImage("/entities/zombie-idle-frame2.png"), + loadAssetImage("/entities/zombie-idle-frame3.png"), + loadAssetImage("/entities/zombie-idle-frame4.png"), loadAssetImage("/entities/zombie-walking-frame1.png"), loadAssetImage("/entities/zombie-walking-frame2.png"), loadAssetImage("/entities/zombie-walking-frame3.png"), @@ -69,8 +81,11 @@ export async function loadAssets() { assets.landmine = landmine; assets.player = player; assets.rock = rock; - assets.zombie = zombie; assets.zombieDead = zombieDead; + assets.zombieIdleFrame1 = zombieIdleFrame1; + assets.zombieIdleFrame2 = zombieIdleFrame2; + assets.zombieIdleFrame3 = zombieIdleFrame3; + assets.zombieIdleFrame4 = zombieIdleFrame4; assets.zombieWalkingFrame1 = zombieWalkingFrame1; assets.zombieWalkingFrame2 = zombieWalkingFrame2; assets.zombieWalkingFrame3 = zombieWalkingFrame3; diff --git a/renderer/Renderer.ts b/renderer/Renderer.ts index 5bcdc55..3632f66 100644 --- a/renderer/Renderer.ts +++ b/renderer/Renderer.ts @@ -172,7 +172,7 @@ export class Renderer { } else if (entity.hasChange(ChangeType.Walking)) { return assets.zombieWalkingFrame1; } else { - return assets.zombie; + return assets.zombieIdleFrame1; } } } @@ -307,6 +307,24 @@ export class Renderer { ], }); } + } else if (entity.getType() === EntityType.Zombie && !entity.dead()) { + if ( + assets.zombieIdleFrame2 !== null && + assets.zombieIdleFrame3 !== null && + assets.zombieIdleFrame4 !== null + ) { + rendererItem.addEffect({ + type: RendererEffectType.AssetSwap, + duration: REPLAY_SPEED, + every: REPLAY_SPEED / 4, + startedAt: Date.now(), + steps: [ + assets.zombieIdleFrame2, + assets.zombieIdleFrame3, + assets.zombieIdleFrame4, + ], + }); + } } this.items.push(rendererItem);