@rpg-engine/long-bow 0.3.96 → 0.3.98

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 (182) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +181 -181
  3. package/dist/components/CircularController/CircularController.d.ts +1 -0
  4. package/dist/components/Shortcuts/Shortcuts.d.ts +1 -0
  5. package/dist/components/Shortcuts/useShortcutCooldown.d.ts +4 -0
  6. package/dist/components/Spellbook/Spell.d.ts +5 -4
  7. package/dist/components/Spellbook/Spellbook.d.ts +3 -2
  8. package/dist/components/Spellbook/cards/MobileSpellTooltip.d.ts +15 -0
  9. package/dist/components/Spellbook/cards/SpellInfo.d.ts +7 -0
  10. package/dist/components/Spellbook/cards/SpellInfoDisplay.d.ts +7 -0
  11. package/dist/components/Spellbook/cards/SpellInfoWrapper.d.ts +9 -0
  12. package/dist/components/Spellbook/cards/SpellTooltip.d.ts +6 -0
  13. package/dist/components/Spellbook/mockSpells.d.ts +2 -2
  14. package/dist/libs/CastingTypeHelper.d.ts +1 -0
  15. package/dist/long-bow.cjs.development.js +1525 -1255
  16. package/dist/long-bow.cjs.development.js.map +1 -1
  17. package/dist/long-bow.cjs.production.min.js +1 -1
  18. package/dist/long-bow.cjs.production.min.js.map +1 -1
  19. package/dist/long-bow.esm.js +1531 -1261
  20. package/dist/long-bow.esm.js.map +1 -1
  21. package/dist/stories/SpellInfoDisplay.stories.d.ts +8 -0
  22. package/package.json +100 -100
  23. package/src/.DS_Store +0 -0
  24. package/src/components/.DS_Store +0 -0
  25. package/src/components/Abstractions/ModalPortal.tsx +22 -22
  26. package/src/components/Abstractions/SlotsContainer.tsx +62 -62
  27. package/src/components/Arrow/SelectArrow.tsx +69 -69
  28. package/src/components/Arrow/img/arrow01-left-clicked.png +0 -0
  29. package/src/components/Arrow/img/arrow01-left.png +0 -0
  30. package/src/components/Arrow/img/arrow01-right-clicked.png +0 -0
  31. package/src/components/Arrow/img/arrow01-right.png +0 -0
  32. package/src/components/Arrow/img/arrow02-left-clicked.png +0 -0
  33. package/src/components/Arrow/img/arrow02-left.png +0 -0
  34. package/src/components/Arrow/img/arrow02-right-clicked.png +0 -0
  35. package/src/components/Arrow/img/arrow02-right.png +0 -0
  36. package/src/components/Button.tsx +40 -40
  37. package/src/components/Character/CharacterSelection.tsx +98 -98
  38. package/src/components/CharacterStatus/CharacterStatus.tsx +120 -120
  39. package/src/components/Chat/Chat.tsx +196 -196
  40. package/src/components/Chatdeprecated/ChatDeprecated.tsx +198 -198
  41. package/src/components/CheckButton.tsx +65 -65
  42. package/src/components/CircularController/CircularController.tsx +282 -249
  43. package/src/components/CraftBook/CraftBook.tsx +286 -286
  44. package/src/components/CraftBook/CraftingRecipe.tsx +161 -161
  45. package/src/components/CraftBook/MockItems.ts +101 -101
  46. package/src/components/DraggableContainer.tsx +180 -180
  47. package/src/components/DropdownSelectorContainer.tsx +42 -42
  48. package/src/components/Equipment/EquipmentSet.tsx +199 -199
  49. package/src/components/HistoryDialog.tsx +104 -104
  50. package/src/components/Input.tsx +15 -15
  51. package/src/components/InputRadio.tsx +41 -41
  52. package/src/components/Item/Cards/ItemInfo.tsx +298 -288
  53. package/src/components/Item/Cards/ItemInfoDisplay.tsx +135 -135
  54. package/src/components/Item/Cards/ItemInfoWrapper.tsx +62 -62
  55. package/src/components/Item/Cards/ItemTooltip.tsx +83 -83
  56. package/src/components/Item/Cards/MobileItemTooltip.tsx +149 -149
  57. package/src/components/Item/Inventory/ErrorBoundary.tsx +42 -42
  58. package/src/components/Item/Inventory/ItemContainer.tsx +231 -231
  59. package/src/components/Item/Inventory/ItemContainerTypes.ts +6 -6
  60. package/src/components/Item/Inventory/ItemQuantitySelector.tsx +138 -138
  61. package/src/components/Item/Inventory/ItemSlot.tsx +580 -580
  62. package/src/components/Item/Inventory/itemContainerHelper.ts +175 -175
  63. package/src/components/ListMenu.tsx +63 -63
  64. package/src/components/Marketplace/Marketplace.tsx +132 -132
  65. package/src/components/Marketplace/MarketplaceRows.tsx +171 -171
  66. package/src/components/Marketplace/__mocks__/index.tsx +65 -65
  67. package/src/components/Multitab/Tab.tsx +66 -66
  68. package/src/components/Multitab/TabBody.tsx +13 -13
  69. package/src/components/Multitab/TabsContainer.tsx +97 -97
  70. package/src/components/NPCDialog/.DS_Store +0 -0
  71. package/src/components/NPCDialog/NPCDialog.tsx +121 -121
  72. package/src/components/NPCDialog/NPCDialogText.tsx +113 -113
  73. package/src/components/NPCDialog/NPCMultiDialog.tsx +159 -159
  74. package/src/components/NPCDialog/QuestionDialog/QuestionDialog.tsx +237 -237
  75. package/src/components/NPCDialog/img/.DS_Store +0 -0
  76. package/src/components/ProgressBar.tsx +92 -92
  77. package/src/components/PropertySelect/PropertySelect.tsx +106 -106
  78. package/src/components/QuestInfo/QuestInfo.tsx +233 -233
  79. package/src/components/QuestList.tsx +135 -135
  80. package/src/components/RPGUIContainer.tsx +47 -47
  81. package/src/components/RPGUIForceRenderStart.tsx +45 -45
  82. package/src/components/RPGUIRoot.tsx +14 -14
  83. package/src/components/RadioButton.tsx +53 -53
  84. package/src/components/RadioInput/RadioButton.tsx +96 -96
  85. package/src/components/RadioInput/RadioInput.tsx +102 -102
  86. package/src/components/RadioInput/instruments.ts +15 -15
  87. package/src/components/RangeSlider.tsx +78 -78
  88. package/src/components/RelativeListMenu.tsx +90 -90
  89. package/src/components/ScrollList.tsx +79 -79
  90. package/src/components/Shortcuts/Shortcuts.tsx +192 -153
  91. package/src/components/Shortcuts/ShortcutsSetter.tsx +139 -139
  92. package/src/components/Shortcuts/SingleShortcut.ts +82 -62
  93. package/src/components/Shortcuts/useShortcutCooldown.ts +24 -0
  94. package/src/components/SimpleProgressBar.tsx +62 -62
  95. package/src/components/SkillProgressBar.tsx +133 -133
  96. package/src/components/SkillsContainer.tsx +206 -206
  97. package/src/components/Spellbook/Spell.tsx +236 -201
  98. package/src/components/Spellbook/Spellbook.tsx +159 -153
  99. package/src/components/Spellbook/cards/MobileSpellTooltip.tsx +137 -0
  100. package/src/components/Spellbook/cards/SpellInfo.tsx +132 -0
  101. package/src/components/Spellbook/cards/SpellInfoDisplay.tsx +31 -0
  102. package/src/components/Spellbook/cards/SpellInfoWrapper.tsx +48 -0
  103. package/src/components/Spellbook/cards/SpellTooltip.tsx +70 -0
  104. package/src/components/Spellbook/constants.ts +8 -8
  105. package/src/components/Spellbook/mockSpells.ts +85 -60
  106. package/src/components/StaticBook/StaticBook.tsx +103 -103
  107. package/src/components/TextArea.tsx +11 -11
  108. package/src/components/TimeWidget/DayNightPeriod/DayNightPeriod.tsx +35 -35
  109. package/src/components/TimeWidget/TimeWidget.tsx +65 -65
  110. package/src/components/TradingMenu/TradingItemRow.tsx +199 -199
  111. package/src/components/TradingMenu/TradingMenu.tsx +219 -219
  112. package/src/components/TradingMenu/items.mock.ts +48 -48
  113. package/src/components/Truncate.tsx +25 -25
  114. package/src/components/itemSelector/ItemSelector.tsx +136 -136
  115. package/src/components/shared/Column.tsx +16 -16
  116. package/src/components/shared/Ellipsis.tsx +68 -68
  117. package/src/components/shared/SpriteFromAtlas.tsx +104 -104
  118. package/src/components/typography/DynamicText.tsx +49 -49
  119. package/src/constants/uiColors.ts +20 -20
  120. package/src/constants/uiDevices.ts +3 -3
  121. package/src/constants/uiFonts.ts +12 -12
  122. package/src/hooks/useEventListener.ts +21 -21
  123. package/src/hooks/useOutsideAlerter.ts +25 -25
  124. package/src/index.tsx +42 -42
  125. package/src/libs/CastingTypeHelper.ts +8 -0
  126. package/src/libs/StringHelpers.ts +3 -3
  127. package/src/libs/itemCounter.ts +21 -21
  128. package/src/mocks/.DS_Store +0 -0
  129. package/src/mocks/atlas/.DS_Store +0 -0
  130. package/src/mocks/atlas/entities/entities.json +20215 -20215
  131. package/src/mocks/atlas/icons/icons.json +735 -735
  132. package/src/mocks/atlas/items/items.json +12086 -12086
  133. package/src/mocks/equipmentSet.mocks.ts +391 -391
  134. package/src/mocks/itemContainer.mocks.ts +605 -605
  135. package/src/mocks/skills.mocks.ts +128 -128
  136. package/src/stories/Arrow.stories.tsx +26 -26
  137. package/src/stories/Button.stories.tsx +36 -36
  138. package/src/stories/CharacterSelection.stories.tsx +44 -44
  139. package/src/stories/CharacterStatus.stories.tsx +29 -29
  140. package/src/stories/Chat.stories.tsx +187 -187
  141. package/src/stories/ChatDeprecated.stories.tsx +170 -170
  142. package/src/stories/CheckButton.stories.tsx +48 -48
  143. package/src/stories/CircullarController.stories.tsx +37 -37
  144. package/src/stories/CraftBook.stories.tsx +42 -42
  145. package/src/stories/DayNightPeriod.stories.tsx +27 -27
  146. package/src/stories/DraggableContainer.stories.tsx +28 -28
  147. package/src/stories/Dropdown.stories.tsx +46 -46
  148. package/src/stories/DropdownSelectorContainer.stories.tsx +41 -41
  149. package/src/stories/EquipmentSet.stories.tsx +65 -65
  150. package/src/stories/HistoryDialog.stories.tsx +61 -61
  151. package/src/stories/ItemContainer.stories.tsx +201 -201
  152. package/src/stories/ItemInfoDisplay.stories.tsx +33 -33
  153. package/src/stories/ItemQuantitySelector.stories.tsx +26 -26
  154. package/src/stories/ItemSelector.stories.tsx +77 -77
  155. package/src/stories/ItemTradingComponent.stories.tsx +35 -35
  156. package/src/stories/ListMenu.stories.tsx +56 -56
  157. package/src/stories/Marketplace.stories.tsx +42 -42
  158. package/src/stories/MarketplaceRows.stories.tsx +28 -28
  159. package/src/stories/Multitab.stories.tsx +51 -51
  160. package/src/stories/NPCDialog.stories.tsx +130 -130
  161. package/src/stories/NPCMultiDialog.stories.tsx +71 -71
  162. package/src/stories/ProgressBar.stories.tsx +23 -23
  163. package/src/stories/PropertySelect.stories.tsx +40 -40
  164. package/src/stories/QuestInfo.stories.tsx +107 -107
  165. package/src/stories/QuestList.stories.tsx +82 -82
  166. package/src/stories/RPGUIContainers.stories.tsx +42 -42
  167. package/src/stories/RadioButton.stories.tsx +49 -49
  168. package/src/stories/RadioInput.stories.tsx +34 -34
  169. package/src/stories/RangeSlider.stories.tsx +64 -64
  170. package/src/stories/ScrollList.stories.tsx +85 -85
  171. package/src/stories/Shortcuts.stories.tsx +39 -39
  172. package/src/stories/SimpleProgressBar.stories.tsx +22 -22
  173. package/src/stories/SkillProgressBar.stories.tsx +34 -34
  174. package/src/stories/SkillsContainer.stories.tsx +35 -35
  175. package/src/stories/SpellInfoDisplay.stories.tsx +27 -0
  176. package/src/stories/Spellbook.stories.tsx +104 -104
  177. package/src/stories/StaticBook.stories.tsx +32 -32
  178. package/src/stories/Text.stories.tsx +42 -42
  179. package/src/stories/TimeWidget.stories.tsx +27 -27
  180. package/src/stories/TradingMenu.stories.tsx +47 -47
  181. package/src/types/eventTypes.ts +4 -4
  182. package/src/types/index.d.ts +2 -2
@@ -1,6 +1,6 @@
1
1
  import React, { Component, useState, useEffect, useRef, useMemo, Fragment } from 'react';
2
2
  import styled from 'styled-components';
3
- import { GRID_WIDTH, GRID_HEIGHT, ShortcutType, getItemTextureKeyPath, ItemContainerType, ItemType, DepotSocketEvents, ItemSocketEvents, ItemSocketEventsDisplayLabels, ActionsForInventory, ActionsForEquipmentSet, ActionsForLoot, ActionsForMapContainer, ItemRarities, ItemSubType, ItemSlotType, getSPForLevel, PeriodOfDay, isMobileOrTablet } from '@rpg-engine/shared';
3
+ import { GRID_WIDTH, GRID_HEIGHT, ShortcutType, getItemTextureKeyPath, ItemContainerType, ItemType, DepotSocketEvents, ItemSocketEvents, ItemSocketEventsDisplayLabels, ActionsForInventory, ActionsForEquipmentSet, ActionsForLoot, ActionsForMapContainer, ItemRarities, ItemSubType, ItemSlotType, isMobileOrTablet, getSPForLevel, PeriodOfDay } from '@rpg-engine/shared';
4
4
  import dayjs from 'dayjs';
5
5
  import { ErrorBoundary as ErrorBoundary$1 } from 'react-error-boundary';
6
6
  import { RxPaperPlane } from 'react-icons/rx';
@@ -12844,7 +12844,31 @@ var CheckButton = function CheckButton(_ref) {
12844
12844
  var SingleShortcut = /*#__PURE__*/styled.button.withConfig({
12845
12845
  displayName: "SingleShortcut",
12846
12846
  componentId: "sc-vz5ev8-0"
12847
- })(["width:3rem;height:3rem;background-color:", ";border:2px solid ", ";border-radius:50%;text-transform:uppercase;font-size:0.7rem;font-weight:bold;display:flex;align-items:center;justify-content:center;position:relative;span{pointer-events:none;}.mana{position:absolute;top:-5px;right:0;font-size:0.65rem;color:", ";}.qty{position:absolute;top:-5px;right:0;font-size:0.65rem;}.magicWords{margin-top:4px;}.keyboard{position:absolute;bottom:-5px;left:0;font-size:0.65rem;color:", ";}&:hover,&:focus{background-color:", ";}&:active{background-color:", ";border-color:", ";}&:disabled{opacity:0.5;}"], uiColors.lightGray, uiColors.darkGray, uiColors.blue, uiColors.yellow, uiColors.darkGray, uiColors.gray, uiColors.yellow);
12847
+ })(["width:3rem;height:3rem;background-color:", ";border:2px solid ", ";border-radius:50%;text-transform:uppercase;font-size:0.7rem;font-weight:bold;display:flex;align-items:center;justify-content:center;position:relative;span{pointer-events:none;}.mana{position:absolute;top:-5px;right:0;font-size:0.65rem;color:", ";}.qty{position:absolute;top:-5px;right:0;font-size:0.65rem;}.magicWords{margin-top:4px;}.keyboard{position:absolute;bottom:-5px;left:0;font-size:0.65rem;color:", ";}.onCooldown{color:", ";}.cooldown{position:absolute;z-index:1;top:0;left:0;width:100%;height:100%;border-radius:inherit;background-color:rgba(0 0 0 / 60%);font-size:0.7rem;display:flex;align-items:center;justify-content:center;color:", ";}&:hover,&:focus{background-color:", ";}&:active{background-color:", ";border-color:", ";}&:disabled{opacity:0.5;}"], uiColors.lightGray, uiColors.darkGray, uiColors.blue, uiColors.yellow, uiColors.gray, uiColors.darkYellow, uiColors.darkGray, uiColors.gray, uiColors.yellow);
12848
+
12849
+ var useShortcutCooldown = function useShortcutCooldown(onShortcutCast) {
12850
+ var _useState = useState(0),
12851
+ shortcutCooldown = _useState[0],
12852
+ setShortcutCooldown = _useState[1];
12853
+ var cooldownTimeout = useRef(null);
12854
+ var handleShortcutCast = function handleShortcutCast(index) {
12855
+ console.log(shortcutCooldown);
12856
+ if (shortcutCooldown <= 0) setShortcutCooldown(1.5);
12857
+ onShortcutCast(index);
12858
+ };
12859
+ useEffect(function () {
12860
+ if (cooldownTimeout.current) clearTimeout(cooldownTimeout.current);
12861
+ if (shortcutCooldown > 0) {
12862
+ cooldownTimeout.current = setTimeout(function () {
12863
+ setShortcutCooldown(shortcutCooldown - 0.1);
12864
+ }, 100);
12865
+ }
12866
+ }, [shortcutCooldown]);
12867
+ return {
12868
+ shortcutCooldown: shortcutCooldown,
12869
+ handleShortcutCast: handleShortcutCast
12870
+ };
12871
+ };
12848
12872
 
