From cf228c7642a255780d0da37567d702eb1bb883a3 Mon Sep 17 00:00:00 2001 From: Snowram Date: Thu, 25 Feb 2021 00:12:31 +0100 Subject: [PATCH] Adds harvester npc --- .../npc_weapons/hammer/harvester_scythe.ron | 18 +++++ assets/common/npc_names.ron | 4 ++ .../voxel/biped_large_central_manifest.ron | 52 ++++++++++++++ .../voxel/biped_large_lateral_manifest.ron | 68 ++++++++++++++++++ .../voxygen/voxel/biped_weapon_manifest.ron | 6 +- .../voxel/npc/harvester/male/foot_l.vox | Bin 0 -> 1520 bytes .../voxel/npc/harvester/male/foot_r.vox | Bin 0 -> 1520 bytes .../voxel/npc/harvester/male/hand_l.vox | Bin 0 -> 1532 bytes .../voxel/npc/harvester/male/hand_r.vox | Bin 0 -> 1528 bytes .../voxygen/voxel/npc/harvester/male/head.vox | Bin 0 -> 4456 bytes .../voxygen/voxel/npc/harvester/male/jaw.vox | Bin 0 -> 1432 bytes .../voxel/npc/harvester/male/leg_l.vox | Bin 0 -> 1344 bytes .../voxel/npc/harvester/male/leg_r.vox | Bin 0 -> 1344 bytes .../voxel/npc/harvester/male/shoulder_l.vox | Bin 0 -> 1536 bytes .../voxel/npc/harvester/male/shoulder_r.vox | Bin 0 -> 1536 bytes .../voxel/npc/harvester/male/torso_lower.vox | Bin 0 -> 1796 bytes .../voxel/npc/harvester/male/torso_upper.vox | Bin 0 -> 3664 bytes .../voxel/weapon/axe/2haxe_harvester.vox | Bin 0 -> 1788 bytes .../{minotaur_axe.vox => 2haxe_minotaur.vox} | Bin .../weapon/hammer/2hhammer_harvester.vox | Bin 0 -> 1788 bytes common/src/comp/body.rs | 2 + common/src/comp/body/biped_large.rs | 6 +- common/src/comp/inventory/loadout_builder.rs | 5 ++ voxygen/anim/src/biped_large/mod.rs | 10 +++ 24 files changed, 169 insertions(+), 2 deletions(-) create mode 100644 assets/common/items/npc_weapons/hammer/harvester_scythe.ron create mode 100644 assets/voxygen/voxel/npc/harvester/male/foot_l.vox create mode 100644 assets/voxygen/voxel/npc/harvester/male/foot_r.vox create mode 100644 assets/voxygen/voxel/npc/harvester/male/hand_l.vox create mode 100644 assets/voxygen/voxel/npc/harvester/male/hand_r.vox create mode 100644 assets/voxygen/voxel/npc/harvester/male/head.vox create mode 100644 assets/voxygen/voxel/npc/harvester/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/harvester/male/leg_l.vox create mode 100644 assets/voxygen/voxel/npc/harvester/male/leg_r.vox create mode 100644 assets/voxygen/voxel/npc/harvester/male/shoulder_l.vox create mode 100644 assets/voxygen/voxel/npc/harvester/male/shoulder_r.vox create mode 100644 assets/voxygen/voxel/npc/harvester/male/torso_lower.vox create mode 100644 assets/voxygen/voxel/npc/harvester/male/torso_upper.vox create mode 100644 assets/voxygen/voxel/weapon/axe/2haxe_harvester.vox rename assets/voxygen/voxel/weapon/axe/{minotaur_axe.vox => 2haxe_minotaur.vox} (100%) create mode 100644 assets/voxygen/voxel/weapon/hammer/2hhammer_harvester.vox diff --git a/assets/common/items/npc_weapons/hammer/harvester_scythe.ron b/assets/common/items/npc_weapons/hammer/harvester_scythe.ron new file mode 100644 index 0000000000..d048830d32 --- /dev/null +++ b/assets/common/items/npc_weapons/hammer/harvester_scythe.ron @@ -0,0 +1,18 @@ +ItemDef( + name: "Harvester Sythe", + description: "Placeholder", + kind: Tool( + ( + kind: HammerSimple, + hands: Two, + stats: ( + equip_time_millis: 500, + power: 1.00, + poise_strength: 1.00, + speed: 1.0 + ), + ) + ), + quality: Low, + tags: [], +) diff --git a/assets/common/npc_names.ron b/assets/common/npc_names.ron index d39ab78c06..d8cda5f0bc 100644 --- a/assets/common/npc_names.ron +++ b/assets/common/npc_names.ron @@ -853,6 +853,10 @@ yeti: ( keyword: "yeti", generic: "Yeti" + ), + harvester: ( + keyword: "harvester", + generic: "Harvester" ) ) ), diff --git a/assets/voxygen/voxel/biped_large_central_manifest.ron b/assets/voxygen/voxel/biped_large_central_manifest.ron index 53b125df98..fda5200e91 100644 --- a/assets/voxygen/voxel/biped_large_central_manifest.ron +++ b/assets/voxygen/voxel/biped_large_central_manifest.ron @@ -676,4 +676,56 @@ central: ("armor.empty"), ) ), + (Harvester, Male): ( + head: ( + offset: (-11.0, -10.0, -9.0), + central: ("npc.harvester.male.head"), + ), + torso_upper: ( + offset: (-6.0, -7.0, -5.5), + central: ("npc.harvester.male.torso_upper"), + ), + torso_lower: ( + offset: (-3.0, -4.0, -9.0), + central: ("npc.harvester.male.torso_lower"), + ), + jaw: ( + offset: (-4.0, 0.0, -2.0), + central: ("npc.harvester.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Harvester, Female): ( + head: ( + offset: (-11.0, -10.0, -9.0), + central: ("npc.harvester.male.head"), + ), + torso_upper: ( + offset: (-6.0, -7.0, -5.5), + central: ("npc.harvester.male.torso_upper"), + ), + torso_lower: ( + offset: (-3.0, -4.0, -9.0), + central: ("npc.harvester.male.torso_lower"), + ), + jaw: ( + offset: (-4.0, 0.0, -2.0), + central: ("npc.harvester.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), }) \ No newline at end of file diff --git a/assets/voxygen/voxel/biped_large_lateral_manifest.ron b/assets/voxygen/voxel/biped_large_lateral_manifest.ron index 04d18e2da5..947200d5c3 100644 --- a/assets/voxygen/voxel/biped_large_lateral_manifest.ron +++ b/assets/voxygen/voxel/biped_large_lateral_manifest.ron @@ -883,4 +883,72 @@ lateral: ("npc.yeti.male.foot_r"), ) ), + (Harvester, Male): ( + shoulder_l: ( + offset: (-3.0, -2.5, -4.0), + lateral: ("npc.harvester.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.0, -2.5, -4.0), + lateral: ("npc.harvester.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.0, -2.0, -10.0), + lateral: ("npc.harvester.male.hand_l"), + ), + hand_r: ( + offset: (-4.0, -2.0, -10.0), + lateral: ("npc.harvester.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -3.0, -3.0), + lateral: ("npc.harvester.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -3.0, -3.0), + lateral: ("npc.harvester.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -4.0, -4.0), + lateral: ("npc.harvester.male.foot_l"), + ), + foot_r: ( + offset: (-3.5, -4.0, -4.0), + lateral: ("npc.harvester.male.foot_r"), + ) + ), + (Harvester, Female): ( + shoulder_l: ( + offset: (-3.0, -2.5, -4.0), + lateral: ("npc.harvester.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.0, -2.5, -4.0), + lateral: ("npc.harvester.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.0, -2.0, -10.0), + lateral: ("npc.harvester.male.hand_l"), + ), + hand_r: ( + offset: (-4.0, -2.0, -10.0), + lateral: ("npc.harvester.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -3.0, -3.0), + lateral: ("npc.harvester.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -3.0, -3.0), + lateral: ("npc.harvester.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -4.0, -4.0), + lateral: ("npc.harvester.male.foot_l"), + ), + foot_r: ( + offset: (-3.5, -4.0, -4.0), + lateral: ("npc.harvester.male.foot_r"), + ) + ), }) \ No newline at end of file diff --git a/assets/voxygen/voxel/biped_weapon_manifest.ron b/assets/voxygen/voxel/biped_weapon_manifest.ron index 0be85c1c27..05959366fc 100644 --- a/assets/voxygen/voxel/biped_weapon_manifest.ron +++ b/assets/voxygen/voxel/biped_weapon_manifest.ron @@ -755,13 +755,17 @@ color: None ), "common.items.npc_weapons.axe.minotaur_axe": ( - vox_spec: ("weapon.axe.minotaur_axe", (-2.5, -9.0, -6.0)), + vox_spec: ("weapon.axe.2haxe_minotaur", (-2.5, -9.0, -6.0)), color: None ), "common.items.npc_weapons.hammer.yeti_hammer": ( vox_spec: ("weapon.hammer.2hhammer_yeti", (-7.5, -7.0, -7.0)), color: None ), + "common.items.npc_weapons.hammer.harvester_scythe": ( + vox_spec: ("weapon.hammer.2hhammer_harvester", (-1.5, -7.5, -6.0)), + color: None + ), //BIPEDSMALL "common.items.npc_weapons.biped_small.adlet.adlet_bow": ( vox_spec: ("weapon.biped_small.bow.adlet", (-1.5, -3.0, -5.0)), diff --git a/assets/voxygen/voxel/npc/harvester/male/foot_l.vox b/assets/voxygen/voxel/npc/harvester/male/foot_l.vox new file mode 100644 index 0000000000000000000000000000000000000000..e812c88f6eefb34d211fde81f7ab29a7e3c17ec7 GIT binary patch literal 1520 zcma)5e@NVA7=OO+kFOG2Gk=|@^SsWE-JNSTJ-t(@bSnPp?zBU#7|N!ImR3Y&QAAiWs+5Qd z_9?+qGK7k1mP)CZR3aiIMWm&omZ@P~aK5Ej3X0f9GAw0r9)qQ1TXH|CIgk5D+lnam zYlf0CDzuT@Uz;4RXOO8eeuidU^BiR{7XztdQflU>m>c&~l3_=rP+Y?t%?=DHc(%4V z&x$I;nfVE$o8D$N+tRY4l6$JmE{3m)38iBe=UdD}GZfp(%;f8p!ps(2uUTg)CGW}e z1kcm#Q_MlyF)7&3J|ztwu9J%MShwwJF7-%wl&+Db;WV58CgN0>>9zk zV82vZ!AIK;H1WM;PB#UcQXHzz#U7cEQCQ%Hkf-NATOp1FF7aGl@v zr*8<;qduHVRb%tRX8itr91~}9kbXZO%U?UOjk16DAG>$~OTYb!WI)nN6>$;2le6L9qnITU5z(G3#i<`h=$Xr;7mF3<-3%5GxM%~zaJyzQ+T9( z1(cdb!9)Sp=lQK#2`3y5xLhv0;GM-o4Ko-z^9qUv9k_ATi}i#PGj8{P?%(8@UWen? zF);!>H~$_|7gzE6%IA3Nvn}k2KY`HGX>`4P4e_NdG&VNkCIOVqz@Ly?gdaa9eA~~G czpwv`^G}%h&2A-4@K!P7zg;ZT`1bYmHxMv9hX4Qo literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/harvester/male/foot_r.vox b/assets/voxygen/voxel/npc/harvester/male/foot_r.vox new file mode 100644 index 0000000000000000000000000000000000000000..d7d43f9463c53fc15dea92ca67434a530b166172 GIT binary patch literal 1520 zcma)*Z%kWN7{=dw&$%rzn?wGU!YH-atSxgmC{Q3O3<&?EfDLRbgE#}qpDmk6P)Vb4 zRpVT$lMtB6CgQRfc5z(9{CQ(Eai#Uj3ah@omiDhR8Gtss>iD5)d(}*h5;2uWQPzLufxCb+_h@m-0 z6w$=8v&Brbtqx|xj4GmuY0{e}*E6{uGf|3}YS~#cYi3(5W<#-8u~)H|-c;nMi6D_k;O2~=^};4fa{j^} z0|VID=tO#aB8YZ8fTII-NKAEL?Q|Q~W{zTQ{v@i`PN1;S3-@DQc%LstaG?fSwYiY- zyC92Mkj*?~b_!g_1-s7*_AUuB#sxc*f^6ozD*|6u2HKBjBK~4FURy6hQ$o-)D|q}P zLHDt}h!o$AR-YR&e*yYSz3?>Vz#q%U{X-s9PX31Dux9Esj)%#Ac+vz_T(Sb2A2#Cm?_-!alZn*(IavPMjcpYF zd;YPD7qIl(uV@Sk1|x#0Cb{$T2i)j*IFLU7_+rNmq z)2HB0y7A?^lD;$hUW36PMoOmeNb3qDIgQ+jT&&OYu9^iWTrPM#9=zb6#Y1&77&`L` z@&{eGan+CYxEnKG?|=S(`#F29!?Ej_7y+J}e-Fuvt9X6obG-H07WTxRK=sopbi92H zv8654*Vp5w0FpuQC)AeU$BzZy_EY(O{a>9QVfr(>mD`B&cMg zv8b^&tCbL_Nh@O0Skq{M0MVFOi4tSdGzN_?hM2|}^+_L$@$GYVAAB*bJ;|3dbLPy< z_no=7_tC@NIU?$8XgkOo{b~@!+Y-$?(+)2uLo;?T4j)OheJt4EHOA0N+gds-EwaK= zO52cGVUulxp`^*aVQUf*DNRcWZ7b;rYh_vvK6gkR(Ms7`$%qu1$~pF%K=2C8f4BpP7mxrZ6~{^M%P^ zn`@cOK?;-mF$a!mW!MJ86wE;ymX^X&%vB3v8Pdsm1nXf9tl6NnF18s4bJrPd>2rRI z^d07??9`opi3lGBO&|eb{H)U@n@u84S%lb^86djv~Ip{fx{TO6ISa zw`88qu*upD#k^RfLHzcaJ6YV5!M+rZun^9G5Gp`I2PBEWV=V_7G6UuL#bPlelS$l~ zA+%oHL|NY7__Mzs8ylU-tWOCCJ0dvNUx(ym2iDHCVQuCZ*5*$kx^@!9jb6AP_rm)^ zIf4r{$f?Z-jqU&~=72T}kljgejS=>oBkWruI7bP)rU|+17hEOya-3)%%SPg*T)e(s zf~F*)dzSFTM})2u`w%O=2dzFg;{GD^m3!f7%!5B(i145X(TM=;p(LuGPT_%9t{^wG z6RwKg@GytcxDT|Fhj;ycTnz-U9tr{N_hFU@>x}OiKQo?fZNr@NYoRa>m{5UBrHx6irl;4@$E)&C>!Vbyt}FhBh5Zcbq6pvRDonq6m!Fk z*m&&_ez`n?^0ER{>@7gZmye;|C`Q`})BS{n3BvU^3Duq=w1w`+(P|6hO*QBZ6=0;Q z7^xONRtId<)YPM@suqc^1{4ytX?>ZjVs4-ZS6~}EPsYjSqb(B zeejhOvb_g=58jKx135U+Qi$!F<+#8-S1%K8@LYfTmM}FE!1?J)Y<}2?KYoZ~{A@N- zALL>A8#lI5`mg@umo8%I_utSMBn-p|lTCE@`U7rsJRHdApExy)zC+!pjaA*1{>sWq zycJ!5y?+sPXHLUC?Z#K{QD$c8xdwwl43|yfk=7N^^c3>P^RYh9vuY-sbh+U1c<`cs z77x|UVDRj#C>(I%<~2Xo6K>3Sz5jXt^u2VgBk>y;9|oSEe;?DAR`JHl7kK;gE$ody ziRd#abi8vN@ue-)*Vp3~0pw)hFQ_fTkDm~}>*Jljum6klFPQnwZnvj{w~M9E?-a`v IzH>hP1KHy;Bme*a literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/harvester/male/hand_r.vox b/assets/voxygen/voxel/npc/harvester/male/hand_r.vox new file mode 100644 index 0000000000000000000000000000000000000000..4587d5132f3af872b1a0863b6fd3e7de6b714b20 GIT binary patch literal 1528 zcma)*T})eb7{=f8|DV&AWpl_^DU4E!&Dt_r1_%YB!hrB46Kr5x8N?Y-7%ZDeP)Vb4 zRpVSbCm}GCO~hq!X3+rw5@X^dN{q>}7&P7(Viq;VE4?tryT_-!@WyQJB)`1R`|+I9 zf8TTZ9zX1v6OpdQ_Ja)avn3L3kG1SfCA=KOBs<9ABeC{XgM!yMp)6O#(2Rr?=0;dE zYQqSb2DM^TMp!g^nmMBuRc?w3YeR8Hg)O2LwW20kv#%LNhfSgl%{k3EYDKN6iA`z0 z)|??)OwO8NWtbstP!o$tS zemnj4GP_~-E5#XNDtnm{N0}yu;V4r?6Eme1HBpkmeg^v)>{Amnr4==KqV+&ydYRl^ zBoaY99>?t&LEEKGl;r%4KL-Y|vC)O}^{L=sXE}}y)FVFCiM2EBSerS9wfR%1Sv!fs zCJ$Usdf<7f6oG|WWYy(D#&$p!vml#!$m|k0PYCv$7wlUSIK~9K5`t{zdDjHqEC)JH zWFq!THr`w>LUUZuGb?!NV?p=$K17P|Lz~xysILJ1r5?DOa^Q>Rqio2Hnn^#x!*NtU zo5Vw}T}5_qC!7_#;pT5Bj(Q<0Ie5?K!!^Gj>%kz<@c?E;uui@wzmVtK+VE<3HNw8e|*9zW)W zD-iFk!Q4m_Hr_adU$2a!v?LD|d-D+V=3=<724fw9#DHL7QgGufLAAR8?ZF3ev^s=| z=34Xx^DtUfh-9k|tAk| z>2$*FcH?E=EFP(!!O+>)kw56ft?NFl$6T24c>eSMr{+@kIugB!i4ow%`45n|yoz%x zU*Mh3x3D+*G-{qpqVwGwh%RlRp`ih{1rP_pU(j2EA3qU%*U!lJ>;L-v1k<0{onoqa Pr(UXlw_f_jclXObVUaPI literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/harvester/male/head.vox b/assets/voxygen/voxel/npc/harvester/male/head.vox new file mode 100644 index 0000000000000000000000000000000000000000..cc0d23a31f48daa166fdb6a2142a8f9fdfef2176 GIT binary patch literal 4456 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 a?ehvJ&+MIS+I*+IwEk{;lfdtOKKnQ4BVua+ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/harvester/male/jaw.vox b/assets/voxygen/voxel/npc/harvester/male/jaw.vox new file mode 100644 index 0000000000000000000000000000000000000000..cc3310fd6ec9e5f784010616c165ef9fd2d76e30 GIT binary patch literal 1432 zcma)*QA}H96vxl^-Fpj|%`u=YrK8khv$o9Ppwa?S%gUuKl?irqTRVs|pmc26M1o2h zjq5bdr8)_LnQTK`7H1Y65Zc6;IEfNtvMdITFNT=K7~_*Z7~|XDbNk?n+1!`>a?ZWy zeCPY0^WB?#@}P5$i2Ax>``FNFjVKXI>068kUgeC5QJI5>QnCGl9bWqxMJ2sVN?p@L zL{mhCR7HixNMZQYBPB%?LAu6PDx|CIlPY@@A=nqXB1MJD`3j@5uW${ODN|)c6|zEM zG_Ivc(j~_=BfnJ3$mM!`hN^IFP4p1!P}wS)&`n&=#C1%ZFW49C3uC`Ztdn%XXPX#J zle|~zlBBLMCLuXy_=>KUV2#9i98(R1!kQG;B)Lb{#xZHcxi86-DT3!AbW%iw*p{hm z853&~hA!4>;$8$>!PdljgfT-!@*b%_71`TW8Z^%~7z`qt&Eob9A$oBgjWvJc&!Hi# zt@WX_J|palKa3+ooybnbQ8*JrVde-5^CuA~oPa&-gzaf3oUb&&yU>oR4l`){KG0$n zXx)O!K7#c)VaGYbt|dbGIALp!P|eSlYXnzSIeL#*BK2A|-YV9kJ4+atB|P&9q5s$} z1RL&0)MZ1$U59j&6OM2V+=*H|G~z&D(u3yFEZUyWu!e?&3$#*$ z_uXz>^LSA7`GDRBFiV6Y^8@n>^I|lL)BXL(4-Vp+WkO=N8R-@);@)a(K1WD}2rnfG z=SB#NQ-nI(RybVSVE0wxJij0C*CC_3Fg@VG+-M83g8|Hqg|YVL0sML;gQi9cT6S9C zbD1%k3}C#MkQ*W_OcHLqLuhl<$;|nf$2?CdZRly>J+7SC8U);VY~xe-2+`J@$BAaMjnczXRzK8D}KplC&!RJFo2Gr|DO79ZEeN7fdw@0Sw!cVQ?TW1`1%7X z-I;N(UauEpjZ=6cx&q2g!#rU|ah~r=C!DZa;cz(cs(TiXb>H>Zw&K=xH;O46 zW}MFd%-_f}Y8^`4#Kaiz^8AO$U0%i8D_`QhFE+3<@hk!_`vAQ-YI6hzgw(S`0o4ZAIZ`zN&o-= literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/harvester/male/leg_l.vox b/assets/voxygen/voxel/npc/harvester/male/leg_l.vox new file mode 100644 index 0000000000000000000000000000000000000000..191eddd5387aacadd5841c62516645ab38202e06 GIT binary patch literal 1344 zcma)*Z%Ex$7{{OApBoZeGyh$$&g<>kW%pifHvL__DlMIg|8i*;-FBVQLQChymWh>I zigqhn!&)M`V9RWb7Ne%3LIf=-iC~Pd=uJqBi0DA9EaO>FJJhv$5s?|IJo zopXMt_tAsCSrO@MXxpzr%3LC`ws`Zll+dP9?)ry=hvIF2rIOnADyAh7!wZ1r5~xwNmCh8ZzT(=ipxG_}^$S~FrQmSWiIDOM`F zG%uE8DTZM=reQ@a#a0YcwPKm76~j`kSgB|$Vn-~o9a}LBTh~=>sMcthsujyrt(car zb*V8f$1+?xze|1XE04A8YY;nq3=)k-NhA{7oEBOyY*3Q(C%^aiv%cO*x_u(-?|6_S z{dFWJI#@m3#_IGDR_9Jqy?TPeMjxKXefVA|B{W|{R&6dadN;C=g>2-J*(tb>3p>vW zWs5?_sIWaLWUJ1*BKWg1Xg{7w{H1JOUn`<1A#~3OPkbbF9V;VRd=IUD53xW2eWgCU zjX4Bj`8+V_rFuL_`A~wYr>BU#a+&P#Hry3E@ai`d$Nb204(|p6TnPqQ3x}coK4wH% zQ@&GvQl4#X<>js}rh0n#YDtLg&ZV!yO-Cr3t*3-|z3^PGaCT5wm=Fp)+wuB$P#DhS zoaVco0!EtsOm+vE9jYMFQ_bvfBkQjn;O9#tl$PXCu`7?TKbN82YDU|IWWO*!E?j$4 zsPY!j7QUauRl6B$s-ZWW$B0wNR7-%BfpThU>T#S};$02o7y2pm`YBSTPK_`=+RMuM z!>nIE%GK2`SYG;+a7ht+LVo;3`P$z}-$VB@xG#%iE%|KSDCNAaxpGOkuJ`)mH^Ssd zkaNjOHa=|Rx9?+&oylbCgB+H=_OM0qzxzLW@dAs#{z79&7>EiJO>*b^4|?c$IGEo5 z_{m}V4s=r+b?#{Ym6eseRXtDno(1YopTd*$@a21wzO&T5hC(5ROD1@vbs0%ck~@~m z+MM21vv9)g#_RR+Vqk{7b<+%ZSc`j@_WAyE{;6@PxempyGd2v*&%ICb z;tFppf6m*VZL%x&B-PJM(echTVvC#9*Vl7XKr$5mz}ggk_*nS1Pow@{|L5x~Oh2<* S#gus~FO|QYm!A0c_3}5}SttGg literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/harvester/male/leg_r.vox b/assets/voxygen/voxel/npc/harvester/male/leg_r.vox new file mode 100644 index 0000000000000000000000000000000000000000..658e3caa0a07d62388e1d2871c3a95a7ebe9e32f GIT binary patch literal 1344 zcma)*e@NVQ7{{OQj|+*dnZM4{d0uD7?oOLczo)0t(y90>mv-p3b4m*>of}&wR&o^W zDq6!@BD!G9Y>XD8rlLXwEh&j$jIijRkQfosU-d^se*~|dJEDJLYae*=yr0kWJfF|= z`F_5i-bWAmW<{j4p>4k!DRYU$+TzXIQjQLF<*t7?cqrcXS87tnUd6P;F>HyLij}f1 zaZJ;QSf=3^mf@I|YQST4;o%!px{T5D>pYD=}HTCJ@ZwyCwI zV=1Of<6=3cB8KG{h7~atOVNfL!&G0fQrglyOLfZHnlH9vD5lsEG38~R((ZTBJHdd#PusU~=>eUkzHu~^9?!)&&DWUlqvTAdY(Yuj_EMy~( z%ud05T-bS5C|eXVMuqK3AzS^tD}p~OgZAT@#9zwh^|d0J5<>Tk@We+#*Re99#rM$a z_Yeyd&{yii+n7Tjmd^u&UaH4~ln*7SdU}e;E0@U*Z^K=&1F!Z_9P=Z~IlLPPa3vUI zEgXjS`0L18$Pb2{Jc6fn~4XR`(=Xo@!=?8(Dwt06$+Ep|m8Aid}hx{kaVFRx{cz zB>RQ=apBsVLY23Gw($KNuG-C5Qw_c0JVu;Crdk5543tw-Q;*}+67OmtztB&i*H4i$ zb!vq1(Oy>0A7=gXQLe6j!Sd3lgiDIp6Y}FP%2&OUzK8B*a9!T@sq>!9q6Vu>fF)!D=RB`t9qXDJqy&GK7}Xg;mh|VeP^kA4TVAsmrU?T z>oSs@BzG*AwK=`3X5oa}jo0ht#lQ@E>!ukz^D6lRZf;x+uom|)?eqQT`=|0!YaNPR zXKWarpL?I=#TDLI{+zcz+hkYlNvfZjqT`)w#1=QHudnB(fMh8Afwd|8@Uif1pIZID b{x7btF#XJKWmCah#ZvRPi=`L7eZBk*lkz9) literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/harvester/male/shoulder_l.vox b/assets/voxygen/voxel/npc/harvester/male/shoulder_l.vox new file mode 100644 index 0000000000000000000000000000000000000000..cdc4a9d5a2ba060f053faff0e961887e1405e7bd GIT binary patch literal 1536 zcma)5TTEP46y4`>FT}JKc?|<)7zZbv8EUa`hv5+w3WS$bZ~|?i5Nkl8w6-Ea=iZ6N zjv8w-S_y%gv?4Z*HH{VskQj}XC^05YW6=0xh-r*5CMNn}jDO30`S8cI_9kogIcu%6 zA9L>Qee|GzhKM>F+V*px-wdL7TVL}wcf*g#V2Uys2M_hNeJXgt&(rRYq^J;N3B^%z z6e22=unb{F4P{!=$g-uF2BqaB$xDROyt!%|TD9t@HCxo&EpHalMlyaod+>^l` z&ZoIAK1=K&SL3sWHXVcK6g;!RbCTl7{Rk-?r7~<1+Ig&HUju3P0*R`ttC375adV2$ zdSM-ykSMr*)}c(4%tWq$Y?a}kUe;Qk>WViO^h4<}LeOd8QwE+Z$h z4W5b}@No|%@c?Kk7w-mxxDpCsH4*{Z@5M9`RvF(jer7z^+KQLEx{&Va!Pkp~_?|rU zS9s77&cWtWguZ&h^Sy+#LxlNBLZNp%e1RP(ie%v&^W9bXLA1H0l+ zBKB+=9q(L2d|?Ci_4T+(0A(`p7t{vf$Bzl$^>gI+>;H8A1h+o3TSZsAmFDud)3y@d H{yhBy8bn9J literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/harvester/male/shoulder_r.vox b/assets/voxygen/voxel/npc/harvester/male/shoulder_r.vox new file mode 100644 index 0000000000000000000000000000000000000000..eb377c34b5d9176d0633c77b64fb300907f900c1 GIT binary patch literal 1536 zcma)*ZA_b06vxkfE5vLLc`JocYOz^c=5X+o7KjQ1!kbL6fo(8|GoUawH<6%y+Gt$W zIG5@q1ZJ{{xGc^rIv_w|G)|(#m@JDy;}=8BVvI2{(GSM>?eA$n_{D7QCcm6}{^#ER z^PHYOeUBdW%o0&oWBYy%^qV1yw)eMeODDV>3`>;F96Z$D{;A*%ucsL;D5NBXG-D)L zS}{UcN($D5Wu&mR5+NmINDFBjMoP(dIF~YJ7^QfxxTa)Wk&0&zIU~rhw}~l+gb4{@*xRtTVQ<5}hJ9I+tVzSZCT!!mB4x(&T~baSuE%R3I>4i`=>b(D+@T zgF(3EAU>?MXr&=Y>}Y-rQ_-9M3`jOL=&GtrX1(LeC80iH``~ z$95x9b~oC*E<}CB7^v{T-INbsvc0O!EJC>?SPx#p)BeJ zE$8E1pAT33eyjz9K*zn9A;KE-J@Yg3Tw5Dn?(Rmaw-;Y85u$qvFi_=0XCMz-PZ9bX z2+#Ks&JGh6rU=EZ?QnZ{pd^@sbFBAR#TaYx!tU{7cBBf4-Y{lIo3Q@c0sL}l3>D>t zsM=MCptk@cePN7u5R!w0`ANdHHwiWFVzdYE!{M4em}ss=U$78kRtZwAKCBE?qPDgH zmQ{!T?nV@qcv0f^qLfLU8pGsxA6CvE#`@)>xVri!mX|(5u)Gv|173Jbi+H~i0}tMV z;eEL{)>?$E8x=Uu&s@1gxXyF^>05$5=Eu2YH8wtM!XH0GF>xjbsSon8^o3{O%CwO(oqtDNLchIBqSpGl|Lf-cXhqzM}I=|g^TBYuKT{P=enQg zoUW&~Mvscf#?@_`xX5i!B-PfvZeFnA$E}2j`-rXEy4$X32K+7%*7!-Qy@WG_b_r{_ zT9;5Zl+Y%W)Y?yKBrIdP%1bv|?ch$a+a6!q9+ zU1&tHMsYPf$1=8omJW@Gp|0=JPE&)h^rOiu!<=QWPd(pDTi+Y8z9a02rC;rb_FL8% zKQ!V@;GbvFv!#Ys^hhYiiZcj3D(ff3(kne{-%pF>d4_eqzu(b=<5`X~IP#9X<9wR; zqm@hQz%%c~IWJ+9pRk&suA{D{uAyh6UDC16Sk|+~@D2^@j0!kEp^W9(mOd)Yn7jI z+RrFOPN+pF<+4iXL0ndg9o6DxCEyf$$Qg2moK}{3pE)mM6}<&Lif5A3%4A)@vBxmh zN{>3_jXu48&1$i^pRzPIHezgS47Vl)ttYRdvhZ*G+1rb`xsAwuUkEm}KZ>2bt1y;s z$IQVt%uMdY%&~oFnAwZ+mMFr{L=ksxGz30h~T1B? z2Ell*;MB0-^1Ff+kutQ!AIA0-OEI*z30?7G3?#}ivAzn^JC>oTsTqmHN_2OuMrnBr z<&hXFh=~IO7#{4x^oi}5JNE)E%zTZhOJ5>hS%Kv>F~llL881Z7V-KQlO+I$7FU8I4 zwK%~ur_Tzm@m+uUUXUHA#_{obT>Z2Kw|`1u=ujReJ}Jbd@4~o=MgPwK!kLq}_{Z;P zsS)gG6r|V6z0Y4AM*9=hx%r3p^`mD?CssBl?rHw|`g*+Aa0<(opT??#2M`_)ldmp z+a1PaH2RIX8%KF0W&X}mM_72dyc1B+A7q2Z+ow103Jsf#zz+}w;? s0!WC!UobZWKYuRxp@%DfU;mfqzcBYVyVDvZ@01JpyXA7ickh>f0Np@g^Z)<= literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/harvester/male/torso_upper.vox b/assets/voxygen/voxel/npc/harvester/male/torso_upper.vox new file mode 100644 index 0000000000000000000000000000000000000000..f12e9031d1c0c93f4b07d3d49b5669e0b926357f GIT binary patch literal 3664 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 2500, biped_large::Species::Yeti => 2000, biped_large::Species::Minotaur => 5000, + biped_large::Species::Harvester => 2000, _ => 1000, }, Body::BipedSmall(biped_small) => match biped_small.species { @@ -480,6 +481,7 @@ impl Body { biped_large::Species::Mindflayer => 250, biped_large::Species::Tidalwarrior => 90, biped_large::Species::Yeti => 80, + biped_large::Species::Harvester => 80, _ => 100, }, Body::BipedSmall(_) => 10, diff --git a/common/src/comp/body/biped_large.rs b/common/src/comp/body/biped_large.rs index 81f8eedc3b..1208021085 100644 --- a/common/src/comp/body/biped_large.rs +++ b/common/src/comp/body/biped_large.rs @@ -47,6 +47,7 @@ make_case_elim!( Minotaur = 10, Tidalwarrior = 11, Yeti = 12, + Harvester = 13, } ); @@ -68,6 +69,7 @@ pub struct AllSpecies { pub minotaur: SpeciesMeta, pub tidalwarrior: SpeciesMeta, pub yeti: SpeciesMeta, + pub harvester: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -89,11 +91,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Minotaur => &self.minotaur, Species::Tidalwarrior => &self.tidalwarrior, Species::Yeti => &self.yeti, + Species::Harvester => &self.harvester, } } } -pub const ALL_SPECIES: [Species; 13] = [ +pub const ALL_SPECIES: [Species; 14] = [ Species::Ogre, Species::Cyclops, Species::Wendigo, @@ -107,6 +110,7 @@ pub const ALL_SPECIES: [Species; 13] = [ Species::Minotaur, Species::Tidalwarrior, Species::Yeti, + Species::Harvester, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/common/src/comp/inventory/loadout_builder.rs b/common/src/comp/inventory/loadout_builder.rs index 18e3d1b250..7131840b60 100644 --- a/common/src/comp/inventory/loadout_builder.rs +++ b/common/src/comp/inventory/loadout_builder.rs @@ -261,6 +261,11 @@ impl LoadoutBuilder { "common.items.npc_weapons.hammer.yeti_hammer", )); }, + (biped_large::Species::Harvester, _) => { + main_tool = Some(Item::new_from_asset_expect( + "common.items.npc_weapons.hammer.harvester_scythe", + )); + }, }, Body::Object(object::Body::Crossbow) => { main_tool = Some(Item::new_from_asset_expect( diff --git a/voxygen/anim/src/biped_large/mod.rs b/voxygen/anim/src/biped_large/mod.rs index 250479dfcd..47a46ba1a7 100644 --- a/voxygen/anim/src/biped_large/mod.rs +++ b/voxygen/anim/src/biped_large/mod.rs @@ -207,6 +207,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Minotaur, _) => (6.0, 3.0), (Tidalwarrior, _) => (6.5, 5.0), (Yeti, _) => (8.5, 4.0), + (Harvester, _) => (6.0, 11.0), }, jaw: match (body.species, body.body_type) { (Ogre, _) => (0.0, 0.0), @@ -222,6 +223,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Minotaur, _) => (2.0, -4.0), (Tidalwarrior, _) => (0.0, 0.0), (Yeti, _) => (-5.0, -5.0), + (Harvester, _) => (-2.0, -7.0), }, upper_torso: match (body.species, body.body_type) { (Ogre, Male) => (0.0, 27.5), @@ -238,6 +240,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Minotaur, _) => (-1.0, 31.5), (Tidalwarrior, _) => (-1.0, 25.0), (Yeti, _) => (-1.0, 23.5), + (Harvester, _) => (-1.0, 18.0), }, lower_torso: match (body.species, body.body_type) { (Ogre, Male) => (1.0, -7.0), @@ -254,6 +257,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Minotaur, _) => (1.5, -8.5), (Tidalwarrior, _) => (0.0, -9.5), (Yeti, _) => (0.0, -6.5), + (Harvester, _) => (-1.0, -4.5), }, tail: match (body.species, body.body_type) { (Werewolf, _) => (-5.5, -2.0), @@ -278,6 +282,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Minotaur, _) => (10.0, 1.0, -1.0), (Tidalwarrior, _) => (14.0, -0.5, 2.0), (Yeti, _) => (10.5, 1.0, -2.5), + (Harvester, _) => (8.0, 1.0, -1.5), }, hand: match (body.species, body.body_type) { (Ogre, Male) => (14.5, 0.0, -4.0), @@ -294,6 +299,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Minotaur, _) => (12.5, 0.5, -7.0), (Tidalwarrior, _) => (15.5, -0.5, -3.0), (Yeti, _) => (12.0, 1.5, -6.0), + (Harvester, _) => (11.5, 1.5, -5.5), }, leg: match (body.species, body.body_type) { (Ogre, Male) => (0.0, 0.0, -4.0), @@ -310,6 +316,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Minotaur, _) => (5.0, 0.0, -10.0), (Tidalwarrior, _) => (2.5, 0.0, -5.5), (Yeti, _) => (4.0, 0.0, -5.5), + (Harvester, _) => (3.5, 1.0, -4.0), }, foot: match (body.species, body.body_type) { (Ogre, Male) => (4.0, 1.0, -12.0), @@ -326,6 +333,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Minotaur, _) => (6.0, 4.5, -17.5), (Tidalwarrior, _) => (3.5, 0.5, -10.5), (Yeti, _) => (4.5, 0.5, -12.5), + (Harvester, _) => (4.5, 0.5, -9.5), }, scaler: match (body.species, body.body_type) { (Ogre, Male) => 1.4, @@ -342,6 +350,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Minotaur, _) => 2.0, (Tidalwarrior, _) => 2.0, (Yeti, _) => 1.5, + (Harvester, _) => 1.5, }, tempo: match (body.species, body.body_type) { (Ogre, Male) => 0.9, @@ -367,6 +376,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Minotaur, _) => 14.0, (Tidalwarrior, _) => 14.0, (Yeti, _) => 12.5, + (Harvester, _) => 7.5, }, shl: match (body.species, body.body_type) { (Dullahan, _) => (-4.75, -11.0, 8.5, 1.47, -0.2, 0.0),