@hytopia.com/examples 1.0.27 → 1.0.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/frontiers-rpg-game/assets/avatars/bookshelf.png +0 -0
  2. package/frontiers-rpg-game/assets/avatars/gravekeeper.png +0 -0
  3. package/frontiers-rpg-game/assets/avatars/herder.png +0 -0
  4. package/frontiers-rpg-game/assets/blocks/bricks.png +0 -0
  5. package/frontiers-rpg-game/assets/blocks/clay.png +0 -0
  6. package/frontiers-rpg-game/assets/blocks/coal-ore.png +0 -0
  7. package/frontiers-rpg-game/assets/blocks/cobblestone-mossy.png +0 -0
  8. package/frontiers-rpg-game/assets/blocks/cobblestone.png +0 -0
  9. package/frontiers-rpg-game/assets/blocks/creep.png +0 -0
  10. package/frontiers-rpg-game/assets/blocks/diamond-ore.png +0 -0
  11. package/frontiers-rpg-game/assets/blocks/emerald-block.png +0 -0
  12. package/frontiers-rpg-game/assets/blocks/emerald-ore.png +0 -0
  13. package/frontiers-rpg-game/assets/blocks/glass.png +0 -0
  14. package/frontiers-rpg-game/assets/blocks/gold-ore.png +0 -0
  15. package/frontiers-rpg-game/assets/blocks/green_fungus/+x.png +0 -0
  16. package/frontiers-rpg-game/assets/blocks/green_fungus/+y.png +0 -0
  17. package/frontiers-rpg-game/assets/blocks/green_fungus/+z.png +0 -0
  18. package/frontiers-rpg-game/assets/blocks/green_fungus/-x.png +0 -0
  19. package/frontiers-rpg-game/assets/blocks/green_fungus/-y.png +0 -0
  20. package/frontiers-rpg-game/assets/blocks/green_fungus/-z.png +0 -0
  21. package/frontiers-rpg-game/assets/blocks/log/+x.png +0 -0
  22. package/frontiers-rpg-game/assets/blocks/log/+y.png +0 -0
  23. package/frontiers-rpg-game/assets/blocks/log/+z.png +0 -0
  24. package/frontiers-rpg-game/assets/blocks/log/-x.png +0 -0
  25. package/frontiers-rpg-game/assets/blocks/log/-y.png +0 -0
  26. package/frontiers-rpg-game/assets/blocks/log/-z.png +0 -0
  27. package/frontiers-rpg-game/assets/blocks/mossy_dirt/+x.png +0 -0
  28. package/frontiers-rpg-game/assets/blocks/mossy_dirt/+y.png +0 -0
  29. package/frontiers-rpg-game/assets/blocks/mossy_dirt/+z.png +0 -0
  30. package/frontiers-rpg-game/assets/blocks/mossy_dirt/-x.png +0 -0
  31. package/frontiers-rpg-game/assets/blocks/mossy_dirt/-y.png +0 -0
  32. package/frontiers-rpg-game/assets/blocks/mossy_dirt/-z.png +0 -0
  33. package/frontiers-rpg-game/assets/blocks/murky-water.png +0 -0
  34. package/frontiers-rpg-game/assets/blocks/mushroom_top/+x.png +0 -0
  35. package/frontiers-rpg-game/assets/blocks/mushroom_top/+y.png +0 -0
  36. package/frontiers-rpg-game/assets/blocks/mushroom_top/+z.png +0 -0
  37. package/frontiers-rpg-game/assets/blocks/mushroom_top/-x.png +0 -0
  38. package/frontiers-rpg-game/assets/blocks/mushroom_top/-y.png +0 -0
  39. package/frontiers-rpg-game/assets/blocks/mushroom_top/-z.png +0 -0
  40. package/frontiers-rpg-game/assets/blocks/oak-planks-leafy.png +0 -0
  41. package/frontiers-rpg-game/assets/blocks/oak-planks-leafyer.png +0 -0
  42. package/frontiers-rpg-game/assets/blocks/oak-planks-leafyerer.png +0 -0
  43. package/frontiers-rpg-game/assets/blocks/sand.png +0 -0
  44. package/frontiers-rpg-game/assets/blocks/sandstone.png +0 -0
  45. package/frontiers-rpg-game/assets/blocks/shadowrock.png +0 -0
  46. package/frontiers-rpg-game/assets/blocks/snow-rough.png +0 -0
  47. package/frontiers-rpg-game/assets/blocks/snow.png +0 -0
  48. package/frontiers-rpg-game/assets/icons/items/brittle-nails.png +0 -0
  49. package/frontiers-rpg-game/assets/icons/items/chieftan-blade.png +0 -0
  50. package/frontiers-rpg-game/assets/icons/items/gold-ingot.png +0 -0
  51. package/frontiers-rpg-game/assets/icons/items/gorkin-ear.png +0 -0
  52. package/frontiers-rpg-game/assets/icons/items/gorkin-eye.png +0 -0
  53. package/frontiers-rpg-game/assets/icons/items/gorkin-foot.png +0 -0
  54. package/frontiers-rpg-game/assets/icons/items/gorkin-hand.png +0 -0
  55. package/frontiers-rpg-game/assets/icons/items/gorkin-skull.png +0 -0
  56. package/frontiers-rpg-game/assets/icons/items/healing-potion.png +0 -0
  57. package/frontiers-rpg-game/assets/icons/items/iron-chestplate.png +0 -0
  58. package/frontiers-rpg-game/assets/icons/items/iron-gauntlets.png +0 -0
  59. package/frontiers-rpg-game/assets/icons/items/iron-grieves.png +0 -0
  60. package/frontiers-rpg-game/assets/icons/items/iron-helmet.png +0 -0
  61. package/frontiers-rpg-game/assets/icons/items/iron-ingot.png +0 -0
  62. package/frontiers-rpg-game/assets/icons/items/iron-leggings.png +0 -0
  63. package/frontiers-rpg-game/assets/icons/items/shackle.png +0 -0
  64. package/frontiers-rpg-game/assets/icons/items/shattered-sword.png +0 -0
  65. package/frontiers-rpg-game/assets/icons/items/silver-slab.png +0 -0
  66. package/frontiers-rpg-game/assets/icons/items/tough-monster-hide.png +0 -0
  67. package/frontiers-rpg-game/assets/icons/items/weaver-carapace.png +0 -0
  68. package/frontiers-rpg-game/assets/icons/items/weaver-egg.png +0 -0
  69. package/frontiers-rpg-game/assets/icons/items/weaver-heart.png +0 -0
  70. package/frontiers-rpg-game/assets/icons/items/weaver-silk.png +0 -0
  71. package/frontiers-rpg-game/assets/icons/items/woolran-scroll.png +0 -0
  72. package/frontiers-rpg-game/assets/maps/chitter-forest.json +5193 -5203
  73. package/frontiers-rpg-game/assets/maps/hearthwilds.json +21381 -2612
  74. package/frontiers-rpg-game/assets/models/enemies/.optimized/angler/angler-named-nodes.bin +0 -0
  75. package/frontiers-rpg-game/assets/models/enemies/.optimized/angler/angler-named-nodes.gltf +5472 -0
  76. package/frontiers-rpg-game/assets/models/enemies/.optimized/angler/angler.bin +0 -0
  77. package/frontiers-rpg-game/assets/models/enemies/.optimized/angler/angler.gltf +4122 -0
  78. package/frontiers-rpg-game/assets/models/enemies/.optimized/angler/angler.gltf.md5 +1 -0
  79. package/frontiers-rpg-game/assets/models/enemies/.optimized/angler/baseColor.png +0 -0
  80. package/frontiers-rpg-game/assets/models/enemies/.optimized/blight-knight-ceres/baseColor.png +0 -0
  81. package/frontiers-rpg-game/assets/models/enemies/.optimized/blight-knight-ceres/blight-knight-ceres-named-nodes.bin +0 -0
  82. package/frontiers-rpg-game/assets/models/enemies/.optimized/blight-knight-ceres/blight-knight-ceres-named-nodes.gltf +17967 -0
  83. package/frontiers-rpg-game/assets/models/enemies/.optimized/blight-knight-ceres/blight-knight-ceres.bin +0 -0
  84. package/frontiers-rpg-game/assets/models/enemies/.optimized/blight-knight-ceres/blight-knight-ceres.gltf +17403 -0
  85. package/frontiers-rpg-game/assets/models/enemies/.optimized/blight-knight-ceres/blight-knight-ceres.gltf.md5 +1 -0
  86. package/frontiers-rpg-game/assets/models/enemies/.optimized/blighted-capfolk/baseColor.png +0 -0
  87. package/frontiers-rpg-game/assets/models/enemies/.optimized/blighted-capfolk/blighted-capfolk-named-nodes.bin +0 -0
  88. package/frontiers-rpg-game/assets/models/enemies/.optimized/blighted-capfolk/blighted-capfolk-named-nodes.gltf +1658 -0
  89. package/frontiers-rpg-game/assets/models/enemies/.optimized/blighted-capfolk/blighted-capfolk.bin +0 -0
  90. package/frontiers-rpg-game/assets/models/enemies/.optimized/blighted-capfolk/blighted-capfolk.gltf +1658 -0
  91. package/frontiers-rpg-game/assets/models/enemies/.optimized/blighted-capfolk/blighted-capfolk.gltf.md5 +1 -0
  92. package/frontiers-rpg-game/assets/models/enemies/.optimized/capfolk-guardian/baseColor.png +0 -0
  93. package/frontiers-rpg-game/assets/models/enemies/.optimized/capfolk-guardian/capfolk-guardian-named-nodes.bin +0 -0
  94. package/frontiers-rpg-game/assets/models/enemies/.optimized/capfolk-guardian/capfolk-guardian-named-nodes.gltf +9410 -0
  95. package/frontiers-rpg-game/assets/models/enemies/.optimized/capfolk-guardian/capfolk-guardian.bin +0 -0
  96. package/frontiers-rpg-game/assets/models/enemies/.optimized/capfolk-guardian/capfolk-guardian.gltf +4261 -0
  97. package/frontiers-rpg-game/assets/models/enemies/.optimized/capfolk-guardian/capfolk-guardian.gltf.md5 +1 -0
  98. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-archer/baseColor_1.png +0 -0
  99. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-archer/baseColor_2.png +0 -0
  100. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-archer/gorkin-archer-named-nodes.bin +0 -0
  101. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-archer/gorkin-archer-named-nodes.gltf +6093 -0
  102. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-archer/gorkin-archer.bin +0 -0
  103. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-archer/gorkin-archer.gltf +4430 -0
  104. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-archer/gorkin-archer.gltf.md5 +1 -0
  105. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-assassin/baseColor_1.png +0 -0
  106. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-assassin/baseColor_2.png +0 -0
  107. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-assassin/gorkin-assassin-named-nodes.bin +0 -0
  108. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-assassin/gorkin-assassin-named-nodes.gltf +5441 -0
  109. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-assassin/gorkin-assassin.bin +0 -0
  110. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-assassin/gorkin-assassin.gltf +4084 -0
  111. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-assassin/gorkin-assassin.gltf.md5 +1 -0
  112. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-blademaster/baseColor.png +0 -0
  113. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-blademaster/gorkin-blademaster-named-nodes.bin +0 -0
  114. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-blademaster/gorkin-blademaster-named-nodes.gltf +5302 -0
  115. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-blademaster/gorkin-blademaster.bin +0 -0
  116. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-blademaster/gorkin-blademaster.gltf +4134 -0
  117. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-blademaster/gorkin-blademaster.gltf.md5 +1 -0
  118. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-chieftan/baseColor.png +0 -0
  119. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-chieftan/gorkin-chieftan-named-nodes.bin +0 -0
  120. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-chieftan/gorkin-chieftan-named-nodes.gltf +7052 -0
  121. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-chieftan/gorkin-chieftan.bin +0 -0
  122. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-chieftan/gorkin-chieftan.gltf +5581 -0
  123. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-chieftan/gorkin-chieftan.gltf.md5 +1 -0
  124. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-enforcer/baseColor.png +0 -0
  125. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-enforcer/gorkin-enforcer-named-nodes.bin +0 -0
  126. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-enforcer/gorkin-enforcer-named-nodes.gltf +4086 -0
  127. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-enforcer/gorkin-enforcer.bin +0 -0
  128. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-enforcer/gorkin-enforcer.gltf +3472 -0
  129. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-enforcer/gorkin-enforcer.gltf.md5 +1 -0
  130. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-grunt/baseColor.png +0 -0
  131. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-grunt/gorkin-grunt-named-nodes.bin +0 -0
  132. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-grunt/gorkin-grunt-named-nodes.gltf +3698 -0
  133. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-grunt/gorkin-grunt.bin +0 -0
  134. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-grunt/gorkin-grunt.gltf +3193 -0
  135. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-grunt/gorkin-grunt.gltf.md5 +1 -0
  136. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-hunter/baseColor.png +0 -0
  137. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-hunter/gorkin-hunter-named-nodes.bin +0 -0
  138. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-hunter/gorkin-hunter-named-nodes.gltf +3985 -0
  139. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-hunter/gorkin-hunter.bin +0 -0
  140. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-hunter/gorkin-hunter.gltf +3092 -0
  141. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-hunter/gorkin-hunter.gltf.md5 +1 -0
  142. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-shaman/baseColor.png +0 -0
  143. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-shaman/gorkin-shaman-named-nodes.bin +0 -0
  144. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-shaman/gorkin-shaman-named-nodes.gltf +3850 -0
  145. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-shaman/gorkin-shaman.bin +0 -0
  146. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-shaman/gorkin-shaman.gltf +3100 -0
  147. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-shaman/gorkin-shaman.gltf.md5 +1 -0
  148. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-swordsman/baseColor.png +0 -0
  149. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-swordsman/gorkin-swordsman-named-nodes.bin +0 -0
  150. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-swordsman/gorkin-swordsman-named-nodes.gltf +4087 -0
  151. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-swordsman/gorkin-swordsman.bin +0 -0
  152. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-swordsman/gorkin-swordsman.gltf +3582 -0
  153. package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-swordsman/gorkin-swordsman.gltf.md5 +1 -0
  154. package/frontiers-rpg-game/assets/models/enemies/.optimized/mother-viper/baseColor.png +0 -0
  155. package/frontiers-rpg-game/assets/models/enemies/.optimized/mother-viper/mother-viper-named-nodes.bin +0 -0
  156. package/frontiers-rpg-game/assets/models/enemies/.optimized/mother-viper/mother-viper-named-nodes.gltf +4212 -0
  157. package/frontiers-rpg-game/assets/models/enemies/.optimized/mother-viper/mother-viper.bin +0 -0
  158. package/frontiers-rpg-game/assets/models/enemies/.optimized/mother-viper/mother-viper.gltf +3993 -0
  159. package/frontiers-rpg-game/assets/models/enemies/.optimized/mother-viper/mother-viper.gltf.md5 +1 -0
  160. package/frontiers-rpg-game/assets/models/enemies/.optimized/reclusive-weaver/baseColor.png +0 -0
  161. package/frontiers-rpg-game/assets/models/enemies/.optimized/reclusive-weaver/reclusive-weaver-named-nodes.bin +0 -0
  162. package/frontiers-rpg-game/assets/models/enemies/.optimized/reclusive-weaver/reclusive-weaver-named-nodes.gltf +7978 -0
  163. package/frontiers-rpg-game/assets/models/enemies/.optimized/reclusive-weaver/reclusive-weaver.bin +0 -0
  164. package/frontiers-rpg-game/assets/models/enemies/.optimized/reclusive-weaver/reclusive-weaver.gltf +7978 -0
  165. package/frontiers-rpg-game/assets/models/enemies/.optimized/reclusive-weaver/reclusive-weaver.gltf.md5 +1 -0
  166. package/frontiers-rpg-game/assets/models/enemies/.optimized/sickly-capfolk/baseColor.png +0 -0
  167. package/frontiers-rpg-game/assets/models/enemies/.optimized/sickly-capfolk/sickly-capfolk-named-nodes.bin +0 -0
  168. package/frontiers-rpg-game/assets/models/enemies/.optimized/sickly-capfolk/sickly-capfolk-named-nodes.gltf +1708 -0
  169. package/frontiers-rpg-game/assets/models/enemies/.optimized/sickly-capfolk/sickly-capfolk.bin +0 -0
  170. package/frontiers-rpg-game/assets/models/enemies/.optimized/sickly-capfolk/sickly-capfolk.gltf +1667 -0
  171. package/frontiers-rpg-game/assets/models/enemies/.optimized/sickly-capfolk/sickly-capfolk.gltf.md5 +1 -0
  172. package/frontiers-rpg-game/assets/models/enemies/.optimized/snapjaw/baseColor.png +0 -0
  173. package/frontiers-rpg-game/assets/models/enemies/.optimized/snapjaw/snapjaw-named-nodes.bin +0 -0
  174. package/frontiers-rpg-game/assets/models/enemies/.optimized/snapjaw/snapjaw-named-nodes.gltf +12107 -0
  175. package/frontiers-rpg-game/assets/models/enemies/.optimized/snapjaw/snapjaw.bin +0 -0
  176. package/frontiers-rpg-game/assets/models/enemies/.optimized/snapjaw/snapjaw.gltf +9663 -0
  177. package/frontiers-rpg-game/assets/models/enemies/.optimized/snapjaw/snapjaw.gltf.md5 +1 -0
  178. package/frontiers-rpg-game/assets/models/enemies/.optimized/toxic-frog/baseColor.png +0 -0
  179. package/frontiers-rpg-game/assets/models/enemies/.optimized/toxic-frog/toxic-frog-named-nodes.bin +0 -0
  180. package/frontiers-rpg-game/assets/models/enemies/.optimized/toxic-frog/toxic-frog-named-nodes.gltf +5550 -0
  181. package/frontiers-rpg-game/assets/models/enemies/.optimized/toxic-frog/toxic-frog.bin +0 -0
  182. package/frontiers-rpg-game/assets/models/enemies/.optimized/toxic-frog/toxic-frog.gltf +5550 -0
  183. package/frontiers-rpg-game/assets/models/enemies/.optimized/toxic-frog/toxic-frog.gltf.md5 +1 -0
  184. package/frontiers-rpg-game/assets/models/enemies/angler.gltf +1 -0
  185. package/frontiers-rpg-game/assets/models/enemies/blight-knight-ceres.gltf +1 -0
  186. package/frontiers-rpg-game/assets/models/enemies/blighted-capfolk.gltf +1 -0
  187. package/frontiers-rpg-game/assets/models/enemies/capfolk-guardian.gltf +1 -0
  188. package/frontiers-rpg-game/assets/models/enemies/gorkin-chieftan.gltf +1 -0
  189. package/frontiers-rpg-game/assets/models/enemies/gorkin-enforcer.gltf +1 -0
  190. package/frontiers-rpg-game/assets/models/enemies/gorkin-grunt.gltf +1 -0
  191. package/frontiers-rpg-game/assets/models/enemies/gorkin-hunter.gltf +1 -0
  192. package/frontiers-rpg-game/assets/models/enemies/gorkin-shaman.gltf +1 -0
  193. package/frontiers-rpg-game/assets/models/enemies/gorkin-swordsman.gltf +1 -0
  194. package/frontiers-rpg-game/assets/models/enemies/reclusive-weaver.gltf +1 -0
  195. package/frontiers-rpg-game/assets/models/enemies/sickly-capfolk.gltf +1 -0
  196. package/frontiers-rpg-game/assets/models/enemies/snapjaw.gltf +1 -0
  197. package/frontiers-rpg-game/assets/models/enemies/toxic-frog.gltf +1 -0
  198. package/frontiers-rpg-game/assets/models/environment/.optimized/banner-hytopia-1/banner-hytopia-1-named-nodes.bin +0 -0
  199. package/frontiers-rpg-game/assets/models/environment/.optimized/banner-hytopia-1/banner-hytopia-1-named-nodes.gltf +260 -0
  200. package/frontiers-rpg-game/assets/models/environment/.optimized/banner-hytopia-1/banner-hytopia-1.bin +0 -0
  201. package/frontiers-rpg-game/assets/models/environment/.optimized/banner-hytopia-1/banner-hytopia-1.gltf +136 -0
  202. package/frontiers-rpg-game/assets/models/environment/.optimized/banner-hytopia-1/banner-hytopia-1.gltf.md5 +1 -0
  203. package/frontiers-rpg-game/assets/models/environment/.optimized/banner-hytopia-1/baseColor.png +0 -0
  204. package/frontiers-rpg-game/assets/models/environment/.optimized/bookshelf/baseColor.png +0 -0
  205. package/frontiers-rpg-game/assets/models/environment/.optimized/bookshelf/bookshelf-named-nodes.bin +0 -0
  206. package/frontiers-rpg-game/assets/models/environment/.optimized/bookshelf/bookshelf-named-nodes.gltf +882 -0
  207. package/frontiers-rpg-game/assets/models/environment/.optimized/bookshelf/bookshelf.bin +0 -0
  208. package/frontiers-rpg-game/assets/models/environment/.optimized/bookshelf/bookshelf.gltf +136 -0
  209. package/frontiers-rpg-game/assets/models/environment/.optimized/bookshelf/bookshelf.gltf.md5 +1 -0
  210. package/frontiers-rpg-game/assets/models/environment/.optimized/training-dummy/baseColor.png +0 -0
  211. package/frontiers-rpg-game/assets/models/environment/.optimized/training-dummy/training-dummy-named-nodes.bin +0 -0
  212. package/frontiers-rpg-game/assets/models/environment/.optimized/training-dummy/training-dummy-named-nodes.gltf +1312 -0
  213. package/frontiers-rpg-game/assets/models/environment/.optimized/training-dummy/training-dummy.bin +0 -0
  214. package/frontiers-rpg-game/assets/models/environment/.optimized/training-dummy/training-dummy.gltf +1006 -0
  215. package/frontiers-rpg-game/assets/models/environment/.optimized/training-dummy/training-dummy.gltf.md5 +1 -0
  216. package/frontiers-rpg-game/assets/models/environment/.optimized/weapon-rack/baseColor_1.png +0 -0
  217. package/frontiers-rpg-game/assets/models/environment/.optimized/weapon-rack/baseColor_2.png +0 -0
  218. package/frontiers-rpg-game/assets/models/environment/.optimized/weapon-rack/baseColor_3.png +0 -0
  219. package/frontiers-rpg-game/assets/models/environment/.optimized/weapon-rack/baseColor_4.png +0 -0
  220. package/frontiers-rpg-game/assets/models/environment/.optimized/weapon-rack/weapon-rack-named-nodes.bin +0 -0
  221. package/frontiers-rpg-game/assets/models/environment/.optimized/weapon-rack/weapon-rack-named-nodes.gltf +909 -0
  222. package/frontiers-rpg-game/assets/models/environment/.optimized/weapon-rack/weapon-rack.bin +0 -0
  223. package/frontiers-rpg-game/assets/models/environment/.optimized/weapon-rack/weapon-rack.gltf +418 -0
  224. package/frontiers-rpg-game/assets/models/environment/.optimized/weapon-rack/weapon-rack.gltf.md5 +1 -0
  225. package/frontiers-rpg-game/assets/models/environment/banner-hytopia-1.gltf +1 -0
  226. package/frontiers-rpg-game/assets/models/environment/bookshelf.gltf +1 -0
  227. package/frontiers-rpg-game/assets/models/environment/training-dummy.gltf +1 -0
  228. package/frontiers-rpg-game/assets/models/environment/weapon-rack.gltf +1 -0
  229. package/frontiers-rpg-game/assets/models/forageables/.optimized/abandoned-crate/abandoned-crate-named-nodes.bin +0 -0
  230. package/frontiers-rpg-game/assets/models/forageables/.optimized/abandoned-crate/abandoned-crate-named-nodes.gltf +724 -0
  231. package/frontiers-rpg-game/assets/models/forageables/.optimized/abandoned-crate/abandoned-crate.bin +0 -0
  232. package/frontiers-rpg-game/assets/models/forageables/.optimized/abandoned-crate/abandoned-crate.gltf +131 -0
  233. package/frontiers-rpg-game/assets/models/forageables/.optimized/abandoned-crate/abandoned-crate.gltf.md5 +1 -0
  234. package/frontiers-rpg-game/assets/models/forageables/.optimized/abandoned-crate/baseColor.png +0 -0
  235. package/frontiers-rpg-game/assets/models/forageables/.optimized/weathered-stump/baseColor.png +0 -0
  236. package/frontiers-rpg-game/assets/models/forageables/.optimized/weathered-stump/weathered-stump-named-nodes.bin +0 -0
  237. package/frontiers-rpg-game/assets/models/forageables/.optimized/weathered-stump/weathered-stump-named-nodes.gltf +521 -0
  238. package/frontiers-rpg-game/assets/models/forageables/.optimized/weathered-stump/weathered-stump.bin +0 -0
  239. package/frontiers-rpg-game/assets/models/forageables/.optimized/weathered-stump/weathered-stump.gltf +136 -0
  240. package/frontiers-rpg-game/assets/models/forageables/.optimized/weathered-stump/weathered-stump.gltf.md5 +1 -0
  241. package/frontiers-rpg-game/assets/models/forageables/abandoned-crate.gltf +1 -0
  242. package/frontiers-rpg-game/assets/models/forageables/weathered-stump.gltf +1 -0
  243. package/frontiers-rpg-game/assets/models/mounts/.optimized/woolran/baseColor.png +0 -0
  244. package/frontiers-rpg-game/assets/models/mounts/.optimized/woolran/woolran-named-nodes.bin +0 -0
  245. package/frontiers-rpg-game/assets/models/mounts/.optimized/woolran/woolran-named-nodes.gltf +6889 -0
  246. package/frontiers-rpg-game/assets/models/mounts/.optimized/woolran/woolran.bin +0 -0
  247. package/frontiers-rpg-game/assets/models/mounts/.optimized/woolran/woolran.gltf +4486 -0
  248. package/frontiers-rpg-game/assets/models/mounts/.optimized/woolran/woolran.gltf.md5 +1 -0
  249. package/frontiers-rpg-game/assets/models/mounts/woolran.gltf +1 -0
  250. package/frontiers-rpg-game/assets/models/npcs/.optimized/gravekeeper/baseColor.png +0 -0
  251. package/frontiers-rpg-game/assets/models/npcs/.optimized/gravekeeper/gravekeeper-named-nodes.bin +0 -0
  252. package/frontiers-rpg-game/assets/models/npcs/.optimized/gravekeeper/gravekeeper-named-nodes.gltf +3049 -0
  253. package/frontiers-rpg-game/assets/models/npcs/.optimized/gravekeeper/gravekeeper.bin +0 -0
  254. package/frontiers-rpg-game/assets/models/npcs/.optimized/gravekeeper/gravekeeper.gltf +1647 -0
  255. package/frontiers-rpg-game/assets/models/npcs/.optimized/gravekeeper/gravekeeper.gltf.md5 +1 -0
  256. package/frontiers-rpg-game/assets/models/npcs/.optimized/herder/baseColor.png +0 -0
  257. package/frontiers-rpg-game/assets/models/npcs/.optimized/herder/herder-named-nodes.bin +0 -0
  258. package/frontiers-rpg-game/assets/models/npcs/.optimized/herder/herder-named-nodes.gltf +3259 -0
  259. package/frontiers-rpg-game/assets/models/npcs/.optimized/herder/herder.bin +0 -0
  260. package/frontiers-rpg-game/assets/models/npcs/.optimized/herder/herder.gltf +1615 -0
  261. package/frontiers-rpg-game/assets/models/npcs/.optimized/herder/herder.gltf.md5 +1 -0
  262. package/frontiers-rpg-game/assets/models/players/.optimized/player/player-named-nodes.bin +0 -0
  263. package/frontiers-rpg-game/assets/models/players/.optimized/player/player-named-nodes.gltf +7802 -6249
  264. package/frontiers-rpg-game/assets/models/players/.optimized/player/player.bin +0 -0
  265. package/frontiers-rpg-game/assets/models/players/.optimized/player/player.gltf +7046 -5480
  266. package/frontiers-rpg-game/assets/models/players/.optimized/player/player.gltf.md5 +1 -1
  267. package/frontiers-rpg-game/assets/models/players/player.gltf +1 -1
  268. package/frontiers-rpg-game/assets/models/weapons/.optimized/chieftan-blade/baseColor.png +0 -0
  269. package/frontiers-rpg-game/assets/models/weapons/.optimized/chieftan-blade/chieftan-blade-named-nodes.bin +0 -0
  270. package/frontiers-rpg-game/assets/models/weapons/.optimized/chieftan-blade/chieftan-blade-named-nodes.gltf +726 -0
  271. package/frontiers-rpg-game/assets/models/weapons/.optimized/chieftan-blade/chieftan-blade.bin +0 -0
  272. package/frontiers-rpg-game/assets/models/weapons/.optimized/chieftan-blade/chieftan-blade.gltf +335 -0
  273. package/frontiers-rpg-game/assets/models/weapons/.optimized/chieftan-blade/chieftan-blade.gltf.md5 +1 -0
  274. package/frontiers-rpg-game/assets/models/weapons/chieftan-blade.gltf +1 -0
  275. package/frontiers-rpg-game/assets/particles/dirt.png +0 -0
  276. package/frontiers-rpg-game/assets/ui/index.html +50 -7
  277. package/frontiers-rpg-game/assets/ui/menus/dialogue.html +30 -4
  278. package/frontiers-rpg-game/assets/ui/shared/item-stats.html +1 -1
  279. package/frontiers-rpg-game/assets/ui/shared/item-tooltips.html +19 -2
  280. package/frontiers-rpg-game/src/GameClock.ts +14 -0
  281. package/frontiers-rpg-game/src/GameManager.ts +1 -4
  282. package/frontiers-rpg-game/src/GameRegion.ts +6 -2
  283. package/frontiers-rpg-game/src/entities/BaseCombatEntity.ts +58 -26
  284. package/frontiers-rpg-game/src/entities/BaseEntity.ts +10 -3
  285. package/frontiers-rpg-game/src/entities/enemies/GorkinChieftanEntity.ts +190 -0
  286. package/frontiers-rpg-game/src/entities/enemies/GorkinEnforcerEntity.ts +87 -0
  287. package/frontiers-rpg-game/src/entities/enemies/GorkinGruntEntity.ts +113 -0
  288. package/frontiers-rpg-game/src/entities/enemies/GorkinHunterEntity.ts +90 -0
  289. package/frontiers-rpg-game/src/entities/enemies/GorkinShamanEntity.ts +154 -0
  290. package/frontiers-rpg-game/src/entities/enemies/GorkinSwordsmanEntity.ts +121 -0
  291. package/frontiers-rpg-game/src/entities/enemies/QueenWeaverEntity.ts +8 -0
  292. package/frontiers-rpg-game/src/entities/enemies/RatkinBruteEntity.ts +14 -0
  293. package/frontiers-rpg-game/src/entities/enemies/RatkinRangerEntity.ts +8 -0
  294. package/frontiers-rpg-game/src/entities/enemies/RatkinSpellcasterEntity.ts +8 -0
  295. package/frontiers-rpg-game/src/entities/enemies/RatkinWarriorEntity.ts +12 -0
  296. package/frontiers-rpg-game/src/entities/enemies/ReclusiveWeaverEntity.ts +119 -0
  297. package/frontiers-rpg-game/src/entities/{environmental → enemies}/SpiderWebEntity.ts +14 -8
  298. package/frontiers-rpg-game/src/entities/enemies/TaintedRatkinBruteEntity.ts +6 -0
  299. package/frontiers-rpg-game/src/entities/enemies/TaintedRatkinWarriorEntity.ts +4 -0
  300. package/frontiers-rpg-game/src/entities/enemies/WeaverBroodlingEntity.ts +5 -1
  301. package/frontiers-rpg-game/src/entities/forageables/AbandonedCrateEntity.ts +57 -0
  302. package/frontiers-rpg-game/src/entities/forageables/WeatheredStumpEntity.ts +37 -0
  303. package/frontiers-rpg-game/src/entities/npcs/WoolranEntity.ts +26 -0
  304. package/frontiers-rpg-game/src/items/ItemClasses.ts +45 -1
  305. package/frontiers-rpg-game/src/items/ItemUIDataHelper.ts +3 -1
  306. package/frontiers-rpg-game/src/items/consumables/HealingPotionItem.ts +20 -0
  307. package/frontiers-rpg-game/src/items/materials/GoldIngotItem.ts +11 -0
  308. package/frontiers-rpg-game/src/items/materials/GorkinEarItem.ts +10 -0
  309. package/frontiers-rpg-game/src/items/materials/GorkinEyeItem.ts +10 -0
  310. package/frontiers-rpg-game/src/items/materials/GorkinFootItem.ts +10 -0
  311. package/frontiers-rpg-game/src/items/materials/GorkinHandItem.ts +10 -0
  312. package/frontiers-rpg-game/src/items/materials/GorkinSkullItem.ts +10 -0
  313. package/frontiers-rpg-game/src/items/materials/IronIngotItem.ts +11 -0
  314. package/frontiers-rpg-game/src/items/materials/ShackleItem.ts +10 -0
  315. package/frontiers-rpg-game/src/items/materials/ShatteredSwordItem.ts +10 -0
  316. package/frontiers-rpg-game/src/items/materials/SilverSlabItem.ts +11 -0
  317. package/frontiers-rpg-game/src/items/materials/ToughMonsterHide.ts +10 -0
  318. package/frontiers-rpg-game/src/items/materials/WeaverCarapaceItem.ts +11 -0
  319. package/frontiers-rpg-game/src/items/materials/WeaverEggItem.ts +11 -0
  320. package/frontiers-rpg-game/src/items/materials/WeaverHeartItem.ts +10 -0
  321. package/frontiers-rpg-game/src/items/materials/WeaverSilkItem.ts +10 -0
  322. package/frontiers-rpg-game/src/items/weapons/ChieftanBladeItem.ts +70 -0
  323. package/frontiers-rpg-game/src/items/wearables/IronChestplateItem.ts +15 -0
  324. package/frontiers-rpg-game/src/items/wearables/IronGauntletsItem.ts +14 -0
  325. package/frontiers-rpg-game/src/items/wearables/IronGrievesItem.ts +14 -0
  326. package/frontiers-rpg-game/src/items/wearables/IronHelmetItem.ts +15 -0
  327. package/frontiers-rpg-game/src/items/wearables/IronLeggingsItem.ts +15 -0
  328. package/frontiers-rpg-game/src/quests/QuestClasses.ts +6 -0
  329. package/frontiers-rpg-game/src/quests/main/AncientWisdomQuest.ts +125 -0
  330. package/frontiers-rpg-game/src/quests/main/BlightedHarvestQuest.ts +27 -5
  331. package/frontiers-rpg-game/src/quests/side/SkullTrinketsQuest.ts +202 -0
  332. package/frontiers-rpg-game/src/quests/side/WeaverSquashingQuest.ts +128 -0
  333. package/frontiers-rpg-game/src/regions/chitter-forest/ChitterForestRegion.ts +25 -0
  334. package/frontiers-rpg-game/src/regions/hearthwilds/HearthwildsRegion.ts +175 -4
  335. package/frontiers-rpg-game/src/regions/hearthwilds/npcs/ArchivesBookshelf1Entity.ts +136 -0
  336. package/frontiers-rpg-game/src/regions/hearthwilds/npcs/ArchivesBookshelf2Entity.ts +136 -0
  337. package/frontiers-rpg-game/src/regions/hearthwilds/npcs/GravekeeperArdenEntity.ts +48 -0
  338. package/frontiers-rpg-game/src/regions/hearthwilds/npcs/HerderBorisEntity.ts +61 -0
  339. package/frontiers-rpg-game/src/regions/hearthwilds/npcs/MerchantFonnEntity.ts +62 -0
  340. package/frontiers-rpg-game/src/regions/hearthwilds/npcs/SurvivorMycelEntity.ts +62 -0
  341. package/frontiers-rpg-game/src/regions/ratkin-nest/RatkinNestRegion.ts +3 -0
  342. package/frontiers-rpg-game/src/regions/stalkhaven/npcs/BlacksmithArdenEntity.ts +116 -5
  343. package/frontiers-rpg-game/src/regions/weavers-hollow/WeaversHollowRegion.ts +1 -1
  344. package/frontiers-rpg-game/src/systems/Spawner.ts +9 -1
  345. package/package.json +1 -1
  346. /package/frontiers-rpg-game/assets/models/npcs/{auctioneer.gltf → gravekeeper.gltf} +0 -0
  347. /package/frontiers-rpg-game/assets/models/npcs/{lumberjack.gltf → herder.gltf} +0 -0
