From a721f7a416e2043a4ce67de749a1cf684d058845 Mon Sep 17 00:00:00 2001 From: Cameron Reikes Date: Thu, 22 Jun 2023 18:53:45 -0700 Subject: [PATCH] New type of entities, machines, arrow dispenser, idol machine dispenser --- assets.mdesk | 16 ++++ assets/arrow_shooter.png | Bin 0 -> 1001 bytes assets/idol_machine_has_idol.png | Bin 0 -> 13556 bytes assets/idol_machine_no_idol.png | Bin 0 -> 1868 bytes assets/new_level.json | 121 ++++++++++++++++++++++--------- character_info.h | 5 ++ codegen.c | 4 + main.c | 120 ++++++++++++++++++++++++++---- makeprompt.h | 15 ++++ tuning.h | 6 +- 10 files changed, 239 insertions(+), 48 deletions(-) create mode 100644 assets/arrow_shooter.png create mode 100644 assets/idol_machine_has_idol.png create mode 100644 assets/idol_machine_no_idol.png diff --git a/assets.mdesk b/assets.mdesk index 91a25bc..637558c 100644 --- a/assets.mdesk +++ b/assets.mdesk @@ -26,6 +26,22 @@ { filepath: "copyrighted/merchant.png", } +@image idol: +{ + filepath: "idol.png", +} +@image idol_machine_has_idol: +{ + filepath: "idol_machine_has_idol.png", +} +@image idol_machine_no_idol: +{ + filepath: "idol_machine_no_idol.png", +} +@image arrow_shooter: +{ + filepath: "arrow_shooter.png", +} @image knight_idle: { filepath: "_Idle.png", diff --git a/assets/arrow_shooter.png b/assets/arrow_shooter.png new file mode 100644 index 0000000000000000000000000000000000000000..ac1b6424bdb9d618190f7af98f10630da44a1270 GIT binary patch literal 1001 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrU~J8Fb`J1#c2+1T%1_J8No8Qr zm{>c}*5j~)%+dJZtxBTpWdfxq0!lY3Xg$&h)oE(I6qa%I;FC-I3q74DJ$j_ELrmsR z#2Tv|7O!7D(Bf#4S6HX#*QFQq=>H_AZVCRr-yh%Id;CsT;mT$WvDd%HjByf3cri&M=vI-o9e-stXzj_aMv&2{H~ zwkw=5Ri*XEoQg9GxP|PCV#|K^7GF$kOmFM;$?CK4(Gj~Hk(V516!J*(QOBaJDf%g~ zVHWv?VW&f{?NP5!G+3{@e5YSAN1={Vql(Lk6-msg5gnISO-xd9{cXtqzu~d}ByY9r zY!a5w0vowber*1K@O|FdLr+>}i}Wzg)!+8lkcXwL(e3QE{r$PS3z>e*Z`5Ap&zWteDCfv85t&J*HdwyE6U5O^Z(Dw{Pvx>roU+QB%gz`f$_qY|H(?D8gCb z5n0T@pr;JNj1^1m%YcIHC7!;n?9bW68LV}>3uhb$3Q3l@MwB?`=jNv7l`uFLr6!i7 zrYMwWmSiZnd-?{1H}Z)Cer^cjF$ z0ftz9jTrGAKNuHCHf(45AZ&P?VU5jSZiSx@wsRaXTA-88s(qee@4bVC_osQNNza#D z{=s4ce__G>$Nk^`f4eblbNtV5X^adE3>mMuFV-)-cQW7cERe_G>FVdQ&MBb@0Ov=D AO#lD@ literal 0 HcmV?d00001 diff --git a/assets/idol_machine_has_idol.png b/assets/idol_machine_has_idol.png new file mode 100644 index 0000000000000000000000000000000000000000..66d21ffa01281755492d22cceed73c4f1709fa6f GIT binary patch literal 13556 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 literal 0 HcmV?d00001 diff --git a/assets/idol_machine_no_idol.png b/assets/idol_machine_no_idol.png new file mode 100644 index 0000000000000000000000000000000000000000..0373eabc8e5d41297285501cdce8f3da7fa759fe GIT binary patch literal 1868 zcmbtUc~q0v5}z+2Bm{|phNUz}SSq0`L0X=GET4oZSU`|PI4C<-RJJU@6DVIm6a_&j zh^-4z4oEEuYFVU+0Ys_QB8x_;3I>s-mCX&FhP*HK9p8C>zq#k0duPtvS$;Ef5BmFU z)S?q!@K!Pt91-Y!=A+U-W)!k0%ELmT)>Gsek zQ~4`gZpvJMyVmC9OSjZx73TSiCo*nJG7(Zwz1)>y-FnN%WQm~5N*@3 zWsB|h<{K9V8C24!qNu}?ye~<7D!8TPxtpIcwnEe-Br=%e=sbiAIW7m;k`mOtq1W8uv6@NEUkg^2ihFdin;2 z;VpFyxad|Oc|J~Fkih-(MK9WSEnk((U zWmkUKqT%IRZ+9l)5{XOzIvDf_G6j@^xP%CfwGc3n26YBQAk=G1i0Hf-cm=&5Rys31 ze=r=^?Vw@p)fMuF+omjPB%qI)jgdK>!LOXOt&UGT^y_GDv*PvsnK$}SzE*3J1&quN zdT99Km|c+rNAb|fU=LNYC|Gjn%b89YDb2R@yk*BQNkPey#Xvpf^RArQPa4JSon&aD z&Ry!&70!X(zh3S<9kD!;Y1U??=?u9`PQH;!e$UU6{F&;t&4kN^=TDA0uBh(Pg<~ER zBoOvV+e9EfO=KZG9GJ{9QjHAUozVmoppzIig=o)Fo5>B|7{lZJ()+K)K9zbTFrP83 zNA9-Q80A)7W7ZIfQfJWKuoxbF#FgcPOx9|KhW9$>5^JFiP7qD<1d(s@td?De6Sm59kj|E zDaLJKj090yaHiGa=Ipr685-nYosZ3Y;9O5+Wm6t~cIVnJ$&v%MC>h-qUig3kbaFFgj16L_Sik!k1XQIz^0T6E5%ovF8OI3K3Hu{k1zGD+ zQ6vVF<>|V34GEL5cq_1U$`nrYN{HBjRt6i_byQ=0_>rKsdzp%$H@8LT;+=E%xkrPG z9&_2UTc+hPE}TD5LU!w~Nu4ht!2O|s;IRc6bMxAc2m}sx}UDA2CP|A5z8wr z(Grp0AZS^C1R0MT#Y0G;usDU-SF;L*Vs^G~LeSI~+d@6=+61!$_lT$SnH3F5t@LJ9*=gAY0PdtO`P z1sDzLYHHT$kYG}!r$6JG*U8?Fhlet$a6ue8MEeTg_8%z|~KMs=x4 zAR0pliun2yCSmWGR;Q{NpcaIER$ZdM6Mq`?Y23cQ$C{X3o29IJU`D19#Ogf283qD=>Px# literal 0 HcmV?d00001 diff --git a/assets/new_level.json b/assets/new_level.json index 136b1e5..d0ba416 100644 --- a/assets/new_level.json +++ b/assets/new_level.json @@ -304,25 +304,25 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 60, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 60, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 60, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 0, 0, 0, 0, 0, 60, 60, 60, 60, 60, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 60, 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, 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, 60, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 60, 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, 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, 60, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 60, 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, 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, 60, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 60, 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, 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, 60, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 60, 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, 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, 60, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 60, 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, 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, 60, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 60, 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, 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, 60, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 60, 60, 60, 60, 60, 60, 60, 60, 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, 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, 60, 0, 0, 0, 0, 0, 60, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 60, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 60, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 60, 60, 60, 60, 60, 60, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 0, 0, 0, 0, 60, 60, 60, 60, 60, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 60, 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, 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, 60, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 60, 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, 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, 60, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 60, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 0, 0, 0, 0, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 60, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 60, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 60, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 60, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 60, 60, 60, 60, 60, 60, 60, 60, 60, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 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, 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, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 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, 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, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 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, 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, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 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, 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, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 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, 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, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 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, 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, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 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, 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, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 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, 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, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 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, 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, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 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, 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, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 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, 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, 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, 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, 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, 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, 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], "height":100, @@ -354,8 +354,8 @@ "rotation":0, "visible":true, "width":32, - "x":1533.91836734694, - "y":2659.73469387755 + "x":783.91836734694, + "y":2651.73469387755 }, { "class":"", @@ -441,17 +441,6 @@ "x":1524.66666666667, "y":1114.33333333333 }, - { - "class":"", - "height":32, - "id":29, - "name":"Arrow", - "rotation":0, - "visible":true, - "width":32, - "x":743, - "y":2726.33333333333 - }, { "class":"", "height":32, @@ -501,6 +490,72 @@ "width":32, "x":1537.33333333333, "y":2517.33333333333 + }, + { + "class":"MACHINE", + "height":32, + "id":34, + "name":"idol_dispenser", + "rotation":0, + "visible":true, + "width":32, + "x":800.833333333333, + "y":3087.5 + }, + { + "class":"MACHINE", + "height":32, + "id":35, + "name":"arrow_shooter", + "rotation":0, + "visible":true, + "width":32, + "x":480.5, + "y":2730 + }, + { + "class":"MACHINE", + "height":32, + "id":37, + "name":"arrow_shooter", + "rotation":0, + "visible":true, + "width":32, + "x":972, + "y":2752 + }, + { + "class":"MACHINE", + "height":32, + "id":38, + "name":"arrow_shooter", + "rotation":0, + "visible":true, + "width":32, + "x":546, + "y":2867 + }, + { + "class":"MACHINE", + "height":32, + "id":39, + "name":"arrow_shooter", + "rotation":0, + "visible":true, + "width":32, + "x":945, + "y":2955 + }, + { + "class":"MACHINE", + "height":32, + "id":40, + "name":"arrow_shooter", + "rotation":0, + "visible":true, + "width":32, + "x":447, + "y":2985 }], "opacity":1, "type":"objectgroup", @@ -509,7 +564,7 @@ "y":0 }], "nextlayerid":5, - "nextobjectid":34, + "nextobjectid":41, "orientation":"orthogonal", "renderorder":"right-down", "tiledversion":"1.9.2", diff --git a/character_info.h b/character_info.h index eb90350..7bfd6e7 100644 --- a/character_info.h +++ b/character_info.h @@ -106,6 +106,11 @@ ItemInfo items[] = { .name = "The Sword of Nazareth", .description = "A powerful sword with heft, it inspires a fundamental glory", }, + { + .enum_name = "Idol", + .name = "Enriching Idol", + .description = "A glimmering emerald idol, its heft brings you dreams of vast wealth", + }, #define SCROLL_DESCRIPTION "An ancient, valuable scroll that says to 'use it' on the outside, but I'm not sure what that means. Who knows what secrets it contains?" #define SCROLL_NAME "Ancient Scroll" { diff --git a/codegen.c b/codegen.c index bc266ea..29a4a0b 100644 --- a/codegen.c +++ b/codegen.c @@ -275,6 +275,10 @@ int main(int argc, char **argv) { fprintf(output, "{ .exists = true, .is_prop = true, .prop_kind = %.*s, .pos = { .X=%.*s, .Y=%.*s }, %.*s }, ", MD_S8VArg(name), MD_S8VArg(x_string), MD_S8VArg(y_string), MD_S8VArg(props_string)); } + else if (MD_S8Match(class, MD_S8Lit("MACHINE"), 0)) + { + fprintf(output, "{ .exists = true, .is_machine = true, .pos = { .X=%.*s, .Y=%.*s }, %.*s .machine_kind = MACH_%.*s, }, ", MD_S8VArg(x_string), MD_S8VArg(y_string), MD_S8VArg(props_string), MD_S8VArg(name)); + } else if (MD_S8Match(class , MD_S8Lit("ITEM"), 0)) { fprintf(output, "{ .exists = true, .is_item = true, .item_kind = ITEM_%.*s, .pos = { .X=%.*s, .Y=%.*s }, %.*s }, ", MD_S8VArg(name), MD_S8VArg(x_string), MD_S8VArg(y_string), MD_S8VArg(props_string)); diff --git a/main.c b/main.c index 3bfdc77..c1aa980 100644 --- a/main.c +++ b/main.c @@ -687,6 +687,22 @@ Vec2 entity_aabb_size(Entity *e) { return V2(TILE_SIZE*0.5f, TILE_SIZE*0.5f); } + else if(e->is_machine) + { + if(e->machine_kind == MACH_idol_dispenser) + { + return V2(TILE_SIZE*0.5f, TILE_SIZE*0.5f); + } + else if(e->machine_kind == MACH_arrow_shooter) + { + return V2(TILE_SIZE*1.0f, TILE_SIZE*1.0f); + } + else + { + assert(false); + return (Vec2) { 0 }; + } + } else { assert(false); @@ -1884,6 +1900,12 @@ void ser_entity(SerState *ser, Entity *e) // only for skeleton npc ser_double(ser, &e->swing_timer); + // machines + ser_bool(ser, &e->is_machine); + ser_int(ser, (int*) (&e->machine_kind)); + ser_bool(ser, &e->has_given_idol); + ser_float(ser, &e->idol_reminder_opacity); + // character ser_bool(ser, &e->is_character); ser_bool(ser, &e->knighted); @@ -4712,6 +4734,7 @@ void frame(void) } } } + // @Place(non-entity processing) else if (it->is_item) { if (it->held_by_player) @@ -4735,6 +4758,21 @@ void frame(void) else if (it->is_prop) { } + else if (it->is_machine) + { + if(it->machine_kind == MACH_arrow_shooter) + { + it->arrow_timer += dt; + if(it->arrow_timer >= SECONDS_PER_ARROW) + { + it->arrow_timer = 0.0; + Entity *new_arrow = new_entity(); + new_arrow->is_npc = true; + new_arrow->npc_kind = NPC_Arrow; + new_arrow->pos = AddV2(it->pos, V2(entity_aabb_size(new_arrow).x + 0.01f, 0.0)); + } + } + } else { assert(false); @@ -4744,14 +4782,18 @@ void frame(void) PROFILE_SCOPE("Destroy gs.entities, maybe send generation requests") { - ENTITIES_ITER(gs.entities) + for(int i = 0; i < ARRLEN(gs.entities); i++) { + Entity *it = &gs.entities[i]; if (it->destroy) { int gen = it->generation; *it = (Entity) { 0 }; it->generation = gen; } + } + ENTITIES_ITER(gs.entities) + { if (it->perceptions_dirty && !npc_does_dialog(it)) { it->perceptions_dirty = false; @@ -4907,7 +4949,13 @@ void frame(void) if (entity_talkable) entity_talkable = entity_talkable && it->e->gen_request_id == 0; #endif - if (entity_talkable) + bool entity_interactible = entity_talkable; + if(it->e && it->e->is_machine) + { + entity_interactible = entity_interactible || (it->e->machine_kind == MACH_idol_dispenser && !it->e->has_given_idol); + } + + if (entity_interactible) { float dist = LenV2(SubV2(it->e->pos, player->pos)); if (dist < closest_interact_with_dist) @@ -4919,15 +4967,6 @@ void frame(void) } } - - interacting_with = closest_interact_with; - if (player->state == CHARACTER_TALKING) - { - interacting_with = gete(player->talking_to); - assert(interacting_with); - } - - // maybe get rid of talking to if (player->state == CHARACTER_TALKING) { @@ -4940,6 +4979,13 @@ void frame(void) { player->talking_to = (EntityRef) { 0 }; } + + interacting_with = closest_interact_with; + if (player->state == CHARACTER_TALKING) + { + interacting_with = gete(player->talking_to); + assert(interacting_with); + } } if (interact) @@ -4955,7 +5001,33 @@ void frame(void) } else if (closest_interact_with) { - if (closest_interact_with->is_npc) + if(closest_interact_with->is_machine) + { + if(closest_interact_with->machine_kind == MACH_idol_dispenser) + { + if(!closest_interact_with->has_given_idol) + { + int members_in_party = 0; + ENTITIES_ITER(gs.entities) + { + if(it->is_npc && it->standing == STANDING_JOINED) + { + members_in_party += 1; + } + } + if(members_in_party >= 3) + { + BUFF_APPEND(&player->held_items, ITEM_Idol); + closest_interact_with->has_given_idol = true; + } + else + { + closest_interact_with->idol_reminder_opacity = 1.0f; + } + } + } + } + else if (closest_interact_with->is_npc) { // begin dialog with closest npc player->state = CHARACTER_TALKING; @@ -5290,6 +5362,28 @@ void frame(void) draw_shadow_for(d); draw_quad(d); } + else if(it->is_machine) + { + + if(it->machine_kind == MACH_idol_dispenser) + { + it->idol_reminder_opacity = Lerp(it->idol_reminder_opacity, dt*0.5f, 0.0); + sg_image to_draw = it->has_given_idol ? image_idol_machine_no_idol : image_idol_machine_has_idol; + DrawParams d = (DrawParams){ true, quad_centered(it->pos, V2(TILE_SIZE*3.0, TILE_SIZE*3.0)), to_draw, full_region(to_draw), WHITE, .layer = LAYER_WORLD, .sorting_key = sorting_key_at(it->pos) }; + + draw_centered_text((TextParams){ true, false, MD_S8Lit("Needs 3 party members"), AddV2(it->pos, V2(0.0, 100.0)), blendalpha(WHITE, it->idol_reminder_opacity), 1.0f}); + + draw_shadow_for(d); + draw_quad(d); + } + else if(it->machine_kind == MACH_arrow_shooter) + { + DrawParams d = (DrawParams){ true, quad_centered(it->pos, V2(TILE_SIZE, TILE_SIZE)), IMG(image_arrow_shooter), WHITE, .layer = LAYER_WORLD, .sorting_key = sorting_key_at(it->pos) }; + draw_shadow_for(d); + draw_quad(d); + } + + } else { assert(false); @@ -5676,7 +5770,7 @@ void frame(void) draw_quad((DrawParams) { true, quad_centered(V2(0.0, 0.0), V2(250.0, 250.0)), image_font, full_region(image_font), WHITE }); } - // statistics + // statistics @Place(debug statistics) if (show_devtools) PROFILE_SCOPE("statistics") { diff --git a/makeprompt.h b/makeprompt.h index a813b03..a734464 100644 --- a/makeprompt.h +++ b/makeprompt.h @@ -218,6 +218,13 @@ typedef struct TextChunk int text_length; } TextChunk; +typedef enum +{ + MACH_invalid, + MACH_idol_dispenser, + MACH_arrow_shooter, +} MachineKind; + MD_String8 points_at_chunk(TextChunk *t) { return MD_S8((MD_u8*)t->text, t->text_length); @@ -244,6 +251,14 @@ typedef struct Entity bool is_prop; PropKind prop_kind; + // machines, like the machine that gives the player the idol, or the ones that + // shoot arrows + bool is_machine; + MachineKind machine_kind; + bool has_given_idol; + float idol_reminder_opacity; // fades out + float arrow_timer; + // items bool is_item; bool held_by_player; diff --git a/tuning.h b/tuning.h index 8ea732a..09420ec 100644 --- a/tuning.h +++ b/tuning.h @@ -9,7 +9,8 @@ #define CHARACTERS_PER_SEC 45.0f #define PROPAGATE_ACTIONS_RADIUS (TILE_SIZE*4.0f) #define SWORD_SWIPE_RADIUS (TILE_SIZE*3.0f) -#define ARROW_SPEED 100.0f +#define ARROW_SPEED 200.0f +#define SECONDS_PER_ARROW 1.3f #define ARENA_SIZE (1024*1024) @@ -26,13 +27,14 @@ #endif // this can never go down or else the forward compatibility of serialization breaks. -#define MAX_ENTITIES 128 +#define MAX_ENTITIES 256 // REFACTORING:: also have to update in javascript!!!!!!!! #define MAX_SENTENCE_LENGTH 800 // LOOOK AT AGBOVE COMMENT GBEFORE CHANGING #define SENTENCE_CONST(txt) { .data = txt, .cur_index = sizeof(txt) } #define SENTENCE_CONST_CAST(txt) (Sentence)SENTENCE_CONST(txt) + #define REMEMBERED_MEMORIES 32 #define REMEMBERED_ERRORS 6