12849
12873
  var CircularController = function CircularController(_ref) {
12850
12874
  var onActionClick = _ref.onActionClick,
@@ -12854,7 +12878,11 @@ var CircularController = function CircularController(_ref) {
12854
12878
  shortcuts = _ref.shortcuts,
12855
12879
  inventory = _ref.inventory,
12856
12880
  atlasIMG = _ref.atlasIMG,
12857
- atlasJSON = _ref.atlasJSON;
12881
+ atlasJSON = _ref.atlasJSON,
12882
+ spellCooldowns = _ref.spellCooldowns;
12883
+ var _useShortcutCooldown = useShortcutCooldown(onShortcutClick),
12884
+ handleShortcutCast = _useShortcutCooldown.handleShortcutCast,
12885
+ shortcutCooldown = _useShortcutCooldown.shortcutCooldown;
12858
12886
  var onTouchStart = function onTouchStart(e) {
12859
12887
  var target = e.target;
12860
12888
  target == null ? void 0 : target.classList.add('active');
@@ -12867,10 +12895,14 @@ var CircularController = function CircularController(_ref) {
12867
12895
  action();
12868
12896
  };
12869
12897
  var renderShortcut = function renderShortcut(i) {
12870
- var _shortcuts$i, _shortcuts$i2, _shortcuts$i4, _payload$manaCost;
12898
+ var _shortcuts$i, _shortcuts$i2, _shortcuts$i4, _spellCooldowns$paylo, _payload$manaCost;
12899
+ var buildClassName = function buildClassName(classBase, isOnCooldown) {
12900
+ return classBase + " " + (isOnCooldown ? 'onCooldown' : '');
12901
+ };
12871
12902
  var variant = '';
12872
12903
  if (i === 0) variant = 'top';else if (i >= 3) variant = "bottom-" + (i - 3);
12873
- var onShortcutClickBinded = ((_shortcuts$i = shortcuts[i]) == null ? void 0 : _shortcuts$i.type) !== ShortcutType.None ? onShortcutClick.bind(null, i) : function () {};
12904
+ var onShortcutClickBinded = ((_shortcuts$i = shortcuts[i]) == null ? void 0 : _shortcuts$i.type) !== ShortcutType.None ? handleShortcutCast.bind(null, i) : function () {};
12905
+ var isOnShortcutCooldown = shortcutCooldown > 0;
12874
12906
  if (((_shortcuts$i2 = shortcuts[i]) == null ? void 0 : _shortcuts$i2.type) === ShortcutType.Item) {
12875
12907
  var _shortcuts$i3;
12876
12908
  var _payload = (_shortcuts$i3 = shortcuts[i]) == null ? void 0 : _shortcuts$i3.payload;
@@ -12893,7 +12925,9 @@ var CircularController = function CircularController(_ref) {
12893
12925
  onTouchEnd: onTouchEnd.bind(null, onShortcutClickBinded),
12894
12926
  disabled: false,
12895
12927
  className: variant
12896
- }, _payload && React.createElement(SpriteFromAtlas, {
12928
+ }, isOnShortcutCooldown && React.createElement("span", {
12929
+ className: "cooldown"
12930
+ }, shortcutCooldown.toFixed(1)), _payload && React.createElement(SpriteFromAtlas, {
12897
12931
  atlasIMG: atlasIMG,
12898
12932
  atlasJSON: atlasJSON,
12899
12933
  spriteKey: getItemTextureKeyPath({
@@ -12912,18 +12946,23 @@ var CircularController = function CircularController(_ref) {
12912
12946
  pointerEvents: 'none'
12913
12947
  }
12914
12948
  }), React.createElement("span", {
12915
- className: "qty"
12949
+ className: buildClassName('qty', isOnShortcutCooldown)
12916
12950
  }, totalQty));
12917
12951
  }
12918
12952
  var payload = (_shortcuts$i4 = shortcuts[i]) == null ? void 0 : _shortcuts$i4.payload;
12953
+ var spellCooldown = !payload ? 0 : (_spellCooldowns$paylo = spellCooldowns == null ? void 0 : spellCooldowns[payload.magicWords.replaceAll(' ', '_')]) != null ? _spellCooldowns$paylo : shortcutCooldown;
12954
+ var cooldown = spellCooldown > shortcutCooldown ? spellCooldown : shortcutCooldown;
12955
+ var isOnCooldown = cooldown > 0 && !!payload;
12919
12956
  return React.createElement(StyledShortcut, {
12920
12957
  key: i,
12921
12958
  onTouchStart: onTouchStart,
12922
12959
  onTouchEnd: onTouchEnd.bind(null, onShortcutClickBinded),
12923
12960
  disabled: mana < ((_payload$manaCost = payload == null ? void 0 : payload.manaCost) != null ? _payload$manaCost : 0),
12924
12961
  className: variant
12925
- }, React.createElement("span", {
12926
- className: "mana"
12962
+ }, isOnCooldown && React.createElement("span", {
12963
+ className: "cooldown"
12964
+ }, cooldown.toFixed(cooldown < 10 ? 1 : 0)), React.createElement("span", {
12965
+ className: buildClassName('mana', isOnCooldown)
12927
12966
  }, payload && payload.manaCost), React.createElement("span", {
12928
12967
  className: "magicWords"
12929
12968
  }, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
@@ -13865,7 +13904,9 @@ var ItemInfo = function ItemInfo(_ref) {
13865
13904
  item: item
13866
13905
  }, React.createElement(Header, null, React.createElement("div", null, React.createElement(Title$1, null, item.name), item.rarity !== 'Common' && React.createElement(Rarity, {
13867
13906
  item: item
13868
- }, item.rarity), React.createElement(Type, null, item.subType)), React.createElement(AllowedSlots, null, renderAvaibleSlots())), item.minRequirements && React.createElement(LevelRequirement, null, React.createElement("div", null, "Level: ", item.minRequirements.level), React.createElement("div", null, item.minRequirements.skill.name[0].toUpperCase() + item.minRequirements.skill.name.slice(1), ": ", item.minRequirements.skill.level)), renderStatistics(), renderEntityEffects(), item.usableEffectDescription && React.createElement(Statistic, {
13907
+ }, item.rarity), React.createElement(Type, null, item.subType)), React.createElement(AllowedSlots, null, renderAvaibleSlots())), item.minRequirements && React.createElement(LevelRequirement, null, React.createElement("div", {
13908
+ className: "title"
13909
+ }, "Requirements:"), React.createElement("div", null, "- Level: ", item.minRequirements.level), React.createElement("div", null, "-", ' ', item.minRequirements.skill.name[0].toUpperCase() + item.minRequirements.skill.name.slice(1), ": ", item.minRequirements.skill.level)), renderStatistics(), renderEntityEffects(), item.usableEffectDescription && React.createElement(Statistic, {
13869
13910
  "$isSpecial": true
13870
13911
  }, item.usableEffectDescription), item.equippedBuffDescription && React.createElement(Statistic, {
13871
13912
  "$isSpecial": true
@@ -13899,7 +13940,7 @@ var Type = /*#__PURE__*/styled.div.withConfig({
13899
13940
  var LevelRequirement = /*#__PURE__*/styled.div.withConfig({
13900
13941
  displayName: "ItemInfo__LevelRequirement",
13901
13942
  componentId: "sc-1xm4q8k-4"
13902
- })(["font-size:", ";margin-top:0.2rem;margin-bottom:1rem;color:", ";"], uiFonts.size.small, uiColors.orange);
13943
+ })(["font-size:", ";margin-top:0.2rem;margin-bottom:1rem;color:", ";.title{margin-bottom:4px;}div{margin-bottom:2px;}"], uiFonts.size.small, uiColors.orange);
13903
13944
  var Statistic = /*#__PURE__*/styled.div.withConfig({
13904
13945
  displayName: "ItemInfo__Statistic",
13905
13946
  componentId: "sc-1xm4q8k-5"
@@ -14547,1026 +14588,1240 @@ var EquipmentColumn = /*#__PURE__*/styled.div.withConfig({
14547
14588
  componentId: "sc-1wuddg2-1"
14548
14589
  })(["display:flex;justify-content:center;flex-wrap:wrap;flex-direction:column;touch-action:none;"]);
14549
14590
 
14550
- var SlotsContainer = function SlotsContainer(_ref) {
14551
- var children = _ref.children,
14552
- title = _ref.title,
14553
- onClose = _ref.onClose,
14554
- _onPositionChange = _ref.onPositionChange,
14555
- _onPositionChangeEnd = _ref.onPositionChangeEnd,
14556
- _onPositionChangeStart = _ref.onPositionChangeStart,
14557
- onOutsideClick = _ref.onOutsideClick,
14558
- initialPosition = _ref.initialPosition,
14559
- scale = _ref.scale;
14560
- return React.createElement(DraggableContainer, {
14561
- title: title,
14562
- type: RPGUIContainerTypes.Framed,
14563
- onCloseButton: function onCloseButton() {
14564
- if (onClose) {
14565
- onClose();
14566
- }
14567
- },
14568
- width: "400px",
14569
- cancelDrag: ".item-container-body, #shortcuts_list",
14570
- onPositionChange: function onPositionChange(_ref2) {
14571
- var x = _ref2.x,
14572
- y = _ref2.y;
14573
- if (_onPositionChange) {
14574
- _onPositionChange({
14575
- x: x,
14576
- y: y
14577
- });
14578
- }
14579
- },
14580
- onPositionChangeEnd: function onPositionChangeEnd(_ref3) {
14581
- var x = _ref3.x,
14582
- y = _ref3.y;
14583
- if (_onPositionChangeEnd) {
14584
- _onPositionChangeEnd({
14585
- x: x,
14586
- y: y
14587
- });
14591
+ var IS_MOBILE_OR_TABLET = /*#__PURE__*/isMobileOrTablet();
14592
+
14593
+ var chunkString = function chunkString(str, length) {
14594
+ return str.match(new RegExp('.{1,' + length + '}', 'g'));
14595
+ };
14596
+
14597
+ var DynamicText = function DynamicText(_ref) {
14598
+ var text = _ref.text,
14599
+ onFinish = _ref.onFinish,
14600
+ onStart = _ref.onStart;
14601
+ var _useState = useState(''),
14602
+ textState = _useState[0],
14603
+ setTextState = _useState[1];
14604
+ useEffect(function () {
14605
+ var i = 0;
14606
+ var interval = setInterval(function () {
14607
+ // on every interval, show one more character
14608
+ if (i === 0) {
14609
+ if (onStart) {
14610
+ onStart();
14611
+ }
14588
14612
  }
14589
- },
14590
- onPositionChangeStart: function onPositionChangeStart(_ref4) {
14591
- var x = _ref4.x,
14592
- y = _ref4.y;
14593
- if (_onPositionChangeStart) {
14594
- _onPositionChangeStart({
14595
- x: x,
14596
- y: y
14597
- });
14613
+ if (i < text.length) {
14614
+ setTextState(text.substring(0, i + 1));
14615
+ i++;
14616
+ } else {
14617
+ clearInterval(interval);
14618
+ if (onFinish) {
14619
+ onFinish();
14620
+ }
14598
14621
  }
14599
- },
14600
- onOutsideClick: onOutsideClick,
14601
- initialPosition: initialPosition,
14602
- scale: scale
14603
- }, children);
14622
+ }, 50);
14623
+ return function () {
14624
+ clearInterval(interval);
14625
+ };
14626
+ }, [text]);
14627
+ return React.createElement(TextContainer, null, textState);
14604
14628
  };
14629
+ var TextContainer = /*#__PURE__*/styled.p.withConfig({
14630
+ displayName: "DynamicText__TextContainer",
14631
+ componentId: "sc-1ggl9nd-0"
14632
+ })(["font-size:0.7rem !important;color:white;text-shadow:1px 1px 0px #000000;letter-spacing:1.2px;word-break:normal;"]);
14605
14633
 
14606
- var RangeSliderType;
14607
- (function (RangeSliderType) {
14608
- RangeSliderType["Slider"] = "rpgui-slider";
14609
- RangeSliderType["GoldSlider"] = "rpgui-slider golden";
14610
- })(RangeSliderType || (RangeSliderType = {}));
14611
- var RangeSlider = function RangeSlider(_ref) {
14612
- var type = _ref.type,
14613
- valueMin = _ref.valueMin,
14614
- valueMax = _ref.valueMax,
14615
- width = _ref.width,
14616
- _onChange = _ref.onChange,
14617
- value = _ref.value;
14618
- var sliderId = v4();
14619
- var containerRef = useRef(null);
14634
+ var img$5 = 'data:image/gif;base64,R0lGODlhEAAQAPIAAAAAABQYLiw1TUBJc2hvmQAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAM9CLrc/lCFGSKYJJP5AhlguDnBMIVgxXgmJapSSp3mKs/pKrT0IMCXUk+2Cgh2oSOnaDz+lswZpSOFUq2KBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAIzhI+py90Bg4OjDrjCELxfFQhQx0mIJkaeaYRp5LJADMdnqXbyOJLYTdKBejjZoRaZJBMFACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAABAAEAAAAjKEj6nL7Y+CDE6OO+QKQ/ifKYEgfR4VddPohQe7lmR0xidNTib65uacYP2AQWGuMlEUAAA7';
14635
+
14636
+ var img$6 = 'data:image/gif;base64,R0lGODlhQAAgAPIAAAAAAA0NDRERESIiIigoKFlZWf///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw5nYW1tYT0wLjQ1NDU0NQAh+QQBFAAAACwAAAAAQAAgAAAD/wi63P4wykmrvTjrzbv/YAgIZGmeaKquakQWcCzPdG3fNukIeO//PQGDBywafcIF8chswpKKZcxApTqvNOiIZi0YsODncFaFlcNOrdTbJVff0/c3Lp/Xs2N37cy2ndt6ZnhKXHdsc4d7VnwyfIxqPWWOXXWLgHSGYoSNbZKVZp2WiJyjg1GFcaClqaqJhasyUAFrh3Cur3KqubWXBQIBAAEDtDeMaEEDAcLEx2gCycvN0jHPysPT09XR2M3a19zH3gTM4EYCBNDD4yzs7e4r48nB6gT19vf4+fr7/P3P8sKGvRtIkMUAeQoCHlzIsKHDhxAjSoTWQJnFixgzatzIsQWjRQYJAAAh/wtJbWFnZU1hZ2ljaw5nYW1tYT0wLjQ1NDU0NQAh+QQBFAAAACwAAAAAQAAgAAAD8Ai63P4wykmrvTjrzbv/YCiOlGCeaKqubMtGZiHPdG3feI6bjqD/wOBPwPAJj0ggcWFMOp+ypaI5M1it0KxNCqDKsAWDdhwt1q5fMPnJ9aJt17g4HafJ3/et+Tzn99V+aThqfTNtcHlhhIBVWG+BdDSHOmiPeHdij3aYhZONf46YkZGanzpSAV6KjaOIpqWtNwIBAAEDqqKKhZuJnHSwAgMBtqo5sGs5wcO3yM01ysTO0gXQzNPN1cXXUNnbyNna3kcmwrW3Lujp6ugD5bbn6/HyLe20Cu/t+fr7/P3+/wCF2VswrKDBgwgTKlzIsCCDBAA7';
14637
+
14638
+ var NPCDialogText = function NPCDialogText(_ref) {
14639
+ var text = _ref.text,
14640
+ onClose = _ref.onClose,
14641
+ onEndStep = _ref.onEndStep,
14642
+ onStartStep = _ref.onStartStep,
14643
+ type = _ref.type;
14644
+ var windowSize = useRef([window.innerWidth, window.innerHeight]);
14645
+ function maxCharacters(width) {
14646
+ // Set the font size to 16 pixels
14647
+ var fontSize = 11.2;
14648
+ // Calculate the number of characters that can fit in one line
14649
+ var charactersPerLine = Math.floor(width / 2 / fontSize);
14650
+ // Calculate the number of lines that can fit in the div
14651
+ var linesPerDiv = Math.floor(180 / fontSize);
14652
+ // Calculate the maximum number of characters that can fit in the div
14653
+ var maxCharacters = charactersPerLine * linesPerDiv;
14654
+ // Return the maximum number of characters
14655
+ return Math.round(maxCharacters / 5);
14656
+ }
14657
+ var textChunks = chunkString(text, maxCharacters(windowSize.current[0]));
14620
14658
  var _useState = useState(0),
14621
- left = _useState[0],
14622
- setLeft = _useState[1];
14659
+ chunkIndex = _useState[0],
14660
+ setChunkIndex = _useState[1];
14661
+ var onHandleSpacePress = function onHandleSpacePress(event) {
14662
+ if (event.code === 'Space') {
14663
+ goToNextStep();
14664
+ }
14665
+ };
14666
+ var goToNextStep = function goToNextStep() {
14667
+ var hasNextChunk = (textChunks == null ? void 0 : textChunks[chunkIndex + 1]) || false;
14668
+ if (hasNextChunk) {
14669
+ setChunkIndex(function (prev) {
14670
+ return prev + 1;
14671
+ });
14672
+ } else {
14673
+ // if there's no more text chunks, close the dialog
14674
+ onClose();
14675
+ }
14676
+ };
14623
14677
  useEffect(function () {
14624
- var _containerRef$current;
14625
- var calculatedWidth = ((_containerRef$current = containerRef.current) == null ? void 0 : _containerRef$current.clientWidth) || 0;
14626
- setLeft(Math.max((value - valueMin) / (valueMax - valueMin) * (calculatedWidth - 35) + 10));
14627
- }, [value, valueMin, valueMax]);
14628
- var typeClass = type === RangeSliderType.GoldSlider ? 'golden' : '';
14629
- return React.createElement("div", {
14630
- style: {
14631
- width: width,
14632
- position: 'relative'
14678
+ document.addEventListener('keydown', onHandleSpacePress);
14679
+ return function () {
14680
+ return document.removeEventListener('keydown', onHandleSpacePress);
14681
+ };
14682
+ }, [chunkIndex]);
14683
+ var _useState2 = useState(false),
14684
+ showGoNextIndicator = _useState2[0],
14685
+ setShowGoNextIndicator = _useState2[1];
14686
+ return React.createElement(Container$e, null, React.createElement(DynamicText, {
14687
+ text: (textChunks == null ? void 0 : textChunks[chunkIndex]) || '',
14688
+ onFinish: function onFinish() {
14689
+ setShowGoNextIndicator(true);
14690
+ onEndStep && onEndStep();
14633
14691
  },
14634
- className: "rpgui-slider-container " + typeClass,
14635
- id: "rpgui-slider-" + sliderId,
14636
- ref: containerRef
14637
- }, React.createElement("div", {
14638
- style: {
14639
- pointerEvents: 'none'
14692
+ onStart: function onStart() {
14693
+ setShowGoNextIndicator(false);
14694
+ onStartStep && onStartStep();
14640
14695
  }
14641
- }, React.createElement("div", {
14642
- className: "rpgui-slider-track " + typeClass
14643
- }), React.createElement("div", {
14644
- className: "rpgui-slider-left-edge " + typeClass
14645
- }), React.createElement("div", {
14646
- className: "rpgui-slider-right-edge " + typeClass
14647
- }), React.createElement("div", {
14648
- className: "rpgui-slider-thumb " + typeClass,
14649
- style: {
14650
- left: left
14696
+ }), showGoNextIndicator && React.createElement(PressSpaceIndicator, {
14697
+ right: type === NPCDialogType.TextOnly ? '1rem' : '10.5rem',
14698
+ src: IS_MOBILE_OR_TABLET ? img$5 : img$6,
14699
+ onPointerDown: function onPointerDown() {
14700
+ goToNextStep();
14651
14701
  }
14652
- })), React.createElement(Input$1, {
14653
- type: "range",
14654
- style: {
14655
- width: width
14656
- },
14657
- min: valueMin,
14658
- max: valueMax,
14659
- onChange: function onChange(e) {
14660
- return _onChange(Number(e.target.value));
14661
- },
14662
- value: value,
14663
- className: "rpgui-cursor-point"
14664
14702
  }));
14665
14703
  };
14666
- var Input$1 = /*#__PURE__*/styled.input.withConfig({
14667
- displayName: "RangeSlider__Input",
14668
- componentId: "sc-v8mte9-0"
14669
- })(["opacity:0;position:absolute;width:100%;height:100%;top:0;left:0;margin-top:-5px;"]);
14704
+ var Container$e = /*#__PURE__*/styled.div.withConfig({
14705
+ displayName: "NPCDialogText__Container",
14706
+ componentId: "sc-1cxkdh9-0"
14707
+ })([""]);
14708
+ var PressSpaceIndicator = /*#__PURE__*/styled.img.withConfig({
14709
+ displayName: "NPCDialogText__PressSpaceIndicator",
14710
+ componentId: "sc-1cxkdh9-1"
14711
+ })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref2) {
14712
+ var right = _ref2.right;
14713
+ return right;
14714
+ });
14670
14715
 
14671
- var ItemQuantitySelector = function ItemQuantitySelector(_ref) {
14672
- var quantity = _ref.quantity,
14673
- onConfirm = _ref.onConfirm,
14716
+ //@ts-ignore
14717
+ var useEventListener = function useEventListener(type, handler, el) {
14718
+ if (el === void 0) {
14719
+ el = window;
14720
+ }
14721
+ var savedHandler = React.useRef();
14722
+ React.useEffect(function () {
14723
+ savedHandler.current = handler;
14724
+ }, [handler]);
14725
+ React.useEffect(function () {
14726
+ //@ts-ignore
14727
+ var listener = function listener(e) {
14728
+ return savedHandler.current(e);
14729
+ };
14730
+ el.addEventListener(type, listener);
14731
+ return function () {
14732
+ el.removeEventListener(type, listener);
14733
+ };
14734
+ }, [type, el]);
14735
+ };
14736
+
14737
+ var QuestionDialog = function QuestionDialog(_ref) {
14738
+ var questions = _ref.questions,
14739
+ answers = _ref.answers,
14674
14740
  onClose = _ref.onClose;
14675
- var _useState = useState(quantity),
14676
- value = _useState[0],
14677
- setValue = _useState[1];
14678
- var inputRef = useRef(null);
14741
+ var _useState = useState(questions[0]),
14742
+ currentQuestion = _useState[0],
14743
+ setCurrentQuestion = _useState[1];
14744
+ var _useState2 = useState(false),
14745
+ canShowAnswers = _useState2[0],
14746
+ setCanShowAnswers = _useState2[1];
14747
+ var onGetFirstAnswer = function onGetFirstAnswer() {
14748
+ if (!currentQuestion.answerIds || currentQuestion.answerIds.length === 0) {
14749
+ return null;
14750
+ }
14751
+ var firstAnswerId = currentQuestion.answerIds[0];
14752
+ return answers.find(function (answer) {
14753
+ return answer.id === firstAnswerId;
14754
+ });
14755
+ };
14756
+ var _useState3 = useState(onGetFirstAnswer()),
14757
+ currentAnswer = _useState3[0],
14758
+ setCurrentAnswer = _useState3[1];
14679
14759
  useEffect(function () {
14680
- if (inputRef.current) {
14681
- inputRef.current.focus();
14682
- inputRef.current.select();
14683
- var closeSelector = function closeSelector(e) {
14684
- if (e.key === 'Escape') {
14760
+ setCurrentAnswer(onGetFirstAnswer());
14761
+ }, [currentQuestion]);
14762
+ var onGetAnswers = function onGetAnswers(answerIds) {
14763
+ return answerIds.map(function (answerId) {
14764
+ return answers.find(function (answer) {
14765
+ return answer.id === answerId;
14766
+ });
14767
+ });
14768
+ };
14769
+ var onKeyPress = function onKeyPress(e) {
14770
+ switch (e.key) {
14771
+ case 'ArrowDown':
14772
+ // select next answer, if any.
14773
+ // if no next answer, select first answer
14774
+ // const nextAnswer = onGetAnswers(currentQuestion.answerIds!).find(
14775
+ // (answer) => answer?.id === currentAnswer!.id + 1
14776
+ // );
14777
+ var nextAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
14778
+ return (answer == null ? void 0 : answer.id) === currentAnswer.id + 1;
14779
+ });
14780
+ var nextAnswerID = currentQuestion.answerIds[nextAnswerIndex];
14781
+ var nextAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
14782
+ return (answer == null ? void 0 : answer.id) === nextAnswerID;
14783
+ });
14784
+ setCurrentAnswer(nextAnswer || onGetFirstAnswer());
14785
+ break;
14786
+ case 'ArrowUp':
14787
+ // select previous answer, if any.
14788
+ // if no previous answer, select last answer
14789
+ var previousAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
14790
+ return (answer == null ? void 0 : answer.id) === currentAnswer.id - 1;
14791
+ });
14792
+ var previousAnswerID = currentQuestion.answerIds && currentQuestion.answerIds[previousAnswerIndex];
14793
+ var previousAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
14794
+ return (answer == null ? void 0 : answer.id) === previousAnswerID;
14795
+ });
14796
+ if (previousAnswer) {
14797
+ setCurrentAnswer(previousAnswer);
14798
+ } else {
14799
+ setCurrentAnswer(onGetAnswers(currentQuestion.answerIds).pop());
14800
+ }
14801
+ break;
14802
+ case 'Enter':
14803
+ setCanShowAnswers(false);
14804
+ if (!(currentAnswer != null && currentAnswer.nextQuestionId)) {
14685
14805
  onClose();
14806
+ return;
14807
+ } else {
14808
+ setCurrentQuestion(questions.find(function (question) {
14809
+ return question.id === currentAnswer.nextQuestionId;
14810
+ }));
14686
14811
  }
14687
- };
14688
- document.addEventListener('keydown', closeSelector);
14689
- return function () {
14690
- document.removeEventListener('keydown', closeSelector);
14691
- };
14812
+ break;
14692
14813
  }
14693
- return function () {};
14694
- }, []);
14695
- return React.createElement(StyledContainer, {
14696
- type: RPGUIContainerTypes.Framed,
14697
- width: "25rem"
14698
- }, React.createElement(CloseButton$2, {
14699
- className: "container-close",
14700
- onPointerDown: onClose
14701
- }, "X"), React.createElement("h2", null, "Select quantity to move"), React.createElement(StyledForm, {
14702
- style: {
14703
- width: '100%'
14704
- },
14705
- onSubmit: function onSubmit(e) {
14706
- e.preventDefault();
14707
- var numberValue = Number(value);
14708
- if (Number.isNaN(numberValue)) {
14709
- return;
14710
- }
14711
- onConfirm(Math.max(1, Math.min(quantity, numberValue)));
14712
- },
14713
- noValidate: true
14714
- }, React.createElement(StyledInput, {
14715
- innerRef: inputRef,
14716
- placeholder: "Enter quantity",
14717
- type: "number",
14718
- min: 1,
14719
- max: quantity,
14720
- value: value,
14721
- onChange: function onChange(e) {
14722
- if (Number(e.target.value) >= quantity) {
14723
- setValue(quantity);
14724
- return;
14814
+ };
14815
+ useEventListener('keydown', onKeyPress);
14816
+ var onAnswerClick = function onAnswerClick(answer) {
14817
+ setCanShowAnswers(false);
14818
+ if (answer.nextQuestionId) {
14819
+ // if there is a next question, go to it
14820
+ setCurrentQuestion(questions.find(function (question) {
14821
+ return question.id === answer.nextQuestionId;
14822
+ }));
14823
+ } else {
14824
+ // else, finish dialog!
14825
+ onClose();
14826
+ }
14827
+ };
14828
+ var onRenderCurrentAnswers = function onRenderCurrentAnswers() {
14829
+ var answerIds = currentQuestion.answerIds;
14830
+ if (!answerIds) {
14831
+ return null;
14832
+ }
14833
+ var answers = onGetAnswers(answerIds);
14834
+ if (!answers) {
14835
+ return null;
14836
+ }
14837
+ return answers.map(function (answer) {
14838
+ var isSelected = (currentAnswer == null ? void 0 : currentAnswer.id) === (answer == null ? void 0 : answer.id);
14839
+ var selectedColor = isSelected ? 'yellow' : 'white';
14840
+ if (answer) {
14841
+ return React.createElement(AnswerRow, {
14842
+ key: "answer_" + answer.id
14843
+ }, React.createElement(AnswerSelectedIcon, {
14844
+ color: selectedColor
14845
+ }, isSelected ? 'X' : null), React.createElement(Answer, {
14846
+ key: answer.id,
14847
+ onPointerDown: function onPointerDown() {
14848
+ return onAnswerClick(answer);
14849
+ },
14850
+ color: selectedColor
14851
+ }, answer.text));
14725
14852
  }
14726
- setValue(e.target.value);
14853
+ return null;
14854
+ });
14855
+ };
14856
+ return React.createElement(Container$f, null, React.createElement(QuestionContainer, null, React.createElement(DynamicText, {
14857
+ text: currentQuestion.text,
14858
+ onStart: function onStart() {
14859
+ return setCanShowAnswers(false);
14727
14860
  },
14728
- onBlur: function onBlur(e) {
14729
- var newValue = Math.max(1, Math.min(quantity, Number(e.target.value)));
14730
- setValue(newValue);
14861
+ onFinish: function onFinish() {
14862
+ return setCanShowAnswers(true);
14731
14863
  }
14732
- }), React.createElement(RangeSlider, {
14733
- type: RangeSliderType.Slider,
14734
- valueMin: 1,
14735
- valueMax: quantity,
14736
- width: "100%",
14737
- onChange: setValue,
14738
- value: value
14739
- }), React.createElement(Button, {
14740
- buttonType: ButtonTypes.RPGUIButton,
14741
- type: "submit"
14742
- }, "Confirm")));
14864
+ })), canShowAnswers && React.createElement(AnswersContainer, null, onRenderCurrentAnswers()));
14743
14865
  };
14744
- var StyledContainer = /*#__PURE__*/styled(RPGUIContainer).withConfig({
14745
- displayName: "ItemQuantitySelector__StyledContainer",
14746
- componentId: "sc-yfdtpn-0"
14747
- })(["display:flex;flex-direction:column;align-items:center;"]);
14748
- var StyledForm = /*#__PURE__*/styled.form.withConfig({
14749
- displayName: "ItemQuantitySelector__StyledForm",
14750
- componentId: "sc-yfdtpn-1"
14751
- })(["display:flex;flex-direction:column;align-items:center;width:100%;"]);
14752
- var StyledInput = /*#__PURE__*/styled(Input).withConfig({
14753
- displayName: "ItemQuantitySelector__StyledInput",
14754
- componentId: "sc-yfdtpn-2"
14755
- })(["text-align:center;&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}&[type='number']{-moz-appearance:textfield;}"]);
14756
- var CloseButton$2 = /*#__PURE__*/styled.div.withConfig({
14757
- displayName: "ItemQuantitySelector__CloseButton",
14758
- componentId: "sc-yfdtpn-3"
14759
- })(["position:absolute;top:3px;right:0px;color:white;z-index:22;font-size:0.8rem;"]);
14866
+ var Container$f = /*#__PURE__*/styled.div.withConfig({
14867
+ displayName: "QuestionDialog__Container",
14868
+ componentId: "sc-bxc5u0-0"
14869
+ })(["display:flex;word-break:break-all;box-sizing:border-box;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;"]);
14870
+ var QuestionContainer = /*#__PURE__*/styled.div.withConfig({
14871
+ displayName: "QuestionDialog__QuestionContainer",
14872
+ componentId: "sc-bxc5u0-1"
14873
+ })(["flex:100%;width:100%;"]);
14874
+ var AnswersContainer = /*#__PURE__*/styled.div.withConfig({
14875
+ displayName: "QuestionDialog__AnswersContainer",
14876
+ componentId: "sc-bxc5u0-2"
14877
+ })(["flex:100%;"]);
14878
+ var Answer = /*#__PURE__*/styled.p.withConfig({
14879
+ displayName: "QuestionDialog__Answer",
14880
+ componentId: "sc-bxc5u0-3"
14881
+ })(["flex:auto;color:", " !important;font-size:0.65rem !important;background:inherit;border:none;"], function (props) {
14882
+ return props.color;
14883
+ });
14884
+ var AnswerSelectedIcon = /*#__PURE__*/styled.span.withConfig({
14885
+ displayName: "QuestionDialog__AnswerSelectedIcon",
14886
+ componentId: "sc-bxc5u0-4"
14887
+ })(["flex:5% 0 0;color:", " !important;"], function (props) {
14888
+ return props.color;
14889
+ });
14890
+ var AnswerRow = /*#__PURE__*/styled.div.withConfig({
14891
+ displayName: "QuestionDialog__AnswerRow",
14892
+ componentId: "sc-bxc5u0-5"
14893
+ })(["display:flex;flex-wrap:wrap;justify-content:center;align-items:center;margin-bottom:0.5rem;height:22px;p{line-height:unset;margin-top:0;margin-bottom:0rem;}"]);
14760
14894
 
14761
- var ShortcutsSetter = function ShortcutsSetter(_ref) {
14762
- var setSettingShortcutIndex = _ref.setSettingShortcutIndex,
14763
- settingShortcutIndex = _ref.settingShortcutIndex,
14764
- shortcuts = _ref.shortcuts,
14765
- removeShortcut = _ref.removeShortcut,
14766
- atlasJSON = _ref.atlasJSON,
14767
- atlasIMG = _ref.atlasIMG;
14768
- var getContent = function getContent(index) {
14769
- var _shortcuts$index, _shortcuts$index3;
14770
- if (((_shortcuts$index = shortcuts[index]) == null ? void 0 : _shortcuts$index.type) === ShortcutType.Item) {
14771
- var _shortcuts$index2;
14772
- var _payload = (_shortcuts$index2 = shortcuts[index]) == null ? void 0 : _shortcuts$index2.payload;
14773
- if (!_payload) return null;
14774
- return React.createElement(SpriteFromAtlas, {
14775
- atlasIMG: atlasIMG,
14776
- atlasJSON: atlasJSON,
14777
- spriteKey: getItemTextureKeyPath({
14778
- key: _payload.texturePath,
14779
- texturePath: _payload.texturePath,
14780
- stackQty: _payload.stackQty || 1,
14781
- isStackable: _payload.isStackable
14782
- }, atlasJSON),
14783
- width: 32,
14784
- height: 32,
14785
- imgScale: 1.6,
14786
- imgStyle: {
14787
- left: '5px'
14788
- }
14789
- });
14790
- }
14791
- var payload = (_shortcuts$index3 = shortcuts[index]) == null ? void 0 : _shortcuts$index3.payload;
14792
- return React.createElement("span", null, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
14793
- return word[0];
14794
- }));
14795
- };
14796
- return React.createElement(Container$e, null, React.createElement("p", null, "Shortcuts:"), React.createElement(List, {
14797
- id: "shortcuts_list"
14798
- }, Array.from({
14799
- length: 6
14800
- }).map(function (_, i) {
14801
- return React.createElement(Shortcut, {
14802
- key: i,
14803
- onPointerDown: function onPointerDown() {
14804
- if (settingShortcutIndex !== -1) setSettingShortcutIndex(-1);
14805
- removeShortcut(i);
14806
- if (settingShortcutIndex === -1 && (!shortcuts[i] || shortcuts[i].type === ShortcutType.None)) setSettingShortcutIndex(i);
14807
- },
14808
- disabled: settingShortcutIndex !== -1 && settingShortcutIndex !== i,
14809
- isBeingSet: settingShortcutIndex === i,
14810
- id: "shortcutSetter_" + i
14811
- }, getContent(i));
14812
- })));
14813
- };
14814
- var Container$e = /*#__PURE__*/styled.div.withConfig({
14815
- displayName: "ShortcutsSetter__Container",
14816
- componentId: "sc-xuouuf-0"
14817
- })(["p{margin:0;margin-left:0.5rem;}"]);
14818
- var Shortcut = /*#__PURE__*/styled.button.withConfig({
14819
- displayName: "ShortcutsSetter__Shortcut",
14820
- componentId: "sc-xuouuf-1"
14821
- })(["width:2.6rem;height:2.6rem;background-color:", ";border:2px solid ", ";border-radius:50%;text-transform:uppercase;font-size:0.7rem;font-weight:bold;display:flex;align-items:center;justify-content:center;span{margin-top:4px;}&:hover,&:focus{background-color:", ";}&:active{background-color:", ";}&:disabled{opacity:0.5;}"], uiColors.lightGray, function (_ref2) {
14822
- var isBeingSet = _ref2.isBeingSet;
14823
- return isBeingSet ? uiColors.yellow : uiColors.darkGray;
14824
- }, uiColors.darkGray, uiColors.gray);
14825
- var List = /*#__PURE__*/styled.div.withConfig({
14826
- displayName: "ShortcutsSetter__List",
14827
- componentId: "sc-xuouuf-2"
14828
- })(["width:100%;display:flex;align-items:center;gap:0.5rem;padding-bottom:0.5rem;padding-left:0.5rem;box-sizing:border-box;margin:0 !important;"]);
14895
+ var img$7 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAP1BMVEUAAAA7FyVxQTsUEBPj5v////+5v/tCJDOOUlIiHBr1oJfptaO6dWr61rhzFy1bMTjoanMUNGQoXMQkn97+88DQ3IhAAAAAAXRSTlMAQObYZgAAAAFiS0dEBfhv6ccAAAAHdElNRQfmAw4VOBC7c5LYAAABM0lEQVQ4y3XRi5KDIAwFUAUkbrBgpP//rZsHVHQ009qZ3tPboNN0zmwzvcw8O5sX4y0NOg/Et3jRCXF+ziULorjkOQ9gE24dvuUAzq08DiCO4pe3WN7zCP56vmpubBReQYC11YPS86ySxxCsAABTSgjb5m4g8nfbxvFHBkH2OEEvAItVuCuIsgGgl+Gcr7kDXxhEAx55A2SQEEeQeZwUaIP8Tbo05B0RFPhItAjgj1w6cDnhLluDj+Egkh3pCCP4pKQAw1IPO0W9Nti5gW9RP2dKA3BZd2Dw+baYX+Nt4GM00O4S3kEpF6Alb2Bv4LeC3kkGfAW0/p0RPoJVKr63ghHsKuRh5DIUKOAlGOwrtt9fQekAEfmhZslHUDoglB0zjfkJigN7UnTQQ4GBWomoVhEN/AOPSBh38gy+fwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wMy0xNFQyMTo1NTo1MSswMDowMJcc0eEAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDMtMTRUMjE6NTU6NTErMDA6MDDmQWldAAAAAElFTkSuQmCC';
14829
14896
 
14830
- var ItemContainer$1 = function ItemContainer(_ref) {
14831
- var itemContainer = _ref.itemContainer,
14832
- onClose = _ref.onClose,
14833
- _onMouseOver = _ref.onMouseOver,
14834
- _onSelected = _ref.onSelected,
14835
- onItemClick = _ref.onItemClick,
14897
+ var NPCDialogType;
14898
+ (function (NPCDialogType) {
14899
+ NPCDialogType["TextOnly"] = "TextOnly";
14900
+ NPCDialogType["TextAndThumbnail"] = "TextAndThumbnail";
14901
+ })(NPCDialogType || (NPCDialogType = {}));
14902
+ var NPCDialog = function NPCDialog(_ref) {
14903
+ var text = _ref.text,
14836
14904
  type = _ref.type,
14837
- atlasJSON = _ref.atlasJSON,
14838
- atlasIMG = _ref.atlasIMG,
14839
- _ref$disableContextMe = _ref.disableContextMenu,
14840
- disableContextMenu = _ref$disableContextMe === void 0 ? false : _ref$disableContextMe,
14841
- onItemDragEnd = _ref.onItemDragEnd,
14842
- onItemDragStart = _ref.onItemDragStart,
14843
- onItemPlaceDrop = _ref.onItemPlaceDrop,
14844
- _onOutsideDrop = _ref.onOutsideDrop,
14845
- checkIfItemCanBeMoved = _ref.checkIfItemCanBeMoved,
14846
- initialPosition = _ref.initialPosition,
14847
- checkIfItemShouldDragEnd = _ref.checkIfItemShouldDragEnd,
14848
- scale = _ref.scale,
14849
- shortcuts = _ref.shortcuts,
14850
- setItemShortcut = _ref.setItemShortcut,
14851
- removeShortcut = _ref.removeShortcut,
14852
- equipmentSet = _ref.equipmentSet,
14853
- isDepotSystem = _ref.isDepotSystem,
14854
- onPositionChangeEnd = _ref.onPositionChangeEnd,
14855
- onPositionChangeStart = _ref.onPositionChangeStart;
14856
- var _useState = useState({
14857
- isOpen: false,
14858
- maxQuantity: 1,
14859
- callback: function callback(_quantity) {}
14860
- }),
14861
- quantitySelect = _useState[0],
14862
- setQuantitySelect = _useState[1];
14863
- var _useState2 = useState(-1),
14864
- settingShortcutIndex = _useState2[0],
14865
- setSettingShortcutIndex = _useState2[1];
14866
- var handleSetShortcut = function handleSetShortcut(item, index) {
14867
- if (item.type === ItemType.Consumable || item.type === ItemType.Tool) {
14868
- setItemShortcut == null ? void 0 : setItemShortcut(item.key, index);
14869
- }
14870
- };
14871
- var onRenderSlots = function onRenderSlots() {
14872
- var slots = [];
14873
- for (var i = 0; i < itemContainer.slotQty; i++) {
14874
- var _itemContainer$slots;
14875
- slots.push(React.createElement(ItemSlot, {
14876
- isContextMenuDisabled: disableContextMenu,
14877
- key: i,
14878
- slotIndex: i,
14879
- item: ((_itemContainer$slots = itemContainer.slots) == null ? void 0 : _itemContainer$slots[i]) || null,
14880
- itemContainerType: type,
14881
- onMouseOver: function onMouseOver(event, slotIndex, item) {
14882
- if (_onMouseOver) _onMouseOver(event, slotIndex, item);
14883
- },
14884
- onPointerDown: function onPointerDown(itemType, containerType, item) {
14885
- if (settingShortcutIndex !== -1) {
14886
- setSettingShortcutIndex(-1);
14887
- handleSetShortcut(item, settingShortcutIndex);
14888
- } else if (onItemClick) onItemClick(item, itemType, containerType);
14889
- },
14890
- onSelected: function onSelected(optionId, item) {
14891
- if (_onSelected) _onSelected(optionId, item);
14892
- },
14893
- onDragStart: function onDragStart(item, slotIndex, itemContainerType) {
14894
- if (onItemDragStart) onItemDragStart(item, slotIndex, itemContainerType);
14895
- },
14896
- onDragEnd: function onDragEnd(quantity) {
14897
- if (onItemDragEnd) onItemDragEnd(quantity);
14898
- },
14899
- dragScale: scale,
14900
- checkIfItemCanBeMoved: checkIfItemCanBeMoved,
14901
- checkIfItemShouldDragEnd: checkIfItemShouldDragEnd,
14902
- openQuantitySelector: function openQuantitySelector(maxQuantity, callback) {
14903
- setQuantitySelect({
14904
- isOpen: true,
14905
- maxQuantity: maxQuantity,
14906
- callback: callback
14907
- });
14908
- },
14909
- onPlaceDrop: function onPlaceDrop(item, slotIndex, itemContainerType) {
14910
- if (onItemPlaceDrop) onItemPlaceDrop(item, slotIndex, itemContainerType);
14911
- },
14912
- onOutsideDrop: function onOutsideDrop(item, position) {
14913
- if (_onOutsideDrop) _onOutsideDrop(item, position);
14914
- },
14915
- atlasIMG: atlasIMG,
14916
- atlasJSON: atlasJSON,
14917
- isSelectingShortcut: settingShortcutIndex !== -1,
14918
- equipmentSet: equipmentSet,
14919
- setItemShortcut: type === ItemContainerType.Inventory ? handleSetShortcut : undefined,
14920
- isDepotSystem: isDepotSystem
14921
- }));
14905
+ _onClose = _ref.onClose,
14906
+ imagePath = _ref.imagePath,
14907
+ _ref$isQuestionDialog = _ref.isQuestionDialog,
14908
+ isQuestionDialog = _ref$isQuestionDialog === void 0 ? false : _ref$isQuestionDialog,
14909
+ questions = _ref.questions,
14910
+ answers = _ref.answers;
14911
+ return React.createElement(RPGUIContainer, {
14912
+ type: RPGUIContainerTypes.FramedGold,
14913
+ width: isQuestionDialog ? '600px' : '80%',
14914
+ height: '180px'
14915
+ }, isQuestionDialog && questions && answers ? React.createElement(React.Fragment, null, React.createElement(TextContainer$1, {
14916
+ flex: type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'
14917
+ }, React.createElement(QuestionDialog, {
14918
+ questions: questions,
14919
+ answers: answers,
14920
+ onClose: function onClose() {
14921
+ if (_onClose) {
14922
+ _onClose();
14923
+ }
14922
14924
  }
14923
- return slots;
14924
- };
14925
- return React.createElement(React.Fragment, null, React.createElement(SlotsContainer, {
14926
- title: itemContainer.name || 'Container',
14927
- onClose: onClose,
14928
- initialPosition: initialPosition,
14929
- scale: scale,
14930
- onPositionChangeEnd: onPositionChangeEnd,
14931
- onPositionChangeStart: onPositionChangeStart
14932
- }, type === ItemContainerType.Inventory && shortcuts && removeShortcut && React.createElement(ShortcutsSetter, {
14933
- setSettingShortcutIndex: setSettingShortcutIndex,
14934
- settingShortcutIndex: settingShortcutIndex,
14935
- shortcuts: shortcuts,
14936
- removeShortcut: removeShortcut,
14937
- atlasIMG: atlasIMG,
14938
- atlasJSON: atlasJSON
14939
- }), React.createElement(ItemsContainer, {
14940
- className: "item-container-body"
14941
- }, onRenderSlots())), quantitySelect.isOpen && React.createElement(ModalPortal, null, React.createElement(QuantitySelectorContainer, null, React.createElement(ItemQuantitySelector, {
14942
- quantity: quantitySelect.maxQuantity,
14943
- onConfirm: function onConfirm(quantity) {
14944
- quantitySelect.callback(quantity);
14945
- setQuantitySelect({
14946
- isOpen: false,
14947
- maxQuantity: 1,
14948
- callback: function callback() {}
14949
- });
14950
- },
14925
+ })), type === NPCDialogType.TextAndThumbnail && React.createElement(ThumbnailContainer, null, React.createElement(NPCThumbnail, {
14926
+ src: imagePath || img$7
14927
+ }))) : React.createElement(React.Fragment, null, React.createElement(Container$g, null, React.createElement(TextContainer$1, {
14928
+ flex: type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'
14929
+ }, React.createElement(NPCDialogText, {
14930
+ type: type,
14931
+ text: text || 'No text provided.',
14951
14932
  onClose: function onClose() {
14952
- quantitySelect.callback(-1);
14953
- setQuantitySelect({
14954
- isOpen: false,
14955
- maxQuantity: 1,
14956
- callback: function callback() {}
14957
- });
14933
+ if (_onClose) {
14934
+ _onClose();
14935
+ }
14958
14936
  }
14959
- }))));
14937
+ })), type === NPCDialogType.TextAndThumbnail && React.createElement(ThumbnailContainer, null, React.createElement(NPCThumbnail, {
14938
+ src: imagePath || img$7
14939
+ })))));
14960
14940
  };
14961
- var ItemsContainer = /*#__PURE__*/styled.div.withConfig({
14962
- displayName: "ItemContainer__ItemsContainer",
14963
- componentId: "sc-15y5p9l-0"
14964
- })(["display:flex;justify-content:center;flex-wrap:wrap;"]);
14965
- var QuantitySelectorContainer = /*#__PURE__*/styled.div.withConfig({
14966
- displayName: "ItemContainer__QuantitySelectorContainer",
14967
- componentId: "sc-15y5p9l-1"
14968
- })(["position:absolute;top:0;left:0;width:100vw;height:100vh;z-index:100;display:flex;justify-content:center;align-items:center;background-color:rgba(0,0,0,0.5);"]);
14941
+ var Container$g = /*#__PURE__*/styled.div.withConfig({
14942
+ displayName: "NPCDialog__Container",
14943
+ componentId: "sc-1b4aw74-0"
14944
+ })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
14945
+ var TextContainer$1 = /*#__PURE__*/styled.div.withConfig({
14946
+ displayName: "NPCDialog__TextContainer",
14947
+ componentId: "sc-1b4aw74-1"
14948
+ })(["flex:", " 0 0;width:355px;"], function (_ref2) {
14949
+ var flex = _ref2.flex;
14950
+ return flex;
14951
+ });
14952
+ var ThumbnailContainer = /*#__PURE__*/styled.div.withConfig({
14953
+ displayName: "NPCDialog__ThumbnailContainer",
14954
+ componentId: "sc-1b4aw74-2"
14955
+ })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
14956
+ var NPCThumbnail = /*#__PURE__*/styled.img.withConfig({
14957
+ displayName: "NPCDialog__NPCThumbnail",
14958
+ componentId: "sc-1b4aw74-3"
14959
+ })(["image-rendering:pixelated;height:128px;width:128px;"]);
14969
14960
 
14970
- var ItemSelector = function ItemSelector(_ref) {
14971
- var atlasIMG = _ref.atlasIMG,
14972
- atlasJSON = _ref.atlasJSON,
14973
- options = _ref.options,
14974
- onClose = _ref.onClose,
14975
- onSelect = _ref.onSelect;
14976
- var _useState = useState(),
14977
- selectedValue = _useState[0],
14978
- setSelectedValue = _useState[1];
14979
- var handleClick = function handleClick() {
14980
- var element = document.querySelector("input[name='test']:checked");
14981
- var elementValue = element.value;
14982
- setSelectedValue(elementValue);
14961
+ var ImgSide;
14962
+ (function (ImgSide) {
14963
+ ImgSide["right"] = "right";
14964
+ ImgSide["left"] = "left";
14965
+ })(ImgSide || (ImgSide = {}));
14966
+ var NPCMultiDialog = function NPCMultiDialog(_ref) {
14967
+ var _textAndTypeArray$sli;
14968
+ var _onClose = _ref.onClose,
14969
+ textAndTypeArray = _ref.textAndTypeArray;
14970
+ var _useState = useState(false),
14971
+ showGoNextIndicator = _useState[0],
14972
+ setShowGoNextIndicator = _useState[1];
14973
+ var _useState2 = useState(0),
14974
+ slide = _useState2[0],
14975
+ setSlide = _useState2[1];
14976
+ var onHandleSpacePress = function onHandleSpacePress(event) {
14977
+ if (event.code === 'Space') {
14978
+ if (slide < (textAndTypeArray == null ? void 0 : textAndTypeArray.length) - 1) {
14979
+ setSlide(function (prev) {
14980
+ return prev + 1;
14981
+ });
14982
+ } else {
14983
+ // if there's no more text chunks, close the dialog
14984
+ _onClose();
14985
+ }
14986
+ }
14983
14987
  };
14984
14988
  useEffect(function () {
14985
- if (selectedValue) {
14986
- onSelect(selectedValue);
14989
+ document.addEventListener('keydown', onHandleSpacePress);
14990
+ return function () {
14991
+ return document.removeEventListener('keydown', onHandleSpacePress);
14992
+ };
14993
+ }, [slide]);
14994
+ return React.createElement(RPGUIContainer, {
14995
+ type: RPGUIContainerTypes.FramedGold,
14996
+ width: '50%',
14997
+ height: '180px'
14998
+ }, React.createElement(React.Fragment, null, React.createElement(Container$h, null, ((_textAndTypeArray$sli = textAndTypeArray[slide]) == null ? void 0 : _textAndTypeArray$sli.imageSide) === 'right' && React.createElement(React.Fragment, null, React.createElement(TextContainer$2, {
14999
+ flex: '70%'
15000
+ }, React.createElement(NPCDialogText, {
15001
+ onStartStep: function onStartStep() {
15002
+ return setShowGoNextIndicator(false);
15003
+ },
15004
+ onEndStep: function onEndStep() {
15005
+ return setShowGoNextIndicator(true);
15006
+ },
15007
+ text: textAndTypeArray[slide].text || 'No text provided.',
15008
+ onClose: function onClose() {
15009
+ if (_onClose) {
15010
+ _onClose();
15011
+ }
14987
15012
  }
14988
- }, [selectedValue]);
15013
+ })), React.createElement(ThumbnailContainer$1, null, React.createElement(NPCThumbnail$1, {
15014
+ src: textAndTypeArray[slide].imagePath || img$7
15015
+ })), showGoNextIndicator && React.createElement(PressSpaceIndicator$1, {
15016
+ right: '10.5rem',
15017
+ src: img$6
15018
+ })), textAndTypeArray[slide].imageSide === 'left' && React.createElement(React.Fragment, null, React.createElement(ThumbnailContainer$1, null, React.createElement(NPCThumbnail$1, {
15019
+ src: textAndTypeArray[slide].imagePath || img$7
15020
+ })), React.createElement(TextContainer$2, {
15021
+ flex: '70%'
15022
+ }, React.createElement(NPCDialogText, {
15023
+ onStartStep: function onStartStep() {
15024
+ return setShowGoNextIndicator(false);
15025
+ },
15026
+ onEndStep: function onEndStep() {
15027
+ return setShowGoNextIndicator(true);
15028
+ },
15029
+ text: textAndTypeArray[slide].text || 'No text provided.',
15030
+ onClose: function onClose() {
15031
+ if (_onClose) {
15032
+ _onClose();
15033
+ }
15034
+ }
15035
+ })), showGoNextIndicator && React.createElement(PressSpaceIndicator$1, {
15036
+ right: '1rem',
15037
+ src: img$6
15038
+ }))), ")"));
15039
+ };
15040
+ var Container$h = /*#__PURE__*/styled.div.withConfig({
15041
+ displayName: "NPCMultiDialog__Container",
15042
+ componentId: "sc-rvu5wg-0"
15043
+ })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
15044
+ var TextContainer$2 = /*#__PURE__*/styled.div.withConfig({
15045
+ displayName: "NPCMultiDialog__TextContainer",
15046
+ componentId: "sc-rvu5wg-1"
15047
+ })(["flex:", " 0 0;width:355px;"], function (_ref2) {
15048
+ var flex = _ref2.flex;
15049
+ return flex;
15050
+ });
15051
+ var ThumbnailContainer$1 = /*#__PURE__*/styled.div.withConfig({
15052
+ displayName: "NPCMultiDialog__ThumbnailContainer",
15053
+ componentId: "sc-rvu5wg-2"
15054
+ })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
15055
+ var NPCThumbnail$1 = /*#__PURE__*/styled.img.withConfig({
15056
+ displayName: "NPCMultiDialog__NPCThumbnail",
15057
+ componentId: "sc-rvu5wg-3"
15058
+ })(["image-rendering:pixelated;height:128px;width:128px;"]);
15059
+ var PressSpaceIndicator$1 = /*#__PURE__*/styled.img.withConfig({
15060
+ displayName: "NPCMultiDialog__PressSpaceIndicator",
15061
+ componentId: "sc-rvu5wg-4"
15062
+ })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref3) {
15063
+ var right = _ref3.right;
15064
+ return right;
15065
+ });
15066
+
15067
+ var HistoryDialog = function HistoryDialog(_ref) {
15068
+ var backgroundImgPath = _ref.backgroundImgPath,
15069
+ fullCoverBackground = _ref.fullCoverBackground,
15070
+ questions = _ref.questions,
15071
+ answers = _ref.answers,
15072
+ text = _ref.text,
15073
+ imagePath = _ref.imagePath,
15074
+ textAndTypeArray = _ref.textAndTypeArray,
15075
+ onClose = _ref.onClose;
15076
+ var _useState = useState(0),
15077
+ img = _useState[0],
15078
+ setImage = _useState[1];
15079
+ var onHandleSpacePress = function onHandleSpacePress(event) {
15080
+ if (event.code === 'Space') {
15081
+ if (img < (backgroundImgPath == null ? void 0 : backgroundImgPath.length) - 1) {
15082
+ setImage(function (prev) {
15083
+ return prev + 1;
15084
+ });
15085
+ } else {
15086
+ // if there's no more text chunks, close the dialog
15087
+ onClose();
15088
+ }
15089
+ }
15090
+ };
15091
+ useEffect(function () {
15092
+ document.addEventListener('keydown', onHandleSpacePress);
15093
+ return function () {
15094
+ return document.removeEventListener('keydown', onHandleSpacePress);
15095
+ };
15096
+ }, [backgroundImgPath]);
15097
+ return React.createElement(BackgroundContainer, {
15098
+ imgPath: backgroundImgPath[img],
15099
+ fullImg: fullCoverBackground
15100
+ }, React.createElement(DialogContainer, null, textAndTypeArray ? React.createElement(NPCMultiDialog, {
15101
+ textAndTypeArray: textAndTypeArray,
15102
+ onClose: onClose
15103
+ }) : questions && answers ? React.createElement(QuestionDialog, {
15104
+ questions: questions,
15105
+ answers: answers,
15106
+ onClose: onClose
15107
+ }) : text && imagePath ? React.createElement(NPCDialog, {
15108
+ text: text,
15109
+ imagePath: imagePath,
15110
+ onClose: onClose,
15111
+ type: NPCDialogType.TextAndThumbnail
15112
+ }) : React.createElement(NPCDialog, {
15113
+ text: text,
15114
+ onClose: onClose,
15115
+ type: NPCDialogType.TextOnly
15116
+ })));
15117
+ };
15118
+ var BackgroundContainer = /*#__PURE__*/styled.div.withConfig({
15119
+ displayName: "HistoryDialog__BackgroundContainer",
15120
+ componentId: "sc-u6oe75-0"
15121
+ })(["width:100%;height:100%;background-image:url(", ");background-size:", ";display:flex;justify-content:space-evenly;align-items:center;"], function (props) {
15122
+ return props.imgPath;
15123
+ }, function (props) {
15124
+ return props.imgPath ? 'cover' : 'auto';
15125
+ });
15126
+ var DialogContainer = /*#__PURE__*/styled.div.withConfig({
15127
+ displayName: "HistoryDialog__DialogContainer",
15128
+ componentId: "sc-u6oe75-1"
15129
+ })(["display:flex;justify-content:center;padding-top:200px;"]);
15130
+
15131
+ var SlotsContainer = function SlotsContainer(_ref) {
15132
+ var children = _ref.children,
15133
+ title = _ref.title,
15134
+ onClose = _ref.onClose,
15135
+ _onPositionChange = _ref.onPositionChange,
15136
+ _onPositionChangeEnd = _ref.onPositionChangeEnd,
15137
+ _onPositionChangeStart = _ref.onPositionChangeStart,
15138
+ onOutsideClick = _ref.onOutsideClick,
15139
+ initialPosition = _ref.initialPosition,
15140
+ scale = _ref.scale;
14989
15141
  return React.createElement(DraggableContainer, {
15142
+ title: title,
14990
15143
  type: RPGUIContainerTypes.Framed,
14991
- width: "500px",
14992
- cancelDrag: ".equipment-container-body .arrow-selector",
14993
15144
  onCloseButton: function onCloseButton() {
14994
15145
  if (onClose) {
14995
15146
  onClose();
14996
15147
  }
15148
+ },
15149
+ width: "400px",
15150
+ cancelDrag: ".item-container-body, #shortcuts_list",
15151
+ onPositionChange: function onPositionChange(_ref2) {
15152
+ var x = _ref2.x,
15153
+ y = _ref2.y;
15154
+ if (_onPositionChange) {
15155
+ _onPositionChange({
15156
+ x: x,
15157
+ y: y
15158
+ });
15159
+ }
15160
+ },
15161
+ onPositionChangeEnd: function onPositionChangeEnd(_ref3) {
15162
+ var x = _ref3.x,
15163
+ y = _ref3.y;
15164
+ if (_onPositionChangeEnd) {
15165
+ _onPositionChangeEnd({
15166
+ x: x,
15167
+ y: y
15168
+ });
15169
+ }
15170
+ },
15171
+ onPositionChangeStart: function onPositionChangeStart(_ref4) {
15172
+ var x = _ref4.x,
15173
+ y = _ref4.y;
15174
+ if (_onPositionChangeStart) {
15175
+ _onPositionChangeStart({
15176
+ x: x,
15177
+ y: y
15178
+ });
15179
+ }
15180
+ },
15181
+ onOutsideClick: onOutsideClick,
15182
+ initialPosition: initialPosition,
15183
+ scale: scale
15184
+ }, children);
15185
+ };
15186
+
15187
+ var RangeSliderType;
15188
+ (function (RangeSliderType) {
15189
+ RangeSliderType["Slider"] = "rpgui-slider";
15190
+ RangeSliderType["GoldSlider"] = "rpgui-slider golden";
15191
+ })(RangeSliderType || (RangeSliderType = {}));
15192
+ var RangeSlider = function RangeSlider(_ref) {
15193
+ var type = _ref.type,
15194
+ valueMin = _ref.valueMin,
15195
+ valueMax = _ref.valueMax,
15196
+ width = _ref.width,
15197
+ _onChange = _ref.onChange,
15198
+ value = _ref.value;
15199
+ var sliderId = v4();
15200
+ var containerRef = useRef(null);
15201
+ var _useState = useState(0),
15202
+ left = _useState[0],
15203
+ setLeft = _useState[1];
15204
+ useEffect(function () {
15205
+ var _containerRef$current;
15206
+ var calculatedWidth = ((_containerRef$current = containerRef.current) == null ? void 0 : _containerRef$current.clientWidth) || 0;
15207
+ setLeft(Math.max((value - valueMin) / (valueMax - valueMin) * (calculatedWidth - 35) + 10));
15208
+ }, [value, valueMin, valueMax]);
15209
+ var typeClass = type === RangeSliderType.GoldSlider ? 'golden' : '';
15210
+ return React.createElement("div", {
15211
+ style: {
15212
+ width: width,
15213
+ position: 'relative'
15214
+ },
15215
+ className: "rpgui-slider-container " + typeClass,
15216
+ id: "rpgui-slider-" + sliderId,
15217
+ ref: containerRef
15218
+ }, React.createElement("div", {
15219
+ style: {
15220
+ pointerEvents: 'none'
14997
15221
  }
14998
15222
  }, React.createElement("div", {
15223
+ className: "rpgui-slider-track " + typeClass
15224
+ }), React.createElement("div", {
15225
+ className: "rpgui-slider-left-edge " + typeClass
15226
+ }), React.createElement("div", {
15227
+ className: "rpgui-slider-right-edge " + typeClass
15228
+ }), React.createElement("div", {
15229
+ className: "rpgui-slider-thumb " + typeClass,
14999
15230
  style: {
15000
- width: '100%'
15231
+ left: left
15001
15232
  }
15002
- }, React.createElement(Title$3, null, 'Harvesting instruments'), React.createElement(Subtitle$1, null, 'Use the tool, you need it'), React.createElement("hr", {
15003
- className: "golden"
15004
- })), React.createElement(RadioInputScroller$1, null, options == null ? void 0 : options.map(function (option, index) {
15005
- return React.createElement(RadioOptionsWrapper$1, {
15006
- key: index
15007
- }, React.createElement(SpriteAtlasWrapper$1, null, React.createElement(SpriteFromAtlas, {
15008
- atlasIMG: atlasIMG,
15009
- atlasJSON: atlasJSON,
15010
- spriteKey: option.imageKey,
15011
- imgScale: 3
15012
- })), React.createElement("div", null, React.createElement("input", {
15013
- className: "rpgui-radio",
15014
- type: "radio",
15015
- value: option.name,
15016
- name: "test"
15017
- }), React.createElement("label", {
15018
- onPointerDown: handleClick,
15019
- style: {
15020
- display: 'flex',
15021
- alignItems: 'center'
15022
- }
15023
- }, option.name, " ", React.createElement("br", null), option.description)));
15024
- })), React.createElement(ButtonWrapper$1, null, React.createElement(Button, {
15025
- buttonType: ButtonTypes.RPGUIButton,
15026
- onPointerDown: onClose
15027
- }, "Cancel"), React.createElement(Button, {
15028
- buttonType: ButtonTypes.RPGUIButton
15029
- }, "Select")));
15233
+ })), React.createElement(Input$1, {
15234
+ type: "range",
15235
+ style: {
15236
+ width: width
15237
+ },
15238
+ min: valueMin,
15239
+ max: valueMax,
15240
+ onChange: function onChange(e) {
15241
+ return _onChange(Number(e.target.value));
15242
+ },
15243
+ value: value,
15244
+ className: "rpgui-cursor-point"
15245
+ }));
15030
15246
  };
15031
- var Title$3 = /*#__PURE__*/styled.h1.withConfig({
15032
- displayName: "ItemSelector__Title",
15033
- componentId: "sc-gptoxp-0"
15034
- })(["font-size:0.6rem;color:yellow !important;"]);
15035
- var Subtitle$1 = /*#__PURE__*/styled.h1.withConfig({
15036
- displayName: "ItemSelector__Subtitle",
15037
- componentId: "sc-gptoxp-1"
15038
- })(["font-size:0.4rem;color:yellow !important;"]);
15039
- var RadioInputScroller$1 = /*#__PURE__*/styled.div.withConfig({
15040
- displayName: "ItemSelector__RadioInputScroller",
15041
- componentId: "sc-gptoxp-2"
15042
- })(["padding-left:15px;padding-top:10px;width:100%;margin-top:1rem;align-items:center;margin-left:20px;align-items:flex-start;overflow-y:scroll;height:360px;"]);
15043
- var SpriteAtlasWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15044
- displayName: "ItemSelector__SpriteAtlasWrapper",
15045
- componentId: "sc-gptoxp-3"
15046
- })(["margin-right:40px;"]);
15047
- var RadioOptionsWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15048
- displayName: "ItemSelector__RadioOptionsWrapper",
15049
- componentId: "sc-gptoxp-4"
15050
- })(["display:flex;align-items:stretch;margin-bottom:40px;"]);
15051
- var ButtonWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15052
- displayName: "ItemSelector__ButtonWrapper",
15053
- componentId: "sc-gptoxp-5"
15054
- })(["display:flex;justify-content:space-around;padding-top:20px;width:100%;"]);
15247
+ var Input$1 = /*#__PURE__*/styled.input.withConfig({
15248
+ displayName: "RangeSlider__Input",
15249
+ componentId: "sc-v8mte9-0"
15250
+ })(["opacity:0;position:absolute;width:100%;height:100%;top:0;left:0;margin-top:-5px;"]);
15055
15251
 
15056
- var ListMenu = function ListMenu(_ref) {
15057
- var options = _ref.options,
15058
- onSelected = _ref.onSelected,
15059
- x = _ref.x,
15060
- y = _ref.y;
15061
- return React.createElement(Container$f, {
15062
- x: x,
15063
- y: y
15064
- }, React.createElement("ul", {
15065
- className: "rpgui-list-imp",
15252
+ var ItemQuantitySelector = function ItemQuantitySelector(_ref) {
15253
+ var quantity = _ref.quantity,
15254
+ onConfirm = _ref.onConfirm,
15255
+ onClose = _ref.onClose;
15256
+ var _useState = useState(quantity),
15257
+ value = _useState[0],
15258
+ setValue = _useState[1];
15259
+ var inputRef = useRef(null);
15260
+ useEffect(function () {
15261
+ if (inputRef.current) {
15262
+ inputRef.current.focus();
15263
+ inputRef.current.select();
15264
+ var closeSelector = function closeSelector(e) {
15265
+ if (e.key === 'Escape') {
15266
+ onClose();
15267
+ }
15268
+ };
15269
+ document.addEventListener('keydown', closeSelector);
15270
+ return function () {
15271
+ document.removeEventListener('keydown', closeSelector);
15272
+ };
15273
+ }
15274
+ return function () {};
15275
+ }, []);
15276
+ return React.createElement(StyledContainer, {
15277
+ type: RPGUIContainerTypes.Framed,
15278
+ width: "25rem"
15279
+ }, React.createElement(CloseButton$2, {
15280
+ className: "container-close",
15281
+ onPointerDown: onClose
15282
+ }, "X"), React.createElement("h2", null, "Select quantity to move"), React.createElement(StyledForm, {
15066
15283
  style: {
15067
- overflow: 'hidden'
15284
+ width: '100%'
15285
+ },
15286
+ onSubmit: function onSubmit(e) {
15287
+ e.preventDefault();
15288
+ var numberValue = Number(value);
15289
+ if (Number.isNaN(numberValue)) {
15290
+ return;
15291
+ }
15292
+ onConfirm(Math.max(1, Math.min(quantity, numberValue)));
15293
+ },
15294
+ noValidate: true
15295
+ }, React.createElement(StyledInput, {
15296
+ innerRef: inputRef,
15297
+ placeholder: "Enter quantity",
15298
+ type: "number",
15299
+ min: 1,
15300
+ max: quantity,
15301
+ value: value,
15302
+ onChange: function onChange(e) {
15303
+ if (Number(e.target.value) >= quantity) {
15304
+ setValue(quantity);
15305
+ return;
15306
+ }
15307
+ setValue(e.target.value);
15308
+ },
15309
+ onBlur: function onBlur(e) {
15310
+ var newValue = Math.max(1, Math.min(quantity, Number(e.target.value)));
15311
+ setValue(newValue);
15068
15312
  }
15069
- }, options.map(function (params, index) {
15070
- return React.createElement(ListElement$1, {
15071
- key: (params == null ? void 0 : params.id) || index,
15313
+ }), React.createElement(RangeSlider, {
15314
+ type: RangeSliderType.Slider,
15315
+ valueMin: 1,
15316
+ valueMax: quantity,
15317
+ width: "100%",
15318
+ onChange: setValue,
15319
+ value: value
15320
+ }), React.createElement(Button, {
15321
+ buttonType: ButtonTypes.RPGUIButton,
15322
+ type: "submit"
15323
+ }, "Confirm")));
15324
+ };
15325
+ var StyledContainer = /*#__PURE__*/styled(RPGUIContainer).withConfig({
15326
+ displayName: "ItemQuantitySelector__StyledContainer",
15327
+ componentId: "sc-yfdtpn-0"
15328
+ })(["display:flex;flex-direction:column;align-items:center;"]);
15329
+ var StyledForm = /*#__PURE__*/styled.form.withConfig({
15330
+ displayName: "ItemQuantitySelector__StyledForm",
15331
+ componentId: "sc-yfdtpn-1"
15332
+ })(["display:flex;flex-direction:column;align-items:center;width:100%;"]);
15333
+ var StyledInput = /*#__PURE__*/styled(Input).withConfig({
15334
+ displayName: "ItemQuantitySelector__StyledInput",
15335
+ componentId: "sc-yfdtpn-2"
15336
+ })(["text-align:center;&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}&[type='number']{-moz-appearance:textfield;}"]);
15337
+ var CloseButton$2 = /*#__PURE__*/styled.div.withConfig({
15338
+ displayName: "ItemQuantitySelector__CloseButton",
15339
+ componentId: "sc-yfdtpn-3"
15340
+ })(["position:absolute;top:3px;right:0px;color:white;z-index:22;font-size:0.8rem;"]);
15341
+
15342
+ var ShortcutsSetter = function ShortcutsSetter(_ref) {
15343
+ var setSettingShortcutIndex = _ref.setSettingShortcutIndex,
15344
+ settingShortcutIndex = _ref.settingShortcutIndex,
15345
+ shortcuts = _ref.shortcuts,
15346
+ removeShortcut = _ref.removeShortcut,
15347
+ atlasJSON = _ref.atlasJSON,
15348
+ atlasIMG = _ref.atlasIMG;
15349
+ var getContent = function getContent(index) {
15350
+ var _shortcuts$index, _shortcuts$index3;
15351
+ if (((_shortcuts$index = shortcuts[index]) == null ? void 0 : _shortcuts$index.type) === ShortcutType.Item) {
15352
+ var _shortcuts$index2;
15353
+ var _payload = (_shortcuts$index2 = shortcuts[index]) == null ? void 0 : _shortcuts$index2.payload;
15354
+ if (!_payload) return null;
15355
+ return React.createElement(SpriteFromAtlas, {
15356
+ atlasIMG: atlasIMG,
15357
+ atlasJSON: atlasJSON,
15358
+ spriteKey: getItemTextureKeyPath({
15359
+ key: _payload.texturePath,
15360
+ texturePath: _payload.texturePath,
15361
+ stackQty: _payload.stackQty || 1,
15362
+ isStackable: _payload.isStackable
15363
+ }, atlasJSON),
15364
+ width: 32,
15365
+ height: 32,
15366
+ imgScale: 1.6,
15367
+ imgStyle: {
15368
+ left: '5px'
15369
+ }
15370
+ });
15371
+ }
15372
+ var payload = (_shortcuts$index3 = shortcuts[index]) == null ? void 0 : _shortcuts$index3.payload;
15373
+ return React.createElement("span", null, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
15374
+ return word[0];
15375
+ }));
15376
+ };
15377
+ return React.createElement(Container$i, null, React.createElement("p", null, "Shortcuts:"), React.createElement(List, {
15378
+ id: "shortcuts_list"
15379
+ }, Array.from({
15380
+ length: 6
15381
+ }).map(function (_, i) {
15382
+ return React.createElement(Shortcut, {
15383
+ key: i,
15072
15384
  onPointerDown: function onPointerDown() {
15073
- onSelected(params == null ? void 0 : params.id);
15074
- }
15075
- }, (params == null ? void 0 : params.text) || 'No text');
15385
+ if (settingShortcutIndex !== -1) setSettingShortcutIndex(-1);
15386
+ removeShortcut(i);
15387
+ if (settingShortcutIndex === -1 && (!shortcuts[i] || shortcuts[i].type === ShortcutType.None)) setSettingShortcutIndex(i);
15388
+ },
15389
+ disabled: settingShortcutIndex !== -1 && settingShortcutIndex !== i,
15390
+ isBeingSet: settingShortcutIndex === i,
15391
+ id: "shortcutSetter_" + i
15392
+ }, getContent(i));
15076
15393
  })));
15077
15394
  };
15078
- var Container$f = /*#__PURE__*/styled.div.withConfig({
15079
- displayName: "ListMenu__Container",
15080
- componentId: "sc-i9097t-0"
15081
- })(["display:flex;flex-direction:column;width:100%;justify-content:start;align-items:flex-start;position:absolute;top:", "px;left:", "px;li{font-size:", ";}"], function (props) {
15082
- return props.y || 0;
15083
- }, function (props) {
15084
- return props.x || 0;
15085
- }, uiFonts.size.xsmall);
15086
- var ListElement$1 = /*#__PURE__*/styled.li.withConfig({
15087
- displayName: "ListMenu__ListElement",
15088
- componentId: "sc-i9097t-1"
15089
- })(["margin-right:0.5rem;"]);
15395
+ var Container$i = /*#__PURE__*/styled.div.withConfig({
15396
+ displayName: "ShortcutsSetter__Container",
15397
+ componentId: "sc-xuouuf-0"
15398
+ })(["p{margin:0;margin-left:0.5rem;}"]);
15399
+ var Shortcut = /*#__PURE__*/styled.button.withConfig({
15400
+ displayName: "ShortcutsSetter__Shortcut",
15401
+ componentId: "sc-xuouuf-1"
15402
+ })(["width:2.6rem;height:2.6rem;background-color:", ";border:2px solid ", ";border-radius:50%;text-transform:uppercase;font-size:0.7rem;font-weight:bold;display:flex;align-items:center;justify-content:center;span{margin-top:4px;}&:hover,&:focus{background-color:", ";}&:active{background-color:", ";}&:disabled{opacity:0.5;}"], uiColors.lightGray, function (_ref2) {
15403
+ var isBeingSet = _ref2.isBeingSet;
15404
+ return isBeingSet ? uiColors.yellow : uiColors.darkGray;
15405
+ }, uiColors.darkGray, uiColors.gray);
15406
+ var List = /*#__PURE__*/styled.div.withConfig({
15407
+ displayName: "ShortcutsSetter__List",
15408
+ componentId: "sc-xuouuf-2"
15409
+ })(["width:100%;display:flex;align-items:center;gap:0.5rem;padding-bottom:0.5rem;padding-left:0.5rem;box-sizing:border-box;margin:0 !important;"]);
15090
15410
 
15091
- var MarketplaceRows = function MarketplaceRows(_ref) {
15092
- var atlasJSON = _ref.atlasJSON,
15411
+ var ItemContainer$1 = function ItemContainer(_ref) {
15412
+ var itemContainer = _ref.itemContainer,
15413
+ onClose = _ref.onClose,
15414
+ _onMouseOver = _ref.onMouseOver,
15415
+ _onSelected = _ref.onSelected,
15416
+ onItemClick = _ref.onItemClick,
15417
+ type = _ref.type,
15418
+ atlasJSON = _ref.atlasJSON,
15093
15419
  atlasIMG = _ref.atlasIMG,
15094
- item = _ref.item,
15095
- itemPrice = _ref.itemPrice,
15096
- equipmentSet = _ref.equipmentSet,
15420
+ _ref$disableContextMe = _ref.disableContextMenu,
15421
+ disableContextMenu = _ref$disableContextMe === void 0 ? false : _ref$disableContextMe,
15422
+ onItemDragEnd = _ref.onItemDragEnd,
15423
+ onItemDragStart = _ref.onItemDragStart,
15424
+ onItemPlaceDrop = _ref.onItemPlaceDrop,
15425
+ _onOutsideDrop = _ref.onOutsideDrop,
15426
+ checkIfItemCanBeMoved = _ref.checkIfItemCanBeMoved,
15427
+ initialPosition = _ref.initialPosition,
15428
+ checkIfItemShouldDragEnd = _ref.checkIfItemShouldDragEnd,
15097
15429
  scale = _ref.scale,
15098
- onHandleClick = _ref.onHandleClick;
15099
- return React.createElement(MarketPlaceWrapper, null, React.createElement(ItemIconContainer, null, React.createElement(SpriteContainer, null, React.createElement(ItemInfoWrapper, {
15100
- item: item,
15101
- atlasIMG: atlasIMG,
15102
- atlasJSON: atlasJSON,
15103
- equipmentSet: equipmentSet,
15104
- scale: scale
15105
- }, React.createElement(SpriteFromAtlas, {
15106
- atlasIMG: atlasIMG,
15107
- atlasJSON: atlasJSON,
15108
- spriteKey: getItemTextureKeyPath({
15109
- key: item.key,
15110
- stackQty: item.stackQty || 1,
15111
- texturePath: item.texturePath,
15112
- isStackable: item.isStackable
15113
- }, atlasJSON),
15114
- imgScale: 2
15115
- }))), React.createElement(PriceValue, null, React.createElement("p", null, React.createElement(Ellipsis, {
15116
- maxLines: 1,
15117
- maxWidth: "150px",
15118
- fontSize: "10px"
15119
- }, item.name)))), React.createElement(QuantityContainer, null, React.createElement(QuantityDisplay, null, React.createElement(TextOverlay$1, null, React.createElement(Item$1, null, React.createElement(Ellipsis, {
15120
- maxLines: 1,
15121
- maxWidth: "150px",
15122
- fontSize: "10px"
15123
- }, item.rarity))))), React.createElement(ItemIconContainer, null, React.createElement(SpriteContainer, null, React.createElement(SpriteFromAtlas, {
15430
+ shortcuts = _ref.shortcuts,
15431
+ setItemShortcut = _ref.setItemShortcut,
15432
+ removeShortcut = _ref.removeShortcut,
15433
+ equipmentSet = _ref.equipmentSet,
15434
+ isDepotSystem = _ref.isDepotSystem,
15435
+ onPositionChangeEnd = _ref.onPositionChangeEnd,
15436
+ onPositionChangeStart = _ref.onPositionChangeStart;
15437
+ var _useState = useState({
15438
+ isOpen: false,
15439
+ maxQuantity: 1,
15440
+ callback: function callback(_quantity) {}
15441
+ }),
15442
+ quantitySelect = _useState[0],
15443
+ setQuantitySelect = _useState[1];
15444
+ var _useState2 = useState(-1),
15445
+ settingShortcutIndex = _useState2[0],
15446
+ setSettingShortcutIndex = _useState2[1];
15447
+ var handleSetShortcut = function handleSetShortcut(item, index) {
15448
+ if (item.type === ItemType.Consumable || item.type === ItemType.Tool) {
15449
+ setItemShortcut == null ? void 0 : setItemShortcut(item.key, index);
15450
+ }
15451
+ };
15452
+ var onRenderSlots = function onRenderSlots() {
15453
+ var slots = [];
15454
+ for (var i = 0; i < itemContainer.slotQty; i++) {
15455
+ var _itemContainer$slots;
15456
+ slots.push(React.createElement(ItemSlot, {
15457
+ isContextMenuDisabled: disableContextMenu,
15458
+ key: i,
15459
+ slotIndex: i,
15460
+ item: ((_itemContainer$slots = itemContainer.slots) == null ? void 0 : _itemContainer$slots[i]) || null,
15461
+ itemContainerType: type,
15462
+ onMouseOver: function onMouseOver(event, slotIndex, item) {
15463
+ if (_onMouseOver) _onMouseOver(event, slotIndex, item);
15464
+ },
15465
+ onPointerDown: function onPointerDown(itemType, containerType, item) {
15466
+ if (settingShortcutIndex !== -1) {
15467
+ setSettingShortcutIndex(-1);
15468
+ handleSetShortcut(item, settingShortcutIndex);
15469
+ } else if (onItemClick) onItemClick(item, itemType, containerType);
15470
+ },
15471
+ onSelected: function onSelected(optionId, item) {
15472
+ if (_onSelected) _onSelected(optionId, item);
15473
+ },
15474
+ onDragStart: function onDragStart(item, slotIndex, itemContainerType) {
15475
+ if (onItemDragStart) onItemDragStart(item, slotIndex, itemContainerType);
15476
+ },
15477
+ onDragEnd: function onDragEnd(quantity) {
15478
+ if (onItemDragEnd) onItemDragEnd(quantity);
15479
+ },
15480
+ dragScale: scale,
15481
+ checkIfItemCanBeMoved: checkIfItemCanBeMoved,
15482
+ checkIfItemShouldDragEnd: checkIfItemShouldDragEnd,
15483
+ openQuantitySelector: function openQuantitySelector(maxQuantity, callback) {
15484
+ setQuantitySelect({
15485
+ isOpen: true,
15486
+ maxQuantity: maxQuantity,
15487
+ callback: callback
15488
+ });
15489
+ },
15490
+ onPlaceDrop: function onPlaceDrop(item, slotIndex, itemContainerType) {
15491
+ if (onItemPlaceDrop) onItemPlaceDrop(item, slotIndex, itemContainerType);
15492
+ },
15493
+ onOutsideDrop: function onOutsideDrop(item, position) {
15494
+ if (_onOutsideDrop) _onOutsideDrop(item, position);
15495
+ },
15496
+ atlasIMG: atlasIMG,
15497
+ atlasJSON: atlasJSON,
15498
+ isSelectingShortcut: settingShortcutIndex !== -1,
15499
+ equipmentSet: equipmentSet,
15500
+ setItemShortcut: type === ItemContainerType.Inventory ? handleSetShortcut : undefined,
15501
+ isDepotSystem: isDepotSystem
15502
+ }));
15503
+ }
15504
+ return slots;
15505
+ };
15506
+ return React.createElement(React.Fragment, null, React.createElement(SlotsContainer, {
15507
+ title: itemContainer.name || 'Container',
15508
+ onClose: onClose,
15509
+ initialPosition: initialPosition,
15510
+ scale: scale,
15511
+ onPositionChangeEnd: onPositionChangeEnd,
15512
+ onPositionChangeStart: onPositionChangeStart
15513
+ }, type === ItemContainerType.Inventory && shortcuts && removeShortcut && React.createElement(ShortcutsSetter, {
15514
+ setSettingShortcutIndex: setSettingShortcutIndex,
15515
+ settingShortcutIndex: settingShortcutIndex,
15516
+ shortcuts: shortcuts,
15517
+ removeShortcut: removeShortcut,
15124
15518
  atlasIMG: atlasIMG,
15125
- atlasJSON: atlasJSON,
15126
- spriteKey: 'others/gold-coin-qty-4.png',
15127
- imgScale: 2
15128
- })), React.createElement(PriceValue, null, React.createElement("p", null, React.createElement(Ellipsis, {
15129
- maxLines: 1,
15130
- maxWidth: "150px",
15131
- fontSize: "10px"
15132
- }, "$", itemPrice)))), React.createElement(ButtonContainer$1, null, React.createElement(Button, {
15133
- buttonType: ButtonTypes.RPGUIButton,
15134
- onClick: function onClick() {
15135
- return onHandleClick(item.name);
15519
+ atlasJSON: atlasJSON
15520
+ }), React.createElement(ItemsContainer, {
15521
+ className: "item-container-body"
15522
+ }, onRenderSlots())), quantitySelect.isOpen && React.createElement(ModalPortal, null, React.createElement(QuantitySelectorContainer, null, React.createElement(ItemQuantitySelector, {
15523
+ quantity: quantitySelect.maxQuantity,
15524
+ onConfirm: function onConfirm(quantity) {
15525
+ quantitySelect.callback(quantity);
15526
+ setQuantitySelect({
15527
+ isOpen: false,
15528
+ maxQuantity: 1,
15529
+ callback: function callback() {}
15530
+ });
15531
+ },
15532
+ onClose: function onClose() {
15533
+ quantitySelect.callback(-1);
15534
+ setQuantitySelect({
15535
+ isOpen: false,
15536
+ maxQuantity: 1,
15537
+ callback: function callback() {}
15538
+ });
15136
15539
  }
15137
- }, "Buy")));
15540
+ }))));
15138
15541
  };
15139
- var MarketPlaceWrapper = /*#__PURE__*/styled.div.withConfig({
15140
- displayName: "MarketplaceRows__MarketPlaceWrapper",
15141
- componentId: "sc-wmpr1o-0"
15142
- })(["margin:auto;display:grid;grid-template-columns:35% 20% 20% 25%;&:hover{background-color:", ";}padding:0.5rem;p{font-size:0.8rem;}"], uiColors.darkGray);
15143
- var ItemIconContainer = /*#__PURE__*/styled.div.withConfig({
15144
- displayName: "MarketplaceRows__ItemIconContainer",
15145
- componentId: "sc-wmpr1o-1"
15146
- })(["display:flex;justify-content:flex-start;align-items:center;"]);
15147
- var SpriteContainer = /*#__PURE__*/styled.div.withConfig({
15148
- displayName: "MarketplaceRows__SpriteContainer",
15149
- componentId: "sc-wmpr1o-2"
15150
- })(["position:relative;top:-0.5rem;left:0.5rem;"]);
15151
- var Item$1 = /*#__PURE__*/styled.span.withConfig({
15152
- displayName: "MarketplaceRows__Item",
15153
- componentId: "sc-wmpr1o-3"
15154
- })(["color:white;text-align:center;z-index:1;width:100%;"]);
15155
- var TextOverlay$1 = /*#__PURE__*/styled.div.withConfig({
15156
- displayName: "MarketplaceRows__TextOverlay",
15157
- componentId: "sc-wmpr1o-4"
15158
- })(["width:100%;position:relative;"]);
15159
- var QuantityContainer = /*#__PURE__*/styled.div.withConfig({
15160
- displayName: "MarketplaceRows__QuantityContainer",
15161
- componentId: "sc-wmpr1o-5"
15162
- })(["position:relative;display:flex;min-width:100px;justify-content:center;align-items:center;"]);
15163
- var QuantityDisplay = /*#__PURE__*/styled.div.withConfig({
15164
- displayName: "MarketplaceRows__QuantityDisplay",
15165
- componentId: "sc-wmpr1o-6"
15166
- })(["font-size:", ";"], uiFonts.size.small);
15167
- var PriceValue = /*#__PURE__*/styled.div.withConfig({
15168
- displayName: "MarketplaceRows__PriceValue",
15169
- componentId: "sc-wmpr1o-7"
15170
- })(["margin-left:40px;"]);
15171
- var ButtonContainer$1 = /*#__PURE__*/styled.div.withConfig({
15172
- displayName: "MarketplaceRows__ButtonContainer",
15173
- componentId: "sc-wmpr1o-8"
15174
- })(["margin:auto;"]);
15542
+ var ItemsContainer = /*#__PURE__*/styled.div.withConfig({
15543
+ displayName: "ItemContainer__ItemsContainer",
15544
+ componentId: "sc-15y5p9l-0"
15545
+ })(["display:flex;justify-content:center;flex-wrap:wrap;"]);
15546
+ var QuantitySelectorContainer = /*#__PURE__*/styled.div.withConfig({
15547
+ displayName: "ItemContainer__QuantitySelectorContainer",
15548
+ componentId: "sc-15y5p9l-1"
15549
+ })(["position:absolute;top:0;left:0;width:100vw;height:100vh;z-index:100;display:flex;justify-content:center;align-items:center;background-color:rgba(0,0,0,0.5);"]);
15175
15550
 
15176
- var Marketplace = function Marketplace(_ref) {
15177
- var items = _ref.items,
15178
- atlasIMG = _ref.atlasIMG,
15551
+ var ItemSelector = function ItemSelector(_ref) {
15552
+ var atlasIMG = _ref.atlasIMG,
15179
15553
  atlasJSON = _ref.atlasJSON,
15554
+ options = _ref.options,
15180
15555
  onClose = _ref.onClose,
15181
- optionsType = _ref.optionsType,
15182
- optionsRarity = _ref.optionsRarity,
15183
- optionsPrice = _ref.optionsPrice,
15184
- onChangeType = _ref.onChangeType,
15185
- onChangeRarity = _ref.onChangeRarity,
15186
- onChangeOrder = _ref.onChangeOrder,
15187
- onChangeNameInput = _ref.onChangeNameInput,
15188
- scale = _ref.scale,
15189
- equipmentSet = _ref.equipmentSet,
15190
- onHandleClick = _ref.onHandleClick;
15556
+ onSelect = _ref.onSelect;
15557
+ var _useState = useState(),
15558
+ selectedValue = _useState[0],
15559
+ setSelectedValue = _useState[1];
15560
+ var handleClick = function handleClick() {
15561
+ var element = document.querySelector("input[name='test']:checked");
15562
+ var elementValue = element.value;
15563
+ setSelectedValue(elementValue);
15564
+ };
15565
+ useEffect(function () {
15566
+ if (selectedValue) {
15567
+ onSelect(selectedValue);
15568
+ }
15569
+ }, [selectedValue]);
15191
15570
  return React.createElement(DraggableContainer, {
15192
15571
  type: RPGUIContainerTypes.Framed,
15572
+ width: "500px",
15573
+ cancelDrag: ".equipment-container-body .arrow-selector",
15193
15574
  onCloseButton: function onCloseButton() {
15194
- if (onClose) onClose();
15195
- },
15196
- width: "800px",
15197
- cancelDrag: "#MarketContainer",
15198
- scale: scale
15199
- }, React.createElement(React.Fragment, null, React.createElement(InputWrapper, null, React.createElement("p", null, " Search By Name"), React.createElement(Input, {
15200
- onChange: onChangeNameInput,
15201
- placeholder: 'Search...'
15202
- })), React.createElement(WrapperContainer, null, React.createElement(StyledDropdown, {
15203
- options: optionsType,
15204
- onChange: onChangeType,
15205
- width: '220px'
15206
- }), React.createElement(StyledDropdown, {
15207
- options: optionsRarity,
15208
- onChange: onChangeRarity,
15209
- width: '220px'
15210
- }), React.createElement(StyledDropdown, {
15211
- options: optionsPrice,
15212
- onChange: onChangeOrder,
15213
- width: '220px'
15214
- })), React.createElement(ItemComponentScrollWrapper, {
15215
- id: "MarketContainer"
15216
- }, items == null ? void 0 : items.map(function (item, index) {
15217
- return React.createElement(MarketplaceRows, {
15218
- key: item.key + "_" + index,
15575
+ if (onClose) {
15576
+ onClose();
15577
+ }
15578
+ }
15579
+ }, React.createElement("div", {
15580
+ style: {
15581
+ width: '100%'
15582
+ }
15583
+ }, React.createElement(Title$3, null, 'Harvesting instruments'), React.createElement(Subtitle$1, null, 'Use the tool, you need it'), React.createElement("hr", {
15584
+ className: "golden"
15585
+ })), React.createElement(RadioInputScroller$1, null, options == null ? void 0 : options.map(function (option, index) {
15586
+ return React.createElement(RadioOptionsWrapper$1, {
15587
+ key: index
15588
+ }, React.createElement(SpriteAtlasWrapper$1, null, React.createElement(SpriteFromAtlas, {
15219
15589
  atlasIMG: atlasIMG,
15220
15590
  atlasJSON: atlasJSON,
15221
- item: item,
15222
- itemPrice: 10,
15223
- equipmentSet: equipmentSet,
15224
- onHandleClick: onHandleClick
15225
- });
15226
- }))));
15227
- };
15228
- var InputWrapper = /*#__PURE__*/styled.div.withConfig({
15229
- displayName: "Marketplace__InputWrapper",
15230
- componentId: "sc-h904b1-0"
15231
- })(["width:95%;display:flex;justify-content:flex-start;align-items:center;margin:auto;margin-bottom:10px;p{width:auto;margin-right:20px;}input{width:68%;height:10px;}"]);
15232
- var WrapperContainer = /*#__PURE__*/styled.div.withConfig({
15233
- displayName: "Marketplace__WrapperContainer",
15234
- componentId: "sc-h904b1-1"
15235
- })(["display:grid;grid-template-columns:30% 30% 30%;justify-content:space-between;width:90%;margin-left:10px;.rpgui-content .rpgui-dropdown-imp-header{padding:0px 10px 0 !important;}"]);
15236
- var ItemComponentScrollWrapper = /*#__PURE__*/styled.div.withConfig({
15237
- displayName: "Marketplace__ItemComponentScrollWrapper",
15238
- componentId: "sc-h904b1-2"
15239
- })(["overflow-y:scroll;height:390px;width:100%;margin-top:1rem;"]);
15240
- var StyledDropdown = /*#__PURE__*/styled(Dropdown).withConfig({
15241
- displayName: "Marketplace__StyledDropdown",
15242
- componentId: "sc-h904b1-3"
15243
- })(["margin:3px !important;width:170px !important;"]);
15244
-
15245
- var img$5 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAP1BMVEUAAAA7FyVxQTsUEBPj5v////+5v/tCJDOOUlIiHBr1oJfptaO6dWr61rhzFy1bMTjoanMUNGQoXMQkn97+88DQ3IhAAAAAAXRSTlMAQObYZgAAAAFiS0dEBfhv6ccAAAAHdElNRQfmAw4VOBC7c5LYAAABM0lEQVQ4y3XRi5KDIAwFUAUkbrBgpP//rZsHVHQ009qZ3tPboNN0zmwzvcw8O5sX4y0NOg/Et3jRCXF+ziULorjkOQ9gE24dvuUAzq08DiCO4pe3WN7zCP56vmpubBReQYC11YPS86ySxxCsAABTSgjb5m4g8nfbxvFHBkH2OEEvAItVuCuIsgGgl+Gcr7kDXxhEAx55A2SQEEeQeZwUaIP8Tbo05B0RFPhItAjgj1w6cDnhLluDj+Egkh3pCCP4pKQAw1IPO0W9Nti5gW9RP2dKA3BZd2Dw+baYX+Nt4GM00O4S3kEpF6Alb2Bv4LeC3kkGfAW0/p0RPoJVKr63ghHsKuRh5DIUKOAlGOwrtt9fQekAEfmhZslHUDoglB0zjfkJigN7UnTQQ4GBWomoVhEN/AOPSBh38gy+fwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wMy0xNFQyMTo1NTo1MSswMDowMJcc0eEAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDMtMTRUMjE6NTU6NTErMDA6MDDmQWldAAAAAElFTkSuQmCC';
15246
-
15247
- var img$6 = 'data:image/gif;base64,R0lGODlhQAAgAPIAAAAAAA0NDRERESIiIigoKFlZWf///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw5nYW1tYT0wLjQ1NDU0NQAh+QQBFAAAACwAAAAAQAAgAAAD/wi63P4wykmrvTjrzbv/YAgIZGmeaKquakQWcCzPdG3fNukIeO//PQGDBywafcIF8chswpKKZcxApTqvNOiIZi0YsODncFaFlcNOrdTbJVff0/c3Lp/Xs2N37cy2ndt6ZnhKXHdsc4d7VnwyfIxqPWWOXXWLgHSGYoSNbZKVZp2WiJyjg1GFcaClqaqJhasyUAFrh3Cur3KqubWXBQIBAAEDtDeMaEEDAcLEx2gCycvN0jHPysPT09XR2M3a19zH3gTM4EYCBNDD4yzs7e4r48nB6gT19vf4+fr7/P3P8sKGvRtIkMUAeQoCHlzIsKHDhxAjSoTWQJnFixgzatzIsQWjRQYJAAAh/wtJbWFnZU1hZ2ljaw5nYW1tYT0wLjQ1NDU0NQAh+QQBFAAAACwAAAAAQAAgAAAD8Ai63P4wykmrvTjrzbv/YCiOlGCeaKqubMtGZiHPdG3feI6bjqD/wOBPwPAJj0ggcWFMOp+ypaI5M1it0KxNCqDKsAWDdhwt1q5fMPnJ9aJt17g4HafJ3/et+Tzn99V+aThqfTNtcHlhhIBVWG+BdDSHOmiPeHdij3aYhZONf46YkZGanzpSAV6KjaOIpqWtNwIBAAEDqqKKhZuJnHSwAgMBtqo5sGs5wcO3yM01ysTO0gXQzNPN1cXXUNnbyNna3kcmwrW3Lujp6ugD5bbn6/HyLe20Cu/t+fr7/P3+/wCF2VswrKDBgwgTKlzIsCCDBAA7';
15248
-
15249
- var ImgSide;
15250
- (function (ImgSide) {
15251
- ImgSide["right"] = "right";
15252
- ImgSide["left"] = "left";
15253
- })(ImgSide || (ImgSide = {}));
15254
- var NPCMultiDialog = function NPCMultiDialog(_ref) {
15255
- var _textAndTypeArray$sli;
15256
- var _onClose = _ref.onClose,
15257
- textAndTypeArray = _ref.textAndTypeArray;
15258
- var _useState = useState(false),
15259
- showGoNextIndicator = _useState[0],
15260
- setShowGoNextIndicator = _useState[1];
15261
- var _useState2 = useState(0),
15262
- slide = _useState2[0],
15263
- setSlide = _useState2[1];
15264
- var onHandleSpacePress = function onHandleSpacePress(event) {
15265
- if (event.code === 'Space') {
15266
- if (slide < (textAndTypeArray == null ? void 0 : textAndTypeArray.length) - 1) {
15267
- setSlide(function (prev) {
15268
- return prev + 1;
15269
- });
15270
- } else {
15271
- // if there's no more text chunks, close the dialog
15272
- _onClose();
15273
- }
15274
- }
15275
- };
15276
- useEffect(function () {
15277
- document.addEventListener('keydown', onHandleSpacePress);
15278
- return function () {
15279
- return document.removeEventListener('keydown', onHandleSpacePress);
15280
- };
15281
- }, [slide]);
15282
- return React.createElement(RPGUIContainer, {
15283
- type: RPGUIContainerTypes.FramedGold,
15284
- width: '50%',
15285
- height: '180px'
15286
- }, React.createElement(React.Fragment, null, React.createElement(Container$g, null, ((_textAndTypeArray$sli = textAndTypeArray[slide]) == null ? void 0 : _textAndTypeArray$sli.imageSide) === 'right' && React.createElement(React.Fragment, null, React.createElement(TextContainer, {
15287
- flex: '70%'
15288
- }, React.createElement(NPCDialogText, {
15289
- onStartStep: function onStartStep() {
15290
- return setShowGoNextIndicator(false);
15291
- },
15292
- onEndStep: function onEndStep() {
15293
- return setShowGoNextIndicator(true);
15294
- },
15295
- text: textAndTypeArray[slide].text || 'No text provided.',
15296
- onClose: function onClose() {
15297
- if (_onClose) {
15298
- _onClose();
15299
- }
15300
- }
15301
- })), React.createElement(ThumbnailContainer, null, React.createElement(NPCThumbnail, {
15302
- src: textAndTypeArray[slide].imagePath || img$5
15303
- })), showGoNextIndicator && React.createElement(PressSpaceIndicator, {
15304
- right: '10.5rem',
15305
- src: img$6
15306
- })), textAndTypeArray[slide].imageSide === 'left' && React.createElement(React.Fragment, null, React.createElement(ThumbnailContainer, null, React.createElement(NPCThumbnail, {
15307
- src: textAndTypeArray[slide].imagePath || img$5
15308
- })), React.createElement(TextContainer, {
15309
- flex: '70%'
15310
- }, React.createElement(NPCDialogText, {
15311
- onStartStep: function onStartStep() {
15312
- return setShowGoNextIndicator(false);
15313
- },
15314
- onEndStep: function onEndStep() {
15315
- return setShowGoNextIndicator(true);
15316
- },
15317
- text: textAndTypeArray[slide].text || 'No text provided.',
15318
- onClose: function onClose() {
15319
- if (_onClose) {
15320
- _onClose();
15591
+ spriteKey: option.imageKey,
15592
+ imgScale: 3
15593
+ })), React.createElement("div", null, React.createElement("input", {
15594
+ className: "rpgui-radio",
15595
+ type: "radio",
15596
+ value: option.name,
15597
+ name: "test"
15598
+ }), React.createElement("label", {
15599
+ onPointerDown: handleClick,
15600
+ style: {
15601
+ display: 'flex',
15602
+ alignItems: 'center'
15321
15603
  }
15322
- }
15323
- })), showGoNextIndicator && React.createElement(PressSpaceIndicator, {
15324
- right: '1rem',
15325
- src: img$6
15326
- }))), ")"));
15327
- };
15328
- var Container$g = /*#__PURE__*/styled.div.withConfig({
15329
- displayName: "NPCMultiDialog__Container",
15330
- componentId: "sc-rvu5wg-0"
15331
- })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
15332
- var TextContainer = /*#__PURE__*/styled.div.withConfig({
15333
- displayName: "NPCMultiDialog__TextContainer",
15334
- componentId: "sc-rvu5wg-1"
15335
- })(["flex:", " 0 0;width:355px;"], function (_ref2) {
15336
- var flex = _ref2.flex;
15337
- return flex;
15338
- });
15339
- var ThumbnailContainer = /*#__PURE__*/styled.div.withConfig({
15340
- displayName: "NPCMultiDialog__ThumbnailContainer",
15341
- componentId: "sc-rvu5wg-2"
15342
- })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
15343
- var NPCThumbnail = /*#__PURE__*/styled.img.withConfig({
15344
- displayName: "NPCMultiDialog__NPCThumbnail",
15345
- componentId: "sc-rvu5wg-3"
15346
- })(["image-rendering:pixelated;height:128px;width:128px;"]);
15347
- var PressSpaceIndicator = /*#__PURE__*/styled.img.withConfig({
15348
- displayName: "NPCMultiDialog__PressSpaceIndicator",
15349
- componentId: "sc-rvu5wg-4"
15350
- })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref3) {
15351
- var right = _ref3.right;
15352
- return right;
15353
- });
15354
-
15355
- //@ts-ignore
15356
- var useEventListener = function useEventListener(type, handler, el) {
15357
- if (el === void 0) {
15358
- el = window;
15359
- }
15360
- var savedHandler = React.useRef();
15361
- React.useEffect(function () {
15362
- savedHandler.current = handler;
15363
- }, [handler]);
15364
- React.useEffect(function () {
15365
- //@ts-ignore
15366
- var listener = function listener(e) {
15367
- return savedHandler.current(e);
15368
- };
15369
- el.addEventListener(type, listener);
15370
- return function () {
15371
- el.removeEventListener(type, listener);
15372
- };
15373
- }, [type, el]);
15604
+ }, option.name, " ", React.createElement("br", null), option.description)));
15605
+ })), React.createElement(ButtonWrapper$1, null, React.createElement(Button, {
15606
+ buttonType: ButtonTypes.RPGUIButton,
15607
+ onPointerDown: onClose
15608
+ }, "Cancel"), React.createElement(Button, {
15609
+ buttonType: ButtonTypes.RPGUIButton
15610
+ }, "Select")));
15374
15611
  };
15612
+ var Title$3 = /*#__PURE__*/styled.h1.withConfig({
15613
+ displayName: "ItemSelector__Title",
15614
+ componentId: "sc-gptoxp-0"
15615
+ })(["font-size:0.6rem;color:yellow !important;"]);
15616
+ var Subtitle$1 = /*#__PURE__*/styled.h1.withConfig({
15617
+ displayName: "ItemSelector__Subtitle",
15618
+ componentId: "sc-gptoxp-1"
15619
+ })(["font-size:0.4rem;color:yellow !important;"]);
15620
+ var RadioInputScroller$1 = /*#__PURE__*/styled.div.withConfig({
15621
+ displayName: "ItemSelector__RadioInputScroller",
15622
+ componentId: "sc-gptoxp-2"
15623
+ })(["padding-left:15px;padding-top:10px;width:100%;margin-top:1rem;align-items:center;margin-left:20px;align-items:flex-start;overflow-y:scroll;height:360px;"]);
15624
+ var SpriteAtlasWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15625
+ displayName: "ItemSelector__SpriteAtlasWrapper",
15626
+ componentId: "sc-gptoxp-3"
15627
+ })(["margin-right:40px;"]);
15628
+ var RadioOptionsWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15629
+ displayName: "ItemSelector__RadioOptionsWrapper",
15630
+ componentId: "sc-gptoxp-4"
15631
+ })(["display:flex;align-items:stretch;margin-bottom:40px;"]);
15632
+ var ButtonWrapper$1 = /*#__PURE__*/styled.div.withConfig({
15633
+ displayName: "ItemSelector__ButtonWrapper",
15634
+ componentId: "sc-gptoxp-5"
15635
+ })(["display:flex;justify-content:space-around;padding-top:20px;width:100%;"]);
15375
15636
 