@@ -1,25 +1,30 @@
1
1
  import { Collider, CollisionGroup, Entity, ModelEntityOptions, RigidBodyType } from 'hytopia';
2
+ import BaseEntity from '../BaseEntity';
2
3
  import GamePlayerEntity from '../../GamePlayerEntity';
4
+ import type { BaseEntityOptions } from '../BaseEntity';
3
5
 
4
6
  export type SpiderWebEntityOptions = {
5
7
 
6
- } & ModelEntityOptions;
8
+ } & BaseEntityOptions;
7
9
 
8
- export default class SpiderWebEntity extends Entity {
10
+ export default class SpiderWebEntity extends BaseEntity {
9
11
  public constructor(options?: SpiderWebEntityOptions) {
10
12
  const modelScale = options?.modelScale ?? Math.random() * 1.5 + 0.5; // 0.5 to 2 scale
11
13
  const colliderOptions = Collider.optionsFromModelUri('models/vfx/spider-web.gltf', modelScale);
12
14
 
13
15
  super({
14
16
  ...options,
17
+ health: 100,
15
18
  modelUri: 'models/vfx/spider-web.gltf',
16
19
  modelScale,
20
+ name: 'Spider Web',
17
21
  rigidBodyOptions: {
18
22
  type: RigidBodyType.DYNAMIC,
19
23
  colliders: [
20
24
  { // Collider for ground contact
21
25
  ...colliderOptions,
22
26
  bounciness: 0,
27
+ friction: 1000,
23
28
  collisionGroups: {
24
29
  belongsTo: [ CollisionGroup.ENTITY ],
25
30
  collidesWith: [ CollisionGroup.BLOCK ],
@@ -37,16 +42,17 @@ export default class SpiderWebEntity extends Entity {
37
42
 
38
43
  if (started) {
39
44
  entity.setGravityScale(2);
40
- entity.playerController.walkVelocity = entity.playerController.walkVelocity * 0.5;
41
- entity.playerController.runVelocity = entity.playerController.runVelocity * 0.5;
45
+ entity.playerController.walkVelocity = entity.playerController.walkVelocity * 0.25;
46
+ entity.playerController.runVelocity = entity.playerController.runVelocity * 0.25;
42
47
  } else {
43
48
  entity.setGravityScale(1);
44
- entity.playerController.walkVelocity = entity.playerController.walkVelocity * 2;
45
- entity.playerController.runVelocity = entity.playerController.runVelocity * 2;
49
+ entity.playerController.walkVelocity = entity.playerController.walkVelocity * 4;
50
+ entity.playerController.runVelocity = entity.playerController.runVelocity * 4;
46
51
  }
47
52
  }
48
- }
49
- ]
53
+ },
54
+ ],
55
+ ...options?.rigidBodyOptions,
50
56
  }
51
57
  });
52
58
  }
@@ -28,6 +28,8 @@ export default class TaintedRatkinBruteEntity extends BaseCombatEntity {
28
28
  simpleAttackDamageVariance: 0.6, // ±60% damage
29
29
  simpleAttackDamageDelayMs: 1000, // Deal damage 1000ms into animation
30
30
  simpleAttackReach: 3,
31
+ stopAllAnimationForMs: 2000,
32
+ stopMovingForDurationMs: 2000,
31
33
  weight: 1,
32
34
  },
33
35
  { // Light hammer swing attack
@@ -38,6 +40,8 @@ export default class TaintedRatkinBruteEntity extends BaseCombatEntity {
38
40
  simpleAttackDamageVariance: 0.15, // ±15% damage
39
41
  simpleAttackDamageDelayMs: 500, // Deal damage 500ms into animation
40
42
  simpleAttackReach: 3,
43
+ stopAllAnimationForMs: 800,
44
+ stopMovingForDurationMs: 800,
41
45
  weight: 2,
42
46
  },
43
47
  { // Light hammer swing 2 attack
@@ -48,6 +52,8 @@ export default class TaintedRatkinBruteEntity extends BaseCombatEntity {
48
52
  simpleAttackDamageVariance: 0.15, // ±15% damage
49
53
  simpleAttackDamageDelayMs: 350, // Deal damage 350ms into animation
50
54
  simpleAttackReach: 3,
55
+ stopAllAnimationForMs: 1000,
56
+ stopMovingForDurationMs: 1000,
51
57
  weight: 2,
52
58
  },
53
59
  ],
@@ -28,6 +28,8 @@ export default class TaintedRatkinWarriorEntity extends BaseCombatEntity {
28
28
  simpleAttackDamageVariance: 0.4, // ±40% damage (15-35)
29
29
  simpleAttackDamageDelayMs: 1000, // Deal damage 1000ms into animation
30
30
  simpleAttackReach: 3,
31
+ stopAllAnimationForMs: 2000,
32
+ stopMovingForDurationMs: 2000,
31
33
  weight: 1,
32
34
  },
33
35
  { // Light attack
@@ -38,6 +40,8 @@ export default class TaintedRatkinWarriorEntity extends BaseCombatEntity {
38
40
  simpleAttackDamageVariance: 0.1, // ±10% damage (9-11)
39
41
  simpleAttackDamageDelayMs: 400, // Deal damage 400ms into animation
40
42
  simpleAttackReach: 3,
43
+ stopAllAnimationForMs: 1000,
44
+ stopMovingForDurationMs: 1000,
41
45
  weight: 2,
42
46
  },
43
47
  ],
@@ -2,6 +2,8 @@ import BaseCombatEntity, { BaseCombatEntityOptions } from "../BaseCombatEntity";
2
2
 
3
3
  // Drops
4
4
  import GoldItem from "../../items/general/GoldItem";
5
+ import WeaverCarapaceItem from "../../items/materials/WeaverCarapaceItem";
6
+ import WeaverHeartItem from "../../items/materials/WeaverHeartItem";
5
7
 
6
8
  export type WeaverBroodlingEntityOptions = {
7
9
 
@@ -27,7 +29,9 @@ export default class WeaverBroodlingEntity extends BaseCombatEntity {
27
29
  deathAnimations: [ 'death' ],
28
30
  deathDespawnDelayMs: 1000,
29
31
  deathItemDrops: [
30
- { itemClass: GoldItem, minQuantity: 16, maxQuantity: 24, weight: 2 },
32
+ { itemClass: GoldItem, minQuantity: 16, maxQuantity: 24, weight: 7 },
33
+ { itemClass: WeaverCarapaceItem, weight: 2 },
34
+ { itemClass: WeaverHeartItem, weight: 1 },
31
35
  ],
32
36
  health: 140,
33
37
  idleAnimations: [ 'idle' ],
@@ -0,0 +1,57 @@
1
+ import BaseForageableEntity, { BaseForageableEntityOptions } from '../BaseForageableEntity';
2
+
3
+ // Forageable Items
4
+ import CookedDrumstickItem from '../../items/consumables/CookedDrumstickItem';
5
+ import CookedMeatItem from '../../items/consumables/CookedMeatItem';
6
+ import CookedMeatSkewerItem from '../../items/consumables/CookedMeatSkewerItem';
7
+ import CommonSeedsItem from '../../items/seeds/CommonSeedsItem';
8
+ import GoldItem from '../../items/general/GoldItem';
9
+ import GoldIngotItem from '../../items/materials/GoldIngotItem';
10
+ import IronIngotItem from '../../items/materials/IronIngotItem';
11
+ import LeatherBootsItem from '../../items/wearables/LeatherBootsItem';
12
+ import LeatherBracersItem from '../../items/wearables/LeatherBracersItem';
13
+ import LeatherHelmetItem from '../../items/wearables/LeatherHelmetItem';
14
+ import LeatherLeggingsItem from '../../items/wearables/LeatherLeggingsItem';
15
+ import LeatherVestItem from '../../items/wearables/LeatherVestItem';
16
+ import HealingPotionItem from '../../items/consumables/HealingPotionItem';
17
+ import MinorHealingPotionItem from '../../items/consumables/MinorHealingPotionItem';
18
+ import RareSeedsItem from '../../items/seeds/RareSeedsItem';
19
+ import RawHideItem from '../../items/materials/RawHideItem';
20
+ import ShackleItem from '../../items/materials/ShackleItem';
21
+
22
+ export type AbandonedCrateEntityOptions = {
23
+
24
+ } & BaseForageableEntityOptions;
25
+
26
+ export default class AbandonedCrateEntity extends BaseForageableEntity {
27
+ public constructor(options?: AbandonedCrateEntityOptions) {
28
+ super({
29
+ forageDurationMs: 2500,
30
+ itemDrops: [
31
+ { itemClass: CookedDrumstickItem, weight: 45, minQuantity: 1, maxQuantity: 3 },
32
+ { itemClass: CookedMeatItem, weight: 45, minQuantity: 1, maxQuantity: 3 },
33
+ { itemClass: CookedMeatSkewerItem, weight: 45, minQuantity: 1, maxQuantity: 3 },
34
+ { itemClass: MinorHealingPotionItem, weight: 45, minQuantity: 1, maxQuantity: 3 },
35
+ { itemClass: HealingPotionItem, weight: 45, minQuantity: 1, maxQuantity: 3 },
36
+ { itemClass: CommonSeedsItem, weight: 25 },
37
+ { itemClass: GoldItem, weight: 15, minQuantity: 10, maxQuantity: 100 },
38
+ { itemClass: RawHideItem, weight: 15, minQuantity: 1, maxQuantity: 3 },
39
+ { itemClass: ShackleItem, weight: 15, minQuantity: 1, maxQuantity: 3 },
40
+ { itemClass: IronIngotItem, weight: 10, minQuantity: 1, maxQuantity: 3 },
41
+ { itemClass: LeatherBootsItem, weight: 3, minQuantity: 1, maxQuantity: 3 },
42
+ { itemClass: LeatherBracersItem, weight: 3, minQuantity: 1, maxQuantity: 3 },
43
+ { itemClass: LeatherHelmetItem, weight: 3, minQuantity: 1, maxQuantity: 3 },
44
+ { itemClass: LeatherLeggingsItem, weight: 3, minQuantity: 1, maxQuantity: 3 },
45
+ { itemClass: LeatherVestItem, weight: 3, minQuantity: 1, maxQuantity: 3 },
46
+ { itemClass: RareSeedsItem, weight: 1, minQuantity: 1, maxQuantity: 3 },
47
+ { itemClass: GoldIngotItem, weight: 1, minQuantity: 1, maxQuantity: 1 },
48
+ ],
49
+ maxDropsPerForage: 3,
50
+ experienceReward: 25,
51
+ modelUri: 'models/forageables/abandoned-crate.gltf',
52
+ modelLoopedAnimations: [ 'idle' ],
53
+ name: 'Abandoned Crate',
54
+ ...options,
55
+ });
56
+ }
57
+ }
@@ -0,0 +1,37 @@
1
+ import BaseForageableEntity, { BaseForageableEntityOptions } from '../BaseForageableEntity';
2
+
3
+ // Forageable Items
4
+ import CommonMushroomItem from '../../items/consumables/CommonMushroomItem';
5
+ import CommonSeedsItem from '../../items/seeds/CommonSeedsItem';
6
+ import GoldItem from '../../items/general/GoldItem';
7
+ import SunsporeClusterMushroomItem from '../../items/consumables/SunsporeClusterMushroomItem';
8
+ import UnusualSeedsItem from '../../items/seeds/UnusualSeedsItem';
9
+ import WeaverEggItem from '../../items/materials/WeaverEggItem';
10
+ import WeaverSilkItem from '../../items/materials/WeaverSilkItem';
11
+
12
+ export type WeatheredStumpEntityOptions = {
13
+
14
+ } & BaseForageableEntityOptions;
15
+
16
+ export default class WeatheredStumpEntity extends BaseForageableEntity {
17
+ public constructor(options?: WeatheredStumpEntityOptions) {
18
+ super({
19
+ forageDurationMs: 2000,
20
+ itemDrops: [
21
+ { itemClass: CommonMushroomItem, weight: 20, minQuantity: 1, maxQuantity: 3 },
22
+ { itemClass: CommonSeedsItem, weight: 10 },
23
+ { itemClass: SunsporeClusterMushroomItem, weight: 5, minQuantity: 1, maxQuantity: 3 },
24
+ { itemClass: GoldItem, weight: 3, minQuantity: 13, maxQuantity: 24 },
25
+ { itemClass: WeaverEggItem, weight: 2, minQuantity: 1, maxQuantity: 1 },
26
+ { itemClass: WeaverSilkItem, weight: 2, minQuantity: 1, maxQuantity: 1 },
27
+ { itemClass: UnusualSeedsItem, weight: 2 },
28
+ ],
29
+ maxDropsPerForage: 3,
30
+ experienceReward: 18,
31
+ modelUri: 'models/forageables/weathered-stump.gltf',
32
+ modelLoopedAnimations: [ 'idle' ],
33
+ name: 'Weathered Stump',
34
+ ...options,
35
+ });
36
+ }
37
+ }
@@ -0,0 +1,26 @@
1
+ import { ColliderShape, RigidBodyType } from 'hytopia';
2
+ import BaseEntity, { BaseEntityOptions } from '../BaseEntity';
3
+
4
+ export default class WoolranEntity extends BaseEntity {
5
+ public constructor(options?: BaseEntityOptions) {
6
+ super({
7
+ idleAnimations: [ 'idle' ],
8
+ modelUri: 'models/mounts/woolran.gltf',
9
+ modelScale: 0.75,
10
+ moveAnimations: [ 'walk' ],
11
+ moveAnimationSpeed: 3,
12
+ moveSpeed: 2.5,
13
+ name: 'Woolran',
14
+ rigidBodyOptions: {
15
+ type: RigidBodyType.DYNAMIC,
16
+ colliders: [
17
+ {
18
+ shape: ColliderShape.BLOCK,
19
+ halfExtents: { x: 0.75, y: 0.9, z: 1.5 },
20
+ },
21
+ ],
22
+ },
23
+ ...options,
24
+ });
25
+ }
26
+ }
@@ -4,6 +4,7 @@ import CookedDrumstickItem from './consumables/CookedDrumstickItem';
4
4
  import CookedMeatItem from './consumables/CookedMeatItem';
5
5
  import CookedMeatSkewerItem from './consumables/CookedMeatSkewerItem';
6
6
  import EmbercapMushroomItem from './consumables/EmbercapMushroomItem';
7
+ import HealingPotionItem from './consumables/HealingPotionItem';
7
8
  import MinorHealingPotionItem from './consumables/MinorHealingPotionItem';
8
9
  import StonebellyFungusMushroomItem from './consumables/StonebellyFungusMushroomItem';
9
10
  import SunsporeClusterMushroomItem from './consumables/SunsporeClusterMushroomItem';
@@ -13,11 +14,26 @@ import GoldItem from './general/GoldItem';
13
14
 
14
15
  // Materials
15
16
  import BlightedRootItem from './materials/BlightedRootItem';
17
+ import GoldIngotItem from './materials/GoldIngotItem';
18
+ import GorkinEarItem from './materials/GorkinEarItem';
19
+ import GorkinEyeItem from './materials/GorkinEyeItem';
20
+ import GorkinFootItem from './materials/GorkinFootItem';
21
+ import GorkinHandItem from './materials/GorkinHandItem';
22
+ import GorkinSkullItem from './materials/GorkinSkullItem';
23
+ import IronIngotItem from './materials/IronIngotItem';
16
24
  import RawHideItem from './materials/RawHideItem';
17
25
  import RatkinBonesItem from './materials/RatkinBonesItem';
18
26
  import RatkinEyesItem from './materials/RatkinEyesItem';
19
27
  import RatkinTailItem from './materials/RatkinTailItem';
20
28
  import RatkinToothItem from './materials/RatkinToothItem';
29
+ import ShackleItem from './materials/ShackleItem';
30
+ import ShatteredSwordItem from './materials/ShatteredSwordItem';
31
+ import SilverSlabItem from './materials/SilverSlabItem';
32
+ import ToughMonsterHide from './materials/ToughMonsterHide';
33
+ import WeaverCarapaceItem from './materials/WeaverCarapaceItem';
34
+ import WeaverEggItem from './materials/WeaverEggItem';
35
+ import WeaverHeartItem from './materials/WeaverHeartItem';
36
+ import WeaverSilkItem from './materials/WeaverSilkItem';
21
37
 
22
38
  // Seeds
23
39
  import CommonSeedsItem from './seeds/CommonSeedsItem';
@@ -25,6 +41,7 @@ import RareSeedsItem from './seeds/RareSeedsItem';
25
41
  import UnusualSeedsItem from './seeds/UnusualSeedsItem';
26
42
 
27
43
  // Weapons
44
+ import ChieftanBladeItem from './weapons/ChieftanBladeItem';
28
45
  import DullSwordItem from './weapons/DullSwordItem';
29
46
  import IronDaggerItem from './weapons/IronDaggerItem';
30
47
  import IronLongSwordItem from './weapons/IronLongSwordItem';
@@ -37,6 +54,11 @@ import AdventurerGlovesItem from './wearables/AdventurerGlovesItem';
37
54
  import AdventurerHoodItem from './wearables/AdventurerHoodItem';
38
55
  import AdventurerLeggingsItem from './wearables/AdventurerLeggingsItem';
39
56
  import AdventurerTunicItem from './wearables/AdventurerTunicItem';
57
+ import IronChestplateItem from './wearables/IronChestplateItem';
58
+ import IronGauntletsItem from './wearables/IronGauntletsItem';
59
+ import IronGrievesItem from './wearables/IronGrievesItem';
60
+ import IronHelmetItem from './wearables/IronHelmetItem';
61
+ import IronLeggingsItem from './wearables/IronLeggingsItem';
40
62
  import LeatherBootsItem from './wearables/LeatherBootsItem';
41
63
  import LeatherBracersItem from './wearables/LeatherBracersItem';
42
64
  import LeatherHelmetItem from './wearables/LeatherHelmetItem';
@@ -50,6 +72,7 @@ export default [
50
72
  CookedMeatItem,
51
73
  CookedMeatSkewerItem,
52
74
  EmbercapMushroomItem,
75
+ HealingPotionItem,
53
76
  MinorHealingPotionItem,
54
77
  StonebellyFungusMushroomItem,
55
78
  SunsporeClusterMushroomItem,
@@ -59,11 +82,26 @@ export default [
59
82
 
60
83
  // Materials
61
84
  BlightedRootItem,
62
- RawHideItem,
85
+ GoldIngotItem,
86
+ GorkinEarItem,
87
+ GorkinEyeItem,
88
+ GorkinFootItem,
89
+ GorkinHandItem,
90
+ GorkinSkullItem,
91
+ IronIngotItem,
63
92
  RatkinBonesItem,
64
93
  RatkinEyesItem,
65
94
  RatkinTailItem,
66
95
  RatkinToothItem,
96
+ RawHideItem,
97
+ ShackleItem,
98
+ ShatteredSwordItem,
99
+ SilverSlabItem,
100
+ ToughMonsterHide,
101
+ WeaverCarapaceItem,
102
+ WeaverEggItem,
103
+ WeaverHeartItem,
104
+ WeaverSilkItem,
67
105
 
68
106
  // Seeds
69
107
  CommonSeedsItem,
@@ -71,6 +109,7 @@ export default [
71
109
  UnusualSeedsItem,
72
110
 
73
111
  // Weapons
112
+ ChieftanBladeItem,
74
113
  DullSwordItem,
75
114
  IronDaggerItem,
76
115
  IronLongSwordItem,
@@ -83,6 +122,11 @@ export default [
83
122
  AdventurerHoodItem,
84
123
  AdventurerLeggingsItem,
85
124
  AdventurerTunicItem,
125
+ IronChestplateItem,
126
+ IronGauntletsItem,
127
+ IronGrievesItem,
128
+ IronHelmetItem,
129
+ IronLeggingsItem,
86
130
  LeatherBootsItem,
87
131
  LeatherBracersItem,
88
132
  LeatherHelmetItem,
@@ -1,4 +1,4 @@
1
- import BaseItem from './BaseItem';
1
+ import BaseItem, { ItemRarity } from './BaseItem';
2
2
  import BaseWearableItem from './BaseWearableItem';
3
3
  import BaseWeaponItem from './BaseWeaponItem';
4
4
 
@@ -16,6 +16,7 @@ export type ItemUIData = {
16
16
  damage?: number;
17
17
  damageVariance?: number;
18
18
  position?: number;
19
+ rarity?: ItemRarity;
19
20
  statsHeader?: string;
20
21
  statTexts?: string[];
21
22
  type?: string; // UI update type
@@ -35,6 +36,7 @@ export class ItemUIDataHelper {
35
36
  name: itemInstanceOrClass.name,
36
37
  description: itemInstanceOrClass.description,
37
38
  iconImageUri: itemInstanceOrClass.iconImageUri,
39
+ rarity: itemInstanceOrClass.rarity,
38
40
  ...overrides,
39
41
  };
40
42
 
@@ -0,0 +1,20 @@
1
+ import BaseConsumableItem from '../BaseConsumableItem';
2
+ import type GamePlayerEntity from '../../GamePlayerEntity';
3
+
4
+ export default class HealingPotionItem extends BaseConsumableItem {
5
+ static readonly id = 'healing_potion';
6
+ static readonly name = 'Healing Potion';
7
+ static readonly iconImageUri = 'icons/items/healing-potion.png';
8
+ static readonly consumeCooldownMs = 2000;
9
+ static readonly description = `A common remedy used by Frontier travelers and novice adventurers.`;
10
+ static readonly buyPrice = 100;
11
+ static readonly sellPrice = 20;
12
+ static readonly stackable = true;
13
+ static readonly consumeRequiresDamaged = true;
14
+
15
+ static readonly statTexts = [ 'Heals 100hp' ];
16
+
17
+ protected override applyEffects(playerEntity: GamePlayerEntity): void {
18
+ playerEntity.gamePlayer.adjustHealth(100);
19
+ }
20
+ }
@@ -0,0 +1,11 @@
1
+ import BaseItem from '../BaseItem';
2
+
3
+ export default class GoldIngotItem extends BaseItem {
4
+ static readonly id = 'gold_ingot';
5
+ static readonly name = 'Gold Ingot';
6
+ static readonly iconImageUri = 'icons/items/gold-ingot.png';
7
+ static readonly description = 'An ingot of gold, ready for crafting.';
8
+ static readonly rarity = 'rare';
9
+ static readonly stackable = true;
10
+ static readonly sellPrice = 100;
11
+ }
@@ -0,0 +1,10 @@
1
+ import BaseItem from '../BaseItem';
2
+
3
+ export default class GorkinEarItem extends BaseItem {
4
+ static readonly id = 'gorkin_ear';
5
+ static readonly name = 'Gorkin Ear';
6
+ static readonly iconImageUri = 'icons/items/gorkin-ear.png';
7
+ static readonly description = `A gorkin's ear. It's still twitching.`;
8
+ static readonly stackable = true;
9
+ static readonly sellPrice = 13;
10
+ }
@@ -0,0 +1,10 @@
1
+ import BaseItem from '../BaseItem';
2
+
3
+ export default class GorkinEyeItem extends BaseItem {
4
+ static readonly id = 'gorkin_eye';
5
+ static readonly name = 'Gorkin Eye';
6
+ static readonly iconImageUri = 'icons/items/gorkin-eye.png';
7
+ static readonly description = `A gorkin's eye. Unusually small.`;
8
+ static readonly stackable = true;
9
+ static readonly sellPrice = 16;
10
+ }
@@ -0,0 +1,10 @@
1
+ import BaseItem from '../BaseItem';
2
+
3
+ export default class GorkinFootItem extends BaseItem {
4
+ static readonly id = 'gorkin_foot';
5
+ static readonly name = 'Gorkin Foot';
6
+ static readonly iconImageUri = 'icons/items/gorkin-foot.png';
7
+ static readonly description = `A gorkin's foot. Some use them as good luck charms!`;
8
+ static readonly stackable = true;
9
+ static readonly sellPrice = 19;
10
+ }
@@ -0,0 +1,10 @@
1
+ import BaseItem from '../BaseItem';
2
+
3
+ export default class GorkinHandItem extends BaseItem {
4
+ static readonly id = 'gorkin_hand';
5
+ static readonly name = 'Gorkin Hand';
6
+ static readonly iconImageUri = 'icons/items/gorkin-hand.png';
7
+ static readonly description = `A gorkin's hand. Green and cold.`;
8
+ static readonly stackable = true;
9
+ static readonly sellPrice = 16;
10
+ }
@@ -0,0 +1,10 @@
1
+ import BaseItem from '../BaseItem';
2
+
3
+ export default class GorkinSkullItem extends BaseItem {
4
+ static readonly id = 'gorkin_skull';
5
+ static readonly name = 'Gorkin Skull';
6
+ static readonly iconImageUri = 'icons/items/gorkin-skull.png';
7
+ static readonly description = `A gorkin's skull. Surprisingly dense, must be why they're so tough.`;
8
+ static readonly stackable = true;
9
+ static readonly sellPrice = 20;
10
+ }
@@ -0,0 +1,11 @@
1
+ import BaseItem from '../BaseItem';
2
+
3
+ export default class IronIngotItem extends BaseItem {
4
+ static readonly id = 'iron_ingot';
5
+ static readonly name = 'Iron Ingot';
6
+ static readonly iconImageUri = 'icons/items/iron-ingot.png';
7
+ static readonly description = 'An ingot of iron, ready for crafting.';
8
+ static readonly rarity = 'unusual';
9
+ static readonly stackable = true;
10
+ static readonly sellPrice = 50;
11
+ }
@@ -0,0 +1,10 @@
1
+ import BaseItem from '../BaseItem';
2
+
3
+ export default class ShackleItem extends BaseItem {
4
+ static readonly id = 'shackle';
5
+ static readonly name = 'Shackle';
6
+ static readonly iconImageUri = 'icons/items/shackle.png';
7
+ static readonly description = `A heavy metal shackle. Seems good for scrap metal.`;
8
+ static readonly stackable = true;
9
+ static readonly sellPrice = 14;
10
+ }
@@ -0,0 +1,10 @@
1
+ import BaseItem from '../BaseItem';
2
+
3
+ export default class ShatteredSwordItem extends BaseItem {
4
+ static readonly id = 'shattered_sword';
5
+ static readonly name = 'Shattered Sword';
6
+ static readonly iconImageUri = 'icons/items/shattered-sword.png';
7
+ static readonly description = `The remaining pieces of a sword. The shards are still sharp.`;
8
+ static readonly stackable = true;
9
+ static readonly sellPrice = 16;
10
+ }
@@ -0,0 +1,11 @@
1
+ import BaseItem from '../BaseItem';
2
+
3
+ export default class SilverSlabItem extends BaseItem {
4
+ static readonly id = 'silver_slab';
5
+ static readonly name = 'Silver Slab';
6
+ static readonly iconImageUri = 'icons/items/silver-slab.png';
7
+ static readonly description = 'A slab of silver, ready for crafting.';
8
+ static readonly rarity = 'unusual';
9
+ static readonly stackable = true;
10
+ static readonly sellPrice = 80;
11
+ }
@@ -0,0 +1,10 @@
1
+ import BaseItem from '../BaseItem';
2
+
3
+ export default class ToughMonsterHide extends BaseItem {
4
+ static readonly id = 'tough_monster_hide';
5
+ static readonly name = 'Tough Monster Hide';
6
+ static readonly iconImageUri = 'icons/items/tough-monster-hide.png';
7
+ static readonly description = 'Thick hide from a Frontier monster. Smells awful.';
8
+ static readonly stackable = true;
9
+ static readonly sellPrice = 25;
10
+ }
@@ -0,0 +1,11 @@
1
+ import BaseItem from '../BaseItem';
2
+
3
+ export default class WeaverCarapaceItem extends BaseItem {
4
+ static readonly id = 'weaver_carapace';
5
+ static readonly name = 'Weaver Carapace';
6
+ static readonly iconImageUri = 'icons/items/weaver-carapace.png';
7
+ static readonly description = 'A tough carapace from a Weaver. Hard like a rock.';
8
+ static readonly stackable = true;
9
+ static readonly buyPrice = 70;
10
+ static readonly sellPrice = 7;
11
+ }
@@ -0,0 +1,11 @@
1
+ import BaseItem from '../BaseItem';
2
+
3
+ export default class WeaverEggItem extends BaseItem {
4
+ static readonly id = 'weaver_egg';
5
+ static readonly name = 'Weaver Egg';
6
+ static readonly iconImageUri = 'icons/items/weaver-egg.png';
7
+ static readonly description = `An unhatched Weaver egg. Hopefully it doesn't hatch while carrying it...`;
8
+ static readonly stackable = true;
9
+ static readonly buyPrice = 120;
10
+ static readonly sellPrice = 12;
11
+ }
@@ -0,0 +1,10 @@
1
+ import BaseItem from '../BaseItem';
2
+
3
+ export default class WeaverHeartItem extends BaseItem {
4
+ static readonly id = 'weaver_heart';
5
+ static readonly name = 'Weaver Heart';
6
+ static readonly iconImageUri = 'icons/items/weaver-heart.png';
7
+ static readonly description = `Slimy Weaver's heart with 6 chambers. It's still beating.`;
8
+ static readonly stackable = true;
9
+ static readonly sellPrice = 15;
10
+ }
@@ -0,0 +1,10 @@
1
+ import BaseItem from '../BaseItem';
2
+
3
+ export default class WeaverSilkItem extends BaseItem {
4
+ static readonly id = 'weaver_silk';
5
+ static readonly name = 'Weaver Silk';
6
+ static readonly iconImageUri = 'icons/items/weaver-silk.png';
7
+ static readonly description = `Fine, strong Weaver silk. It glistens in the sunlight.`;
8
+ static readonly stackable = true;
9
+ static readonly sellPrice = 18;
10
+ }
@@ -0,0 +1,70 @@
1
+ import { Collider, ColliderShape, Quaternion } from 'hytopia';
2
+ import BaseWeaponItem, { BaseWeaponItemAttack } from '../BaseWeaponItem';
3
+
4
+ export default class ChieftanBladeItem extends BaseWeaponItem {
5
+ static readonly id = 'chieftan_blade';
6
+ static readonly name = 'Chieftan Blade';
7
+ static readonly iconImageUri = 'icons/items/chieftan-blade.png';
8
+ static readonly attack: BaseWeaponItemAttack = {
9
+ animations: ['sword-attack-upper', 'sword-attack-1'],
10
+ cooldownMs: 500,
11
+ damage: 35,
12
+ damageDelayMs: 200,
13
+ damageVariance: 0.25,
14
+ knockbackForce: 5,
15
+ reach: 2.5,
16
+ };
17
+
18
+ static readonly specialAttack: BaseWeaponItemAttack = {
19
+ id: 'spin',
20
+ animations: ['sword-attack-tornado'],
21
+ cooldownMs: 2500,
22
+ damage: 43,
23
+ damageDelayMs: 200,
24
+ damageVariance: 0.2,
25
+ knockbackForce: 9,
26
+ reach: 2,
27
+ };
28
+ static readonly description = `A pointed blade from a Gorkin Chieftan. It's almost too big to wield.`;
29
+ static readonly heldModelUri = 'models/weapons/chieftan-blade.gltf';
30
+ static readonly heldModelScale = 0.5;
31
+ static readonly rarity = 'rare';
32
+ static readonly defaultRelativeRotationAsChild = Quaternion.fromEuler(-90, 0, 0);
33
+ static readonly defaultRelativePositionAsChild = { x: 0, y: 0.1, z: 0 };
34
+ static readonly buyPrice = 1200;
35
+ static readonly sellPrice = 120;
36
+
37
+ protected override processAttackDamageTargets(attack: BaseWeaponItemAttack): void {
38
+ if (!this.entity?.parent) return;
39
+
40
+ if (attack.id === 'spin') {
41
+ const spinCollider = new Collider({
42
+ shape: ColliderShape.CYLINDER,
43
+ halfHeight: 0.75,
44
+ radius: attack.reach,
45
+ })
46
+
47
+ const targets = this.getTargetsByRawShapeIntersection(
48
+ spinCollider.rawShape,
49
+ this.entity.parent.position,
50
+ this.entity.parent.rotation,
51
+ );
52
+
53
+ for (const target of targets) {
54
+ const targetDirection = target.directionFromRotation;
55
+ this.dealDamage(
56
+ target,
57
+ this.calculateDamageWithVariance(attack.damage, attack.damageVariance),
58
+ {
59
+ x: -targetDirection.x,
60
+ y: targetDirection.y,
61
+ z: -targetDirection.z,
62
+ },
63
+ attack.knockbackForce
64
+ );
65
+ }
66
+ } else {
67
+ super.processAttackDamageTargets(attack);
68
+ }
69
+ }
70
+ }