@hytopia.com/examples 1.0.14 → 1.0.17

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 (180) hide show
  1. package/frontiers-rpg-game/assets/blocks/Brown_dirt_with_splatters_of_light_green_grass/+x.png +0 -0
  2. package/frontiers-rpg-game/assets/blocks/Brown_dirt_with_splatters_of_light_green_grass/+y.png +0 -0
  3. package/frontiers-rpg-game/assets/blocks/Brown_dirt_with_splatters_of_light_green_grass/+z.png +0 -0
  4. package/frontiers-rpg-game/assets/blocks/Brown_dirt_with_splatters_of_light_green_grass/-x.png +0 -0
  5. package/frontiers-rpg-game/assets/blocks/Brown_dirt_with_splatters_of_light_green_grass/-y.png +0 -0
  6. package/frontiers-rpg-game/assets/blocks/Brown_dirt_with_splatters_of_light_green_grass/-z.png +0 -0
  7. package/frontiers-rpg-game/assets/blocks/carved_stone_face/+x.png +0 -0
  8. package/frontiers-rpg-game/assets/blocks/carved_stone_face/+y.png +0 -0
  9. package/frontiers-rpg-game/assets/blocks/carved_stone_face/+z.png +0 -0
  10. package/frontiers-rpg-game/assets/blocks/carved_stone_face/-x.png +0 -0
  11. package/frontiers-rpg-game/assets/blocks/carved_stone_face/-y.png +0 -0
  12. package/frontiers-rpg-game/assets/blocks/carved_stone_face/-z.png +0 -0
  13. package/frontiers-rpg-game/assets/blocks/coral/+x.png +0 -0
  14. package/frontiers-rpg-game/assets/blocks/coral/+y.png +0 -0
  15. package/frontiers-rpg-game/assets/blocks/coral/+z.png +0 -0
  16. package/frontiers-rpg-game/assets/blocks/coral/-x.png +0 -0
  17. package/frontiers-rpg-game/assets/blocks/coral/-y.png +0 -0
  18. package/frontiers-rpg-game/assets/blocks/coral/-z.png +0 -0
  19. package/frontiers-rpg-game/assets/blocks/square_single_stone_brick/+x.png +0 -0
  20. package/frontiers-rpg-game/assets/blocks/square_single_stone_brick/+y.png +0 -0
  21. package/frontiers-rpg-game/assets/blocks/square_single_stone_brick/+z.png +0 -0
  22. package/frontiers-rpg-game/assets/blocks/square_single_stone_brick/-x.png +0 -0
  23. package/frontiers-rpg-game/assets/blocks/square_single_stone_brick/-y.png +0 -0
  24. package/frontiers-rpg-game/assets/blocks/square_single_stone_brick/-z.png +0 -0
  25. package/frontiers-rpg-game/assets/maps/hearthwilds.json +287978 -0
  26. package/frontiers-rpg-game/assets/models/environment/.optimized/barrel-wood-1/barrel-wood-1-named-nodes.bin +0 -0
  27. package/frontiers-rpg-game/assets/models/environment/.optimized/barrel-wood-1/barrel-wood-1-named-nodes.gltf +294 -0
  28. package/frontiers-rpg-game/assets/models/environment/.optimized/barrel-wood-1/barrel-wood-1.bin +0 -0
  29. package/frontiers-rpg-game/assets/models/environment/.optimized/barrel-wood-1/barrel-wood-1.gltf +136 -0
  30. package/frontiers-rpg-game/assets/models/environment/.optimized/barrel-wood-1/barrel-wood-1.gltf.md5 +1 -0
  31. package/frontiers-rpg-game/assets/models/environment/.optimized/barrel-wood-1/baseColor.png +0 -0
  32. package/frontiers-rpg-game/assets/models/environment/.optimized/barrel-wood-2/barrel-wood-2-named-nodes.bin +0 -0
  33. package/frontiers-rpg-game/assets/models/environment/.optimized/barrel-wood-2/barrel-wood-2-named-nodes.gltf +410 -0
  34. package/frontiers-rpg-game/assets/models/environment/.optimized/barrel-wood-2/barrel-wood-2.bin +0 -0
  35. package/frontiers-rpg-game/assets/models/environment/.optimized/barrel-wood-2/barrel-wood-2.gltf +142 -0
  36. package/frontiers-rpg-game/assets/models/environment/.optimized/barrel-wood-2/barrel-wood-2.gltf.md5 +1 -0
  37. package/frontiers-rpg-game/assets/models/environment/.optimized/barrel-wood-2/baseColor.png +0 -0
  38. package/frontiers-rpg-game/assets/models/environment/.optimized/bush-berry/baseColor.png +0 -0
  39. package/frontiers-rpg-game/assets/models/environment/.optimized/bush-berry/bush-berry-named-nodes.bin +0 -0
  40. package/frontiers-rpg-game/assets/models/environment/.optimized/bush-berry/bush-berry-named-nodes.gltf +621 -0
  41. package/frontiers-rpg-game/assets/models/environment/.optimized/bush-berry/bush-berry.bin +0 -0
  42. package/frontiers-rpg-game/assets/models/environment/.optimized/bush-berry/bush-berry.gltf +629 -0
  43. package/frontiers-rpg-game/assets/models/environment/.optimized/bush-berry/bush-berry.gltf.md5 +1 -0
  44. package/frontiers-rpg-game/assets/models/environment/.optimized/cat-statue/baseColor.png +0 -0
  45. package/frontiers-rpg-game/assets/models/environment/.optimized/cat-statue/cat-statue-named-nodes.bin +0 -0
  46. package/frontiers-rpg-game/assets/models/environment/.optimized/cat-statue/cat-statue-named-nodes.gltf +889 -0
  47. package/frontiers-rpg-game/assets/models/environment/.optimized/cat-statue/cat-statue.bin +0 -0
  48. package/frontiers-rpg-game/assets/models/environment/.optimized/cat-statue/cat-statue.gltf +136 -0
  49. package/frontiers-rpg-game/assets/models/environment/.optimized/cat-statue/cat-statue.gltf.md5 +1 -0
  50. package/frontiers-rpg-game/assets/models/environment/.optimized/dead-tree-big/baseColor.png +0 -0
  51. package/frontiers-rpg-game/assets/models/environment/.optimized/dead-tree-big/dead-tree-big-named-nodes.bin +0 -0
  52. package/frontiers-rpg-game/assets/models/environment/.optimized/dead-tree-big/dead-tree-big-named-nodes.gltf +5292 -0
  53. package/frontiers-rpg-game/assets/models/environment/.optimized/dead-tree-big/dead-tree-big.bin +0 -0
  54. package/frontiers-rpg-game/assets/models/environment/.optimized/dead-tree-big/dead-tree-big.gltf +2623 -0
  55. package/frontiers-rpg-game/assets/models/environment/.optimized/dead-tree-big/dead-tree-big.gltf.md5 +1 -0
  56. package/frontiers-rpg-game/assets/models/environment/.optimized/dead-tree-medium/baseColor.png +0 -0
  57. package/frontiers-rpg-game/assets/models/environment/.optimized/dead-tree-medium/dead-tree-medium-named-nodes.bin +0 -0
  58. package/frontiers-rpg-game/assets/models/environment/.optimized/dead-tree-medium/dead-tree-medium-named-nodes.gltf +2763 -0
  59. package/frontiers-rpg-game/assets/models/environment/.optimized/dead-tree-medium/dead-tree-medium.bin +0 -0
  60. package/frontiers-rpg-game/assets/models/environment/.optimized/dead-tree-medium/dead-tree-medium.gltf +1406 -0
  61. package/frontiers-rpg-game/assets/models/environment/.optimized/dead-tree-medium/dead-tree-medium.gltf.md5 +1 -0
  62. package/frontiers-rpg-game/assets/models/environment/.optimized/fallen-fruit/baseColor.png +0 -0
  63. package/frontiers-rpg-game/assets/models/environment/.optimized/fallen-fruit/fallen-fruit-named-nodes.bin +0 -0
  64. package/frontiers-rpg-game/assets/models/environment/.optimized/fallen-fruit/fallen-fruit-named-nodes.gltf +544 -0
  65. package/frontiers-rpg-game/assets/models/environment/.optimized/fallen-fruit/fallen-fruit.bin +0 -0
  66. package/frontiers-rpg-game/assets/models/environment/.optimized/fallen-fruit/fallen-fruit.gltf +142 -0
  67. package/frontiers-rpg-game/assets/models/environment/.optimized/fallen-fruit/fallen-fruit.gltf.md5 +1 -0
  68. package/frontiers-rpg-game/assets/models/environment/.optimized/flower-tuft/baseColor.png +0 -0
  69. package/frontiers-rpg-game/assets/models/environment/.optimized/flower-tuft/flower-tuft-named-nodes.bin +0 -0
  70. package/frontiers-rpg-game/assets/models/environment/.optimized/flower-tuft/flower-tuft-named-nodes.gltf +1703 -0
  71. package/frontiers-rpg-game/assets/models/environment/.optimized/flower-tuft/flower-tuft.bin +0 -0
  72. package/frontiers-rpg-game/assets/models/environment/.optimized/flower-tuft/flower-tuft.gltf +766 -0
  73. package/frontiers-rpg-game/assets/models/environment/.optimized/flower-tuft/flower-tuft.gltf.md5 +1 -0
  74. package/frontiers-rpg-game/assets/models/environment/.optimized/flowers-cluster/baseColor.png +0 -0
  75. package/frontiers-rpg-game/assets/models/environment/.optimized/flowers-cluster/flowers-cluster-named-nodes.bin +0 -0
  76. package/frontiers-rpg-game/assets/models/environment/.optimized/flowers-cluster/flowers-cluster-named-nodes.gltf +2354 -0
  77. package/frontiers-rpg-game/assets/models/environment/.optimized/flowers-cluster/flowers-cluster.bin +0 -0
  78. package/frontiers-rpg-game/assets/models/environment/.optimized/flowers-cluster/flowers-cluster.gltf +685 -0
  79. package/frontiers-rpg-game/assets/models/environment/.optimized/flowers-cluster/flowers-cluster.gltf.md5 +1 -0
  80. package/frontiers-rpg-game/assets/models/environment/.optimized/grass-tall/baseColor.png +0 -0
  81. package/frontiers-rpg-game/assets/models/environment/.optimized/grass-tall/grass-tall-named-nodes.bin +0 -0
  82. package/frontiers-rpg-game/assets/models/environment/.optimized/grass-tall/grass-tall-named-nodes.gltf +365 -0
  83. package/frontiers-rpg-game/assets/models/environment/.optimized/grass-tall/grass-tall.bin +0 -0
  84. package/frontiers-rpg-game/assets/models/environment/.optimized/grass-tall/grass-tall.gltf +301 -0
  85. package/frontiers-rpg-game/assets/models/environment/.optimized/grass-tall/grass-tall.gltf.md5 +1 -0
  86. package/frontiers-rpg-game/assets/models/environment/.optimized/grass-wild-clump/baseColor.png +0 -0
  87. package/frontiers-rpg-game/assets/models/environment/.optimized/grass-wild-clump/grass-wild-clump-named-nodes.bin +0 -0
  88. package/frontiers-rpg-game/assets/models/environment/.optimized/grass-wild-clump/grass-wild-clump-named-nodes.gltf +893 -0
  89. package/frontiers-rpg-game/assets/models/environment/.optimized/grass-wild-clump/grass-wild-clump.bin +0 -0
  90. package/frontiers-rpg-game/assets/models/environment/.optimized/grass-wild-clump/grass-wild-clump.gltf +893 -0
  91. package/frontiers-rpg-game/assets/models/environment/.optimized/grass-wild-clump/grass-wild-clump.gltf.md5 +1 -0
  92. package/frontiers-rpg-game/assets/models/environment/.optimized/mushroom-red-multiple/baseColor.png +0 -0
  93. package/frontiers-rpg-game/assets/models/environment/.optimized/mushroom-red-multiple/mushroom-red-multiple-named-nodes.bin +0 -0
  94. package/frontiers-rpg-game/assets/models/environment/.optimized/mushroom-red-multiple/mushroom-red-multiple-named-nodes.gltf +260 -0
  95. package/frontiers-rpg-game/assets/models/environment/.optimized/mushroom-red-multiple/mushroom-red-multiple.bin +0 -0
  96. package/frontiers-rpg-game/assets/models/environment/.optimized/mushroom-red-multiple/mushroom-red-multiple.gltf +136 -0
  97. package/frontiers-rpg-game/assets/models/environment/.optimized/mushroom-red-multiple/mushroom-red-multiple.gltf.md5 +1 -0
  98. package/frontiers-rpg-game/assets/models/environment/.optimized/oak-stairs/baseColor.png +0 -0
  99. package/frontiers-rpg-game/assets/models/environment/.optimized/oak-stairs/oak-stairs.gltf.md5 +1 -1
  100. package/frontiers-rpg-game/assets/models/environment/.optimized/oak-tree-big/baseColor.png +0 -0
  101. package/frontiers-rpg-game/assets/models/environment/.optimized/oak-tree-big/oak-tree-big-named-nodes.bin +0 -0
  102. package/frontiers-rpg-game/assets/models/environment/.optimized/oak-tree-big/oak-tree-big-named-nodes.gltf +3299 -0
  103. package/frontiers-rpg-game/assets/models/environment/.optimized/oak-tree-big/oak-tree-big.bin +0 -0
  104. package/frontiers-rpg-game/assets/models/environment/.optimized/oak-tree-big/oak-tree-big.gltf +1359 -0
  105. package/frontiers-rpg-game/assets/models/environment/.optimized/oak-tree-big/oak-tree-big.gltf.md5 +1 -0
  106. package/frontiers-rpg-game/assets/models/environment/.optimized/oak-tree-medium/baseColor.png +0 -0
  107. package/frontiers-rpg-game/assets/models/environment/.optimized/oak-tree-medium/oak-tree-medium-named-nodes.bin +0 -0
  108. package/frontiers-rpg-game/assets/models/environment/.optimized/oak-tree-medium/oak-tree-medium-named-nodes.gltf +7187 -0
  109. package/frontiers-rpg-game/assets/models/environment/.optimized/oak-tree-medium/oak-tree-medium.bin +0 -0
  110. package/frontiers-rpg-game/assets/models/environment/.optimized/oak-tree-medium/oak-tree-medium.gltf +1897 -0
  111. package/frontiers-rpg-game/assets/models/environment/.optimized/oak-tree-medium/oak-tree-medium.gltf.md5 +1 -0
  112. package/frontiers-rpg-game/assets/models/environment/.optimized/oak-tree-small/baseColor.png +0 -0
  113. package/frontiers-rpg-game/assets/models/environment/.optimized/oak-tree-small/oak-tree-small-named-nodes.bin +0 -0
  114. package/frontiers-rpg-game/assets/models/environment/.optimized/oak-tree-small/oak-tree-small-named-nodes.gltf +3455 -0
  115. package/frontiers-rpg-game/assets/models/environment/.optimized/oak-tree-small/oak-tree-small.bin +0 -0
  116. package/frontiers-rpg-game/assets/models/environment/.optimized/oak-tree-small/oak-tree-small.gltf +765 -0
  117. package/frontiers-rpg-game/assets/models/environment/.optimized/oak-tree-small/oak-tree-small.gltf.md5 +1 -0
  118. package/frontiers-rpg-game/assets/models/environment/.optimized/redcap-mushroom-group/baseColor.png +0 -0
  119. package/frontiers-rpg-game/assets/models/environment/.optimized/redcap-mushroom-group/redcap-mushroom-group-named-nodes.bin +0 -0
  120. package/frontiers-rpg-game/assets/models/environment/.optimized/redcap-mushroom-group/redcap-mushroom-group-named-nodes.gltf +487 -0
  121. package/frontiers-rpg-game/assets/models/environment/.optimized/redcap-mushroom-group/redcap-mushroom-group.bin +0 -0
  122. package/frontiers-rpg-game/assets/models/environment/.optimized/redcap-mushroom-group/redcap-mushroom-group.gltf +136 -0
  123. package/frontiers-rpg-game/assets/models/environment/.optimized/redcap-mushroom-group/redcap-mushroom-group.gltf.md5 +1 -0
  124. package/frontiers-rpg-game/assets/models/environment/.optimized/scattered-pebbles/baseColor.png +0 -0
  125. package/frontiers-rpg-game/assets/models/environment/.optimized/scattered-pebbles/scattered-pebbles-named-nodes.bin +0 -0
  126. package/frontiers-rpg-game/assets/models/environment/.optimized/scattered-pebbles/scattered-pebbles-named-nodes.gltf +356 -0
  127. package/frontiers-rpg-game/assets/models/environment/.optimized/scattered-pebbles/scattered-pebbles.bin +0 -0
  128. package/frontiers-rpg-game/assets/models/environment/.optimized/scattered-pebbles/scattered-pebbles.gltf +136 -0
  129. package/frontiers-rpg-game/assets/models/environment/.optimized/scattered-pebbles/scattered-pebbles.gltf.md5 +1 -0
  130. package/frontiers-rpg-game/assets/models/environment/.optimized/shell-starfish-group/baseColor.png +0 -0
  131. package/frontiers-rpg-game/assets/models/environment/.optimized/shell-starfish-group/shell-starfish-group-named-nodes.bin +0 -0
  132. package/frontiers-rpg-game/assets/models/environment/.optimized/shell-starfish-group/shell-starfish-group-named-nodes.gltf +772 -0
  133. package/frontiers-rpg-game/assets/models/environment/.optimized/shell-starfish-group/shell-starfish-group.bin +0 -0
  134. package/frontiers-rpg-game/assets/models/environment/.optimized/shell-starfish-group/shell-starfish-group.gltf +142 -0
  135. package/frontiers-rpg-game/assets/models/environment/.optimized/shell-starfish-group/shell-starfish-group.gltf.md5 +1 -0
  136. package/frontiers-rpg-game/assets/models/environment/barrel-wood-1.gltf +1 -0
  137. package/frontiers-rpg-game/assets/models/environment/barrel-wood-2.gltf +1 -0
  138. package/frontiers-rpg-game/assets/models/environment/bush-berry.gltf +1 -0
  139. package/frontiers-rpg-game/assets/models/environment/cat-statue.gltf +1 -0
  140. package/frontiers-rpg-game/assets/models/environment/dead-tree-big.gltf +1 -0
  141. package/frontiers-rpg-game/assets/models/environment/dead-tree-medium.gltf +1 -0
  142. package/frontiers-rpg-game/assets/models/environment/fallen-fruit.gltf +1 -0
  143. package/frontiers-rpg-game/assets/models/environment/flower-tuft.gltf +1 -0
  144. package/frontiers-rpg-game/assets/models/environment/flowers-cluster.gltf +1 -0
  145. package/frontiers-rpg-game/assets/models/environment/grass-tall.gltf +1 -0
  146. package/frontiers-rpg-game/assets/models/environment/grass-wild-clump.gltf +1 -0
  147. package/frontiers-rpg-game/assets/models/environment/mushroom-red-multiple.gltf +1 -0
  148. package/frontiers-rpg-game/assets/models/environment/oak-stairs.gltf +1 -1
  149. package/frontiers-rpg-game/assets/models/environment/oak-tree-big.gltf +1 -0
  150. package/frontiers-rpg-game/assets/models/environment/oak-tree-medium.gltf +1 -0
  151. package/frontiers-rpg-game/assets/models/environment/oak-tree-small.gltf +1 -0
  152. package/frontiers-rpg-game/assets/models/environment/redcap-mushroom-group.gltf +1 -0
  153. package/frontiers-rpg-game/assets/models/environment/scattered-pebbles.gltf +1 -0
  154. package/frontiers-rpg-game/assets/models/environment/shell-starfish-group.gltf +1 -0
  155. package/frontiers-rpg-game/assets/ui/hud.html +24 -3
  156. package/frontiers-rpg-game/assets/ui/index.html +41 -14
  157. package/frontiers-rpg-game/assets/ui/menus/quests.html +4 -3
  158. package/frontiers-rpg-game/assets/ui/scene-ui-templates/entity-nameplate.html +12 -8
  159. package/frontiers-rpg-game/assets/ui/shared/item-tooltips.html +1 -0
  160. package/frontiers-rpg-game/dev/persistence/player-player-1.json +18 -55
  161. package/frontiers-rpg-game/src/GameClock.ts +13 -3
  162. package/frontiers-rpg-game/src/GameManager.ts +8 -0
  163. package/frontiers-rpg-game/src/GamePlayer.ts +4 -0
  164. package/frontiers-rpg-game/src/GamePlayerEntity.ts +46 -9
  165. package/frontiers-rpg-game/src/GameRegion.ts +17 -2
  166. package/frontiers-rpg-game/src/entities/BaseCombatEntity.ts +33 -1
  167. package/frontiers-rpg-game/src/entities/BaseEntity.ts +23 -13
  168. package/frontiers-rpg-game/src/entities/enemies/QueenWeaverEntity.ts +1 -0
  169. package/frontiers-rpg-game/src/entities/enemies/RatkinBruteEntity.ts +2 -2
  170. package/frontiers-rpg-game/src/entities/enemies/RatkinRangerEntity.ts +2 -2
  171. package/frontiers-rpg-game/src/entities/enemies/RatkinSpellcasterEntity.ts +2 -2
  172. package/frontiers-rpg-game/src/entities/enemies/RatkinWarriorEntity.ts +2 -2
  173. package/frontiers-rpg-game/src/items/BaseItem.ts +1 -1
  174. package/frontiers-rpg-game/src/items/BaseWeaponItem.ts +9 -2
  175. package/frontiers-rpg-game/src/items/consumables/MinorHealingPotionItem.ts +1 -1
  176. package/frontiers-rpg-game/src/items/weapons/DullSwordItem.ts +3 -3
  177. package/frontiers-rpg-game/src/items/weapons/IronLongSwordItem.ts +3 -3
  178. package/frontiers-rpg-game/src/items/weapons/TrainingSwordItem.ts +3 -3
  179. package/frontiers-rpg-game/src/regions/hearthwilds/HearthwildsRegion.ts +25 -0
  180. package/package.json +1 -1
