From 56dbeb39f38fb303f950cb559580eecdc5d039bd Mon Sep 17 00:00:00 2001 From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54> Date: Sun, 22 May 2011 16:39:14 +0000 Subject: [PATCH] wip git-svn-id: http://svn.net-core.org/repos/t-engine4@3432 51575b47-30f0-44d4-a5cc-537603b46e54 --- game/modules/tome/class/Projectile.lua | 4 + game/modules/tome/data/damage_types.lua | 3 + game/modules/tome/data/general/grids/lava.lua | 1 + game/modules/tome/data/general/grids/void.lua | 4 - .../tome/data/gfx/particles/teleport_line.lua | 47 ++++ .../npc/aquatic_critter_dragon_turtle.png | Bin 0 -> 12580 bytes .../shockbolt/npc/aquatic_demon_water_imp.png | Bin 0 -> 10264 bytes .../shockbolt/npc/humanoid_human_assassin.png | Bin 0 -> 8727 bytes .../shockbolt/npc/humanoid_human_bandit.png | Bin 0 -> 9537 bytes .../npc/humanoid_human_bandit_lord.png | Bin 0 -> 7630 bytes .../shockbolt/npc/humanoid_human_rogue.png | Bin 0 -> 9512 bytes .../shockbolt/npc/humanoid_human_thief.png | Bin 0 -> 9267 bytes .../tome/data/quests/start-archmage.lua | 16 +- .../tome/data/rooms/space_tree_pod.lua | 79 ++++++ .../tome/data/zones/abashed-expanse/grids.lua | 38 +++ .../tome/data/zones/abashed-expanse/npcs.lua | 65 +++++ .../data/zones/abashed-expanse/objects.lua | 31 +++ .../tome/data/zones/abashed-expanse/traps.lua | 20 ++ .../tome/data/zones/abashed-expanse/zone.lua | 228 ++++++++++++++++++ 19 files changed, 529 insertions(+), 7 deletions(-) create mode 100644 game/modules/tome/data/gfx/particles/teleport_line.lua create mode 100644 game/modules/tome/data/gfx/shockbolt/npc/aquatic_critter_dragon_turtle.png create mode 100644 game/modules/tome/data/gfx/shockbolt/npc/aquatic_demon_water_imp.png create mode 100644 game/modules/tome/data/gfx/shockbolt/npc/humanoid_human_assassin.png create mode 100644 game/modules/tome/data/gfx/shockbolt/npc/humanoid_human_bandit.png create mode 100644 game/modules/tome/data/gfx/shockbolt/npc/humanoid_human_bandit_lord.png create mode 100644 game/modules/tome/data/gfx/shockbolt/npc/humanoid_human_rogue.png create mode 100644 game/modules/tome/data/gfx/shockbolt/npc/humanoid_human_thief.png create mode 100644 game/modules/tome/data/rooms/space_tree_pod.lua create mode 100644 game/modules/tome/data/zones/abashed-expanse/grids.lua create mode 100644 game/modules/tome/data/zones/abashed-expanse/npcs.lua create mode 100644 game/modules/tome/data/zones/abashed-expanse/objects.lua create mode 100644 game/modules/tome/data/zones/abashed-expanse/traps.lua create mode 100644 game/modules/tome/data/zones/abashed-expanse/zone.lua diff --git a/game/modules/tome/class/Projectile.lua b/game/modules/tome/class/Projectile.lua index bcfc0b0fca..0e9159c9da 100644 --- a/game/modules/tome/class/Projectile.lua +++ b/game/modules/tome/class/Projectile.lua @@ -24,6 +24,10 @@ module(..., package.seeall, class.inherit(engine.Projectile)) function _M:init(t, no_default) engine.Projectile.init(self, t, no_default) + + if game.level and game.level.data and game.level.data.projectile_speed_mod then + self.energy.mod = self.energy.mod * game.level.data.projectile_speed_mod + end end --- Moves a projectile on the map diff --git a/game/modules/tome/data/damage_types.lua b/game/modules/tome/data/damage_types.lua index f57d7f47c2..27658af4bf 100644 --- a/game/modules/tome/data/damage_types.lua +++ b/game/modules/tome/data/damage_types.lua @@ -19,6 +19,9 @@ -- The basic stuff used to damage a grid setDefaultProjector(function(src, x, y, type, dam, tmp, no_martyr) + local terrain = game.level.map(x, y, Map.TERRAIN) + if terrain then terrain:check("damage_project", src, x, y, type, dam) end + local target = game.level.map(x, y, Map.ACTOR) if target then local rsrc = src.resolveSource and src:resolveSource() or src diff --git a/game/modules/tome/data/general/grids/lava.lua b/game/modules/tome/data/general/grids/lava.lua index b974edbfcc..897b4087f1 100644 --- a/game/modules/tome/data/general/grids/lava.lua +++ b/game/modules/tome/data/general/grids/lava.lua @@ -46,5 +46,6 @@ newEntity{ name = "molten lava", image = "terrain/lava.png", display = '%', color=colors.LIGHT_RED, back_color=colors.RED, does_block_move = true, + pass_projectile = true, shader = "lava", } diff --git a/game/modules/tome/data/general/grids/void.lua b/game/modules/tome/data/general/grids/void.lua index 2f5c799e22..dd6f395598 100644 --- a/game/modules/tome/data/general/grids/void.lua +++ b/game/modules/tome/data/general/grids/void.lua @@ -38,10 +38,6 @@ newEntity{ pass_projectile = true, air_level = -40, is_void = true, - --- Called when we are targeted by a projectile - on_projectile_move = function(self, x, y, p) - p:useEnergy(game.energy_to_act * 5) -- Projectiles move much slower in the void - end, } newEntity{ diff --git a/game/modules/tome/data/gfx/particles/teleport_line.lua b/game/modules/tome/data/gfx/particles/teleport_line.lua new file mode 100644 index 0000000000..9c5008c91e --- /dev/null +++ b/game/modules/tome/data/gfx/particles/teleport_line.lua @@ -0,0 +1,47 @@ +-- ToME - Tales of Maj'Eyal +-- Copyright (C) 2009, 2010, 2011 Nicolas Casalini +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see <http://www.gnu.org/licenses/>. +-- +-- Nicolas Casalini "DarkGod" +-- darkgod@te4.org + +base_size = 64 + +local bars = {} +for i = 1, 10 do bars[#bars+1] = rng.range(-30, 30) end + +return { generator = function() + return { + life = 10, + size = rng.range(8, 16), sizev = -0.1, sizea = 0, + + x = rng.avg(-20, 20), xv = 0, xa = 0, + y = rng.table(bars), yv = rng.float(-0.5, 0.5), ya = 0, + dir = 0, dirv = 0, dira = 0, + vel = 0, velv = 0, vela = 0, + + r = rng.range(220, 255)/255, rv = 0, ra = 0, + g = rng.range(200, 230)/255, gv = 0, ga = 0, + b = 0, bv = 0, ba = 0, + a = rng.range(25, 220)/255, av = 0, aa = 0, + } +end, }, +function(self) + self.nb = (self.nb or 0) + 1 + if self.nb < 3 then + self.ps:emit(15) + end +end, +45, "line_particle" diff --git a/game/modules/tome/data/gfx/shockbolt/npc/aquatic_critter_dragon_turtle.png b/game/modules/tome/data/gfx/shockbolt/npc/aquatic_critter_dragon_turtle.png new file mode 100644 index 0000000000000000000000000000000000000000..8c819ff9f43b50271cd0f513e2c0ed5a4b6469d8 GIT binary patch literal 12580 zcmV+<G270GP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00009a7bBm000d- z000d-0Rti)g#Z8wPiaF#P*7-ZbZ>KLZ*U+<Lqi~Na&Km7Y-Iodc-oy)XH-+^7Crag z^g>IBfRsybQWXdwQbLP>6p<z>Aqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uh<iVD~V z<RPMtgQJLw%KPDaqifc@_vX$1wbwr9tn;0-&j-K=43<bUQ8j=JsX`tR;Dg7+#^K~H zK!FM*Z~zbpvt%K2{UZSY_<lS*D<Z%Lz5oGu(+dayz)hRLFdT>f59&ghTmgWD0l;*T zI7<kC6aYYajzXpYKt=(8otP$50H6c_V9R4-;{Z@C0AMG7=F<Rxo%or10RUT+Ar%3j zkpLhQWr#!oXgdI`&sK^>09Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-<?i z0%4j!F2Z@488U%158(66005wo6%pWr^Zj_v4zAA5HjcIqUoGmt2LB>rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_<lS*MWK+n+1cgf z<k(8YLR(?VSAG6x!e78w{cQPuJpA|d;J)G{fihizM+Erb!p!tcr5w+a34~(Y=8s4G zw+sLL9n&JjNn*KJDiq^U5^;`1nvC-@r6P$!k}1U{(*I=Q-z@tBKHoI}uxdU5dyy@u zU1J0GOD7Ombim^G008p4Z^6_k2m^p<gW=D2|L;HjN1!DDfM!XOaR2~bL?kX$%CkSm z2mk;?pn)o|K^yeJ7%adB9Ki+L!3+FgHiSYX#KJ-lLJDMn9CBbOtb#%)hRv`YDqt_v zKpix|QD}yfa1JiQRk#j4a1Z)n2%f<xynzV>LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_Ifq<Ex{*7`05XF7hP+2Hl!3BQJ=6@fL%FCo z8iYoo3(#bAF`ADSpqtQgv>H8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ<AYmRsNLWl*PS{AOARHt#5!wki2?K;t z!Y3k=s7tgax)J%r7-BLphge7~Bi0g+6E6^Zh(p9TBoc{3GAFr^0!gu?RMHaCM$&Fl zBk3%un>0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 z<uv66WtcKSRim0x-Ke2d5jBrmLam{;Qm;{ms1r1GnmNsb7D-E`t)i9F8fX`2_i3-_ zbh;7Ul^#x)&{xvS=|||7=mYe33=M`AgU5(xC>fg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vF<Q0r40Q)j6=sE4X&sBct1q<&fbi3VB2Ov6t@q*0);U*o*SAPZv|vv@2aYYnT0 zb%8a+Cb7-ge0D0knEf5Qi#@8Tp*ce{N;6lpQuCB%KL_KOarm5cP6_8Ir<e17iry6O zDdH&`rZh~sF=bq9s+O0QSgS~@QL9Jmy*94xr=6y~MY~!1fet~(N+(<=M`w@D1)b+p z*;C!83a1uLJv#NSE~;y#8=<>IcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a<fJbF^|4I#xQ~n$Dc= zKYhjYmgz5NSkDm8*fZm{6U!;YX`NG>(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-k<Mujg;0Lz*3buG=3$G&ehepthlN*$KaOySSQ^nWmo<0M+(UEUMEXRQ zMBbZcF;6+KElM>iKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BK<z=<L*0kfKU@CX*zeqbYQT4(^U>T#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot<a{81DF0~rvGr5Xr~8u`lav1h z1DNytV>2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}001UGNkl<Zc-pMHd6eW?b>I1U@BP-;BQtWV%FJ52s=DZ= z7rGm0Kp@Ow84YMGAq#8FG1lUdMn*D&Y@|8IXlx7HV<BXp86+&U*dq-(7LqWMjARMX z7$l}y+|cw^z15Ocxi68i{^Ga2cju4DD!PFd-SXUX^29G9;};S4`|iE(-tWCni3n%T zc|22`1Er?d*B`G-n!+RzJdb9zrot?f*8ZNH_YAYOy4tJO)Mq@8VLAb=70wBRp)lw< zM85VpN?{h3^hatn^*5|jj|_(VfD`kSb&!oqJYO>&l+;>2XU|s|k1bgyDCOwxWL{KJ zcSVu8!}#X*z3u$cs9*dtkUaCZ`o5w)qev&hU?4P_ids$K+}GaoY|X!gi0~p~__ofx zewBhdfTlLImseCP2ta8yC<}SD2oC{DYvx4Q6G5J-JTN1|-}8L+Hscw@>Q~iU=4X6g z|Kgx;Ul(}lRtIU8+Q0Au{ih;qc)mL8`RaQWoLhcLyzHELWmpL-Rupl~+MTWBvw1EL zjJgxV$@A99J5ub~EA0St<5^XN*NgCuC|0jsn9(!7fpj8RfwBa#Q>!UUK5Z>e<ONhJ z>fI+!n}0AK$;T&;m+x)O=-Z2&*H0$yT&<>G5y$F`@ial~Q;Py>4e#w`?%vjFJHOj4 zQ3_@|{twox-d1zQ|GahlwJa%HQN?3+F2WCd^31S*XsNZFOETKSp@oAKc!2;|D|p^B z5Kv$=9Vh&#b^NU$RJSiKYNA+?r9v_iJP*oD$R>g<dCEFIp%foHJakz)p*?%v`-jb@ zUdc1}uGN#~RmWG%t?5LnPd{B!t0_>L(s?x6A+?4_o;qrE<L~ba)v94`KA_hva84}+ zq5AIK%^YnUPWxP5FR4``(n67r6b^hV-Y<H-`Gjco5iAb?*itCV8zvtD#nJLU8-Suv zcwch{r9FPc3BQo##H}`*IqMMwij8$kkqN#BX%3^2?3V@a&vQOpl=OlSvJ7ff^=7SE znPiSyO{q#vzpPf%^t&a256%ju({vUi7MCK%gA&gZY$2qH&{+&f63bvLoH*$r;#fZA zF*l=GUk@;?23cyDOeXk|k5&PJ7oJnTI#;jjA6R>A@7+aKJXUL)*DoAXv4&fRLpiU6 z`|?8G`HcW%5XU!OJB8&JlZn&wiyo&>8~i}Cv0hSSf-#U=ND}$HwfyK{AYYw~L}wN% zRZzg}yncIUPSdPvj0fu*C22*|?>kBX$)Psm(V7WR0=@o(xsD+nJNyvJiQ}-FGB>AL zoQKh2&itI=(xr@Rn>E5#m3qx*W;RBEI8-!R0UK*Q;#jrL-ahl;IJEgacYBpeC1HD` z;IT&v`hEF?5fBHWK*<pRS?<tU<19EuoM)m=pYyr(HlMBalFN@3C=FqxC`w^6k;5XF zA56w_p;A@<;@FaY-IcZSe|H&w+Md-vd3@Qter3fFRt$UFj{RMsUKf;7PzpLw^aqY* zCFBK&wX|nSD#s#<Ckna;BeZthv>amcg4vGd(o-3|uI1b*h4noe3pMJIW;n`O-|S;| zCImrFv*i(o+KVc9i^mMZ!GxVHNwzll+40!EUmJxwa`PJ&;4B0oSO=2{ms$<Ib^4S! zmL-lX6|^T9J-s8#Axq_hz=beW$5&36cU5at#Q49}>$#6DFY6z!R8R+9p?4|A_rO{h z4+YWS#G!OR;S5ei9QGzGFB+OP$LhT0+D6Hfj|yjR@mN?4*zM+AezIh5+fr>il4K&A z-OI|mR;AH21X@e0qEsfDb}hu$9-`pU3q5R7u(Mfw_~D1_yYt+Rm76a6jUDNR1r)Hm zIelhJ`SEl21`CzC;-Lr2Vt3nqI*Qb{*J^}$F60w=*g4+s8wjeZs}$SItN!UQmf34- z+2235q*&i@7|*f2RkD1{qfyrk2bL&Q3<2MF=)T}&#QMd8$~g;rmb>l<Sie><Ni4JV zfFvoo__Sqxt)y1dwCVwss-rO!>WzWia$5zP6==V~?x@brMoyL|)G7hzZkprq3)kFB z@0|I`l~u-{{>&b83n5WtSihRm+nE5Mr!hd-+js13yStig^|Q7Vv%Y58+OYp=Yu)|L z;XvLyO62l*<UThV%A1FM8E)@cHm})9y{;Z>HVw(pQg0a6t_jINC{k#*JVpuBYKF8B zz+l9nm1A5A##M=Z;i(HHyVr!TK31@~2B*$>oH(O7ICLEBS~?xgiB-etGagGzp7Kq} zop<=^?mJMY&-=<M_~fSs-2b@)`s0YO8Zz54bn03ut@f5q1{*KFt^RG}vBhBso+A<R zX6Mw0UUIh|M84wDM@!b%?C)C3B%8?l{eWMYBt**aBT-d(lJU<xrCy^vzH@84B&a~r z6^28hD1~C|n49+)3^l_n!i%d6CJI||WJJ_kjw?GcDMIEK<i_ymg`7fi>an5Q71q~F z>UE*rHnMQcQ$eWd_bf9VpW~~BUf<!Y!WP0z-O_2bx#RXlYVm-pPhO)^_f&UeBb*$2 z$(^<Px(Ac<SJ#G@k^}c_0F+XQ$m?%@QSj1A)sT%HN~xq;Q;&?t(}+15Nlyy-p_^~@ z{^{az&DN%QeH^R1Pn`7ir6&r8seseOp`}q%j0VE~9-sq8sYksLQ!0f7a5yY!&9@nj z4P_W2J&i||-QEZ(M@;g7!f9$XP3BoT^BS#@FhJ#*aN?9l;2XOAlC_Hk-M;1J_cUnF zdDNpF&fe_dvMQIZj+u=kBoL_KSDW#t^-g|DF}{I-2Ji!={6POyrBP9ps?T9h*xR*_ zx7zyR(u$s@4i1dZm&Xa^%&d=A?iEYNba3140o!|y!GUF(4ukJOv*S@Xk0kd=GM{TZ zCH+x>@<IxPwI?>PwxHdvVCp`*gE75shKmB4^RswClm5`dk18UnqDEt1C5a)+gwhEQ zJdp6{Lm7X5--IvUKOk@iG{S9Wn|tgZ9#E7SzA@bQUk>oa5;{$u`l~9cze}|I9pKyz z3oxFlL~Z}x#f2(ST%t{eI7Uig0}mupjD~`R2LsJ#H@Aw{S*xkneLj2Ngfer8C=PoT zFVGAVh0;FaMU00Uw89v*I~gP&JzPK7D8@xqM9ORXqrK?f6HkX;c)Ghk_`qbCRAy!( zj<43p#v|qzB2Jx-Ik8#+<9O;qpPBiPy@Qh7?UIux1D4O{xU67d!9ys?bJ$+biQ@<n zO>Ql-6^$1+Svl9CF~<iU&NBL&`zg@&0JPC}ADfHg!+y!`UdqP0MQaw6B0@9HQX!5( zYwc&2SFT^Q%r0osVaeKBf$>04fMzt(<b@&0G=(Tir>?qm@@tZp|0hcKloe1yt)~4f zam|ZgTszZRsD7LFh?`Z%iDLz!HzKUV9e2#otb3|f_vsA_f+%EM#614^fSb;DIJO*d z+ua_;c+B=rADIl9B$mloFp|@#2E6$#v(Tt;m^XO(sa;-lTZ{I5h5jarsj-65=9O6~ zRH~ZU)tJM*F<YCmQZwqjF+4Cyzz^V-+x1Q3fke$&MOnh-D<$F-MIn@EwDu{*P&kDZ zg)QwbDaFs?WZOBxkW+~)GcEnMt>eS(8C~}S4XUKX&}w_kc7)kh!tBh{8bvvjIP%0% zmYU6{ce&#hpHpYLEG=nPPR{V;Q<^Jlmd&+{rA3dKS&fx~D1w=G0IuZ1lReficDeaP zg)q>d)hBQ=oK}NcHAf?b)*fkEP^}x<Emui1`N(j{tCER3s0Z2$1N8^~%ruo9rBI}b zQZ$x;ywK!@!lDr;gFGpIaxyM{HEz{V+MryHD^hZx*-<~?8C4exSVveb@O({YCS>uL zP^)J+aipmx4jkfQzVc<wZ~w*`S~>p7`(l)Y#IYqCIS%%lY;P27?^<rU$zy)W$5XJm zJ)zYUbj2gvKBTi8km`akQ24R;VVjiKcL8}ABRu(J!pW09vz?e~thjPHzqvn<_iN2& zttxM6&8Ra6`>=Z;Sf%j;k2KR*tFWSR3R_I<M<>Jlmy5Lg41hRCG0rF^8A=3&VrN}G z*zRz$8mpzap`_kYM4?ruPZumMcwBti5y!C53AnPKvvIA<_FkRWzOl|Nx1@L`B+Fp7 zUSVx>YJtWGH=Q&bTQ;n$8f*@ShaT4W{HveZ;GUPSaB{gqL*Ss|sK)VId&%HWj#6Ry zShX4+Ufsysjiyh%5>RQv^0E-@mVYk@M9nk}TURY<?vdw)NvV)T5l04xqIB4Foc~ll zE<ccubF`;%Rv7K{K;#C?BnTAz7Kid(^Yh-@IvwpQRqZ<S#=rSoKtaIfj=~m-M<36) z_*BllFK_d=zPG}i_q6d<pFh8Uj7c2*)N(jbq(w=!T5{%eK%=RtRyEi53r?+QzI0(i zX-iga%V<>V^!ttlD(udU{!VY7A3Nd$NWD<K-3#=`H#e+bt1BAy09Puib*Cyd$jg%4 z`t0-^rS*v`0YzCbN=uAZB*XM)CWqMv{Lr9|s4!dFXVGdR5cqi3ssE{2({HWSJkU=2 zp3;jeRU~LL>N>`UIfW}k8^fz#Ra1Aqtbx{w-8G-ujF9vbKKEyemkcaHO_Ov}>a~)n z>fw8eUU$mUB)Q`Ee`^8)SHF75sXGhmL4;BYU-Ag3Ph&vo0RAZU&5xVF`_O3Y)Zt-C zvsuB9eGU#XCKI7vH%JgtBsp2?sDvSbR>R@`@D~PqlmA12A}`TeA@a4NBk<LW6}-9H zP%k}slRlG<crgaOwUyJTD|LJ&V(k)aTuZ1n0$LqImMV4g`G%Z38=xagyH=+tJuY4m zM&p40_E5sZk7m5|+k7Hl6Ga-&S9k$rg<y;(6Nf9IxeT}8>9~Bk%Wz;gelny;3k}@r zU1z|Q1Eu+8h1j@i{;x^yqWwclm4Ivv$v8)Q6&j6@dc$KhNbGnp{+LU%_a(jTA^93_ zh&$rsJdZ}Bss2@K#=K)@Mpdf;B&os#j>Toe(-$lyion+#_7uDO33Hv2cH5)5>T&Zq zPoV~A9a83w?Sm1;#4*<>Id#&oe$7#h4GZ&z!V39B7>xzxgrMRv8O8`Xx1ZK@_k}y} zjQH#)6LxnE=|lmncsEQ`YqWM8j*4HUC%+?@pC1qN@6QW~YSlnFcIF1j0shswz( zq_n?b%lyy%&~sWT?DQjOH1*Wi1;U7TbmsJrb>=itEOhsT%bSk*Sw-(4XSStz!<%YS z;;G))GB@LqBn9<4c%DM+kXFsI->b0I9}`!>k4nb5haWk<<INFg&iWFD)6{!ytyG8o zlI4|vdacIA&!-sQ5Y$_Y@-D-npd*h-Pt!fj0MaP{o<f{MEASO0h3gM?2Y=rweylOG z5L+p$#t~%0e3JG?qwDmu=c_5naU_+hqE??0q*H%awMwk0)M0Bw=pPF0STPwv;A!r8 zZJovCIUe}RSgIALZaNh*7&^KK1(z>pOvb|U@sKB;o=|W4oQxEeP<Y~sV|mfAvTTS# zO%y6pV~HzDCPS@uwk&}k^8Y?G<lMQKxz-plIXink$*|;bq^!;DHt<ItKoEF<;HJqO zo&jStBC60x0cv2CpcE(+f*b`lb)8q3uDXN%q1<o<W8_x_Ub?f(TlxpqTU_xtc~bHC z<0V(uJzf*ncxp|QF@Y>B`ZVgAqAVB=avptTOjcOh^$E4PkhZV+?T_|pl5^s$=GHrW z;@D??(NmSkP}-ci0<QE6$}%8q2OL~Z30K>^`rd$tFXue{sG~C%FrM&kkPiXHv=|CK zTzRC41E<xLI@KC0g0j>9sc+pkz`3tkK$fw0^@@G#`kMXyDAqKpV637!r+DL=7uZ>Y z2fx^3{~%M5uMts%5tP=FXVXSXeKzDJx3-vF)to;iZ101WfLa_gx8P9;4e7)Yd5R!b zVx34cZZIm_NSSix&P5)4GG~9IU_7$K^?<_ZZG|dON5xPO8w8CKJJr$(T1_vt2%^3P z)h<(oljO)U<j6Rt_xR1Gdd<R|CT=Qn6rEO;*S%(z$DSP7pr*t(cu`~+CqpJlP7o?O zixD^76mj}&jha``n3SwGU~gCBg$*jL3XN96?tY2U0-j<#7A1JZ)sR2_;~oHW)dB6c z;$Yhl#-IbA(YV~uzCxp?0BEfNH~qbGwAx1;paYD2ZH498dV_+v3Pq+!(`WN-M?Hq~ z^%*^zSP1$;YJ~H*dR*BYuyG~Ro)0T$V?+y+q+rk&<`-I=xjAC4Bg7TU+Lb=X7cD2w z)VbCVc<Kq*xHiI<g2D<*iynu27FQN{p`kSwQ<f!yM>P}<_EH9^rO^!O4qe)6#}BTY zjHoxG>j0>4wy4j#7Eu@j#vB20)J>{aEoCXR+nPKVcDANmgQzKbVWj?g6rwv##b9FT z?ptoVr{ux|U7omHu(}+o%}v8huIcqW!nnfX!VF>zL1f6sm&m&VI%kBCIiko=ltT`C z35}W}@Ir<o*f}g|wmmkl_+0JQSzd(4YcV}M4zHH9D~1y%n+zUPW_|5|Y@9xW68k33 zt!@~@RFhhmu&|tw&T7VE*x$9(n-GRVkxv1s*A;1^87D%ZA$L%V)oK(eTE`Uie#l$i z60x%Cc*K=Fav@dwdyXIq=?^s!Qnx+_!IWaNMaKSiLAC8DgNR|j$-#afn<mJ(WYDWH zo}{?aaAs9=@mh|=ZTdaUaMZ&@9$C+#%7~pVgflT-sC_RSek>cO-|?KyQ9&W1&|2{A z2(O$_t2>ORF-BpIeB%0ke<Kb6jh152bBwPy9;&MADOh_-Xf*||R<N}@b(gsXpBLX; zCz`3SxuMzbIxb%7QH=*IuSTrQI((f{uQ*g$;joMe{6of*k|!T`6i=u4Wx>JekW3t- zBw)7c(M@6N={|Oxv$^H?jyElFuy43@F=u`;q|wl~jl0jF#BM~fqrZTZM%B`3<#=uc z;*LQ1+S{H}6o|e7$gC9ZC$H{;vyMCO4*BdS6DmftwkN#m-hjmuK8RvrF-8gO?M)aC zCmik!dGe_tT9>rv4U0D&Ln%j*52+f<%U>7qecu=G;=4okwsP+Klaz&;BFAHEzt6#_ zK*g}O)@3wq(%sWM{NN#f^t)@az1BPbEK=0V``F^>1p!|>ROLwFZ@KwBxBCDe@-Vg4 zlbSdF^_Z2_kozAPbK&U%8C#5RIM^PdJV$Q9^DOzKWG8V<#sQ1R9S?scVP~tx#$L|a z#U8aN=lkAXMb|=B7KHH-KJoh#PM*=^#%C~AXa(6|M7}?Q`5Er}i;}fV`y^XkDD6K7 z246>uKRdi%U+ottZ3TBJ;j+M`AW*NbHPrXE<`w78Xyz6*4}K|OxoJ2USSG1u)N?2t z!@-c@Ai-0Hv#XkuXJc-;&2ZC+3DrpPpFdgS1MhtlwBvvNVW0Vx7@G>Wp0BWRwPf{d zz{+yOco1Oxgl=D9!wN7Y-|g~v;+VT>g}Avy|MC;Pay;T$tndpMkobmK0uiV;)T@J# zPXK>5naJ-Uyf3csk*K27T*o8J;opB~$nXBA31565$M+O3c|}O49Wp63!=a_(6||xW zuX?rR)!$yS&>SPiaqL)~@B03msCC-B`VEF}f5Qwe*Bo2*xO%k&33&M{XAu=MOcakl zIO5^YJpI4q8@n;nA&!mC>JlfHXQ)O6rdfSI5WnCF5rra()oY#Or+YnjsVw;^VCZ|i zUK@T(Ddv+g9PG<2BHUS6=(H8}mJs-g7vJggnz~_#uyf7wz!wa2iyqa`G8*LQnlQfv zci!RQ<q6l)Q>?T*eCG4pWUl1o?3jQ4&zj_^!4{B?9qX4f^0GmeI2^*}M$Y9cStibY z7{sA?yt1-7AB6$gXhc0K$tup<fu93@`~?9JguJ2A;5Unc#r<6e@bhu3TFUV6(9CBO z?Dn?($JVmyhw5GDZ}Hr*MXk#Op4f6!B86KPPMiyA1(wIYP@~sRF|lT_E3_&lci$DW za?J7Am3hMW79M%*8rzq<B<UfC<DAcZ&SzmkGoCoyA&j#MrHL7ihIpRlu$NP<E7jY_ zL&!De=TG0%^cUJb7oOau9%rmB<?OGiziSKm@n=kk{3R=|APBfCjMT4{mc^Y-_pr5m z_}FoM(3w@gmP|O4XTsK|{kOK{-vp7Wubwc6!vR0~m2J0>WN0ZBfe#NpRN#L+<$K=Y z@xAYA^4UMrm@;K`p~dF<9)I{>MqGG8@x{l^aPM6OL4A*frpMOi9xLa3)}C~%uZ{5n zk4`5f$viBMvJlW3DN3phKM2C$Z|0Niqj9V9j>VZ0FUTR8Ft<>0Y|*i|5!9|+%4UIs z=Mw{FqF8+>2w6SY6FE3=|LCT3=7Tq%_ue|w(QgeR*xHtl76tzZpfj(A%5iCPo%y^B zbP)LHz)(0%(5_LmLVo3gC7=AA%e?fiIu#MFb`2+QYZ53$ce{;v1FmjuFdxsddl<2{ z+n`?a8K=S|RqSkAE?*JGBhA$-38EF3o)|vW@0U(WEza7ZQUq};jwi{8Nq>xIQs(9h z{LpgzRH(hcd*clY(B_+K?i_@n`UmY9{jy{z>}**(GppaUvTD9Fi1d%_?O3i}c88O( z`yB8};Qr04F7%B1cgIe~rpQ4D3O^7I`a-&&v3$J3?5!aWe|bW)zQeb_X_n7_dc?IS znnbZ-m^of`Z^Yh#=HhNZHuCX2pKMZ)ghJq;w2J*bN3ol7u#>TSP;%wM=m)((E@_kB zQ|9HL1l90m^9waEPf{Mc(0!;9xig+Jl_G;y(=or~-+Xv*JqE}(E$~o=W3wIg6Iv^F zb}V6_%<3ugu2y?$IP2G(^!siniqyXqLFGA5&&{c&g+)_6cHFSL??_WiRE0)WSi9)B z{A9w?>5yaRV?O(t9&3k=H@&Vwygng0RHOpKgN(?8BuRm1VrJSC`ujti2=0h_Qd(hi z#eTOeFJBn{2_j!AGBPOtU|QjZ|3jrBN{MDT$o^1^`mVuH-4=(6LB9ZTE0xL-0RA@# zg<^$T&Ag-DR-K(qOPa#!38Us0HT9;)SH6_s8>LR2Hs`Zks8$t9ai-JJl!YRWGukc1 z#V1RQr@7@;!@{!WiT_qYB1AP<=)l#7NAi&k%fhTtXU~Q>=d-mw!V4`?HAV%RC<<xM z#vC4u5hn}=mfbx^E-6JSJ;c2g$Q0m(9s~i}R|CZ22M|S`?|HU5ICPj<jaUI^wN^3( zpi=!>D9{R=fOP~ji~8N^z|lK^nHj~&bB2{gpFjG;F}*$#cnU$3*y;3Wt)a<sO`bb; z_Y@1WhFVh?_8hx=!fZ=1zbYu}uu7=M9+jq&L9bN1J2|_1DNBn!jaERO=L~vdg3!kg zAT&NvwMwIIY0p?3nu8ulUUpEt58*umqI?g9!qYr)=1fGr>e#yCH#M$0(@~TK^bQ5B zc|sd?lnMvj7#tFTI8sCb$F!2!(a6$lYhH4<PwXo`_VF>jJ>lkaJ}Ph&iDn}!kFumG zXQzO@u279ED=UhpE-7|5EJ5JWY8Vdog<4B79yn&&Mu$d7Cqhv;x;q62y9r+4p^U+a zK`DdQ?kifk*367Kb^2V$ZFdCp`i|W_%Xn10D;X5O2wZ8^G>a!<Y~ixN%PDh<!acfl z%>0ihPX%0hy8OcW)$$LsjQ`t~M=mfLIFwS;DKQI`I>d|W9XO@py2srw4Jk9>zE7u! z)ttFmk>yUszLMq~92_dbXi8_HA@HG?I7SmqyQ-*oiZm0(i7?yJ>}*<m-@^jqL=lEy z?X(?Mik>!AoFmN~t}N*tl;oNGSK#NaUE~KZJY?SfqT3rUI({mk(NNs+@>cP{XAj9U zOI})r{TvZ@|L*qWy^~R%bocU49zW*&?0D=rJaj*orSh@K<Y=205$?PzK<Ohktb{n` zrdCHkAr5o<oj!5s@fUwFp~!@pjv}2Xx&w!n>2z6^39Y8)per<6kd0w)x1=*4u&@AY zmj!Kv(a3W8Y=sLKCaj*Uvb$5TyQ^4Q@yN$1m9WGZ&0ye2C*XNZr&BZ7xLWS#1#bi% z1R~%Lt@&=H_3_SP{2vB~`KKo1lBn(zSEu~q*|QP0EO_|KBQw9C|6#kW=l1v9zaEXG zHy+6|s=;8&>7&2|5Y^PL8-=;+-jIcPk5At>VKf%{UCa6!Z0|W1I)=p+1xit`DU1jC zM3_0@vpy7@SaeinnEI5YRH}w#Skj+Vsm?^0sDT%cY0W`<R<S)UF<OJMl!f32)9KZs z6qFXKb=@g@^6SpY_W)ObFF3~+aE_gg31O^n#IR{+3bav(Q#gm++H}9Lw<{Pm)$=-+ z;a$JU7<H8MOVwF<`RQ{$ji%v?Ur5>AwTy<2-5o*UXfzD9hN3gC7#s-ueL*bb&am07 z(4Ro*S7^`9veUJ=ASS8>EH0HKIUGOHCI~_<UoJ4AW6(ETdAgw1P|VKzWSJ$5jzBPq zG*eWYno@YlsF#0SguezHUJu;H|I17E>&2TfM?wDUr^LpI;F+TiuDI`i#Vh0R?t5bX z<9`@((6>wy7!3s9C|YwKzOU%aL6!@TJY14np)(f{H7cZONU0!-EQQnTZ4ar{A_xqm zCBt5U5=(z@$llI?B2CH17M%P+Z=c^xCib^y7XuyDATSO;5OS+9z9Fm$d1`LYCicWL z0r>9`4`4E#3M0#eg?aP#YEARx;~AxbdP@^TLba}N<+N^yV#W5RWqoZr_PTOhv$1KR zmq?{iT4#+b3m5F~B}_&I*=&``Fkxq7K$c9WK5Q-^l8MN}z<YpC1C$f{bJ}mdXQz*@ z`IZyM43oT|)AAWUIi^hAWnhi}pTq;0=@|6XH^P^`BD`~EPV?Iz8B(NBn=>?PhMA@5 z9=f+{dE~1lTEYC%H1hB7x=#)J@-M+2jt;Ux5Se$zb^l$)7@|niKNxY47P!JvmH>PP z_y}-6@YszJcBK&Ey;i~>YBYkm(<cL5IY!0>gF#7}Sggpu|Ay5++JdiNzF+{V_30>_ z@mSG9O{{Qi*{45pM1jWOc;wL%BN}C3c21)`E#l;J+Z*<mdOi6VkX;WfL8P0Ns=>Kw zo2{Z168jjX8T5+ZOUL{W(Es`$V~oK%7ou#lP=d3TUU!04iorp_Bq<W$SHAu}TR7~r z#ZQ(LgcXf8>iGi@c!EsZ<KN%wIrHeF1>JqeB(rGW(WokF70sY8(%p8OCElkzPyb4m zl=mk?XOCLp_<_PXb-vp0-{OEEP&g5Cr|<(!nYuqMvTv?D3hdN8mWKPO*IM*R205d_ z2&^XQXNcwh0d}6NJ9WbX<ON#5L01sqMd$s~Cr|r~6QR+BZ0w`7u(w~(Ka}lc!aKAv zp9z%Cl8GgoIP6hGbpmm$=Vs=EpBH61&VlE{cq{~=qRiaq_qL0_>#XWOXZ1C8gGEyd z)!9=G78eriBbMFGl1WYh{EKf%+c_bhl*EnT`2%p}l0|Fui52ho)yoB28zmx8s|tr* zcj3}S_xpo^``4|u?uD_YcUUqRO<5G}ancLSceZANH_vo}^P+=OMXpggC(8=Z;48VX zyPJKFv$8WC%l$eE`57R1p?_<=8mPr%K6aAR?+KJ(Gx>Gk>hn>`xff^wQ6OjygT76W z>23hHp;Pa?vgUquGLfQIQ%pueYsO=DF9W6iMr$tqq17|B*H$ZGXOa{QCyFdHAP{;& zwc>DPX*aK?@60o|^{j(g>YMc7fJ!62<=8?%Jsxx6$u4;+42NU_|J(CbDw~wVb^jZV z{5>ZC^NZ6-nQBe{n;=y8<f*M4?7M$Dnb;3`o?_{knXlHkyVsSL(p=~)#Am9_>Tj%^ zYR0vuX8UT&VC+#^pD+-#QG`ZNB<ap}_MYLu-S@1B{oJzX``+7*FKfoV9{p~HK`~6- zdtT7KFFY^hZvfC}YMj70k<WAw>>Gyz3A<hQV5OpirQ`aa%+Ko|R+^=yCCw<&`Fv3I zo3l+7hSQT@S?=KlhRD;{VuI12j3nd3^7!FS*_)E8nlhK`J?Q7k+5Xr0<#0i}ob9bK zp7BUho4JDDe4+b$nY(9AuRNFN>pmlHYL!LKg`$)P>kZ9qcX;o8?dzlW)*E{1$|X0n z&atwrf@8<DGFZ})r4k36JXyy#Im5#)<?xVd&|{Jezi<7T>sbY12-Q|Noe_Li%lTOg zalEtA_=#3a*xA@88<%7_#shiuo9-IlqJJ?NmGFFB;OoWr6;Z_MnREU>&U59y^o9Hv zR#(j%Diw97(j`*nT)vdj?+H2_jcu0wZ4n+W^K@}ANIzb0d7b^M?xLMIYIUF4<&cA| z{JQl=&ximm1wZWt<_Dr`Se=^<w3iJC{F3cmiz^gmA)osCvwqJ<ip(-N%%^7*pDzG; z4x$vDIfLiZ8w}hpeff*&-s*~X&)eQ!z4P<;XT|3~mvzgce^6@kDOC6&=dw#0$>K;c z=(@FZBxeVGw~|fVQ=WmiW=O{t>s+v~6#WdI{AjIe>PyQJzGr+dG)im7?#`I`_6TPk zJ3E3yGtR{pCI9)an&v+K@Q4$qLyS?BrTpbbXP?0WgMc3}IPAK2A9mf`%kGWdx3yLB z@R##fUAt@_SUB#vYDJT#(*wdvO%E}sDZ@O%a={olz8Vn32CdcNx%1VJ%+7?b8;)|< z>)WCf6?WPlXhk|m=`<|k#Im*SC<_P!b#>5_pLW7$)n5?+TM8RjvuQi;`MSXMOzQf; zQ(4k`@GIGe{`8NnHyFs5L`@4jan}u5Zk#t(auieqf>1HH;Gq;$Yx?%M%ImhaCjWJ7 zGk@p$rNlpbYwdU14Rxlwm)c~UkCKsdyL+}w27FZ%zZZu5$0C>BUsd_*J8hN<#(Mz( zd;=hwVrR>}v)7xJ!|uk2+&B5QqsOd(6Q_JmpEeYQpp<<6+WPprM<eh4WbAhQK(Vl3 zz9UcbbK9F)e|M+6lBZHwO9}J<%2FK-SHpiV2!EOUe**v-cn2E>tB;xh0000<MNUMn GLSTY7ZKsX^ literal 0 HcmV?d00001 diff --git a/game/modules/tome/data/gfx/shockbolt/npc/aquatic_demon_water_imp.png b/game/modules/tome/data/gfx/shockbolt/npc/aquatic_demon_water_imp.png new file mode 100644 index 0000000000000000000000000000000000000000..2c5d8a80114082f925c0b8d70bf8b46d26516d4a GIT binary patch literal 10264 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 literal 0 HcmV?d00001 diff --git a/game/modules/tome/data/gfx/shockbolt/npc/humanoid_human_assassin.png b/game/modules/tome/data/gfx/shockbolt/npc/humanoid_human_assassin.png new file mode 100644 index 0000000000000000000000000000000000000000..fa58050955735abb02d13f03af72430541c30591 GIT binary patch literal 8727 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])c8Ghw}XhtwWYNb)Q`Y^<FTLabdM01!G&VtQ*U1K`ok zspr-*9&}M&c;U|NJ6A=4O}8kr6zv7E(t0a5*vxgyjL;Ad`(>REK^WB#LTtH1mL^G> zjQ`Z+8B%NJ4je^Fi4gLMTBCJGSa0G?fwd;kUhzgD#Q(ZZ*`O%0G$kJPPXgoZbkgr^ z(4L;XjB7iDD5bD5rX;u`-*1Wx&ks=A!<1ZsH5FOmaMoe1*@`GqX#@hPWDrEP2SgZs zT1ZJ$Z=$qD3i%l!#NREl1ZN##y@3#7&KbjQiv(8$peRh9BxB<7=;=#8>vvYmN$f;2 zLY6Upt2Y?@P-}AL`;dZhztsKC*^<GX<3ffcP)eh;MteSf5F(UDDJ`Xx_c?1nT~>t! z_0}Goa(`%xd}NEFUT-xpMb6UMQ%Qg6^sal0R|X(UO`0UQG<$NV&j;Og+B17EA};Ou z1Yxc8VFx%D9=+}EkMEg3q}CP}Fs2|+Q^vzS@u-ipZp&iIg?nYWOlzbpYXswA2V=}b zLg`-<6f4W;PH_6U?;xhU;Z!)ee$SDk_34^nJc@~$>YsJ;)<=NidbmKx8UxlG-w~iZ zqrb625Z2ID?yo&>OQAbw*t7reuOGYf-aSDW;jCjc=rLwM5|0r=p+k-51zWDMDVZG? zB(W5VtVrs{Bp-^${l90k98(muI_`J>;g9{L1IG@`^2D<zST6?5*S#Z6IeE;%Q!g0+ z<Lt7*Iw$QyP>Gj|J>8*%B&gL0YqfIWl_j{cF*>vV@GF19T1%EDbXJ!bbT`UskZ{x* z4YVI1g~H*mroa>#))=fQ$W1AVY+(>mA)R|$k){957Utnl>+qo;{lN!cch{}*i(h+` zgELbIDOp%vlTyl?uL}Tqnmwk4dMn6Sl@a>|sd(T=Wi+@%>RM}PP44*zwPw3E9u6?3 zVD<c2tTp&yL^2+Mb0qQjLO<a`L3K+lD&MQ3g+Xag*P9cc7<4yo_dMB`O7uSQ#jgav z|L`|I_0|XOeajs;9ro8cJu+kV?p6z2g#`02)PnHmC%hKRj6hs+yDN2iJqSzozNi`D z0N$9!W7<<Q^p@9Xw5JdfdK;@0S%#3}LPoo7!WYSAYpaN2aMlon_5FD*{hi@>^p@ZF z)aTzBXZdZ$x?eqUcH!|`j~u*PO3BIPwJGa%r-$@a+WXH)CEoQ{UvuPqk<Gz2W)(nT zEni>glV|A*qK<QpJWcAOLBG`Ten5L_nqj|-Da=;RaJ6t{jX`RS)*hzFK{#rS_M3b! zeA95)|E#s{v!y$lr<GE78*Ax}6K$<~=>UMkDf#KqfulHUFM6O5k}OLpPJfHM$X}4` zIOh;bJ~<lnUTaN(_I$>pK6#cA)f$Y3y)x&&3Idz`2q8<r%HNgr!ssJyPycaueWmZL zMQeW)`5p`F9lNmJed1E9dP#i&YbDlP+_LtAfQ2)sN#Zd|>r1-1W$u$D$(_AomG0US zVZB*4JD}_)Tf=zR-%^ZMe!m5K3Aj?sVdO`pkZ(0uRtL$e9{%&E+&7;){oyn(K6{-z zL++v;kmvg>ojb>w=T9K2;^%h%6;ffX{V8XP`!*A&QPIKF8btMG`HUb$jz?(E!w+i| zSwgyFCb%OaAS6zT2N7Z(Ar_uFzw+T{7MA}z@Ua`(8}x#Jg_9?E^iTc-V~VYw;O1yf zOwpd%7Z!Q?0q2~s#%y&~<YvZK0ab5J;Q2mMYEmI~34j1mR+}&;DT}89=j<nLcym-~ z&AF2&c=X}_SDNJxt!D@LVfed#7)@`v1DkSJY=t^06*ACUf+~qeS6_OiIFr$^tTtOa zu%=jeSq@1ltx1!FKYQent;O%C9kTR;&X_k#A-0vtw)NO9>AaadW7ylENR!L0y5tDw z$kLcWca8C|N0!9oS$Y8YsSC}Qov)W{0YXTMJmcG6eWYxIU4FbL84rJMb@8m2n%##V zM3p+cxR30%?Wnb;Op3O($+nZ7DRS~OAxp;;S$0tu*$*PXy-#`m$Hhf7d7WLr^E{sV zvqxE4ICrJnTEP2oP7FG$#KV47<ZPm~k5FZ6tZbLbs;*FwCgW}L*-%)6Eeeb&DDsRV z&o3&d3Lyw<4Z?a8DK+5sIp=Nycl?F`AcSPp?{n(-b62}{KhU_4D5Z2)7wN4nl?jd% z2xNICKq`d9Ig7Biz*&p6*5RzN)}_wb9&iG91b7E<Xmc+0)&xORFXK{K@KnH^)|l%9 zz;>Vc=fCzph-x*?o;pFk&HOGiP5|rL4`-E9WsksG(s)#w_~s_&^nfn{pRE9sl;*nv zJPWK<*Ct2(Ch#@jp!PicsJ^Y9R8H6y`F|8b{1HO*FGrr2inQJ30(r)n)6cWIv|M#+ z#g%k(rnL99AZq+bR4?PbvzC5mjqcjg)|nyT!@w_9Yp4N!btx|R@gZOar~?7;3&2~9 zDdzJuzDpo#2vFK5PsUhhkAz|U0~;#~@0{Ly@I@V%5jzzrH^<DrgCy}7Yb@H+S3HU% z$`aOp0`Z=DvrW`!LDc~o_BQCOoF~r`2mB=P8Q`{Rk>0jwbV=CQA#5r2kCfCuTogG% z3Z#_G>^p=*be7M2?*}VOTA7@k--@f9m4$1wfOs@Q2!Yb-%7+piIDwp)p8e4@E?Zol zAE3PeDJ9LxX^hG2`r^4?u1x=KV9({xq+EWqr{_$2dX9M5qsVh6_RP_mn4!D2-1hw7 zb$OPa1k%pR!YZ&>0a9FJHfTzMzFL5B4nK_Un4X)TPm?jHpZhNTjwPx$w@PGQSbG%s zW8i_xtgmTgaqNuAX-&>BIlGV9eFrG=oMb$dLW=u<lhyMNR96=`4xE3{0E`E{T~91c z;@6D^J=vU?rae8&(wXOpM}4AN6Wg9-u)gw*%k27#8lyp{o5TZV54?i?M{Y)Ize>(R z_RJr>YvK8)KXu7}nE>tq!iuPO4?uf*Zr2lwM}ya|o<Botat}AX>NQNx?j;@$%i?Kg zHHk-qN4Y-ZEC}ZZp&0hMB=MMy<pp{hD>Nr&_FX~o-VO|a)m;N{?C$#j_|}&{?^lcr zFb4AbzW;CAO9~hF<$2D`++L<<_c1ZOhbO-IFdNGYIOiU-#`Lcf08dBFRub0gk#mmK zh0~mR?g^UhN%kF@Y|rdHxW2Y@Rs-!FKsW^SfNWO)eCx}fm%w4*6%_yu$bs><zWn*q z6+6`T>_0gB`Ul@}u;1HY@$5<B@sJ>@V~nA<zA_d<e3a`qM$WpAE6@K)gs3|lGkXs( zyZ<oS^Yy-?$Nt9J(%FAs`TuQIh}|k<RBO(569y%42XORiGn(0V=x@FH{vUYf^z2@S zgC2`#PXUh3%2Isp#MA#JPm`~5okzXdZr^n0egC1^p4@lj*sYkt(%V?)+=*wNAN0Gg z^n;M+9{<L{D&nYW^PU7wIp@r7vcYh-2M%t&^S(FD&L5=Fngj&vOXv8`SO4hoGsnOC zt{buVk_>yjryqOd7dxv<nJp|66Vu#s$K4#e^WH;q^M?<{qXBaVUvU<Av?9O9fm2-2 zq*rwT#V(E^&(0q?W=yf~>tFgDUR0yenjoq-3!&tHEz)%3I;?fmT)j(mLY^kw?)u83 zr;a~!e^jrNjE59?;l<;@$JUq6|IKl~V}YgWdQm#S2kyLDycSZny6Y?d;_<Kkp~%yO zAgZxv{s>+Wt><aFTmjgt*w<8`hShuZHlI{Gl@@?ARa~c%%?)6#x+;}-{?kgS*T$oP z%=3&|qm8xp2ej6o6H-1Xguoi}qOw6zg^WFyDGrtg*QNCL960(bVXd(z2x};%81{P< zS;~0W-Q2a)z;~zS<}aGT#`1!w7QG2V07TW_H;H!GXis;yTRpHk?5&>yUP*Z>OvR(Y z$(3^_my4p<S8q>J<mF*4?fF04XivQj=RP^;uD>V%CV_+7d!WF%YA0>=`OLl}$9{Zn z{^%j3pwXN_NI}%-(A!ueUK$(#9t3_4FdNGYI{{f#S8~arj7oM3hW(A5QacA6$GI_Z z7vNiKhO_fWssc>;<N1+DlhJ?ft}Xr_s*^3d1)yH-vaQn7)3@I9K)UVo)n^`i<oL|K z13wc+br9f(Vfp2UASA5UaV8i2_2nP8*1mh!$5os|NJ)Eowkot<m3|gFD~kqr_1vMG zCTHi5mWQ*o#+U+A6m-^>XV(_b{QW8e-8BHK)xvu>-Ffd~S?9aBUiXSS?r~`xe><wR z-d<K@9a3qel(Z*iDE6hSuPhdWjn!QrRG@lBvpro_k9YBnu-3%P(&^`(cq|MX8(~zN zsnyDoyLA?aU_9vItUdZ-D?$nI3_yN`GIgFNABsnVd;K8#p`c%{wI-&8*4i0k^3kBT zp|tl4Lds<KiFv6(;_<NjR{Acp`q}v-tG$htpV7YmJ6S8)pTr}P#$${r=&UTpz$dS{ z9&qU9+ppLxSz9`fwPsETaaXO`s<$TgBtpt_qe1tnG#=YQcYRkod68a~*YIs#=g9L+ zPR{QCB_YJ$an1>6?URG<+J{V0e48EmmYd`M4*;!MA3%t*Yu5k(002ovPDHLkV1ih` B?2!Nf literal 0 HcmV?d00001 diff --git a/game/modules/tome/data/gfx/shockbolt/npc/humanoid_human_bandit.png b/game/modules/tome/data/gfx/shockbolt/npc/humanoid_human_bandit.png new file mode 100644 index 0000000000000000000000000000000000000000..df706b8ccac59dec5f1c20a6f161497b16069009 GIT binary patch literal 9537 zcmV-HCBE8;P)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00009a7bBm000d- z000d-0Rti)g#Z8wPiaF#P*7-ZbZ>KLZ*U+<Lqi~Na&Km7Y-Iodc-oy)XH-+^7Crag z^g>IBfRsybQWXdwQbLP>6p<z>Aqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uh<iVD~V z<RPMtgQJLw%KPDaqifc@_vX$1wbwr9tn;0-&j-K=43<bUQ8j=JsX`tR;Dg7+#^K~H zK!FM*Z~zbpvt%K2{UZSY_<lS*D<Z%Lz5oGu(+dayz)hRLFdT>f59&ghTmgWD0l;*T zI7<kC6aYYajzXpYKt=(8otP$50H6c_V9R4-;{Z@C0AMG7=F<Rxo%or10RUT+Ar%3j zkpLhQWr#!oXgdI`&sK^>09Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-<?i z0%4j!F2Z@488U%158(66005wo6%pWr^Zj_v4zAA5HjcIqUoGmt2LB>rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_<lS*MWK+n+1cgf z<k(8YLR(?VSAG6x!e78w{cQPuJpA|d;J)G{fihizM+Erb!p!tcr5w+a34~(Y=8s4G zw+sLL9n&JjNn*KJDiq^U5^;`1nvC-@r6P$!k}1U{(*I=Q-z@tBKHoI}uxdU5dyy@u zU1J0GOD7Ombim^G008p4Z^6_k2m^p<gW=D2|L;HjN1!DDfM!XOaR2~bL?kX$%CkSm z2mk;?pn)o|K^yeJ7%adB9Ki+L!3+FgHiSYX#KJ-lLJDMn9CBbOtb#%)hRv`YDqt_v zKpix|QD}yfa1JiQRk#j4a1Z)n2%f<xynzV>LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_Ifq<Ex{*7`05XF7hP+2Hl!3BQJ=6@fL%FCo z8iYoo3(#bAF`ADSpqtQgv>H8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ<AYmRsNLWl*PS{AOARHt#5!wki2?K;t z!Y3k=s7tgax)J%r7-BLphge7~Bi0g+6E6^Zh(p9TBoc{3GAFr^0!gu?RMHaCM$&Fl zBk3%un>0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 z<uv66WtcKSRim0x-Ke2d5jBrmLam{;Qm;{ms1r1GnmNsb7D-E`t)i9F8fX`2_i3-_ zbh;7Ul^#x)&{xvS=|||7=mYe33=M`AgU5(xC>fg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vF<Q0r40Q)j6=sE4X&sBct1q<&fbi3VB2Ov6t@q*0);U*o*SAPZv|vv@2aYYnT0 zb%8a+Cb7-ge0D0knEf5Qi#@8Tp*ce{N;6lpQuCB%KL_KOarm5cP6_8Ir<e17iry6O zDdH&`rZh~sF=bq9s+O0QSgS~@QL9Jmy*94xr=6y~MY~!1fet~(N+(<=M`w@D1)b+p z*;C!83a1uLJv#NSE~;y#8=<>IcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a<fJbF^|4I#xQ~n$Dc= zKYhjYmgz5NSkDm8*fZm{6U!;YX`NG>(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-k<Mujg;0Lz*3buG=3$G&ehepthlN*$KaOySSQ^nWmo<0M+(UEUMEXRQ zMBbZcF;6+KElM>iKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BK<z=<L*0kfKU@CX*zeqbYQT4(^U>T#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot<a{81DF0~rvGr5Xr~8u`lav1h z1DNytV>2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}000_XNkl<Zc-qXHd9a>WecwN4dA4_d?|tv4t83YoWm{kw z*BE0D!3-Ev5@6Vpp-F}|g(d+yEolo`fTT-0(9qCHCu~Vd*(PM%Fa?LYY{8Hw0jGF3 zMwVq+yL8w0z3=k8@3WnA`p5f9mMqDZWSjKNoVj=I%z4f^-}76(zvT+&9H)*CzV%j~ z$FbnxS8(n|A!OyqYP-F%*?R!X?Fb${*P^A_Cfnwx0nkd)tW}t9)({BdQNntsi*XKd zmbLHu?AM<5K$@T2_*HNp^OP!UrLfl0YF219D{nfqyzyJTIQfVW;@_XP!a2%efRq9U zXT9LF9cKXGo`+2YywW*79{O5O*DF-Y5e^u{BSu+)k}~+wz9YY5oqN<dZa-xmLhw9Y z{Tu*{lI%I(Bn-U&qLtLGW{oYg)6{BZgb=hhx~y+@F{Vu5Y1tbl9~x!F?ao2yYXa~2 z7tk|y*c=R>vyVFmo>td|zP_du_{>bznQGPuOCbPxo|D@GDJ4PRas1fYm9;3`A%)nh zrTmHLr9O+eUXW}XW3kTR+}J?LvCNVggL95F&)-@OeZA0X(5#hEo&+I~LJ)=lQ}r5B zDn@xhRv5n)`PXO0?nO)x{7D0_`}o><Ewt9*aI~r=s$obe@Hp1#(HSIYCE2-kmeA8| zbO)CnZ*MYHuh5MXqDmPl1WHMq5Om`q{r-^dU_{CHaE_M<A^K8?S4t_Ct>aVH+Tl+O zfcy3zJFkU>u?PWIEw)%}*73At|7x4Zm)l4osFwnEZCju})OxkkXZL|)JbLIjZ@uki zE?t_Z-HrLy-`vNe`;XEnN7PFp)>wK;@~^5<_^*9WiE`l4tX6)#QVu^W;6o0I=N$lF ztMghYg}^w6k`gHeLVywyPbma27^bXu2V}X~<7vfAqskM<*7)8Jf5fY##PdB?HoCML zRkRSaY9-qJn9%p+OrwGllIdEREi=to=iF};#=ZjQ-hgBMxdcEy#|95yYa-v<J~vhU zrm^ntmOI^l+V00}X*Ia*rd<q12@gMhkh!TkKl_@SdG$@ZxOT@9{b5RPm@-{0Qwe;g z>lGGenp8?5N=c*?H<hB`ai!!>x#!SXKWBa>$#ZVpaS5-v{%VvGpId0werkO)rm%*? zD{VG<F|XORode73{P2-|y!`r|OgAc2LXXbICY`|uPf1F?rW6J&%}r4X0<5!Wsi@W> z>a}v+TKnxJ&40!@_gx{x|33g2WAQyz+PQ7vkISL|vNShr4n_zIfz~{<?=VYqQ(S%N z7Ob`0|HwW9Pf-a2_8wklkR)uKX)xECVt%?tqguvVN17U>5;STRqR2-{6;?|2>(<&| zHr9Ue?;QXE<b~mi`PTMpw=ey56nG11Zs_$#4AYD#@`y$O2Uj=v%X@yz4Od@Ee=y=3 zKX{0#YKcqdrr3LU4J9O7rt8!z5!F%%xG@V90&6V@fe;dhLunZ(<mbtXHwnbscoxR- z*#Y1nH<o6#EN{5#(r@{`UWk*F&EAl#$f=b})G85|%+E5_DD&{XBdp)ur&<cBl>$7i zcx3-^+Jl(O7g{u{WhzmCRto1F##)Rqq*=~zlu(X>iM??ELTULHsl+2fh?{Y){SyU1 z2tjTN);43VefgHp27z~Zf0WYg4^djOG(C-!8tW{cQY_6j**e|i;eCf$>kf#M3?&84 zYKfO!vz_Tig>n>9Ek)zt$2vNLm|>b>t)so!C-gmPwbDttRulzUo?nUMjyx+~ZZCp3 zT{HlNG5A`sYuo%EO;^irH`b2*f3-xdT%r<%Bx#0_W7g+s$u(Cju`pfd=*A}ZJ$4XJ zNw&>RQ3`$P)iRYZI4Sbo;fN$FNV44Jh56cnmG;hVob1@PrA4hA0gis0FdWA&KLz|J z;5VOrG<Y5;X2#O0m3i%TSN+8m3#~U8V*x?vYowG^q7dsW)>#y49Lh?Gu!cshOeylw zQn0+y#X0B=6Dot0lJBFnBq<C>RyNq^#vER0|L;mUeB)y)9eMfe;B`uhH%lR2lw|q! z&cRf@!j_o^{dn|m+P(NMjCJ1^&jx@f@SlMKTjm=PufBH2=eNx^-%u@uR4XNXPm|>Z zqfv%d3MB<fDWnugA#n~0VR1NcP>O<aypTE?l`?selcYJiFl=o0SZR0J=*4l874J4~ zgtgW>_?oruYkQBb$c^q`V{xw0Xf>-uQ9uy*+B)~i<7=DOS$F<1&6xoB`f16I6oOlJ zUjBj0=BD1>tXG(sZXyNbML|&*y8W2K7^WH(gcBHNL5^*PrxnH+a$|@`>Dagx79}KU zo|6^@T1oaFTcaB%ILrU3mczrIlq~mRgn&*zrrjS}2S=QB4I!W?3{pz!mD05j?LGX) z)lTmYb)M1WnfZV;f7$@(B|Da0vSUl@cecz;iG|q~rE<g|jwyNtMNu$JQk-yTCDBTO z6lkT;N+AT~dBJ+O&#~1F(llq777WvjR;@D0N2H9B92|s!_wCU4P*PCo2W)J{m?Xzq z2k_-ll3z0zr5IxoLa_J9ia55h`M$g`cgXW3NoN4Cb-I3z*LO%MdBN7XKb)Uw1T)hO zg2+c{g{L(FIJna0t9L)_UbgcxaoL>3^E9FFp_D{PNntDpj<2%1(Id?*4neIHve0T! zFNatMzUN_yN%MldD2^1y05DsL$P0sUcI+h_9~q3&cX#{o+(x(0<A+z-ec&ik${p>& z2xr~J0dV7vOU?;^r_^QJ=9<?{HL7@?#yUry=cH-QO1sNfe(=!$eB{XLC-cJoi{<ss z>m@=3zD7$$;Aw(Tv)La~3Ie90kj1FMY_m?}X$s>Ia!jfUV_0c-^8@Rf_u0w*N(dGj zRXjPiCqjtKSo^Lgj;;UseR~h<G|#D*A~yPQwV&j*$kV;^G3aLikQe5h;$JUCH@2qg zz8`piz*$R{8`|wI_dkC4*ds?)-wJSWz4IMs&ECsrnpdQGPNN*5q(&>nj-`3Rz(XLI zu9qjIXKW+J`xjKAfH*7GA7Ab4JHa*!Yq8d`V{V$<SOj3K`|6{ISAI1qicd{fOa5AS zK#~`wnOf;xrNIB_MFH@)dk&s8_SZ`Ai?4X`+bg9=jIFxEIY&H*S!?&~BZpQ#0N^Qw zv6ieb-@&;ne9vcYx<RcH5%?a~SOQN|Erod6Lq3`L#2CXU8|Ne&<)}U#_}jBA-zS8? z3Ca3Kk9rtTD}^{5g|S%p?^$8<W1apN>R~|ODUvjQudnq-#l@(Aug=T|EKSw1&Jp@v zsZ<K_{jvBPW9f7UtabZ;biC95ycUAlT8UP*OeOGs4I$p<aE;6qNGZtk0y|-mqcq3U z8i#-h?Tv>C{lSQ|FnB_gLMh%>2tF)@Knk!p9yz*-JH^0R=csu47GEj0&NR4ezC|Sr z<`7&4?7v_DLSLPhA{W5YOoK~W4Q3kESt%t#N|bZ-`y-auyLab>c~4<1g>x)THJGbc z$c;&iG52P9aqH35HdsfiSwkqrV3eYz#Mc_f7|1jm^8n`{Ni&XZbcxgaMm4#7C?!e= za1c+5AkIPAS1)aq!+-L^Z43Ovn|9HxRcLp5>e%|`i!KTPYftz4N(!o>f6MGt?Muyi zWiiil@~j{)at<9`OOC8}-ffKK$}Q8()=I1mhAj8v@yCVu{FZv<R!?gXW1AtQz~ZnL z`tb<kEW!y2V@^hWYpWerSKEY2UKdKq$UJ$didNLiA!73Swa|aZLcQW$bNM2*N<>i< zC?(OJye`kpS1%$ZCQsA-rB=Ok#p3M$*gD^uE0scuqM+A{dGN7==CPwI?<j@A1D;ZB zYc<)w+Tn?n_DO^0oO^gQO3e0|rb?}4Fv^&!l_-}(kPcVm6otjvv6m4_kPQ<qG2k`p z>>kA1I$6HQIQJht#1{diG58Lor?J)&YCTgcN6fVvST_bmDhZDH;nQ%Ma{}<<%eS7U zU$c$s`{!HDxpFx|Dv8pP{z{u4A2@orJxKnnUNLxDvFF$tPpq_0jVBtBlpos_g{qbn zJg|C<zs+)fdfNh5%ukb7BfQc$^gXiCVK_>euU9Y|T^Np7&2l!goYdMYeJMZZ2{~tQ zzwex*(~rrN#9E7U?lV^f-fPQI5S>V)OCiV$vp*hX7Y=|t`Fh|h$>QA9FHKL^(4L32 z24^76a@vF8|61wBtn~*7Avm@<c<QHqAHk~vsc2};*1+e;U_`s!Cvy_p?lX#fwASb} z!yBbMd|-t*P1#5@Vq*}Db>Ej#3i#dBy1zU;N*^ek!&4Fm1X|shr1=}OtoVXo*7M2< zj&Jsl{@~I5pUsT9Z~*RlaL?E!Sw}7OZ>d(IOD@?uN9ZX`AxN?j-TpAEMd62QrEr{8 z6@txCN_Ui=_NkGv@3^Pa6-!Y-To}rp;;}f!U=av>Dd^+{#yN6p*+_Fn#!~eZmzGN8 z&asjt%=tcXQG}UwUk0uLl6>Ntr4YnP_U+Y;?hOLoJ4!O|oA><q55DuzzEyWIZt#SI z(NZ9U_@y8Ic)uK_88^P@N*3p)84WXzt+oHJbMCm7;}rPBlRb5O3HSqF$eB=Ua_6u> zVl16BC$)~DF&s)#%1YAm#+*MCil*-qDn&&K4h}~&Jxy6DmPxkzQr=z|^Tx4_a)?Ql zDJzPjqa^+Hjc&}!W*<*W3VRVm=oAA+H41O@JjsuqI6`+Y<i#(zoGi^avbOmtV;#;J zq!6S<!FvCU;?31si27U*5C}=&`5Y#prZqL+!#IbT2uxXNYM!QF7%Ub!kw8yMVq@qQ z1uf5~t~H?)uOAxT1bh{sGfc?MI2j{^KuW=hNbsVFkd$NHDtq3wX`U}cp+_YOIk3FW z#^wMa#63xte@TdO&0b2$fsG!;ss3|3ez&ZY?@2NC_0BQ0mPJodR*J-0h7%nP)cB~q zqQE#H0E5LLG0w4?X3Y5h7$~h}J1>6g1OWXcWB+=GTl9{Ls_mZ<G(Wc5X5VTX>)iXB zm9k3GoFvPsgdvC4JNu5TcV6LXg;o+@E0R3t;70eUpD6*iRy~cD0tAeVB{h~%DTEN? zm(9m+s&J0nItGOyHkNFnE)uAEisdxLI)^VMQ@)2U#kIh;6Px|$$SRMoY*2~(XP*-s zm$sar<oQo`21A<Fh%7g(_hNIb)BneTr-yNtpY#~V`$O_Gt?g}6h(<$ew1hxPjuq*c z#AuCm&`EO!6N0mm<@AIha}IEf3PVkgQ)vr9z=PcZ-6E&y`_w#5UF&cy%U=eZ3|zi` z-)^c=z+$t;h15&**$N!xz}KFX-Z0H5jG+|zbOxj0dOW&sOp%|IwZfkDyFV97DYirb z&A_9bW*i(PY%hm|O0t&bET<=Z^mjAs${FUy6Mq<5Gw}?LslZ1HSj{p{*pr6VtY`TR zZfs})IJCCOAKv*lyyd04#`fSmZNM2S5NA18F3!Ai*JX>*Y@>?rX;wG;bVtd4DP$sr zL<x0ro@2aZ%Gb;U0g;sKk4J!GAqX%QR+5atSZW;b?|_#Acb{0?%MFEfIA<wK#e5j@ zM4ZqwhF0jaSPH3X_4=o7n&t(6{{08J@4#^~V=?Cu4xa(Qj)hj``t4i)<l609z1Q7* zEw6p)HC%t?HtMBttAOx4?97yaE!#>F6;IJG49jW8QWO$MNoozN*-5^Tog&6B2R;pC zu`#ss94#eU3SL+(lNigMeoV#FTwW=$B@C_rZaX7%x0b@#@lR_n9Drt}^osdLb>8<i zrO;<_c8Ztoyo?<SttsQ&&t}GO>O9NXRne-n6oqIZXs0>Ojb9%DoxGs;WYVR33IGN0 zZr}yL!-q#Hoh+x}d0bsBv$Im>_$Z~9=ajW(d$}yCTK)6qyf#<~yp9l9t)w!}V$uwp z!_%7F+U9w5l3m&IecA9mGV9pLGOAir(h}>&x_rv`@mbdI18ypu+p}jd+`1TrES5rU zoo{i+(Pj4ZV_JdFQaNP%sI+q>&G6*KSBcM%fCH=T@9#dc@?GcLIG=xl9E~^WoNQk^ zw~^U88~Ri|O=b<7c|k=hln~_B(tq;x6W}A~IM)#Pjb2f3Pp3PU1YdL0RD<KAl+`37 zvzCR>&uWu~4snio!2q-eG2gsz&%3_&(B7VN79}NFQLq^g@uc{O6rv_3tn0*l%BZ(| zkDBL$6AX<(A`l1+W6lpGWncgNTqXL}TqR_#5;9W`cuFe!OTf{iNy`15E*nWk)Ay)o z#XapV>q$oL-1cK>y8X~7;ov#uMYusnKTr03=fS=29E`I6wm4m{FLyRMzOl)cW@T${ zl>KH}m=B0CzacZ0tT;_65?{$luFp|8M}eET&ar!{hn}}k3I9XM)2o@W-#?M{1z3wu z3#dNm;4{1Xv8riBReLN(A$PYoNsPtfBBkVi-V%Cmc}~mYN=iC$^5w7J|L9$1Uw^b! zDZR5CcvM24K&f}G$H@myXoV~+S#g?P9~v4<zbH^*9P#z@0_VV3OXMjkp{H<e*Dx>c z#Bnq5s2N{gOr%myB=~lK&Aj-%y@TQ0)s+gNkOWGxZgNUmQT6m|D!y(w*gRJi`&?=M zr>zc8T2$Mk!v40D;_dZP;8!D`W;vWKto`ujDEoi~JSFjzB!4n(b+nu1#Cd@)CDXpo zo_<U>FDRU&9(o8V$gQKWreQ1}Khht)c|xD7Km@2$9_TUPLn~?i>8ehYrzNd&fRJOU zagMUV{j<k52A`O$JE7JVFyqJq1N1MbJT3+J<BHF5=QvOf^p&0xcuKL*sQk-ew)u&y zFh`Y?_)47$z`^BFRv7EFCk0DU$nJj3L%jj>rGOkqZ<KMOmM`EIEyZnxb@9_k>futL z9vLdG)xx2bz}J#S6fj6~x@q={z`YXy#3=yS$sHZA4jcm7Piq8yt?;#?8U{q3#@C9h zFrUlqSc@HkdO0Z1R7;=Ma@-jjdHPgQd*JYBbnk(9h!T>9@6qx-Hj9E|X+k&22|Y<O z@|h`x%#=f~8G1XONmq00{y5Hy0s)Ouz;rnx&<amWgb)GXpCSQra&dq1y8`Bb7Xw$F zB4K9&prkxGg&4=ynX$juA7$-vnoLoP0+yyLKU0nTH^f=aW|E%fatyrnuhu(v-@VbX zhXzARN)aj9_JnZt$fxA#aYtCFkrF&9XP*gx%_M(3$%{LOS%I%4T8?89Un`^#@&erc zrNEYR0^rUvt#fuWPQH>A2Biexs78U@(yaW6lA>npxNGzjH+D2O<`sX}?*7U{{rHa6 zH2q>~?Ry;Ja5qU=i&NUejQ%JmGY-W0H957@;!{as?p^7P#$?QmGgnHAEf;9~>*oYO zinB~97^L~f+k-UE3j>orf%$rQZfmpp9VG-$>Cc%4Zg6m9Xw0V)>;AN`ZWG*rito`X zhb-1hI2`M7VtZ+^alR*C8D<~sr^QN~7L!z%VVD+`y05PQHh|;6>V#;WYxK?uKw<0| z(-=!um<QGe!*BE^sb=3()XE`OE==9fszhIMlbk%T75E1ei+*~X5&2h_ea&1oWUdym zwNa)PdT~;i2QI8R&3(Har=-TRHb_YeBRnZz2i)5X^g~mDcR%pM2^a~GP7ERwa85Qv zi>FplXR6WD^#m@>)Jl7<UYL%W)d-wJO2OmH9sB*g$9^F#%wGY!&MH~pH+=nPTFJ7n z$G$xB6?tLr+|wTX+$1Cp&If?0$Xl%W`qS0G_tpjp4#%)CLr==fd?i=Y!r*|-v=9?R zD1dNst}b9s-21$2z=>%bhc^bvCziYMxJyHTb+B!wF1OFrKRJ1MdDcghY;J9qi>=Kv zQ>6fK9Nipkwny17bAj2s_9#D^6?S(o$(XB#w8|k>&nwje?|qHXBh->mN#;wwo4kI) zm?*U;oZ#GU(AslP=OD|?`wwsQj<5HINFh!%POx*aH8oWZ|Lxh@h=F^qnQPoXTaDyY zDPXo5aapUzOeOeCQkdft5_CZcy?$=~>(W$Z=xaq`ExsqQ&iz_9$=_m5y6lSxhMryq z#;-m|^Y=Wlx@kxGI4y3SrCtu$xiEF3r_`%Y_lP|9s_k>_Rw)=*=T@zA<I=jdJx_~| zHOGm}3K#g#D*dcD8fY2&T4JqZm>Nd8@zTP4!6B|>lC{1F0M4sJ_Nyzs`1bwF9SUP{ z4$`ckQ3}M?X8Gq&mDZPEI&=IKI{seZM?$c>u<o7Ca=aRNoUiVm(a@Ed_0|4}%vcs1 zC9aySv(&7V8<F=tEydFF2Ee3c<rfaDckep5)}<Gx^wSI{AoTR9*1z)C2iBVENd)ek z7|9pl`0|8f@C+{Noa0zG-s2oxI#s1r2`KrBsZv1b>4i|M&y=)!#`|4-uP}l*D{kGl z()mhOm^YOJk6x0oIZPiswe1kN;ahu`S0|~j?yI)Xo$X;ZCiy}CDZLrba0q!|u~Ej? zio#gBNlHJ-8D)mt+M5HV-T>V3yZ~@Q5_(DY=Do}9-}Zg)jag=%SRao5^ej>~56l9C zyY{VgCKvAPY*h<@ovrF{_j>;*aM>vU?3t`RVIMT$P28Ce$ZF_WPmW7-M>mJ$g`pk= z)S`gZ-pI5^Y5I(Jcq$K=Du)*bhJbdQDqsp|O@5Z2<|Sj`2yk>~tD5g#?`vS^Bxu<H z9(by>+_i5-PA(q;)AN<^g;&qkZ$I1_gaBI`Wjr;GVLEYo`)WM;M~Awjr_BdECjbaI z(Y$!_!|h?JCTwte0!HH;Hs|2ZR`pSU-RpfZaf#`xub3~Msr~(~eJgtBO!akfl7HmV zR&|@NWM~|z6ns6&&D*oW41ajE^Y;V52|3nMur^2pP@BB&^aPj_l5u2btNO^PT`Bd* zrxyA=697^OmU}~z+=PqG@~zHsgB0AWr1(aXn<6O;_g*Lf7bpG~<igcNuWJ(!Rxj2I fJezUi-v4g^{`)tQ=b!tk00000NkvXXu0mjfz`lAV literal 0 HcmV?d00001 diff --git a/game/modules/tome/data/gfx/shockbolt/npc/humanoid_human_bandit_lord.png b/game/modules/tome/data/gfx/shockbolt/npc/humanoid_human_bandit_lord.png new file mode 100644 index 0000000000000000000000000000000000000000..0e05000d87d257ce0a6ae551ae86ec4b5c3d2cc6 GIT binary patch literal 7630 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 literal 0 HcmV?d00001 diff --git a/game/modules/tome/data/gfx/shockbolt/npc/humanoid_human_rogue.png b/game/modules/tome/data/gfx/shockbolt/npc/humanoid_human_rogue.png new file mode 100644 index 0000000000000000000000000000000000000000..748a76b999814783ea7bd67cd5eb709052c3b235 GIT binary patch literal 9512 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 GLSTY&jaFa) literal 0 HcmV?d00001 diff --git a/game/modules/tome/data/gfx/shockbolt/npc/humanoid_human_thief.png b/game/modules/tome/data/gfx/shockbolt/npc/humanoid_human_thief.png new file mode 100644 index 0000000000000000000000000000000000000000..c4348941f4e37bb4c345df034b3e849741a4b6df GIT binary patch literal 9267 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 V16*J;NO1rF002ovPDHLkV1m~LG6w(v literal 0 HcmV?d00001 diff --git a/game/modules/tome/data/quests/start-archmage.lua b/game/modules/tome/data/quests/start-archmage.lua index a78779dfcf..b843a0488b 100644 --- a/game/modules/tome/data/quests/start-archmage.lua +++ b/game/modules/tome/data/quests/start-archmage.lua @@ -17,12 +17,18 @@ -- Nicolas Casalini "DarkGod" -- darkgod@te4.org -name = "Unstable!" +name = "Spellblaze Fallouts" +stables = 0 desc = function(self, who) local desc = {} - desc[#desc+1] = "Investigate the Abashed Expanse looking for the source of the recent unstability.\n" + desc[#desc+1] = "The Abashed Expanse is a part of Eyal torn apart by the Spellblaze and thrown into the void between the stars.\n" + desc[#desc+1] = "It has recently begun to destabilize threatening to crash onto Eyal, destroying everything in its path.\n" + desc[#desc+1] = "You have entered it and must now stabilize three wormholes by firing any spell at them.\n" + desc[#desc+1] = "Remember, the floating islands are not stable and might teleport randomly, however the disturbances also help you, your Phase Door spell is fully controllable even if not of high level yet.\n" if self:isCompleted("abashed") then - desc[#desc+1] = "#LIGHT_GREEN#* You have explored the expanse and destroyed the spacial disturbance.#WHITE#" + desc[#desc+1] = "#LIGHT_GREEN#* You have explored the expanse and closed all three wormholes.#WHITE#" + else + desc[#desc+1] = "#SLATE#* You have closed "..self.stables.." wormhole(s).#WHITE#" end return table.concat(desc, "\n") end @@ -35,3 +41,7 @@ on_status_change = function(self, who, status, sub) end end end + +stabilized = function(self) + self.stables = self.stables + 1 +end diff --git a/game/modules/tome/data/rooms/space_tree_pod.lua b/game/modules/tome/data/rooms/space_tree_pod.lua new file mode 100644 index 0000000000..67e23498b9 --- /dev/null +++ b/game/modules/tome/data/rooms/space_tree_pod.lua @@ -0,0 +1,79 @@ +-- ToME - Tales of Maj'Eyal +-- Copyright (C) 2009, 2010, 2011 Nicolas Casalini +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see <http://www.gnu.org/licenses/>. +-- +-- Nicolas Casalini "DarkGod" +-- darkgod@te4.org + +local function check_borders(room_map, x, y, id) + local nb = 0 + local own = false + for i = -1, 1 do for j = -1, 1 do + if room_map[x+i] and room_map[x+i][y+j] and room_map[x+i][y+j].room == id then + nb = nb + 1 + if i == 0 and j == 0 then own = true end + end + end end + return nb, own +end + +return function(gen, id) + local rad = rng.range(2, 4) + local mw = 10 + local mh = 10 + + if type(gen.level.data.first_pod) == "nil" then gen.level.data.first_pod = true end + + local is_first = false + if gen.level.data.first_pod then + gen.level.data.first_pod = false + is_first = true + mw = 16 + mh = 16 + rad = 8 + end + + local w = rad * 2 + local h = rad * 2 + gen.level.pods = gen.level.pods or {} + local function make_pod(self, x, y, is_lit) + gen:makePod(x + rad + 1, y + rad + 1, rad, id, {noise="fbm_perlin", zoom=5, base_breakpoint=0.4, octave=4}) + local pod = {} + local wormholes = {} + for i = x, x + mw do + for j = y, y + mh do + local nb, own = check_borders(gen.map.room_map, i, j, id) + if nb > 0 then pod[#pod+1] = {x=i-x, y=j-y} end + if nb >= 4 and own and rng.percent(10) then + gen.map(i, j, Map.TERRAIN, gen:resolve('T')) + end + if is_first and nb >= 5 and own then wormholes[#wormholes+1] = {i,j} end + end + end + if is_first then + if #wormholes >= 1 then + local g = rng.table(wormholes) + gen.map(g[1], g[2], Map.TERRAIN, gen:resolve('wormhole')) + else + gen.map(x, y, Map.TERRAIN, gen:resolve('wormhole')) + end + end + + gen.level.pods[#(gen.level.pods)+1] = {x1=x, x2=x+mw, y1=y, y2=y+mh, w=mw, h=mh, pod=pod, dir=rng.table{2,4,6,8}} + print(table.serialize(pod,nil,true)) + end + + return { name="space_tree_prod"..w.."x"..h, w=mw, h=mh, generator = make_pod} +end diff --git a/game/modules/tome/data/zones/abashed-expanse/grids.lua b/game/modules/tome/data/zones/abashed-expanse/grids.lua new file mode 100644 index 0000000000..aef5a90d19 --- /dev/null +++ b/game/modules/tome/data/zones/abashed-expanse/grids.lua @@ -0,0 +1,38 @@ +-- ToME - Tales of Maj'Eyal +-- Copyright (C) 2009, 2010, 2011 Nicolas Casalini +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see <http://www.gnu.org/licenses/>. +-- +-- Nicolas Casalini "DarkGod" +-- darkgod@te4.org + +load("/data/general/grids/basic.lua") +load("/data/general/grids/forest.lua") +load("/data/general/grids/burntland.lua", function(e) if e.image == "terrain/grass_burnt1.png" then e.image = "terrain/grass.png" end end) +load("/data/general/grids/void.lua") + +newEntity{ base="GRASS", define_as = "WORMHOLE", nice_tiler = false, + name = "unstable wormhole", + display = '*', color = colors.GREY, + add_mos = {{image="terrain/wormhole.png"}}, + damage_project = function(self, src, x, y, type, dam) + if type ~= engine.DamageType.PHYSICAL and game.party:hasMember(src) and not self.change_level then + self.change_level = 1 + self.name = "stable wormhole" + game.logSeen(src, "#VIOLET#The wormhole absorbs energies and stabilizes. You can now use it to travel.") + local q = game.player:hasQuest("start-archmage") + if q then q:stabilized() end + end + end, +} diff --git a/game/modules/tome/data/zones/abashed-expanse/npcs.lua b/game/modules/tome/data/zones/abashed-expanse/npcs.lua new file mode 100644 index 0000000000..5efb16ed70 --- /dev/null +++ b/game/modules/tome/data/zones/abashed-expanse/npcs.lua @@ -0,0 +1,65 @@ +-- ToME - Tales of Maj'Eyal +-- Copyright (C) 2009, 2010, 2011 Nicolas Casalini +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see <http://www.gnu.org/licenses/>. +-- +-- Nicolas Casalini "DarkGod" +-- darkgod@te4.org + +--load("/data/general/npcs/rodent.lua", rarity(5)) +--load("/data/general/npcs/vermin.lua", rarity(2)) +--load("/data/general/npcs/snake.lua", rarity(3)) +--load("/data/general/npcs/bear.lua", rarity(2)) +load("/data/general/npcs/crystal.lua", rarity(1)) + +--load("/data/general/npcs/all.lua", rarity(4, 35)) + +local Talents = require("engine.interface.ActorTalents") + +newEntity{ base="BASE_NPC_CRYSTAL", define_as = "SPELLBLAZE_CRYSTAL", + allow_infinite_dungeon = true, + unique = true, + name = "Spellblaze Crystal", tint=colors.PURPLE, image = "npc/spellblaze_crystal.png", + color=colors.VIOLET, + desc = [[A formation of purple crystal. It seems strangely aware.]], + level_range = {7, nil}, exp_worth = 2, + max_life = 150, life_rating = 12, fixed_rating = true, + mana_regen = 3, + stats = { str=10, dex=10, cun=12, mag=20, con=10 }, + rank = 4, + size_category = 4, + infravision = 10, + instakill_immune = 1, + + body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, + resolvers.drops{chance=100, nb=1, {defined="CRYSTAL_FOCUS", random_art_replace={chance=75}} }, + resolvers.drops{chance=100, nb=3, {tome_drops="boss"} }, + + resolvers.talents{ + [Talents.T_FLAME]=1, + [Talents.T_ICE_SHARDS]=1, + [Talents.T_SOUL_ROT]=1, + [Talents.T_ELEMENTAL_BOLT]=1, + }, + resolvers.inscriptions(1, {"manasurge rune"}), + inc_damage = { all = -35 }, + + autolevel = "caster", + ai = "tactical", ai_state = { talent_in=1, ai_move="move_astar", }, + ai_tactic = resolvers.tactic"ranged", + + on_die = function(self, who) + game.player:resolveSource():setQuestStatus("start-shaloren", engine.Quest.COMPLETED, "spellblaze") + end, +} diff --git a/game/modules/tome/data/zones/abashed-expanse/objects.lua b/game/modules/tome/data/zones/abashed-expanse/objects.lua new file mode 100644 index 0000000000..4d33804a72 --- /dev/null +++ b/game/modules/tome/data/zones/abashed-expanse/objects.lua @@ -0,0 +1,31 @@ +-- ToME - Tales of Maj'Eyal +-- Copyright (C) 2009, 2010, 2011 Nicolas Casalini +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see <http://www.gnu.org/licenses/>. +-- +-- Nicolas Casalini "DarkGod" +-- darkgod@te4.org + +load("/data/general/objects/objects-maj-eyal.lua") + +for i = 1, 5 do +newEntity{ base = "BASE_LORE", + define_as = "NOTE"..i, + name = "research log", lore="scintillating-caves-note-"..i, + desc = [[A paper scrap, left by an adventurer.]], + rarity = false, + is_magic_device = false, + encumberance = 0, +} +end diff --git a/game/modules/tome/data/zones/abashed-expanse/traps.lua b/game/modules/tome/data/zones/abashed-expanse/traps.lua new file mode 100644 index 0000000000..3b1074cc01 --- /dev/null +++ b/game/modules/tome/data/zones/abashed-expanse/traps.lua @@ -0,0 +1,20 @@ +-- ToME - Tales of Maj'Eyal +-- Copyright (C) 2009, 2010, 2011 Nicolas Casalini +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see <http://www.gnu.org/licenses/>. +-- +-- Nicolas Casalini "DarkGod" +-- darkgod@te4.org + +load("/data/general/traps/natural_forest.lua") diff --git a/game/modules/tome/data/zones/abashed-expanse/zone.lua b/game/modules/tome/data/zones/abashed-expanse/zone.lua new file mode 100644 index 0000000000..909caecd94 --- /dev/null +++ b/game/modules/tome/data/zones/abashed-expanse/zone.lua @@ -0,0 +1,228 @@ +-- ToME - Tales of Maj'Eyal +-- Copyright (C) 2009, 2010, 2011 Nicolas Casalini +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see <http://www.gnu.org/licenses/>. +-- +-- Nicolas Casalini "DarkGod" +-- darkgod@te4.org + +return { + name = "Abashed Expanse", + level_range = {1, 5}, + level_scheme = "player", + max_level = 3, + decay = {300, 800}, + actor_adjust_level = function(zone, level, e) return zone.base_level + e:getRankLevelAdjust() + level.level-1 + rng.range(-1,2) end, + width = 50, height = 50, + all_remembered = true, + all_lited = true, + persistent = "zone", + ambient_music = "World of Ice.ogg", + max_material_level = 2, + no_level_connectivity = true, + force_controlled_teleport = true, + projectile_speed_mod = 0.3, + + generator = { + map = { + class = "engine.generator.map.Roomer", + nb_rooms = 20, + no_tunnels = true, + rooms = {"space_tree_pod"}, + ['.'] = function() if rng.chance(20) then return "FLOWER" else return "GRASS" end end, +-- ['T'] = {"TREE","TREE2","TREE3","TREE4","TREE5","TREE6","TREE7","TREE8","TREE9","TREE10","TREE11","TREE12","TREE13","TREE14","TREE15","TREE16","TREE17","TREE18","TREE19","TREE20",}, +-- ['.'] = {"BURNT_GROUND1","BURNT_GROUND2","BURNT_GROUND3","BURNT_GROUND4",}, + ['T'] = {"BURNT_TREE1","BURNT_TREE2","BURNT_TREE3","BURNT_TREE4","BURNT_TREE5","BURNT_TREE6","BURNT_TREE7","BURNT_TREE8","BURNT_TREE9","BURNT_TREE10","BURNT_TREE11","BURNT_TREE12","BURNT_TREE13","BURNT_TREE14","BURNT_TREE15","BURNT_TREE16","BURNT_TREE17","BURNT_TREE18","BURNT_TREE19","BURNT_TREE20",}, + ['#'] = "VOID_WALL", +-- up = "GRASS", +-- down = "GRASS", + wormhole = "WORMHOLE", + door = "GRASS", + }, + actor = { + class = "engine.generator.actor.Random", + nb_npc = {10, 15}, + filters = { {max_ood=2}, }, + guardian = "SPACIAL_DISTURBANCE", + }, + object = { + class = "engine.generator.object.Random", + nb_object = {6, 9}, + }, + trap = { + class = "engine.generator.trap.Random", + nb_trap = {6, 9}, + }, + }, + + next_move = 10, + teleport_zones = true, + -- Code for teleporting platforms + on_turn = function() + if game.turn % 10 ~= 0 or not game.level.data.teleport_zones then return end + game.level.data.next_move = game.level.data.next_move - 1 + if game.level.data.next_move <= 0 then + game.level.data.next_move = rng.range(4, 12) + + local void = game.zone.grid_list.VOID_WALL + local map = game.level.map + local pods = table.clone(game.level.pods) + + for __ = 1, 10 do + local pod = rng.tableRemove(pods) +-- print("====== MOVING POD", table.serialize(pod,nil,true)) + local x, y = pod.x1, pod.y1 + local nx, ny = rng.range(0, map.w - pod.w), rng.range(0, map.h - pod.h) + while true do -- Not a real loop, just a way to break from an if + -- Out of bounds + if not map:isBound(nx, ny) or not map:isBound(nx+pod.w-1, ny) or not map:isBound(nx, ny+pod.h-1) or not map:isBound(nx+pod.w-1, ny+pod.h-1) then + pod.dir = rng.table{2,4,6,8} +-- print("Break out of bounds") + break + end + + -- Check collisions + local stop = false + for i, c in ipairs(pod.pod) do + local ncx, ncy = c.x + nx, c.y + ny + local g = map(ncx, ncy, map.TERRAIN) + if g and not g.is_void then stop = true end + end + + if stop then + pod.dir = rng.table{2,4,6,8} +-- print("Break collide") + break + end + + -- Move! + local missing = {} + for i, c in ipairs(pod.pod) do + local cx, cy = c.x + x, c.y + y + missing[cx + cy * map.w] = {x=c.x, y=c.y, es=map.map[cx + cy * map.w]} + map.map[cx + cy * map.w] = {} + map(cx, cy, map.TERRAIN, void) + map:particleEmitter(cx, cy, 1, "teleport_line") + end + for i, c in pairs(missing) do + local ncx, ncy = c.x + nx, c.y + ny + + local es = c.es + map.map[ncx + ncy * map.w] = {} + map.updateMap = function() end + for z, e in pairs(es or {}) do + if e.move then e.x = nil e.y = nil e:move(ncx, ncy, true) + else map(ncx, ncy, z, e) end + if e.x then e.x, e.y = ncx, ncy end + end + map.updateMap = nil + map:updateMap(ncx, ncy) + map:particleEmitter(ncx, ncy, 1, "teleport_line") + end + + pod.x1, pod.y1 = nx, ny + pod.x2, pod.y2 = util.coordAddDir(pod.x2, pod.y2, pod.dir) + map:cleanFOV() + map.changed = true + if rng.percent(10) then pod.dir = rng.table{2,4,6,8} end + break -- Never loop + end + end + end + end, + + +--[[ Code for moving platforms + on_turn = function() + if game.turn % 10 ~= 0 then return end + game.level.data.next_move = game.level.data.next_move - 1 + if game.level.data.next_move <= 0 then + game.level.data.next_move = 1 + + local void = game.zone.grid_list.VOID_WALL + local map = game.level.map + local pods = table.clone(game.level.pods) + + local pod = rng.tableRemove(pods) +-- print("====== MOVING POD", table.serialize(pod,nil,true)) + local x, y = pod.x1, pod.y1 + local nx, ny = util.coordAddDir(pod.x1, pod.y1, pod.dir) + while true do -- Not a real loop, just a way to break from an if + -- Out of bounds + if not map:isBound(nx, ny) or not map:isBound(nx+pod.w-1, ny) or not map:isBound(nx, ny+pod.h-1) or not map:isBound(nx+pod.w-1, ny+pod.h-1) then + pod.dir = rng.table{2,4,6,8} + break + end + + -- Check collisions + local stop = false + if pod.dir == 2 then + for i = pod.x1, pod.x2 do if map(i, pod.y2 + 1, map.TERRAIN) ~= void then stop = true end end + elseif pod.dir == 8 then + for i = pod.x1, pod.x2 do if map(i, pod.y1 - 1, map.TERRAIN) ~= void then stop = true end end + elseif pod.dir == 6 then + for j = pod.y1, pod.y2 do if map(pod.x2 + 1, j, map.TERRAIN) ~= void then stop = true end end + elseif pod.dir == 4 then + for j = pod.y1, pod.y2 do if map(pod.x1 - 1, j, map.TERRAIN) ~= void then stop = true end end + end + + if stop then + pod.dir = rng.table{2,4,6,8} + break + end + + -- Move! + local missing = {} + for i, c in ipairs(pod.pod) do + local cx, cy = c.x + x, c.y + y + missing[cx + cy * map.w] = {x=c.x, y=c.y, es=map.map[cx + cy * map.w]} + map.map[cx + cy * map.w] = {} + map(cx, cy, map.TERRAIN, void) + end + for i, c in pairs(missing) do + local ncx, ncy = c.x + nx, c.y + ny + + local es = c.es + map.map[ncx + ncy * map.w] = {} + map.updateMap = function() end + for z, e in pairs(es or {}) do + if e.move then e.x = nil e.y = nil e:move(ncx, ncy, true) + else map(ncx, ncy, z, e) end + if e.x then e.x, e.y = ncx, ncy end + end + map.updateMap = nil + map:updateMap(ncx, ncy) + end + + pod.x1, pod.y1 = nx, ny + pod.x2, pod.y2 = util.coordAddDir(pod.x2, pod.y2, pod.dir) + map:cleanFOV() + map.changed = true + if rng.percent(10) then pod.dir = rng.table{2,4,6,8} end + break -- Never loop + end + end + end, +--]] + + post_process = function(level) + local Map = require "engine.Map" + level.background_particle = require("engine.Particles").new("starfield", 1, {width=Map.viewport.width, height=Map.viewport.height}) + end, + + background = function(level, x, y, nb_keyframes) + local Map = require "engine.Map" + level.background_particle.ps:toScreen(x, y, true, 1) + end, +} -- GitLab