@rpg-engine/long-bow 0.3.58 → 0.3.60

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 (157) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +181 -181
  3. package/dist/components/CircularController/CircularController.d.ts +6 -3
  4. package/dist/components/Item/Inventory/ItemContainer.d.ts +4 -1
  5. package/dist/components/Item/Inventory/ItemSlot.d.ts +1 -0
  6. package/dist/components/Shortcuts/Shortcuts.d.ts +12 -0
  7. package/dist/components/Shortcuts/ShortcutsSetter.d.ts +12 -0
  8. package/dist/components/Shortcuts/SingleShortcut.d.ts +1 -0
  9. package/dist/components/Spellbook/Spellbook.d.ts +5 -3
  10. package/dist/components/Spellbook/constants.d.ts +3 -3
  11. package/dist/index.d.ts +1 -1
  12. package/dist/long-bow.cjs.development.js +1126 -963
  13. package/dist/long-bow.cjs.development.js.map +1 -1
  14. package/dist/long-bow.cjs.production.min.js +1 -1
  15. package/dist/long-bow.cjs.production.min.js.map +1 -1
  16. package/dist/long-bow.esm.js +849 -685
  17. package/dist/long-bow.esm.js.map +1 -1
  18. package/dist/stories/{QuickSpells.stories.d.ts → Shortcuts.stories.d.ts} +2 -2
  19. package/package.json +100 -100
  20. package/src/components/Abstractions/SlotsContainer.tsx +45 -45
  21. package/src/components/Arrow/SelectArrow.tsx +69 -69
  22. package/src/components/Arrow/img/arrow01-left-clicked.png +0 -0
  23. package/src/components/Arrow/img/arrow01-left.png +0 -0
  24. package/src/components/Arrow/img/arrow01-right-clicked.png +0 -0
  25. package/src/components/Arrow/img/arrow01-right.png +0 -0
  26. package/src/components/Arrow/img/arrow02-left-clicked.png +0 -0
  27. package/src/components/Arrow/img/arrow02-left.png +0 -0
  28. package/src/components/Arrow/img/arrow02-right-clicked.png +0 -0
  29. package/src/components/Arrow/img/arrow02-right.png +0 -0
  30. package/src/components/Button.tsx +40 -40
  31. package/src/components/Character/CharacterSelection.tsx +96 -96
  32. package/src/components/CharacterStatus/CharacterStatus.tsx +120 -120
  33. package/src/components/Chat/Chat.tsx +195 -195
  34. package/src/components/Chatdeprecated/ChatDeprecated.tsx +198 -198
  35. package/src/components/CheckButton.tsx +65 -65
  36. package/src/components/CircularController/CircularController.tsx +248 -162
  37. package/src/components/CraftBook/CraftBook.tsx +224 -224
  38. package/src/components/CraftBook/MockItems.ts +46 -46
  39. package/src/components/DraggableContainer.tsx +153 -153
  40. package/src/components/Dropdown.tsx +90 -90
  41. package/src/components/DropdownSelectorContainer.tsx +42 -42
  42. package/src/components/Equipment/EquipmentSet.tsx +190 -190
  43. package/src/components/HistoryDialog.tsx +104 -104
  44. package/src/components/Input.tsx +15 -15
  45. package/src/components/Item/Cards/ItemTooltip.tsx +33 -33
  46. package/src/components/Item/Inventory/ErrorBoundary.tsx +42 -42
  47. package/src/components/Item/Inventory/ItemContainer.tsx +210 -175
  48. package/src/components/Item/Inventory/ItemContainerTypes.ts +6 -6
  49. package/src/components/Item/Inventory/ItemQuantitySelector.tsx +138 -138
  50. package/src/components/Item/Inventory/ItemSlot.tsx +501 -467
  51. package/src/components/Item/Inventory/itemContainerHelper.ts +156 -156
  52. package/src/components/ListMenu.tsx +63 -63
  53. package/src/components/Multitab/Tab.tsx +66 -66
  54. package/src/components/Multitab/TabBody.tsx +13 -13
  55. package/src/components/Multitab/TabsContainer.tsx +97 -97
  56. package/src/components/NPCDialog/NPCDialog.tsx +121 -121
  57. package/src/components/NPCDialog/NPCDialogText.tsx +113 -113
  58. package/src/components/NPCDialog/NPCMultiDialog.tsx +159 -159
  59. package/src/components/NPCDialog/QuestionDialog/QuestionDialog.tsx +237 -237
  60. package/src/components/ProgressBar.tsx +92 -92
  61. package/src/components/PropertySelect/PropertySelect.tsx +106 -106
  62. package/src/components/QuestInfo/QuestInfo.tsx +230 -230
  63. package/src/components/QuestList.tsx +129 -129
  64. package/src/components/RPGUIContainer.tsx +47 -47
  65. package/src/components/RPGUIForceRenderStart.tsx +45 -45
  66. package/src/components/RPGUIRoot.tsx +14 -14
  67. package/src/components/RadioButton.tsx +53 -53
  68. package/src/components/RadioInput/RadioButton.tsx +96 -96
  69. package/src/components/RadioInput/RadioInput.tsx +102 -102
  70. package/src/components/RadioInput/instruments.ts +15 -15
  71. package/src/components/RangeSlider.tsx +78 -78
  72. package/src/components/RelativeListMenu.tsx +83 -83
  73. package/src/components/ScrollList.tsx +79 -79
  74. package/src/components/Shortcuts/Shortcuts.tsx +151 -0
  75. package/src/components/Shortcuts/ShortcutsSetter.tsx +132 -0
  76. package/src/components/Shortcuts/SingleShortcut.ts +62 -0
  77. package/src/components/SimpleProgressBar.tsx +62 -62
  78. package/src/components/SkillProgressBar.tsx +133 -133
  79. package/src/components/SkillsContainer.tsx +198 -198
  80. package/src/components/Spellbook/Spell.tsx +201 -201
  81. package/src/components/Spellbook/Spellbook.tsx +150 -144
  82. package/src/components/Spellbook/constants.ts +8 -12
  83. package/src/components/Spellbook/mockSpells.ts +60 -60
  84. package/src/components/StaticBook/StaticBook.tsx +103 -103
  85. package/src/components/TextArea.tsx +11 -11
  86. package/src/components/TimeWidget/DayNightPeriod/DayNightPeriod.tsx +35 -35
  87. package/src/components/TimeWidget/TimeWidget.tsx +63 -63
  88. package/src/components/TradingMenu/TradingItemRow.tsx +193 -193
  89. package/src/components/TradingMenu/TradingMenu.tsx +203 -203
  90. package/src/components/TradingMenu/items.mock.ts +96 -96
  91. package/src/components/Truncate.tsx +25 -25
  92. package/src/components/itemSelector/ItemSelector.tsx +136 -136
  93. package/src/components/shared/Column.tsx +16 -16
  94. package/src/components/shared/Ellipsis.tsx +65 -65
  95. package/src/components/shared/SpriteFromAtlas.tsx +102 -102
  96. package/src/components/typography/DynamicText.tsx +49 -49
  97. package/src/constants/uiColors.ts +20 -20
  98. package/src/constants/uiDevices.ts +3 -3
  99. package/src/constants/uiFonts.ts +12 -12
  100. package/src/hooks/useEventListener.ts +21 -21
  101. package/src/hooks/useOutsideAlerter.ts +25 -25
  102. package/src/index.tsx +40 -40
  103. package/src/libs/StringHelpers.ts +3 -3
  104. package/src/mocks/atlas/entities/entities.json +20215 -20215
  105. package/src/mocks/atlas/icons/icons.json +735 -735
  106. package/src/mocks/atlas/items/items.json +12086 -12086
  107. package/src/mocks/equipmentSet.mocks.ts +393 -393
  108. package/src/mocks/itemContainer.mocks.ts +562 -560
  109. package/src/mocks/skills.mocks.ts +128 -128
  110. package/src/stories/Arrow.stories.tsx +26 -26
  111. package/src/stories/Button.stories.tsx +36 -36
  112. package/src/stories/CharacterSelection.stories.tsx +45 -45
  113. package/src/stories/CharacterStatus.stories.tsx +29 -29
  114. package/src/stories/Chat.stories.tsx +187 -187
  115. package/src/stories/ChatDeprecated.stories.tsx +170 -170
  116. package/src/stories/CheckButton.stories.tsx +48 -48
  117. package/src/stories/CircullarController.stories.tsx +37 -33
  118. package/src/stories/CraftBook.stories.tsx +40 -40
  119. package/src/stories/DayNightPeriod.stories.tsx +27 -27
  120. package/src/stories/DraggableContainer.stories.tsx +28 -28
  121. package/src/stories/Dropdown.stories.tsx +46 -46
  122. package/src/stories/DropdownSelectorContainer.stories.tsx +41 -41
  123. package/src/stories/EquipmentSet.stories.tsx +65 -65
  124. package/src/stories/HistoryDialog.stories.tsx +61 -61
  125. package/src/stories/ItemContainer.stories.tsx +198 -124
  126. package/src/stories/ItemQuantitySelector.stories.tsx +26 -26
  127. package/src/stories/ItemSelector.stories.tsx +77 -77
  128. package/src/stories/ItemTradingComponent.stories.tsx +35 -35
  129. package/src/stories/ListMenu.stories.tsx +56 -56
  130. package/src/stories/Multitab.stories.tsx +51 -51
  131. package/src/stories/NPCDialog.stories.tsx +130 -130
  132. package/src/stories/NPCMultiDialog.stories.tsx +71 -71
  133. package/src/stories/ProgressBar.stories.tsx +23 -23
  134. package/src/stories/PropertySelect.stories.tsx +40 -40
  135. package/src/stories/QuestInfo.stories.tsx +107 -107
  136. package/src/stories/QuestList.stories.tsx +82 -82
  137. package/src/stories/RPGUIContainers.stories.tsx +42 -42
  138. package/src/stories/RadioButton.stories.tsx +49 -49
  139. package/src/stories/RadioInput.stories.tsx +34 -34
  140. package/src/stories/RangeSlider.stories.tsx +64 -64
  141. package/src/stories/ScrollList.stories.tsx +85 -85
  142. package/src/stories/Shortcuts.stories.tsx +39 -0
  143. package/src/stories/SimpleProgressBar.stories.tsx +22 -22
  144. package/src/stories/SkillProgressBar.stories.tsx +34 -34
  145. package/src/stories/SkillsContainer.stories.tsx +35 -35
  146. package/src/stories/Spellbook.stories.tsx +104 -107
  147. package/src/stories/StaticBook.stories.tsx +32 -32
  148. package/src/stories/Text.stories.tsx +42 -42
  149. package/src/stories/TimeWidget.stories.tsx +27 -27
  150. package/src/stories/TradingMenu.stories.tsx +45 -45
  151. package/src/types/eventTypes.ts +4 -4
  152. package/src/types/index.d.ts +2 -2
  153. package/dist/components/Spellbook/QuickSpells.d.ts +0 -10
  154. package/dist/components/Spellbook/SpellbookShortcuts.d.ts +0 -10
  155. package/src/components/Spellbook/QuickSpells.tsx +0 -120
  156. package/src/components/Spellbook/SpellbookShortcuts.tsx +0 -77
  157. package/src/stories/QuickSpells.stories.tsx +0 -38
@@ -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, ItemSubType, ItemContainerType, ItemType, ItemSocketEventsDisplayLabels, ActionsForInventory, ActionsForEquipmentSet, ActionsForLoot, ActionsForMapContainer, ItemRarities, getItemTextureKeyPath, ItemSlotType, isMobileOrTablet, getSPForLevel, PeriodOfDay } from '@rpg-engine/shared';
3
+ import { GRID_WIDTH, GRID_HEIGHT, ShortcutType, getItemTextureKeyPath, ItemSubType, ItemContainerType, ItemType, ItemSocketEventsDisplayLabels, ActionsForInventory, ActionsForEquipmentSet, ActionsForLoot, ActionsForMapContainer, ItemRarities, ItemSlotType, getSPForLevel, PeriodOfDay, isMobileOrTablet } 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';
@@ -33049,62 +33049,20 @@ var CheckButton = function CheckButton(_ref) {
33049
33049
  }));
33050
33050
  };
33051
33051
 
