@rpg-engine/long-bow 0.3.95 → 0.3.97
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CircularController/CircularController.d.ts +1 -0
- package/dist/components/Shortcuts/Shortcuts.d.ts +1 -0
- package/dist/components/Shortcuts/useShortcutCooldown.d.ts +4 -0
- package/dist/components/Spellbook/Spell.d.ts +1 -0
- package/dist/components/Spellbook/Spellbook.d.ts +1 -0
- package/dist/long-bow.cjs.development.js +128 -41
- package/dist/long-bow.cjs.development.js.map +1 -1
- package/dist/long-bow.cjs.production.min.js +1 -1
- package/dist/long-bow.cjs.production.min.js.map +1 -1
- package/dist/long-bow.esm.js +128 -41
- package/dist/long-bow.esm.js.map +1 -1
- package/package.json +2 -2
- package/src/components/CircularController/CircularController.tsx +36 -3
- package/src/components/Item/Cards/ItemInfo.tsx +51 -5
- package/src/components/Item/Cards/ItemInfoDisplay.tsx +9 -2
- package/src/components/Item/Cards/MobileItemTooltip.tsx +3 -3
- package/src/components/Shortcuts/Shortcuts.tsx +47 -8
- package/src/components/Shortcuts/SingleShortcut.ts +20 -0
- package/src/components/Shortcuts/useShortcutCooldown.ts +24 -0
- package/src/components/Spellbook/Spell.tsx +27 -2
- package/src/components/Spellbook/Spellbook.tsx +5 -0
- package/src/constants/uiColors.ts +1 -1
- package/src/mocks/equipmentSet.mocks.ts +1 -1
- package/src/mocks/itemContainer.mocks.ts +42 -0
|
@@ -12650,7 +12650,7 @@ var uiColors = {
|
|
|
12650
12650
|
blue: '#597DCE',
|
|
12651
12651
|
darkBlue: '#30346D',
|
|
12652
12652
|
brown: '#854C30',
|
|
12653
|
-
lightGreen: '#
|
|
12653
|
+
lightGreen: '#66cd1c',
|
|
12654
12654
|
brownGreen: '#346524'
|
|
12655
12655
|
};
|
|
12656
12656
|
|
|
@@ -12849,7 +12849,31 @@ var CheckButton = function CheckButton(_ref) {
|
|
|
12849
12849
|
var SingleShortcut = /*#__PURE__*/styled.button.withConfig({
|
|
12850
12850
|
displayName: "SingleShortcut",
|
|
12851
12851
|
componentId: "sc-vz5ev8-0"
|
|
12852
|
-
})(["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);
|
|
12852
|
+
})(["width:3rem;height:3rem;background-color:", ";border:2px solid ", ";border-radius:50%;text-transform:uppercase;font-size:0.7rem;font-weight:bold;display:flex;align-items:center;justify-content:center;position:relative;span{pointer-events:none;}.mana{position:absolute;top:-5px;right:0;font-size:0.65rem;color:", ";}.qty{position:absolute;top:-5px;right:0;font-size:0.65rem;}.magicWords{margin-top:4px;}.keyboard{position:absolute;bottom:-5px;left:0;font-size:0.65rem;color:", ";}.onCooldown{color:", ";}.cooldown{position:absolute;z-index:1;top:0;left:0;width:100%;height:100%;border-radius:inherit;background-color:rgba(0 0 0 / 60%);font-size:0.7rem;display:flex;align-items:center;justify-content:center;color:", ";}&:hover,&:focus{background-color:", ";}&:active{background-color:", ";border-color:", ";}&:disabled{opacity:0.5;}"], uiColors.lightGray, uiColors.darkGray, uiColors.blue, uiColors.yellow, uiColors.gray, uiColors.darkYellow, uiColors.darkGray, uiColors.gray, uiColors.yellow);
|
|
12853
|
+
|
|
12854
|
+
var useShortcutCooldown = function useShortcutCooldown(onShortcutCast) {
|
|
12855
|
+
var _useState = React.useState(0),
|
|
12856
|
+
shortcutCooldown = _useState[0],
|
|
12857
|
+
setShortcutCooldown = _useState[1];
|
|
12858
|
+
var cooldownTimeout = React.useRef(null);
|
|
12859
|
+
var handleShortcutCast = function handleShortcutCast(index) {
|
|
12860
|
+
console.log(shortcutCooldown);
|
|
12861
|
+
if (shortcutCooldown <= 0) setShortcutCooldown(1.5);
|
|
12862
|
+
onShortcutCast(index);
|
|
12863
|
+
};
|
|
12864
|
+
React.useEffect(function () {
|
|
12865
|
+
if (cooldownTimeout.current) clearTimeout(cooldownTimeout.current);
|
|
12866
|
+
if (shortcutCooldown > 0) {
|
|
12867
|
+
cooldownTimeout.current = setTimeout(function () {
|
|
12868
|
+
setShortcutCooldown(shortcutCooldown - 0.1);
|
|
12869
|
+
}, 100);
|
|
12870
|
+
}
|
|
12871
|
+
}, [shortcutCooldown]);
|
|
12872
|
+
return {
|
|
12873
|
+
shortcutCooldown: shortcutCooldown,
|
|
12874
|
+
handleShortcutCast: handleShortcutCast
|
|
12875
|
+
};
|
|
12876
|
+
};
|
|
12853
12877
|
|
|
12854
12878
|
var CircularController = function CircularController(_ref) {
|
|
12855
12879
|
var onActionClick = _ref.onActionClick,
|
|
@@ -12859,7 +12883,11 @@ var CircularController = function CircularController(_ref) {
|
|
|
12859
12883
|
shortcuts = _ref.shortcuts,
|
|
12860
12884
|
inventory = _ref.inventory,
|
|
12861
12885
|
atlasIMG = _ref.atlasIMG,
|
|
12862
|
-
atlasJSON = _ref.atlasJSON
|
|
12886
|
+
atlasJSON = _ref.atlasJSON,
|
|
12887
|
+
spellCooldowns = _ref.spellCooldowns;
|
|
12888
|
+
var _useShortcutCooldown = useShortcutCooldown(onShortcutClick),
|
|
12889
|
+
handleShortcutCast = _useShortcutCooldown.handleShortcutCast,
|
|
12890
|
+
shortcutCooldown = _useShortcutCooldown.shortcutCooldown;
|
|
12863
12891
|
var onTouchStart = function onTouchStart(e) {
|
|
12864
12892
|
var target = e.target;
|
|
12865
12893
|
target == null ? void 0 : target.classList.add('active');
|
|
@@ -12872,10 +12900,14 @@ var CircularController = function CircularController(_ref) {
|
|
|
12872
12900
|
action();
|
|
12873
12901
|
};
|
|
12874
12902
|
var renderShortcut = function renderShortcut(i) {
|
|
12875
|
-
var _shortcuts$i, _shortcuts$i2, _shortcuts$i4, _payload$manaCost;
|
|
12903
|
+
var _shortcuts$i, _shortcuts$i2, _shortcuts$i4, _spellCooldowns$paylo, _payload$manaCost;
|
|
12904
|
+
var buildClassName = function buildClassName(classBase, isOnCooldown) {
|
|
12905
|
+
return classBase + " " + (isOnCooldown ? 'onCooldown' : '');
|
|
12906
|
+
};
|
|
12876
12907
|
var variant = '';
|
|
12877
12908
|
if (i === 0) variant = 'top';else if (i >= 3) variant = "bottom-" + (i - 3);
|
|
12878
|
-
var onShortcutClickBinded = ((_shortcuts$i = shortcuts[i]) == null ? void 0 : _shortcuts$i.type) !== shared.ShortcutType.None ?
|
|
12909
|
+
var onShortcutClickBinded = ((_shortcuts$i = shortcuts[i]) == null ? void 0 : _shortcuts$i.type) !== shared.ShortcutType.None ? handleShortcutCast.bind(null, i) : function () {};
|
|
12910
|
+
var isOnShortcutCooldown = shortcutCooldown > 0;
|
|
12879
12911
|
if (((_shortcuts$i2 = shortcuts[i]) == null ? void 0 : _shortcuts$i2.type) === shared.ShortcutType.Item) {
|
|
12880
12912
|
var _shortcuts$i3;
|
|
12881
12913
|
var _payload = (_shortcuts$i3 = shortcuts[i]) == null ? void 0 : _shortcuts$i3.payload;
|
|
@@ -12898,7 +12930,9 @@ var CircularController = function CircularController(_ref) {
|
|
|
12898
12930
|
onTouchEnd: onTouchEnd.bind(null, onShortcutClickBinded),
|
|
12899
12931
|
disabled: false,
|
|
12900
12932
|
className: variant
|
|
12901
|
-
},
|
|
12933
|
+
}, isOnShortcutCooldown && React__default.createElement("span", {
|
|
12934
|
+
className: "cooldown"
|
|
12935
|
+
}, shortcutCooldown.toFixed(1)), _payload && React__default.createElement(SpriteFromAtlas, {
|
|
12902
12936
|
atlasIMG: atlasIMG,
|
|
12903
12937
|
atlasJSON: atlasJSON,
|
|
12904
12938
|
spriteKey: shared.getItemTextureKeyPath({
|
|
@@ -12917,18 +12951,23 @@ var CircularController = function CircularController(_ref) {
|
|
|
12917
12951
|
pointerEvents: 'none'
|
|
12918
12952
|
}
|
|
12919
12953
|
}), React__default.createElement("span", {
|
|
12920
|
-
className:
|
|
12954
|
+
className: buildClassName('qty', isOnShortcutCooldown)
|
|
12921
12955
|
}, totalQty));
|
|
12922
12956
|
}
|
|
12923
12957
|
var payload = (_shortcuts$i4 = shortcuts[i]) == null ? void 0 : _shortcuts$i4.payload;
|
|
12958
|
+
var spellCooldown = !payload ? 0 : (_spellCooldowns$paylo = spellCooldowns == null ? void 0 : spellCooldowns[payload.magicWords.replaceAll(' ', '_')]) != null ? _spellCooldowns$paylo : shortcutCooldown;
|
|
12959
|
+
var cooldown = spellCooldown > shortcutCooldown ? spellCooldown : shortcutCooldown;
|
|
12960
|
+
var isOnCooldown = cooldown > 0 && !!payload;
|
|
12924
12961
|
return React__default.createElement(StyledShortcut, {
|
|
12925
12962
|
key: i,
|
|
12926
12963
|
onTouchStart: onTouchStart,
|
|
12927
12964
|
onTouchEnd: onTouchEnd.bind(null, onShortcutClickBinded),
|
|
12928
12965
|
disabled: mana < ((_payload$manaCost = payload == null ? void 0 : payload.manaCost) != null ? _payload$manaCost : 0),
|
|
12929
12966
|
className: variant
|
|
12930
|
-
}, React__default.createElement("span", {
|
|
12931
|
-
className: "
|
|
12967
|
+
}, isOnCooldown && React__default.createElement("span", {
|
|
12968
|
+
className: "cooldown"
|
|
12969
|
+
}, cooldown.toFixed(cooldown < 10 ? 1 : 0)), React__default.createElement("span", {
|
|
12970
|
+
className: buildClassName('mana', isOnCooldown)
|
|
12932
12971
|
}, payload && payload.manaCost), React__default.createElement("span", {
|
|
12933
12972
|
className: "magicWords"
|
|
12934
12973
|
}, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
|
|
@@ -13256,15 +13295,15 @@ var MobileItemTooltip = function MobileItemTooltip(_ref) {
|
|
|
13256
13295
|
var Container$9 = /*#__PURE__*/styled.div.withConfig({
|
|
13257
13296
|
displayName: "MobileItemTooltip__Container",
|
|
13258
13297
|
componentId: "sc-ku4p1j-0"
|
|
13259
|
-
})(["position:absolute;z-index:100;left:0;top:0;width:100vw;height:100vh;background-color:rgba(0 0 0 / 0.5);display:flex;justify-content:center;align-items:center;gap:0.5rem;transition:opacity 0.08s;animation:fadeIn 0.1s forwards;@keyframes fadeIn{0%{opacity:0;}100%{opacity:0.92;}}@keyframes fadeOut{0%{opacity:0.92;}100%{opacity:0;}}&.fadeOut{animation:fadeOut 0.1s forwards;}@media (max-width:
|
|
13298
|
+
})(["position:absolute;z-index:100;left:0;top:0;width:100vw;height:100vh;background-color:rgba(0 0 0 / 0.5);display:flex;justify-content:center;align-items:center;gap:0.5rem;transition:opacity 0.08s;animation:fadeIn 0.1s forwards;@keyframes fadeIn{0%{opacity:0;}100%{opacity:0.92;}}@keyframes fadeOut{0%{opacity:0.92;}100%{opacity:0;}}&.fadeOut{animation:fadeOut 0.1s forwards;}@media (max-width:640px){flex-direction:column;}"]);
|
|
13260
13299
|
var OptionsContainer = /*#__PURE__*/styled.div.withConfig({
|
|
13261
13300
|
displayName: "MobileItemTooltip__OptionsContainer",
|
|
13262
13301
|
componentId: "sc-ku4p1j-1"
|
|
13263
|
-
})(["display:flex;flex-direction:column;gap:0.5rem;flex-wrap:wrap;@media (max-width:
|
|
13302
|
+
})(["display:flex;flex-direction:column;gap:0.5rem;flex-wrap:wrap;@media (max-width:640px){flex-direction:row;justify-content:center;}"]);
|
|
13264
13303
|
var Option = /*#__PURE__*/styled.button.withConfig({
|
|
13265
13304
|
displayName: "MobileItemTooltip__Option",
|
|
13266
13305
|
componentId: "sc-ku4p1j-2"
|
|
13267
|
-
})(["padding:1rem;background-color:#333;color:white;border:none;border-radius:3px;width:8rem;transition:background-color 0.1s;&:hover{background-color:#555;}@media (max-width:
|
|
13306
|
+
})(["padding:1rem;background-color:#333;color:white;border:none;border-radius:3px;width:8rem;transition:background-color 0.1s;&:hover{background-color:#555;}@media (max-width:640px){padding:1rem 0.5rem;}"]);
|
|
13268
13307
|
|
|
13269
13308
|
var generateContextMenuListOptions = function generateContextMenuListOptions(actionsByTypeList) {
|
|
13270
13309
|
var contextMenu = actionsByTypeList.map(function (action) {
|
|
@@ -13838,6 +13877,15 @@ var ItemInfo = function ItemInfo(_ref) {
|
|
|
13838
13877
|
}
|
|
13839
13878
|
return statistics;
|
|
13840
13879
|
};
|
|
13880
|
+
var renderEntityEffects = function renderEntityEffects() {
|
|
13881
|
+
if (!item.entityEffects || !item.entityEffectChance) return null;
|
|
13882
|
+
return item.entityEffects.map(function (effect, index) {
|
|
13883
|
+
return React__default.createElement(Statistic, {
|
|
13884
|
+
key: index,
|
|
13885
|
+
"$isSpecial": true
|
|
13886
|
+
}, effect[0].toUpperCase() + effect.slice(1), " (", item.entityEffectChance, "%)");
|
|
13887
|
+
});
|
|
13888
|
+
};
|
|
13841
13889
|
var renderAvaibleSlots = function renderAvaibleSlots() {
|
|
13842
13890
|
if (!item.allowedEquipSlotType) return null;
|
|
13843
13891
|
return item.allowedEquipSlotType.map(function (slotType, index) {
|
|
@@ -13861,12 +13909,20 @@ var ItemInfo = function ItemInfo(_ref) {
|
|
|
13861
13909
|
item: item
|
|
13862
13910
|
}, React__default.createElement(Header, null, React__default.createElement("div", null, React__default.createElement(Title$1, null, item.name), item.rarity !== 'Common' && React__default.createElement(Rarity, {
|
|
13863
13911
|
item: item
|
|
13864
|
-
}, item.rarity), React__default.createElement(Type, null, item.subType)), React__default.createElement(AllowedSlots, null, renderAvaibleSlots())),
|
|
13912
|
+
}, item.rarity), React__default.createElement(Type, null, item.subType)), React__default.createElement(AllowedSlots, null, renderAvaibleSlots())), item.minRequirements && React__default.createElement(LevelRequirement, null, React__default.createElement("div", {
|
|
13913
|
+
className: "title"
|
|
13914
|
+
}, "Requirements:"), React__default.createElement("div", null, "- Level: ", item.minRequirements.level), React__default.createElement("div", null, "-", ' ', item.minRequirements.skill.name[0].toUpperCase() + item.minRequirements.skill.name.slice(1), ": ", item.minRequirements.skill.level)), renderStatistics(), renderEntityEffects(), item.usableEffectDescription && React__default.createElement(Statistic, {
|
|
13915
|
+
"$isSpecial": true
|
|
13916
|
+
}, item.usableEffectDescription), item.equippedBuffDescription && React__default.createElement(Statistic, {
|
|
13917
|
+
"$isSpecial": true
|
|
13918
|
+
}, item.equippedBuffDescription), item.isTwoHanded && React__default.createElement(Statistic, {
|
|
13919
|
+
"$isSpecial": true
|
|
13920
|
+
}, "Two handed"), React__default.createElement(Description, null, item.description), item.maxStackSize && item.maxStackSize !== 1 && React__default.createElement(StackInfo, null, "x", Math.round(((_item$stackQty = item.stackQty) != null ? _item$stackQty : 1) * 100) / 100, "(", item.maxStackSize, ")"), renderMissingStatistic().length > 0 && React__default.createElement(MissingStatistics, null, React__default.createElement(Statistic, null, "Equipped Diff"), itemToCompare && renderMissingStatistic()));
|
|
13865
13921
|
};
|
|
13866
13922
|
var Container$b = /*#__PURE__*/styled.div.withConfig({
|
|
13867
13923
|
displayName: "ItemInfo__Container",
|
|
13868
13924
|
componentId: "sc-1xm4q8k-0"
|
|
13869
|
-
})(["color:white;background-color:#222;border-radius:5px;padding:0.5rem;font-size:", ";border:3px solid ", ";height:max-content;width:
|
|
13925
|
+
})(["color:white;background-color:#222;border-radius:5px;padding:0.5rem;font-size:", ";border:3px solid ", ";height:max-content;width:18rem;@media (max-width:640px){width:80vw;}"], uiFonts.size.small, function (_ref2) {
|
|
13870
13926
|
var _rarityColor;
|
|
13871
13927
|
var item = _ref2.item;
|
|
13872
13928
|
return (_rarityColor = rarityColor(item)) != null ? _rarityColor : uiColors.lightGray;
|
|
@@ -13886,29 +13942,36 @@ var Type = /*#__PURE__*/styled.div.withConfig({
|
|
|
13886
13942
|
displayName: "ItemInfo__Type",
|
|
13887
13943
|
componentId: "sc-1xm4q8k-3"
|
|
13888
13944
|
})(["font-size:", ";margin-top:0.2rem;color:", ";"], uiFonts.size.small, uiColors.lightGray);
|
|
13945
|
+
var LevelRequirement = /*#__PURE__*/styled.div.withConfig({
|
|
13946
|
+
displayName: "ItemInfo__LevelRequirement",
|
|
13947
|
+
componentId: "sc-1xm4q8k-4"
|
|
13948
|
+
})(["font-size:", ";margin-top:0.2rem;margin-bottom:1rem;color:", ";.title{margin-bottom:4px;}div{margin-bottom:2px;}"], uiFonts.size.small, uiColors.orange);
|
|
13889
13949
|
var Statistic = /*#__PURE__*/styled.div.withConfig({
|
|
13890
13950
|
displayName: "ItemInfo__Statistic",
|
|
13891
|
-
componentId: "sc-1xm4q8k-
|
|
13892
|
-
})(["margin-bottom:0.4rem;width:
|
|
13951
|
+
componentId: "sc-1xm4q8k-5"
|
|
13952
|
+
})(["margin-bottom:0.4rem;width:100%;color:", ";.label{display:inline-block;margin-right:0.5rem;color:inherit;}.value{display:inline-block;color:inherit;}&.better,.better{color:", ";}&.worse,.worse{color:", ";}"], function (_ref4) {
|
|
13953
|
+
var $isSpecial = _ref4.$isSpecial;
|
|
13954
|
+
return $isSpecial ? uiColors.darkYellow : 'inherit';
|
|
13955
|
+
}, uiColors.lightGreen, uiColors.cardinal);
|
|
13893
13956
|
var Description = /*#__PURE__*/styled.div.withConfig({
|
|
13894
13957
|
displayName: "ItemInfo__Description",
|
|
13895
|
-
componentId: "sc-1xm4q8k-
|
|
13958
|
+
componentId: "sc-1xm4q8k-6"
|
|
13896
13959
|
})(["margin-top:1.5rem;font-size:", ";color:", ";font-style:italic;"], uiFonts.size.small, uiColors.lightGray);
|
|
13897
13960
|
var Header = /*#__PURE__*/styled.div.withConfig({
|
|
13898
13961
|
displayName: "ItemInfo__Header",
|
|
13899
|
-
componentId: "sc-1xm4q8k-
|
|
13962
|
+
componentId: "sc-1xm4q8k-7"
|
|
13900
13963
|
})(["display:flex;align-items:center;justify-content:space-between;margin-bottom:0.5rem;"]);
|
|
13901
13964
|
var AllowedSlots = /*#__PURE__*/styled.div.withConfig({
|
|
13902
13965
|
displayName: "ItemInfo__AllowedSlots",
|
|
13903
|
-
componentId: "sc-1xm4q8k-
|
|
13966
|
+
componentId: "sc-1xm4q8k-8"
|
|
13904
13967
|
})(["display:flex;align-items:center;justify-content:center;gap:0.5rem;margin-left:auto;align-self:flex-start;"]);
|
|
13905
13968
|
var StackInfo = /*#__PURE__*/styled.div.withConfig({
|
|
13906
13969
|
displayName: "ItemInfo__StackInfo",
|
|
13907
|
-
componentId: "sc-1xm4q8k-
|
|
13970
|
+
componentId: "sc-1xm4q8k-9"
|
|
13908
13971
|
})(["width:100%;text-align:right;font-size:", ";color:", ";margin-top:1rem;"], uiFonts.size.small, uiColors.orange);
|
|
13909
13972
|
var MissingStatistics = /*#__PURE__*/styled.div.withConfig({
|
|
13910
13973
|
displayName: "ItemInfo__MissingStatistics",
|
|
13911
|
-
componentId: "sc-1xm4q8k-
|
|
13974
|
+
componentId: "sc-1xm4q8k-10"
|
|
13912
13975
|
})(["margin-top:1rem;color:", ";"], uiColors.cardinal);
|
|
13913
13976
|
|
|
13914
13977
|
var itemSlotTypes = ['head', 'neck', 'leftHand', 'rightHand', 'ring', 'legs', 'boot', 'accessory', 'armor', 'inventory'];
|
|
@@ -13930,7 +13993,11 @@ var ItemInfoDisplay = function ItemInfoDisplay(_ref) {
|
|
|
13930
13993
|
var allowedSlotTypeCamelCase = lodash.camelCase(item.allowedEquipSlotType[0]);
|
|
13931
13994
|
var itemSubTypeCamelCase = lodash.camelCase(item.subType);
|
|
13932
13995
|
var slotType = getSlotType(itemSlotTypes, allowedSlotTypeCamelCase, itemSubTypeCamelCase);
|
|
13933
|
-
var
|
|
13996
|
+
var itemSubTypeFromEquipment = Object.values(equipmentSet).find(function (item) {
|
|
13997
|
+
var _item$subType;
|
|
13998
|
+
return lodash.camelCase((_item$subType = item == null ? void 0 : item.subType) != null ? _item$subType : '') === itemSubTypeCamelCase;
|
|
13999
|
+
});
|
|
14000
|
+
var itemFromEquipment = itemSubTypeFromEquipment ? itemSubTypeFromEquipment : equipmentSet[slotType];
|
|
13934
14001
|
if (itemFromEquipment && (!item._id || itemFromEquipment._id !== item._id)) {
|
|
13935
14002
|
return itemFromEquipment;
|
|
13936
14003
|
}
|
|
@@ -13954,7 +14021,7 @@ var ItemInfoDisplay = function ItemInfoDisplay(_ref) {
|
|
|
13954
14021
|
var Flex = /*#__PURE__*/styled.div.withConfig({
|
|
13955
14022
|
displayName: "ItemInfoDisplay__Flex",
|
|
13956
14023
|
componentId: "sc-1lftdo8-0"
|
|
13957
|
-
})(["display:flex;gap:0.5rem;flex-direction:", ";@media (max-width:
|
|
14024
|
+
})(["display:flex;gap:0.5rem;flex-direction:", ";align-items:center;@media (max-width:640px){flex-direction:column-reverse;align-items:center;}"], function (_ref2) {
|
|
13958
14025
|
var $isMobile = _ref2.$isMobile;
|
|
13959
14026
|
return $isMobile ? 'row-reverse' : 'row';
|
|
13960
14027
|
});
|
|
@@ -15818,15 +15885,19 @@ var Shortcuts = function Shortcuts(_ref) {
|
|
|
15818
15885
|
isBlockedCastingByKeyboard = _ref$isBlockedCasting === void 0 ? false : _ref$isBlockedCasting,
|
|
15819
15886
|
atlasJSON = _ref.atlasJSON,
|
|
15820
15887
|
atlasIMG = _ref.atlasIMG,
|
|
15821
|
-
inventory = _ref.inventory
|
|
15888
|
+
inventory = _ref.inventory,
|
|
15889
|
+
spellCooldowns = _ref.spellCooldowns;
|
|
15822
15890
|
var shortcutsRefs = React.useRef([]);
|
|
15891
|
+
var _useShortcutCooldown = useShortcutCooldown(onShortcutCast),
|
|
15892
|
+
handleShortcutCast = _useShortcutCooldown.handleShortcutCast,
|
|
15893
|
+
shortcutCooldown = _useShortcutCooldown.shortcutCooldown;
|
|
15823
15894
|
React.useEffect(function () {
|
|
15824
15895
|
var handleKeyDown = function handleKeyDown(e) {
|
|
15825
15896
|
if (isBlockedCastingByKeyboard) return;
|
|
15826
15897
|
var shortcutIndex = Number(e.key) - 1;
|
|
15827
15898
|
if (shortcutIndex >= 0 && shortcutIndex <= 5) {
|
|
15828
15899
|
var _shortcutsRefs$curren;
|
|
15829
|
-
|
|
15900
|
+
handleShortcutCast(shortcutIndex);
|
|
15830
15901
|
(_shortcutsRefs$curren = shortcutsRefs.current[shortcutIndex]) == null ? void 0 : _shortcutsRefs$curren.classList.add('active');
|
|
15831
15902
|
setTimeout(function () {
|
|
15832
15903
|
var _shortcutsRefs$curren2;
|
|
@@ -15838,11 +15909,15 @@ var Shortcuts = function Shortcuts(_ref) {
|
|
|
15838
15909
|
return function () {
|
|
15839
15910
|
window.removeEventListener('keydown', handleKeyDown);
|
|
15840
15911
|
};
|
|
15841
|
-
}, [shortcuts, isBlockedCastingByKeyboard]);
|
|
15912
|
+
}, [shortcuts, isBlockedCastingByKeyboard, shortcutCooldown]);
|
|
15842
15913
|
return React__default.createElement(List$1, null, Array.from({
|
|
15843
15914
|
length: 6
|
|
15844
15915
|
}).map(function (_, i) {
|
|
15845
|
-
var _shortcuts$i, _shortcuts$i3, _payload$manaCost;
|
|
15916
|
+
var _shortcuts$i, _shortcuts$i3, _spellCooldowns$paylo, _payload$manaCost;
|
|
15917
|
+
var buildClassName = function buildClassName(classBase, isOnCooldown) {
|
|
15918
|
+
return classBase + " " + (isOnCooldown ? 'onCooldown' : '');
|
|
15919
|
+
};
|
|
15920
|
+
var isOnShortcutCooldown = shortcutCooldown > 0;
|
|
15846
15921
|
if (((_shortcuts$i = shortcuts[i]) == null ? void 0 : _shortcuts$i.type) === shared.ShortcutType.Item) {
|
|
15847
15922
|
var _shortcuts$i2;
|
|
15848
15923
|
var _payload = (_shortcuts$i2 = shortcuts[i]) == null ? void 0 : _shortcuts$i2.payload;
|
|
@@ -15859,12 +15934,14 @@ var Shortcuts = function Shortcuts(_ref) {
|
|
|
15859
15934
|
var totalQty = _payload && inventory ? countItemFromInventory(_payload.key, inventory) : 0;
|
|
15860
15935
|
return React__default.createElement(StyledShortcut$1, {
|
|
15861
15936
|
key: i,
|
|
15862
|
-
onPointerDown:
|
|
15937
|
+
onPointerDown: handleShortcutCast.bind(null, i),
|
|
15863
15938
|
disabled: false,
|
|
15864
15939
|
ref: function ref(el) {
|
|
15865
15940
|
if (el) shortcutsRefs.current[i] = el;
|
|
15866
15941
|
}
|
|
15867
|
-
},
|
|
15942
|
+
}, isOnShortcutCooldown && React__default.createElement("span", {
|
|
15943
|
+
className: "cooldown"
|
|
15944
|
+
}, shortcutCooldown.toFixed(1)), _payload && React__default.createElement(SpriteFromAtlas, {
|
|
15868
15945
|
atlasIMG: atlasIMG,
|
|
15869
15946
|
atlasJSON: atlasJSON,
|
|
15870
15947
|
spriteKey: shared.getItemTextureKeyPath({
|
|
@@ -15876,27 +15953,32 @@ var Shortcuts = function Shortcuts(_ref) {
|
|
|
15876
15953
|
width: 32,
|
|
15877
15954
|
height: 32
|
|
15878
15955
|
}), React__default.createElement("span", {
|
|
15879
|
-
className:
|
|
15956
|
+
className: buildClassName('qty', isOnShortcutCooldown)
|
|
15880
15957
|
}, totalQty), React__default.createElement("span", {
|
|
15881
|
-
className:
|
|
15958
|
+
className: buildClassName('keyboard', isOnShortcutCooldown)
|
|
15882
15959
|
}, i + 1));
|
|
15883
15960
|
}
|
|
15884
15961
|
var payload = (_shortcuts$i3 = shortcuts[i]) == null ? void 0 : _shortcuts$i3.payload;
|
|
15962
|
+
var spellCooldown = !payload ? 0 : (_spellCooldowns$paylo = spellCooldowns == null ? void 0 : spellCooldowns[payload.magicWords.replaceAll(' ', '_')]) != null ? _spellCooldowns$paylo : shortcutCooldown;
|
|
15963
|
+
var cooldown = spellCooldown > shortcutCooldown ? spellCooldown : shortcutCooldown;
|
|
15964
|
+
var isOnCooldown = cooldown > 0 && !!payload;
|
|
15885
15965
|
return React__default.createElement(StyledShortcut$1, {
|
|
15886
15966
|
key: i,
|
|
15887
|
-
onPointerDown:
|
|
15967
|
+
onPointerDown: handleShortcutCast.bind(null, i),
|
|
15888
15968
|
disabled: mana < ((_payload$manaCost = payload == null ? void 0 : payload.manaCost) != null ? _payload$manaCost : 0),
|
|
15889
15969
|
ref: function ref(el) {
|
|
15890
15970
|
if (el) shortcutsRefs.current[i] = el;
|
|
15891
15971
|
}
|
|
15892
|
-
}, React__default.createElement("span", {
|
|
15893
|
-
className: "
|
|
15972
|
+
}, isOnCooldown && React__default.createElement("span", {
|
|
15973
|
+
className: "cooldown"
|
|
15974
|
+
}, cooldown.toFixed(cooldown < 10 ? 1 : 0)), React__default.createElement("span", {
|
|
15975
|
+
className: buildClassName('mana', isOnCooldown)
|
|
15894
15976
|
}, payload && payload.manaCost), React__default.createElement("span", {
|
|
15895
15977
|
className: "magicWords"
|
|
15896
15978
|
}, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
|
|
15897
15979
|
return word[0];
|
|
15898
15980
|
})), React__default.createElement("span", {
|
|
15899
|
-
className:
|
|
15981
|
+
className: buildClassName('keyboard', isOnCooldown)
|
|
15900
15982
|
}, i + 1));
|
|
15901
15983
|
}));
|
|
15902
15984
|
};
|
|
@@ -16153,14 +16235,17 @@ var Spell = function Spell(_ref) {
|
|
|
16153
16235
|
charMagicLevel = _ref.charMagicLevel,
|
|
16154
16236
|
onPointerUp = _ref.onPointerUp,
|
|
16155
16237
|
isSettingShortcut = _ref.isSettingShortcut,
|
|
16156
|
-
minMagicLevelRequired = _ref.minMagicLevelRequired
|
|
16238
|
+
minMagicLevelRequired = _ref.minMagicLevelRequired,
|
|
16239
|
+
activeCooldown = _ref.activeCooldown;
|
|
16157
16240
|
var disabled = isSettingShortcut ? charMagicLevel < minMagicLevelRequired : manaCost > charMana || charMagicLevel < minMagicLevelRequired;
|
|
16158
16241
|
return React__default.createElement(Container$k, {
|
|
16159
|
-
disabled: disabled,
|
|
16242
|
+
disabled: disabled || (activeCooldown != null ? activeCooldown : 0) > 0,
|
|
16160
16243
|
onPointerUp: onPointerUp == null ? void 0 : onPointerUp.bind(null, spellKey),
|
|
16161
16244
|
isSettingShortcut: isSettingShortcut && !disabled,
|
|
16162
16245
|
className: "spell"
|
|
16163
|
-
}, disabled && React__default.createElement(Overlay, null, charMagicLevel < minMagicLevelRequired ? 'Low magic level' : manaCost > charMana && 'No mana'), React__default.createElement(SpellImage, null,
|
|
16246
|
+
}, disabled && React__default.createElement(Overlay, null, charMagicLevel < minMagicLevelRequired ? 'Low magic level' : manaCost > charMana && 'No mana'), React__default.createElement(SpellImage, null, activeCooldown && activeCooldown > 0 ? React__default.createElement("span", {
|
|
16247
|
+
className: "cooldown"
|
|
16248
|
+
}, activeCooldown.toFixed(activeCooldown > 10 ? 0 : 1)) : null, magicWords.split(' ').map(function (word) {
|
|
16164
16249
|
return word[0];
|
|
16165
16250
|
})), React__default.createElement(Info, null, React__default.createElement(Title$6, null, React__default.createElement("span", null, name), React__default.createElement("span", {
|
|
16166
16251
|
className: "spell"
|
|
@@ -16178,7 +16263,7 @@ var Container$k = /*#__PURE__*/styled.button.withConfig({
|
|
|
16178
16263
|
var SpellImage = /*#__PURE__*/styled.div.withConfig({
|
|
16179
16264
|
displayName: "Spell__SpellImage",
|
|
16180
16265
|
componentId: "sc-j96fa2-1"
|
|
16181
|
-
})(["width:4rem;height:4rem;font-size:", ";font-weight:bold;background-color:", ";color:", ";display:flex;justify-content:center;align-items:center;text-transform:uppercase;"], uiFonts.size.xLarge, uiColors.darkGray, uiColors.lightGray);
|
|
16266
|
+
})(["width:4rem;height:4rem;font-size:", ";font-weight:bold;background-color:", ";color:", ";display:flex;justify-content:center;align-items:center;text-transform:uppercase;position:relative;overflow:hidden;.cooldown{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0 0 0 / 20%);color:", ";font-weight:bold;display:flex;justify-content:center;align-items:center;}"], uiFonts.size.xLarge, uiColors.darkGray, uiColors.lightGray, uiColors.darkYellow);
|
|
16182
16267
|
var Info = /*#__PURE__*/styled.span.withConfig({
|
|
16183
16268
|
displayName: "Spell__Info",
|
|
16184
16269
|
componentId: "sc-j96fa2-2"
|
|
@@ -16217,7 +16302,8 @@ var Spellbook = function Spellbook(_ref) {
|
|
|
16217
16302
|
removeShortcut = _ref.removeShortcut,
|
|
16218
16303
|
atlasIMG = _ref.atlasIMG,
|
|
16219
16304
|
atlasJSON = _ref.atlasJSON,
|
|
16220
|
-
scale = _ref.scale
|
|
16305
|
+
scale = _ref.scale,
|
|
16306
|
+
spellCooldowns = _ref.spellCooldowns;
|
|
16221
16307
|
var _useState = React.useState(''),
|
|
16222
16308
|
search = _useState[0],
|
|
16223
16309
|
setSearch = _useState[1];
|
|
@@ -16279,7 +16365,8 @@ var Spellbook = function Spellbook(_ref) {
|
|
|
16279
16365
|
charMagicLevel: magicLevel,
|
|
16280
16366
|
onPointerUp: settingShortcutIndex !== -1 ? setShortcut : onSpellClick,
|
|
16281
16367
|
spellKey: spell.key,
|
|
16282
|
-
isSettingShortcut: settingShortcutIndex !== -1
|
|
16368
|
+
isSettingShortcut: settingShortcutIndex !== -1,
|
|
16369
|
+
activeCooldown: spellCooldowns == null ? void 0 : spellCooldowns[spell.magicWords.replaceAll(' ', '_')]
|
|
16283
16370
|
}, spell)));
|
|
16284
16371
|
}))));
|
|
16285
16372
|
};
|