@@ -33,7 +33,7 @@ export default class RatkinSpellcasterEntity extends BaseCombatEntity {
33
33
  weight: 2,
34
34
  },
35
35
  ],
36
- combatExperienceReward: 20,
36
+ combatExperienceReward: 18,
37
37
  deathAnimations: [ 'death' ],
38
38
  deathDespawnDelayMs: 1000,
39
39
  deathItemDrops: [
@@ -46,7 +46,7 @@ export default class RatkinSpellcasterEntity extends BaseCombatEntity {
46
46
  { itemClass: CommonMushroomItem, minQuantity: 1, maxQuantity: 3, weight: 1 },
47
47
  { itemClass: CommonSeedsItem, minQuantity: 1, maxQuantity: 3, weight: 1 },
48
48
  ],
49
- health: 100,
49
+ health: 50,
50
50
  idleAnimations: [ 'idle' ],
51
51
  modelUri: 'models/enemies/ratkin-spellcaster.gltf',
52
52
  modelScale: 0.8,
@@ -41,7 +41,7 @@ export default class RatkinWarriorEntity extends BaseCombatEntity {
41
41
  weight: 2,
42
42
  },
43
43
  ],
44
- combatExperienceReward: 15,
44
+ combatExperienceReward: 18,
45
45
  deathAnimations: [ 'death' ],
