@rpg-engine/long-bow 0.8.32 → 0.8.34

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.
@@ -31154,44 +31154,6 @@ var CellName = /*#__PURE__*/styled.h3.withConfig({
31154
31154
  componentId: "sc-w48fdf-2"
31155
31155
  })(["font-size:0.7rem;color:#fef08a;margin:0;text-align:center;font-family:'Press Start 2P',cursive;line-height:1.2;word-break:break-word;max-width:100%;"]);
31156
31156
 
31157
- var Collapsible = function Collapsible(_ref) {
31158
- var title = _ref.title,
31159
- children = _ref.children,
31160
- _ref$defaultOpen = _ref.defaultOpen,
31161
- defaultOpen = _ref$defaultOpen === void 0 ? false : _ref$defaultOpen,
31162
- className = _ref.className;
31163
- var _useState = useState(defaultOpen),
31164
- isOpen = _useState[0],
31165
- setIsOpen = _useState[1];
31166
- return React.createElement(Container$o, {
31167
- className: className
31168
- }, React.createElement(Header$1, {
31169
- onClick: function onClick() {
31170
- return setIsOpen(!isOpen);
31171
- }
31172
- }, React.createElement(Title$3, null, title), React.createElement(Icon$1, null, isOpen ? React.createElement(FaChevronUp, null) : React.createElement(FaChevronDown, null))), isOpen && React.createElement(Content$1, null, children));
31173
- };
31174
- var Container$o = /*#__PURE__*/styled.div.withConfig({
31175
- displayName: "Collapsible__Container",
31176
- componentId: "sc-s4h8ey-0"
31177
- })(["background:rgba(0,0,0,0.3);border-radius:4px;overflow:hidden;border:1px solid ", ";"], uiColors.darkGray);
31178
- var Header$1 = /*#__PURE__*/styled.div.withConfig({
31179
- displayName: "Collapsible__Header",
31180
- componentId: "sc-s4h8ey-1"
31181
- })(["padding:10px 12px;background:rgba(0,0,0,0.2);display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:background-color 0.2s ease;&:hover{background:rgba(0,0,0,0.4);}"]);
31182
- var Title$3 = /*#__PURE__*/styled.h3.withConfig({
31183
- displayName: "Collapsible__Title",
31184
- componentId: "sc-s4h8ey-2"
31185
- })(["margin:0;font-size:0.6rem;color:", ";font-family:'Press Start 2P',cursive;letter-spacing:0.5px;"], uiColors.yellow);
31186
- var Icon$1 = /*#__PURE__*/styled.span.withConfig({
31187
- displayName: "Collapsible__Icon",
31188
- componentId: "sc-s4h8ey-3"
31189
- })(["color:", ";font-size:0.6rem;display:flex;align-items:center;"], uiColors.yellow);
31190
- var Content$1 = /*#__PURE__*/styled.div.withConfig({
31191
- displayName: "Collapsible__Content",
31192
- componentId: "sc-s4h8ey-4"
31193
- })(["padding:6px;"]);
31194
-
31195
31157
  var BaseInformationDetails = function BaseInformationDetails(_ref) {
31196
31158
  var name = _ref.name,
31197
31159
  spriteKey = _ref.spriteKey,
@@ -31199,20 +31161,20 @@ var BaseInformationDetails = function BaseInformationDetails(_ref) {
31199
31161
  atlasIMG = _ref.atlasIMG,
31200
31162
  onBack = _ref.onBack,
31201
31163
  children = _ref.children;
31202
- return React.createElement(Container$p, null, React.createElement(Overlay, {
31164
+ return React.createElement(Container$o, null, React.createElement(Overlay, {
31203
31165
  onClick: onBack
31204
31166
  }), React.createElement(Modal, null, React.createElement(CloseButton$5, {
31205
31167
  onClick: onBack
31206
- }, React.createElement(FaTimes, null)), React.createElement(Header$2, null, React.createElement(SpriteContainer$2, null, React.createElement(SpriteFromAtlas, {
31168
+ }, React.createElement(FaTimes, null)), React.createElement(Header$1, null, React.createElement(SpriteContainer$2, null, React.createElement(SpriteFromAtlas, {
31207
31169
  atlasJSON: atlasJSON,
31208
31170
  atlasIMG: atlasIMG,
31209
31171
  spriteKey: spriteKey,
31210
31172
  width: 32,
31211
31173
  height: 32,
31212
31174
  imgScale: 1
31213
- })), React.createElement(Title$4, null, name)), React.createElement(Content$2, null, children)));
31175
+ })), React.createElement(Title$3, null, name)), React.createElement(Content$1, null, children)));
31214
31176
  };