33052
- var QuickSpells = function QuickSpells(_ref) {
33053
- var quickSpells = _ref.quickSpells,
33054
- onSpellCast = _ref.onSpellCast,
33055
- mana = _ref.mana,
33056
- _ref$isBlockedCasting = _ref.isBlockedCastingByKeyboard,
33057
- isBlockedCastingByKeyboard = _ref$isBlockedCasting === void 0 ? false : _ref$isBlockedCasting;
33058
- useEffect(function () {
33059
- var handleKeyDown = function handleKeyDown(e) {
33060
- if (isBlockedCastingByKeyboard) return;
33061
- var shortcutIndex = Number(e.key) - 1;
33062
- if (shortcutIndex >= 0 && shortcutIndex <= 3) {
33063
- var shortcut = quickSpells[shortcutIndex];
33064
- if (shortcut != null && shortcut.key && mana >= (shortcut == null ? void 0 : shortcut.manaCost)) {
33065
- onSpellCast(shortcut.key);
33066
- }
33067
- }
33068
- };
33069
- window.addEventListener('keydown', handleKeyDown);
33070
- return function () {
33071
- window.removeEventListener('keydown', handleKeyDown);
33072
- };
33073
- }, [quickSpells, isBlockedCastingByKeyboard]);
33074
- return React.createElement(List, null, Array.from({
33075
- length: 4
33076
- }).map(function (_, i) {
33077
- var _quickSpells$i, _quickSpells$i2, _quickSpells$i3, _quickSpells$i4, _quickSpells$i5;
33078
- return React.createElement(SpellShortcut, {
33079
- key: i,
33080
- onPointerDown: onSpellCast.bind(null, (_quickSpells$i = quickSpells[i]) == null ? void 0 : _quickSpells$i.key),
33081
- disabled: mana < ((_quickSpells$i2 = quickSpells[i]) == null ? void 0 : _quickSpells$i2.manaCost)
33082
- }, React.createElement("span", {
33083
- className: "mana"
33084
- }, ((_quickSpells$i3 = quickSpells[i]) == null ? void 0 : _quickSpells$i3.key) && ((_quickSpells$i4 = quickSpells[i]) == null ? void 0 : _quickSpells$i4.manaCost)), React.createElement("span", {
33085
- className: "magicWords"
33086
- }, (_quickSpells$i5 = quickSpells[i]) == null ? void 0 : _quickSpells$i5.magicWords.split(' ').map(function (word) {
33087
- return word[0];
33088
- })), React.createElement("span", {
33089
- className: "keyboard"
33090
- }, i + 1));
33091
- }));
33092
- };
33093
- var SpellShortcut = /*#__PURE__*/styled.button.withConfig({
33094
- displayName: "QuickSpells__SpellShortcut",
33095
- componentId: "sc-41yq7s-0"
33096
- })(["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:", ";}.magicWords{margin-top:4px;}.keyboard{position:absolute;bottom:-5px;left:0;font-size:0.65rem;color:", ";}&:hover,&:focus{background-color:", ";}&:active{background-color:", ";}&:disabled{opacity:0.5;}"], uiColors.lightGray, uiColors.darkGray, uiColors.blue, uiColors.yellow, uiColors.darkGray, uiColors.gray);
33097
- var List = /*#__PURE__*/styled.p.withConfig({
33098
- displayName: "QuickSpells__List",
33099
- componentId: "sc-41yq7s-1"
33100
- })(["width:100%;display:flex;align-items:center;justify-content:center;gap:0.5rem;box-sizing:border-box;margin:0 !important;"]);
33052
+ var SingleShortcut = /*#__PURE__*/styled.button.withConfig({
33053
+ displayName: "SingleShortcut",
33054
+ componentId: "sc-vz5ev8-0"
33055
+ })(["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);
33101
33056
 
33102
33057
  var CircularController = function CircularController(_ref) {
33103
33058
  var onActionClick = _ref.onActionClick,
33104
33059
  onCancelClick = _ref.onCancelClick,
33105
- onSpellClick = _ref.onSpellClick,
33060
+ onShortcutClick = _ref.onShortcutClick,
33106
33061
  mana = _ref.mana,
33107
- spells = _ref.spells;
33062
+ shortcuts = _ref.shortcuts,
33063
+ inventory = _ref.inventory,
33064
+ atlasIMG = _ref.atlasIMG,
33065
+ atlasJSON = _ref.atlasJSON;
33108
33066
  var onTouchStart = function onTouchStart(e) {
33109
33067
  var target = e.target;
33110
33068
  target == null ? void 0 : target.classList.add('active');
@@ -33116,25 +33074,73 @@ var CircularController = function CircularController(_ref) {
33116
33074
  }, 100);
33117
33075
  action();
33118
33076
  };
33119
- return React.createElement(ButtonsContainer, null, React.createElement(SpellsContainer, null, Array.from({
33120
- length: 4
33121
- }).map(function (_, i) {
33122
- var variant = i === 0 ? 'top' : i === 3 ? 'bottom' : '';
33123
- var spell = spells[i];
33124
- var onSpellClickBinded = spell ? onSpellClick.bind(null, spell.key) : function () {};
33077
+ var renderShortcut = function renderShortcut(i) {
33078
+ var _shortcuts$i, _shortcuts$i2, _shortcuts$i4, _payload$manaCost;
33079
+ var variant = '';
33080
+ if (i === 0) variant = 'top';else if (i >= 3) variant = "bottom-" + (i - 3);
33081
+ var onShortcutClickBinded = ((_shortcuts$i = shortcuts[i]) == null ? void 0 : _shortcuts$i.type) !== ShortcutType.None ? onShortcutClick.bind(null, i) : function () {};
33082
+ if (((_shortcuts$i2 = shortcuts[i]) == null ? void 0 : _shortcuts$i2.type) === ShortcutType.Item) {
33083
+ var _shortcuts$i3;
33084
+ var _payload = (_shortcuts$i3 = shortcuts[i]) == null ? void 0 : _shortcuts$i3.payload;
33085
+ var itemsFromEquipment = [];
33086
+ if (inventory) {
33087
+ Object.keys(inventory.slots).forEach(function (i) {
33088
+ var _inventory$slots$inde;
33089
+ var index = parseInt(i);
33090
+ if (((_inventory$slots$inde = inventory.slots[index]) == null ? void 0 : _inventory$slots$inde.key) === (_payload == null ? void 0 : _payload.key)) {
33091
+ itemsFromEquipment.push(inventory.slots[index]);
33092
+ }
33093
+ });
33094
+ }
33095
+ var totalQty = itemsFromEquipment.reduce(function (acc, item) {
33096
+ return acc + ((item == null ? void 0 : item.stackQty) || 1);
33097
+ }, 0);
33098
+ return React.createElement(StyledShortcut, {
33099
+ key: i,
33100
+ onTouchStart: onTouchStart,
33101
+ onTouchEnd: onTouchEnd.bind(null, onShortcutClickBinded),
33102
+ disabled: false,
33103
+ className: variant
33104
+ }, _payload && React.createElement(SpriteFromAtlas, {
33105
+ atlasIMG: atlasIMG,
33106
+ atlasJSON: atlasJSON,
33107
+ spriteKey: getItemTextureKeyPath({
33108
+ key: _payload.texturePath,
33109
+ texturePath: _payload.texturePath,
33110
+ stackQty: _payload.stackQty || 1
33111
+ }, atlasJSON),
33112
+ width: 32,
33113
+ height: 32,
33114
+ imgScale: 1.4,
33115
+ imgStyle: {
33116
+ left: '4px'
33117
+ },
33118
+ containerStyle: {
33119
+ pointerEvents: 'none'
33120
+ }
33121
+ }), React.createElement("span", {
33122
+ className: "qty"
33123
+ }, totalQty));
33124
+ }
33125
+ var payload = (_shortcuts$i4 = shortcuts[i]) == null ? void 0 : _shortcuts$i4.payload;
33125
33126
  return React.createElement(StyledShortcut, {
33126
33127
  key: i,
33127
- disabled: mana < (spell == null ? void 0 : spell.manaCost),
33128
33128
  onTouchStart: onTouchStart,
33129
- onTouchEnd: onTouchEnd.bind(null, onSpellClickBinded),
33129
+ onTouchEnd: onTouchEnd.bind(null, onShortcutClickBinded),
33130
+ disabled: mana < ((_payload$manaCost = payload == null ? void 0 : payload.manaCost) != null ? _payload$manaCost : 0),
33130
33131
  className: variant
33131
33132
  }, React.createElement("span", {
33132
33133
  className: "mana"
33133
- }, (spell == null ? void 0 : spell.key) && (spell == null ? void 0 : spell.manaCost)), React.createElement("span", {
33134
+ }, payload && payload.manaCost), React.createElement("span", {
33134
33135
  className: "magicWords"
33135
- }, spell == null ? void 0 : spell.magicWords.split(' ').map(function (word) {
33136
+ }, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
33136
33137
  return word[0];
33137
33138
  })));
33139
+ };
33140
+ return React.createElement(ButtonsContainer, null, React.createElement(ShortcutsContainer, null, Array.from({
33141
+ length: 6
33142
+ }).map(function (_, i) {
33143
+ return renderShortcut(i);
33138
33144
  })), React.createElement(Button$2, {
33139
33145
  onTouchStart: onTouchStart,
33140
33146
  onTouchEnd: onTouchEnd.bind(null, onActionClick)
@@ -33148,7 +33154,7 @@ var CircularController = function CircularController(_ref) {
33148
33154
  var Button$2 = /*#__PURE__*/styled.button.withConfig({
33149
33155
  displayName: "CircularController__Button",
33150
33156
  componentId: "sc-1fewf3h-0"
33151
- })(["width:4.3rem;height:4.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;transition:background-color 0.1s;&.active{background-color:", ";}.sword{transform:rotate(-45deg);height:2.5rem;width:1.9rem;pointer-events:none;}"], uiColors.lightGray, uiColors.darkGray, uiColors.gray);
33157
+ })(["width:4.3rem;height:4.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;transition:all 0.1s;margin-top:-3rem;&.active{background-color:", ";border-color:", ";}.sword{transform:rotate(-45deg);height:2.5rem;width:1.9rem;pointer-events:none;}"], uiColors.lightGray, uiColors.darkGray, uiColors.gray, uiColors.yellow);
33152
33158
  var CancelButton = /*#__PURE__*/styled(Button$2).withConfig({
33153
33159
  displayName: "CircularController__CancelButton",
33154
33160
  componentId: "sc-1fewf3h-1"
@@ -33157,14 +33163,14 @@ var ButtonsContainer = /*#__PURE__*/styled.div.withConfig({
33157
33163
  displayName: "CircularController__ButtonsContainer",
33158
33164
  componentId: "sc-1fewf3h-2"
33159
33165
  })(["display:flex;align-items:center;justify-content:center;gap:0.5rem;"]);
33160
- var SpellsContainer = /*#__PURE__*/styled.div.withConfig({
33161
- displayName: "CircularController__SpellsContainer",
33166
+ var ShortcutsContainer = /*#__PURE__*/styled.div.withConfig({
33167
+ displayName: "CircularController__ShortcutsContainer",
33162
33168
  componentId: "sc-1fewf3h-3"
33163
- })(["display:flex;align-items:center;justify-content:center;gap:0.4rem;flex-direction:column;.top{transform:translate(93%,25%);}.bottom{transform:translate(93%,-25%);}"]);
33164
- var StyledShortcut = /*#__PURE__*/styled(SpellShortcut).withConfig({
33169
+ })(["display:flex;align-items:center;justify-content:center;gap:0.5rem;flex-direction:column;margin-top:3rem;.top{transform:translate(93%,25%);}.bottom-0{transform:translate(93%,-25%);}.bottom-1{transform:translate(-120%,calc(-5.5rem));}.bottom-2{transform:translate(-30%,calc(-5.5rem - 25%));}"]);
33170
+ var StyledShortcut = /*#__PURE__*/styled(SingleShortcut).withConfig({
33165
33171
  displayName: "CircularController__StyledShortcut",
33166
33172
  componentId: "sc-1fewf3h-4"
33167
- })(["width:2.5rem;height:2.5rem;transition:background-color 0.1s;.mana{font-size:0.5rem;}&:hover,&:focus,&:active{background-color:", ";}&.active{background-color:", ";}"], uiColors.lightGray, uiColors.gray);
33173
+ })(["width:2.5rem;height:2.5rem;transition:all 0.1s;.mana,.qty{font-size:0.5rem;}&:hover,&:focus,&:active{background-color:", ";}&.active{background-color:", ";border-color:", ";}"], uiColors.lightGray, uiColors.gray, uiColors.yellow);
33168
33174
 
33169
33175
  function useOutsideClick(ref, id) {
33170
33176
  useEffect(function () {
@@ -33729,7 +33735,8 @@ var ItemSlot = /*#__PURE__*/observer(function (_ref) {
33729
33735
  checkIfItemCanBeMoved = _ref.checkIfItemCanBeMoved,
33730
33736
  openQuantitySelector = _ref.openQuantitySelector,
33731
33737
  checkIfItemShouldDragEnd = _ref.checkIfItemShouldDragEnd,
33732
- dragScale = _ref.dragScale;
33738
+ dragScale = _ref.dragScale,
33739
+ isSelectingShortcut = _ref.isSelectingShortcut;
33733
33740
  var _useState = useState(false),
33734
33741
  isTooltipVisible = _useState[0],
33735
33742
  setTooltipVisible = _useState[1];
@@ -33893,12 +33900,14 @@ var ItemSlot = /*#__PURE__*/observer(function (_ref) {
33893
33900
  bubbles: true
33894
33901
  });
33895
33902
  (_document$elementFrom = document.elementFromPoint(clientX, clientY)) == null ? void 0 : _document$elementFrom.dispatchEvent(simulatedEvent);
33896
- }
33903
+ },
33904
+ isSelectingShortcut: isSelectingShortcut && ((item == null ? void 0 : item.type) === ItemType.Consumable || (item == null ? void 0 : item.type) === ItemType.Tool)
33897
33905
  }, React.createElement(Draggable, {
33906
+ axis: isSelectingShortcut ? 'none' : 'both',
33898
33907
  defaultClassName: item ? 'draggable' : 'empty-slot',
33899
33908
  scale: dragScale,
33900
33909
  onStop: function onStop(e, data) {
33901
- if (wasDragged && item) {
33910
+ if (wasDragged && item && !isSelectingShortcut) {
33902
33911
  var _e$target;
33903
33912
  //@ts-ignore
33904
33913
  var classes = Array.from((_e$target = e.target) == null ? void 0 : _e$target.classList);
@@ -33936,12 +33945,12 @@ var ItemSlot = /*#__PURE__*/observer(function (_ref) {
33936
33945
  }
33937
33946
  }, 100);
33938
33947
  } else if (item) {
33939
- if (!isContextMenuDisabled) setIsContextMenuVisible(!isContextMenuVisible);
33948
+ if (!isContextMenuDisabled && !isSelectingShortcut) setIsContextMenuVisible(!isContextMenuVisible);
33940
33949
  onPointerDown(item.type, containerType, item);
33941
33950
  }
33942
33951
  },
33943
33952
  onStart: function onStart() {
33944
- if (!item) {
33953
+ if (!item || isSelectingShortcut) {
33945
33954
  return;
33946
33955
  }
33947
33956
  if (onDragStart) {
@@ -34003,7 +34012,7 @@ var rarityColor = function rarityColor(item) {
34003
34012
  var Container$a = /*#__PURE__*/styled.div.withConfig({
34004
34013
  displayName: "ItemSlot__Container",
34005
34014
  componentId: "sc-l2j5ef-0"
34006
- })(["margin:0.1rem;.sprite-from-atlas-img{position:relative;top:1.5rem;left:1.5rem;border-color:", ";box-shadow:", " inset,", ";}position:relative;"], function (_ref2) {
34015
+ })(["margin:0.1rem;.sprite-from-atlas-img{position:relative;top:1.5rem;left:1.5rem;border-color:", ";box-shadow:", " inset,", ";}position:relative;&::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-radius:12px;pointer-events:none;animation:", ";@keyframes bg-color-change{0%{background-color:rgba(255 255 255 / 0.5);}50%{background-color:transparent;}100%{background-color:rgba(255 255 255 / 0.5);}}}"], function (_ref2) {
34007
34016
  var item = _ref2.item;
34008
34017
  return rarityColor(item);
34009
34018
  }, function (_ref3) {
@@ -34012,6 +34021,9 @@ var Container$a = /*#__PURE__*/styled.div.withConfig({
34012
34021
  }, function (_ref4) {
34013
34022
  var item = _ref4.item;
34014
34023
  return "0 0 4px 3px " + rarityColor(item);
34024
+ }, function (_ref5) {
34025
+ var isSelectingShortcut = _ref5.isSelectingShortcut;
34026
+ return isSelectingShortcut ? 'bg-color-change 1s infinite' : 'none';
34015
34027
  });
34016
34028
  var ItemContainer = /*#__PURE__*/styled.div.withConfig({
34017
34029
  displayName: "ItemSlot__ItemContainer",
@@ -34122,546 +34134,6 @@ var EquipmentColumn = /*#__PURE__*/styled.div.withConfig({
34122
34134
  componentId: "sc-1wuddg2-1"
34123
34135
  })(["display:flex;justify-content:center;flex-wrap:wrap;flex-direction:column;touch-action:none;"]);
34124
34136
 
34125
- var IS_MOBILE_OR_TABLET = /*#__PURE__*/isMobileOrTablet();
34126
-
34127
- var chunkString = function chunkString(str, length) {
34128
- return str.match(new RegExp('.{1,' + length + '}', 'g'));
34129
- };
34130
-
34131
- var DynamicText = function DynamicText(_ref) {
34132
- var text = _ref.text,
34133
- onFinish = _ref.onFinish,
34134
- onStart = _ref.onStart;
34135
- var _useState = useState(''),
34136
- textState = _useState[0],
34137
- setTextState = _useState[1];
34138
- useEffect(function () {
34139
- var i = 0;
34140
- var interval = setInterval(function () {
34141
- // on every interval, show one more character
34142
- if (i === 0) {
34143
- if (onStart) {
34144
- onStart();
34145
- }
34146
- }
34147
- if (i < text.length) {
34148
- setTextState(text.substring(0, i + 1));
34149
- i++;
34150
- } else {
34151
- clearInterval(interval);
34152
- if (onFinish) {
34153
- onFinish();
34154
- }
34155
- }
34156
- }, 50);
34157
- return function () {
34158
- clearInterval(interval);
34159
- };
34160
- }, [text]);
34161
- return React.createElement(TextContainer, null, textState);
34162
- };
34163
- var TextContainer = /*#__PURE__*/styled.p.withConfig({
34164
- displayName: "DynamicText__TextContainer",
34165
- componentId: "sc-1ggl9nd-0"
34166
- })(["font-size:0.7rem !important;color:white;text-shadow:1px 1px 0px #000000;letter-spacing:1.2px;word-break:normal;"]);
34167
-
34168
- var img$6 = 'data:image/gif;base64,R0lGODlhEAAQAPIAAAAAABQYLiw1TUBJc2hvmQAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAM9CLrc/lCFGSKYJJP5AhlguDnBMIVgxXgmJapSSp3mKs/pKrT0IMCXUk+2Cgh2oSOnaDz+lswZpSOFUq2KBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAIzhI+py90Bg4OjDrjCELxfFQhQx0mIJkaeaYRp5LJADMdnqXbyOJLYTdKBejjZoRaZJBMFACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAABAAEAAAAjKEj6nL7Y+CDE6OO+QKQ/ifKYEgfR4VddPohQe7lmR0xidNTib65uacYP2AQWGuMlEUAAA7';
34169
-
34170
- var img$7 = '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';
34171
-
34172
- var NPCDialogText = function NPCDialogText(_ref) {
34173
- var text = _ref.text,
34174
- onClose = _ref.onClose,
34175
- onEndStep = _ref.onEndStep,
34176
- onStartStep = _ref.onStartStep,
34177
- type = _ref.type;
34178
- var windowSize = useRef([window.innerWidth, window.innerHeight]);
34179
- function maxCharacters(width) {
34180
- // Set the font size to 16 pixels
34181
- var fontSize = 11.2;
34182
- // Calculate the number of characters that can fit in one line
34183
- var charactersPerLine = Math.floor(width / 2 / fontSize);
34184
- // Calculate the number of lines that can fit in the div
34185
- var linesPerDiv = Math.floor(180 / fontSize);
34186
- // Calculate the maximum number of characters that can fit in the div
34187
- var maxCharacters = charactersPerLine * linesPerDiv;
34188
- // Return the maximum number of characters
34189
- return Math.round(maxCharacters / 5);
34190
- }
34191
- var textChunks = chunkString(text, maxCharacters(windowSize.current[0]));
34192
- var _useState = useState(0),
34193
- chunkIndex = _useState[0],
34194
- setChunkIndex = _useState[1];
34195
- var onHandleSpacePress = function onHandleSpacePress(event) {
34196
- if (event.code === 'Space') {
34197
- goToNextStep();
34198
- }
34199
- };
34200
- var goToNextStep = function goToNextStep() {
34201
- var hasNextChunk = (textChunks == null ? void 0 : textChunks[chunkIndex + 1]) || false;
34202
- if (hasNextChunk) {
34203
- setChunkIndex(function (prev) {
34204
- return prev + 1;
34205
- });
34206
- } else {
34207
- // if there's no more text chunks, close the dialog
34208
- onClose();
34209
- }
34210
- };
34211
- useEffect(function () {
34212
- document.addEventListener('keydown', onHandleSpacePress);
34213
- return function () {
34214
- return document.removeEventListener('keydown', onHandleSpacePress);
34215
- };
34216
- }, [chunkIndex]);
34217
- var _useState2 = useState(false),
34218
- showGoNextIndicator = _useState2[0],
34219
- setShowGoNextIndicator = _useState2[1];
34220
- return React.createElement(Container$b, null, React.createElement(DynamicText, {
34221
- text: (textChunks == null ? void 0 : textChunks[chunkIndex]) || '',
34222
- onFinish: function onFinish() {
34223
- setShowGoNextIndicator(true);
34224
- onEndStep && onEndStep();
34225
- },
34226
- onStart: function onStart() {
34227
- setShowGoNextIndicator(false);
34228
- onStartStep && onStartStep();
34229
- }
34230
- }), showGoNextIndicator && React.createElement(PressSpaceIndicator, {
34231
- right: type === NPCDialogType.TextOnly ? '1rem' : '10.5rem',
34232
- src: IS_MOBILE_OR_TABLET ? img$6 : img$7,
34233
- onPointerDown: function onPointerDown() {
34234
- goToNextStep();
34235
- }
34236
- }));
34237
- };
34238
- var Container$b = /*#__PURE__*/styled.div.withConfig({
34239
- displayName: "NPCDialogText__Container",
34240
- componentId: "sc-1cxkdh9-0"
34241
- })([""]);
34242
- var PressSpaceIndicator = /*#__PURE__*/styled.img.withConfig({
34243
- displayName: "NPCDialogText__PressSpaceIndicator",
34244
- componentId: "sc-1cxkdh9-1"
34245
- })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref2) {
34246
- var right = _ref2.right;
34247
- return right;
34248
- });
34249
-
34250
- //@ts-ignore
34251
- var useEventListener = function useEventListener(type, handler, el) {
34252
- if (el === void 0) {
34253
- el = window;
34254
- }
34255
- var savedHandler = React.useRef();
34256
- React.useEffect(function () {
34257
- savedHandler.current = handler;
34258
- }, [handler]);
34259
- React.useEffect(function () {
34260
- //@ts-ignore
34261
- var listener = function listener(e) {
34262
- return savedHandler.current(e);
34263
- };
34264
- el.addEventListener(type, listener);
34265
- return function () {
34266
- el.removeEventListener(type, listener);
34267
- };
34268
- }, [type, el]);
34269
- };
34270
-
34271
- var QuestionDialog = function QuestionDialog(_ref) {
34272
- var questions = _ref.questions,
34273
- answers = _ref.answers,
34274
- onClose = _ref.onClose;
34275
- var _useState = useState(questions[0]),
34276
- currentQuestion = _useState[0],
34277
- setCurrentQuestion = _useState[1];
34278
- var _useState2 = useState(false),
34279
- canShowAnswers = _useState2[0],
34280
- setCanShowAnswers = _useState2[1];
34281
- var onGetFirstAnswer = function onGetFirstAnswer() {
34282
- if (!currentQuestion.answerIds || currentQuestion.answerIds.length === 0) {
34283
- return null;
34284
- }
34285
- var firstAnswerId = currentQuestion.answerIds[0];
34286
- return answers.find(function (answer) {
34287
- return answer.id === firstAnswerId;
34288
- });
34289
- };
34290
- var _useState3 = useState(onGetFirstAnswer()),
34291
- currentAnswer = _useState3[0],
34292
- setCurrentAnswer = _useState3[1];
34293
- useEffect(function () {
34294
- setCurrentAnswer(onGetFirstAnswer());
34295
- }, [currentQuestion]);
34296
- var onGetAnswers = function onGetAnswers(answerIds) {
34297
- return answerIds.map(function (answerId) {
34298
- return answers.find(function (answer) {
34299
- return answer.id === answerId;
34300
- });
34301
- });
34302
- };
34303
- var onKeyPress = function onKeyPress(e) {
34304
- switch (e.key) {
34305
- case 'ArrowDown':
34306
- // select next answer, if any.
34307
- // if no next answer, select first answer
34308
- // const nextAnswer = onGetAnswers(currentQuestion.answerIds!).find(
34309
- // (answer) => answer?.id === currentAnswer!.id + 1
34310
- // );
34311
- var nextAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
34312
- return (answer == null ? void 0 : answer.id) === currentAnswer.id + 1;
34313
- });
34314
- var nextAnswerID = currentQuestion.answerIds[nextAnswerIndex];
34315
- var nextAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
34316
- return (answer == null ? void 0 : answer.id) === nextAnswerID;
34317
- });
34318
- setCurrentAnswer(nextAnswer || onGetFirstAnswer());
34319
- break;
34320
- case 'ArrowUp':
34321
- // select previous answer, if any.
34322
- // if no previous answer, select last answer
34323
- var previousAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
34324
- return (answer == null ? void 0 : answer.id) === currentAnswer.id - 1;
34325
- });
34326
- var previousAnswerID = currentQuestion.answerIds && currentQuestion.answerIds[previousAnswerIndex];
34327
- var previousAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
34328
- return (answer == null ? void 0 : answer.id) === previousAnswerID;
34329
- });
34330
- if (previousAnswer) {
34331
- setCurrentAnswer(previousAnswer);
34332
- } else {
34333
- setCurrentAnswer(onGetAnswers(currentQuestion.answerIds).pop());
34334
- }
34335
- break;
34336
- case 'Enter':
34337
- setCanShowAnswers(false);
34338
- if (!(currentAnswer != null && currentAnswer.nextQuestionId)) {
34339
- onClose();
34340
- return;
34341
- } else {
34342
- setCurrentQuestion(questions.find(function (question) {
34343
- return question.id === currentAnswer.nextQuestionId;
34344
- }));
34345
- }
34346
- break;
34347
- }
34348
- };
34349
- useEventListener('keydown', onKeyPress);
34350
- var onAnswerClick = function onAnswerClick(answer) {
34351
- setCanShowAnswers(false);
34352
- if (answer.nextQuestionId) {
34353
- // if there is a next question, go to it
34354
- setCurrentQuestion(questions.find(function (question) {
34355
- return question.id === answer.nextQuestionId;
34356
- }));
34357
- } else {
34358
- // else, finish dialog!
34359
- onClose();
34360
- }
34361
- };
34362
- var onRenderCurrentAnswers = function onRenderCurrentAnswers() {
34363
- var answerIds = currentQuestion.answerIds;
34364
- if (!answerIds) {
34365
- return null;
34366
- }
34367
- var answers = onGetAnswers(answerIds);
34368
- if (!answers) {
34369
- return null;
34370
- }
34371
- return answers.map(function (answer) {
34372
- var isSelected = (currentAnswer == null ? void 0 : currentAnswer.id) === (answer == null ? void 0 : answer.id);
34373
- var selectedColor = isSelected ? 'yellow' : 'white';
34374
- if (answer) {
34375
- return React.createElement(AnswerRow, {
34376
- key: "answer_" + answer.id
34377
- }, React.createElement(AnswerSelectedIcon, {
34378
- color: selectedColor
34379
- }, isSelected ? 'X' : null), React.createElement(Answer, {
34380
- key: answer.id,
34381
- onPointerDown: function onPointerDown() {
34382
- return onAnswerClick(answer);
34383
- },
34384
- color: selectedColor
34385
- }, answer.text));
34386
- }
34387
- return null;
34388
- });
34389
- };
34390
- return React.createElement(Container$c, null, React.createElement(QuestionContainer, null, React.createElement(DynamicText, {
34391
- text: currentQuestion.text,
34392
- onStart: function onStart() {
34393
- return setCanShowAnswers(false);
34394
- },
34395
- onFinish: function onFinish() {
34396
- return setCanShowAnswers(true);
34397
- }
34398
- })), canShowAnswers && React.createElement(AnswersContainer, null, onRenderCurrentAnswers()));
34399
- };
34400
- var Container$c = /*#__PURE__*/styled.div.withConfig({
34401
- displayName: "QuestionDialog__Container",
34402
- componentId: "sc-bxc5u0-0"
34403
- })(["display:flex;word-break:break-all;box-sizing:border-box;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;"]);
34404
- var QuestionContainer = /*#__PURE__*/styled.div.withConfig({
34405
- displayName: "QuestionDialog__QuestionContainer",
34406
- componentId: "sc-bxc5u0-1"
34407
- })(["flex:100%;width:100%;"]);
34408
- var AnswersContainer = /*#__PURE__*/styled.div.withConfig({
34409
- displayName: "QuestionDialog__AnswersContainer",
34410
- componentId: "sc-bxc5u0-2"
34411
- })(["flex:100%;"]);
34412
- var Answer = /*#__PURE__*/styled.p.withConfig({
34413
- displayName: "QuestionDialog__Answer",
34414
- componentId: "sc-bxc5u0-3"
34415
- })(["flex:auto;color:", " !important;font-size:0.65rem !important;background:inherit;border:none;"], function (props) {
34416
- return props.color;
34417
- });
34418
- var AnswerSelectedIcon = /*#__PURE__*/styled.span.withConfig({
34419
- displayName: "QuestionDialog__AnswerSelectedIcon",
34420
- componentId: "sc-bxc5u0-4"
34421
- })(["flex:5% 0 0;color:", " !important;"], function (props) {
34422
- return props.color;
34423
- });
34424
- var AnswerRow = /*#__PURE__*/styled.div.withConfig({
34425
- displayName: "QuestionDialog__AnswerRow",
34426
- componentId: "sc-bxc5u0-5"
34427
- })(["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;}"]);
34428
-
34429
- var img$8 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAP1BMVEUAAAA7FyVxQTsUEBPj5v////+5v/tCJDOOUlIiHBr1oJfptaO6dWr61rhzFy1bMTjoanMUNGQoXMQkn97+88DQ3IhAAAAAAXRSTlMAQObYZgAAAAFiS0dEBfhv6ccAAAAHdElNRQfmAw4VOBC7c5LYAAABM0lEQVQ4y3XRi5KDIAwFUAUkbrBgpP//rZsHVHQ009qZ3tPboNN0zmwzvcw8O5sX4y0NOg/Et3jRCXF+ziULorjkOQ9gE24dvuUAzq08DiCO4pe3WN7zCP56vmpubBReQYC11YPS86ySxxCsAABTSgjb5m4g8nfbxvFHBkH2OEEvAItVuCuIsgGgl+Gcr7kDXxhEAx55A2SQEEeQeZwUaIP8Tbo05B0RFPhItAjgj1w6cDnhLluDj+Egkh3pCCP4pKQAw1IPO0W9Nti5gW9RP2dKA3BZd2Dw+baYX+Nt4GM00O4S3kEpF6Alb2Bv4LeC3kkGfAW0/p0RPoJVKr63ghHsKuRh5DIUKOAlGOwrtt9fQekAEfmhZslHUDoglB0zjfkJigN7UnTQQ4GBWomoVhEN/AOPSBh38gy+fwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wMy0xNFQyMTo1NTo1MSswMDowMJcc0eEAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDMtMTRUMjE6NTU6NTErMDA6MDDmQWldAAAAAElFTkSuQmCC';
34430
-
34431
- var NPCDialogType;
34432
- (function (NPCDialogType) {
34433
- NPCDialogType["TextOnly"] = "TextOnly";
34434
- NPCDialogType["TextAndThumbnail"] = "TextAndThumbnail";
34435
- })(NPCDialogType || (NPCDialogType = {}));
34436
- var NPCDialog = function NPCDialog(_ref) {
34437
- var text = _ref.text,
34438
- type = _ref.type,
34439
- _onClose = _ref.onClose,
34440
- imagePath = _ref.imagePath,
34441
- _ref$isQuestionDialog = _ref.isQuestionDialog,
34442
- isQuestionDialog = _ref$isQuestionDialog === void 0 ? false : _ref$isQuestionDialog,
34443
- questions = _ref.questions,
34444
- answers = _ref.answers;
34445
- return React.createElement(RPGUIContainer, {
34446
- type: RPGUIContainerTypes.FramedGold,
34447
- width: isQuestionDialog ? '600px' : '80%',
34448
- height: '180px'
34449
- }, isQuestionDialog && questions && answers ? React.createElement(React.Fragment, null, React.createElement(TextContainer$1, {
34450
- flex: type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'
34451
- }, React.createElement(QuestionDialog, {
34452
- questions: questions,
34453
- answers: answers,
34454
- onClose: function onClose() {
34455
- if (_onClose) {
34456
- _onClose();
34457
- }
34458
- }
34459
- })), type === NPCDialogType.TextAndThumbnail && React.createElement(ThumbnailContainer, null, React.createElement(NPCThumbnail, {
34460
- src: imagePath || img$8
34461
- }))) : React.createElement(React.Fragment, null, React.createElement(Container$d, null, React.createElement(TextContainer$1, {
34462
- flex: type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'
34463
- }, React.createElement(NPCDialogText, {
34464
- type: type,
34465
- text: text || 'No text provided.',
34466
- onClose: function onClose() {
34467
- if (_onClose) {
34468
- _onClose();
34469
- }
34470
- }
34471
- })), type === NPCDialogType.TextAndThumbnail && React.createElement(ThumbnailContainer, null, React.createElement(NPCThumbnail, {
34472
- src: imagePath || img$8
34473
- })))));
34474
- };
34475
- var Container$d = /*#__PURE__*/styled.div.withConfig({
34476
- displayName: "NPCDialog__Container",
34477
- componentId: "sc-1b4aw74-0"
34478
- })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
34479
- var TextContainer$1 = /*#__PURE__*/styled.div.withConfig({
34480
- displayName: "NPCDialog__TextContainer",
34481
- componentId: "sc-1b4aw74-1"
34482
- })(["flex:", " 0 0;width:355px;"], function (_ref2) {
34483
- var flex = _ref2.flex;
34484
- return flex;
34485
- });
34486
- var ThumbnailContainer = /*#__PURE__*/styled.div.withConfig({
34487
- displayName: "NPCDialog__ThumbnailContainer",
34488
- componentId: "sc-1b4aw74-2"
34489
- })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
34490
- var NPCThumbnail = /*#__PURE__*/styled.img.withConfig({
34491
- displayName: "NPCDialog__NPCThumbnail",
34492
- componentId: "sc-1b4aw74-3"
34493
- })(["image-rendering:pixelated;height:128px;width:128px;"]);
34494
-
34495
- var ImgSide;
34496
- (function (ImgSide) {
34497
- ImgSide["right"] = "right";
34498
- ImgSide["left"] = "left";
34499
- })(ImgSide || (ImgSide = {}));
34500
- var NPCMultiDialog = function NPCMultiDialog(_ref) {
34501
- var _textAndTypeArray$sli;
34502
- var _onClose = _ref.onClose,
34503
- textAndTypeArray = _ref.textAndTypeArray;
34504
- var _useState = useState(false),
34505
- showGoNextIndicator = _useState[0],
34506
- setShowGoNextIndicator = _useState[1];
34507
- var _useState2 = useState(0),
34508
- slide = _useState2[0],
34509
- setSlide = _useState2[1];
34510
- var onHandleSpacePress = function onHandleSpacePress(event) {
34511
- if (event.code === 'Space') {
34512
- if (slide < (textAndTypeArray == null ? void 0 : textAndTypeArray.length) - 1) {
34513
- setSlide(function (prev) {
34514
- return prev + 1;
34515
- });
34516
- } else {
34517
- // if there's no more text chunks, close the dialog
34518
- _onClose();
34519
- }
34520
- }
34521
- };
34522
- useEffect(function () {
34523
- document.addEventListener('keydown', onHandleSpacePress);
34524
- return function () {
34525
- return document.removeEventListener('keydown', onHandleSpacePress);
34526
- };
34527
- }, [slide]);
34528
- return React.createElement(RPGUIContainer, {
34529
- type: RPGUIContainerTypes.FramedGold,
34530
- width: '50%',
34531
- height: '180px'
34532
- }, React.createElement(React.Fragment, null, React.createElement(Container$e, null, ((_textAndTypeArray$sli = textAndTypeArray[slide]) == null ? void 0 : _textAndTypeArray$sli.imageSide) === 'right' && React.createElement(React.Fragment, null, React.createElement(TextContainer$2, {
34533
- flex: '70%'
34534
- }, React.createElement(NPCDialogText, {
34535
- onStartStep: function onStartStep() {
34536
- return setShowGoNextIndicator(false);
34537
- },
34538
- onEndStep: function onEndStep() {
34539
- return setShowGoNextIndicator(true);
34540
- },
34541
- text: textAndTypeArray[slide].text || 'No text provided.',
34542
- onClose: function onClose() {
34543
- if (_onClose) {
34544
- _onClose();
34545
- }
34546
- }
34547
- })), React.createElement(ThumbnailContainer$1, null, React.createElement(NPCThumbnail$1, {
34548
- src: textAndTypeArray[slide].imagePath || img$8
34549
- })), showGoNextIndicator && React.createElement(PressSpaceIndicator$1, {
34550
- right: '10.5rem',
34551
- src: img$7
34552
- })), textAndTypeArray[slide].imageSide === 'left' && React.createElement(React.Fragment, null, React.createElement(ThumbnailContainer$1, null, React.createElement(NPCThumbnail$1, {
34553
- src: textAndTypeArray[slide].imagePath || img$8
34554
- })), React.createElement(TextContainer$2, {
34555
- flex: '70%'
34556
- }, React.createElement(NPCDialogText, {
34557
- onStartStep: function onStartStep() {
34558
- return setShowGoNextIndicator(false);
34559
- },
34560
- onEndStep: function onEndStep() {
34561
- return setShowGoNextIndicator(true);
34562
- },
34563
- text: textAndTypeArray[slide].text || 'No text provided.',
34564
- onClose: function onClose() {
34565
- if (_onClose) {
34566
- _onClose();
34567
- }
34568
- }
34569
- })), showGoNextIndicator && React.createElement(PressSpaceIndicator$1, {
34570
- right: '1rem',
34571
- src: img$7
34572
- }))), ")"));
34573
- };
34574
- var Container$e = /*#__PURE__*/styled.div.withConfig({
34575
- displayName: "NPCMultiDialog__Container",
34576
- componentId: "sc-rvu5wg-0"
34577
- })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
34578
- var TextContainer$2 = /*#__PURE__*/styled.div.withConfig({
34579
- displayName: "NPCMultiDialog__TextContainer",
34580
- componentId: "sc-rvu5wg-1"
34581
- })(["flex:", " 0 0;width:355px;"], function (_ref2) {
34582
- var flex = _ref2.flex;
34583
- return flex;
34584
- });
34585
- var ThumbnailContainer$1 = /*#__PURE__*/styled.div.withConfig({
34586
- displayName: "NPCMultiDialog__ThumbnailContainer",
34587
- componentId: "sc-rvu5wg-2"
34588
- })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
34589
- var NPCThumbnail$1 = /*#__PURE__*/styled.img.withConfig({
34590
- displayName: "NPCMultiDialog__NPCThumbnail",
34591
- componentId: "sc-rvu5wg-3"
34592
- })(["image-rendering:pixelated;height:128px;width:128px;"]);
34593
- var PressSpaceIndicator$1 = /*#__PURE__*/styled.img.withConfig({
34594
- displayName: "NPCMultiDialog__PressSpaceIndicator",
34595
- componentId: "sc-rvu5wg-4"
34596
- })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref3) {
34597
- var right = _ref3.right;
34598
- return right;
34599
- });
34600
-
34601
- var HistoryDialog = function HistoryDialog(_ref) {
34602
- var backgroundImgPath = _ref.backgroundImgPath,
34603
- fullCoverBackground = _ref.fullCoverBackground,
34604
- questions = _ref.questions,
34605
- answers = _ref.answers,
34606
- text = _ref.text,
34607
- imagePath = _ref.imagePath,
34608
- textAndTypeArray = _ref.textAndTypeArray,
34609
- onClose = _ref.onClose;
34610
- var _useState = useState(0),
34611
- img = _useState[0],
34612
- setImage = _useState[1];
34613
- var onHandleSpacePress = function onHandleSpacePress(event) {
34614
- if (event.code === 'Space') {
34615
- if (img < (backgroundImgPath == null ? void 0 : backgroundImgPath.length) - 1) {
34616
- setImage(function (prev) {
34617
- return prev + 1;
34618
- });
34619
- } else {
34620
- // if there's no more text chunks, close the dialog
34621
- onClose();
34622
- }
34623
- }
34624
- };
34625
- useEffect(function () {
34626
- document.addEventListener('keydown', onHandleSpacePress);
34627
- return function () {
34628
- return document.removeEventListener('keydown', onHandleSpacePress);
34629
- };
34630
- }, [backgroundImgPath]);
34631
- return React.createElement(BackgroundContainer, {
34632
- imgPath: backgroundImgPath[img],
34633
- fullImg: fullCoverBackground
34634
- }, React.createElement(DialogContainer, null, textAndTypeArray ? React.createElement(NPCMultiDialog, {
34635
- textAndTypeArray: textAndTypeArray,
34636
- onClose: onClose
34637
- }) : questions && answers ? React.createElement(QuestionDialog, {
34638
- questions: questions,
34639
- answers: answers,
34640
- onClose: onClose
34641
- }) : text && imagePath ? React.createElement(NPCDialog, {
34642
- text: text,
34643
- imagePath: imagePath,
34644
- onClose: onClose,
34645
- type: NPCDialogType.TextAndThumbnail
34646
- }) : React.createElement(NPCDialog, {
34647
- text: text,
34648
- onClose: onClose,
34649
- type: NPCDialogType.TextOnly
34650
- })));
34651
- };
34652
- var BackgroundContainer = /*#__PURE__*/styled.div.withConfig({
34653
- displayName: "HistoryDialog__BackgroundContainer",
34654
- componentId: "sc-u6oe75-0"
34655
- })(["width:100%;height:100%;background-image:url(", ");background-size:", ";display:flex;justify-content:space-evenly;align-items:center;"], function (props) {
34656
- return props.imgPath;
34657
- }, function (props) {
34658
- return props.imgPath ? 'cover' : 'auto';
34659
- });
34660
- var DialogContainer = /*#__PURE__*/styled.div.withConfig({
34661
- displayName: "HistoryDialog__DialogContainer",
34662
- componentId: "sc-u6oe75-1"
34663
- })(["display:flex;justify-content:center;padding-top:200px;"]);
34664
-
34665
34137
  var SlotsContainer = function SlotsContainer(_ref) {
34666
34138
  var children = _ref.children,
34667
34139
  title = _ref.title,
@@ -34677,8 +34149,8 @@ var SlotsContainer = function SlotsContainer(_ref) {
34677
34149
  onClose();
34678
34150
  }
34679
34151
  },
34680
- width: "330px",
34681
- cancelDrag: ".item-container-body",
34152
+ width: "400px",
34153
+ cancelDrag: ".item-container-body, #shortcuts_list",
34682
34154
  onPositionChange: function onPositionChange(_ref2) {
34683
34155
  var x = _ref2.x,
34684
34156
  y = _ref2.y;
@@ -34849,6 +34321,72 @@ var CloseButton$2 = /*#__PURE__*/styled.div.withConfig({
34849
34321
  componentId: "sc-yfdtpn-3"
34850
34322
  })(["position:absolute;top:3px;right:0px;color:white;z-index:22;font-size:0.8rem;"]);
34851
34323
 
34324
+ var ShortcutsSetter = function ShortcutsSetter(_ref) {
34325
+ var setSettingShortcutIndex = _ref.setSettingShortcutIndex,
34326
+ settingShortcutIndex = _ref.settingShortcutIndex,
34327
+ shortcuts = _ref.shortcuts,
34328
+ removeShortcut = _ref.removeShortcut,
34329
+ atlasJSON = _ref.atlasJSON,
34330
+ atlasIMG = _ref.atlasIMG;
34331
+ var getContent = function getContent(index) {
34332
+ var _shortcuts$index, _shortcuts$index3;
34333
+ if (((_shortcuts$index = shortcuts[index]) == null ? void 0 : _shortcuts$index.type) === ShortcutType.Item) {
34334
+ var _shortcuts$index2;
34335
+ var _payload = (_shortcuts$index2 = shortcuts[index]) == null ? void 0 : _shortcuts$index2.payload;
34336
+ if (!_payload) return null;
34337
+ return React.createElement(SpriteFromAtlas, {
34338
+ atlasIMG: atlasIMG,
34339
+ atlasJSON: atlasJSON,
34340
+ spriteKey: getItemTextureKeyPath({
34341
+ key: _payload.texturePath,
34342
+ texturePath: _payload.texturePath,
34343
+ stackQty: _payload.stackQty || 1
34344
+ }, atlasJSON),
34345
+ width: 32,
34346
+ height: 32,
34347
+ imgScale: 1.6,
34348
+ imgStyle: {
34349
+ left: '5px'
34350
+ }
34351
+ });
34352
+ }
34353
+ var payload = (_shortcuts$index3 = shortcuts[index]) == null ? void 0 : _shortcuts$index3.payload;
34354
+ return React.createElement("span", null, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
34355
+ return word[0];
34356
+ }));
34357
+ };
34358
+ return React.createElement(Container$b, null, React.createElement("p", null, "Shortcuts:"), React.createElement(List, {
34359
+ id: "shortcuts_list"
34360
+ }, Array.from({
34361
+ length: 6
34362
+ }).map(function (_, i) {
34363
+ return React.createElement(Shortcut, {
34364
+ key: i,
34365
+ onPointerDown: function onPointerDown() {
34366
+ removeShortcut(i);
34367
+ if (!shortcuts[i] || shortcuts[i].type === ShortcutType.None) setSettingShortcutIndex(i);
34368
+ },
34369
+ disabled: settingShortcutIndex !== -1 && settingShortcutIndex !== i,
34370
+ isBeingSet: settingShortcutIndex === i
34371
+ }, getContent(i));
34372
+ })));
34373
+ };
34374
+ var Container$b = /*#__PURE__*/styled.div.withConfig({
34375
+ displayName: "ShortcutsSetter__Container",
34376
+ componentId: "sc-xuouuf-0"
34377
+ })(["p{margin:0;margin-left:0.5rem;}"]);
34378
+ var Shortcut = /*#__PURE__*/styled.button.withConfig({
34379
+ displayName: "ShortcutsSetter__Shortcut",
34380
+ componentId: "sc-xuouuf-1"
34381
+ })(["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) {
34382
+ var isBeingSet = _ref2.isBeingSet;
34383
+ return isBeingSet ? uiColors.yellow : uiColors.darkGray;
34384
+ }, uiColors.darkGray, uiColors.gray);
34385
+ var List = /*#__PURE__*/styled.div.withConfig({
34386
+ displayName: "ShortcutsSetter__List",
34387
+ componentId: "sc-xuouuf-2"
34388
+ })(["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;"]);
34389
+
34852
34390
  var ItemContainer$1 = function ItemContainer(_ref) {
34853
34391
  var itemContainer = _ref.itemContainer,
34854
34392
  onClose = _ref.onClose,
@@ -34867,7 +34405,10 @@ var ItemContainer$1 = function ItemContainer(_ref) {
34867
34405
  checkIfItemCanBeMoved = _ref.checkIfItemCanBeMoved,
34868
34406
  initialPosition = _ref.initialPosition,
34869
34407
  checkIfItemShouldDragEnd = _ref.checkIfItemShouldDragEnd,
34870
- dragScale = _ref.dragScale;
34408
+ dragScale = _ref.dragScale,
34409
+ shortcuts = _ref.shortcuts,
34410
+ setItemShortcut = _ref.setItemShortcut,
34411
+ removeShortcut = _ref.removeShortcut;
34871
34412
  var _useState = useState({
34872
34413
  isOpen: false,
34873
34414
  maxQuantity: 1,
@@ -34875,6 +34416,9 @@ var ItemContainer$1 = function ItemContainer(_ref) {
34875
34416
  }),
34876
34417
  quantitySelect = _useState[0],
34877
34418
  setQuantitySelect = _useState[1];
34419
+ var _useState2 = useState(-1),
34420
+ settingShortcutIndex = _useState2[0],
34421
+ setSettingShortcutIndex = _useState2[1];
34878
34422
  var onRenderSlots = function onRenderSlots() {
34879
34423
  var slots = [];
34880
34424
  for (var i = 0; i < itemContainer.slotQty; i++) {
@@ -34888,8 +34432,13 @@ var ItemContainer$1 = function ItemContainer(_ref) {
34888
34432
  onMouseOver: function onMouseOver(event, slotIndex, item) {
34889
34433
  if (_onMouseOver) _onMouseOver(event, slotIndex, item);
34890
34434
  },
34891
- onPointerDown: function onPointerDown(ItemType, ContainerType, item) {
34892
- if (onItemClick) onItemClick(item, ItemType, ContainerType);
34435
+ onPointerDown: function onPointerDown(itemType, containerType, item) {
34436
+ if (settingShortcutIndex !== -1) {
34437
+ setSettingShortcutIndex(-1);
34438
+ if (itemType === ItemType.Consumable || itemType === ItemType.Tool) {
34439
+ setItemShortcut == null ? void 0 : setItemShortcut(item.key, settingShortcutIndex);
34440
+ }
34441
+ } else if (onItemClick) onItemClick(item, itemType, containerType);
34893
34442
  },
34894
34443
  onSelected: function onSelected(optionId, item) {
34895
34444
  if (_onSelected) _onSelected(optionId, item);
@@ -34917,7 +34466,8 @@ var ItemContainer$1 = function ItemContainer(_ref) {
34917
34466
  if (_onOutsideDrop) _onOutsideDrop(item, position);
34918
34467
  },
34919
34468
  atlasIMG: atlasIMG,
34920
- atlasJSON: atlasJSON
34469
+ atlasJSON: atlasJSON,
34470
+ isSelectingShortcut: settingShortcutIndex !== -1
34921
34471
  }));
34922
34472
  }
34923
34473
  return slots;
@@ -34926,7 +34476,14 @@ var ItemContainer$1 = function ItemContainer(_ref) {
34926
34476
  title: itemContainer.name || 'Container',
34927
34477
  onClose: onClose,
34928
34478
  initialPosition: initialPosition
34929
- }, React.createElement(ItemsContainer, {
34479
+ }, type === ItemContainerType.Inventory && shortcuts && removeShortcut && React.createElement(ShortcutsSetter, {
34480
+ setSettingShortcutIndex: setSettingShortcutIndex,
34481
+ settingShortcutIndex: settingShortcutIndex,
34482
+ shortcuts: shortcuts,
34483
+ removeShortcut: removeShortcut,
34484
+ atlasIMG: atlasIMG,
34485
+ atlasJSON: atlasJSON
34486
+ }), React.createElement(ItemsContainer, {
34930
34487
  className: "item-container-body"
34931
34488
  }, onRenderSlots())), quantitySelect.isOpen && React.createElement(QuantitySelectorContainer, null, React.createElement(ItemQuantitySelector, {
34932
34489
  quantity: quantitySelect.maxQuantity,
@@ -34951,7 +34508,7 @@ var ItemContainer$1 = function ItemContainer(_ref) {
34951
34508
  var ItemsContainer = /*#__PURE__*/styled.div.withConfig({
34952
34509
  displayName: "ItemContainer__ItemsContainer",
34953
34510
  componentId: "sc-15y5p9l-0"
34954
- })(["max-width:280px;display:flex;justify-content:center;flex-wrap:wrap;"]);
34511
+ })(["display:flex;justify-content:center;flex-wrap:wrap;"]);
34955
34512
  var QuantitySelectorContainer = /*#__PURE__*/styled.div.withConfig({
34956
34513
  displayName: "ItemContainer__QuantitySelectorContainer",
34957
34514
  componentId: "sc-15y5p9l-1"
@@ -35048,7 +34605,7 @@ var ListMenu = function ListMenu(_ref) {
35048
34605
  onSelected = _ref.onSelected,
35049
34606
  x = _ref.x,
35050
34607
  y = _ref.y;
35051
- return React.createElement(Container$f, {
34608
+ return React.createElement(Container$c, {
35052
34609
  x: x,
35053
34610
  y: y
35054
34611
  }, React.createElement("ul", {
@@ -35065,7 +34622,7 @@ var ListMenu = function ListMenu(_ref) {
35065
34622
  }, (params == null ? void 0 : params.text) || 'No text');
35066
34623
  })));
35067
34624
  };
35068
- var Container$f = /*#__PURE__*/styled.div.withConfig({
34625
+ var Container$c = /*#__PURE__*/styled.div.withConfig({
35069
34626
  displayName: "ListMenu__Container",
35070
34627
  componentId: "sc-i9097t-0"
35071
34628
  })(["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) {
@@ -35078,6 +34635,332 @@ var ListElement$1 = /*#__PURE__*/styled.li.withConfig({
35078
34635
  componentId: "sc-i9097t-1"
35079
34636
  })(["margin-right:0.5rem;"]);
35080
34637
 
34638
+ var img$6 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAP1BMVEUAAAA7FyVxQTsUEBPj5v////+5v/tCJDOOUlIiHBr1oJfptaO6dWr61rhzFy1bMTjoanMUNGQoXMQkn97+88DQ3IhAAAAAAXRSTlMAQObYZgAAAAFiS0dEBfhv6ccAAAAHdElNRQfmAw4VOBC7c5LYAAABM0lEQVQ4y3XRi5KDIAwFUAUkbrBgpP//rZsHVHQ009qZ3tPboNN0zmwzvcw8O5sX4y0NOg/Et3jRCXF+ziULorjkOQ9gE24dvuUAzq08DiCO4pe3WN7zCP56vmpubBReQYC11YPS86ySxxCsAABTSgjb5m4g8nfbxvFHBkH2OEEvAItVuCuIsgGgl+Gcr7kDXxhEAx55A2SQEEeQeZwUaIP8Tbo05B0RFPhItAjgj1w6cDnhLluDj+Egkh3pCCP4pKQAw1IPO0W9Nti5gW9RP2dKA3BZd2Dw+baYX+Nt4GM00O4S3kEpF6Alb2Bv4LeC3kkGfAW0/p0RPoJVKr63ghHsKuRh5DIUKOAlGOwrtt9fQekAEfmhZslHUDoglB0zjfkJigN7UnTQQ4GBWomoVhEN/AOPSBh38gy+fwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wMy0xNFQyMTo1NTo1MSswMDowMJcc0eEAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDMtMTRUMjE6NTU6NTErMDA6MDDmQWldAAAAAElFTkSuQmCC';
34639
+
34640
+ var img$7 = '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';
34641
+
34642
+ var ImgSide;
34643
+ (function (ImgSide) {
34644
+ ImgSide["right"] = "right";
34645
+ ImgSide["left"] = "left";
34646
+ })(ImgSide || (ImgSide = {}));
34647
+ var NPCMultiDialog = function NPCMultiDialog(_ref) {
34648
+ var _textAndTypeArray$sli;
34649
+ var _onClose = _ref.onClose,
34650
+ textAndTypeArray = _ref.textAndTypeArray;
34651
+ var _useState = useState(false),
34652
+ showGoNextIndicator = _useState[0],
34653
+ setShowGoNextIndicator = _useState[1];
34654
+ var _useState2 = useState(0),
34655
+ slide = _useState2[0],
34656
+ setSlide = _useState2[1];
34657
+ var onHandleSpacePress = function onHandleSpacePress(event) {
34658
+ if (event.code === 'Space') {
34659
+ if (slide < (textAndTypeArray == null ? void 0 : textAndTypeArray.length) - 1) {
34660
+ setSlide(function (prev) {
34661
+ return prev + 1;
34662
+ });
34663
+ } else {
34664
+ // if there's no more text chunks, close the dialog
34665
+ _onClose();
34666
+ }
34667
+ }
34668
+ };
34669
+ useEffect(function () {
34670
+ document.addEventListener('keydown', onHandleSpacePress);
34671
+ return function () {
34672
+ return document.removeEventListener('keydown', onHandleSpacePress);
34673
+ };
34674
+ }, [slide]);
34675
+ return React.createElement(RPGUIContainer, {
34676
+ type: RPGUIContainerTypes.FramedGold,
34677
+ width: '50%',
34678
+ height: '180px'
34679
+ }, React.createElement(React.Fragment, null, React.createElement(Container$d, null, ((_textAndTypeArray$sli = textAndTypeArray[slide]) == null ? void 0 : _textAndTypeArray$sli.imageSide) === 'right' && React.createElement(React.Fragment, null, React.createElement(TextContainer, {
34680
+ flex: '70%'
34681
+ }, React.createElement(NPCDialogText, {
34682
+ onStartStep: function onStartStep() {
34683
+ return setShowGoNextIndicator(false);
34684
+ },
34685
+ onEndStep: function onEndStep() {
34686
+ return setShowGoNextIndicator(true);
34687
+ },
34688
+ text: textAndTypeArray[slide].text || 'No text provided.',
34689
+ onClose: function onClose() {
34690
+ if (_onClose) {
34691
+ _onClose();
34692
+ }
34693
+ }
34694
+ })), React.createElement(ThumbnailContainer, null, React.createElement(NPCThumbnail, {
34695
+ src: textAndTypeArray[slide].imagePath || img$6
34696
+ })), showGoNextIndicator && React.createElement(PressSpaceIndicator, {
34697
+ right: '10.5rem',
34698
+ src: img$7
34699
+ })), textAndTypeArray[slide].imageSide === 'left' && React.createElement(React.Fragment, null, React.createElement(ThumbnailContainer, null, React.createElement(NPCThumbnail, {
34700
+ src: textAndTypeArray[slide].imagePath || img$6
34701
+ })), React.createElement(TextContainer, {
34702
+ flex: '70%'
34703
+ }, React.createElement(NPCDialogText, {
34704
+ onStartStep: function onStartStep() {
34705
+ return setShowGoNextIndicator(false);
34706
+ },
34707
+ onEndStep: function onEndStep() {
34708
+ return setShowGoNextIndicator(true);
34709
+ },
34710
+ text: textAndTypeArray[slide].text || 'No text provided.',
34711
+ onClose: function onClose() {
34712
+ if (_onClose) {
34713
+ _onClose();
34714
+ }
34715
+ }
34716
+ })), showGoNextIndicator && React.createElement(PressSpaceIndicator, {
34717
+ right: '1rem',
34718
+ src: img$7
34719
+ }))), ")"));
34720
+ };
34721
+ var Container$d = /*#__PURE__*/styled.div.withConfig({
34722
+ displayName: "NPCMultiDialog__Container",
34723
+ componentId: "sc-rvu5wg-0"
34724
+ })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
34725
+ var TextContainer = /*#__PURE__*/styled.div.withConfig({
34726
+ displayName: "NPCMultiDialog__TextContainer",
34727
+ componentId: "sc-rvu5wg-1"
34728
+ })(["flex:", " 0 0;width:355px;"], function (_ref2) {
34729
+ var flex = _ref2.flex;
34730
+ return flex;
34731
+ });
34732
+ var ThumbnailContainer = /*#__PURE__*/styled.div.withConfig({
34733
+ displayName: "NPCMultiDialog__ThumbnailContainer",
34734
+ componentId: "sc-rvu5wg-2"
34735
+ })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
34736
+ var NPCThumbnail = /*#__PURE__*/styled.img.withConfig({
34737
+ displayName: "NPCMultiDialog__NPCThumbnail",
34738
+ componentId: "sc-rvu5wg-3"
34739
+ })(["image-rendering:pixelated;height:128px;width:128px;"]);
34740
+ var PressSpaceIndicator = /*#__PURE__*/styled.img.withConfig({
34741
+ displayName: "NPCMultiDialog__PressSpaceIndicator",
34742
+ componentId: "sc-rvu5wg-4"
34743
+ })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref3) {
34744
+ var right = _ref3.right;
34745
+ return right;
34746
+ });
34747
+
34748
+ //@ts-ignore
34749
+ var useEventListener = function useEventListener(type, handler, el) {
34750
+ if (el === void 0) {
34751
+ el = window;
34752
+ }
34753
+ var savedHandler = React.useRef();
34754
+ React.useEffect(function () {
34755
+ savedHandler.current = handler;
34756
+ }, [handler]);
34757
+ React.useEffect(function () {
34758
+ //@ts-ignore
34759
+ var listener = function listener(e) {
34760
+ return savedHandler.current(e);
34761
+ };
34762
+ el.addEventListener(type, listener);
34763
+ return function () {
34764
+ el.removeEventListener(type, listener);
34765
+ };
34766
+ }, [type, el]);
34767
+ };
34768
+
34769
+ var DynamicText = function DynamicText(_ref) {
34770
+ var text = _ref.text,
34771
+ onFinish = _ref.onFinish,
34772
+ onStart = _ref.onStart;
34773
+ var _useState = useState(''),
34774
+ textState = _useState[0],
34775
+ setTextState = _useState[1];
34776
+ useEffect(function () {
34777
+ var i = 0;
34778
+ var interval = setInterval(function () {
34779
+ // on every interval, show one more character
34780
+ if (i === 0) {
34781
+ if (onStart) {
34782
+ onStart();
34783
+ }
34784
+ }
34785
+ if (i < text.length) {
34786
+ setTextState(text.substring(0, i + 1));
34787
+ i++;
34788
+ } else {
34789
+ clearInterval(interval);
34790
+ if (onFinish) {
34791
+ onFinish();
34792
+ }
34793
+ }
34794
+ }, 50);
34795
+ return function () {
34796
+ clearInterval(interval);
34797
+ };
34798
+ }, [text]);
34799
+ return React.createElement(TextContainer$1, null, textState);
34800
+ };
34801
+ var TextContainer$1 = /*#__PURE__*/styled.p.withConfig({
34802
+ displayName: "DynamicText__TextContainer",
34803
+ componentId: "sc-1ggl9nd-0"
34804
+ })(["font-size:0.7rem !important;color:white;text-shadow:1px 1px 0px #000000;letter-spacing:1.2px;word-break:normal;"]);
34805
+
34806
+ var QuestionDialog = function QuestionDialog(_ref) {
34807
+ var questions = _ref.questions,
34808
+ answers = _ref.answers,
34809
+ onClose = _ref.onClose;
34810
+ var _useState = useState(questions[0]),
34811
+ currentQuestion = _useState[0],
34812
+ setCurrentQuestion = _useState[1];
34813
+ var _useState2 = useState(false),
34814
+ canShowAnswers = _useState2[0],
34815
+ setCanShowAnswers = _useState2[1];
34816
+ var onGetFirstAnswer = function onGetFirstAnswer() {
34817
+ if (!currentQuestion.answerIds || currentQuestion.answerIds.length === 0) {
34818
+ return null;
34819
+ }
34820
+ var firstAnswerId = currentQuestion.answerIds[0];
34821
+ return answers.find(function (answer) {
34822
+ return answer.id === firstAnswerId;
34823
+ });
34824
+ };
34825
+ var _useState3 = useState(onGetFirstAnswer()),
34826
+ currentAnswer = _useState3[0],
34827
+ setCurrentAnswer = _useState3[1];
34828
+ useEffect(function () {
34829
+ setCurrentAnswer(onGetFirstAnswer());
34830
+ }, [currentQuestion]);
34831
+ var onGetAnswers = function onGetAnswers(answerIds) {
34832
+ return answerIds.map(function (answerId) {
34833
+ return answers.find(function (answer) {
34834
+ return answer.id === answerId;
34835
+ });
34836
+ });
34837
+ };
34838
+ var onKeyPress = function onKeyPress(e) {
34839
+ switch (e.key) {
34840
+ case 'ArrowDown':
34841
+ // select next answer, if any.
34842
+ // if no next answer, select first answer
34843
+ // const nextAnswer = onGetAnswers(currentQuestion.answerIds!).find(
34844
+ // (answer) => answer?.id === currentAnswer!.id + 1
34845
+ // );
34846
+ var nextAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
34847
+ return (answer == null ? void 0 : answer.id) === currentAnswer.id + 1;
34848
+ });
34849
+ var nextAnswerID = currentQuestion.answerIds[nextAnswerIndex];
34850
+ var nextAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
34851
+ return (answer == null ? void 0 : answer.id) === nextAnswerID;
34852
+ });
34853
+ setCurrentAnswer(nextAnswer || onGetFirstAnswer());
34854
+ break;
34855
+ case 'ArrowUp':
34856
+ // select previous answer, if any.
34857
+ // if no previous answer, select last answer
34858
+ var previousAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
34859
+ return (answer == null ? void 0 : answer.id) === currentAnswer.id - 1;
34860
+ });
34861
+ var previousAnswerID = currentQuestion.answerIds && currentQuestion.answerIds[previousAnswerIndex];
34862
+ var previousAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
34863
+ return (answer == null ? void 0 : answer.id) === previousAnswerID;
34864
+ });
34865
+ if (previousAnswer) {
34866
+ setCurrentAnswer(previousAnswer);
34867
+ } else {
34868
+ setCurrentAnswer(onGetAnswers(currentQuestion.answerIds).pop());
34869
+ }
34870
+ break;
34871
+ case 'Enter':
34872
+ setCanShowAnswers(false);
34873
+ if (!(currentAnswer != null && currentAnswer.nextQuestionId)) {
34874
+ onClose();
34875
+ return;
34876
+ } else {
34877
+ setCurrentQuestion(questions.find(function (question) {
34878
+ return question.id === currentAnswer.nextQuestionId;
34879
+ }));
34880
+ }
34881
+ break;
34882
+ }
34883
+ };
34884
+ useEventListener('keydown', onKeyPress);
34885
+ var onAnswerClick = function onAnswerClick(answer) {
34886
+ setCanShowAnswers(false);
34887
+ if (answer.nextQuestionId) {
34888
+ // if there is a next question, go to it
34889
+ setCurrentQuestion(questions.find(function (question) {
34890
+ return question.id === answer.nextQuestionId;
34891
+ }));
34892
+ } else {
34893
+ // else, finish dialog!
34894
+ onClose();
34895
+ }
34896
+ };
34897
+ var onRenderCurrentAnswers = function onRenderCurrentAnswers() {
34898
+ var answerIds = currentQuestion.answerIds;
34899
+ if (!answerIds) {
34900
+ return null;
34901
+ }
34902
+ var answers = onGetAnswers(answerIds);
34903
+ if (!answers) {
34904
+ return null;
34905
+ }
34906
+ return answers.map(function (answer) {
34907
+ var isSelected = (currentAnswer == null ? void 0 : currentAnswer.id) === (answer == null ? void 0 : answer.id);
34908
+ var selectedColor = isSelected ? 'yellow' : 'white';
34909
+ if (answer) {
34910
+ return React.createElement(AnswerRow, {
34911
+ key: "answer_" + answer.id
34912
+ }, React.createElement(AnswerSelectedIcon, {
34913
+ color: selectedColor
34914
+ }, isSelected ? 'X' : null), React.createElement(Answer, {
34915
+ key: answer.id,
34916
+ onPointerDown: function onPointerDown() {
34917
+ return onAnswerClick(answer);
34918
+ },
34919
+ color: selectedColor
34920
+ }, answer.text));
34921
+ }
34922
+ return null;
34923
+ });
34924
+ };
34925
+ return React.createElement(Container$e, null, React.createElement(QuestionContainer, null, React.createElement(DynamicText, {
34926
+ text: currentQuestion.text,
34927
+ onStart: function onStart() {
34928
+ return setCanShowAnswers(false);
34929
+ },
34930
+ onFinish: function onFinish() {
34931
+ return setCanShowAnswers(true);
34932
+ }
34933
+ })), canShowAnswers && React.createElement(AnswersContainer, null, onRenderCurrentAnswers()));
34934
+ };
34935
+ var Container$e = /*#__PURE__*/styled.div.withConfig({
34936
+ displayName: "QuestionDialog__Container",
34937
+ componentId: "sc-bxc5u0-0"
34938
+ })(["display:flex;word-break:break-all;box-sizing:border-box;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;"]);
34939
+ var QuestionContainer = /*#__PURE__*/styled.div.withConfig({
34940
+ displayName: "QuestionDialog__QuestionContainer",
34941
+ componentId: "sc-bxc5u0-1"
34942
+ })(["flex:100%;width:100%;"]);
34943
+ var AnswersContainer = /*#__PURE__*/styled.div.withConfig({
34944
+ displayName: "QuestionDialog__AnswersContainer",
34945
+ componentId: "sc-bxc5u0-2"
34946
+ })(["flex:100%;"]);
34947
+ var Answer = /*#__PURE__*/styled.p.withConfig({
34948
+ displayName: "QuestionDialog__Answer",
34949
+ componentId: "sc-bxc5u0-3"
34950
+ })(["flex:auto;color:", " !important;font-size:0.65rem !important;background:inherit;border:none;"], function (props) {
34951
+ return props.color;
34952
+ });
34953
+ var AnswerSelectedIcon = /*#__PURE__*/styled.span.withConfig({
34954
+ displayName: "QuestionDialog__AnswerSelectedIcon",
34955
+ componentId: "sc-bxc5u0-4"
34956
+ })(["flex:5% 0 0;color:", " !important;"], function (props) {
34957
+ return props.color;
34958
+ });
34959
+ var AnswerRow = /*#__PURE__*/styled.div.withConfig({
34960
+ displayName: "QuestionDialog__AnswerRow",
34961
+ componentId: "sc-bxc5u0-5"
34962
+ })(["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;}"]);
34963
+
35081
34964
  var ProgressBar = function ProgressBar(_ref) {
35082
34965
  var max = _ref.max,
35083
34966
  value = _ref.value,
@@ -35095,7 +34978,7 @@ var ProgressBar = function ProgressBar(_ref) {
35095
34978
  }
35096
34979
  return value * 100 / max;
35097
34980
  };
35098
- return React.createElement(Container$g, {
34981
+ return React.createElement(Container$f, {
35099
34982
  className: "rpgui-progress",
35100
34983
  "data-value": calculatePercentageValue(max, value) / 100,
35101
34984
  "data-rpguitype": "progress",
@@ -35124,7 +35007,7 @@ var TextOverlay$1 = /*#__PURE__*/styled.div.withConfig({
35124
35007
  displayName: "ProgressBar__TextOverlay",
35125
35008
  componentId: "sc-qa6fzh-1"
35126
35009
  })(["width:100%;position:relative;"]);
35127
- var Container$g = /*#__PURE__*/styled.div.withConfig({
35010
+ var Container$f = /*#__PURE__*/styled.div.withConfig({
35128
35011
  displayName: "ProgressBar__Container",
35129
35012
  componentId: "sc-qa6fzh-2"
35130
35013
  })(["display:flex;flex-direction:column;min-width:", "px;width:", "%;justify-content:start;align-items:flex-start;", ""], function (props) {
@@ -35135,7 +35018,7 @@ var Container$g = /*#__PURE__*/styled.div.withConfig({
35135
35018
  return props.style;
35136
35019
  });
35137
35020
 
35138
- var img$9 = 'data:image/png;base64,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';
35021
+ var img$8 = 'data:image/png;base64,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';
35139
35022
 
35140
35023
  var QuestInfo = function QuestInfo(_ref) {
35141
35024
  var quests = _ref.quests,
@@ -35177,7 +35060,7 @@ var QuestInfo = function QuestInfo(_ref) {
35177
35060
  }), React.createElement(QuestContainer, null, React.createElement(TitleContainer$1, {
35178
35061
  className: "drag-handler"
35179
35062
  }, React.createElement(Title$3, null, React.createElement(Thumbnail, {
35180
- src: quests[currentIndex].thumbnail || img$9
35063
+ src: quests[currentIndex].thumbnail || img$8
35181
35064
  }), quests[currentIndex].title), React.createElement(QuestSplitDiv, null, React.createElement("hr", {
35182
35065
  className: "golden"
35183
35066
  }))), React.createElement(Content, null, React.createElement("p", null, quests[currentIndex].description)), React.createElement(QuestColumn, {
@@ -35196,7 +35079,7 @@ var QuestInfo = function QuestInfo(_ref) {
35196
35079
  })))) : React.createElement(QuestsContainer, null, React.createElement(QuestContainer, null, React.createElement(TitleContainer$1, {
35197
35080
  className: "drag-handler"
35198
35081
  }, React.createElement(Title$3, null, React.createElement(Thumbnail, {
35199
- src: quests[0].thumbnail || img$9
35082
+ src: quests[0].thumbnail || img$8
35200
35083
  }), quests[0].title), React.createElement(QuestSplitDiv, null, React.createElement("hr", {
35201
35084
  className: "golden"
35202
35085
  }))), React.createElement(Content, null, React.createElement("p", null, quests[0].description)), React.createElement(QuestColumn, {
@@ -35339,13 +35222,113 @@ var RPGUIRoot = function RPGUIRoot(_ref) {
35339
35222
  }, children);
35340
35223
  };
35341
35224
 
35225
+ var Shortcuts = function Shortcuts(_ref) {
35226
+ var shortcuts = _ref.shortcuts,
35227
+ onShortcutCast = _ref.onShortcutCast,
35228
+ mana = _ref.mana,
35229
+ _ref$isBlockedCasting = _ref.isBlockedCastingByKeyboard,
35230
+ isBlockedCastingByKeyboard = _ref$isBlockedCasting === void 0 ? false : _ref$isBlockedCasting,
35231
+ atlasJSON = _ref.atlasJSON,
35232
+ atlasIMG = _ref.atlasIMG,
35233
+ inventory = _ref.inventory;
35234
+ var shortcutsRefs = useRef([]);
35235
+ useEffect(function () {
35236
+ var handleKeyDown = function handleKeyDown(e) {
35237
+ if (isBlockedCastingByKeyboard) return;
35238
+ var shortcutIndex = Number(e.key) - 1;
35239
+ if (shortcutIndex >= 0 && shortcutIndex <= 5) {
35240
+ var _shortcutsRefs$curren;
35241
+ onShortcutCast(shortcutIndex);
35242
+ (_shortcutsRefs$curren = shortcutsRefs.current[shortcutIndex]) == null ? void 0 : _shortcutsRefs$curren.classList.add('active');
35243
+ setTimeout(function () {
35244
+ var _shortcutsRefs$curren2;
35245
+ (_shortcutsRefs$curren2 = shortcutsRefs.current[shortcutIndex]) == null ? void 0 : _shortcutsRefs$curren2.classList.remove('active');
35246
+ }, 150);
35247
+ }
35248
+ };
35249
+ window.addEventListener('keydown', handleKeyDown);
35250
+ return function () {
35251
+ window.removeEventListener('keydown', handleKeyDown);
35252
+ };
35253
+ }, [shortcuts, isBlockedCastingByKeyboard]);
35254
+ return React.createElement(List$1, null, Array.from({
35255
+ length: 6
35256
+ }).map(function (_, i) {
35257
+ var _shortcuts$i, _shortcuts$i3, _payload$manaCost;
35258
+ if (((_shortcuts$i = shortcuts[i]) == null ? void 0 : _shortcuts$i.type) === ShortcutType.Item) {
35259
+ var _shortcuts$i2;
35260
+ var _payload = (_shortcuts$i2 = shortcuts[i]) == null ? void 0 : _shortcuts$i2.payload;
35261
+ var itemsFromEquipment = [];
35262
+ if (inventory) {
35263
+ Object.keys(inventory.slots).forEach(function (i) {
35264
+ var _inventory$slots$inde;
35265
+ var index = parseInt(i);
35266
+ if (((_inventory$slots$inde = inventory.slots[index]) == null ? void 0 : _inventory$slots$inde.key) === (_payload == null ? void 0 : _payload.key)) {
35267
+ itemsFromEquipment.push(inventory.slots[index]);
35268
+ }
35269
+ });
35270
+ }
35271
+ var totalQty = itemsFromEquipment.reduce(function (acc, item) {
35272
+ return acc + ((item == null ? void 0 : item.stackQty) || 1);
35273
+ }, 0);
35274
+ return React.createElement(StyledShortcut$1, {
35275
+ key: i,
35276
+ onPointerDown: onShortcutCast.bind(null, i),
35277
+ disabled: false,
35278
+ ref: function ref(el) {
35279
+ if (el) shortcutsRefs.current[i] = el;
35280
+ }
35281
+ }, _payload && React.createElement(SpriteFromAtlas, {
35282
+ atlasIMG: atlasIMG,
35283
+ atlasJSON: atlasJSON,
35284
+ spriteKey: getItemTextureKeyPath({
35285
+ key: _payload.texturePath,
35286
+ texturePath: _payload.texturePath,
35287
+ stackQty: _payload.stackQty || 1
35288
+ }, atlasJSON),
35289
+ width: 32,
35290
+ height: 32
35291
+ }), React.createElement("span", {
35292
+ className: "qty"
35293
+ }, totalQty), React.createElement("span", {
35294
+ className: "keyboard"
35295
+ }, i + 1));
35296
+ }
35297
+ var payload = (_shortcuts$i3 = shortcuts[i]) == null ? void 0 : _shortcuts$i3.payload;
35298
+ return React.createElement(StyledShortcut$1, {
35299
+ key: i,
35300
+ onPointerDown: onShortcutCast.bind(null, i),
35301
+ disabled: mana < ((_payload$manaCost = payload == null ? void 0 : payload.manaCost) != null ? _payload$manaCost : 0),
35302
+ ref: function ref(el) {
35303
+ if (el) shortcutsRefs.current[i] = el;
35304
+ }
35305
+ }, React.createElement("span", {
35306
+ className: "mana"
35307
+ }, payload && payload.manaCost), React.createElement("span", {
35308
+ className: "magicWords"
35309
+ }, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
35310
+ return word[0];
35311
+ })), React.createElement("span", {
35312
+ className: "keyboard"
35313
+ }, i + 1));
35314
+ }));
35315
+ };
35316
+ var StyledShortcut$1 = /*#__PURE__*/styled(SingleShortcut).withConfig({
35317
+ displayName: "Shortcuts__StyledShortcut",
35318
+ componentId: "sc-kgtsi7-0"
35319
+ })(["transition:all 0.15s;&.active{background-color:", ";border-color:", ";}"], uiColors.gray, uiColors.yellow);
35320
+ var List$1 = /*#__PURE__*/styled.p.withConfig({
35321
+ displayName: "Shortcuts__List",
35322
+ componentId: "sc-kgtsi7-1"
35323
+ })(["width:100%;display:flex;align-items:center;justify-content:center;gap:0.5rem;box-sizing:border-box;margin:0 !important;"]);
35324
+
35342
35325
  var SimpleProgressBar = function SimpleProgressBar(_ref) {
35343
35326
  var value = _ref.value,
35344
35327
  _ref$bgColor = _ref.bgColor,
35345
35328
  bgColor = _ref$bgColor === void 0 ? 'red' : _ref$bgColor,
35346
35329
  _ref$margin = _ref.margin,
35347
35330
  margin = _ref$margin === void 0 ? 20 : _ref$margin;
35348
- return React.createElement(Container$h, {
35331
+ return React.createElement(Container$g, {
35349
35332
  className: "simple-progress-bar"
35350
35333
  }, React.createElement(ProgressBarContainer, {
35351
35334
  margin: margin
@@ -35354,7 +35337,7 @@ var SimpleProgressBar = function SimpleProgressBar(_ref) {
35354
35337
  bgColor: bgColor
35355
35338
  }))));
35356
35339
  };
35357
- var Container$h = /*#__PURE__*/styled.div.withConfig({
35340
+ var Container$g = /*#__PURE__*/styled.div.withConfig({
35358
35341
  displayName: "SimpleProgressBar__Container",
35359
35342
  componentId: "sc-mbeil3-0"
35360
35343
  })(["display:flex;justify-content:center;align-items:center;width:100%;"]);
@@ -35581,7 +35564,7 @@ var Spell = function Spell(_ref) {
35581
35564
  isSettingShortcut = _ref.isSettingShortcut,
35582
35565
  minMagicLevelRequired = _ref.minMagicLevelRequired;
35583
35566
  var disabled = isSettingShortcut ? charMagicLevel < minMagicLevelRequired : manaCost > charMana || charMagicLevel < minMagicLevelRequired;
35584
- return React.createElement(Container$i, {
35567
+ return React.createElement(Container$h, {
35585
35568
  disabled: disabled,
35586
35569
  onPointerDown: onPointerDown == null ? void 0 : onPointerDown.bind(null, spellKey),
35587
35570
  isSettingShortcut: isSettingShortcut && !disabled,
@@ -35594,7 +35577,7 @@ var Spell = function Spell(_ref) {
35594
35577
  className: "mana"
35595
35578
  }, manaCost)));
35596
35579
  };
35597
- var Container$i = /*#__PURE__*/styled.button.withConfig({
35580
+ var Container$h = /*#__PURE__*/styled.button.withConfig({
35598
35581
  displayName: "Spell__Container",
35599
35582
  componentId: "sc-j96fa2-0"
35600
35583
  })(["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) {
@@ -35630,43 +35613,6 @@ var Overlay = /*#__PURE__*/styled.p.withConfig({
35630
35613
  componentId: "sc-j96fa2-7"
35631
35614
  })(["margin:0 !important;position:absolute;top:0;left:0;width:100%;height:100%;border-radius:1rem;display:flex;justify-content:center;align-items:center;color:", ";font-size:", " !important;font-weight:bold;z-index:10;background-color:rgba(0 0 0 / 0.2);"], uiColors.yellow, uiFonts.size.large);
35632
35615
 
35633
- var SpellbookShortcuts = function SpellbookShortcuts(_ref) {
35634
- var setSettingShortcutIndex = _ref.setSettingShortcutIndex,
35635
- settingShortcutIndex = _ref.settingShortcutIndex,
35636
- shortcuts = _ref.shortcuts,
35637
- removeShortcut = _ref.removeShortcut;
35638
- return React.createElement(List$1, {
35639
- id: "shortcuts_list"
35640
- }, "Spells shortcuts:", Array.from({
35641
- length: 4
35642
- }).map(function (_, i) {
35643
- var _shortcuts$i2;
35644
- return React.createElement(SpellShortcut$1, {
35645
- key: i,
35646
- onPointerDown: function onPointerDown() {
35647
- var _shortcuts$i;
35648
- removeShortcut(i);
35649
- if (!((_shortcuts$i = shortcuts[i]) != null && _shortcuts$i.key)) setSettingShortcutIndex(i);
35650
- },
35651
- disabled: settingShortcutIndex !== -1 && settingShortcutIndex !== i,
35652
- isBeingSet: settingShortcutIndex === i
35653
- }, React.createElement("span", null, (_shortcuts$i2 = shortcuts[i]) == null ? void 0 : _shortcuts$i2.magicWords.split(' ').map(function (word) {
35654
- return word[0];
35655
- })));
35656
- }));
35657
- };
35658
- var SpellShortcut$1 = /*#__PURE__*/styled.button.withConfig({
35659
- displayName: "SpellbookShortcuts__SpellShortcut",
35660
- componentId: "sc-fr4a0d-0"
35661
- })(["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) {
35662
- var isBeingSet = _ref2.isBeingSet;
35663
- return isBeingSet ? uiColors.yellow : uiColors.darkGray;
35664
- }, uiColors.darkGray, uiColors.gray);
35665
- var List$1 = /*#__PURE__*/styled.p.withConfig({
35666
- displayName: "SpellbookShortcuts__List",
35667
- componentId: "sc-fr4a0d-1"
35668
- })(["width:100%;display:flex;align-items:center;justify-content:flex-end;gap:0.5rem;padding:0.5rem;box-sizing:border-box;margin:0 !important;"]);
35669
-
35670
35616
  var Spellbook = function Spellbook(_ref) {
35671
35617
  var onClose = _ref.onClose,
35672
35618
  onInputFocus = _ref.onInputFocus,
@@ -35676,8 +35622,10 @@ var Spellbook = function Spellbook(_ref) {
35676
35622
  mana = _ref.mana,
35677
35623
  onSpellClick = _ref.onSpellClick,
35678
35624
  setSpellShortcut = _ref.setSpellShortcut,
35679
- spellShortcuts = _ref.spellShortcuts,
35680
- removeSpellShortcut = _ref.removeSpellShortcut;
35625
+ shortcuts = _ref.shortcuts,
35626
+ removeShortcut = _ref.removeShortcut,
35627
+ atlasIMG = _ref.atlasIMG,
35628
+ atlasJSON = _ref.atlasJSON;
35681
35629
  var _useState = useState(''),
35682
35630
  search = _useState[0],
35683
35631
  setSearch = _useState[1];
@@ -35714,11 +35662,13 @@ var Spellbook = function Spellbook(_ref) {
35714
35662
  width: "inherit",
35715
35663
  height: "inherit",
35716
35664
  cancelDrag: "#spellbook-search, #shortcuts_list, .spell"
35717
- }, React.createElement(Container$j, null, React.createElement(Title$6, null, "Learned Spells"), React.createElement(SpellbookShortcuts, {
35665
+ }, React.createElement(Container$i, null, React.createElement(Title$6, null, "Learned Spells"), React.createElement(ShortcutsSetter, {
35718
35666
  setSettingShortcutIndex: setSettingShortcutIndex,
35719
35667
  settingShortcutIndex: settingShortcutIndex,
35720
- shortcuts: spellShortcuts,
35721
- removeShortcut: removeSpellShortcut
35668
+ shortcuts: shortcuts,
35669
+ removeShortcut: removeShortcut,
35670
+ atlasIMG: atlasIMG,
35671
+ atlasJSON: atlasJSON
35722
35672
  }), React.createElement(Input, {
35723
35673
  placeholder: "Search for spell",
35724
35674
  value: search,
@@ -35744,7 +35694,7 @@ var Title$6 = /*#__PURE__*/styled.h1.withConfig({
35744
35694
  displayName: "Spellbook__Title",
35745
35695
  componentId: "sc-r02nfq-0"
35746
35696
  })(["font-size:", " !important;margin-bottom:0 !important;"], uiFonts.size.large);
35747
- var Container$j = /*#__PURE__*/styled.div.withConfig({
35697
+ var Container$i = /*#__PURE__*/styled.div.withConfig({
35748
35698
  displayName: "Spellbook__Container",
35749
35699
  componentId: "sc-r02nfq-1"
35750
35700
  })(["width:100%;height:100%;color:white;display:flex;flex-direction:column;"]);
@@ -35758,16 +35708,16 @@ var TextArea = function TextArea(_ref) {
35758
35708
  return React.createElement("textarea", Object.assign({}, props));
35759
35709
  };
35760
35710
 
35761
- var img$a = 'data:image/gif;base64,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';
35711
+ var img$9 = 'data:image/gif;base64,R0lGODlhTgBNAPMAAAAAALcIL7ObdNGqnf3vnP/wl93Goerfx/Xx3vr6+vn49QAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAAIf4gQ3JlYXRlZCB3aXRoIGV6Z2lmLmNvbSBHSUYgbWFrZXIALAAAAABOAE0AAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz2tg37hNq7jg/0AfbjeyAQ3IpBIJ1BE5N99ySmUKbk9M4FftUn+BLMXoLXev4exWYG5/r8+te/5Nz+T0vBIu2w7+gIGCg4SFgXwvfoaLjIyILIqNkpOAjymRlAMFm5ybmZV2KHh0naWcepYlo22mradzqUUClK61nJSxIJiMrgm+v664oSKrXqa/yMmmbrkexVXHydK+y2bNULON0dPTppLXGs9UpdzlCaVt4FpsZuTm5ejWwx3iU53v753p89jtnPj49JVRZ2ELgoMHoP0DaE6gF4JjBByciCChEncMucV7yC+DQYoI/y8uzAjvFUddEkGGRHKPZMlN8lCqXGmgpctuJs90XDdzpc2bynJWgSjh40yLP4ECE1pHZs8DB5MqPcd0ClEARlVCjTpy6kadTrWC7KpU4NaDVndeyNqTa4GpSzedBblHbcGUbSmSddlprsokV7HizYtAKsO+hBEYCCw48UTD+RAnZsw2L0aApfy2pTw48eWGczX3ZNzYsdtNAf2KVkm6tOnC2+JqXg2ytWBStiSLzWv7dh5XBHS/Pti7nj9TW2kT7u1bT03dB5SPtuuMnfMkqqXXpl79uhLR2icyj+gdSfjN3FF6Pz89kXU3itnPHO/xfXlm6VXZv3+ShnH+gOUnikAUAFpFny7/XYeGGBOssR8qQjBYQRQPpoOGgHc4WOEeYGAYB4VBBDGEhMTkYCKJKKao4oostujiizDGKOOMF0QAACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAAE4ATQAABP8QyEmrvTjrzbv/YCiOZGmeaKqubOu+cCzPa2DfuE2ruOD/QB9uN7IBDcikEgnUETk333JKZQpuT0zgV+1Sf4Esxegtd6/h7FZgbn+vz617/k3P5PS8Ei7bDv6AgYKDhIWBfC9+houMjIgsio2Sk4CPKZGUmY2WJnh6BaChoHpMdieec6KqoXqcRQKaq7Khmq4gmI2zurSUth6oZbMJw8Szc74dwF2rxM3Oq27IG7iGzM7Xw6uT0hnKVNbY2NBm3Bfe36Lh6gmq0aa/bGaq6+vt5O/J8cGh9PSibeUqbEGA4MAyfv38sSoTcMJAggQNTkmXsN5Chvg0PIRYcMm8iur/7HlpCGAjR4lIKIIMefFMxm4COEJEaUDlSnEtq5A0eTKJzZvPcta5FVNmRJ8IgV77h5Go0YgEayZV2ozpyJdaiho9APEnVXZCp+zUepLjx69gF3KFuGTsU6Negf5bazSJ27dmp1IVRfdpqRA838YFyRcvRJISAj89e1NV37eIS5I1zLiiY8OHscLEnFevP7oFHkPWvJkzwcohH4s2GjnxZMyol4peLbO161SyloKiTZug7du4dREobLo26Wn6gs9a29vwb+B5ls9s/vS5w+R0Lp+kztH6dVJTVnP3ffzDOTrjR7c43yZ99fIi2FdBYMA9a/ivwIP3jlx/Hv5QYOefQUtxSDGgTgCaJx8paIhxnYH+geGgQEYIGA0a+NFQIYRngJGhGlEEIeIQE8aXw4klpqjiiiy26OKLMMYo44w0XhABACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAAE4ATQAABP8QyEmrvTjrzbv/YCiOZGmeaKqubOu+cCzPa2DfuE2ruOD/QB9uN7IBDcikEgnUETk333JKZQpuT0zgV+1Sf4Esxegtd6/h7FZgbn+vz617/k3P5PS8Ei7bDv6AgYKDhIWBfC9+houMjIgsio2Sk4CPKZGUmY2WJnh6n2d2J555BaanpqCcRQKaf6iwp64DqyCYk7G5spq1HqRmusGndL0dv166CcrLunPFG7eLscvU1bGUzxnHVdPV3sqxbtkX21Td39/hbeMV5VOw6PEJsOKivmzAqPLy9GbsYwIQHCijbx+/Yf7sQQmIoOFAc6cMGkS1TqGGLQ0zPlxSUGI8ign/bTHMKJBjR4/pQHr5BwAjyZJKTqJMmaoMS5cvNxqQOdMawpUWtY0kqZNnT2Y/Q4l86bAhEqNH5yWtcnOoxow7I0b1plLpB5xXSUI9qvIAyT1BtVhligDeVqTDzLJlkpbcWrZjUVKUyxaBAZYt777M6xEV376AA/cdrHXr3sUNE4Nd7JasYciR66rFnLGyXr4GDiPWvJnzOYkFRItmmljCZMqe+a1e/bK1a3z5CM+jLXCx7dtzklFTcJlzbdIXcbcRVpw35N/A6TDne8A5W+gT3HXRpdo6SezZlUuHRdt75hriQZkf3UJ7m/XXkYtwX8UvfNbyWYFSlZ8E/f1LgGdMRXoAUtXfKFIUSJWAtvyXBxpihJcggGBE2I4RBK6DxoF9rDHhGWBwSEQPQZQ4hIXz5aAiiiy26OKLMMYo44w01mjjjRdEAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAABOAE0AAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz2tg37hNq7jg/0AfbjeyAQ3IpBIJ1BE5N99ySmUKbk9M4FftUn+BLMXoLXev4exWYG5/r8+te/5Nz+T0vBIu2w7+gIGCg4SFgXwvfoaLjIyILIqNkpOAjymRlJmNliZ4ep9ndieeoKV7oiWYmgWsrayah6giqpSutq2wf5wgpG63v616ux+9ZcDHwXPDHbSLwAnQ0cCZyxvFXbfR2tu3yrLMbL622+TStt6z4WbZ5e3dbdVa6sau7fYJ5/Df1gIH6/X37OUrE8/CFgQI/WFrFTCgKzcFxwhAmLAKwIb3HpqJOOEgRQQK/5dcxOguGcF98j6CnDKOpECNXjhK8PgxJJKRLsvBDMVrokqbBnDm5GaSJzGfNREmETrUHKuNKC/QpHiA4k2GTXUWrSITwFSQKoNizUr0aZKqVplENYhU5UemWTWidWug61e3CFqShXZuLt6uXtvizTt270O/bgEHHvy2MNnDjBEovosXLknIkScLHqx3aIG5BhAnXpsyMsLOlxGL/qh45ubKqB2KXk2xtes27Bp+Hkzb9m3csaMp4LvbtErfgec8I4qWNmPkycUhYzX3gPPRl+b9O6b6em3SHq7R+7Xau2Tw4bVLd2X+L/qjppC0x+5CvBkEoY27j2E/Ptf3JPTn30cpOwg4IHQ9qTdgXQiGQMaCSaAhRkdcxAfGhBVEoSA8aAB4xxpSEASGh3FoGEQQQ2A4Sw4squjiizDGKOOMNNZo44045nhBBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAABOAE0AAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz2tg37hNq7jg/0AfbjeyAQ3IpBIJ1BE5N99ySmUKbk9M4FftUn+BLMXoLXev4exWYG5/r8+te/5Nz+T0vBIu2w7+gIGCg4SFgXwvfoaLjIyILIqNkpOAjymRlJmNliZ4ep9ndieeoKV7oiWYmgWsrayah6giqpSutq2wf5wgpG63v616ux+9ZcDHwXPDHbSLwAnQ0cCZyxvFXbfR2tu3yrLMbL622+TStt6z4WbZ5e3dbdVa6sau7fYJ5/Df1gIH6/X37OUrE8/CFgQI/WFrFTCgKzcFxwhAmLAKwIb3HpqJOOEgRQQK/5dcxOguGcF98j6CnDKOpECNXjhK8PgxJJKRLsvBDMVrokqbBnDm5GaSJzGfNREmETrUHKuNKC/QpHiA4k2GTXUWrSITwFSQKoNizUr0aZKqVplENYhU5UemWTWidWug61e3CFqShXZuLt6uXtvizTt270O/bgEHHvy2MNnDjBEovosXLknIkScLHqx3aIG5BhAnXpsyMsLOlxGL/qh45ubKqB2KXk2xtes27Bp+Hkzb9m3csaMp4LvbtErfgec8I4qWNmPkycUhYzX3gPPRl+b9O6b6em3SHq7R+7Xau2Tw4bVLd2X+L/qjppC0x+5CvBkEoY27j2E/Ptf3JPTn30cpOwg4IHQ9qTdgXQiGQMaCSaAhRkdcxAfGhBVEoSA8aAB4xxpSEASGh3FoGEQQQ2A4Sw4squjiizDGKOOMNNZo44045nhBBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAABOAE0AAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz2tg37hNq7jg/0AfbjeyAQ3IpBIJ1BE5N99ySmUKbk9M4FftUn+BLMXoLXev4exWYG5/r8+te/5Nz+T0vBIu2w7+gIGCg4SFgXwvfoaLjIyILIqNkpOAjymRlJmNliZ4ep9ndieeeQWmp6agnEUCmn+osKeuA6sgmJOxubKatR6kZrrBp3S9Hb9eugnKy7pzxRu3i7HL1NWxlM8Zx1XT1d7KsW7ZF9tU3d/f4W3jFeVTsOjxCbDior5swKjy8vRm7GMCEBwoo28fv2H+7EEJiKDhQHOnDBpEtU6hhi0NMz5cUlBiPIoJ/20xzCiQY0eP6UB6+QcAI8mSSk6iTJmqDEuXLzcakDnTGsKVFrWNJKmTZ09mP0OJfOmwIRKjR+clrXJzqMaMOyNG9aZS6QecV0lCParyAMk9QbVYZYoA3lakw8yyZZKW3Fq2Y1FSlMsWgQGWLe++zOsRFd++gAP3Hax1697FDRODXeyWrGHIkeuqxZyxsl6+Bg4j1ryZ8zmJBUSLZppYwmTKnvmtXv2ytWt8+QjPoy1wse3bc5JRU3CZc23SF3G3EVacN+TfwOkw53vAOVvoE9x10aXaOkns2ZVLh0Xbe+Ya4kGZH91Ce5v115GLcF/FL3zW8lmBUpWfBP39S4BnTEV6AFLV3yhSFEiVgLb8lwcaYoSXIIBgRNiOEQSug8aBfawx4RlgcEhED0GUOISF8+WgIoostujiizDGKOOMNNZo440XRAAAIf8LSW1hZ2VNYWdpY2sNZ2FtbWE9MC40NTQ1NQAh+QQBFAAAACwAAAAATgBNAAAE/xDISau9OOvNu/9gKI5kaZ5oqq5s675wLM9rYN+4Tau44P9AH243sgENyKQSCdQROTffckplCm5PTOBX7VJ/gSzF6C13r+HsVmBuf6/PrXv+Tc/k9LwSLtsO/oCBgoOEhYF8L36Gi4yMiCyKjZKTgI8pkZSZjZYmeHoFoKGgekx2J55zoqqhepxFApqrsqGariCYjbO6tJS2HqhlswnDxLNzvh3AXavEzc6rbsgbuIbMztfDq5PSGcpU1tjY0GbcF97fouHqCarRpr9sZqrr6+3k78nxwaH09KJt5SpsQYDgwDJ+/fyxKhNwwkCCBA1OSZew3kKG+DQ8hFhwybyK6v/seWkIYCNHiUgoggx58UzGbgI4QkRpQOVKcS2rkDR5MonNm89y1rkVU2ZEnwiBXvuHkajRiARrJlXajOnIl1qKGj0A8SdVdkKn7NR6kuPHr2AXcoW4ZOxTo16B/ltrNInbt2anUhVF92mpEDzfxgXJFy9EkhICPz17U1Xft4hLkjXMuKJjw4exwsTctbI/ugUeQ9a8mTMCcJ9lijYaOfFkyp6Xil4ts7XrVLKWgqJNm6Dt27h1EShsujbpafqCz1rb2/Bv4HmWz2z+9LnD5HQun6TO0fp1UlNWc/d9/MM5OuNHtzjfJn318iLYV0FgwD1r+K/Ag/eOXH8e/lBg559BS3FIMaBOAJonHyloiHGdgf6B4aBARggYDRr40VAhhGeAkaEaUQQh4hATxpfDiSWmqOKKLLbo4oswxijjjDReEAEAIf8LSW1hZ2VNYWdpY2sNZ2FtbWE9MC40NTQ1NQAh+QQBFAAAACwAAAAATgBNAAAE/xDISau9OOvNu/9gKI5kaZ5oqq5s675wLM9rYN+4Tau44P9AH243sgENyKQSCdQROTffckplCm5PTOBX7VJ/gSzF6C13r+HsVmBuf6/PrXv+Tc/k9LwSLtsO/oCBgoOEhYF8L36Gi4yMiCyKjZKTgI8pkZQDBZucm5mVdih4dJ2lnHqWJaNtpq2nc6lFApSutZyUsSCYjK4Jvr+uuKEiq16mv8jJpm65HsVVx8nSvstmzVCzjdHT06aS1xrPVKXc5QmlbeBabGbk5uXo1sMd4lOd7++d6fPY7Zz4+PSVUWdhC4KDB6D9A2hOoBeCYwQcnIggoRJ3DLnFe8gvg0GKCP8vLswI7xVHXRJBhkRyj2TJTfJQqlxpoKXLbibPdFw3c6XNm8pyVoEo4eNMiz+BAhNaR2bPAweTKj3HdApRAEZVQo06cupGnU61guyqVODWg1Z3Xsjak2uBqUs3nQW5R23BlG0pknXZaa7KJFex4s2LQCrDvoQRGAgsOPFEw/kQJ2bMNi9GgKX8tqU8OPHlhnM192Tc2LHbTQH9ilZJurTpwtvial4NsrVgUrYki81r+3YeVwR0vz7Yu54/U1tpE+7tW09N3QeUj7brjJ3zJKql16Ze/boS0donMo/oHUn4zdxRej8/PZF1N4rZzxzv8X15ZulV2b9/koZx/oDlJ4pAFABaRZ8u/12HhhgTrLEfKkIwWEEUD6aDhoB3OFjhHmBgGAeFQQQxhITE5GAiiSimqOKKLLbo4oswxijjjBdEAAA7';
35762
35712
 
35763
- var img$b = 'data:image/gif;base64,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';
35713
+ var img$a = 'data:image/gif;base64,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';
35764
35714
 
35765
- var img$c = 'data:image/gif;base64,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';
35715
+ var img$b = 'data:image/gif;base64,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';
35766
35716
 
35767
35717
  var DayNightPeriod = function DayNightPeriod(_ref) {
35768
35718
  var _periodOfDaySrcFiles;
35769
35719
  var periodOfDay = _ref.periodOfDay;
35770
- var periodOfDaySrcFiles = (_periodOfDaySrcFiles = {}, _periodOfDaySrcFiles[PeriodOfDay.Morning] = img$b, _periodOfDaySrcFiles[PeriodOfDay.Afternoon] = img$a, _periodOfDaySrcFiles[PeriodOfDay.Night] = img$c, _periodOfDaySrcFiles);
35720
+ var periodOfDaySrcFiles = (_periodOfDaySrcFiles = {}, _periodOfDaySrcFiles[PeriodOfDay.Morning] = img$a, _periodOfDaySrcFiles[PeriodOfDay.Afternoon] = img$9, _periodOfDaySrcFiles[PeriodOfDay.Night] = img$b, _periodOfDaySrcFiles);
35771
35721
  return React.createElement(GifContainer, null, React.createElement("img", {
35772
35722
  src: periodOfDaySrcFiles[periodOfDay]
35773
35723
  }));
@@ -35777,7 +35727,7 @@ var GifContainer = /*#__PURE__*/styled.div.withConfig({
35777
35727
  componentId: "sc-10t97fw-0"
35778
35728
  })(["width:100%;img{width:67%;}"]);
35779
35729
 
35780
- var img$d = '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';
35730
+ 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';
35781
35731
 
35782
35732
  var TimeWidget = function TimeWidget(_ref) {
35783
35733
  var onClose = _ref.onClose,
@@ -35792,7 +35742,7 @@ var TimeWidget = function TimeWidget(_ref) {
35792
35742
  var WidgetContainer = /*#__PURE__*/styled.div.withConfig({
35793
35743
  displayName: "TimeWidget__WidgetContainer",
35794
35744
  componentId: "sc-1ja236h-0"
35795
- })(["background-image:url(", ");background-size:10rem;background-repeat:no-repeat;width:10rem;position:absolute;height:100px;"], img$d);
35745
+ })(["background-image:url(", ");background-size:10rem;background-repeat:no-repeat;width:10rem;position:absolute;height:100px;"], img$c);
35796
35746
  var Time = /*#__PURE__*/styled.div.withConfig({
35797
35747
  displayName: "TimeWidget__Time",
35798
35748
  componentId: "sc-1ja236h-1"
@@ -36040,16 +35990,230 @@ var Truncate = function Truncate(_ref) {
36040
35990
  var _ref$maxLines = _ref.maxLines,
36041
35991
  maxLines = _ref$maxLines === void 0 ? 1 : _ref$maxLines,
36042
35992
  children = _ref.children;
36043
- return React.createElement(Container$k, {
35993
+ return React.createElement(Container$j, {
36044
35994
  maxLines: maxLines
36045
35995
  }, children);
36046
35996
  };
36047
- var Container$k = /*#__PURE__*/styled.div.withConfig({
35997
+ var Container$j = /*#__PURE__*/styled.div.withConfig({
36048
35998
  displayName: "Truncate__Container",
36049
35999
  componentId: "sc-6x00qb-0"
36050
36000
  })(["display:-webkit-box;max-width:100%;max-height:100%;-webkit-line-clamp:", ";-webkit-box-orient:vertical;overflow:hidden;"], function (props) {
36051
36001
  return props.maxLines;
36052
36002
  });
36053
36003
 
36054
- export { Button, ButtonTypes, CharacterSelection, Chat, ChatDeprecated, CheckButton, CircularController, CraftBook, DraggableContainer, Dropdown, DropdownSelectorContainer, DynamicText, EquipmentSet, ErrorBoundary, HistoryDialog, ImgSide, Input, InputRadio, ItemContainer$1 as ItemContainer, ItemSelector, ItemSlot, ListMenu, NPCDialog, NPCDialogType, NPCMultiDialog, ProgressBar, PropertySelect, QuestInfo, QuestList, QuestionDialog, QuickSpells, RPGUIContainer, RPGUIContainerTypes, RPGUIRoot, RangeSlider, RangeSliderType, SkillProgressBar, SkillsContainer, SpellShortcut, Spellbook, SpriteFromAtlas, TextArea, TimeWidget, TradingMenu, Truncate, _RPGUI, useEventListener };
36004
+ var IS_MOBILE_OR_TABLET = /*#__PURE__*/isMobileOrTablet();
36005
+
36006
+ var chunkString = function chunkString(str, length) {
36007
+ return str.match(new RegExp('.{1,' + length + '}', 'g'));
36008
+ };
36009
+
36010
+ var img$d = 'data:image/gif;base64,R0lGODlhEAAQAPIAAAAAABQYLiw1TUBJc2hvmQAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAM9CLrc/lCFGSKYJJP5AhlguDnBMIVgxXgmJapSSp3mKs/pKrT0IMCXUk+2Cgh2oSOnaDz+lswZpSOFUq2KBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAIzhI+py90Bg4OjDrjCELxfFQhQx0mIJkaeaYRp5LJADMdnqXbyOJLYTdKBejjZoRaZJBMFACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAABAAEAAAAjKEj6nL7Y+CDE6OO+QKQ/ifKYEgfR4VddPohQe7lmR0xidNTib65uacYP2AQWGuMlEUAAA7';
36011
+
36012
+ var NPCDialogText = function NPCDialogText(_ref) {
36013
+ var text = _ref.text,
36014
+ onClose = _ref.onClose,
36015
+ onEndStep = _ref.onEndStep,
36016
+ onStartStep = _ref.onStartStep,
36017
+ type = _ref.type;
36018
+ var windowSize = useRef([window.innerWidth, window.innerHeight]);
36019
+ function maxCharacters(width) {
36020
+ // Set the font size to 16 pixels
36021
+ var fontSize = 11.2;
36022
+ // Calculate the number of characters that can fit in one line
36023
+ var charactersPerLine = Math.floor(width / 2 / fontSize);
36024
+ // Calculate the number of lines that can fit in the div
36025
+ var linesPerDiv = Math.floor(180 / fontSize);
36026
+ // Calculate the maximum number of characters that can fit in the div
36027
+ var maxCharacters = charactersPerLine * linesPerDiv;
36028
+ // Return the maximum number of characters
36029
+ return Math.round(maxCharacters / 5);
36030
+ }
36031
+ var textChunks = chunkString(text, maxCharacters(windowSize.current[0]));
36032
+ var _useState = useState(0),
36033
+ chunkIndex = _useState[0],
36034
+ setChunkIndex = _useState[1];
36035
+ var onHandleSpacePress = function onHandleSpacePress(event) {
36036
+ if (event.code === 'Space') {
36037
+ goToNextStep();
36038
+ }
36039
+ };
36040
+ var goToNextStep = function goToNextStep() {
36041
+ var hasNextChunk = (textChunks == null ? void 0 : textChunks[chunkIndex + 1]) || false;
36042
+ if (hasNextChunk) {
36043
+ setChunkIndex(function (prev) {
36044
+ return prev + 1;
36045
+ });
36046
+ } else {
36047
+ // if there's no more text chunks, close the dialog
36048
+ onClose();
36049
+ }
36050
+ };
36051
+ useEffect(function () {
36052
+ document.addEventListener('keydown', onHandleSpacePress);
36053
+ return function () {
36054
+ return document.removeEventListener('keydown', onHandleSpacePress);
36055
+ };
36056
+ }, [chunkIndex]);
36057
+ var _useState2 = useState(false),
36058
+ showGoNextIndicator = _useState2[0],
36059
+ setShowGoNextIndicator = _useState2[1];
36060
+ return React.createElement(Container$k, null, React.createElement(DynamicText, {
36061
+ text: (textChunks == null ? void 0 : textChunks[chunkIndex]) || '',
36062
+ onFinish: function onFinish() {
36063
+ setShowGoNextIndicator(true);
36064
+ onEndStep && onEndStep();
36065
+ },
36066
+ onStart: function onStart() {
36067
+ setShowGoNextIndicator(false);
36068
+ onStartStep && onStartStep();
36069
+ }
36070
+ }), showGoNextIndicator && React.createElement(PressSpaceIndicator$1, {
36071
+ right: type === NPCDialogType.TextOnly ? '1rem' : '10.5rem',
36072
+ src: IS_MOBILE_OR_TABLET ? img$d : img$7,
36073
+ onPointerDown: function onPointerDown() {
36074
+ goToNextStep();
36075
+ }
36076
+ }));
36077
+ };
36078
+ var Container$k = /*#__PURE__*/styled.div.withConfig({
36079
+ displayName: "NPCDialogText__Container",
36080
+ componentId: "sc-1cxkdh9-0"
36081
+ })([""]);
36082
+ var PressSpaceIndicator$1 = /*#__PURE__*/styled.img.withConfig({
36083
+ displayName: "NPCDialogText__PressSpaceIndicator",
36084
+ componentId: "sc-1cxkdh9-1"
36085
+ })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref2) {
36086
+ var right = _ref2.right;
36087
+ return right;
36088
+ });
36089
+
36090
+ var NPCDialogType;
36091
+ (function (NPCDialogType) {
36092
+ NPCDialogType["TextOnly"] = "TextOnly";
36093
+ NPCDialogType["TextAndThumbnail"] = "TextAndThumbnail";
36094
+ })(NPCDialogType || (NPCDialogType = {}));
36095
+ var NPCDialog = function NPCDialog(_ref) {
36096
+ var text = _ref.text,
36097
+ type = _ref.type,
36098
+ _onClose = _ref.onClose,
36099
+ imagePath = _ref.imagePath,
36100
+ _ref$isQuestionDialog = _ref.isQuestionDialog,
36101
+ isQuestionDialog = _ref$isQuestionDialog === void 0 ? false : _ref$isQuestionDialog,
36102
+ questions = _ref.questions,
36103
+ answers = _ref.answers;
36104
+ return React.createElement(RPGUIContainer, {
36105
+ type: RPGUIContainerTypes.FramedGold,
36106
+ width: isQuestionDialog ? '600px' : '80%',
36107
+ height: '180px'
36108
+ }, isQuestionDialog && questions && answers ? React.createElement(React.Fragment, null, React.createElement(TextContainer$2, {
36109
+ flex: type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'
36110
+ }, React.createElement(QuestionDialog, {
36111
+ questions: questions,
36112
+ answers: answers,
36113
+ onClose: function onClose() {
36114
+ if (_onClose) {
36115
+ _onClose();
36116
+ }
36117
+ }
36118
+ })), type === NPCDialogType.TextAndThumbnail && React.createElement(ThumbnailContainer$1, null, React.createElement(NPCThumbnail$1, {
36119
+ src: imagePath || img$6
36120
+ }))) : React.createElement(React.Fragment, null, React.createElement(Container$l, null, React.createElement(TextContainer$2, {
36121
+ flex: type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'
36122
+ }, React.createElement(NPCDialogText, {
36123
+ type: type,
36124
+ text: text || 'No text provided.',
36125
+ onClose: function onClose() {
36126
+ if (_onClose) {
36127
+ _onClose();
36128
+ }
36129
+ }
36130
+ })), type === NPCDialogType.TextAndThumbnail && React.createElement(ThumbnailContainer$1, null, React.createElement(NPCThumbnail$1, {
36131
+ src: imagePath || img$6
36132
+ })))));
36133
+ };
36134
+ var Container$l = /*#__PURE__*/styled.div.withConfig({
36135
+ displayName: "NPCDialog__Container",
36136
+ componentId: "sc-1b4aw74-0"
36137
+ })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
36138
+ var TextContainer$2 = /*#__PURE__*/styled.div.withConfig({
36139
+ displayName: "NPCDialog__TextContainer",
36140
+ componentId: "sc-1b4aw74-1"
36141
+ })(["flex:", " 0 0;width:355px;"], function (_ref2) {
36142
+ var flex = _ref2.flex;
36143
+ return flex;
36144
+ });
36145
+ var ThumbnailContainer$1 = /*#__PURE__*/styled.div.withConfig({
36146
+ displayName: "NPCDialog__ThumbnailContainer",
36147
+ componentId: "sc-1b4aw74-2"
36148
+ })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
36149
+ var NPCThumbnail$1 = /*#__PURE__*/styled.img.withConfig({
36150
+ displayName: "NPCDialog__NPCThumbnail",
36151
+ componentId: "sc-1b4aw74-3"
36152
+ })(["image-rendering:pixelated;height:128px;width:128px;"]);
36153
+
36154
+ var HistoryDialog = function HistoryDialog(_ref) {
36155
+ var backgroundImgPath = _ref.backgroundImgPath,
36156
+ fullCoverBackground = _ref.fullCoverBackground,
36157
+ questions = _ref.questions,
36158
+ answers = _ref.answers,
36159
+ text = _ref.text,
36160
+ imagePath = _ref.imagePath,
36161
+ textAndTypeArray = _ref.textAndTypeArray,
36162
+ onClose = _ref.onClose;
36163
+ var _useState = useState(0),
36164
+ img = _useState[0],
36165
+ setImage = _useState[1];
36166
+ var onHandleSpacePress = function onHandleSpacePress(event) {
36167
+ if (event.code === 'Space') {
36168
+ if (img < (backgroundImgPath == null ? void 0 : backgroundImgPath.length) - 1) {
36169
+ setImage(function (prev) {
36170
+ return prev + 1;
36171
+ });
36172
+ } else {
36173
+ // if there's no more text chunks, close the dialog
36174
+ onClose();
36175
+ }
36176
+ }
36177
+ };
36178
+ useEffect(function () {
36179
+ document.addEventListener('keydown', onHandleSpacePress);
36180
+ return function () {
36181
+ return document.removeEventListener('keydown', onHandleSpacePress);
36182
+ };
36183
+ }, [backgroundImgPath]);
36184
+ return React.createElement(BackgroundContainer, {
36185
+ imgPath: backgroundImgPath[img],
36186
+ fullImg: fullCoverBackground
36187
+ }, React.createElement(DialogContainer, null, textAndTypeArray ? React.createElement(NPCMultiDialog, {
36188
+ textAndTypeArray: textAndTypeArray,
36189
+ onClose: onClose
36190
+ }) : questions && answers ? React.createElement(QuestionDialog, {
36191
+ questions: questions,
36192
+ answers: answers,
36193
+ onClose: onClose
36194
+ }) : text && imagePath ? React.createElement(NPCDialog, {
36195
+ text: text,
36196
+ imagePath: imagePath,
36197
+ onClose: onClose,
36198
+ type: NPCDialogType.TextAndThumbnail
36199
+ }) : React.createElement(NPCDialog, {
36200
+ text: text,
36201
+ onClose: onClose,
36202
+ type: NPCDialogType.TextOnly
36203
+ })));
36204
+ };
36205
+ var BackgroundContainer = /*#__PURE__*/styled.div.withConfig({
36206
+ displayName: "HistoryDialog__BackgroundContainer",
36207
+ componentId: "sc-u6oe75-0"
36208
+ })(["width:100%;height:100%;background-image:url(", ");background-size:", ";display:flex;justify-content:space-evenly;align-items:center;"], function (props) {
36209
+ return props.imgPath;
36210
+ }, function (props) {
36211
+ return props.imgPath ? 'cover' : 'auto';
36212
+ });
36213
+ var DialogContainer = /*#__PURE__*/styled.div.withConfig({
36214
+ displayName: "HistoryDialog__DialogContainer",
36215
+ componentId: "sc-u6oe75-1"
36216
+ })(["display:flex;justify-content:center;padding-top:200px;"]);
36217
+
36218
+ export { Button, ButtonTypes, CharacterSelection, Chat, ChatDeprecated, CheckButton, CircularController, CraftBook, DraggableContainer, Dropdown, DropdownSelectorContainer, DynamicText, EquipmentSet, ErrorBoundary, HistoryDialog, ImgSide, Input, InputRadio, ItemContainer$1 as ItemContainer, ItemSelector, ItemSlot, ListMenu, NPCDialog, NPCDialogType, NPCMultiDialog, ProgressBar, PropertySelect, QuestInfo, QuestList, QuestionDialog, RPGUIContainer, RPGUIContainerTypes, RPGUIRoot, RangeSlider, RangeSliderType, Shortcuts, SkillProgressBar, SkillsContainer, Spellbook, SpriteFromAtlas, TextArea, TimeWidget, TradingMenu, Truncate, _RPGUI, useEventListener };
36055
36219
  //# sourceMappingURL=long-bow.esm.js.map