46
46
  deathDespawnDelayMs: 1000,
47
47
  deathItemDrops: [
@@ -54,7 +54,7 @@ export default class RatkinWarriorEntity extends BaseCombatEntity {
54
54
  { itemClass: CommonMushroomItem, minQuantity: 1, maxQuantity: 3, weight: 1 },
55
55
  { itemClass: CommonSeedsItem, minQuantity: 1, maxQuantity: 3, weight: 1 },
56
56
  ],
57
- health: 100,
57
+ health: 50,
58
58
  idleAnimations: [ 'idle' ],
59
59
  modelUri: 'models/enemies/ratkin-warrior.gltf',
60
60
  modelScale: 0.8,
@@ -175,7 +175,7 @@ export default abstract class BaseItem implements IInteractable {
175
175
  rigidBodyOptions: {
176
176
  type: RigidBodyType.DYNAMIC,
177
177
  colliders: [
178
- Collider.optionsFromModelUri(modelUri, this.dropModelScale * 4, ColliderShape.BLOCK)
178
+ Collider.optionsFromModelUri(modelUri, this.dropModelScale * 6, ColliderShape.BLOCK)
179
179
  ],
180
180
  },
181
181
  });
@@ -54,6 +54,7 @@ export default abstract class BaseWeaponItem extends BaseItem {
54
54
  private readonly _attack?: BaseWeaponItemAttack;
55
55
  private readonly _specialAttack?: BaseWeaponItemAttack;
56
56
  private _attackCooledDownAtMs: number = 0;
57
+ private _specialAttackCooledDownAtMs: number = 0;
57
58
 
58
59
  public constructor(overrides?: WeaponOverrides) {
59
60
  super(overrides);
@@ -63,6 +64,7 @@ export default abstract class BaseWeaponItem extends BaseItem {
63
64
  }
64
65
 
65
66
  public get canAttack(): boolean { return performance.now() >= this._attackCooledDownAtMs; }
67
+ public get canSpecialAttack(): boolean { return performance.now() >= this._specialAttackCooledDownAtMs; }
66
68
 
67
69
  public override clone(overrides?: WeaponOverrides): BaseWeaponItem {
68
70
  const WeaponClass = this.constructor as any;
@@ -93,12 +95,13 @@ export default abstract class BaseWeaponItem extends BaseItem {
93
95
  }
94
96
 
95
97
  public performSpecialAttack(): void {
96
- if (!this.entity?.parent || !this.canAttack) {
98
+ if (!this.entity?.parent || !this.canSpecialAttack) {
97
99
  return;
98
100
  }
99
101
 
100
102
  this.entity.parent.startModelOneshotAnimations(this.specialAttack.animations);
101
- this.updateAttackCooldown(this.specialAttack.cooldownMs);
103
+ this.updateAttackCooldown(this.specialAttack.damageDelayMs); // prevents spamming regular attack mid-special attack
104
+ this.updateSpecialAttackCooldown(this.specialAttack.cooldownMs);
102
105
  setTimeout(() => this.processAttackDamageTargets(this.specialAttack), this.specialAttack.damageDelayMs);
103
106
  }
104
107
 
@@ -181,4 +184,8 @@ export default abstract class BaseWeaponItem extends BaseItem {
181
184
  protected updateAttackCooldown(attackCooldownMs: number): void {
182
185
  this._attackCooledDownAtMs = performance.now() + attackCooldownMs;
183
186
  }
187
+
188
+ protected updateSpecialAttackCooldown(specialAttackCooldownMs: number): void {
189
+ this._specialAttackCooledDownAtMs = performance.now() + specialAttackCooldownMs;
190
+ }
184
191
  }
@@ -7,7 +7,7 @@ export default class MinorHealingPotionItem extends BaseConsumableItem {
7
7
  static readonly iconImageUri = 'icons/items/minor-healing-potion.png';
8
8
  static readonly consumeCooldownMs = 2000;
9
9
  static readonly description = `A common remedy used by Frontier travelers and novice adventurers.`;
10
- static readonly buyPrice = 50;
10
+ static readonly buyPrice = 25;
11
11
  static readonly sellPrice = 5;
12
12
  static readonly stackable = true;
13
13
  static readonly consumeRequiresDamaged = true;
@@ -20,11 +20,11 @@ export default class DullSwordItem extends BaseWeaponItem {
20
20
  static readonly specialAttack: BaseWeaponItemAttack = {
21
21
  id: 'spin',
22
22
  animations: ['sword-attack-tornado'],
23
- cooldownMs: 1500,
24
- damage: 15,
23
+ cooldownMs: 2500,
24
+ damage: 20,
25
25
  damageDelayMs: 200,
26
26
  damageVariance: 0.2,
27
- knockbackForce: 7,
27
+ knockbackForce: 9,
28
28
  reach: 1.5,
29
29
  };
30
30
  static readonly description = 'A dull metal sword. Better than nothing.';
@@ -20,11 +20,11 @@ export default class IronLongSwordItem extends BaseWeaponItem {
20
20
  static readonly specialAttack: BaseWeaponItemAttack = {
21
21
  id: 'spin',
22
22
  animations: ['sword-attack-tornado'],
23
- cooldownMs: 1500,
24
- damage: 20,
23
+ cooldownMs: 2500,
24
+ damage: 28,
25
25
  damageDelayMs: 200,
26
26
  damageVariance: 0.2,
27
- knockbackForce: 7,
27
+ knockbackForce: 9,
28
28
  reach: 2,
29
29
  };
30
30
  static readonly description = `A long iron sword. It's heavy and slow, but hits harder than a normal sword.`;
@@ -20,11 +20,11 @@ export default class TrainingSwordItem extends BaseWeaponItem {
20
20
  static readonly specialAttack: BaseWeaponItemAttack = {
21
21
  id: 'spin',
22
22
  animations: ['sword-attack-tornado'],
23
- cooldownMs: 1500,
24
- damage: 5,
23
+ cooldownMs: 2500,
24
+ damage: 8,
25
25
  damageDelayMs: 200,
26
26
  damageVariance: 0.2,
27
- knockbackForce: 7,
27
+ knockbackForce: 9,
28
28
  reach: 1.5,
29
29
  };
30
30
  static readonly description = 'A training sword made from wood. Useless for combat.';
@@ -0,0 +1,25 @@
1
+ import { Quaternion } from 'hytopia';
2
+ import GameRegion from '../../GameRegion';
3
+ import Spawner from '../../systems/Spawner';
4
+ import PortalEntity from '../../entities/PortalEntity';
5
+ import type { WanderOptions } from '../../entities/BaseEntity';
6
+
7
+ import hearthwildsMap from '../../../assets/maps/hearthwilds.json';
8
+
9
+ export default class HearthwildsRegion extends GameRegion {
10
+ public constructor() {
11
+ super({
12
+ id: 'hearthwilds',
13
+ name: 'Hearthwilds',
14
+ map: hearthwildsMap,
15
+ skyboxUri: 'skyboxes/partly-cloudy',
16
+ spawnPoint: { x: 200, y: 15, z: -75 },
17
+ ambientAudioUri: 'audio/music/jungle-theme-looping.mp3',
18
+ });
19
+ }
20
+
21
+ protected override setup(): void {
22
+ super.setup();
23
+
24
+ }
25
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hytopia.com/examples",
3
- "version": "1.0.14",
3
+ "version": "1.0.17",
4
4
  "description": "",
5
5
  "license": "ISC",
6
6
  "author": "",