31215
- var Container$p = /*#__PURE__*/styled.div.withConfig({
31177
+ var Container$o = /*#__PURE__*/styled.div.withConfig({
31216
31178
  displayName: "BaseInformationDetails__Container",
31217
31179
  componentId: "sc-1vguuz8-0"
31218
31180
  })(["position:fixed;inset:0;display:flex;justify-content:center;align-items:center;z-index:9999;"]);
@@ -31223,20 +31185,20 @@ var Overlay = /*#__PURE__*/styled.div.withConfig({
31223
31185
  var Modal = /*#__PURE__*/styled.div.withConfig({
31224
31186
  displayName: "BaseInformationDetails__Modal",
31225
31187
  componentId: "sc-1vguuz8-2"
31226
- })(["position:fixed;background-color:rgba(0,0,0,0.95);border-radius:4px;padding:12px;overflow:hidden;z-index:1;font-family:'Press Start 2P',cursive;border:1px solid ", ";box-shadow:0 2px 4px rgba(0,0,0,0.2);width:90%;height:90%;top:5%;left:5%;max-width:800px;margin:0 auto;@media (max-width:768px){width:100%;height:100%;top:0;left:0;border-radius:0;padding:8px;}&::-webkit-scrollbar{width:2px;}&::-webkit-scrollbar-track{background:transparent;}&::-webkit-scrollbar-thumb{background-color:", ";border-radius:4px;opacity:0.5;&:hover{opacity:1;}}scrollbar-width:thin;scrollbar-color:", " transparent;"], uiColors.darkGray, uiColors.yellow, uiColors.yellow);
31188
+ })(["position:relative;background-color:rgba(0,0,0,0.95);border-radius:4px;padding:12px;overflow:hidden;z-index:1;font-family:'Press Start 2P',cursive;border:1px solid ", ";box-shadow:0 2px 4px rgba(0,0,0,0.2);width:90%;height:90vh;max-width:800px;max-height:800px;@media (max-width:768px){width:100%;height:100%;border-radius:0;padding:8px;}&::-webkit-scrollbar{width:2px;}&::-webkit-scrollbar-track{background:transparent;}&::-webkit-scrollbar-thumb{background-color:", ";border-radius:4px;opacity:0.5;&:hover{opacity:1;}}scrollbar-width:thin;scrollbar-color:", " transparent;"], uiColors.darkGray, uiColors.yellow, uiColors.yellow);
31227
31189
  var CloseButton$5 = /*#__PURE__*/styled.button.withConfig({
31228
31190
  displayName: "BaseInformationDetails__CloseButton",
31229
31191
  componentId: "sc-1vguuz8-3"
31230
31192
  })(["position:absolute;top:20px;right:20px;background:none;border:none;color:", ";font-size:1.2rem;cursor:pointer;padding:0;z-index:1;transition:transform 0.2s ease;&:hover{transform:scale(1.1);}"], uiColors.yellow);
31231
- var Header$2 = /*#__PURE__*/styled.div.withConfig({
31193
+ var Header$1 = /*#__PURE__*/styled.div.withConfig({
31232
31194
  displayName: "BaseInformationDetails__Header",
31233
31195
  componentId: "sc-1vguuz8-4"
31234
31196
  })(["display:flex;align-items:center;gap:16px;margin-bottom:24px;"]);
31235
- var Content$2 = /*#__PURE__*/styled.div.withConfig({
31197
+ var Content$1 = /*#__PURE__*/styled.div.withConfig({
31236
31198
  displayName: "BaseInformationDetails__Content",
31237
31199
  componentId: "sc-1vguuz8-5"
31238
31200
  })(["display:flex;flex-direction:column;gap:12px;height:calc(100% - 80px);overflow-y:auto;overflow-x:hidden;padding-right:6px;margin-right:-6px;@media (max-width:768px){height:calc(100% - 64px);gap:8px;padding-right:4px;margin-right:-4px;}"]);
31239
- var Title$4 = /*#__PURE__*/styled.h2.withConfig({
31201
+ var Title$3 = /*#__PURE__*/styled.h2.withConfig({
31240
31202
  displayName: "BaseInformationDetails__Title",
31241
31203
  componentId: "sc-1vguuz8-6"
31242
31204
  })(["color:", ";font-size:1rem;margin:0;"], uiColors.yellow);
@@ -31245,6 +31207,44 @@ var SpriteContainer$2 = /*#__PURE__*/styled.div.withConfig({
31245
31207
  componentId: "sc-1vguuz8-7"
31246
31208
  })(["width:64px;height:64px;background:rgba(0,0,0,0.3);border-radius:4px;display:flex;justify-content:center;align-items:center;position:relative;.sprite-from-atlas-img{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(2);transform-origin:center;}"]);
31247
31209
 
31210
+ var Collapsible = function Collapsible(_ref) {
31211
+ var title = _ref.title,
31212
+ children = _ref.children,
31213
+ _ref$defaultOpen = _ref.defaultOpen,
31214
+ defaultOpen = _ref$defaultOpen === void 0 ? false : _ref$defaultOpen,
31215
+ className = _ref.className;
31216
+ var _useState = useState(defaultOpen),
31217
+ isOpen = _useState[0],
31218
+ setIsOpen = _useState[1];
31219
+ return React.createElement(Container$p, {
31220
+ className: className
31221
+ }, React.createElement(Header$2, {
31222
+ onClick: function onClick() {
31223
+ return setIsOpen(!isOpen);
31224
+ }
31225
+ }, React.createElement(Title$4, null, title), React.createElement(Icon$1, null, isOpen ? React.createElement(FaChevronUp, null) : React.createElement(FaChevronDown, null))), isOpen && React.createElement(Content$2, null, children));
31226
+ };
31227
+ var Container$p = /*#__PURE__*/styled.div.withConfig({
31228
+ displayName: "Collapsible__Container",
31229
+ componentId: "sc-s4h8ey-0"
31230
+ })(["background:rgba(0,0,0,0.3);border-radius:4px;overflow:hidden;border:1px solid ", ";"], uiColors.darkGray);
31231
+ var Header$2 = /*#__PURE__*/styled.div.withConfig({
31232
+ displayName: "Collapsible__Header",
31233
+ componentId: "sc-s4h8ey-1"
31234
+ })(["padding:10px 12px;background:rgba(0,0,0,0.2);display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:background-color 0.2s ease;&:hover{background:rgba(0,0,0,0.4);}"]);
31235
+ var Title$4 = /*#__PURE__*/styled.h3.withConfig({
31236
+ displayName: "Collapsible__Title",
31237
+ componentId: "sc-s4h8ey-2"
31238
+ })(["margin:0;font-size:0.6rem;color:", ";font-family:'Press Start 2P',cursive;letter-spacing:0.5px;"], uiColors.yellow);
31239
+ var Icon$1 = /*#__PURE__*/styled.span.withConfig({
31240
+ displayName: "Collapsible__Icon",
31241
+ componentId: "sc-s4h8ey-3"
31242
+ })(["color:", ";font-size:0.6rem;display:flex;align-items:center;"], uiColors.yellow);
31243
+ var Content$2 = /*#__PURE__*/styled.div.withConfig({
31244
+ displayName: "Collapsible__Content",
31245
+ componentId: "sc-s4h8ey-4"
31246
+ })(["padding:6px;"]);
31247
+
31248
31248
  var InformationCenterItemDetails = function InformationCenterItemDetails(_ref) {
31249
31249
  var item = _ref.item,
31250
31250
  itemsAtlasJSON = _ref.itemsAtlasJSON,
@@ -31756,7 +31756,15 @@ var InformationCenterItemsSection = function InformationCenterItemsSection(_ref)
31756
31756
  }
31757
31757
  }, React.createElement(InformationCenterItemTooltip, {
31758
31758
  item: tooltipState.item
31759
- }))), selectedItem && React.createElement(Portal, null, React.createElement(InformationCenterItemDetails, {
31759
+ }))), selectedItem && React.createElement(Portal, null, React.createElement(BaseInformationDetails, {
31760
+ name: selectedItem.name,
31761
+ spriteKey: selectedItem.texturePath,
31762
+ atlasJSON: itemsAtlasJSON,
31763
+ atlasIMG: itemsAtlasIMG,
31764
+ onBack: function onBack() {
31765
+ return setSelectedItem(null);
31766
+ }
31767
+ }, React.createElement(InformationCenterItemDetails, {
31760
31768
  item: selectedItem,
31761
31769
  itemsAtlasJSON: itemsAtlasJSON,
31762
31770
  itemsAtlasIMG: itemsAtlasIMG,
@@ -31764,7 +31772,7 @@ var InformationCenterItemsSection = function InformationCenterItemsSection(_ref)
31764
31772
  onBack: function onBack() {
31765
31773
  return setSelectedItem(null);
31766
31774
  }
31767
- })));
31775
+ }))));
31768
31776
  };
