@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.
- package/frontiers-rpg-game/assets/avatars/bookshelf.png +0 -0
- package/frontiers-rpg-game/assets/avatars/gravekeeper.png +0 -0
- package/frontiers-rpg-game/assets/avatars/herder.png +0 -0
- package/frontiers-rpg-game/assets/blocks/bricks.png +0 -0
- package/frontiers-rpg-game/assets/blocks/clay.png +0 -0
- package/frontiers-rpg-game/assets/blocks/coal-ore.png +0 -0
- package/frontiers-rpg-game/assets/blocks/cobblestone-mossy.png +0 -0
- package/frontiers-rpg-game/assets/blocks/cobblestone.png +0 -0
- package/frontiers-rpg-game/assets/blocks/creep.png +0 -0
- package/frontiers-rpg-game/assets/blocks/diamond-ore.png +0 -0
- package/frontiers-rpg-game/assets/blocks/emerald-block.png +0 -0
- package/frontiers-rpg-game/assets/blocks/emerald-ore.png +0 -0
- package/frontiers-rpg-game/assets/blocks/glass.png +0 -0
- package/frontiers-rpg-game/assets/blocks/gold-ore.png +0 -0
- package/frontiers-rpg-game/assets/blocks/green_fungus/+x.png +0 -0
- package/frontiers-rpg-game/assets/blocks/green_fungus/+y.png +0 -0
- package/frontiers-rpg-game/assets/blocks/green_fungus/+z.png +0 -0
- package/frontiers-rpg-game/assets/blocks/green_fungus/-x.png +0 -0
- package/frontiers-rpg-game/assets/blocks/green_fungus/-y.png +0 -0
- package/frontiers-rpg-game/assets/blocks/green_fungus/-z.png +0 -0
- package/frontiers-rpg-game/assets/blocks/log/+x.png +0 -0
- package/frontiers-rpg-game/assets/blocks/log/+y.png +0 -0
- package/frontiers-rpg-game/assets/blocks/log/+z.png +0 -0
- package/frontiers-rpg-game/assets/blocks/log/-x.png +0 -0
- package/frontiers-rpg-game/assets/blocks/log/-y.png +0 -0
- package/frontiers-rpg-game/assets/blocks/log/-z.png +0 -0
- package/frontiers-rpg-game/assets/blocks/mossy_dirt/+x.png +0 -0
- package/frontiers-rpg-game/assets/blocks/mossy_dirt/+y.png +0 -0
- package/frontiers-rpg-game/assets/blocks/mossy_dirt/+z.png +0 -0
- package/frontiers-rpg-game/assets/blocks/mossy_dirt/-x.png +0 -0
- package/frontiers-rpg-game/assets/blocks/mossy_dirt/-y.png +0 -0
- package/frontiers-rpg-game/assets/blocks/mossy_dirt/-z.png +0 -0
- package/frontiers-rpg-game/assets/blocks/murky-water.png +0 -0
- package/frontiers-rpg-game/assets/blocks/mushroom_top/+x.png +0 -0
- package/frontiers-rpg-game/assets/blocks/mushroom_top/+y.png +0 -0
- package/frontiers-rpg-game/assets/blocks/mushroom_top/+z.png +0 -0
- package/frontiers-rpg-game/assets/blocks/mushroom_top/-x.png +0 -0
- package/frontiers-rpg-game/assets/blocks/mushroom_top/-y.png +0 -0
- package/frontiers-rpg-game/assets/blocks/mushroom_top/-z.png +0 -0
- package/frontiers-rpg-game/assets/blocks/oak-planks-leafy.png +0 -0
- package/frontiers-rpg-game/assets/blocks/oak-planks-leafyer.png +0 -0
- package/frontiers-rpg-game/assets/blocks/oak-planks-leafyerer.png +0 -0
- package/frontiers-rpg-game/assets/blocks/sand.png +0 -0
- package/frontiers-rpg-game/assets/blocks/sandstone.png +0 -0
- package/frontiers-rpg-game/assets/blocks/shadowrock.png +0 -0
- package/frontiers-rpg-game/assets/blocks/snow-rough.png +0 -0
- package/frontiers-rpg-game/assets/blocks/snow.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/brittle-nails.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/chieftan-blade.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/gold-ingot.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/gorkin-ear.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/gorkin-eye.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/gorkin-foot.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/gorkin-hand.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/gorkin-skull.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/healing-potion.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/iron-chestplate.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/iron-gauntlets.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/iron-grieves.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/iron-helmet.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/iron-ingot.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/iron-leggings.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/shackle.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/shattered-sword.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/silver-slab.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/tough-monster-hide.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/weaver-carapace.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/weaver-egg.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/weaver-heart.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/weaver-silk.png +0 -0
- package/frontiers-rpg-game/assets/icons/items/woolran-scroll.png +0 -0
- package/frontiers-rpg-game/assets/maps/chitter-forest.json +5193 -5203
- package/frontiers-rpg-game/assets/maps/hearthwilds.json +21381 -2612
- package/frontiers-rpg-game/assets/models/enemies/.optimized/angler/angler-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/angler/angler-named-nodes.gltf +5472 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/angler/angler.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/angler/angler.gltf +4122 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/angler/angler.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/angler/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/blight-knight-ceres/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/blight-knight-ceres/blight-knight-ceres-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/blight-knight-ceres/blight-knight-ceres-named-nodes.gltf +17967 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/blight-knight-ceres/blight-knight-ceres.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/blight-knight-ceres/blight-knight-ceres.gltf +17403 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/blight-knight-ceres/blight-knight-ceres.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/blighted-capfolk/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/blighted-capfolk/blighted-capfolk-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/blighted-capfolk/blighted-capfolk-named-nodes.gltf +1658 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/blighted-capfolk/blighted-capfolk.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/blighted-capfolk/blighted-capfolk.gltf +1658 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/blighted-capfolk/blighted-capfolk.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/capfolk-guardian/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/capfolk-guardian/capfolk-guardian-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/capfolk-guardian/capfolk-guardian-named-nodes.gltf +9410 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/capfolk-guardian/capfolk-guardian.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/capfolk-guardian/capfolk-guardian.gltf +4261 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/capfolk-guardian/capfolk-guardian.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-archer/baseColor_1.png +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-archer/baseColor_2.png +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-archer/gorkin-archer-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-archer/gorkin-archer-named-nodes.gltf +6093 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-archer/gorkin-archer.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-archer/gorkin-archer.gltf +4430 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-archer/gorkin-archer.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-assassin/baseColor_1.png +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-assassin/baseColor_2.png +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-assassin/gorkin-assassin-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-assassin/gorkin-assassin-named-nodes.gltf +5441 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-assassin/gorkin-assassin.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-assassin/gorkin-assassin.gltf +4084 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-assassin/gorkin-assassin.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-blademaster/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-blademaster/gorkin-blademaster-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-blademaster/gorkin-blademaster-named-nodes.gltf +5302 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-blademaster/gorkin-blademaster.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-blademaster/gorkin-blademaster.gltf +4134 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-blademaster/gorkin-blademaster.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-chieftan/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-chieftan/gorkin-chieftan-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-chieftan/gorkin-chieftan-named-nodes.gltf +7052 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-chieftan/gorkin-chieftan.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-chieftan/gorkin-chieftan.gltf +5581 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-chieftan/gorkin-chieftan.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-enforcer/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-enforcer/gorkin-enforcer-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-enforcer/gorkin-enforcer-named-nodes.gltf +4086 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-enforcer/gorkin-enforcer.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-enforcer/gorkin-enforcer.gltf +3472 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-enforcer/gorkin-enforcer.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-grunt/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-grunt/gorkin-grunt-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-grunt/gorkin-grunt-named-nodes.gltf +3698 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-grunt/gorkin-grunt.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-grunt/gorkin-grunt.gltf +3193 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-grunt/gorkin-grunt.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-hunter/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-hunter/gorkin-hunter-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-hunter/gorkin-hunter-named-nodes.gltf +3985 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-hunter/gorkin-hunter.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-hunter/gorkin-hunter.gltf +3092 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-hunter/gorkin-hunter.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-shaman/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-shaman/gorkin-shaman-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-shaman/gorkin-shaman-named-nodes.gltf +3850 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-shaman/gorkin-shaman.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-shaman/gorkin-shaman.gltf +3100 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-shaman/gorkin-shaman.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-swordsman/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-swordsman/gorkin-swordsman-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-swordsman/gorkin-swordsman-named-nodes.gltf +4087 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-swordsman/gorkin-swordsman.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-swordsman/gorkin-swordsman.gltf +3582 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/gorkin-swordsman/gorkin-swordsman.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/mother-viper/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/mother-viper/mother-viper-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/mother-viper/mother-viper-named-nodes.gltf +4212 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/mother-viper/mother-viper.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/mother-viper/mother-viper.gltf +3993 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/mother-viper/mother-viper.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/reclusive-weaver/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/reclusive-weaver/reclusive-weaver-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/reclusive-weaver/reclusive-weaver-named-nodes.gltf +7978 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/reclusive-weaver/reclusive-weaver.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/reclusive-weaver/reclusive-weaver.gltf +7978 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/reclusive-weaver/reclusive-weaver.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/sickly-capfolk/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/sickly-capfolk/sickly-capfolk-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/sickly-capfolk/sickly-capfolk-named-nodes.gltf +1708 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/sickly-capfolk/sickly-capfolk.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/sickly-capfolk/sickly-capfolk.gltf +1667 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/sickly-capfolk/sickly-capfolk.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/snapjaw/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/snapjaw/snapjaw-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/snapjaw/snapjaw-named-nodes.gltf +12107 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/snapjaw/snapjaw.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/snapjaw/snapjaw.gltf +9663 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/snapjaw/snapjaw.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/toxic-frog/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/toxic-frog/toxic-frog-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/toxic-frog/toxic-frog-named-nodes.gltf +5550 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/toxic-frog/toxic-frog.bin +0 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/toxic-frog/toxic-frog.gltf +5550 -0
- package/frontiers-rpg-game/assets/models/enemies/.optimized/toxic-frog/toxic-frog.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/enemies/angler.gltf +1 -0
- package/frontiers-rpg-game/assets/models/enemies/blight-knight-ceres.gltf +1 -0
- package/frontiers-rpg-game/assets/models/enemies/blighted-capfolk.gltf +1 -0
- package/frontiers-rpg-game/assets/models/enemies/capfolk-guardian.gltf +1 -0
- package/frontiers-rpg-game/assets/models/enemies/gorkin-chieftan.gltf +1 -0
- package/frontiers-rpg-game/assets/models/enemies/gorkin-enforcer.gltf +1 -0
- package/frontiers-rpg-game/assets/models/enemies/gorkin-grunt.gltf +1 -0
- package/frontiers-rpg-game/assets/models/enemies/gorkin-hunter.gltf +1 -0
- package/frontiers-rpg-game/assets/models/enemies/gorkin-shaman.gltf +1 -0
- package/frontiers-rpg-game/assets/models/enemies/gorkin-swordsman.gltf +1 -0
- package/frontiers-rpg-game/assets/models/enemies/reclusive-weaver.gltf +1 -0
- package/frontiers-rpg-game/assets/models/enemies/sickly-capfolk.gltf +1 -0
- package/frontiers-rpg-game/assets/models/enemies/snapjaw.gltf +1 -0
- package/frontiers-rpg-game/assets/models/enemies/toxic-frog.gltf +1 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/banner-hytopia-1/banner-hytopia-1-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/banner-hytopia-1/banner-hytopia-1-named-nodes.gltf +260 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/banner-hytopia-1/banner-hytopia-1.bin +0 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/banner-hytopia-1/banner-hytopia-1.gltf +136 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/banner-hytopia-1/banner-hytopia-1.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/banner-hytopia-1/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/bookshelf/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/bookshelf/bookshelf-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/bookshelf/bookshelf-named-nodes.gltf +882 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/bookshelf/bookshelf.bin +0 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/bookshelf/bookshelf.gltf +136 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/bookshelf/bookshelf.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/training-dummy/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/training-dummy/training-dummy-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/training-dummy/training-dummy-named-nodes.gltf +1312 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/training-dummy/training-dummy.bin +0 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/training-dummy/training-dummy.gltf +1006 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/training-dummy/training-dummy.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/weapon-rack/baseColor_1.png +0 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/weapon-rack/baseColor_2.png +0 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/weapon-rack/baseColor_3.png +0 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/weapon-rack/baseColor_4.png +0 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/weapon-rack/weapon-rack-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/weapon-rack/weapon-rack-named-nodes.gltf +909 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/weapon-rack/weapon-rack.bin +0 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/weapon-rack/weapon-rack.gltf +418 -0
- package/frontiers-rpg-game/assets/models/environment/.optimized/weapon-rack/weapon-rack.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/environment/banner-hytopia-1.gltf +1 -0
- package/frontiers-rpg-game/assets/models/environment/bookshelf.gltf +1 -0
- package/frontiers-rpg-game/assets/models/environment/training-dummy.gltf +1 -0
- package/frontiers-rpg-game/assets/models/environment/weapon-rack.gltf +1 -0
- package/frontiers-rpg-game/assets/models/forageables/.optimized/abandoned-crate/abandoned-crate-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/forageables/.optimized/abandoned-crate/abandoned-crate-named-nodes.gltf +724 -0
- package/frontiers-rpg-game/assets/models/forageables/.optimized/abandoned-crate/abandoned-crate.bin +0 -0
- package/frontiers-rpg-game/assets/models/forageables/.optimized/abandoned-crate/abandoned-crate.gltf +131 -0
- package/frontiers-rpg-game/assets/models/forageables/.optimized/abandoned-crate/abandoned-crate.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/forageables/.optimized/abandoned-crate/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/forageables/.optimized/weathered-stump/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/forageables/.optimized/weathered-stump/weathered-stump-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/forageables/.optimized/weathered-stump/weathered-stump-named-nodes.gltf +521 -0
- package/frontiers-rpg-game/assets/models/forageables/.optimized/weathered-stump/weathered-stump.bin +0 -0
- package/frontiers-rpg-game/assets/models/forageables/.optimized/weathered-stump/weathered-stump.gltf +136 -0
- package/frontiers-rpg-game/assets/models/forageables/.optimized/weathered-stump/weathered-stump.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/forageables/abandoned-crate.gltf +1 -0
- package/frontiers-rpg-game/assets/models/forageables/weathered-stump.gltf +1 -0
- package/frontiers-rpg-game/assets/models/mounts/.optimized/woolran/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/mounts/.optimized/woolran/woolran-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/mounts/.optimized/woolran/woolran-named-nodes.gltf +6889 -0
- package/frontiers-rpg-game/assets/models/mounts/.optimized/woolran/woolran.bin +0 -0
- package/frontiers-rpg-game/assets/models/mounts/.optimized/woolran/woolran.gltf +4486 -0
- package/frontiers-rpg-game/assets/models/mounts/.optimized/woolran/woolran.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/mounts/woolran.gltf +1 -0
- package/frontiers-rpg-game/assets/models/npcs/.optimized/gravekeeper/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/npcs/.optimized/gravekeeper/gravekeeper-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/npcs/.optimized/gravekeeper/gravekeeper-named-nodes.gltf +3049 -0
- package/frontiers-rpg-game/assets/models/npcs/.optimized/gravekeeper/gravekeeper.bin +0 -0
- package/frontiers-rpg-game/assets/models/npcs/.optimized/gravekeeper/gravekeeper.gltf +1647 -0
- package/frontiers-rpg-game/assets/models/npcs/.optimized/gravekeeper/gravekeeper.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/npcs/.optimized/herder/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/npcs/.optimized/herder/herder-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/npcs/.optimized/herder/herder-named-nodes.gltf +3259 -0
- package/frontiers-rpg-game/assets/models/npcs/.optimized/herder/herder.bin +0 -0
- package/frontiers-rpg-game/assets/models/npcs/.optimized/herder/herder.gltf +1615 -0
- package/frontiers-rpg-game/assets/models/npcs/.optimized/herder/herder.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/players/.optimized/player/player-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/players/.optimized/player/player-named-nodes.gltf +7802 -6249
- package/frontiers-rpg-game/assets/models/players/.optimized/player/player.bin +0 -0
- package/frontiers-rpg-game/assets/models/players/.optimized/player/player.gltf +7046 -5480
- package/frontiers-rpg-game/assets/models/players/.optimized/player/player.gltf.md5 +1 -1
- package/frontiers-rpg-game/assets/models/players/player.gltf +1 -1
- package/frontiers-rpg-game/assets/models/weapons/.optimized/chieftan-blade/baseColor.png +0 -0
- package/frontiers-rpg-game/assets/models/weapons/.optimized/chieftan-blade/chieftan-blade-named-nodes.bin +0 -0
- package/frontiers-rpg-game/assets/models/weapons/.optimized/chieftan-blade/chieftan-blade-named-nodes.gltf +726 -0
- package/frontiers-rpg-game/assets/models/weapons/.optimized/chieftan-blade/chieftan-blade.bin +0 -0
- package/frontiers-rpg-game/assets/models/weapons/.optimized/chieftan-blade/chieftan-blade.gltf +335 -0
- package/frontiers-rpg-game/assets/models/weapons/.optimized/chieftan-blade/chieftan-blade.gltf.md5 +1 -0
- package/frontiers-rpg-game/assets/models/weapons/chieftan-blade.gltf +1 -0
- package/frontiers-rpg-game/assets/particles/dirt.png +0 -0
- package/frontiers-rpg-game/assets/ui/index.html +50 -7
- package/frontiers-rpg-game/assets/ui/menus/dialogue.html +30 -4
- package/frontiers-rpg-game/assets/ui/shared/item-stats.html +1 -1
- package/frontiers-rpg-game/assets/ui/shared/item-tooltips.html +19 -2
- package/frontiers-rpg-game/src/GameClock.ts +14 -0
- package/frontiers-rpg-game/src/GameManager.ts +1 -4
- package/frontiers-rpg-game/src/GameRegion.ts +6 -2
- package/frontiers-rpg-game/src/entities/BaseCombatEntity.ts +58 -26
- package/frontiers-rpg-game/src/entities/BaseEntity.ts +10 -3
- package/frontiers-rpg-game/src/entities/enemies/GorkinChieftanEntity.ts +190 -0
- package/frontiers-rpg-game/src/entities/enemies/GorkinEnforcerEntity.ts +87 -0
- package/frontiers-rpg-game/src/entities/enemies/GorkinGruntEntity.ts +113 -0
- package/frontiers-rpg-game/src/entities/enemies/GorkinHunterEntity.ts +90 -0
- package/frontiers-rpg-game/src/entities/enemies/GorkinShamanEntity.ts +154 -0
- package/frontiers-rpg-game/src/entities/enemies/GorkinSwordsmanEntity.ts +121 -0
- package/frontiers-rpg-game/src/entities/enemies/QueenWeaverEntity.ts +8 -0
- package/frontiers-rpg-game/src/entities/enemies/RatkinBruteEntity.ts +14 -0
- package/frontiers-rpg-game/src/entities/enemies/RatkinRangerEntity.ts +8 -0
- package/frontiers-rpg-game/src/entities/enemies/RatkinSpellcasterEntity.ts +8 -0
- package/frontiers-rpg-game/src/entities/enemies/RatkinWarriorEntity.ts +12 -0
- package/frontiers-rpg-game/src/entities/enemies/ReclusiveWeaverEntity.ts +119 -0
- package/frontiers-rpg-game/src/entities/{environmental → enemies}/SpiderWebEntity.ts +14 -8
- package/frontiers-rpg-game/src/entities/enemies/TaintedRatkinBruteEntity.ts +6 -0
- package/frontiers-rpg-game/src/entities/enemies/TaintedRatkinWarriorEntity.ts +4 -0
- package/frontiers-rpg-game/src/entities/enemies/WeaverBroodlingEntity.ts +5 -1
- package/frontiers-rpg-game/src/entities/forageables/AbandonedCrateEntity.ts +57 -0
- package/frontiers-rpg-game/src/entities/forageables/WeatheredStumpEntity.ts +37 -0
- package/frontiers-rpg-game/src/entities/npcs/WoolranEntity.ts +26 -0
- package/frontiers-rpg-game/src/items/ItemClasses.ts +45 -1
- package/frontiers-rpg-game/src/items/ItemUIDataHelper.ts +3 -1
- package/frontiers-rpg-game/src/items/consumables/HealingPotionItem.ts +20 -0
- package/frontiers-rpg-game/src/items/materials/GoldIngotItem.ts +11 -0
- package/frontiers-rpg-game/src/items/materials/GorkinEarItem.ts +10 -0
- package/frontiers-rpg-game/src/items/materials/GorkinEyeItem.ts +10 -0
- package/frontiers-rpg-game/src/items/materials/GorkinFootItem.ts +10 -0
- package/frontiers-rpg-game/src/items/materials/GorkinHandItem.ts +10 -0
- package/frontiers-rpg-game/src/items/materials/GorkinSkullItem.ts +10 -0
- package/frontiers-rpg-game/src/items/materials/IronIngotItem.ts +11 -0
- package/frontiers-rpg-game/src/items/materials/ShackleItem.ts +10 -0
- package/frontiers-rpg-game/src/items/materials/ShatteredSwordItem.ts +10 -0
- package/frontiers-rpg-game/src/items/materials/SilverSlabItem.ts +11 -0
- package/frontiers-rpg-game/src/items/materials/ToughMonsterHide.ts +10 -0
- package/frontiers-rpg-game/src/items/materials/WeaverCarapaceItem.ts +11 -0
- package/frontiers-rpg-game/src/items/materials/WeaverEggItem.ts +11 -0
- package/frontiers-rpg-game/src/items/materials/WeaverHeartItem.ts +10 -0
- package/frontiers-rpg-game/src/items/materials/WeaverSilkItem.ts +10 -0
- package/frontiers-rpg-game/src/items/weapons/ChieftanBladeItem.ts +70 -0
- package/frontiers-rpg-game/src/items/wearables/IronChestplateItem.ts +15 -0
- package/frontiers-rpg-game/src/items/wearables/IronGauntletsItem.ts +14 -0
- package/frontiers-rpg-game/src/items/wearables/IronGrievesItem.ts +14 -0
- package/frontiers-rpg-game/src/items/wearables/IronHelmetItem.ts +15 -0
- package/frontiers-rpg-game/src/items/wearables/IronLeggingsItem.ts +15 -0
- package/frontiers-rpg-game/src/quests/QuestClasses.ts +6 -0
- package/frontiers-rpg-game/src/quests/main/AncientWisdomQuest.ts +125 -0
- package/frontiers-rpg-game/src/quests/main/BlightedHarvestQuest.ts +27 -5
- package/frontiers-rpg-game/src/quests/side/SkullTrinketsQuest.ts +202 -0
- package/frontiers-rpg-game/src/quests/side/WeaverSquashingQuest.ts +128 -0
- package/frontiers-rpg-game/src/regions/chitter-forest/ChitterForestRegion.ts +25 -0
- package/frontiers-rpg-game/src/regions/hearthwilds/HearthwildsRegion.ts +175 -4
- package/frontiers-rpg-game/src/regions/hearthwilds/npcs/ArchivesBookshelf1Entity.ts +136 -0
- package/frontiers-rpg-game/src/regions/hearthwilds/npcs/ArchivesBookshelf2Entity.ts +136 -0
- package/frontiers-rpg-game/src/regions/hearthwilds/npcs/GravekeeperArdenEntity.ts +48 -0
- package/frontiers-rpg-game/src/regions/hearthwilds/npcs/HerderBorisEntity.ts +61 -0
- package/frontiers-rpg-game/src/regions/hearthwilds/npcs/MerchantFonnEntity.ts +62 -0
- package/frontiers-rpg-game/src/regions/hearthwilds/npcs/SurvivorMycelEntity.ts +62 -0
- package/frontiers-rpg-game/src/regions/ratkin-nest/RatkinNestRegion.ts +3 -0
- package/frontiers-rpg-game/src/regions/stalkhaven/npcs/BlacksmithArdenEntity.ts +116 -5
- package/frontiers-rpg-game/src/regions/weavers-hollow/WeaversHollowRegion.ts +1 -1
- package/frontiers-rpg-game/src/systems/Spawner.ts +9 -1
- package/package.json +1 -1
- /package/frontiers-rpg-game/assets/models/npcs/{auctioneer.gltf → gravekeeper.gltf} +0 -0
- /package/frontiers-rpg-game/assets/models/npcs/{lumberjack.gltf → herder.gltf} +0 -0
|
@@ -6,6 +6,28 @@ import type { WanderOptions } from '../../entities/BaseEntity';
|
|
|
6
6
|
|
|
7
7
|
import hearthwildsMap from '../../../assets/maps/hearthwilds.json';
|
|
8
8
|
|
|
9
|
+
// NPCs
|
|
10
|
+
import ArchivesBookshelf1Entity from './npcs/ArchivesBookshelf1Entity';
|
|
11
|
+
import ArchivesBookshelf2Entity from './npcs/ArchivesBookshelf2Entity';
|
|
12
|
+
import GravekeeperArdenEntity from './npcs/GravekeeperArdenEntity';
|
|
13
|
+
import HerderBorisEntity from './npcs/HerderBorisEntity';
|
|
14
|
+
import MerchantFonnEntity from './npcs/MerchantFonnEntity';
|
|
15
|
+
import SurvivorMycelEntity from './npcs/SurvivorMycelEntity';
|
|
16
|
+
import WoolranEntity from '../../entities/npcs/WoolranEntity';
|
|
17
|
+
|
|
18
|
+
// Spawner Enemies
|
|
19
|
+
import GorkinChieftanEntity from '../../entities/enemies/GorkinChieftanEntity';
|
|
20
|
+
import GorkinEnforcerEntity from '../../entities/enemies/GorkinEnforcerEntity';
|
|
21
|
+
import GorkinGruntEntity from '../../entities/enemies/GorkinGruntEntity';
|
|
22
|
+
import GorkinShamanEntity from '../../entities/enemies/GorkinShamanEntity';
|
|
23
|
+
import GorkinSwordsmanEntity from '../../entities/enemies/GorkinSwordsmanEntity';
|
|
24
|
+
import GorkinHunterEntity from '../../entities/enemies/GorkinHunterEntity';
|
|
25
|
+
import ReclusiveWeaverEntity from '../../entities/enemies/ReclusiveWeaverEntity';
|
|
26
|
+
|
|
27
|
+
// Spawner Forageables
|
|
28
|
+
import AbandonedCrateEntity from '../../entities/forageables/AbandonedCrateEntity';
|
|
29
|
+
import WeatheredStumpEntity from '../../entities/forageables/WeatheredStumpEntity';
|
|
30
|
+
|
|
9
31
|
export default class HearthwildsRegion extends GameRegion {
|
|
10
32
|
public constructor() {
|
|
11
33
|
super({
|
|
@@ -13,16 +35,165 @@ export default class HearthwildsRegion extends GameRegion {
|
|
|
13
35
|
name: 'Hearthwilds',
|
|
14
36
|
map: hearthwildsMap,
|
|
15
37
|
skyboxUri: 'skyboxes/partly-cloudy',
|
|
16
|
-
spawnPoint: { x:
|
|
38
|
+
spawnPoint: { x: 245, y: 22, z: -90 },
|
|
17
39
|
ambientAudioUri: 'audio/music/jungle-theme-looping.mp3',
|
|
18
40
|
fogColor: { r: 152, g: 196, b: 127 },
|
|
19
|
-
fogNear:
|
|
20
|
-
fogFar:
|
|
41
|
+
fogNear: 0,
|
|
42
|
+
fogFar: 50,
|
|
21
43
|
});
|
|
22
44
|
}
|
|
23
45
|
|
|
24
46
|
protected override setup(): void {
|
|
25
47
|
super.setup();
|
|
26
48
|
|
|
49
|
+
this._setupEnemySpawners();
|
|
50
|
+
this._setupForageableSpawners();
|
|
51
|
+
this._setupNPCs();
|
|
52
|
+
this._setupPortals();
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
private _setupEnemySpawners(): void {
|
|
56
|
+
const roamWanderOptions: WanderOptions = {
|
|
57
|
+
idleMinMs: 12000,
|
|
58
|
+
idleMaxMs: 30000,
|
|
59
|
+
maxWanderRadius: 12,
|
|
60
|
+
moveOptions: { moveCompletesWhenStuck: true }
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
// Gorkin
|
|
64
|
+
const gorkinSpawnables = [
|
|
65
|
+
{ entityConstructor: GorkinChieftanEntity, weight: 1, wanders: true, wanderOptions: roamWanderOptions }, // boss
|
|
66
|
+
{ entityConstructor: GorkinEnforcerEntity, weight: 15, wanders: true, wanderOptions: roamWanderOptions },
|
|
67
|
+
{ entityConstructor: GorkinGruntEntity, weight: 20, wanders: true, wanderOptions: roamWanderOptions },
|
|
68
|
+
{ entityConstructor: GorkinShamanEntity, weight: 15, wanders: true, wanderOptions: roamWanderOptions },
|
|
69
|
+
{ entityConstructor: GorkinSwordsmanEntity, weight: 17, wanders: true, wanderOptions: roamWanderOptions },
|
|
70
|
+
{ entityConstructor: GorkinHunterEntity, weight: 18, wanders: true, wanderOptions: roamWanderOptions },
|
|
71
|
+
];
|
|
72
|
+
|
|
73
|
+
const gorkinSpawnerRegions = [
|
|
74
|
+
{ maxSpawns: 5, min: { x: 171, y: 12, z: -95 }, max: { x: 213, y: 16, z: -55 } }, // entry ruins
|
|
75
|
+
{ maxSpawns: 6, min: { x: 124, y: 10, z: -194 }, max: { x: 151, y: 15, z: -170 } }, // graveyard camp
|
|
76
|
+
{ maxSpawns: 11, min: { x: 61, y: 6, z: -197 }, max: { x: 91, y: 10, z: -173 } }, // graveyard valley
|
|
77
|
+
{ maxSpawns: 7, min: { x: 29, y: 12, z: -97 }, max: { x: 64, y: 14, z: -77 } }, // path camp 1
|
|
78
|
+
{ maxSpawns: 5, min: { x: 13, y: 12, z: -185 }, max: { x: 24, y: 15, z: -170 } }, // path camp 2
|
|
79
|
+
{ maxSpawns: 8, min: { x: -83, y: 12, z: -167 }, max: { x: -29, y: 15, z: -163 } }, // walled path 1
|
|
80
|
+
{ maxSpawns: 14, min: { x: -186, y: 12, z: -183 }, max: { x: -113, y: 15, z: -134 } }, // ruined city 1
|
|
81
|
+
{ maxSpawns: 9, min: { x: -215, y: 12, z: -149 }, max: { x: -197, y: 15, z: -114 } }, // ruined city 1 camp
|
|
82
|
+
{ maxSpawns: 5, min: { x: 6, y: 12, z: -50 }, max: { x: 23, y: 15, z: -40 } }, // church bridge camp
|
|
83
|
+
{ maxSpawns: 7, min: { x: -41, y: 12, z: -28 }, max: { x: -20, y: 15, z: -5 } }, // tower camp
|
|
84
|
+
{ maxSpawns: 5, min: { x: -20, y: 12, z: 39 }, max: { x: -5, y: 15, z: 57 } }, // bridge camp 1
|
|
85
|
+
{ maxSpawns: 15, min: { x: 55, y: 12, z: 81 }, max: { x: 133, y: 15, z: 119 } }, // ruined city 2
|
|
86
|
+
{ maxSpawns: 11, min: { x: 70, y: 12, z: 33 }, max: { x: 105, y: 15, z: 70 } }, // ruined city 2 camp 1
|
|
87
|
+
{ maxSpawns: 5, min: { x: 21, y: 12, z: 91 }, max: { x: 39, y: 15, z: 113 } }, // ruined city 2 camp 2
|
|
88
|
+
{ maxSpawns: 13, min: { x: 173, y: 12, z: 2 }, max: { x: 200, y: 15, z: 58 } }, // temple ruins
|
|
89
|
+
{ maxSpawns: 15, min: { x: -98, y: 8, z: 4 }, max: { x: -53, y: 12, z: 37 } }, // capfolk entrance camp
|
|
90
|
+
{ maxSpawns: 15, min: { x: -66, y: 8, z: -146 }, max: { x: 16, y: 12, z: -59 } }, // tower valley
|
|
91
|
+
{ maxSpawns: 10, min: { x: -131, y: 13, z: -120 }, max: { x: -114, y: 16, z: -86 } }, // island ruins
|
|
92
|
+
{ maxSpawns: 4, min: { x: -104, y: 12, z: -153 }, max: { x: -91, y: 15, z: -142 } } // island bridge camp
|
|
93
|
+
];
|
|
94
|
+
|
|
95
|
+
for (const gorkinSpawnerRegion of gorkinSpawnerRegions) {
|
|
96
|
+
const spawner = new Spawner({
|
|
97
|
+
maxSpawns: gorkinSpawnerRegion.maxSpawns,
|
|
98
|
+
spawnables: gorkinSpawnables,
|
|
99
|
+
spawnRegions: [ { min: gorkinSpawnerRegion.min, max: gorkinSpawnerRegion.max } ],
|
|
100
|
+
spawnIntervalMs: 15000,
|
|
101
|
+
world: this.world,
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
spawner.start(true);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// Reclusive Weavers
|
|
108
|
+
const reclusiveWeaversSpawnables = [
|
|
109
|
+
{ entityConstructor: ReclusiveWeaverEntity, weight: 1, wanders: true, wanderOptions: roamWanderOptions },
|
|
110
|
+
];
|
|
111
|
+
|
|
112
|
+
const reclusiveWeaversSpawnerRegions = [
|
|
113
|
+
|
|
114
|
+
{ maxSpawns: 15, min: { x: 109, y: 2, z: -193 }, max: { x: 193, y: 5, z: -82 } }, // woolran camp ravine
|
|
115
|
+
{ maxSpawns: 15, min: { x: -26, y: 2, z: -71 }, max: { x: 90, y: 5, z: -13 } }, // church ruins ravine
|
|
116
|
+
{ maxSpawns: 10, min: { x: -39, y: 2, z: 33 }, max: { x: 17, y: 5, z: 119 } }, // bridge ruins ravine
|
|
117
|
+
];
|
|
118
|
+
|
|
119
|
+
for (const reclusiveWeaversSpawnerRegion of reclusiveWeaversSpawnerRegions) {
|
|
120
|
+
const spawner = new Spawner({
|
|
121
|
+
maxSpawns: reclusiveWeaversSpawnerRegion.maxSpawns,
|
|
122
|
+
spawnables: reclusiveWeaversSpawnables,
|
|
123
|
+
spawnRegions: [ { min: reclusiveWeaversSpawnerRegion.min, max: reclusiveWeaversSpawnerRegion.max } ],
|
|
124
|
+
spawnIntervalMs: 15000,
|
|
125
|
+
world: this.world,
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
spawner.start(true);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
private _setupForageableSpawners(): void {
|
|
133
|
+
const hearthwildsSpawner = new Spawner({
|
|
134
|
+
groundCheckDistance: 6,
|
|
135
|
+
maxSpawns: 60,
|
|
136
|
+
spawnables: [
|
|
137
|
+
{ entityConstructor: AbandonedCrateEntity, weight: 1 },
|
|
138
|
+
{ entityConstructor: WeatheredStumpEntity, weight: 1 },
|
|
139
|
+
],
|
|
140
|
+
spawnRegions: [
|
|
141
|
+
{
|
|
142
|
+
min: { x: -227, y: 2, z: -227 },
|
|
143
|
+
max: { x: 220, y: 15, z: 124 },
|
|
144
|
+
weight: 1,
|
|
145
|
+
}
|
|
146
|
+
],
|
|
147
|
+
spawnIntervalMs: 15000,
|
|
148
|
+
world: this.world,
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
hearthwildsSpawner.start(true);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
private _setupNPCs(): void {
|
|
155
|
+
// Archival Bookshelves
|
|
156
|
+
const archivalBookshelf1 = new ArchivesBookshelf1Entity({ facingAngle: -90 });
|
|
157
|
+
archivalBookshelf1.spawn(this.world, { x: -120.5, y: 11, z: 12.5 });
|
|
158
|
+
|
|
159
|
+
const archivalBookshelf2 = new ArchivesBookshelf2Entity({ facingAngle: 180 });
|
|
160
|
+
archivalBookshelf2.spawn(this.world, { x: -114.5, y: 11, z: 11.5 });
|
|
161
|
+
|
|
162
|
+
// Gravekeeper Arden
|
|
163
|
+
const gravekeeperArden = new GravekeeperArdenEntity({ facingAngle: 135 });
|
|
164
|
+
gravekeeperArden.spawn(this.world, { x: 166, y: 14, z: -211.5 });
|
|
165
|
+
|
|
166
|
+
// Herder Boris
|
|
167
|
+
const herderBoris = new HerderBorisEntity({ facingAngle: 200 });
|
|
168
|
+
herderBoris.spawn(this.world, { x: 159, y: 14, z: -161 });
|
|
169
|
+
|
|
170
|
+
// Merchant Fonn
|
|
171
|
+
const merchantFonn = new MerchantFonnEntity({ facingAngle: -30 });
|
|
172
|
+
merchantFonn.spawn(this.world, { x: 138, y: 14, z: -4.5 });
|
|
173
|
+
|
|
174
|
+
// Survivor Mycel
|
|
175
|
+
const survivorMycel = new SurvivorMycelEntity({ facingAngle: -80 });
|
|
176
|
+
survivorMycel.spawn(this.world, { x: 208, y: 14, z: -103.5 });
|
|
177
|
+
|
|
178
|
+
// Woolran in stable
|
|
179
|
+
[
|
|
180
|
+
{ facingAngle: 210, position: { x: 163, y: 14, z: -168 } }, // stable
|
|
181
|
+
{ facingAngle: 160, position: { x: 167, y: 14, z: -165 } }, // stable
|
|
182
|
+
{ facingAngle: 280, position: { x: 176, y: 14, z: -143 } }, // by bridge 1
|
|
183
|
+
{ facingAngle: 300, position: { x: 149, y: 14, z: -155 } }, // by bridge 2
|
|
184
|
+
].forEach(woolran => {
|
|
185
|
+
const woolranEntity = new WoolranEntity({ facingAngle: woolran.facingAngle });
|
|
186
|
+
woolranEntity.spawn(this.world, woolran.position);
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
private _setupPortals(): void {
|
|
191
|
+
const chitterForestPortal = new PortalEntity({
|
|
192
|
+
destinationRegionId: 'chitter-forest',
|
|
193
|
+
destinationRegionPosition: { x: 145, y: 2, z: -14 },
|
|
194
|
+
destinationRegionFacingAngle: 120,
|
|
195
|
+
});
|
|
196
|
+
|
|
197
|
+
chitterForestPortal.spawn(this.world, { x: 252, y: 22, z: -89.25 }, Quaternion.fromEuler(0, 90, 0));
|
|
27
198
|
}
|
|
28
|
-
}
|
|
199
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import BaseEntity, { BaseEntityOptions } from '../../../entities/BaseEntity';
|
|
2
|
+
|
|
3
|
+
export default class ArchivesBookshelf1Entity extends BaseEntity {
|
|
4
|
+
public constructor(options?: BaseEntityOptions) {
|
|
5
|
+
super({
|
|
6
|
+
idleAnimations: [ 'idle' ],
|
|
7
|
+
modelUri: 'models/environment/bookshelf.gltf',
|
|
8
|
+
modelScale: 0.75,
|
|
9
|
+
name: 'Archives Bookshelf',
|
|
10
|
+
rotatesOnInteract: false,
|
|
11
|
+
dialogue: {
|
|
12
|
+
avatarImageUri: 'avatars/bookshelf.png',
|
|
13
|
+
title: 'Moldy, rotten, old books...',
|
|
14
|
+
dialogue: {
|
|
15
|
+
text: `*You fumble through the books on the shelf, most are too rotten or weathered to read, but some are still intact*`,
|
|
16
|
+
options: [
|
|
17
|
+
{
|
|
18
|
+
text: `Read "History of the Eastern Frontier"`,
|
|
19
|
+
nextDialogue: {
|
|
20
|
+
text: `*The leather-bound tome creaks as you open it. The first page reads:*
|
|
21
|
+
|
|
22
|
+
"When the first human settlers arrived in the Eastern Frontier three centuries ago, they found a land of unimaginable beauty. Ancient forests stretched endlessly, teeming with exotic wildlife and fruit-laden trees. Rivers ran crystal clear, and the very air seemed alive with magic."`,
|
|
23
|
+
options: [
|
|
24
|
+
{
|
|
25
|
+
text: `Continue reading...`,
|
|
26
|
+
nextDialogue: {
|
|
27
|
+
text: `"The early settlers were in awe, but also determined. They saw opportunity where others saw wilderness. Year by year, they cleared the forests for farmland, diverted rivers for their mills, and drove back the native creatures to establish their towns and trade routes."`,
|
|
28
|
+
options: [
|
|
29
|
+
{
|
|
30
|
+
text: `Turn to the next page...`,
|
|
31
|
+
nextDialogue: {
|
|
32
|
+
text: `"What took nature millennia to grow, human ambition conquered in mere decades. Stalkhaven rose as the great trading hub, connecting distant settlements. Yet with each passing year, the wild beauty of the Frontier dimmed. The price of civilization was the very wilderness that first drew them here."`,
|
|
33
|
+
options: [
|
|
34
|
+
{
|
|
35
|
+
text: `Close the book`,
|
|
36
|
+
dismiss: true,
|
|
37
|
+
pureExit: true,
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
text: `Close the book`,
|
|
47
|
+
dismiss: true,
|
|
48
|
+
pureExit: true,
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
text: `Read "History of the Capfolk"`,
|
|
55
|
+
nextDialogue: {
|
|
56
|
+
text: `*You carefully open the ancient text, its pages yellow with age:*
|
|
57
|
+
|
|
58
|
+
"The Capfolk have dwelt in the Eastern Frontier since time immemorial, long before human feet touched this soil. They lived as one with the forest, tending to the sacred mushroom groves and maintaining the delicate balance of nature."`,
|
|
59
|
+
options: [
|
|
60
|
+
{
|
|
61
|
+
text: `Continue reading...`,
|
|
62
|
+
nextDialogue: {
|
|
63
|
+
text: `"When the human settlers arrived, the Capfolk welcomed them with open hearts, sharing their knowledge of healing spores and offering trade partnerships. Yet as the years passed, they grew troubled watching the great forests fall to human axes and the ancient ways forgotten."`,
|
|
64
|
+
options: [
|
|
65
|
+
{
|
|
66
|
+
text: `Turn to the next page...`,
|
|
67
|
+
nextDialogue: {
|
|
68
|
+
text: `"Legend speaks of the Capfolk's origin - that deep within the Outer Mountains lies a vast fungal cavern, where the first spark of Capfolk consciousness emerged from the earth itself millennia ago. It is said that in times of great peril, their kind may yet return to that sacred place."`,
|
|
69
|
+
options: [
|
|
70
|
+
{
|
|
71
|
+
text: `Close the book`,
|
|
72
|
+
dismiss: true,
|
|
73
|
+
pureExit: true,
|
|
74
|
+
}
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
text: `Close the book`,
|
|
83
|
+
dismiss: true,
|
|
84
|
+
pureExit: true,
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
text: `Read "Findings in the Outer Mountains"`,
|
|
91
|
+
nextDialogue: {
|
|
92
|
+
text: `*The journal's pages flutter as you open it, filled with sketches and hurried notes:*
|
|
93
|
+
|
|
94
|
+
"The Outer Mountains remain the Eastern Frontier's greatest mystery. These towering peaks encircle the land like ancient sentinels, their slopes often barren and treacherous, shrouded in perpetual mist."`,
|
|
95
|
+
options: [
|
|
96
|
+
{
|
|
97
|
+
text: `Continue reading...`,
|
|
98
|
+
nextDialogue: {
|
|
99
|
+
text: `"Expeditions into these heights report strange phenomena - ethereal beings that mock travelers with illusions, pathways that lead nowhere, and an unsettling feeling of being watched. Many brave souls have ventured into the peaks, never to return."`,
|
|
100
|
+
options: [
|
|
101
|
+
{
|
|
102
|
+
text: `Turn to the next page...`,
|
|
103
|
+
nextDialogue: {
|
|
104
|
+
text: `"The mountain folk speak in whispers of lights that dance in the high valleys, of voices that call from empty air, and of caves that seem to breathe. Whether these are spirits of the ancient past or something else entirely, none can say. The mountains keep their secrets well."`,
|
|
105
|
+
options: [
|
|
106
|
+
{
|
|
107
|
+
text: `Close the journal`,
|
|
108
|
+
dismiss: true,
|
|
109
|
+
pureExit: true,
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
text: `Close the journal`,
|
|
119
|
+
dismiss: true,
|
|
120
|
+
pureExit: true,
|
|
121
|
+
}
|
|
122
|
+
]
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
text: `Step away from the bookshelf`,
|
|
127
|
+
dismiss: true,
|
|
128
|
+
pureExit: true,
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
...options,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import BaseEntity, { BaseEntityOptions } from '../../../entities/BaseEntity';
|
|
2
|
+
|
|
3
|
+
export default class ArchivesBookshelf2Entity extends BaseEntity {
|
|
4
|
+
public constructor(options?: BaseEntityOptions) {
|
|
5
|
+
super({
|
|
6
|
+
idleAnimations: [ 'idle' ],
|
|
7
|
+
modelUri: 'models/environment/bookshelf.gltf',
|
|
8
|
+
modelScale: 0.75,
|
|
9
|
+
name: 'Archives Bookshelf',
|
|
10
|
+
rotatesOnInteract: false,
|
|
11
|
+
dialogue: {
|
|
12
|
+
avatarImageUri: 'avatars/bookshelf.png',
|
|
13
|
+
title: 'Books with Capfolk markings...',
|
|
14
|
+
dialogue: {
|
|
15
|
+
text: `*You fumble through the books on the shelf, most are too rotten or weathered to read, but some are still intact*`,
|
|
16
|
+
options: [
|
|
17
|
+
{
|
|
18
|
+
text: `Read "Sacred Fungi of the Eastern Frontier"`,
|
|
19
|
+
nextDialogue: {
|
|
20
|
+
text: `*You open the elaborately illustrated tome, its pages filled with detailed mushroom drawings:*
|
|
21
|
+
|
|
22
|
+
"The sacred fungi of the Eastern Frontier are far more than mere plants - they are the lifeblood of Capfolk civilization. For millennia, these mystical mushrooms have provided healing, sustenance, and spiritual guidance to our people."`,
|
|
23
|
+
options: [
|
|
24
|
+
{
|
|
25
|
+
text: `Continue reading...`,
|
|
26
|
+
nextDialogue: {
|
|
27
|
+
text: `"The Healing Caps grant restoration to the wounded, while the rare Sight Spores can grant visions of distant places. Moon Mushrooms glow with ethereal light in darkness, ancient Grove Guardians are said to whisper wisdom to those pure of heart. The Eastern Frontier is home to hundreds of kinds of mushrooms, each with their own unique properties and uses."`,
|
|
28
|
+
options: [
|
|
29
|
+
{
|
|
30
|
+
text: `Turn to the next page...`,
|
|
31
|
+
nextDialogue: {
|
|
32
|
+
text: `"But above all, the Great Mycelium connects all fungi in an invisible network beneath the earth. Through this sacred web, we Capfolk learned our first lessons of unity and connected consciousness. To harm the sacred groves is to wound the very soul of our people."`,
|
|
33
|
+
options: [
|
|
34
|
+
{
|
|
35
|
+
text: `Close the book`,
|
|
36
|
+
dismiss: true,
|
|
37
|
+
pureExit: true,
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
text: `Close the book`,
|
|
47
|
+
dismiss: true,
|
|
48
|
+
pureExit: true,
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
text: `Read "The Withering Age Chronicles"`,
|
|
55
|
+
nextDialogue: {
|
|
56
|
+
text: `*You carefully open the ancient chronicle, its pages dark with age and warning:*
|
|
57
|
+
|
|
58
|
+
"In the earliest days of Capfolk consciousness, when our people were but young sprouts of wisdom, a great shadow fell across the Eastern Frontier. An intelligent hunger awakened deep within the earth - a vast network of parasitic roots that devoured all in its path."`,
|
|
59
|
+
options: [
|
|
60
|
+
{
|
|
61
|
+
text: `Continue reading...`,
|
|
62
|
+
nextDialogue: {
|
|
63
|
+
text: `"This cunning plant-mind spread silently through the soil, sapping nutrients from every living thing and destroying our sacred groves. Rivers ran dry, forests withered, and the very earth turned gray and lifeless. No ordinary plant could grow, no creature could thrive, as this ancient evil consumed the essence of life itself."`,
|
|
64
|
+
options: [
|
|
65
|
+
{
|
|
66
|
+
text: `Turn to the next page...`,
|
|
67
|
+
nextDialogue: {
|
|
68
|
+
text: `"For centuries our ancestors suffered under this blight, until the Great Pilgrimage was declared. United as one people, the Capfolk marched into the Outer Mountains to face the source. The siege lasted seven seasons, but at last the heart of the hunger was driven out of the land. The Withering Age ended, and the land bloomed anew."`,
|
|
69
|
+
options: [
|
|
70
|
+
{
|
|
71
|
+
text: `Close the chronicle`,
|
|
72
|
+
dismiss: true,
|
|
73
|
+
pureExit: true,
|
|
74
|
+
}
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
text: `Close the chronicle`,
|
|
83
|
+
dismiss: true,
|
|
84
|
+
pureExit: true,
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
text: `Read "The Great Departure"`,
|
|
91
|
+
nextDialogue: {
|
|
92
|
+
text: `*The weathered journal opens with a melancholy creak, its pages filled with farewell songs:*
|
|
93
|
+
|
|
94
|
+
"As the age of human expansion reached its height, many of our wisest elders spoke of an ancient calling - a summons from the lands beyond the Outer Mountains, beyond the mountain's caves where our people first emerged."`,
|
|
95
|
+
options: [
|
|
96
|
+
{
|
|
97
|
+
text: `Continue reading...`,
|
|
98
|
+
nextDialogue: {
|
|
99
|
+
text: `"Hundreds of our kin answered the call, gathering their belongings and walking through the treacherous mountain passes. They spoke of returning to the source, of preserving the old ways in a place untouched by the changing world, and taking a pilgramage to the new that lay beyond the mountains."`,
|
|
100
|
+
options: [
|
|
101
|
+
{
|
|
102
|
+
text: `Turn to the next page...`,
|
|
103
|
+
nextDialogue: {
|
|
104
|
+
text: `"That was generations ago. No word has come from those who departed, no traveler has returned to tell of their fate. The lands beyond remain shrouded in mystery. Some say they found their paradise, others fear they found only shadow. The mountains and the land beyond keep their secrets."`,
|
|
105
|
+
options: [
|
|
106
|
+
{
|
|
107
|
+
text: `Close the journal`,
|
|
108
|
+
dismiss: true,
|
|
109
|
+
pureExit: true,
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
text: `Close the journal`,
|
|
119
|
+
dismiss: true,
|
|
120
|
+
pureExit: true,
|
|
121
|
+
}
|
|
122
|
+
]
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
text: `Step away from the bookshelf`,
|
|
127
|
+
dismiss: true,
|
|
128
|
+
pureExit: true,
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
...options,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import BaseEntity, { BaseEntityOptions } from '../../../entities/BaseEntity';
|
|
2
|
+
|
|
3
|
+
export default class GravekeeperArdenEntity extends BaseEntity {
|
|
4
|
+
public constructor(options?: BaseEntityOptions) {
|
|
5
|
+
super({
|
|
6
|
+
idleAnimations: [ 'idle' ],
|
|
7
|
+
modelUri: 'models/npcs/gravekeeper.gltf',
|
|
8
|
+
modelScale: 0.75,
|
|
9
|
+
name: 'Gravekeeper Arden',
|
|
10
|
+
dialogue: {
|
|
11
|
+
avatarImageUri: 'avatars/gravekeeper.png',
|
|
12
|
+
title: 'Hearthwilds Gravetender',
|
|
13
|
+
dialogue: {
|
|
14
|
+
text: `Ah... another wanderer. Tell me, stranger... do you know what this fog is? It's been whispering to me for weeks now, making me feel... more off than usual. And I was already plenty off to begin with, mind you. The dead don't seem to mind it much, but then again, they don't mind much of anything anymore...`,
|
|
15
|
+
options: [
|
|
16
|
+
{
|
|
17
|
+
text: `What are you doing out here in the Hearthwilds?`,
|
|
18
|
+
nextDialogue: {
|
|
19
|
+
text: `I'm the gravekeeper here, been tending these graves for... oh, fifteen years now? Maybe twenty? Time gets muddy when you spend your days with the dead. Can't leave my post, you see. Duty is duty, fog or no fog. These souls have been resting here for over a thousand years - someone needs to keep the weeds from their bones and the creatures from disturbing their eternal sleep. The fog may have driven everyone else away, but the dead... they're excellent company. Very quiet. Never complain about my cooking.`,
|
|
20
|
+
options: [
|
|
21
|
+
{
|
|
22
|
+
text: `That's... admirable dedication.`,
|
|
23
|
+
dismiss: true,
|
|
24
|
+
pureExit: true,
|
|
25
|
+
},
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
text: `What graves are these exactly?`,
|
|
31
|
+
nextDialogue: {
|
|
32
|
+
text: `Ah, now that's a story worth telling! These are the resting places of the most noble souls - Capfolk and human warriors who fought side by side in the ancient days. Over a thousand years ago, when the Eastern Frontier was young and the world was... different. Legend says these brave souls brought peace to the land after some great calamity. The Capfolk call it the Withering Age in their old chronicles. When all seemed lost, these warriors united the peoples and drove back the darkness. Sometimes, I swear I can hear their voices... sharing stories around phantom campfires. They seem... restless lately..`,
|
|
33
|
+
options: [
|
|
34
|
+
{
|
|
35
|
+
text: `That's fascinating... and unsettling.`,
|
|
36
|
+
dismiss: true,
|
|
37
|
+
pureExit: true,
|
|
38
|
+
},
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
...options,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import BaseEntity, { BaseEntityOptions } from '../../../entities/BaseEntity';
|
|
2
|
+
|
|
3
|
+
export default class HerderBorisEntity extends BaseEntity {
|
|
4
|
+
public constructor(options?: BaseEntityOptions) {
|
|
5
|
+
super({
|
|
6
|
+
idleAnimations: [ 'idle' ],
|
|
7
|
+
modelUri: 'models/npcs/herder.gltf',
|
|
8
|
+
modelScale: 0.75,
|
|
9
|
+
name: 'Herder Boris',
|
|
10
|
+
dialogue: {
|
|
11
|
+
avatarImageUri: 'avatars/herder.png',
|
|
12
|
+
title: 'Herder',
|
|
13
|
+
dialogue: {
|
|
14
|
+
text: `Bah! Another wanderer stumbling through my grazing lands... I'm Boris, and I've been herding woolran in these Hearthwilds for twenty years. What d'you want? And what're you doing out here anyway? This cursed fog's driven away most of my business, but the woolran don't seem to mind it much. Lucky for them, I suppose.`,
|
|
15
|
+
options: [
|
|
16
|
+
{
|
|
17
|
+
text: `Why are you still out here with this fog around?`,
|
|
18
|
+
nextDialogue: {
|
|
19
|
+
text: `Why? BAH! Where else would I go? This fog just makes my eyes water and gives me a cough, but I can't abandon my flock. These woolran depend on me, and I've raised some of them since they were babies. Besides, adventurers like you still wander through from time to time, so business is slow but not dead. Just... less profitable than it used to be.`,
|
|
20
|
+
options: [
|
|
21
|
+
{
|
|
22
|
+
text: `That's dedication to your animals.`,
|
|
23
|
+
dismiss: true,
|
|
24
|
+
pureExit: true,
|
|
25
|
+
},
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
text: `What exactly are woolran?`,
|
|
31
|
+
nextDialogue: {
|
|
32
|
+
text: `What are woolran? Hah! Never heard of 'em, have you? They're the best way to get around the Hearthwilds and all the surrounding regions, that's what! Sturdy as mountain goats, fast as the wind, and smart enough to outrun those Gorkin hunting packs. Plus they're loyal companions once they trust you. Been my livelihood for decades - finest woolran stock in all the Eastern Frontier, or was before this blasted fog started scaring off my customers.`,
|
|
33
|
+
options: [
|
|
34
|
+
{
|
|
35
|
+
text: `They sound impressive.`,
|
|
36
|
+
dismiss: true,
|
|
37
|
+
pureExit: true,
|
|
38
|
+
},
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
text: `Can I buy or borrow a woolran from you?`,
|
|
44
|
+
nextDialogue: {
|
|
45
|
+
text: `Buy? Borrow? BAH! You think I just hand out my woolran to any fool who wanders by? I don't sell my animals to just anyone, and I certainly don't lend them out like farming tools! These woolran are my life's work, bred and trained proper. You want one? Tough luck! Come back when you've proven you're not some bumbling adventurer who'll get my precious woolran killed in a Gorkin ambush.`,
|
|
46
|
+
options: [
|
|
47
|
+
{
|
|
48
|
+
text: `I understand your caution.`,
|
|
49
|
+
dismiss: true,
|
|
50
|
+
pureExit: true,
|
|
51
|
+
},
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
...options,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import BaseMerchantEntity, { BaseMerchantEntityOptions } from '../../../entities/BaseMerchantEntity';
|
|
2
|
+
|
|
3
|
+
import HealingPotionItem from '../../../items/consumables/HealingPotionItem';
|
|
4
|
+
import LeatherBootsItem from '../../../items/wearables/LeatherBootsItem';
|
|
5
|
+
import LeatherBracersItem from '../../../items/wearables/LeatherBracersItem';
|
|
6
|
+
import LeatherHelmetItem from '../../../items/wearables/LeatherHelmetItem';
|
|
7
|
+
import LeatherLeggingsItem from '../../../items/wearables/LeatherLeggingsItem';
|
|
8
|
+
import LeatherVestItem from '../../../items/wearables/LeatherVestItem';
|
|
9
|
+
import MinorHealingPotionItem from '../../../items/consumables/MinorHealingPotionItem';
|
|
10
|
+
import SpikedClubItem from '../../../items/weapons/SpikedClubItem';
|
|
11
|
+
|
|
12
|
+
export default class MerchantFonnEntity extends BaseMerchantEntity {
|
|
13
|
+
public constructor(options?: Partial<BaseMerchantEntityOptions>) {
|
|
14
|
+
super({
|
|
15
|
+
buyableItemClasses: [
|
|
16
|
+
LeatherHelmetItem,
|
|
17
|
+
LeatherVestItem,
|
|
18
|
+
LeatherBracersItem,
|
|
19
|
+
LeatherLeggingsItem,
|
|
20
|
+
LeatherBootsItem,
|
|
21
|
+
SpikedClubItem,
|
|
22
|
+
HealingPotionItem,
|
|
23
|
+
MinorHealingPotionItem,
|
|
24
|
+
],
|
|
25
|
+
dialogueAvatarImageUri: 'avatars/merchant.png',
|
|
26
|
+
dialogueTitle: 'Goods Vendor',
|
|
27
|
+
idleAnimations: [ 'idle' ],
|
|
28
|
+
modelUri: 'models/npcs/merchant.gltf',
|
|
29
|
+
modelScale: 0.75,
|
|
30
|
+
name: 'Merchant Fonn',
|
|
31
|
+
additionalDialogueOptions: [
|
|
32
|
+
{
|
|
33
|
+
text: `You look oddly familiar.`,
|
|
34
|
+
nextDialogue: {
|
|
35
|
+
text: `Ah, you must have met my brother in Stalkhaven! That would be Merchant Finn - we get that a lot. I come from a large merchant family with many brothers spread across the Eastern Frontier. We've been in the trading business for generations, each of us finding our own corner of the world to serve. Finn got the big city, I got the Hearthwilds. Can't say I mind it much - less competition, more adventure!`,
|
|
36
|
+
options: [
|
|
37
|
+
{
|
|
38
|
+
text: `That explains the resemblance.`,
|
|
39
|
+
dismiss: true,
|
|
40
|
+
pureExit: true,
|
|
41
|
+
},
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
text: `Why are you out here with all this fog around?`,
|
|
47
|
+
nextDialogue: {
|
|
48
|
+
text: `Business has been surprisingly good, actually! All this fog and trouble has adventurers coming through in droves - and adventurers always need supplies. Sure, I have to be careful and avoid the Gorkin hunting parties and other odd beasts that wander through from time to time, but the profit margins are excellent when you're one of the few merchants brave enough to set up shop in the wilderness.`,
|
|
49
|
+
options: [
|
|
50
|
+
{
|
|
51
|
+
text: `That's good entrepreneurial spirit.`,
|
|
52
|
+
dismiss: true,
|
|
53
|
+
pureExit: true,
|
|
54
|
+
},
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
...options,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|