@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
package/dist/long-bow.esm.js
CHANGED
|
@@ -12644,7 +12644,7 @@ var uiColors = {
|
|
|
12644
12644
|
blue: '#597DCE',
|
|
12645
12645
|
darkBlue: '#30346D',
|
|
12646
12646
|
brown: '#854C30',
|
|
12647
|
-
lightGreen: '#
|
|
12647
|
+
lightGreen: '#66cd1c',
|
|
12648
12648
|
brownGreen: '#346524'
|
|
12649
12649
|
};
|
|
12650
12650
|
|
|
@@ -12844,7 +12844,31 @@ var CheckButton = function CheckButton(_ref) {
|
|
|
12844
12844
|
var SingleShortcut = /*#__PURE__*/styled.button.withConfig({
|
|
12845
12845
|
displayName: "SingleShortcut",
|
|
12846
12846
|
componentId: "sc-vz5ev8-0"
|
|
12847
|
-
})(["width:3rem;height:3rem;background-color:", ";border:2px solid ", ";border-radius:50%;text-transform:uppercase;font-size:0.7rem;font-weight:bold;display:flex;align-items:center;justify-content:center;position:relative;span{pointer-events:none;}.mana{position:absolute;top:-5px;right:0;font-size:0.65rem;color:", ";}.qty{position:absolute;top:-5px;right:0;font-size:0.65rem;}.magicWords{margin-top:4px;}.keyboard{position:absolute;bottom:-5px;left:0;font-size:0.65rem;color:", ";}&:hover,&:focus{background-color:", ";}&:active{background-color:", ";border-color:", ";}&:disabled{opacity:0.5;}"], uiColors.lightGray, uiColors.darkGray, uiColors.blue, uiColors.yellow, uiColors.darkGray, uiColors.gray, uiColors.yellow);
|
|
12847
|
+
})(["width:3rem;height:3rem;background-color:", ";border:2px solid ", ";border-radius:50%;text-transform:uppercase;font-size:0.7rem;font-weight:bold;display:flex;align-items:center;justify-content:center;position:relative;span{pointer-events:none;}.mana{position:absolute;top:-5px;right:0;font-size:0.65rem;color:", ";}.qty{position:absolute;top:-5px;right:0;font-size:0.65rem;}.magicWords{margin-top:4px;}.keyboard{position:absolute;bottom:-5px;left:0;font-size:0.65rem;color:", ";}.onCooldown{color:", ";}.cooldown{position:absolute;z-index:1;top:0;left:0;width:100%;height:100%;border-radius:inherit;background-color:rgba(0 0 0 / 60%);font-size:0.7rem;display:flex;align-items:center;justify-content:center;color:", ";}&:hover,&:focus{background-color:", ";}&:active{background-color:", ";border-color:", ";}&:disabled{opacity:0.5;}"], uiColors.lightGray, uiColors.darkGray, uiColors.blue, uiColors.yellow, uiColors.gray, uiColors.darkYellow, uiColors.darkGray, uiColors.gray, uiColors.yellow);
|
|
12848
|
+
|
|
12849
|
+
var useShortcutCooldown = function useShortcutCooldown(onShortcutCast) {
|
|
12850
|
+
var _useState = useState(0),
|
|
12851
|
+
shortcutCooldown = _useState[0],
|
|
12852
|
+
setShortcutCooldown = _useState[1];
|
|
12853
|
+
var cooldownTimeout = useRef(null);
|
|
12854
|
+
var handleShortcutCast = function handleShortcutCast(index) {
|
|
12855
|
+
console.log(shortcutCooldown);
|
|
12856
|
+
if (shortcutCooldown <= 0) setShortcutCooldown(1.5);
|
|
12857
|
+
onShortcutCast(index);
|
|
12858
|
+
};
|
|
12859
|
+
useEffect(function () {
|
|
12860
|
+
if (cooldownTimeout.current) clearTimeout(cooldownTimeout.current);
|
|
12861
|
+
if (shortcutCooldown > 0) {
|
|
12862
|
+
cooldownTimeout.current = setTimeout(function () {
|
|
12863
|
+
setShortcutCooldown(shortcutCooldown - 0.1);
|
|
12864
|
+
}, 100);
|
|
12865
|
+
}
|
|
12866
|
+
}, [shortcutCooldown]);
|
|
12867
|
+
return {
|
|
12868
|
+
shortcutCooldown: shortcutCooldown,
|
|
12869
|
+
handleShortcutCast: handleShortcutCast
|
|
12870
|
+
};
|
|
12871
|
+
};
|
|
12848
12872
|
|
|
12849
12873
|
var CircularController = function CircularController(_ref) {
|
|
12850
12874
|
var onActionClick = _ref.onActionClick,
|
|
@@ -12854,7 +12878,11 @@ var CircularController = function CircularController(_ref) {
|
|
|
12854
12878
|
shortcuts = _ref.shortcuts,
|
|
12855
12879
|
inventory = _ref.inventory,
|
|
12856
12880
|
atlasIMG = _ref.atlasIMG,
|
|
12857
|
-
atlasJSON = _ref.atlasJSON
|
|
12881
|
+
atlasJSON = _ref.atlasJSON,
|
|
12882
|
+
spellCooldowns = _ref.spellCooldowns;
|
|
12883
|
+
var _useShortcutCooldown = useShortcutCooldown(onShortcutClick),
|
|
12884
|
+
handleShortcutCast = _useShortcutCooldown.handleShortcutCast,
|
|
12885
|
+
shortcutCooldown = _useShortcutCooldown.shortcutCooldown;
|
|
12858
12886
|
var onTouchStart = function onTouchStart(e) {
|
|
12859
12887
|
var target = e.target;
|
|
12860
12888
|
target == null ? void 0 : target.classList.add('active');
|
|
@@ -12867,10 +12895,14 @@ var CircularController = function CircularController(_ref) {
|
|
|
12867
12895
|
action();
|
|
12868
12896
|
};
|
|
12869
12897
|
var renderShortcut = function renderShortcut(i) {
|
|
12870
|
-
var _shortcuts$i, _shortcuts$i2, _shortcuts$i4, _payload$manaCost;
|
|
12898
|
+
var _shortcuts$i, _shortcuts$i2, _shortcuts$i4, _spellCooldowns$paylo, _payload$manaCost;
|
|
12899
|
+
var buildClassName = function buildClassName(classBase, isOnCooldown) {
|
|
12900
|
+
return classBase + " " + (isOnCooldown ? 'onCooldown' : '');
|
|
12901
|
+
};
|
|
12871
12902
|
var variant = '';
|
|
12872
12903
|
if (i === 0) variant = 'top';else if (i >= 3) variant = "bottom-" + (i - 3);
|
|
12873
|
-
var onShortcutClickBinded = ((_shortcuts$i = shortcuts[i]) == null ? void 0 : _shortcuts$i.type) !== ShortcutType.None ?
|
|
12904
|
+
var onShortcutClickBinded = ((_shortcuts$i = shortcuts[i]) == null ? void 0 : _shortcuts$i.type) !== ShortcutType.None ? handleShortcutCast.bind(null, i) : function () {};
|
|
12905
|
+
var isOnShortcutCooldown = shortcutCooldown > 0;
|
|
12874
12906
|
if (((_shortcuts$i2 = shortcuts[i]) == null ? void 0 : _shortcuts$i2.type) === ShortcutType.Item) {
|
|
12875
12907
|
var _shortcuts$i3;
|
|
12876
12908
|
var _payload = (_shortcuts$i3 = shortcuts[i]) == null ? void 0 : _shortcuts$i3.payload;
|
|
@@ -12893,7 +12925,9 @@ var CircularController = function CircularController(_ref) {
|
|
|
12893
12925
|
onTouchEnd: onTouchEnd.bind(null, onShortcutClickBinded),
|
|
12894
12926
|
disabled: false,
|
|
12895
12927
|
className: variant
|
|
12896
|
-
},
|
|
12928
|
+
}, isOnShortcutCooldown && React.createElement("span", {
|
|
12929
|
+
className: "cooldown"
|
|
12930
|
+
}, shortcutCooldown.toFixed(1)), _payload && React.createElement(SpriteFromAtlas, {
|
|
12897
12931
|
atlasIMG: atlasIMG,
|
|
12898
12932
|
atlasJSON: atlasJSON,
|
|
12899
12933
|
spriteKey: getItemTextureKeyPath({
|
|
@@ -12912,18 +12946,23 @@ var CircularController = function CircularController(_ref) {
|
|
|
12912
12946
|
pointerEvents: 'none'
|
|
12913
12947
|
}
|
|
12914
12948
|
}), React.createElement("span", {
|
|
12915
|
-
className:
|
|
12949
|
+
className: buildClassName('qty', isOnShortcutCooldown)
|
|
12916
12950
|
}, totalQty));
|
|
12917
12951
|
}
|
|
12918
12952
|
var payload = (_shortcuts$i4 = shortcuts[i]) == null ? void 0 : _shortcuts$i4.payload;
|
|
12953
|
+
var spellCooldown = !payload ? 0 : (_spellCooldowns$paylo = spellCooldowns == null ? void 0 : spellCooldowns[payload.magicWords.replaceAll(' ', '_')]) != null ? _spellCooldowns$paylo : shortcutCooldown;
|
|
12954
|
+
var cooldown = spellCooldown > shortcutCooldown ? spellCooldown : shortcutCooldown;
|
|
12955
|
+
var isOnCooldown = cooldown > 0 && !!payload;
|
|
12919
12956
|
return React.createElement(StyledShortcut, {
|
|
12920
12957
|
key: i,
|
|
12921
12958
|
onTouchStart: onTouchStart,
|
|
12922
12959
|
onTouchEnd: onTouchEnd.bind(null, onShortcutClickBinded),
|
|
12923
12960
|
disabled: mana < ((_payload$manaCost = payload == null ? void 0 : payload.manaCost) != null ? _payload$manaCost : 0),
|
|
12924
12961
|
className: variant
|
|
12925
|
-
}, React.createElement("span", {
|
|
12926
|
-
className: "
|
|
12962
|
+
}, isOnCooldown && React.createElement("span", {
|
|
12963
|
+
className: "cooldown"
|
|
12964
|
+
}, cooldown.toFixed(cooldown < 10 ? 1 : 0)), React.createElement("span", {
|
|
12965
|
+
className: buildClassName('mana', isOnCooldown)
|
|
12927
12966
|
}, payload && payload.manaCost), React.createElement("span", {
|
|
12928
12967
|
className: "magicWords"
|
|
12929
12968
|
}, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
|
|
@@ -13251,15 +13290,15 @@ var MobileItemTooltip = function MobileItemTooltip(_ref) {
|
|
|
13251
13290
|
var Container$9 = /*#__PURE__*/styled.div.withConfig({
|
|
13252
13291
|
displayName: "MobileItemTooltip__Container",
|
|
13253
13292
|
componentId: "sc-ku4p1j-0"
|
|
13254
|
-
})(["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:
|
|
13293
|
+
})(["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;}"]);
|
|
13255
13294
|
var OptionsContainer = /*#__PURE__*/styled.div.withConfig({
|
|
13256
13295
|
displayName: "MobileItemTooltip__OptionsContainer",
|
|
13257
13296
|
componentId: "sc-ku4p1j-1"
|
|
13258
|
-
})(["display:flex;flex-direction:column;gap:0.5rem;flex-wrap:wrap;@media (max-width:
|
|
13297
|
+
})(["display:flex;flex-direction:column;gap:0.5rem;flex-wrap:wrap;@media (max-width:640px){flex-direction:row;justify-content:center;}"]);
|
|
13259
13298
|
var Option = /*#__PURE__*/styled.button.withConfig({
|
|
13260
13299
|
displayName: "MobileItemTooltip__Option",
|
|
13261
13300
|
componentId: "sc-ku4p1j-2"
|
|
13262
|
-
})(["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:
|
|
13301
|
+
})(["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;}"]);
|
|
13263
13302
|
|
|
13264
13303
|
var generateContextMenuListOptions = function generateContextMenuListOptions(actionsByTypeList) {
|
|
13265
13304
|
var contextMenu = actionsByTypeList.map(function (action) {
|
|
@@ -13833,6 +13872,15 @@ var ItemInfo = function ItemInfo(_ref) {
|
|
|
13833
13872
|
}
|
|
13834
13873
|
return statistics;
|
|
13835
13874
|
};
|
|
13875
|
+
var renderEntityEffects = function renderEntityEffects() {
|
|
13876
|
+
if (!item.entityEffects || !item.entityEffectChance) return null;
|
|
13877
|
+
return item.entityEffects.map(function (effect, index) {
|
|
13878
|
+
return React.createElement(Statistic, {
|
|
13879
|
+
key: index,
|
|
13880
|
+
"$isSpecial": true
|
|
13881
|
+
}, effect[0].toUpperCase() + effect.slice(1), " (", item.entityEffectChance, "%)");
|
|
13882
|
+
});
|
|
13883
|
+
};
|
|
13836
13884
|
var renderAvaibleSlots = function renderAvaibleSlots() {
|
|
13837
13885
|
if (!item.allowedEquipSlotType) return null;
|
|
13838
13886
|
return item.allowedEquipSlotType.map(function (slotType, index) {
|
|
@@ -13856,12 +13904,20 @@ var ItemInfo = function ItemInfo(_ref) {
|
|
|
13856
13904
|
item: item
|
|
13857
13905
|
}, React.createElement(Header, null, React.createElement("div", null, React.createElement(Title$1, null, item.name), item.rarity !== 'Common' && React.createElement(Rarity, {
|
|
13858
13906
|
item: item
|
|
13859
|
-
}, item.rarity), React.createElement(Type, null, item.subType)), React.createElement(AllowedSlots, null, renderAvaibleSlots())),
|
|
13907
|
+
}, item.rarity), React.createElement(Type, null, item.subType)), React.createElement(AllowedSlots, null, renderAvaibleSlots())), item.minRequirements && React.createElement(LevelRequirement, null, React.createElement("div", {
|
|
13908
|
+
className: "title"
|
|
13909
|
+
}, "Requirements:"), React.createElement("div", null, "- Level: ", item.minRequirements.level), React.createElement("div", null, "-", ' ', item.minRequirements.skill.name[0].toUpperCase() + item.minRequirements.skill.name.slice(1), ": ", item.minRequirements.skill.level)), renderStatistics(), renderEntityEffects(), item.usableEffectDescription && React.createElement(Statistic, {
|
|
13910
|
+
"$isSpecial": true
|
|
13911
|
+
}, item.usableEffectDescription), item.equippedBuffDescription && React.createElement(Statistic, {
|
|
13912
|
+
"$isSpecial": true
|
|
13913
|
+
}, item.equippedBuffDescription), item.isTwoHanded && React.createElement(Statistic, {
|
|
13914
|
+
"$isSpecial": true
|
|
13915
|
+
}, "Two handed"), React.createElement(Description, null, item.description), item.maxStackSize && item.maxStackSize !== 1 && React.createElement(StackInfo, null, "x", Math.round(((_item$stackQty = item.stackQty) != null ? _item$stackQty : 1) * 100) / 100, "(", item.maxStackSize, ")"), renderMissingStatistic().length > 0 && React.createElement(MissingStatistics, null, React.createElement(Statistic, null, "Equipped Diff"), itemToCompare && renderMissingStatistic()));
|
|
13860
13916
|
};
|
|
13861
13917
|
var Container$b = /*#__PURE__*/styled.div.withConfig({
|
|
13862
13918
|
displayName: "ItemInfo__Container",
|
|
13863
13919
|
componentId: "sc-1xm4q8k-0"
|
|
13864
|
-
})(["color:white;background-color:#222;border-radius:5px;padding:0.5rem;font-size:", ";border:3px solid ", ";height:max-content;width:
|
|
13920
|
+
})(["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) {
|
|
13865
13921
|
var _rarityColor;
|
|
13866
13922
|
var item = _ref2.item;
|
|
13867
13923
|
return (_rarityColor = rarityColor(item)) != null ? _rarityColor : uiColors.lightGray;
|
|
@@ -13881,29 +13937,36 @@ var Type = /*#__PURE__*/styled.div.withConfig({
|
|
|
13881
13937
|
displayName: "ItemInfo__Type",
|
|
13882
13938
|
componentId: "sc-1xm4q8k-3"
|
|
13883
13939
|
})(["font-size:", ";margin-top:0.2rem;color:", ";"], uiFonts.size.small, uiColors.lightGray);
|
|
13940
|
+
var LevelRequirement = /*#__PURE__*/styled.div.withConfig({
|
|
13941
|
+
displayName: "ItemInfo__LevelRequirement",
|
|
13942
|
+
componentId: "sc-1xm4q8k-4"
|
|
13943
|
+
})(["font-size:", ";margin-top:0.2rem;margin-bottom:1rem;color:", ";.title{margin-bottom:4px;}div{margin-bottom:2px;}"], uiFonts.size.small, uiColors.orange);
|
|
13884
13944
|
var Statistic = /*#__PURE__*/styled.div.withConfig({
|
|
13885
13945
|
displayName: "ItemInfo__Statistic",
|
|
13886
|
-
componentId: "sc-1xm4q8k-
|
|
13887
|
-
})(["margin-bottom:0.4rem;width:
|
|
13946
|
+
componentId: "sc-1xm4q8k-5"
|
|
13947
|
+
})(["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) {
|
|
13948
|
+
var $isSpecial = _ref4.$isSpecial;
|
|
13949
|
+
return $isSpecial ? uiColors.darkYellow : 'inherit';
|
|
13950
|
+
}, uiColors.lightGreen, uiColors.cardinal);
|
|
13888
13951
|
var Description = /*#__PURE__*/styled.div.withConfig({
|
|
13889
13952
|
displayName: "ItemInfo__Description",
|
|
13890
|
-
componentId: "sc-1xm4q8k-
|
|
13953
|
+
componentId: "sc-1xm4q8k-6"
|
|
13891
13954
|
})(["margin-top:1.5rem;font-size:", ";color:", ";font-style:italic;"], uiFonts.size.small, uiColors.lightGray);
|
|
13892
13955
|
var Header = /*#__PURE__*/styled.div.withConfig({
|
|
13893
13956
|
displayName: "ItemInfo__Header",
|
|
13894
|
-
componentId: "sc-1xm4q8k-
|
|
13957
|
+
componentId: "sc-1xm4q8k-7"
|
|
13895
13958
|
})(["display:flex;align-items:center;justify-content:space-between;margin-bottom:0.5rem;"]);
|
|
13896
13959
|
var AllowedSlots = /*#__PURE__*/styled.div.withConfig({
|
|
13897
13960
|
displayName: "ItemInfo__AllowedSlots",
|
|
13898
|
-
componentId: "sc-1xm4q8k-
|
|
13961
|
+
componentId: "sc-1xm4q8k-8"
|
|
13899
13962
|
})(["display:flex;align-items:center;justify-content:center;gap:0.5rem;margin-left:auto;align-self:flex-start;"]);
|
|
13900
13963
|
var StackInfo = /*#__PURE__*/styled.div.withConfig({
|
|
13901
13964
|
displayName: "ItemInfo__StackInfo",
|
|
13902
|
-
componentId: "sc-1xm4q8k-
|
|
13965
|
+
componentId: "sc-1xm4q8k-9"
|
|
13903
13966
|
})(["width:100%;text-align:right;font-size:", ";color:", ";margin-top:1rem;"], uiFonts.size.small, uiColors.orange);
|
|
13904
13967
|
var MissingStatistics = /*#__PURE__*/styled.div.withConfig({
|
|
13905
13968
|
displayName: "ItemInfo__MissingStatistics",
|
|
13906
|
-
componentId: "sc-1xm4q8k-
|
|
13969
|
+
componentId: "sc-1xm4q8k-10"
|
|
13907
13970
|
})(["margin-top:1rem;color:", ";"], uiColors.cardinal);
|
|
13908
13971
|
|
|
13909
13972
|
var itemSlotTypes = ['head', 'neck', 'leftHand', 'rightHand', 'ring', 'legs', 'boot', 'accessory', 'armor', 'inventory'];
|
|
@@ -13925,7 +13988,11 @@ var ItemInfoDisplay = function ItemInfoDisplay(_ref) {
|
|
|
13925
13988
|
var allowedSlotTypeCamelCase = camelCase(item.allowedEquipSlotType[0]);
|
|
13926
13989
|
var itemSubTypeCamelCase = camelCase(item.subType);
|
|
13927
13990
|
var slotType = getSlotType(itemSlotTypes, allowedSlotTypeCamelCase, itemSubTypeCamelCase);
|
|
13928
|
-
var
|
|
13991
|
+
var itemSubTypeFromEquipment = Object.values(equipmentSet).find(function (item) {
|
|
13992
|
+
var _item$subType;
|
|
13993
|
+
return camelCase((_item$subType = item == null ? void 0 : item.subType) != null ? _item$subType : '') === itemSubTypeCamelCase;
|
|
13994
|
+
});
|
|
13995
|
+
var itemFromEquipment = itemSubTypeFromEquipment ? itemSubTypeFromEquipment : equipmentSet[slotType];
|
|
13929
13996
|
if (itemFromEquipment && (!item._id || itemFromEquipment._id !== item._id)) {
|
|
13930
13997
|
return itemFromEquipment;
|
|
13931
13998
|
}
|
|
@@ -13949,7 +14016,7 @@ var ItemInfoDisplay = function ItemInfoDisplay(_ref) {
|
|
|
13949
14016
|
var Flex = /*#__PURE__*/styled.div.withConfig({
|
|
13950
14017
|
displayName: "ItemInfoDisplay__Flex",
|
|
13951
14018
|
componentId: "sc-1lftdo8-0"
|
|
13952
|
-
})(["display:flex;gap:0.5rem;flex-direction:", ";@media (max-width:
|
|
14019
|
+
})(["display:flex;gap:0.5rem;flex-direction:", ";align-items:center;@media (max-width:640px){flex-direction:column-reverse;align-items:center;}"], function (_ref2) {
|
|
13953
14020
|
var $isMobile = _ref2.$isMobile;
|
|
13954
14021
|
return $isMobile ? 'row-reverse' : 'row';
|
|
13955
14022
|
});
|
|
@@ -15815,15 +15882,19 @@ var Shortcuts = function Shortcuts(_ref) {
|
|
|
15815
15882
|
isBlockedCastingByKeyboard = _ref$isBlockedCasting === void 0 ? false : _ref$isBlockedCasting,
|
|
15816
15883
|
atlasJSON = _ref.atlasJSON,
|
|
15817
15884
|
atlasIMG = _ref.atlasIMG,
|
|
15818
|
-
inventory = _ref.inventory
|
|
15885
|
+
inventory = _ref.inventory,
|
|
15886
|
+
spellCooldowns = _ref.spellCooldowns;
|
|
15819
15887
|
var shortcutsRefs = useRef([]);
|
|
15888
|
+
var _useShortcutCooldown = useShortcutCooldown(onShortcutCast),
|
|
15889
|
+
handleShortcutCast = _useShortcutCooldown.handleShortcutCast,
|
|
15890
|
+
shortcutCooldown = _useShortcutCooldown.shortcutCooldown;
|
|
15820
15891
|
useEffect(function () {
|
|
15821
15892
|
var handleKeyDown = function handleKeyDown(e) {
|
|
15822
15893
|
if (isBlockedCastingByKeyboard) return;
|
|
15823
15894
|
var shortcutIndex = Number(e.key) - 1;
|
|
15824
15895
|
if (shortcutIndex >= 0 && shortcutIndex <= 5) {
|
|
15825
15896
|
var _shortcutsRefs$curren;
|
|
15826
|
-
|
|
15897
|
+
handleShortcutCast(shortcutIndex);
|
|
15827
15898
|
(_shortcutsRefs$curren = shortcutsRefs.current[shortcutIndex]) == null ? void 0 : _shortcutsRefs$curren.classList.add('active');
|
|
15828
15899
|
setTimeout(function () {
|
|
15829
15900
|
var _shortcutsRefs$curren2;
|
|
@@ -15835,11 +15906,15 @@ var Shortcuts = function Shortcuts(_ref) {
|
|
|
15835
15906
|
return function () {
|
|
15836
15907
|
window.removeEventListener('keydown', handleKeyDown);
|
|
15837
15908
|
};
|
|
15838
|
-
}, [shortcuts, isBlockedCastingByKeyboard]);
|
|
15909
|
+
}, [shortcuts, isBlockedCastingByKeyboard, shortcutCooldown]);
|
|
15839
15910
|
return React.createElement(List$1, null, Array.from({
|
|
15840
15911
|
length: 6
|
|
15841
15912
|
}).map(function (_, i) {
|
|
15842
|
-
var _shortcuts$i, _shortcuts$i3, _payload$manaCost;
|
|
15913
|
+
var _shortcuts$i, _shortcuts$i3, _spellCooldowns$paylo, _payload$manaCost;
|
|
15914
|
+
var buildClassName = function buildClassName(classBase, isOnCooldown) {
|
|
15915
|
+
return classBase + " " + (isOnCooldown ? 'onCooldown' : '');
|
|
15916
|
+
};
|
|
15917
|
+
var isOnShortcutCooldown = shortcutCooldown > 0;
|
|
15843
15918
|
if (((_shortcuts$i = shortcuts[i]) == null ? void 0 : _shortcuts$i.type) === ShortcutType.Item) {
|
|
15844
15919
|
var _shortcuts$i2;
|
|
15845
15920
|
var _payload = (_shortcuts$i2 = shortcuts[i]) == null ? void 0 : _shortcuts$i2.payload;
|
|
@@ -15856,12 +15931,14 @@ var Shortcuts = function Shortcuts(_ref) {
|
|
|
15856
15931
|
var totalQty = _payload && inventory ? countItemFromInventory(_payload.key, inventory) : 0;
|
|
15857
15932
|
return React.createElement(StyledShortcut$1, {
|
|
15858
15933
|
key: i,
|
|
15859
|
-
onPointerDown:
|
|
15934
|
+
onPointerDown: handleShortcutCast.bind(null, i),
|
|
15860
15935
|
disabled: false,
|
|
15861
15936
|
ref: function ref(el) {
|
|
15862
15937
|
if (el) shortcutsRefs.current[i] = el;
|
|
15863
15938
|
}
|
|
15864
|
-
},
|
|
15939
|
+
}, isOnShortcutCooldown && React.createElement("span", {
|
|
15940
|
+
className: "cooldown"
|
|
15941
|
+
}, shortcutCooldown.toFixed(1)), _payload && React.createElement(SpriteFromAtlas, {
|
|
15865
15942
|
atlasIMG: atlasIMG,
|
|
15866
15943
|
atlasJSON: atlasJSON,
|
|
15867
15944
|
spriteKey: getItemTextureKeyPath({
|
|
@@ -15873,27 +15950,32 @@ var Shortcuts = function Shortcuts(_ref) {
|
|
|
15873
15950
|
width: 32,
|
|
15874
15951
|
height: 32
|
|
15875
15952
|
}), React.createElement("span", {
|
|
15876
|
-
className:
|
|
15953
|
+
className: buildClassName('qty', isOnShortcutCooldown)
|
|
15877
15954
|
}, totalQty), React.createElement("span", {
|
|
15878
|
-
className:
|
|
15955
|
+
className: buildClassName('keyboard', isOnShortcutCooldown)
|
|
15879
15956
|
}, i + 1));
|
|
15880
15957
|
}
|
|
15881
15958
|
var payload = (_shortcuts$i3 = shortcuts[i]) == null ? void 0 : _shortcuts$i3.payload;
|
|
15959
|
+
var spellCooldown = !payload ? 0 : (_spellCooldowns$paylo = spellCooldowns == null ? void 0 : spellCooldowns[payload.magicWords.replaceAll(' ', '_')]) != null ? _spellCooldowns$paylo : shortcutCooldown;
|
|
15960
|
+
var cooldown = spellCooldown > shortcutCooldown ? spellCooldown : shortcutCooldown;
|
|
15961
|
+
var isOnCooldown = cooldown > 0 && !!payload;
|
|
15882
15962
|
return React.createElement(StyledShortcut$1, {
|
|
15883
15963
|
key: i,
|
|
15884
|
-
onPointerDown:
|
|
15964
|
+
onPointerDown: handleShortcutCast.bind(null, i),
|
|
15885
15965
|
disabled: mana < ((_payload$manaCost = payload == null ? void 0 : payload.manaCost) != null ? _payload$manaCost : 0),
|
|
15886
15966
|
ref: function ref(el) {
|
|
15887
15967
|
if (el) shortcutsRefs.current[i] = el;
|
|
15888
15968
|
}
|
|
15889
|
-
}, React.createElement("span", {
|
|
15890
|
-
className: "
|
|
15969
|
+
}, isOnCooldown && React.createElement("span", {
|
|
15970
|
+
className: "cooldown"
|
|
15971
|
+
}, cooldown.toFixed(cooldown < 10 ? 1 : 0)), React.createElement("span", {
|
|
15972
|
+
className: buildClassName('mana', isOnCooldown)
|
|
15891
15973
|
}, payload && payload.manaCost), React.createElement("span", {
|
|
15892
15974
|
className: "magicWords"
|
|
15893
15975
|
}, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
|
|
15894
15976
|
return word[0];
|
|
15895
15977
|
})), React.createElement("span", {
|
|
15896
|
-
className:
|
|
15978
|
+
className: buildClassName('keyboard', isOnCooldown)
|
|
15897
15979
|
}, i + 1));
|
|
15898
15980
|
}));
|
|
15899
15981
|
};
|
|
@@ -16150,14 +16232,17 @@ var Spell = function Spell(_ref) {
|
|
|
16150
16232
|
charMagicLevel = _ref.charMagicLevel,
|
|
16151
16233
|
onPointerUp = _ref.onPointerUp,
|
|
16152
16234
|
isSettingShortcut = _ref.isSettingShortcut,
|
|
16153
|
-
minMagicLevelRequired = _ref.minMagicLevelRequired
|
|
16235
|
+
minMagicLevelRequired = _ref.minMagicLevelRequired,
|
|
16236
|
+
activeCooldown = _ref.activeCooldown;
|
|
16154
16237
|
var disabled = isSettingShortcut ? charMagicLevel < minMagicLevelRequired : manaCost > charMana || charMagicLevel < minMagicLevelRequired;
|
|
16155
16238
|
return React.createElement(Container$k, {
|
|
16156
|
-
disabled: disabled,
|
|
16239
|
+
disabled: disabled || (activeCooldown != null ? activeCooldown : 0) > 0,
|
|
16157
16240
|
onPointerUp: onPointerUp == null ? void 0 : onPointerUp.bind(null, spellKey),
|
|
16158
16241
|
isSettingShortcut: isSettingShortcut && !disabled,
|
|
16159
16242
|
className: "spell"
|
|
16160
|
-
}, disabled && React.createElement(Overlay, null, charMagicLevel < minMagicLevelRequired ? 'Low magic level' : manaCost > charMana && 'No mana'), React.createElement(SpellImage, null,
|
|
16243
|
+
}, disabled && React.createElement(Overlay, null, charMagicLevel < minMagicLevelRequired ? 'Low magic level' : manaCost > charMana && 'No mana'), React.createElement(SpellImage, null, activeCooldown && activeCooldown > 0 ? React.createElement("span", {
|
|
16244
|
+
className: "cooldown"
|
|
16245
|
+
}, activeCooldown.toFixed(activeCooldown > 10 ? 0 : 1)) : null, magicWords.split(' ').map(function (word) {
|
|
16161
16246
|
return word[0];
|
|
16162
16247
|
})), React.createElement(Info, null, React.createElement(Title$6, null, React.createElement("span", null, name), React.createElement("span", {
|
|
16163
16248
|
className: "spell"
|
|
@@ -16175,7 +16260,7 @@ var Container$k = /*#__PURE__*/styled.button.withConfig({
|
|
|
16175
16260
|
var SpellImage = /*#__PURE__*/styled.div.withConfig({
|
|
16176
16261
|
displayName: "Spell__SpellImage",
|
|
16177
16262
|
componentId: "sc-j96fa2-1"
|
|
16178
|
-
})(["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);
|
|
16263
|
+
})(["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);
|
|
16179
16264
|
var Info = /*#__PURE__*/styled.span.withConfig({
|
|
16180
16265
|
displayName: "Spell__Info",
|
|
16181
16266
|
componentId: "sc-j96fa2-2"
|
|
@@ -16214,7 +16299,8 @@ var Spellbook = function Spellbook(_ref) {
|
|
|
16214
16299
|
removeShortcut = _ref.removeShortcut,
|
|
16215
16300
|
atlasIMG = _ref.atlasIMG,
|
|
16216
16301
|
atlasJSON = _ref.atlasJSON,
|
|
16217
|
-
scale = _ref.scale
|
|
16302
|
+
scale = _ref.scale,
|
|
16303
|
+
spellCooldowns = _ref.spellCooldowns;
|
|
16218
16304
|
var _useState = useState(''),
|
|
16219
16305
|
search = _useState[0],
|
|
16220
16306
|
setSearch = _useState[1];
|
|
@@ -16276,7 +16362,8 @@ var Spellbook = function Spellbook(_ref) {
|
|
|
16276
16362
|
charMagicLevel: magicLevel,
|
|
16277
16363
|
onPointerUp: settingShortcutIndex !== -1 ? setShortcut : onSpellClick,
|
|
16278
16364
|
spellKey: spell.key,
|
|
16279
|
-
isSettingShortcut: settingShortcutIndex !== -1
|
|
16365
|
+
isSettingShortcut: settingShortcutIndex !== -1,
|
|
16366
|
+
activeCooldown: spellCooldowns == null ? void 0 : spellCooldowns[spell.magicWords.replaceAll(' ', '_')]
|
|
16280
16367
|
}, spell)));
|
|
16281
16368
|
}))));
|
|
16282
16369
|
};
|