From b51a69ca103e8120b3d70aa0de46f9f98f3da023 Mon Sep 17 00:00:00 2001 From: Rob Pearce Date: Tue, 10 Mar 2009 23:16:08 +0000 Subject: [PATCH] Added new monster - white spider --- data/levels/level99.dat | 92 +++++++----------- data/sprites/whitespider.png | Bin 0 -> 1161 bytes data/sprites/whitespider1.png | Bin 0 -> 1390 bytes data/sprites/whitespidercaught.png | Bin 0 -> 1135 bytes data/sprites/whitespiderclimb.png | Bin 0 -> 1209 bytes data/sprites/whitespiderclimb1.png | Bin 0 -> 1202 bytes data/sprites/whitespiderdead.png | Bin 0 -> 1233 bytes defs.h | 3 +- rc.c | 148 +++++++++++++++++++++++++++++ shared.c | 18 +++- website/img/whitespider.png | Bin 0 -> 1845 bytes website/info.html | 4 +- 12 files changed, 202 insertions(+), 63 deletions(-) create mode 100644 data/sprites/whitespider.png create mode 100644 data/sprites/whitespider1.png create mode 100644 data/sprites/whitespidercaught.png create mode 100644 data/sprites/whitespiderclimb.png create mode 100644 data/sprites/whitespiderclimb1.png create mode 100644 data/sprites/whitespiderdead.png create mode 100644 website/img/whitespider.png diff --git a/data/levels/level99.dat b/data/levels/level99.dat index 08d404c..166eb69 100644 --- a/data/levels/level99.dat +++ b/data/levels/level99.dat @@ -1,31 +1,12 @@ bgfile kitchen2.png bg 0 -hurryup 30 +hurryup 10 help endhelp monsters -0 29 13 -134 33 13 -23 36 13 -6 20 10 -158 2 27 -16 15 27 -16 19 24 -16 22 21 -16 5 21 -158 3 18 -16 5 18 -16 6 18 -16 7 18 -16 9 18 -16 11 18 -15 15 18 -17 2 18 -17 1 18 -17 17 18 -17 19 18 -17 21 18 -17 23 18 +134 18 15 +171 3 25 +0 38 28 endmonsters exitdir 1 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, @@ -33,40 +14,35 @@ exitdir 1 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,4, -4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,4, -4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,4, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,4, -4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,4, -4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, +4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, +4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,4, +4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,4,4,4,4,4,4,4,4,4,0,0,0,4, +4,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,0,0,0,4, +4,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, +4,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, +4,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, +4,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1, +4,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,7,0,0,4, +4,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,7,0,0,4, +4,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,7,0,0,4, +4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,7,0,0,4, +4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,7,0,0,4, +4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,7,0,0,4, +4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,7,0,0,4, +4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,7,0,0,4, +4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,1,0,0,0,0,7,0,0,4, +4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,1,0,0,0,0,7,0,0,4, +4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,1,0,0,0,0,7,0,0,4, +4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,1,0,0,0,0,7,0,0,4, +4,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,7,0,0,4, +4,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,4, +4,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,4, 4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4, layer2 -28,13,94,layer3 -29,13,94,layer3 -30,13,94,layer3 -31,13,94,layer3 -32,13,94,layer3 -33,13,94,layer3 -34,13,94,layer3 -35,13,94,layer3 -36,13,94,layer3 -37,13,94,layer3 -38,13,94,layer3 +8,8,8 +36,13,8 +20,16,8 +26,21,8 +6,26,8 +16,26,8 diff --git a/data/sprites/whitespider.png b/data/sprites/whitespider.png new file mode 100644 index 0000000000000000000000000000000000000000..522e3d8af025c6834296f2633a2057596afdc44f GIT binary patch literal 1161 zcmV;41a|w0P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXG) z038nomunjU001I%MObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakAa8CUVIWOmV~41B zLjV8++et)0R7l6Im0f6DMHI(>bMJnb{mM;pH`yfa#?-Y*+6FakAP=Gi8?-)XsRb>l z4@!l;D2hc;LIocLg{Y_~N?WNu6k0G3u?j6prD@_C#JZ<@bPneH!w0Z9{KIGMRz~&F3<@auLuP4z{f&}p2VM-$X^Q!MqS2j zGdFug(NiGD5&|g-cdg&MK3^#A%`Rm=0q$3tlfXcE zl~w_16-!Oii``qh`T_ytQM1O|<*##NY%-I9mIilys6k4hF*|XcOD8TdeC8)6$7V$~ zlO>Z(MdFL;byCVSa1?kL2mmhwZ~p680AoO#@*^$bP^hzegJ*goir1*dTjRl7=aL|} z7M(_uaAPJWVmIPsQbl45i+@NdcL7sC6z~Fj6|mQV@ne>_ELG`l3+#Dd!__NSJ+e?l z6kXWx5ueL*#O}ReU9P2kt*>cCN(&=!dEP&G7 z^JORDMV0@slz6%Va1-!Sg?xGY!Xn&b$$QG6DU}bQCRs(gEDt)YcRP?%eon>ZHmo$> zDw`h$=7DXL!S?*eB{2f@DZfv}%S=kCE1hwbs2+6FbThyKOQEcVc`DSxvfony_z0L-BVa=HE9#x9v>*S&9Ka6Ce*a@F b&8^zs*G756do1tg00000NkvXXu0mjf7K|AI literal 0 HcmV?d00001 diff --git a/data/sprites/whitespider1.png b/data/sprites/whitespider1.png new file mode 100644 index 0000000000000000000000000000000000000000..8615a5d028c28cc674a5546d1243453c8ccf9a22 GIT binary patch literal 1390 zcmV-!1(EuRP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXG) z038sEpJwg=001I%MObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakAa8CUVIWOmV~41B zLjV8-z)3_wR7l6Qm1%5LRTRg6_f2P}%+_h=wRE8^OQ9`G0s|E_s31!)5i}7oP!`ch zs_~5cBxQ11 zDy2lK<)YL|rBul!xgaOyh!lkORDJoyhJ71{M0_mYyz-tr2Eenq^LgT##{gLK!K)AZ zaec*zprj63J2hQ_^OQ%o(h{!G%w3MA1~+=PL*q zk||F4p+$0aH}+gyQDK5k}m0%E@_w6@O3GbW3pe??OH99o}Tg=FdGmc4`>6< zStA=idn5q1g)`?AD97uM!5izr8*m9Is>-in z2-HZq|y4u4u)Zc6ax`D5Og}@0Q7pMpRbl_J@w@wp7DHX|N8Q=vvfIU|(U-3v! z7!`IAg^#A%TkL*+uewp*sSfQup&U-9${dwWT6SV}S7)ddaO?HF_7?<7brHpP(JtkGm%$JEJu#dths3W@=l$Y08k)l*WA1l=Q*< z#OZLf%ZInMSq|{HmIc@bd;&OtK*XpM7!5>gy-6Eyi4fmq?Xi&E4?LntT^5_XNM}SQ zn{^hA)Oxwr9oE?ngtQ#e`khDu{94YlL>ZapHh?vn9pEI;g(X}IjsmN-yjttGK|~_+ z*=D)cW}ralacJaJ5i|p(rYi>Pi8L~ROf6?>{Z2xqYrwEv>2dA1*J*$KoeuN>r}U(_ z4a?@`^3kGM07QF~Wk(ShY`2=)ErbAb{_al?dLUrxjdyk9&ei(VyFD}hxIV<1(f_us zEcp*=zd`Gp7zJ$5p>G4?BV#GrXV53ccF%`(>&7?kBs2h~kDGw*%U;4vozMbJ7}TeG wi2nwg?q>j|jUC#%k)ATZuo~uBdggz_Uym8N2_?X3X8-^I07*qoM6N<$f)WXbvH$=8 literal 0 HcmV?d00001 diff --git a/data/sprites/whitespidercaught.png b/data/sprites/whitespidercaught.png new file mode 100644 index 0000000000000000000000000000000000000000..5b59e93ce240c252c4f63a54fea301fe5cc08ede GIT binary patch literal 1135 zcmV-#1d#iQP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXG) z039MjNH=Z(001I%MObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakAa8CUVIWOmV~41B zLjV8+!AV3xR7l62m1}65RT#&A=e;CL6Vqg^>(+~Hu+7RgQCABE>717$hy&e+!DQ+t z3<}D`K?fqDA__84kV%~|MNsg==C$DFhO-XshgvMU&2}qdVrkRb+}mWiyzlYL=}cp? zmOXIbea?BF|9LL&`9H7*2?Scq67@FVAwa6tw0zLo6wp=$bKnyt>YxIN0*?T-+=Ofg zMu49bSO#e4Cgq5VCIP$)9IjxauLbBm;A0ih5w&;Eib{a1lB1{sIIfCa1cJb=z@JrY zy8#RMOW9SFSAYU=yuz6WII1p?W$Ur3ISWA&hyj6;?Xe0VC)Fj(rKl{mb>34#h%B%J zc)AQ^L`tbkDfKnCH@L0sEq`szB_YIo8CcJa{EX#~zI_MXeNVRU%tli!7rq$vO;3h; zo$i_~e#0bpt+2SXlomgT-^QpvK+^b2A(eHG|e@r8Ei;k|= z)a8-T>*;i6b--s{*tdSm9f8*x>+1JzU?X~)K}%ab9=A0TpP%oEMq;9|xuLQ7iAFi} z(S=MdpFaaUUJX!xZm@s%?ZLoH8)(p6c<|tt>oA40mFDd9BC%uwtB7zoTq2#!n8{eG z6W9an2hOWM;ksxIoBa3t@EK0rSQMp&g_j1|>gp81z96=MbDxjU`}G*l$FE)Q8SqV| zXJ`29yq#`5XcW;9XxJDyg^va{wQZz1(8L3e)^T{~EWwth1mFYAYAI_D!`WftKwu*f zLdQe^HbsQA0m=76XL-B6p8jmkr~C@Q%fROU0ooKi7C8j#q(qkjUD!yOCNAg0b0Qth zhNQb8})nApO=lo|#(QY;cB5}I2|#~0mBhZkGu z2+fqrZ)??*3wdkCqJT{S4V@e*xxf@Nk*gwcalxHVBuT`gnb6Eyz26bw2g&G>ZI$Ie|GEZO`n@Z z@!QlmpC0{6Tppdsciq=@@%PcmV0bF*QMqcsfC8gZ4YdP3@0<=#%)U4|F|lxUZj$gH zGsCl?7>R^+B@#)T3QdK>@<01LaC$A|qP==-VCRY9V|)7dA9&W`a6}EmC}^5)DTX;z z#yH!nB3=6BT(vRqK^aK2Og~ta^1uA-gphJZSlN*1?&@-u9ZytX>2k*2R>Im<=KIR2 zwpR_T8vzdj?P8VMx`1qn{;-;cyUGUAhpOY7{{`OfcI?l1L}&m2002ovPDHLkV1lEf B74!fA literal 0 HcmV?d00001 diff --git a/data/sprites/whitespiderclimb.png b/data/sprites/whitespiderclimb.png new file mode 100644 index 0000000000000000000000000000000000000000..026708b0dd91b6851f4d0717fe1516262f4cd520 GIT binary patch literal 1209 zcmV;q1V;ObP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXG) z02>_CbB#j)001I%MObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakAa8CUVIWOmV~41B zLjV8-3rR#lR7l6Am0M_BRTPH5bIx2dlguQOv?hU?OB<@FfzaAgBNU7pN(E6Ww266Y zu|654DEMHCw6!fNh*oP9yw!(1_+V>mBZv(pSV`MZC50GFnlz2ZWZK+jGBfA0eAyFD zCXI zaiB&;I0AeMwD^O8@L=C{(KoL@k%=VN`8>W#2dmH#J8h<|JF_!0L*Yp1zJ=Mus0!2z zYz1}#FR3Il0Gf{|8D@HcE5Mh)WfkF7fV%pccbZz7o@w6QR8?JZFCi_APxB%;SXkIt zq?|e8^HYoc=lX-~dk$&908pn$g21B6e5WVF%tydB;2Rg&MW6t{%$V`I2Wn%rmDNPG z7(Tq{IF5#43px(A9@R^XNF)~2n>`pF!?7(}03CP_uvMjg2fB4&zlz{pRqOA7uK*1= z7>I$vNhl_wf_L{8ZZR30x=J8 z8`z@AI@P#ejW;I8CjGZ=-f~h^i+Y(+fhiV-1_lPYcyTPSJqgB>Ba97?W(9JAmH1le zg&nTRLqJFNLpO8*BwQM5|KR-5^pJg3k}@lqL_$)jl$fcMEXtgWWG>6;fls8h{b^B7 zMQLKY%Xbi!c0?U$F0N>r)_?|~k^*h-+s);H^qQN`J^!o`(<=xV1thI`Qu+et&zzN> z?|-&`?7F1SFC=uJ1vsVd-Ui@LrHLe~Anb~C>oxhs0QvxVsBxow+;ddAemf~$zrHVJ z6(yq1Xs9q8%JuVt63r6yRS3J)cu74rP!CM2sw_QI6Sp_1^I4zA&j?_t@vejq1Bgf? zK)tr5LtW-4^VklkzRCPTqSxc~5RQZZ{OT^x18Y=;@}ePIP7yI&^8%Qz>~XcPY$wUw z&0p?<;kp_E^oXpmIptDdE}8)eEGH^e?;XGx(3>yAY&4B|2myY|mT(n;3@<>-8IH!rufWIvx!?aNW*E3VnnU&J5q^H#@Ul(7J>0KVKE#iaqF zCBfY3tU7nODm3BxMJ-1pT#$X;ql^dK>mMF@lmCc5VD8aP-hVY5P#HGx|Ip!XkGc2< XBTPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXG) z02?|6eh9t*001I%MObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakAa8CUVIWOmV~41B zLjV8-1W80eR7l62m1}4mRTRg6GqaoB?9L|JCQ&O?XlkTBNXfR93Mnduv?_{UMATA? zh^_dgK4?LNNU0^&A}xxf%?HsoN-P#?YpED$qr?ZPkr+0yiDZ*avo$80_dc?ZIezd? zI;NXeJTTn3XU_ef$Nir(8n6QR3Ah881p+`6*aYkX_%3ipljL$H7 zb&~c^e_(apJzQ*#0QkQ>(X_#57Vk?XQfo!<0aL&^;CTRze~S;O1P%Z-K&cAgr6K8Q za^u3lLzWB)=9prN*vOysbVqRO20+=KEqf0EJAg^xB=7`q8?YC6*XeA7<9&@zRhi;apr|nF+a) ziOW!aOonAd1|)2C$l-GbW!2p)$JJR;xFO}^H9&NrPmyIC(627{4MnKU`CML0#&eWN z1@5egTf7FMxkW6uWm$SYXW^RnP^R5VPe z2Zo3xBj|=jQP#vSL5d0D)q;4X1k)%Xolh|`JYtPTM?JuxI=@S;$JAPlA_nU2Y_Auj)}st=QH|dTcwBB5vvUa?2OEKK zfk3waZlGR75RqD?zrRpc_W_?c$`C4GlTlB=G4^cvMol9DP!5e7;Z3UyqKZ)fvV9$FY~6DPX2iR^?s_SAdWI*ZG+(QVwRPAmtuU8 zJwE}<GYY7AV4bo?*l=2JR QNB{r;07*qoM6N<$f=ACDEdT%j literal 0 HcmV?d00001 diff --git a/data/sprites/whitespiderdead.png b/data/sprites/whitespiderdead.png new file mode 100644 index 0000000000000000000000000000000000000000..a821d8128af1459ee3bc3dd136c2f3dac985008a GIT binary patch literal 1233 zcmV;?1TOoDP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXG) z03Hal-mQB8001I%MObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakAa8CUVIWOmV~41B zLjV8-BS}O-R7l5-m0xUBMHGj>x%ck2`-iq*wvv|GHJi4g2GfcO8cY;I@Ja}xFQ8z2 zQH&w=!C+!yBI*NAyg?);5R4BPZKDm~K-8op7>ZEQv<8R`=hq~P1Lrv3ngmXD?R)EsBH)4^A#0Wf4|L2i?FQaaQcgx~+g}mb zwryK?VQlPGV7(j3Vb6A7;@Gj(0G4T%y?&J>6K-fo=wfkbCY$X7BA%`1m6Uy!IsfI} z1-^3RNNCH76))YMo^CohFi@Aibm>Ja9DY*xe3bL~$x<%2OG$ZPp%-ES92^{MS+#U& zXUOM!JDJPX2qE}28030yFNR@I-_eo1dFITQz{0>SQZ8waL_U8s6x!-H3?hL5vD#XK zmUZU4WO7w5nG}nfn;U9lFB2~*s8Jwk}tPxwreXiW`|G&dtQZDP2mhegfJ z8K6!{>8p5#e#2-nU67lKdaluMPY;pyc7VExkrAS{T?D=WzE@KIdyizTb-1iGE=U7H zYpqL;qpxPOVltBvP3zWC8;enzp3b>`SAdOfCfyrhS?ejSbx><9gb-Q?f#W!o90!%n zP8HJWkX2ocFinII8bC?;R7J^!a`{HkvLds^(QzDID3`f9IVmos)1m2127r)dJxsU2 zxRuZM&p6KAg+jS3e!F&!J?GAGE1#z}7NaH_#c>?6N(E-?VWr|~-JF{03i*7mFAWCk zOd-TzD#iX&r$n-^Z)Vw=HG|2%zSi-0JnX6PyOfkOuJrrP(CF;!JaIXd`ea~i?DojS z1ea5(Q(2`bq|;Y&H*R!~$KzK$_A|hV2T3+F@i=D_i9c)F+yAf(L;ettt6?cuImKdQ zc4%lVP!D_v*zQCApsuCmXeN=kIdAHn9vu~{8yodJ1@>#;UC&YqSmK$#2mGX@ymens zIXE~dwl81Kbg9I;J$w9TckeEEz?Xrx2dL}@b^}UDIa#Sm`2kZ&nRn+~fp6!_UC%fG v>=g^N)4(j$ov(Mh;YQ#!kLe*dYuf$?PZ_xeoncloud = B_FALSE; } + // clear regrowth + numregrow = 0; + // load next level data if (haspowerupany(PW_PHONE) && !isbosslevel(curlevelnum)) { // don't add monsters @@ -2322,12 +2325,14 @@ void checkcollide(sprite_t *s) { die(s); } } else { + printf("DB: player killed by %s\n",s2->name); fflush(stdout); die(s); } } else { // initial flashing black cloud doesn't kill player; if ((s2->id == P_BLACKCLOUD) && (!s2->invuln)) { die(s); + printf("DB: player killed by blackclodu\n"); fflush(stdout); // play sound playfx(FX_EVILLAUGH); } @@ -4793,6 +4798,143 @@ printf("setting target to y = %d\n",ss->timer2); + /* moves like an angry rat all the time */ + if (globpowerup != PW_CAMERA) { + if ((playersalive()) && (!s->jumping) && (!s->jumptimer)) { + sprite_t *abovep; + /* if player is above us...*/ + abovep = isplayerabove(s); + if (abovep) { + if ((xdiff >= (TILEW*2)) && (xdiff <= (TILEW*3))) { // if 2-3 tiles right + /* jump right */ + jump(s, D_RIGHT); + } else if ((xdiff <= -(TILEW*2)) && (xdiff >= -(TILEW*3))) { // if 2-3 tiles left + /* jump left */ + jump(s, D_LEFT); + } else if (s->y - abovep->y <= (TILEH*6)) { // player less than 6 tiles above + if ((xdiff >= 0) && (xdiff < (TILEW*4))) { // ... and within 4 tiles + /* jump up */ + jump(s, 0); + } else if ((xdiff <= 0) && (xdiff > -(TILEW*4))) { // ... and within 4 tiles + /* jump up */ + jump(s, 0); + } + } + } + } + } + } else { // falling + movex(s, s->jumpdir*getspeed(s), B_TRUE); + } + } else if (s->id == P_WSPIDER) { // white spider - very intelligent! + // timer3 is climb direction + if (!s->falling) { + int move = B_FALSE; + int xdiff, absxdiff; + int ladderx = isladderabove(s); + + + /* distance to closest player */ + xdiff = getxdisttoplayer(s, NULL); + absxdiff = abs(xdiff); + + + /* already climbing */ + if (s->climbing) { + // TODO: replace with just climbing the current dir + if (s->timer3 == D_UP) { + // climb up + int ladderx = isladderabove(s); + // if tile above is non-solid, or a ladder + if (ladderx || !isroofabove(s)) { + /* + // lock to ladder + if (ladderx) { + s->x = ladderx; // lock to ladder + } + */ + // continue climbing + s->y -= getspeed(s); + s->jumping = 0; + s->falling = 0; + s->climbing = B_TRUE; + s->moved = MV_WALK; + } + } else { // down + if (isonladder(s)) { + // climb down + s->y += getspeed(s); + s->jumping = 0; + s->falling = 0; + s->climbing = B_TRUE; + s->moved = MV_WALK; + } + } + } else if (ladderx && isplayerabove(s)) { // if we are at the bottom of a ladder + // start climbing + s->x = ladderx; // lock to ladder + s->y -= getspeed(s); + s->jumping = 0; + s->falling = 0; + s->climbing = B_TRUE; + s->moved = MV_WALK; + s->timer3 = D_UP; + } else if (isonladder(s) && isplayerbelow(s)) { // is we are at top of ladder + int ladderx = isonladder(s); + s->y += getspeed(s); + s->jumping = 0; + s->falling = 0; + s->climbing = B_TRUE; + s->moved = MV_WALK; + // lock to centre of ladder + s->x = ladderx; + s->timer3 = D_DOWN; + } else { + // walk + tt = gettileat(s->x + s->dir+getspeed(s),s->y,NULL,NULL); + /* if there's a hole in front of us */ + if (tt->solid == S_NOTSOLID) { + double ycutoff = s->y + (TILEH/2); + if ((player && (player->y >= ycutoff)) || (player2 && (player2->y >= ycutoff ))) { + /* if player is below and nearby, fall off */ + if (xdiff <= (TILEW*16)) { + move = B_TRUE; + } + } else if ((player && (player->y == s->y)) || (player2 && (player2->y == s->y ))) { + if (globpowerup != PW_CAMERA) { + /* if player is at same level and close, jump */ + if ((s->dir == D_RIGHT) && (xdiff > 0) && (xdiff <= (TILEW*7))) { + jump(s,D_RIGHT); + } else if ((s->dir == D_LEFT) && (xdiff < 0) && (xdiff >= -(TILEW*7))) { + jump(s,D_LEFT); + } + } + } else if (level->bottomopen && (s->y >= (480 - 100)) && isplayerabove(s)) { + // if near bottom of the screen and can fall through... + move = B_TRUE; + } + } else { + move = B_TRUE; + } + + if (globpowerup == PW_CAMERA) { + move = B_TRUE; + } + + /* either move or turn around */ + if (move) { + rv = movex(s, s->dir*getspeed(s), B_TRUE); + if (rv) { + /* if we couldn't move (hit a wall), turn */ + s->dir = -s->dir; + } + } else { + s->dir = -s->dir; + } + + } + + /* moves like an angry rat all the time */ if (globpowerup != PW_CAMERA) { if ((playersalive()) && (!s->jumping) && (!s->jumptimer)) { @@ -5855,6 +5997,7 @@ void dotileeffects(sprite_t *s) { if (!s->invuln) { if ((s->id != P_BLACKCLOUD) && (s->id != P_KINGSNAIL)) { die(s); + printf("DB: killed by spikes\n"); fflush(stdout); } } } @@ -6525,6 +6668,9 @@ double getspeed(sprite_t *s ) { } else if (id == P_RAT) { if (s->angry) speed = 1.5; else speed = 1; + } else if (id == P_WSPIDER) { + if (s->angry) speed = 1.5; + else speed = 1; } else if (id == P_ANT1) { if (s->angry) speed = 1.5; else speed = 1; @@ -12075,6 +12221,8 @@ void startgame(void) { fpsticks = 0; fpsstart = 0; + numregrow = 0; + // init player variables - if player // hasn't been allocated yet then this will // be done so in loadlevel(), and the below diff --git a/shared.c b/shared.c index 6564207..862470c 100644 --- a/shared.c +++ b/shared.c @@ -1404,6 +1404,18 @@ int loadimagesets(void) { /* next 3 are auto generated */ imageset[P_ANT3].numimages = 8; + loadspriteimage(P_WSPIDER,F_WALK1, "sprites/whitespider.png"); + loadspriteimage(P_WSPIDER,F_JUMP, "sprites/whitespider1.png"); + loadspriteimage(P_WSPIDER,F_FALL, "sprites/whitespider1.png"); + loadspriteimage(P_WSPIDER,F_CAUGHT, "sprites/whitespidercaught.png"); + loadspriteimage(P_WSPIDER,F_DEAD, "sprites/whitespiderdead.png"); + /* next 3 are auto generated */ + loadspriteimage(P_WSPIDER,F_CLIMB1, "sprites/whitespiderclimb.png"); + loadspriteimage(P_WSPIDER,F_CLIMB2, "sprites/whitespiderclimb1.png"); + loadspriteimage(P_WSPIDER,F_SHOOT, "sprites/whitespiderclimb1.png"); // TO WORK AROUND A BUG!! + imageset[P_WSPIDER].numimages = 11; + + loadspriteimage(P_SPIDER,F_WALK1, "sprites/newspider.png"); loadspriteimage(P_SPIDER,F_JUMP, "sprites/newspiderjump.png"); loadspriteimage(P_SPIDER,F_FALL, "sprites/newspiderfall.png"); @@ -2009,10 +2021,8 @@ int loadimagesets(void) { // free red image surface SDL_FreeSurface(reds); - /* flipped angry image */ imageset[p].img[MAXFRAMES*3+i] = rotozoomSurfaceXY(imageset[p].img[MAXFRAMES*2+i], 0, -1,1,0); - SDL_SetColorKey(imageset[p].img[MAXFRAMES*3+i],SDL_RLEACCEL, 0); } } @@ -2172,7 +2182,7 @@ void drawsprite(sprite_t *s) { } else { frame = F_SWIM2; } - } else if (s->netting) { + } else if (s->netting && isplayer(s)) { frame = F_SHOOT; } else if (s->iced) { frame = F_WALK1; @@ -3222,6 +3232,7 @@ int ismonster(int id) { case P_BEE: case P_FLY: case P_SPIDER: + case P_WSPIDER: case P_SNAKE: case P_TICK: case P_PLANT: @@ -3746,6 +3757,7 @@ void setfruitinfo(void) { setinfo(P_FISH, "Pirahna", "These fish at at home in the water and unhampered by slowness while swimming.", "fish.png"); setinfo(P_SPIDER, "Spider", "Spiders will lurk quietly on the ceiling, crawling back and forth. If they notice a player nearby however they will swiftly pounce down onto their prey!", "spider.png"); + setinfo(P_WSPIDER, "White Spider", "White Spiders are more intelligent than other monsters - they are aware of nearby players and will use the landscape to track them down!", "whitespider.png"); setinfo(P_FROG, "Frog", "Green frogs will continually bounce around, making them more difficult to catch. They are also excellent swimmers.", "frog.png"); diff --git a/website/img/whitespider.png b/website/img/whitespider.png new file mode 100644 index 0000000000000000000000000000000000000000..393b914023a28500e3336417fe750eff0ad9d00c GIT binary patch literal 1845 zcmV-52g>+~P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXG) z03smun0$T!001I%MObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakAa8CUVIWOmV~41B zLjV89mkICK->mul_*IAg+2sPR8oltsy^`0 zr}lw|suF#qAOscku?PrKrIwcp2}F2-DnUr7d_)2#5WogPz$J-^ZHNwKx}&_`_mu=#(0Rtf#wXOjZb zTrcoylVFw8TwBJv+l_?#hA)2;fVDK`JS&IkNS-6-`I_b8Zve0j(z9Cp*##X6$k1xa znuOXc_;oS8Z|^Ss;YSk+JpZr%diqJeGGI)eHhSsf z#?kHf-2I#VcLJS2JJ1T`fgI2TWP~(3Hj=W^x|p_qte2N7IlxRD`fQ75I9}OZxoy`7 zs+$3mr$a^5F@z>0AVTBenL0JKd}*oK!)ymW7l2+uFxQ+wjU3h!b?&7xEG@UZvJwGJ zr~Wf}Xl8O|pi*k@(n9s@QmNF|U2E}*dkZQmgw#w$DFq<`m((n$ z%b#-i`Pb*hkDe;be*JB}xzIFV;I3LV_&u;!q%miKPFk260#^-KE=aIsfs)orlZ?GT&bhD7Q>)gfEUnBhE>${2 z3S+FxkAWTX?wg?3Sb(YqSc3L|N z6uO!L#mw1Rw1Luh3tXOGpjwW&R9dV6uK=^a83DB)_%-kcU|h0G)oO8eu{C~G-?{s3Gteu* z^74E{h|3qt)1B?XzA*A$y>OY2-}xe}tX2;L7l0p2-yZ_U#q}3~ zEx<2;BJjSoPq8IoH`QoEe^+SapJCv?UL$Ae^$coE2eeNx+Q(mw{vQc|qDDaHXlK>7ewzMZm^8 zz8T<2v5&J~CqdWBUdGiLJFPL9X&{3d%lHdorz9RYCLW1_Rh3fl=BOyr2&|kuVUh7Y zMmM_musgghEEWWCBy7glC5x4LE1!k}I;d8wflT~%U=a91>;&Sm11Ukc;UeH=$sYfR z852X*gfhyVtZ{&cB7-9WvLbzBZ_GMHLf8nn-=OplCAz1r&Vl91y2Xx3aHl;nyGl7D zpugu0=bp6dySgI!DS!=dBk-^URL-jFj5B}@N+sBd2h7N_-7Fa>E`CF$RAh{)Ic(c@ zO`3k)Jx5MjR&r^)AGX;E5}2gHDyy8*%VxXocrZ)>Z~O)>txJT*a`3G8^_0Zl=mbhT zl{=R0FacRnzoJD-)W}+bs0%2 zi_|*gfdepfh)XSoldier AntSoldiers move faster and are more intelligent than their worker siblings. In addition, with just a little food they will become queens.
Queen AntAfter an ant has eaten enough, they become a Queen. Queens are just as fast as soldiers and can also breath fire. Furthermore, they are only one meal away from spawning additional ants! -Bosses + +
White SpiderWhite Spiders are more intelligent than other monsters - they are aware of nearby players and will use the landscape to track them down! + Bosses
Cloud of DoomThis unkillable cloud will appear if you spend too much time on one level. Beware, as the only way to defeat the cloud of doom is to complete the level before it grows too large to handle!
King RatThis mighty creature is the ruler of the rats, and impervious to the player's net. It can only be harmed by slamming another monster into it! King Rat will roam the level searching for a player, and upon spotting them will charge at high speed.
King SnailThe absolute ruler of the snail kingdom is far too large and heavy to catch in a net. In addition, its shell provides protection against all attacks, leaving only its head vulnerable. While King Snail is too proud to chase down enemies itself, it can use its snail army to destroy its foes.