31769
31777
  var TooltipWrapper = /*#__PURE__*/styled.div.withConfig({
31770
31778
  displayName: "InformationCenterItemsSection__TooltipWrapper",
@@ -31871,6 +31879,12 @@ var InformationCenterNPCDetails = function InformationCenterNPCDetails(_ref) {
31871
31879
  var _useState2 = useState(1),
31872
31880
  currentLootPage = _useState2[0],
31873
31881
  setCurrentLootPage = _useState2[1];
31882
+ var _useState3 = useState(null),
31883
+ selectedItem = _useState3[0],
31884
+ setSelectedItem = _useState3[1];
31885
+ useEffect(function () {
31886
+ setCurrentLootPage(1);
31887
+ }, [lootSearchQuery]);
31874
31888
  var formatText = function formatText(text) {
31875
31889
  if (typeof text === 'number') {
31876
31890
  return text.toString();
@@ -31902,6 +31916,25 @@ var InformationCenterNPCDetails = function InformationCenterNPCDetails(_ref) {
31902
31916
  })) || [];
31903
31917
  var totalLootPages = Math.ceil(filteredLoots.length / ITEMS_PER_PAGE$1);
31904
31918
  var paginatedLoots = filteredLoots.slice((currentLootPage - 1) * ITEMS_PER_PAGE$1, currentLootPage * ITEMS_PER_PAGE$1);
31919
+ var handleItemClick = function handleItemClick(loot) {
31920
+ var item = {
31921
+ key: loot.itemBlueprintKey,
31922
+ name: formatItemName(loot.itemBlueprintKey),
31923
+ texturePath: loot.itemBlueprintKey,
31924
+ textureAtlas: 'items',
31925
+ type: ItemType.Weapon,
31926
+ subType: ItemSubType.Sword,
31927
+ tier: 1,
31928
+ rarity: ItemRarities.Common,
31929
+ weight: 0,
31930
+ maxStackSize: loot.quantityRange ? loot.quantityRange[1] : 1,
31931
+ canSell: true,
31932
+ description: 'A basic item.',
31933
+ basePrice: 100,
31934
+ allowedEquipSlotType: []
31935
+ };
31936
+ setSelectedItem(item);
31937
+ };
31905
31938
  return React.createElement(BaseInformationDetails, {
31906
31939
  name: npc.name,
31907
31940
  spriteKey: npc.key,
@@ -31916,11 +31949,17 @@ var InformationCenterNPCDetails = function InformationCenterNPCDetails(_ref) {
31916
31949
  defaultOpen: !isMobile
31917
31950
  }, React.createElement(LootSearchContainer, null, React.createElement(StyledSearchBar$1, {
31918
31951
  value: lootSearchQuery,
31919
- onChange: setLootSearchQuery,
31952
+ onChange: function onChange(query) {
31953
+ setLootSearchQuery(query);
31954
+ setCurrentLootPage(1);
31955
+ },
31920
31956
  placeholder: "Search loot..."
31921
31957
  })), React.createElement(LootGrid, null, paginatedLoots.map(function (loot, index) {
31922
31958
  return React.createElement(LootItem, {
31923
- key: index
31959
+ key: loot.itemBlueprintKey + "-" + index,
31960
+ onClick: function onClick() {
31961
+ return handleItemClick(loot);
31962
+ }
31924
31963
  }, React.createElement(SpriteFromAtlas, {
31925
31964
  atlasJSON: itemsAtlasJSON,
31926
31965
  atlasIMG: itemsAtlasIMG,
@@ -31954,7 +31993,15 @@ var InformationCenterNPCDetails = function InformationCenterNPCDetails(_ref) {
31954
31993
  height: 24,
31955
31994
  imgScale: 1
31956
31995
  })), React.createElement(SpellContent, null, React.createElement(SpellName, null, formatText(spell.spellKey)), React.createElement(SpellDetails, null, "Power: ", React.createElement(SpellValue, null, formatText(spell.power)), React.createElement(Separator, null, "\u2022"), "Chance: ", React.createElement(SpellValue, null, spell.probability, "%"))));
31957
- }))));
31996
+ }))), selectedItem && React.createElement(Portal, null, React.createElement(InformationCenterItemDetails, {
31997
+ item: selectedItem,
31998
+ itemsAtlasJSON: itemsAtlasJSON,
31999
+ itemsAtlasIMG: itemsAtlasIMG,
32000
+ droppedBy: [npc],
32001
+ onBack: function onBack() {
32002
+ return setSelectedItem(null);
32003
+ }
32004
+ })));
31958
32005
  };