15376
- var DynamicText = function DynamicText(_ref) {
15377
- var text = _ref.text,
15378
- onFinish = _ref.onFinish,
15379
- onStart = _ref.onStart;
15380
- var _useState = useState(''),
15381
- textState = _useState[0],
15382
- setTextState = _useState[1];
15383
- useEffect(function () {
15384
- var i = 0;
15385
- var interval = setInterval(function () {
15386
- // on every interval, show one more character
15387
- if (i === 0) {
15388
- if (onStart) {
15389
- onStart();
15390
- }
15391
- }
15392
- if (i < text.length) {
15393
- setTextState(text.substring(0, i + 1));
15394
- i++;
15395
- } else {
15396
- clearInterval(interval);
15397
- if (onFinish) {
15398
- onFinish();
15399
- }
15637
+ var ListMenu = function ListMenu(_ref) {
15638
+ var options = _ref.options,
15639
+ onSelected = _ref.onSelected,
15640
+ x = _ref.x,
15641
+ y = _ref.y;
15642
+ return React.createElement(Container$j, {
15643
+ x: x,
15644
+ y: y
15645
+ }, React.createElement("ul", {
15646
+ className: "rpgui-list-imp",
15647
+ style: {
15648
+ overflow: 'hidden'
15649
+ }
15650
+ }, options.map(function (params, index) {
15651
+ return React.createElement(ListElement$1, {
15652
+ key: (params == null ? void 0 : params.id) || index,
15653
+ onPointerDown: function onPointerDown() {
15654
+ onSelected(params == null ? void 0 : params.id);
15400
15655
  }
15401
- }, 50);
15402
- return function () {
15403
- clearInterval(interval);
15404
- };
15405
- }, [text]);
15406
- return React.createElement(TextContainer$1, null, textState);
15656
+ }, (params == null ? void 0 : params.text) || 'No text');
15657
+ })));
15407
15658
  };
15408
- var TextContainer$1 = /*#__PURE__*/styled.p.withConfig({
15409
- displayName: "DynamicText__TextContainer",
15410
- componentId: "sc-1ggl9nd-0"
15411
- })(["font-size:0.7rem !important;color:white;text-shadow:1px 1px 0px #000000;letter-spacing:1.2px;word-break:normal;"]);
15659
+ var Container$j = /*#__PURE__*/styled.div.withConfig({
15660
+ displayName: "ListMenu__Container",
15661
+ componentId: "sc-i9097t-0"
15662
+ })(["display:flex;flex-direction:column;width:100%;justify-content:start;align-items:flex-start;position:absolute;top:", "px;left:", "px;li{font-size:", ";}"], function (props) {
15663
+ return props.y || 0;
15664
+ }, function (props) {
15665
+ return props.x || 0;
15666
+ }, uiFonts.size.xsmall);
15667
+ var ListElement$1 = /*#__PURE__*/styled.li.withConfig({
15668
+ displayName: "ListMenu__ListElement",
15669
+ componentId: "sc-i9097t-1"
15670
+ })(["margin-right:0.5rem;"]);
15412
15671
 
15413
- var QuestionDialog = function QuestionDialog(_ref) {
15414
- var questions = _ref.questions,
15415
- answers = _ref.answers,
15416
- onClose = _ref.onClose;
15417
- var _useState = useState(questions[0]),
15418
- currentQuestion = _useState[0],
15419
- setCurrentQuestion = _useState[1];
15420
- var _useState2 = useState(false),
15421
- canShowAnswers = _useState2[0],
15422
- setCanShowAnswers = _useState2[1];
15423
- var onGetFirstAnswer = function onGetFirstAnswer() {
15424
- if (!currentQuestion.answerIds || currentQuestion.answerIds.length === 0) {
15425
- return null;
15426
- }
15427
- var firstAnswerId = currentQuestion.answerIds[0];
15428
- return answers.find(function (answer) {
15429
- return answer.id === firstAnswerId;
15430
- });
15431
- };
15432
- var _useState3 = useState(onGetFirstAnswer()),
15433
- currentAnswer = _useState3[0],
15434
- setCurrentAnswer = _useState3[1];
15435
- useEffect(function () {
15436
- setCurrentAnswer(onGetFirstAnswer());
15437
- }, [currentQuestion]);
15438
- var onGetAnswers = function onGetAnswers(answerIds) {
15439
- return answerIds.map(function (answerId) {
15440
- return answers.find(function (answer) {
15441
- return answer.id === answerId;
15442
- });
15443
- });
15444
- };
15445
- var onKeyPress = function onKeyPress(e) {
15446
- switch (e.key) {
15447
- case 'ArrowDown':
15448
- // select next answer, if any.
15449
- // if no next answer, select first answer
15450
- // const nextAnswer = onGetAnswers(currentQuestion.answerIds!).find(
15451
- // (answer) => answer?.id === currentAnswer!.id + 1
15452
- // );
15453
- var nextAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
15454
- return (answer == null ? void 0 : answer.id) === currentAnswer.id + 1;
15455
- });
15456
- var nextAnswerID = currentQuestion.answerIds[nextAnswerIndex];
15457
- var nextAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
15458
- return (answer == null ? void 0 : answer.id) === nextAnswerID;
15459
- });
15460
- setCurrentAnswer(nextAnswer || onGetFirstAnswer());
15461
- break;
15462
- case 'ArrowUp':
15463
- // select previous answer, if any.
15464
- // if no previous answer, select last answer
15465
- var previousAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
15466
- return (answer == null ? void 0 : answer.id) === currentAnswer.id - 1;
15467
- });
15468
- var previousAnswerID = currentQuestion.answerIds && currentQuestion.answerIds[previousAnswerIndex];
15469
- var previousAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
15470
- return (answer == null ? void 0 : answer.id) === previousAnswerID;
15471
- });
15472
- if (previousAnswer) {
15473
- setCurrentAnswer(previousAnswer);
15474
- } else {
15475
- setCurrentAnswer(onGetAnswers(currentQuestion.answerIds).pop());
15476
- }
15477
- break;
15478
- case 'Enter':
15479
- setCanShowAnswers(false);
15480
- if (!(currentAnswer != null && currentAnswer.nextQuestionId)) {
15481
- onClose();
15482
- return;
15483
- } else {
15484
- setCurrentQuestion(questions.find(function (question) {
15485
- return question.id === currentAnswer.nextQuestionId;
15486
- }));
15487
- }
15488
- break;
15489
- }
15490
- };
15491
- useEventListener('keydown', onKeyPress);
15492
- var onAnswerClick = function onAnswerClick(answer) {
15493
- setCanShowAnswers(false);
15494
- if (answer.nextQuestionId) {
15495
- // if there is a next question, go to it
15496
- setCurrentQuestion(questions.find(function (question) {
15497
- return question.id === answer.nextQuestionId;
15498
- }));
15499
- } else {
15500
- // else, finish dialog!
15501
- onClose();
15502
- }
15503
- };
15504
- var onRenderCurrentAnswers = function onRenderCurrentAnswers() {
15505
- var answerIds = currentQuestion.answerIds;
15506
- if (!answerIds) {
15507
- return null;
15508
- }
15509
- var answers = onGetAnswers(answerIds);
15510
- if (!answers) {
15511
- return null;
15672
+ var MarketplaceRows = function MarketplaceRows(_ref) {
15673
+ var atlasJSON = _ref.atlasJSON,
15674
+ atlasIMG = _ref.atlasIMG,
15675
+ item = _ref.item,
15676
+ itemPrice = _ref.itemPrice,
15677
+ equipmentSet = _ref.equipmentSet,
15678
+ scale = _ref.scale,
15679
+ onHandleClick = _ref.onHandleClick;
15680
+ return React.createElement(MarketPlaceWrapper, null, React.createElement(ItemIconContainer, null, React.createElement(SpriteContainer, null, React.createElement(ItemInfoWrapper, {
15681
+ item: item,
15682
+ atlasIMG: atlasIMG,
15683
+ atlasJSON: atlasJSON,
15684
+ equipmentSet: equipmentSet,
15685
+ scale: scale
15686
+ }, React.createElement(SpriteFromAtlas, {
15687
+ atlasIMG: atlasIMG,
15688
+ atlasJSON: atlasJSON,
15689
+ spriteKey: getItemTextureKeyPath({
15690
+ key: item.key,
15691
+ stackQty: item.stackQty || 1,
15692
+ texturePath: item.texturePath,
15693
+ isStackable: item.isStackable
15694
+ }, atlasJSON),
15695
+ imgScale: 2
15696
+ }))), React.createElement(PriceValue, null, React.createElement("p", null, React.createElement(Ellipsis, {
15697
+ maxLines: 1,
15698
+ maxWidth: "150px",
15699
+ fontSize: "10px"
15700
+ }, item.name)))), React.createElement(QuantityContainer, null, React.createElement(QuantityDisplay, null, React.createElement(TextOverlay$1, null, React.createElement(Item$1, null, React.createElement(Ellipsis, {
15701
+ maxLines: 1,
15702
+ maxWidth: "150px",
15703
+ fontSize: "10px"
15704
+ }, item.rarity))))), React.createElement(ItemIconContainer, null, React.createElement(SpriteContainer, null, React.createElement(SpriteFromAtlas, {
15705
+ atlasIMG: atlasIMG,
15706
+ atlasJSON: atlasJSON,
15707
+ spriteKey: 'others/gold-coin-qty-4.png',
15708
+ imgScale: 2
15709
+ })), React.createElement(PriceValue, null, React.createElement("p", null, React.createElement(Ellipsis, {
15710
+ maxLines: 1,
15711
+ maxWidth: "150px",
15712
+ fontSize: "10px"
15713
+ }, "$", itemPrice)))), React.createElement(ButtonContainer$1, null, React.createElement(Button, {
15714
+ buttonType: ButtonTypes.RPGUIButton,
15715
+ onClick: function onClick() {
15716
+ return onHandleClick(item.name);
15512
15717
  }
15513
- return answers.map(function (answer) {
15514
- var isSelected = (currentAnswer == null ? void 0 : currentAnswer.id) === (answer == null ? void 0 : answer.id);
15515
- var selectedColor = isSelected ? 'yellow' : 'white';
15516
- if (answer) {
15517
- return React.createElement(AnswerRow, {
15518
- key: "answer_" + answer.id
15519
- }, React.createElement(AnswerSelectedIcon, {
15520
- color: selectedColor
15521
- }, isSelected ? 'X' : null), React.createElement(Answer, {
15522
- key: answer.id,
15523
- onPointerDown: function onPointerDown() {
15524
- return onAnswerClick(answer);
15525
- },
15526
- color: selectedColor
15527
- }, answer.text));
15528
- }
15529
- return null;
15530
- });
15531
- };
15532
- return React.createElement(Container$h, null, React.createElement(QuestionContainer, null, React.createElement(DynamicText, {
15533
- text: currentQuestion.text,
15534
- onStart: function onStart() {
15535
- return setCanShowAnswers(false);
15718
+ }, "Buy")));
15719
+ };
15720
+ var MarketPlaceWrapper = /*#__PURE__*/styled.div.withConfig({
15721
+ displayName: "MarketplaceRows__MarketPlaceWrapper",
15722
+ componentId: "sc-wmpr1o-0"
15723
+ })(["margin:auto;display:grid;grid-template-columns:35% 20% 20% 25%;&:hover{background-color:", ";}padding:0.5rem;p{font-size:0.8rem;}"], uiColors.darkGray);
15724
+ var ItemIconContainer = /*#__PURE__*/styled.div.withConfig({
15725
+ displayName: "MarketplaceRows__ItemIconContainer",
15726
+ componentId: "sc-wmpr1o-1"
15727
+ })(["display:flex;justify-content:flex-start;align-items:center;"]);
15728
+ var SpriteContainer = /*#__PURE__*/styled.div.withConfig({
15729
+ displayName: "MarketplaceRows__SpriteContainer",
15730
+ componentId: "sc-wmpr1o-2"
15731
+ })(["position:relative;top:-0.5rem;left:0.5rem;"]);
15732
+ var Item$1 = /*#__PURE__*/styled.span.withConfig({
15733
+ displayName: "MarketplaceRows__Item",
15734
+ componentId: "sc-wmpr1o-3"
15735
+ })(["color:white;text-align:center;z-index:1;width:100%;"]);
15736
+ var TextOverlay$1 = /*#__PURE__*/styled.div.withConfig({
15737
+ displayName: "MarketplaceRows__TextOverlay",
15738
+ componentId: "sc-wmpr1o-4"
15739
+ })(["width:100%;position:relative;"]);
15740
+ var QuantityContainer = /*#__PURE__*/styled.div.withConfig({
15741
+ displayName: "MarketplaceRows__QuantityContainer",
15742
+ componentId: "sc-wmpr1o-5"
15743
+ })(["position:relative;display:flex;min-width:100px;justify-content:center;align-items:center;"]);
15744
+ var QuantityDisplay = /*#__PURE__*/styled.div.withConfig({
15745
+ displayName: "MarketplaceRows__QuantityDisplay",
15746
+ componentId: "sc-wmpr1o-6"
15747
+ })(["font-size:", ";"], uiFonts.size.small);
15748
+ var PriceValue = /*#__PURE__*/styled.div.withConfig({
15749
+ displayName: "MarketplaceRows__PriceValue",
15750
+ componentId: "sc-wmpr1o-7"
15751
+ })(["margin-left:40px;"]);
15752
+ var ButtonContainer$1 = /*#__PURE__*/styled.div.withConfig({
15753
+ displayName: "MarketplaceRows__ButtonContainer",
15754
+ componentId: "sc-wmpr1o-8"
15755
+ })(["margin:auto;"]);
15756
+
15757
+ var Marketplace = function Marketplace(_ref) {
15758
+ var items = _ref.items,
15759
+ atlasIMG = _ref.atlasIMG,
15760
+ atlasJSON = _ref.atlasJSON,
15761
+ onClose = _ref.onClose,
15762
+ optionsType = _ref.optionsType,
15763
+ optionsRarity = _ref.optionsRarity,
15764
+ optionsPrice = _ref.optionsPrice,
15765
+ onChangeType = _ref.onChangeType,
15766
+ onChangeRarity = _ref.onChangeRarity,
15767
+ onChangeOrder = _ref.onChangeOrder,
15768
+ onChangeNameInput = _ref.onChangeNameInput,
15769
+ scale = _ref.scale,
15770
+ equipmentSet = _ref.equipmentSet,
15771
+ onHandleClick = _ref.onHandleClick;
15772
+ return React.createElement(DraggableContainer, {
15773
+ type: RPGUIContainerTypes.Framed,
15774
+ onCloseButton: function onCloseButton() {
15775
+ if (onClose) onClose();
15536
15776
  },
15537
- onFinish: function onFinish() {
15538
- return setCanShowAnswers(true);
15539
- }
15540
- })), canShowAnswers && React.createElement(AnswersContainer, null, onRenderCurrentAnswers()));
15777
+ width: "800px",
15778
+ cancelDrag: "#MarketContainer",
15779
+ scale: scale
15780
+ }, React.createElement(React.Fragment, null, React.createElement(InputWrapper, null, React.createElement("p", null, " Search By Name"), React.createElement(Input, {
15781
+ onChange: onChangeNameInput,
15782
+ placeholder: 'Search...'
15783
+ })), React.createElement(WrapperContainer, null, React.createElement(StyledDropdown, {
15784
+ options: optionsType,
15785
+ onChange: onChangeType,
15786
+ width: '220px'
15787
+ }), React.createElement(StyledDropdown, {
15788
+ options: optionsRarity,
15789
+ onChange: onChangeRarity,
15790
+ width: '220px'
15791
+ }), React.createElement(StyledDropdown, {
15792
+ options: optionsPrice,
15793
+ onChange: onChangeOrder,
15794
+ width: '220px'
15795
+ })), React.createElement(ItemComponentScrollWrapper, {
15796
+ id: "MarketContainer"
15797
+ }, items == null ? void 0 : items.map(function (item, index) {
15798
+ return React.createElement(MarketplaceRows, {
15799
+ key: item.key + "_" + index,
15800
+ atlasIMG: atlasIMG,
15801
+ atlasJSON: atlasJSON,
15802
+ item: item,
15803
+ itemPrice: 10,
15804
+ equipmentSet: equipmentSet,
15805
+ onHandleClick: onHandleClick
15806
+ });
15807
+ }))));
15541
15808
  };
15542
- var Container$h = /*#__PURE__*/styled.div.withConfig({
15543
- displayName: "QuestionDialog__Container",
15544
- componentId: "sc-bxc5u0-0"
15545
- })(["display:flex;word-break:break-all;box-sizing:border-box;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;"]);
15546
- var QuestionContainer = /*#__PURE__*/styled.div.withConfig({
15547
- displayName: "QuestionDialog__QuestionContainer",
15548
- componentId: "sc-bxc5u0-1"
15549
- })(["flex:100%;width:100%;"]);
15550
- var AnswersContainer = /*#__PURE__*/styled.div.withConfig({
15551
- displayName: "QuestionDialog__AnswersContainer",
15552
- componentId: "sc-bxc5u0-2"
15553
- })(["flex:100%;"]);
15554
- var Answer = /*#__PURE__*/styled.p.withConfig({
15555
- displayName: "QuestionDialog__Answer",
15556
- componentId: "sc-bxc5u0-3"
15557
- })(["flex:auto;color:", " !important;font-size:0.65rem !important;background:inherit;border:none;"], function (props) {
15558
- return props.color;
15559
- });
15560
- var AnswerSelectedIcon = /*#__PURE__*/styled.span.withConfig({
15561
- displayName: "QuestionDialog__AnswerSelectedIcon",
15562
- componentId: "sc-bxc5u0-4"
15563
- })(["flex:5% 0 0;color:", " !important;"], function (props) {
15564
- return props.color;
15565
- });
15566
- var AnswerRow = /*#__PURE__*/styled.div.withConfig({
15567
- displayName: "QuestionDialog__AnswerRow",
15568
- componentId: "sc-bxc5u0-5"
15569
- })(["display:flex;flex-wrap:wrap;justify-content:center;align-items:center;margin-bottom:0.5rem;height:22px;p{line-height:unset;margin-top:0;margin-bottom:0rem;}"]);
15809
+ var InputWrapper = /*#__PURE__*/styled.div.withConfig({
15810
+ displayName: "Marketplace__InputWrapper",
15811
+ componentId: "sc-h904b1-0"
15812
+ })(["width:95%;display:flex;justify-content:flex-start;align-items:center;margin:auto;margin-bottom:10px;p{width:auto;margin-right:20px;}input{width:68%;height:10px;}"]);
15813
+ var WrapperContainer = /*#__PURE__*/styled.div.withConfig({
15814
+ displayName: "Marketplace__WrapperContainer",
15815
+ componentId: "sc-h904b1-1"
15816
+ })(["display:grid;grid-template-columns:30% 30% 30%;justify-content:space-between;width:90%;margin-left:10px;.rpgui-content .rpgui-dropdown-imp-header{padding:0px 10px 0 !important;}"]);
15817
+ var ItemComponentScrollWrapper = /*#__PURE__*/styled.div.withConfig({
15818
+ displayName: "Marketplace__ItemComponentScrollWrapper",
15819
+ componentId: "sc-h904b1-2"
15820
+ })(["overflow-y:scroll;height:390px;width:100%;margin-top:1rem;"]);
15821
+ var StyledDropdown = /*#__PURE__*/styled(Dropdown).withConfig({
15822
+ displayName: "Marketplace__StyledDropdown",
15823
+ componentId: "sc-h904b1-3"
15824
+ })(["margin:3px !important;width:170px !important;"]);
15570
15825
 
15571
15826
  var ProgressBar = function ProgressBar(_ref) {
15572
15827
  var max = _ref.max,
@@ -15585,7 +15840,7 @@ var ProgressBar = function ProgressBar(_ref) {
15585
15840
  }
15586
15841
  return value * 100 / max;
15587
15842
  };
15588
- return React.createElement(Container$i, {
15843
+ return React.createElement(Container$k, {
15589
15844
  className: "rpgui-progress",
15590
15845
  "data-value": calculatePercentageValue(max, value) / 100,
15591
15846
  "data-rpguitype": "progress",
@@ -15614,7 +15869,7 @@ var TextOverlay$2 = /*#__PURE__*/styled.div.withConfig({
15614
15869
  displayName: "ProgressBar__TextOverlay",
15615
15870
  componentId: "sc-qa6fzh-1"
15616
15871
  })(["width:100%;position:relative;"]);
15617
- var Container$i = /*#__PURE__*/styled.div.withConfig({
15872
+ var Container$k = /*#__PURE__*/styled.div.withConfig({
15618
15873
  displayName: "ProgressBar__Container",
15619
15874
  componentId: "sc-qa6fzh-2"
15620
15875
  })(["display:flex;flex-direction:column;min-width:", "px;width:", "%;justify-content:start;align-items:flex-start;", ""], function (props) {
@@ -15625,7 +15880,7 @@ var Container$i = /*#__PURE__*/styled.div.withConfig({
15625
15880
  return props.style;
15626
15881
  });
15627
15882
 
15628
- var img$7 = 'data:image/png;base64,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';
15883
+ var img$8 = 'data:image/png;base64,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';
15629
15884
 
15630
15885
  var QuestInfo = function QuestInfo(_ref) {
15631
15886
  var quests = _ref.quests,
@@ -15669,7 +15924,7 @@ var QuestInfo = function QuestInfo(_ref) {
15669
15924
  }), React.createElement(QuestContainer, null, React.createElement(TitleContainer$1, {
15670
15925
  className: "drag-handler"
15671
15926
  }, React.createElement(Title$4, null, React.createElement(Thumbnail, {
15672
- src: quests[currentIndex].thumbnail || img$7
15927
+ src: quests[currentIndex].thumbnail || img$8
15673
15928
  }), quests[currentIndex].title), React.createElement(QuestSplitDiv, null, React.createElement("hr", {
15674
15929
  className: "golden"
15675
15930
  }))), React.createElement(Content, null, React.createElement("p", null, quests[currentIndex].description)), React.createElement(QuestColumn, {
@@ -15688,7 +15943,7 @@ var QuestInfo = function QuestInfo(_ref) {
15688
15943
  })))) : React.createElement(QuestsContainer, null, React.createElement(QuestContainer, null, React.createElement(TitleContainer$1, {
15689
15944
  className: "drag-handler"
15690
15945
  }, React.createElement(Title$4, null, React.createElement(Thumbnail, {
15691
- src: quests[0].thumbnail || img$7
15946
+ src: quests[0].thumbnail || img$8
15692
15947
  }), quests[0].title), React.createElement(QuestSplitDiv, null, React.createElement("hr", {
15693
15948
  className: "golden"
15694
15949
  }))), React.createElement(Content, null, React.createElement("p", null, quests[0].description)), React.createElement(QuestColumn, {
@@ -15841,15 +16096,19 @@ var Shortcuts = function Shortcuts(_ref) {
15841
16096
  isBlockedCastingByKeyboard = _ref$isBlockedCasting === void 0 ? false : _ref$isBlockedCasting,
15842
16097
  atlasJSON = _ref.atlasJSON,
15843
16098
  atlasIMG = _ref.atlasIMG,
15844
- inventory = _ref.inventory;
16099
+ inventory = _ref.inventory,
16100
+ spellCooldowns = _ref.spellCooldowns;
15845
16101
  var shortcutsRefs = useRef([]);
16102
+ var _useShortcutCooldown = useShortcutCooldown(onShortcutCast),
16103
+ handleShortcutCast = _useShortcutCooldown.handleShortcutCast,
16104
+ shortcutCooldown = _useShortcutCooldown.shortcutCooldown;
15846
16105
  useEffect(function () {
15847
16106
  var handleKeyDown = function handleKeyDown(e) {
15848
16107
  if (isBlockedCastingByKeyboard) return;
15849
16108
  var shortcutIndex = Number(e.key) - 1;
15850
16109
  if (shortcutIndex >= 0 && shortcutIndex <= 5) {
15851
16110
  var _shortcutsRefs$curren;
15852
- onShortcutCast(shortcutIndex);
16111
+ handleShortcutCast(shortcutIndex);
15853
16112
  (_shortcutsRefs$curren = shortcutsRefs.current[shortcutIndex]) == null ? void 0 : _shortcutsRefs$curren.classList.add('active');
15854
16113
  setTimeout(function () {
15855
16114
  var _shortcutsRefs$curren2;
@@ -15861,11 +16120,15 @@ var Shortcuts = function Shortcuts(_ref) {
15861
16120
  return function () {
15862
16121
  window.removeEventListener('keydown', handleKeyDown);
15863
16122
  };
15864
- }, [shortcuts, isBlockedCastingByKeyboard]);
16123
+ }, [shortcuts, isBlockedCastingByKeyboard, shortcutCooldown]);
15865
16124
  return React.createElement(List$1, null, Array.from({
15866
16125
  length: 6
15867
16126
  }).map(function (_, i) {
15868
- var _shortcuts$i, _shortcuts$i3, _payload$manaCost;
16127
+ var _shortcuts$i, _shortcuts$i3, _spellCooldowns$paylo, _payload$manaCost;
16128
+ var buildClassName = function buildClassName(classBase, isOnCooldown) {
16129
+ return classBase + " " + (isOnCooldown ? 'onCooldown' : '');
16130
+ };
16131
+ var isOnShortcutCooldown = shortcutCooldown > 0;
15869
16132
  if (((_shortcuts$i = shortcuts[i]) == null ? void 0 : _shortcuts$i.type) === ShortcutType.Item) {
15870
16133
  var _shortcuts$i2;
15871
16134
  var _payload = (_shortcuts$i2 = shortcuts[i]) == null ? void 0 : _shortcuts$i2.payload;
@@ -15882,12 +16145,14 @@ var Shortcuts = function Shortcuts(_ref) {
15882
16145
  var totalQty = _payload && inventory ? countItemFromInventory(_payload.key, inventory) : 0;
15883
16146
  return React.createElement(StyledShortcut$1, {
15884
16147
  key: i,
15885
- onPointerDown: onShortcutCast.bind(null, i),
16148
+ onPointerDown: handleShortcutCast.bind(null, i),
15886
16149
  disabled: false,
15887
16150
  ref: function ref(el) {
15888
16151
  if (el) shortcutsRefs.current[i] = el;
15889
16152
  }
15890
- }, _payload && React.createElement(SpriteFromAtlas, {
16153
+ }, isOnShortcutCooldown && React.createElement("span", {
16154
+ className: "cooldown"
16155
+ }, shortcutCooldown.toFixed(1)), _payload && React.createElement(SpriteFromAtlas, {
15891
16156
  atlasIMG: atlasIMG,
15892
16157
  atlasJSON: atlasJSON,
15893
16158
  spriteKey: getItemTextureKeyPath({
@@ -15899,27 +16164,32 @@ var Shortcuts = function Shortcuts(_ref) {
15899
16164
  width: 32,
15900
16165
  height: 32
15901
16166
  }), React.createElement("span", {
15902
- className: "qty"
16167
+ className: buildClassName('qty', isOnShortcutCooldown)
15903
16168
  }, totalQty), React.createElement("span", {
15904
- className: "keyboard"
16169
+ className: buildClassName('keyboard', isOnShortcutCooldown)
15905
16170
  }, i + 1));
15906
16171
  }
15907
16172
  var payload = (_shortcuts$i3 = shortcuts[i]) == null ? void 0 : _shortcuts$i3.payload;
16173
+ var spellCooldown = !payload ? 0 : (_spellCooldowns$paylo = spellCooldowns == null ? void 0 : spellCooldowns[payload.magicWords.replaceAll(' ', '_')]) != null ? _spellCooldowns$paylo : shortcutCooldown;
16174
+ var cooldown = spellCooldown > shortcutCooldown ? spellCooldown : shortcutCooldown;
16175
+ var isOnCooldown = cooldown > 0 && !!payload;
15908
16176
  return React.createElement(StyledShortcut$1, {
15909
16177
  key: i,
15910
- onPointerDown: onShortcutCast.bind(null, i),
16178
+ onPointerDown: handleShortcutCast.bind(null, i),
15911
16179
  disabled: mana < ((_payload$manaCost = payload == null ? void 0 : payload.manaCost) != null ? _payload$manaCost : 0),
15912
16180
  ref: function ref(el) {
15913
16181
  if (el) shortcutsRefs.current[i] = el;
15914
16182
  }
15915
- }, React.createElement("span", {
15916
- className: "mana"
16183
+ }, isOnCooldown && React.createElement("span", {
16184
+ className: "cooldown"
16185
+ }, cooldown.toFixed(cooldown < 10 ? 1 : 0)), React.createElement("span", {
16186
+ className: buildClassName('mana', isOnCooldown)
15917
16187
  }, payload && payload.manaCost), React.createElement("span", {
15918
16188
  className: "magicWords"
15919
16189
  }, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
15920
16190
  return word[0];
15921
16191
  })), React.createElement("span", {
15922
- className: "keyboard"
16192
+ className: buildClassName('keyboard', isOnCooldown)
15923
16193
  }, i + 1));
15924
16194
  }));
15925
16195
  };
@@ -15938,7 +16208,7 @@ var SimpleProgressBar = function SimpleProgressBar(_ref) {
15938
16208
  bgColor = _ref$bgColor === void 0 ? 'red' : _ref$bgColor,
15939
16209
  _ref$margin = _ref.margin,
15940
16210
  margin = _ref$margin === void 0 ? 20 : _ref$margin;
15941
- return React.createElement(Container$j, {
16211
+ return React.createElement(Container$l, {
15942
16212
  className: "simple-progress-bar"
15943
16213
  }, React.createElement(ProgressBarContainer, {
15944
16214
  margin: margin
@@ -15947,7 +16217,7 @@ var SimpleProgressBar = function SimpleProgressBar(_ref) {
15947
16217
  bgColor: bgColor
15948
16218
  }))));
15949
16219
  };
15950
- var Container$j = /*#__PURE__*/styled.div.withConfig({
16220
+ var Container$l = /*#__PURE__*/styled.div.withConfig({
15951
16221
  displayName: "SimpleProgressBar__Container",
15952
16222
  componentId: "sc-mbeil3-0"
15953
16223
  })(["display:flex;justify-content:center;align-items:center;width:100%;"]);
@@ -16126,72 +16396,283 @@ var SkillsContainer = function SkillsContainer(_ref) {
16126
16396
  title: "Skills",
16127
16397
  cancelDrag: "#skillsDiv",
16128
16398
  scale: scale
16129
- }, onCloseButton && React.createElement(CloseButton$3, {
16130
- onPointerDown: onCloseButton
16131
- }, "X"), React.createElement(SkillsContainerDiv, {
16132
- id: "skillsDiv"
16133
- }, React.createElement(SkillSplitDiv, null, React.createElement("p", null, "General"), React.createElement("hr", {
16134
- className: "golden"
16135
- }), React.createElement(SkillProgressBar, {
16136
- skillName: 'Level',
16137
- bgColor: uiColors.navyBlue,
16138
- level: Math.round(skill.level) || 0,
16139
- skillPoints: Math.round(skill.experience) || 0,
16140
- skillPointsToNextLevel: Math.round(skill.xpToNextLevel) || 0,
16141
- texturePath: 'swords/broad-sword.png',
16142
- atlasIMG: atlasIMG,
16143
- atlasJSON: atlasJSON
16144
- }), React.createElement("p", null, "Combat Skills"), React.createElement("hr", {
16145
- className: "golden"
16146
- })), onRenderSkillCategory('combat'), React.createElement(SkillSplitDiv, null, React.createElement("p", null, "Crafting Skills"), React.createElement("hr", {
16147
- className: "golden"
16148
- })), onRenderSkillCategory('crafting'), React.createElement(SkillSplitDiv, null, React.createElement("p", null, "Basic Attributes"), React.createElement("hr", {
16149
- className: "golden"
16150
- })), onRenderSkillCategory('attributes')));
16399
+ }, onCloseButton && React.createElement(CloseButton$3, {
16400
+ onPointerDown: onCloseButton
16401
+ }, "X"), React.createElement(SkillsContainerDiv, {
16402
+ id: "skillsDiv"
16403
+ }, React.createElement(SkillSplitDiv, null, React.createElement("p", null, "General"), React.createElement("hr", {
16404
+ className: "golden"
16405
+ }), React.createElement(SkillProgressBar, {
16406
+ skillName: 'Level',
16407
+ bgColor: uiColors.navyBlue,
16408
+ level: Math.round(skill.level) || 0,
16409
+ skillPoints: Math.round(skill.experience) || 0,
16410
+ skillPointsToNextLevel: Math.round(skill.xpToNextLevel) || 0,
16411
+ texturePath: 'swords/broad-sword.png',
16412
+ atlasIMG: atlasIMG,
16413
+ atlasJSON: atlasJSON
16414
+ }), React.createElement("p", null, "Combat Skills"), React.createElement("hr", {
16415
+ className: "golden"
16416
+ })), onRenderSkillCategory('combat'), React.createElement(SkillSplitDiv, null, React.createElement("p", null, "Crafting Skills"), React.createElement("hr", {
16417
+ className: "golden"
16418
+ })), onRenderSkillCategory('crafting'), React.createElement(SkillSplitDiv, null, React.createElement("p", null, "Basic Attributes"), React.createElement("hr", {
16419
+ className: "golden"
16420
+ })), onRenderSkillCategory('attributes')));
16421
+ };
16422
+ var SkillsDraggableContainer = /*#__PURE__*/styled(DraggableContainer).withConfig({
16423
+ displayName: "SkillsContainer__SkillsDraggableContainer",
16424
+ componentId: "sc-1g0c67q-0"
16425
+ })(["border:1px solid black;width:400px;height:90%;.DraggableContainer__TitleContainer-sc-184mpyl-2{width:auto;height:auto;}"]);
16426
+ var SkillsContainerDiv = /*#__PURE__*/styled.div.withConfig({
16427
+ displayName: "SkillsContainer__SkillsContainerDiv",
16428
+ componentId: "sc-1g0c67q-1"
16429
+ })(["width:100%;-webkit-overflow-y:scroll;overflow-y:scroll;height:90%;padding-right:10px;"]);
16430
+ var SkillSplitDiv = /*#__PURE__*/styled.div.withConfig({
16431
+ displayName: "SkillsContainer__SkillSplitDiv",
16432
+ componentId: "sc-1g0c67q-2"
16433
+ })(["width:100%;font-size:11px;hr{margin:0;margin-bottom:1rem;padding:0px;}p{margin-bottom:0px;}"]);
16434
+ var CloseButton$3 = /*#__PURE__*/styled.div.withConfig({
16435
+ displayName: "SkillsContainer__CloseButton",
16436
+ componentId: "sc-1g0c67q-3"
16437
+ })(["position:absolute;top:2px;right:2px;color:white;z-index:22;font-size:1.1rem;"]);
16438
+
16439
+ var formatSpellCastingType = function formatSpellCastingType(castingType) {
16440
+ var formattedCastingType = castingType.split("-").map(function (word) {
16441
+ return word.charAt(0).toUpperCase() + word.slice(1);
16442
+ }).join(" ");
16443
+ return formattedCastingType;
16444
+ };
16445
+
16446
+ var SpellInfo = function SpellInfo(_ref) {
16447
+ var spell = _ref.spell;
16448
+ var magicWords = spell.magicWords,
16449
+ name = spell.name,
16450
+ manaCost = spell.manaCost,
16451
+ requiredItem = spell.requiredItem,
16452
+ description = spell.description,
16453
+ castingType = spell.castingType,
16454
+ cooldown = spell.cooldown,
16455
+ maxDistanceGrid = spell.maxDistanceGrid;
16456
+ return React.createElement(Container$m, null, React.createElement(Header$1, null, React.createElement("div", null, React.createElement(Title$6, null, name), React.createElement(Type$1, null, magicWords))), React.createElement(Statistic$1, null, React.createElement("div", {
16457
+ className: "label"
16458
+ }, "Casting Type:"), React.createElement("div", {
16459
+ className: "value"
16460
+ }, formatSpellCastingType(castingType))), React.createElement(Statistic$1, null, React.createElement("div", {
16461
+ className: "label"
16462
+ }, "Magic words:"), React.createElement("div", {
16463
+ className: "value"
16464
+ }, magicWords)), React.createElement(Statistic$1, null, React.createElement("div", {
16465
+ className: "label"
16466
+ }, "Mana cost:"), React.createElement("div", {
16467
+ className: "value"
16468
+ }, manaCost)), React.createElement(Statistic$1, null, React.createElement("div", {
16469
+ className: "label"
16470
+ }, "Cooldown:"), React.createElement("div", {
16471
+ className: "value"
16472
+ }, cooldown)), React.createElement(Statistic$1, null, React.createElement("div", {
16473
+ className: "label"
16474
+ }, "Max Distance Grid:"), React.createElement("div", {
16475
+ className: "value"
16476
+ }, maxDistanceGrid)), React.createElement(Statistic$1, null, requiredItem && React.createElement(React.Fragment, null, React.createElement("div", {
16477
+ className: "label"
16478
+ }, "Required Item:"), React.createElement("div", {
16479
+ className: "value"
16480
+ }, requiredItem))), React.createElement(Description$1, null, description));
16481
+ };
16482
+ var Container$m = /*#__PURE__*/styled.div.withConfig({
16483
+ displayName: "SpellInfo__Container",
16484
+ componentId: "sc-4hbw3q-0"
16485
+ })(["color:white;background-color:#222;border-radius:5px;padding:0.5rem;font-size:", ";border:3px solid ", ";height:max-content;width:30rem;@media (max-width:580px){width:80vw;}"], uiFonts.size.small, uiColors.lightGray);
16486
+ var Title$6 = /*#__PURE__*/styled.div.withConfig({
16487
+ displayName: "SpellInfo__Title",
16488
+ componentId: "sc-4hbw3q-1"
16489
+ })(["font-size:", ";font-weight:bold;margin-bottom:0.5rem;display:flex;align-items:center;margin:0;"], uiFonts.size.medium);
16490
+ var Type$1 = /*#__PURE__*/styled.div.withConfig({
16491
+ displayName: "SpellInfo__Type",
16492
+ componentId: "sc-4hbw3q-2"
16493
+ })(["font-size:", ";margin-top:0.2rem;color:", ";"], uiFonts.size.small, uiColors.lightGray);
16494
+ var Description$1 = /*#__PURE__*/styled.div.withConfig({
16495
+ displayName: "SpellInfo__Description",
16496
+ componentId: "sc-4hbw3q-3"
16497
+ })(["margin-top:1.5rem;font-size:", ";color:", ";font-style:italic;"], uiFonts.size.small, uiColors.lightGray);
16498
+ var Header$1 = /*#__PURE__*/styled.div.withConfig({
16499
+ displayName: "SpellInfo__Header",
16500
+ componentId: "sc-4hbw3q-4"
16501
+ })(["display:flex;align-items:center;justify-content:space-between;margin-bottom:0.5rem;"]);
16502
+ var Statistic$1 = /*#__PURE__*/styled.div.withConfig({
16503
+ displayName: "SpellInfo__Statistic",
16504
+ componentId: "sc-4hbw3q-5"
16505
+ })(["margin-bottom:0.4rem;width:max-content;.label{display:inline-block;margin-right:0.5rem;color:inherit;}.value{display:inline-block;color:inherit;}&.better,.better{color:", ";}&.worse,.worse{color:", ";}"], uiColors.lightGreen, uiColors.cardinal);
16506
+
16507
+ var SpellInfoDisplay = function SpellInfoDisplay(_ref) {
16508
+ var spell = _ref.spell,
16509
+ isMobile = _ref.isMobile;
16510
+ return React.createElement(Flex$1, {
16511
+ "$isMobile": isMobile
16512
+ }, React.createElement(SpellInfo, {
16513
+ spell: spell
16514
+ }));
16515
+ };
16516
+ var Flex$1 = /*#__PURE__*/styled.div.withConfig({
16517
+ displayName: "SpellInfoDisplay__Flex",
16518
+ componentId: "sc-1htnsmm-0"
16519
+ })(["display:flex;gap:0.5rem;flex-direction:", ";@media (max-width:580px){flex-direction:column-reverse;align-items:center;}"], function (_ref2) {
16520
+ var $isMobile = _ref2.$isMobile;
16521
+ return $isMobile ? 'row-reverse' : 'row';
16522
+ });
16523
+
16524
+ var MobileSpellTooltip = function MobileSpellTooltip(_ref) {
16525
+ var spell = _ref.spell,
16526
+ closeTooltip = _ref.closeTooltip,
16527
+ _ref$scale = _ref.scale,
16528
+ scale = _ref$scale === void 0 ? 1 : _ref$scale,
16529
+ options = _ref.options,
16530
+ onSelected = _ref.onSelected;
16531
+ var ref = useRef(null);
16532
+ var handleFadeOut = function handleFadeOut() {
16533
+ var _ref$current;
16534
+ (_ref$current = ref.current) == null ? void 0 : _ref$current.classList.add('fadeOut');
16535
+ };
16536
+ return React.createElement(ModalPortal, null, React.createElement(Container$n, {
16537
+ ref: ref,
16538
+ onTouchEnd: function onTouchEnd() {
16539
+ handleFadeOut();
16540
+ setTimeout(function () {
16541
+ closeTooltip();
16542
+ }, 100);
16543
+ },
16544
+ scale: scale
16545
+ }, React.createElement(SpellInfoDisplay, {
16546
+ spell: spell,
16547
+ isMobile: true
16548
+ }), React.createElement(OptionsContainer$1, null, options == null ? void 0 : options.map(function (option) {
16549
+ return React.createElement(Option$1, {
16550
+ key: option.id,
16551
+ onTouchEnd: function onTouchEnd() {
16552
+ handleFadeOut();
16553
+ setTimeout(function () {
16554
+ onSelected == null ? void 0 : onSelected(option.id);
16555
+ closeTooltip();
16556
+ }, 100);
16557
+ }
16558
+ }, option.text);
16559
+ }))));
16560
+ };
16561
+ var Container$n = /*#__PURE__*/styled.div.withConfig({
16562
+ displayName: "MobileSpellTooltip__Container",
16563
+ componentId: "sc-6p7uvr-0"
16564
+ })(["position:absolute;z-index:100;left:0;top:0;width:100vw;height:100vh;background-color:rgba(0 0 0 / 0.5);display:flex;justify-content:center;align-items:center;gap:0.5rem;transition:opacity 0.08s;animation:fadeIn 0.1s forwards;@keyframes fadeIn{0%{opacity:0;}100%{opacity:0.92;}}@keyframes fadeOut{0%{opacity:0.92;}100%{opacity:0;}}&.fadeOut{animation:fadeOut 0.1s forwards;}@media (max-width:580px){flex-direction:column;}"]);
16565
+ var OptionsContainer$1 = /*#__PURE__*/styled.div.withConfig({
16566
+ displayName: "MobileSpellTooltip__OptionsContainer",
16567
+ componentId: "sc-6p7uvr-1"
16568
+ })(["display:flex;flex-direction:column;gap:0.5rem;flex-wrap:wrap;@media (max-width:580px){flex-direction:row;justify-content:center;}"]);
16569
+ var Option$1 = /*#__PURE__*/styled.button.withConfig({
16570
+ displayName: "MobileSpellTooltip__Option",
16571
+ componentId: "sc-6p7uvr-2"
16572
+ })(["padding:1rem;background-color:#333;color:white;border:none;border-radius:3px;width:8rem;transition:background-color 0.1s;&:hover{background-color:#555;}@media (max-width:580px){padding:1rem 0.5rem;}"]);
16573
+
16574
+ var offset$1 = 20;
16575
+ var MagicTooltip = function MagicTooltip(_ref) {
16576
+ var spell = _ref.spell;
16577
+ var ref = useRef(null);
16578
+ useEffect(function () {
16579
+ var current = ref.current;
16580
+ if (current) {
16581
+ var handleMouseMove = function handleMouseMove(event) {
16582
+ var clientX = event.clientX,
16583
+ clientY = event.clientY;
16584
+ // Adjust the position of the tooltip based on the mouse position
16585
+ var rect = current.getBoundingClientRect();
16586
+ var tooltipWidth = rect.width;
16587
+ var tooltipHeight = rect.height;
16588
+ var isOffScreenRight = clientX + tooltipWidth + offset$1 > window.innerWidth;
16589
+ var isOffScreenBottom = clientY + tooltipHeight + offset$1 > window.innerHeight;
16590
+ var x = isOffScreenRight ? clientX - tooltipWidth - offset$1 : clientX + offset$1;
16591
+ var y = isOffScreenBottom ? clientY - tooltipHeight - offset$1 : clientY + offset$1;
16592
+ current.style.transform = "translate(" + x + "px, " + y + "px)";
16593
+ current.style.opacity = '1';
16594
+ };
16595
+ window.addEventListener('mousemove', handleMouseMove);
16596
+ return function () {
16597
+ window.removeEventListener('mousemove', handleMouseMove);
16598
+ };
16599
+ }
16600
+ return;
16601
+ }, []);
16602
+ return React.createElement(ModalPortal, null, React.createElement(Container$o, {
16603
+ ref: ref
16604
+ }, React.createElement(SpellInfoDisplay, {
16605
+ spell: spell
16606
+ })));
16607
+ };
16608
+ var Container$o = /*#__PURE__*/styled.div.withConfig({
16609
+ displayName: "SpellTooltip__Container",
16610
+ componentId: "sc-1go0gwg-0"
16611
+ })(["position:absolute;z-index:100;pointer-events:none;left:0;top:0;opacity:0;transition:opacity 0.08s;"]);
16612
+
16613
+ var SpellInfoWrapper = function SpellInfoWrapper(_ref) {
16614
+ var children = _ref.children,
16615
+ spell = _ref.spell,
16616
+ scale = _ref.scale;
16617
+ var _useState = useState(false),
16618
+ isTooltipVisible = _useState[0],
16619
+ setIsTooltipVisible = _useState[1];
16620
+ var _useState2 = useState(false),
16621
+ isTooltipMobileVisible = _useState2[0],
16622
+ setIsTooltipMobileVisible = _useState2[1];
16623
+ return React.createElement("div", {
16624
+ onMouseEnter: function onMouseEnter() {
16625
+ if (!isTooltipMobileVisible) setIsTooltipVisible(true);
16626
+ },
16627
+ onMouseLeave: setIsTooltipVisible.bind(null, false),
16628
+ onTouchEnd: function onTouchEnd() {
16629
+ setIsTooltipMobileVisible(true);
16630
+ setIsTooltipVisible(false);
16631
+ }
16632
+ }, children, isTooltipVisible && !isTooltipMobileVisible && React.createElement(MagicTooltip, {
16633
+ spell: spell
16634
+ }), isTooltipMobileVisible && React.createElement(MobileSpellTooltip, {
16635
+ closeTooltip: function closeTooltip() {
16636
+ setIsTooltipMobileVisible(false);
16637
+ console.log('close');
16638
+ },
16639
+ spell: spell,
16640
+ scale: scale
16641
+ }));
16151
16642
  };
16152
- var SkillsDraggableContainer = /*#__PURE__*/styled(DraggableContainer).withConfig({
16153
- displayName: "SkillsContainer__SkillsDraggableContainer",
16154
- componentId: "sc-1g0c67q-0"
16155
- })(["border:1px solid black;width:400px;height:90%;.DraggableContainer__TitleContainer-sc-184mpyl-2{width:auto;height:auto;}"]);
16156
- var SkillsContainerDiv = /*#__PURE__*/styled.div.withConfig({
16157
- displayName: "SkillsContainer__SkillsContainerDiv",
16158
- componentId: "sc-1g0c67q-1"
16159
- })(["width:100%;-webkit-overflow-y:scroll;overflow-y:scroll;height:90%;padding-right:10px;"]);
16160
- var SkillSplitDiv = /*#__PURE__*/styled.div.withConfig({
16161
- displayName: "SkillsContainer__SkillSplitDiv",
16162
- componentId: "sc-1g0c67q-2"
16163
- })(["width:100%;font-size:11px;hr{margin:0;margin-bottom:1rem;padding:0px;}p{margin-bottom:0px;}"]);
16164
- var CloseButton$3 = /*#__PURE__*/styled.div.withConfig({
16165
- displayName: "SkillsContainer__CloseButton",
16166
- componentId: "sc-1g0c67q-3"
16167
- })(["position:absolute;top:2px;right:2px;color:white;z-index:22;font-size:1.1rem;"]);
16168
16643
 
16169
16644
  var Spell = function Spell(_ref) {
16170
16645
  var spellKey = _ref.spellKey,
16171
- name = _ref.name,
16172
- description = _ref.description,
16173
- magicWords = _ref.magicWords,
16174
- manaCost = _ref.manaCost,
16175
16646
  charMana = _ref.charMana,
16176
16647
  charMagicLevel = _ref.charMagicLevel,
16177
16648
  onPointerUp = _ref.onPointerUp,
16178
16649
  isSettingShortcut = _ref.isSettingShortcut,
16179
- minMagicLevelRequired = _ref.minMagicLevelRequired;
16650
+ spell = _ref.spell,
16651
+ activeCooldown = _ref.activeCooldown;
16652
+ var manaCost = spell.manaCost,
16653
+ minMagicLevelRequired = spell.minMagicLevelRequired,
16654
+ magicWords = spell.magicWords,
16655
+ name = spell.name,
16656
+ description = spell.description;
16180
16657
  var disabled = isSettingShortcut ? charMagicLevel < minMagicLevelRequired : manaCost > charMana || charMagicLevel < minMagicLevelRequired;
16181
- return React.createElement(Container$k, {
16182
- disabled: disabled,
16658
+ return React.createElement(SpellInfoWrapper, {
16659
+ spell: spell
16660
+ }, React.createElement(Container$p, {
16661
+ disabled: disabled || (activeCooldown != null ? activeCooldown : 0) > 0,
16183
16662
  onPointerUp: onPointerUp == null ? void 0 : onPointerUp.bind(null, spellKey),
16184
16663
  isSettingShortcut: isSettingShortcut && !disabled,
16185
16664
  className: "spell"
16186
- }, disabled && React.createElement(Overlay, null, charMagicLevel < minMagicLevelRequired ? 'Low magic level' : manaCost > charMana && 'No mana'), React.createElement(SpellImage, null, magicWords.split(' ').map(function (word) {
16665
+ }, disabled && React.createElement(Overlay, null, charMagicLevel < minMagicLevelRequired ? 'Low magic level' : manaCost > charMana && 'No mana'), React.createElement(SpellImage, null, activeCooldown && activeCooldown > 0 ? React.createElement("span", {
16666
+ className: "cooldown"
16667
+ }, activeCooldown.toFixed(activeCooldown > 10 ? 0 : 1)) : null, magicWords.split(' ').map(function (word) {
16187
16668
  return word[0];
16188
- })), React.createElement(Info, null, React.createElement(Title$6, null, React.createElement("span", null, name), React.createElement("span", {
16669
+ })), React.createElement(Info, null, React.createElement(Title$7, null, React.createElement("span", null, name), React.createElement("span", {
16189
16670
  className: "spell"
16190
- }, "(", magicWords, ")")), React.createElement(Description$1, null, description)), React.createElement(Divider, null), React.createElement(Cost, null, React.createElement("span", null, "Mana cost:"), React.createElement("span", {
16671
+ }, "(", magicWords, ")")), React.createElement(Description$2, null, description)), React.createElement(Divider, null), React.createElement(Cost, null, React.createElement("span", null, "Mana cost:"), React.createElement("span", {
16191
16672
  className: "mana"
16192
- }, manaCost)));
16673
+ }, manaCost))));
16193
16674
  };
16194
- var Container$k = /*#__PURE__*/styled.button.withConfig({
16675
+ var Container$p = /*#__PURE__*/styled.button.withConfig({
16195
16676
  displayName: "Spell__Container",
16196
16677
  componentId: "sc-j96fa2-0"
16197
16678
  })(["display:block;background:none;border:2px solid transparent;border-radius:1rem;width:100%;display:flex;height:5rem;gap:1rem;align-items:center;padding:0 1rem;text-align:left;position:relative;animation:", ";@keyframes border-color-change{0%{border-color:", ";}50%{border-color:transparent;}100%{border-color:", ";}}&:hover,&:focus{background-color:", ";}&:active{background:none;}"], function (_ref2) {
@@ -16201,16 +16682,16 @@ var Container$k = /*#__PURE__*/styled.button.withConfig({
16201
16682
  var SpellImage = /*#__PURE__*/styled.div.withConfig({
16202
16683
  displayName: "Spell__SpellImage",
16203
16684
  componentId: "sc-j96fa2-1"
16204
- })(["width:4rem;height:4rem;font-size:", ";font-weight:bold;background-color:", ";color:", ";display:flex;justify-content:center;align-items:center;text-transform:uppercase;"], uiFonts.size.xLarge, uiColors.darkGray, uiColors.lightGray);
16685
+ })(["width:4rem;height:4rem;font-size:", ";font-weight:bold;background-color:", ";color:", ";display:flex;justify-content:center;align-items:center;text-transform:uppercase;position:relative;overflow:hidden;.cooldown{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0 0 0 / 20%);color:", ";font-weight:bold;display:flex;justify-content:center;align-items:center;}"], uiFonts.size.xLarge, uiColors.darkGray, uiColors.lightGray, uiColors.darkYellow);
16205
16686
  var Info = /*#__PURE__*/styled.span.withConfig({
16206
16687
  displayName: "Spell__Info",
16207
16688
  componentId: "sc-j96fa2-2"
16208
- })(["width:0;flex:1;"]);
16209
- var Title$6 = /*#__PURE__*/styled.p.withConfig({
16689
+ })(["width:0;flex:1;@media (orientation:portrait){display:none;}"]);
16690
+ var Title$7 = /*#__PURE__*/styled.p.withConfig({
16210
16691
  displayName: "Spell__Title",
16211
16692
  componentId: "sc-j96fa2-3"
16212
16693
  })(["display:flex;flex-wrap:wrap;align-items:center;margin-bottom:5px;margin:0;span{font-size:", " !important;font-weight:bold !important;color:", " !important;margin-right:0.5rem;}.spell{font-size:", " !important;font-weight:normal !important;color:", " !important;}"], uiFonts.size.medium, uiColors.yellow, uiFonts.size.small, uiColors.lightGray);
16213
- var Description$1 = /*#__PURE__*/styled.div.withConfig({
16694
+ var Description$2 = /*#__PURE__*/styled.div.withConfig({
16214
16695
  displayName: "Spell__Description",
16215
16696
  componentId: "sc-j96fa2-4"
16216
16697
  })(["font-size:", " !important;line-height:1.1 !important;"], uiFonts.size.small);
@@ -16240,7 +16721,8 @@ var Spellbook = function Spellbook(_ref) {
16240
16721
  removeShortcut = _ref.removeShortcut,
16241
16722
  atlasIMG = _ref.atlasIMG,
16242
16723
  atlasJSON = _ref.atlasJSON,
16243
- scale = _ref.scale;
16724
+ scale = _ref.scale,
16725
+ spellCooldowns = _ref.spellCooldowns;
16244
16726
  var _useState = useState(''),
16245
16727
  search = _useState[0],
16246
16728
  setSearch = _useState[1];
@@ -16278,7 +16760,7 @@ var Spellbook = function Spellbook(_ref) {
16278
16760
  height: "inherit",
16279
16761
  cancelDrag: "#spellbook-search, #shortcuts_list, .spell",
16280
16762
  scale: scale
16281
- }, React.createElement(Container$l, null, React.createElement(Title$7, null, "Learned Spells"), React.createElement(ShortcutsSetter, {
16763
+ }, React.createElement(Container$q, null, React.createElement(Title$8, null, "Learned Spells"), React.createElement(ShortcutsSetter, {
16282
16764
  setSettingShortcutIndex: setSettingShortcutIndex,
16283
16765
  settingShortcutIndex: settingShortcutIndex,
16284
16766
  shortcuts: shortcuts,
@@ -16302,15 +16784,17 @@ var Spellbook = function Spellbook(_ref) {
16302
16784
  charMagicLevel: magicLevel,
16303
16785
  onPointerUp: settingShortcutIndex !== -1 ? setShortcut : onSpellClick,
16304
16786
  spellKey: spell.key,
16305
- isSettingShortcut: settingShortcutIndex !== -1
16787
+ isSettingShortcut: settingShortcutIndex !== -1,
16788
+ spell: spell,
16789
+ activeCooldown: spellCooldowns == null ? void 0 : spellCooldowns[spell.magicWords.replaceAll(' ', '_')]
16306
16790
  }, spell)));
16307
16791
  }))));
16308
16792
  };
16309
- var Title$7 = /*#__PURE__*/styled.h1.withConfig({
16793
+ var Title$8 = /*#__PURE__*/styled.h1.withConfig({
16310
16794
  displayName: "Spellbook__Title",
16311
16795
  componentId: "sc-r02nfq-0"
16312
16796
  })(["font-size:", " !important;margin-bottom:0 !important;"], uiFonts.size.large);
16313
- var Container$l = /*#__PURE__*/styled.div.withConfig({
16797
+ var Container$q = /*#__PURE__*/styled.div.withConfig({
16314
16798
  displayName: "Spellbook__Container",
16315
16799
  componentId: "sc-r02nfq-1"
16316
16800
  })(["width:100%;height:100%;color:white;display:flex;flex-direction:column;"]);
@@ -16324,16 +16808,16 @@ var TextArea = function TextArea(_ref) {
16324
16808
  return React.createElement("textarea", Object.assign({}, props));
16325
16809
  };
16326
16810
 
16327
- var img$8 = 'data:image/gif;base64,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';
16811
+ var img$9 = 'data:image/gif;base64,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';
16328
16812
 
16329
- var img$9 = 'data:image/gif;base64,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';
16813
+ var img$a = 'data:image/gif;base64,R0lGODlhTgBNAPMAAAAAALcILyZ31ESZ+lrC/1Ds//vvpv3wo4G8//////38+QAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAAIf4gQ3JlYXRlZCB3aXRoIGV6Z2lmLmNvbSBHSUYgbWFrZXIALAAAAABOAE0AAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz2tg37hNq7jg/0AfbjeyAQfIpBIJ1BE5N99ySmUKbk9M4FftUn+BLMXoLXev4exWYG5/r8+te/5Nz+T0vBIu2yL+gIGCg4SFgXwvfoaLjIyILIqNkpOAjymRlAgHm5ybmZV2KHh0naWcepYlo22mradzqUUClK61nJSxIJiMrgm+v664oSKrXqa/yMmmbrkexVXHydK+y2bNULON0dPTppLXGs9UpdzlCaVt4FpsZuTm5ejWwx3iU53v753p89jtnPj49JVRZ2ELgYMFoP0DaE6gF4JjBBycSCChEncMucV7yC+DQYoI/y8uzAjvFUddEkGGRHKPZMlN8lCqXDmgpctuJs90XDdzpc2bynJWgSjh40yLP4ECE1pHZs8CB5MqPcd0ClEARlVCjTpy6kadTrWC7KpU4NaDVndeyNqT64GpSzedBblHbcGUbSmSddlprsokV7HizUtAKsO+hAkMCCw48UTD+RAnZsw2L0aApfy2pTw48eWGczX3ZNzYsdtNAf2KVkm6tOnC2+JqXg2ytWBStiSLzWv7dh5XBnS/Pti7nj9TW2kT7u1bT03dBZSPtuuMnfMkqqXXpl79uhLR2icyj+gdSfjN3FF6Pz89kXU3itnPHO/xfXlm6VXZv3+ShnH+gOUnikAUAFpFny7/XYeGGBOssR8qQjBYQRQPpoOGgHc4WOEeYGAYB4VBBDGEhMTkYCKJKKao4oostujiizDGKOOMF0QAACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAAE4ATQAABP8QyEmrvTjrzbv/YCiOZGmeaKqubOu+cCzPa2DfuE2ruOD/QB9uN7IBB8ikEgnUETk333JKZQpuT0zgV+1Sf4Esxegtd6/h7FZgbn+vz617/k3P5PS8Ei7bIv6AgYKDhIWBfC9+houMjIgsio2Sk4CPKZGUmY2WJnh6B6ChoHpMdieec6KqoXqcRQKaq7Khmq4gmI2zurSUth6oZbMJw8Szc74dwF2rxM3Oq27IG7iGzM7Xw6uT0hnKVNbY2NBm3Bfe36Lh6gmq0aa/bGaq6+vt5O/J8cGh9PSibeUqbCFAoMAyfv38sSoTcMJAggQNTkmXsN5Chvg0PIRYcMm8iur/7HlpCGAjR4lIKIIMefFMxm4COEJEOUDlSnEtq5A0eTKJzZvPcta5FVNmRJ8IgV77h5Go0YgEayZV2ozpyJdaihotAPEnVXZCp+zUepLjx69gF3KFuGTsU6Negf5bazSJ27dmp1IVRfdpqRA838YFyRcvRJISAj89e1NV37eIS5I1zLiiY8OHscLEnFevP7oHHkPWvJkzwcohH4s2GjnxZMyol4peLbO161SyloKiTZug7du4dRkobLo26Wn6gs9a29vwb+B5ls9s/vS5w+R0Lp+kztH6dVJTVnP3ffzDOTrjR7c43yZ99fIi2FchMMA9a/ivwIP3jlx/Hv5QYOefQUtxSDGgTgCaJx8paIhxnYH+geGgQEYIGA0a+NFQIYRngJGhGlEEIeIQE8aXw4klpqjiiiy26OKLMMYo44w0XhABACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAAE4ATQAABP8QyEmrvTjrzbv/YCiOZGmeaKqubOu+cCzPa2DfuE2ruOD/QB9uN7IBB8ikEgnUETk333JKZQpuT0zgV+1Sf4Esxegtd6/h7FZgbn+vz617/k3P5PS8Ei7bIv6AgYKDhIWBfC9+houMjIgsio2Sk4CPKZGUmY2WJnh6n2d2J555B6anpqCcRQKaf6iwp64IqyCYk7G5spq1HqRmusGndL0dv166CcrLunPFG7eLscvU1bGUzxnHVdPV3sqxbtkX21Td39/hbeMV5VOw6PEJsOKivmzAqPLy9GbsYwIIFCijbx+/Yf7sQQlIoOFAc6cMGkS1TqGGLQ0zPlxSUGI8ign/bTHMKJBjR4/pQHr5BwAjyZJKTqJMmaoMS5cvNw6QOdMawpUWtY0kqZNnT2Y/Q4l86bAhEqNH5yWtcnOoxow7I0b1plLpB5xXSUI9qrIAyT1BtVhlSgDeVqTDzLJlkpbcWrZjUVKUy5bAAJYt777M6xEV376AA/cdrHXr3sUNE4Nd7JasYciR66rFnLGyXr4DDiPWvJnzOYkHRItmmljCZMqe+a1e/bK1a3z5CM+jLXCx7dtzklFTcJlzbdIXcbcRVpw35N/A6TDnW8A5W+gT3HXRpdo6SezZlUuHRdt75hriQZkf3UJ7m/XXkYtwX8UvfNbyWYFSlZ8E/f1LgGdMRXoAUtXfKFIUSJWAtvyXBxpihJcggGBE2I4RBK6DxoF9rDHhGWBwSEQPQZQ4hIXz5aAiiiy26OKLMMYo44w01mjjjRdEAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAABOAE0AAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz2tg37hNq7jg/0AfbjeyAQfIpBIJ1BE5N99ySmUKbk9M4FftUn+BLMXoLXev4exWYG5/r8+te/5Nz+T0vBIu2yL+gIGCg4SFgXwvfoaLjIyILIqNkpOAjymRlJmNliZ4ep9ndieeoKV7oiWYmgesrayah6giqpSutq2wf5wgpG63v616ux+9ZcDHwXPDHbSLwAnQ0cCZyxvFXbfR2tu3yrLMbL622+TStt6z4WbZ5e3dbdVa6sau7fYJ5/Df1gIF6/X37OUrE8/CFgII/WFrFTCgKzcFxwhAmLAKwIb3HpqJOOEgRQIK/5dcxOguGcF98j6CnDKOpECNXjhK8PgxJJKRLsvBDMVrokqbA3Dm5GaSJzGfNREmETrUHKuNKC/QpFiA4k2GTXUWrSITwFSQKoNizUr0aZKqVplENYhU5UemWTWidTug61e3BFqShXZuLt6uXtvizTt270O/bgEHHvy2MNnDjAkovosXLknIkScLHqx36IG5AxAnXpsyMsLOlxGL/qh45ubKqB2KXk2xtes27Bp+Hkzb9m3csaMp4LvbtErfgec8I4qWNmPkycUhYzW3gPPRl+b9O6b6em3SHq7R+7Xau2Tw4bVLd2X+L/qjppC0x+5CvBkCoY27j2E/Ptf3JPTn30cpOwg4IHQ9qTdgXQiGQMaCSaAhRkdcxAfGhBVEoSA8aAB4xxpSEASGh3FoGEQQQ2A4Sw4squjiizDGKOOMNNZo44045nhBBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAABOAE0AAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz2tg37hNq7jg/0AfbjeyAQfIpBIJ1BE5N99ySmUKbk9M4FftUn+BLMXoLXev4exWYG5/r8+te/5Nz+T0vBIu2yL+gIGCg4SFgXwvfoaLjIyILIqNkpOAjymRlJmNliZ4ep9ndieeoKV7oiWYmgesrayah6giqpSutq2wf5wgpG63v616ux+9ZcDHwXPDHbSLwAnQ0cCZyxvFXbfR2tu3yrLMbL622+TStt6z4WbZ5e3dbdVa6sau7fYJ5/Df1gIF6/X37OUrE8/CFgII/WFrFTCgKzcFxwhAmLAKwIb3HpqJOOEgRQIK/5dcxOguGcF98j6CnDKOpECNXjhK8PgxJJKRLsvBDMVrokqbA3Dm5GaSJzGfNREmETrUHKuNKC/QpFiA4k2GTXUWrSITwFSQKoNizUr0aZKqVplENYhU5UemWTWidTug61e3BFqShXZuLt6uXtvizTt270O/bgEHHvy2MNnDjAkovosXLknIkScLHqx36IG5AxAnXpsyMsLOlxGL/qh45ubKqB2KXk2xtes27Bp+Hkzb9m3csaMp4LvbtErfgec8I4qWNmPkycUhYzW3gPPRl+b9O6b6em3SHq7R+7Xau2Tw4bVLd2X+L/qjppC0x+5CvBkCoY27j2E/Ptf3JPTn30cpOwg4IHQ9qTdgXQiGQMaCSaAhRkdcxAfGhBVEoSA8aAB4xxpSEASGh3FoGEQQQ2A4Sw4squjiizDGKOOMNNZo44045nhBBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAABOAE0AAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz2tg37hNq7jg/0AfbjeyAQfIpBIJ1BE5N99ySmUKbk9M4FftUn+BLMXoLXev4exWYG5/r8+te/5Nz+T0vBIu2yL+gIGCg4SFgXwvfoaLjIyILIqNkpOAjymRlJmNliZ4ep9ndieeeQemp6agnEUCmn+osKeuCKsgmJOxubKatR6kZrrBp3S9Hb9eugnKy7pzxRu3i7HL1NWxlM8Zx1XT1d7KsW7ZF9tU3d/f4W3jFeVTsOjxCbDior5swKjy8vRm7GMCCBQoo28fv2H+7EEJSKDhQHOnDBpEtU6hhi0NMz5cUlBiPIoJ/20xzCiQY0eP6UB6+QcAI8mSSk6iTJmqDEuXLzcOkDnTGsKVFrWNJKmTZ09mP0OJfOmwIRKjR+clrXJzqMaMOyNG9aZS6QecV0lCPaqyAMk9QbVYZUoA3lakw8yyZZKW3Fq2Y1FSlMuWwACWLe++zOsRFd++gAP3Hax1697FDRODXeyWrGHIkeuqxZyxsl6+Aw4j1ryZ8zmJB0SLZppYwmTKnvmtXv2ytWt8+QjPoy1wse3bc5JRU3CZc23SF3G3EVacN+TfwOkw51vAOVvoE9x10aXaOkns2ZVLh0Xbe+Ya4kGZH91Ce5v115GLcF/FL3zW8lmBUpWfBP39S4BnTEV6AFLV3yhSFEiVgLb8lwcaYoSXIIBgRNiOEQSug8aBfawx4RlgcEhED0GUOISF8+WgIoostujiizDGKOOMNNZo440XRAAAIf8LSW1hZ2VNYWdpY2sNZ2FtbWE9MC40NTQ1NQAh+QQBFAAAACwAAAAATgBNAAAE/xDISau9OOvNu/9gKI5kaZ5oqq5s675wLM9rYN+4Tau44P9AH243sgEHyKQSCdQROTffckplCm5PTOBX7VJ/gSzF6C13r+HsVmBuf6/PrXv+Tc/k9LwSLtsi/oCBgoOEhYF8L36Gi4yMiCyKjZKTgI8pkZSZjZYmeHoHoKGgekx2J55zoqqhepxFApqrsqGariCYjbO6tJS2HqhlswnDxLNzvh3AXavEzc6rbsgbuIbMztfDq5PSGcpU1tjY0GbcF97fouHqCarRpr9sZqrr6+3k78nxwaH09KJt5SpsIUCgwDJ+/fyxKhNwwkCCBA1OSZew3kKG+DQ8hFhwybyK6v/seWkIYCNHiUgoggx58UzGbgI4QkQ5QOVKcS2rkDR5MonNm89y1rkVU2ZEnwiBXvuHkajRiARrJlXajOnIl1qKGi0A8SdVdkKn7NR6kuPHr2AXcoW4ZOxTo16B/ltrNInbt2anUhVF92mpEDzfxgXJFy9EkhICPz17U1Xft4hLkjXMuKJjw4exwsTctbI/ugceQ9a8mTMBcJ9lijYaOfFkyp6Xil4ts7XrVLKWgqJNm6Dt27h1GShsujbpafqCz1rb2/Bv4HmWz2z+9LnD5HQun6TO0fp1UlNWc/d9/MM5OuNHtzjfJn318iLYVyEwwD1r+K/Ag/eOXH8e/lBg559BS3FIMaBOAJonHyloiHGdgf6B4aBARggYDRr40VAhhGeAkaEaUQQh4hATxpfDiSWmqOKKLLbo4oswxijjjDReEAEAIf8LSW1hZ2VNYWdpY2sNZ2FtbWE9MC40NTQ1NQAh+QQBFAAAACwAAAAATgBNAAAE/xDISau9OOvNu/9gKI5kaZ5oqq5s675wLM9rYN+4Tau44P9AH243sgEHyKQSCdQROTffckplCm5PTOBX7VJ/gSzF6C13r+HsVmBuf6/PrXv+Tc/k9LwSLtsi/oCBgoOEhYF8L36Gi4yMiCyKjZKTgI8pkZQIB5ucm5mVdih4dJ2lnHqWJaNtpq2nc6lFApSutZyUsSCYjK4Jvr+uuKEiq16mv8jJpm65HsVVx8nSvstmzVCzjdHT06aS1xrPVKXc5QmlbeBabGbk5uXo1sMd4lOd7++d6fPY7Zz4+PSVUWdhC4GDBaD9A2hOoBeCYwQcnEggoRJ3DLnFe8gvg0GKCP8vLswI7xVHXRJBhkRyj2TJTfJQqlw5oKXLbibPdFw3c6XNm8pyVoEo4eNMiz+BAhNaR2bPAgeTKj3HdApRAEZVQo06cupGnU61guyqVODWg1Z3Xsjak+uBqUs3nQW5R23BlG0pknXZaa7KJFex4s1LQCrDvoQJDAgsOPFEw/kQJ2bMNi9GgKX8tqU8OPHlhnM192Tc2LHbTQH9ilZJurTpwtvial4NsrVgUrYki81r+3YeVwZ0vz7Yu54/U1tpE+7tW09N3QWUj7brjJ3zJKql16Ze/boS0donMo/oHUn4zdxRej8/PZF1N4rZzxzv8X15ZulV2b9/koZx/oDlJ4pAFABaRZ8u/12HhhgTrLEfKkIwWEEUD6aDhoB3OFjhHmBgGAeFQQQxhITE5GAiiSimqOKKLLbo4oswxijjjBdEAAA7';
16330
16814
 
16331
- var img$a = 'data:image/gif;base64,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';
16815
+ var img$b = 'data:image/gif;base64,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';
16332
16816
 
16333
16817
  var DayNightPeriod = function DayNightPeriod(_ref) {
16334
16818
  var _periodOfDaySrcFiles;
16335
16819
  var periodOfDay = _ref.periodOfDay;
16336
- var periodOfDaySrcFiles = (_periodOfDaySrcFiles = {}, _periodOfDaySrcFiles[PeriodOfDay.Morning] = img$9, _periodOfDaySrcFiles[PeriodOfDay.Afternoon] = img$8, _periodOfDaySrcFiles[PeriodOfDay.Night] = img$a, _periodOfDaySrcFiles);
16820
+ var periodOfDaySrcFiles = (_periodOfDaySrcFiles = {}, _periodOfDaySrcFiles[PeriodOfDay.Morning] = img$a, _periodOfDaySrcFiles[PeriodOfDay.Afternoon] = img$9, _periodOfDaySrcFiles[PeriodOfDay.Night] = img$b, _periodOfDaySrcFiles);
16337
16821
  return React.createElement(GifContainer, null, React.createElement("img", {
16338
16822
  src: periodOfDaySrcFiles[periodOfDay]
16339
16823
  }));
@@ -16343,7 +16827,7 @@ var GifContainer = /*#__PURE__*/styled.div.withConfig({
16343
16827
  componentId: "sc-10t97fw-0"
16344
16828
  })(["width:100%;img{width:67%;}"]);
16345
16829
 
16346
- var img$b = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHMAAABHCAYAAAA0qHhdAAAAAXNSR0IArs4c6QAABGRJREFUeJztnb9PGzEUx7+JMjC0Uge6tVsVdTghQP0D2qgjzGz8D8woE2LO/5CNOcwlU9WJRCgDYmWJRAYkFgak6wDv5HPsO9/P8J79WUhicr7nzz3bOV8uHbRPXOXN2x++1LUfYnh4uu8AQK+FulLy7hbHxn96vrh22tjW0b7xPVtH+87bkMbnj1/jh6f7TqfBOmKgurwy6MJ10VRuKqNylwMl7wBy3U5WuetBOhg9om6ZSRaqEtvImJ2zRfL4/GA3eXy494LJzNwBmcpc//9w7wUAMJn1ktdt5bbnaj228qw6VeqWGbctUEXNxn40Fj+2/jn5lHpel8xUd+oqcedsUajum2HkNHEiqf1oDAD4/e1HkWrYMF8uE6GTWQ+j6aryBCh2lVhUXt77bXJpP2i/+tE41e1y5uo2W1cVmfHd4rhxiXnbdZEqReiv76/jpE1q2YbOFNmUwDxsYreO9lkLvbrtJSLp+Xy5xN9/g8TBYPSIboltv0uRWXU/X1zjbnGM08t527tUC7aM1B0UbXiryE1KNGHKUu4ZqjKarpLMpAlQkcxkIxIw7xP3DLVBnzldZbISSUgXqvtwkclSJCFNqDpu0mdqOkOUJ5O1SEKSUHVWWyQzRYgkJAml7KTMzBszRYkkJAhVu1ny49rNpuAskuAaw9VtL/d0nikwY1ZybQQb+udQ+gzKZbXFtGqiq3Y63yoR6m770Rg3wyi1gK1iel1dQNbLqazsX9M2dKib1bPNi6wkbNl5M4w2tUulGIwe8fB031nrhH0RCbzGpgrVJxSEaYXfdoWCrdxE1lUNtnJ9+6PpKrmgSxUVm45IyTIB8zncnbPF2th58nMbo+kq9zUX8t5XpC4SCQSZVpkovzy4MWiHvRRJSBFaZj0z8E6xyvQlKwE5sYbMFEQXlvHSd97apNL3YtomZKYgjDKljCFFkBBzyExBBJmCCDIFEWQKIsgURJApiCBTEEGmILqA26q4b3Bsk5CZgjDKdL1/gCQkxJzI5NitNAXXtugC6HC5NL9N3tqE1cn3MGYKIiVT7V4kjCGuqLFy7WIBw61jOAdTFikxp66bPT/YXbsnm4RF2yz0Hmgy67EcLwHDmCnlKC0D99hVmcmslntQZaCYuWYlYPgWmOkeOaeXc5bB5XF+sLs2yeMs05iC+rh5uBfF0sbO17EyHSf3HkkfMzunl3P2QZWB88SHsO246JmtpBmsSuYZoMmsJ+5Egn6CQFIvlHUkrk2GKFO5ZiiJ1AVKyEogPwDj7BbgN8M1zVwBOSIBtyDYC/VBJOAeCFuhvogEigXDTqhPIoESd4LmItQ3kUC5oKxCgc1LtUkEZIsEKvx6wnsU6rNIoFpwmUKJpsVmCVT2ARAuEqgeoJNQoH6pLhLf6gU8EAnUE2QMoPDPSxSV6ypP2T499EIkUG+gzlnaND5lo0pjv5/Ztljt2l/vRALNBl2q+y2Kj92pjTYaIDXWVZVruPree4nEJhqi6ppokGfhP6xr60VVr5O+AAAAAElFTkSuQmCC';
16830
+ var img$c = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHMAAABHCAYAAAA0qHhdAAAAAXNSR0IArs4c6QAABGRJREFUeJztnb9PGzEUx7+JMjC0Uge6tVsVdTghQP0D2qgjzGz8D8woE2LO/5CNOcwlU9WJRCgDYmWJRAYkFgak6wDv5HPsO9/P8J79WUhicr7nzz3bOV8uHbRPXOXN2x++1LUfYnh4uu8AQK+FulLy7hbHxn96vrh22tjW0b7xPVtH+87bkMbnj1/jh6f7TqfBOmKgurwy6MJ10VRuKqNylwMl7wBy3U5WuetBOhg9om6ZSRaqEtvImJ2zRfL4/GA3eXy494LJzNwBmcpc//9w7wUAMJn1ktdt5bbnaj228qw6VeqWGbctUEXNxn40Fj+2/jn5lHpel8xUd+oqcedsUajum2HkNHEiqf1oDAD4/e1HkWrYMF8uE6GTWQ+j6aryBCh2lVhUXt77bXJpP2i/+tE41e1y5uo2W1cVmfHd4rhxiXnbdZEqReiv76/jpE1q2YbOFNmUwDxsYreO9lkLvbrtJSLp+Xy5xN9/g8TBYPSIboltv0uRWXU/X1zjbnGM08t527tUC7aM1B0UbXiryE1KNGHKUu4ZqjKarpLMpAlQkcxkIxIw7xP3DLVBnzldZbISSUgXqvtwkclSJCFNqDpu0mdqOkOUJ5O1SEKSUHVWWyQzRYgkJAml7KTMzBszRYkkJAhVu1ny49rNpuAskuAaw9VtL/d0nikwY1ZybQQb+udQ+gzKZbXFtGqiq3Y63yoR6m770Rg3wyi1gK1iel1dQNbLqazsX9M2dKib1bPNi6wkbNl5M4w2tUulGIwe8fB031nrhH0RCbzGpgrVJxSEaYXfdoWCrdxE1lUNtnJ9+6PpKrmgSxUVm45IyTIB8zncnbPF2th58nMbo+kq9zUX8t5XpC4SCQSZVpkovzy4MWiHvRRJSBFaZj0z8E6xyvQlKwE5sYbMFEQXlvHSd97apNL3YtomZKYgjDKljCFFkBBzyExBBJmCCDIFEWQKIsgURJApiCBTEEGmILqA26q4b3Bsk5CZgjDKdL1/gCQkxJzI5NitNAXXtugC6HC5NL9N3tqE1cn3MGYKIiVT7V4kjCGuqLFy7WIBw61jOAdTFikxp66bPT/YXbsnm4RF2yz0Hmgy67EcLwHDmCnlKC0D99hVmcmslntQZaCYuWYlYPgWmOkeOaeXc5bB5XF+sLs2yeMs05iC+rh5uBfF0sbO17EyHSf3HkkfMzunl3P2QZWB88SHsO246JmtpBmsSuYZoMmsJ+5Egn6CQFIvlHUkrk2GKFO5ZiiJ1AVKyEogPwDj7BbgN8M1zVwBOSIBtyDYC/VBJOAeCFuhvogEigXDTqhPIoESd4LmItQ3kUC5oKxCgc1LtUkEZIsEKvx6wnsU6rNIoFpwmUKJpsVmCVT2ARAuEqgeoJNQoH6pLhLf6gU8EAnUE2QMoPDPSxSV6ypP2T499EIkUG+gzlnaND5lo0pjv5/Ztljt2l/vRALNBl2q+y2Kj92pjTYaIDXWVZVruPree4nEJhqi6ppokGfhP6xr60VVr5O+AAAAAElFTkSuQmCC';
16347
16831
 
16348
16832
  var TimeWidget = function TimeWidget(_ref) {
16349
16833
  var onClose = _ref.onClose,
@@ -16361,7 +16845,7 @@ var TimeWidget = function TimeWidget(_ref) {
16361
16845
  var WidgetContainer = /*#__PURE__*/styled.div.withConfig({
16362
16846
  displayName: "TimeWidget__WidgetContainer",
16363
16847
  componentId: "sc-1ja236h-0"
16364
- })(["background-image:url(", ");background-size:10rem;background-repeat:no-repeat;width:10rem;position:absolute;height:100px;"], img$b);
16848
+ })(["background-image:url(", ");background-size:10rem;background-repeat:no-repeat;width:10rem;position:absolute;height:100px;"], img$c);
16365
16849
  var Time = /*#__PURE__*/styled.div.withConfig({
16366
16850
  displayName: "TimeWidget__Time",
16367
16851
  componentId: "sc-1ja236h-1"
@@ -16547,7 +17031,7 @@ var TradingMenu = function TradingMenu(_ref) {
16547
17031
  style: {
16548
17032
  width: '100%'
16549
17033
  }
16550
- }, React.createElement(Title$8, null, Capitalize(type), " Menu"), React.createElement("hr", {
17034
+ }, React.createElement(Title$9, null, Capitalize(type), " Menu"), React.createElement("hr", {
16551
17035
  className: "golden"
16552
17036
  })), React.createElement(TradingComponentScrollWrapper, {
16553
17037
  id: "TraderContainer"
@@ -16577,7 +17061,7 @@ var TradingMenu = function TradingMenu(_ref) {
16577
17061
  }
16578
17062
  }, "Cancel"))));
16579
17063
  };
16580
- var Title$8 = /*#__PURE__*/styled.h1.withConfig({
17064
+ var Title$9 = /*#__PURE__*/styled.h1.withConfig({
16581
17065
  displayName: "TradingMenu__Title",
16582
17066
  componentId: "sc-1wjsz1l-0"
16583
17067
  })(["z-index:22;font-size:0.6rem;color:yellow !important;"]);
@@ -16611,230 +17095,16 @@ var Truncate = function Truncate(_ref) {
16611
17095
  var _ref$maxLines = _ref.maxLines,
16612
17096
  maxLines = _ref$maxLines === void 0 ? 1 : _ref$maxLines,
16613
17097
  children = _ref.children;
16614
- return React.createElement(Container$m, {
17098
+ return React.createElement(Container$r, {
16615
17099
  maxLines: maxLines
16616
17100
  }, children);
16617
17101
  };
16618
- var Container$m = /*#__PURE__*/styled.div.withConfig({
17102
+ var Container$r = /*#__PURE__*/styled.div.withConfig({
16619
17103
  displayName: "Truncate__Container",
16620
17104
  componentId: "sc-6x00qb-0"
16621
17105
  })(["display:-webkit-box;max-width:100%;max-height:100%;-webkit-line-clamp:", ";-webkit-box-orient:vertical;overflow:hidden;"], function (props) {
16622
17106
  return props.maxLines;
16623
17107
  });
16624
17108
 
16625
- var IS_MOBILE_OR_TABLET = /*#__PURE__*/isMobileOrTablet();
16626
-
16627
- var chunkString = function chunkString(str, length) {
16628
- return str.match(new RegExp('.{1,' + length + '}', 'g'));
16629
- };
16630
-
16631
- var img$c = 'data:image/gif;base64,R0lGODlhEAAQAPIAAAAAABQYLiw1TUBJc2hvmQAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAM9CLrc/lCFGSKYJJP5AhlguDnBMIVgxXgmJapSSp3mKs/pKrT0IMCXUk+2Cgh2oSOnaDz+lswZpSOFUq2KBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAIzhI+py90Bg4OjDrjCELxfFQhQx0mIJkaeaYRp5LJADMdnqXbyOJLYTdKBejjZoRaZJBMFACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAABAAEAAAAjKEj6nL7Y+CDE6OO+QKQ/ifKYEgfR4VddPohQe7lmR0xidNTib65uacYP2AQWGuMlEUAAA7';
16632
-
16633
- var NPCDialogText = function NPCDialogText(_ref) {
16634
- var text = _ref.text,
16635
- onClose = _ref.onClose,
16636
- onEndStep = _ref.onEndStep,
16637
- onStartStep = _ref.onStartStep,
16638
- type = _ref.type;
16639
- var windowSize = useRef([window.innerWidth, window.innerHeight]);
16640
- function maxCharacters(width) {
16641
- // Set the font size to 16 pixels
16642
- var fontSize = 11.2;
16643
- // Calculate the number of characters that can fit in one line
16644
- var charactersPerLine = Math.floor(width / 2 / fontSize);
16645
- // Calculate the number of lines that can fit in the div
16646
- var linesPerDiv = Math.floor(180 / fontSize);
16647
- // Calculate the maximum number of characters that can fit in the div
16648
- var maxCharacters = charactersPerLine * linesPerDiv;
16649
- // Return the maximum number of characters
16650
- return Math.round(maxCharacters / 5);
16651
- }
16652
- var textChunks = chunkString(text, maxCharacters(windowSize.current[0]));
16653
- var _useState = useState(0),
16654
- chunkIndex = _useState[0],
16655
- setChunkIndex = _useState[1];
16656
- var onHandleSpacePress = function onHandleSpacePress(event) {
16657
- if (event.code === 'Space') {
16658
- goToNextStep();
16659
- }
16660
- };
16661
- var goToNextStep = function goToNextStep() {
16662
- var hasNextChunk = (textChunks == null ? void 0 : textChunks[chunkIndex + 1]) || false;
16663
- if (hasNextChunk) {
16664
- setChunkIndex(function (prev) {
16665
- return prev + 1;
16666
- });
16667
- } else {
16668
- // if there's no more text chunks, close the dialog
16669
- onClose();
16670
- }
16671
- };
16672
- useEffect(function () {
16673
- document.addEventListener('keydown', onHandleSpacePress);
16674
- return function () {
16675
- return document.removeEventListener('keydown', onHandleSpacePress);
16676
- };
16677
- }, [chunkIndex]);
16678
- var _useState2 = useState(false),
16679
- showGoNextIndicator = _useState2[0],
16680
- setShowGoNextIndicator = _useState2[1];
16681
- return React.createElement(Container$n, null, React.createElement(DynamicText, {
16682
- text: (textChunks == null ? void 0 : textChunks[chunkIndex]) || '',
16683
- onFinish: function onFinish() {
16684
- setShowGoNextIndicator(true);
16685
- onEndStep && onEndStep();
16686
- },
16687
- onStart: function onStart() {
16688
- setShowGoNextIndicator(false);
16689
- onStartStep && onStartStep();
16690
- }
16691
- }), showGoNextIndicator && React.createElement(PressSpaceIndicator$1, {
16692
- right: type === NPCDialogType.TextOnly ? '1rem' : '10.5rem',
16693
- src: IS_MOBILE_OR_TABLET ? img$c : img$6,
16694
- onPointerDown: function onPointerDown() {
16695
- goToNextStep();
16696
- }
16697
- }));
16698
- };
16699
- var Container$n = /*#__PURE__*/styled.div.withConfig({
16700
- displayName: "NPCDialogText__Container",
16701
- componentId: "sc-1cxkdh9-0"
16702
- })([""]);
16703
- var PressSpaceIndicator$1 = /*#__PURE__*/styled.img.withConfig({
16704
- displayName: "NPCDialogText__PressSpaceIndicator",
16705
- componentId: "sc-1cxkdh9-1"
16706
- })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref2) {
16707
- var right = _ref2.right;
16708
- return right;
16709
- });
16710
-
16711
- var NPCDialogType;
16712
- (function (NPCDialogType) {
16713
- NPCDialogType["TextOnly"] = "TextOnly";
16714
- NPCDialogType["TextAndThumbnail"] = "TextAndThumbnail";
16715
- })(NPCDialogType || (NPCDialogType = {}));
16716
- var NPCDialog = function NPCDialog(_ref) {
16717
- var text = _ref.text,
16718
- type = _ref.type,
16719
- _onClose = _ref.onClose,
16720
- imagePath = _ref.imagePath,
16721
- _ref$isQuestionDialog = _ref.isQuestionDialog,
16722
- isQuestionDialog = _ref$isQuestionDialog === void 0 ? false : _ref$isQuestionDialog,
16723
- questions = _ref.questions,
16724
- answers = _ref.answers;
16725
- return React.createElement(RPGUIContainer, {
16726
- type: RPGUIContainerTypes.FramedGold,
16727
- width: isQuestionDialog ? '600px' : '80%',
16728
- height: '180px'
16729
- }, isQuestionDialog && questions && answers ? React.createElement(React.Fragment, null, React.createElement(TextContainer$2, {
16730
- flex: type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'
16731
- }, React.createElement(QuestionDialog, {
16732
- questions: questions,
16733
- answers: answers,
16734
- onClose: function onClose() {
16735
- if (_onClose) {
16736
- _onClose();
16737
- }
16738
- }
16739
- })), type === NPCDialogType.TextAndThumbnail && React.createElement(ThumbnailContainer$1, null, React.createElement(NPCThumbnail$1, {
16740
- src: imagePath || img$5
16741
- }))) : React.createElement(React.Fragment, null, React.createElement(Container$o, null, React.createElement(TextContainer$2, {
16742
- flex: type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'
16743
- }, React.createElement(NPCDialogText, {
16744
- type: type,
16745
- text: text || 'No text provided.',
16746
- onClose: function onClose() {
16747
- if (_onClose) {
16748
- _onClose();
16749
- }
16750
- }
16751
- })), type === NPCDialogType.TextAndThumbnail && React.createElement(ThumbnailContainer$1, null, React.createElement(NPCThumbnail$1, {
16752
- src: imagePath || img$5
16753
- })))));
16754
- };
16755
- var Container$o = /*#__PURE__*/styled.div.withConfig({
16756
- displayName: "NPCDialog__Container",
16757
- componentId: "sc-1b4aw74-0"
16758
- })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
16759
- var TextContainer$2 = /*#__PURE__*/styled.div.withConfig({
16760
- displayName: "NPCDialog__TextContainer",
16761
- componentId: "sc-1b4aw74-1"
16762
- })(["flex:", " 0 0;width:355px;"], function (_ref2) {
16763
- var flex = _ref2.flex;
16764
- return flex;
16765
- });
16766
- var ThumbnailContainer$1 = /*#__PURE__*/styled.div.withConfig({
16767
- displayName: "NPCDialog__ThumbnailContainer",
16768
- componentId: "sc-1b4aw74-2"
16769
- })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
16770
- var NPCThumbnail$1 = /*#__PURE__*/styled.img.withConfig({
16771
- displayName: "NPCDialog__NPCThumbnail",
16772
- componentId: "sc-1b4aw74-3"
16773
- })(["image-rendering:pixelated;height:128px;width:128px;"]);
16774
-
16775
- var HistoryDialog = function HistoryDialog(_ref) {
16776
- var backgroundImgPath = _ref.backgroundImgPath,
16777
- fullCoverBackground = _ref.fullCoverBackground,
16778
- questions = _ref.questions,
16779
- answers = _ref.answers,
16780
- text = _ref.text,
16781
- imagePath = _ref.imagePath,
16782
- textAndTypeArray = _ref.textAndTypeArray,
16783
- onClose = _ref.onClose;
16784
- var _useState = useState(0),
16785
- img = _useState[0],
16786
- setImage = _useState[1];
16787
- var onHandleSpacePress = function onHandleSpacePress(event) {
16788
- if (event.code === 'Space') {
16789
- if (img < (backgroundImgPath == null ? void 0 : backgroundImgPath.length) - 1) {
16790
- setImage(function (prev) {
16791
- return prev + 1;
16792
- });
16793
- } else {
16794
- // if there's no more text chunks, close the dialog
16795
- onClose();
16796
- }
16797
- }
16798
- };
16799
- useEffect(function () {
16800
- document.addEventListener('keydown', onHandleSpacePress);
16801
- return function () {
16802
- return document.removeEventListener('keydown', onHandleSpacePress);
16803
- };
16804
- }, [backgroundImgPath]);
16805
- return React.createElement(BackgroundContainer, {
16806
- imgPath: backgroundImgPath[img],
16807
- fullImg: fullCoverBackground
16808
- }, React.createElement(DialogContainer, null, textAndTypeArray ? React.createElement(NPCMultiDialog, {
16809
- textAndTypeArray: textAndTypeArray,
16810
- onClose: onClose
16811
- }) : questions && answers ? React.createElement(QuestionDialog, {
16812
- questions: questions,
16813
- answers: answers,
16814
- onClose: onClose
16815
- }) : text && imagePath ? React.createElement(NPCDialog, {
16816
- text: text,
16817
- imagePath: imagePath,
16818
- onClose: onClose,
16819
- type: NPCDialogType.TextAndThumbnail
16820
- }) : React.createElement(NPCDialog, {
16821
- text: text,
16822
- onClose: onClose,
16823
- type: NPCDialogType.TextOnly
16824
- })));
16825
- };
16826
- var BackgroundContainer = /*#__PURE__*/styled.div.withConfig({
16827
- displayName: "HistoryDialog__BackgroundContainer",
16828
- componentId: "sc-u6oe75-0"
16829
- })(["width:100%;height:100%;background-image:url(", ");background-size:", ";display:flex;justify-content:space-evenly;align-items:center;"], function (props) {
16830
- return props.imgPath;
16831
- }, function (props) {
16832
- return props.imgPath ? 'cover' : 'auto';
16833
- });
16834
- var DialogContainer = /*#__PURE__*/styled.div.withConfig({
16835
- displayName: "HistoryDialog__DialogContainer",
16836
- componentId: "sc-u6oe75-1"
16837
- })(["display:flex;justify-content:center;padding-top:200px;"]);
16838
-
16839
17109
  export { Button, ButtonTypes, CharacterSelection, Chat, ChatDeprecated, CheckButton, CircularController, CraftBook, DraggableContainer, Dropdown, DropdownSelectorContainer, DynamicText, EquipmentSet, EquipmentSlotSpriteByType, ErrorBoundary, HistoryDialog, ImgSide, Input, InputRadio$1 as InputRadio, ItemContainer$1 as ItemContainer, ItemSelector, ItemSlot, ListMenu, Marketplace, MarketplaceRows, NPCDialog, NPCDialogType, NPCMultiDialog, ProgressBar, PropertySelect, QuestInfo, QuestList, QuestionDialog, RPGUIContainer, RPGUIContainerTypes, RPGUIRoot, RangeSlider, RangeSliderType, Shortcuts, SkillProgressBar, SkillsContainer, Spellbook, SpriteFromAtlas, TextArea, TimeWidget, TradingMenu, Truncate, _RPGUI, rarityColor, useEventListener };
16840
17110
  //# sourceMappingURL=long-bow.esm.js.map