31959
32006
  var InfoSection$1 = /*#__PURE__*/styled.div.withConfig({
31960
32007
  displayName: "InformationCenterNPCDetails__InfoSection",
@@ -32039,27 +32086,27 @@ var LootGrid = /*#__PURE__*/styled.div.withConfig({
32039
32086
  var LootItem = /*#__PURE__*/styled.div.withConfig({
32040
32087
  displayName: "InformationCenterNPCDetails__LootItem",
32041
32088
  componentId: "sc-fdu3xl-20"
32042
- })(["display:flex;align-items:center;gap:4px;background:rgba(255,255,255,0.05);padding:4px;border-radius:4px;min-width:0;"]);
32089
+ })(["display:flex;align-items:center;gap:4px;background:rgba(255,255,255,0.05);padding:4px;border-radius:4px;min-width:0;cursor:pointer;user-select:none;transition:background-color 0.2s ease;&:hover{background:rgba(255,255,255,0.1);}"]);
32043
32090
  var LootDetails = /*#__PURE__*/styled.div.withConfig({
32044
32091
  displayName: "InformationCenterNPCDetails__LootDetails",
32045
32092
  componentId: "sc-fdu3xl-21"
32046
- })(["flex:1;display:flex;flex-direction:column;gap:4px;"]);
32093
+ })(["flex:1;display:flex;flex-direction:column;gap:4px;user-select:none;"]);
32047
32094
  var LootName = /*#__PURE__*/styled.div.withConfig({
32048
32095
  displayName: "InformationCenterNPCDetails__LootName",
32049
32096
  componentId: "sc-fdu3xl-22"
32050
- })(["color:", ";font-size:0.5rem;"], uiColors.white);
32097
+ })(["color:", ";font-size:0.5rem;user-select:none;"], uiColors.white);
32051
32098
  var LootInfo = /*#__PURE__*/styled.div.withConfig({
32052
32099
  displayName: "InformationCenterNPCDetails__LootInfo",
32053
32100
  componentId: "sc-fdu3xl-23"
32054
- })(["display:flex;align-items:center;gap:8px;"]);
32101
+ })(["display:flex;align-items:center;gap:8px;user-select:none;"]);
32055
32102
  var LootChance = /*#__PURE__*/styled.span.withConfig({
32056
32103
  displayName: "InformationCenterNPCDetails__LootChance",
32057
32104
  componentId: "sc-fdu3xl-24"
32058
- })(["color:", ";font-size:0.45rem;"], uiColors.yellow);
32105
+ })(["color:", ";font-size:0.45rem;user-select:none;"], uiColors.yellow);
32059
32106
  var LootQuantity = /*#__PURE__*/styled.span.withConfig({
32060
32107
  displayName: "InformationCenterNPCDetails__LootQuantity",
32061
32108
  componentId: "sc-fdu3xl-25"
32062
- })(["color:", ";font-size:0.45rem;"], uiColors.lightGray);
32109
+ })(["color:", ";font-size:0.45rem;user-select:none;"], uiColors.lightGray);
32063
32110
  var PaginationContainer$2 = /*#__PURE__*/styled.div.withConfig({
32064
32111
  displayName: "InformationCenterNPCDetails__PaginationContainer",
32065
32112
  componentId: "sc-fdu3xl-26"
@@ -32311,7 +32358,15 @@ var InformationCenterBestiarySection = function InformationCenterBestiarySection
32311
32358
  npc: tooltipState.item,
32312
32359
  itemsAtlasJSON: itemsAtlasJSON,
32313
32360
  itemsAtlasIMG: itemsAtlasIMG
32314
- }))), selectedMonster && React.createElement(Portal, null, React.createElement(InformationCenterNPCDetails, {
32361
+ }))), selectedMonster && React.createElement(Portal, null, React.createElement(BaseInformationDetails, {
32362
+ name: selectedMonster.name,
32363
+ spriteKey: selectedMonster.key,
32364
+ atlasJSON: entitiesAtlasJSON,
32365
+ atlasIMG: entitiesAtlasIMG,
32366
+ onBack: function onBack() {
32367
+ return setSelectedMonster(null);
32368
+ }
32369
+ }, React.createElement(InformationCenterNPCDetails, {
32315
32370
  npc: selectedMonster,
32316
32371
  itemsAtlasJSON: itemsAtlasJSON,
32317
32372
  itemsAtlasIMG: itemsAtlasIMG,
@@ -32322,7 +32377,7 @@ var InformationCenterBestiarySection = function InformationCenterBestiarySection
32322
32377
  onBack: function onBack() {
32323
32378
  return setSelectedMonster(null);
32324
32379
  }
32325
- })));
32380
+ }))));
32326
32381
  };
32327
32382
  var TooltipWrapper$1 = /*#__PURE__*/styled.div.withConfig({
32328
32383
  displayName: "InformationCenterBestiarySection__TooltipWrapper",