bnstooltips 1.19.2 → 1.20.1
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/build/SkillTooltip/SkillTooltip.d.ts +1 -1
- package/build/SkillTooltip/SkillTooltip.types.d.ts +0 -1
- package/build/SkillTooltipWrapper/SkillTooltipWrapper.types.d.ts +0 -1
- package/build/Utilities/Helpers.d.ts +2 -2
- package/build/Utilities/ISkill.d.ts +10 -0
- package/build/index.es.js +61 -51
- package/build/index.es.js.map +1 -1
- package/build/index.js +61 -51
- package/build/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { SkillTooltipProps } from "./SkillTooltip.types";
|
|
3
3
|
import "./SkillTooltip.scss";
|
|
4
|
-
declare function SkillTooltip({ data, debug, masteryPoints
|
|
4
|
+
declare function SkillTooltip({ data, debug, masteryPoints }: SkillTooltipProps): JSX.Element;
|
|
5
5
|
export default SkillTooltip;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Skill } from "./ISkill";
|
|
1
|
+
import { Skill, SkillArcaneInfo } from "./ISkill";
|
|
2
2
|
export declare function BuildIconPath(iconPath: string, iconIndex?: number): string;
|
|
3
3
|
export declare function IsNullOrEmpty(property?: string): boolean;
|
|
4
4
|
export declare function ReplaceIconsInHtmlString(htmlString: string): string;
|
|
@@ -13,4 +13,4 @@ export interface IBnsMoney {
|
|
|
13
13
|
Copper: number;
|
|
14
14
|
}
|
|
15
15
|
export declare function getMoneyObj(money: number): IBnsMoney | null;
|
|
16
|
-
export declare function GetSkillMasteryValue(points: number,
|
|
16
|
+
export declare function GetSkillMasteryValue(points: number, arcaneInfo: SkillArcaneInfo): number;
|
|
@@ -23,6 +23,16 @@ export interface Skill {
|
|
|
23
23
|
};
|
|
24
24
|
RealCastCondition: RealCastCondition;
|
|
25
25
|
RealEffects: RealEffects;
|
|
26
|
+
ArcaneInfo: SkillArcaneInfo;
|
|
27
|
+
}
|
|
28
|
+
export interface SkillArcaneInfo {
|
|
29
|
+
IsCooldown: boolean;
|
|
30
|
+
DamageSections: {
|
|
31
|
+
[id: number]: number;
|
|
32
|
+
};
|
|
33
|
+
CooldownBreakpoints: {
|
|
34
|
+
[id: number]: number;
|
|
35
|
+
};
|
|
26
36
|
}
|
|
27
37
|
export interface RealEffects {
|
|
28
38
|
Effects: {
|
package/build/index.es.js
CHANGED
|
@@ -317,52 +317,62 @@ function getMoneyObj(money) {
|
|
|
317
317
|
Silver: silver
|
|
318
318
|
};
|
|
319
319
|
}
|
|
320
|
-
function GetSkillMasteryValue(points,
|
|
321
|
-
if (points <= 0)
|
|
320
|
+
function GetSkillMasteryValue(points, arcaneInfo) {
|
|
321
|
+
if (points <= 0 || arcaneInfo == null)
|
|
322
322
|
return 0;
|
|
323
|
-
return
|
|
323
|
+
return arcaneInfo.IsCooldown ? GetSkillMasteryCdValueForPoints(points, arcaneInfo.CooldownBreakpoints) : GetSkillMasteryValueForPoints(points, arcaneInfo.DamageSections);
|
|
324
324
|
}
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
325
|
+
/**
|
|
326
|
+
* Calculates the cooldown reduction value based on skill mastery points and defined breakpoints.
|
|
327
|
+
*
|
|
328
|
+
* @param mastery - The total skill mastery points.
|
|
329
|
+
* @param cooldownBreakpoints - An object mapping breakpoints to their corresponding cooldown reduction values.
|
|
330
|
+
* @returns The total cooldown reduction value.
|
|
331
|
+
*/
|
|
332
|
+
function GetSkillMasteryCdValueForPoints(mastery, cooldownBreakpoints) {
|
|
333
|
+
var value = 0; // Accumulator for the total cooldown reduction value
|
|
334
|
+
// Convert the object keys (breakpoints) to an array of numbers and sort them in ascending order
|
|
335
|
+
var sortedBreakpoints = Object.keys(cooldownBreakpoints)
|
|
336
|
+
.map(Number) // Convert string keys to numbers
|
|
337
|
+
.sort(function (a, b) { return a - b; }); // Sort breakpoints in ascending order
|
|
338
|
+
// Iterate over the sorted breakpoints
|
|
339
|
+
for (var _i = 0, sortedBreakpoints_1 = sortedBreakpoints; _i < sortedBreakpoints_1.length; _i++) {
|
|
340
|
+
var breakpoint = sortedBreakpoints_1[_i];
|
|
341
|
+
if (mastery >= breakpoint) {
|
|
342
|
+
// Add the cooldown reduction value for this breakpoint (converted from milliseconds to seconds)
|
|
343
|
+
value += cooldownBreakpoints[breakpoint] / 1000;
|
|
344
|
+
}
|
|
335
345
|
}
|
|
336
|
-
return
|
|
346
|
+
return value; // Return the total cooldown reduction value
|
|
337
347
|
}
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
var
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
348
|
+
/**
|
|
349
|
+
* Calculates the total skill bonus based on mastery points and the given damage sections.
|
|
350
|
+
*
|
|
351
|
+
* @param mastery - The total mastery points.
|
|
352
|
+
* @param damageSections - An object defining breakpoints and corresponding multipliers.
|
|
353
|
+
* @returns The total bonus percentage.
|
|
354
|
+
*/
|
|
355
|
+
function GetSkillMasteryValueForPoints(mastery, damageSections) {
|
|
356
|
+
var bonus = 0; // Stores the accumulated bonus percentage
|
|
357
|
+
var previousLimit = 0; // Keeps track of the previous breakpoint
|
|
358
|
+
// Iterate over the damageSections object, sorted by its keys (breakpoints)
|
|
359
|
+
for (var _i = 0, _a = Object.entries(damageSections); _i < _a.length; _i++) {
|
|
360
|
+
var _b = _a[_i], limitStr = _b[0], multiplier = _b[1];
|
|
361
|
+
var limit = parseInt(limitStr, 10); // Convert the key (string) to a number
|
|
362
|
+
if (mastery > previousLimit) {
|
|
363
|
+
// Calculate how many points fall within this range
|
|
364
|
+
var pointsInRange = Math.min(mastery - previousLimit, limit - previousLimit);
|
|
365
|
+
// Multiply points by the corresponding multiplier (converted to percentage)
|
|
366
|
+
bonus += pointsInRange * (multiplier / 10);
|
|
367
|
+
}
|
|
368
|
+
// Update the previous limit for the next iteration
|
|
369
|
+
previousLimit = limit;
|
|
370
|
+
// Stop iterating if mastery has been fully allocated
|
|
371
|
+
if (mastery <= limit) {
|
|
372
|
+
break;
|
|
373
|
+
}
|
|
364
374
|
}
|
|
365
|
-
return
|
|
375
|
+
return bonus;
|
|
366
376
|
}
|
|
367
377
|
|
|
368
378
|
//----------------------
|
|
@@ -8885,7 +8895,7 @@ function SkillConditions(_a) {
|
|
|
8885
8895
|
}
|
|
8886
8896
|
|
|
8887
8897
|
function SkillTooltip(_a) {
|
|
8888
|
-
var data = _a.data, _b = _a.debug, debug = _b === void 0 ? false : _b, _c = _a.masteryPoints, masteryPoints = _c === void 0 ? 0 : _c
|
|
8898
|
+
var data = _a.data, _b = _a.debug, debug = _b === void 0 ? false : _b, _c = _a.masteryPoints, masteryPoints = _c === void 0 ? 0 : _c;
|
|
8889
8899
|
var skill = data;
|
|
8890
8900
|
var tooltipBaseProps = {
|
|
8891
8901
|
title: skill.Name,
|
|
@@ -8905,7 +8915,7 @@ function SkillTooltip(_a) {
|
|
|
8905
8915
|
//bottomPart
|
|
8906
8916
|
AddSubTexts(tooltipBaseProps.subInfoGroups, skill);
|
|
8907
8917
|
AddBreakValue(tooltipBaseProps.subInfoGroups, skill);
|
|
8908
|
-
AddSkillMastery(tooltipBaseProps.subInfoGroups, masteryPoints,
|
|
8918
|
+
AddSkillMastery(tooltipBaseProps.subInfoGroups, masteryPoints, skill.ArcaneInfo);
|
|
8909
8919
|
AddPvpModifiers(tooltipBaseProps.subInfoGroups, skill);
|
|
8910
8920
|
AddBoundaries(tooltipBaseProps.subInfoGroups, skill);
|
|
8911
8921
|
AddConditions(tooltipBaseProps.subInfoGroups, skill);
|
|
@@ -8957,11 +8967,11 @@ function AddBreakValue(subInfoGroups, skill) {
|
|
|
8957
8967
|
});
|
|
8958
8968
|
}
|
|
8959
8969
|
}
|
|
8960
|
-
function AddSkillMastery(subInfoGroups, masteryPoints,
|
|
8961
|
-
if (masteryPoints == null || masteryPoints == 0)
|
|
8970
|
+
function AddSkillMastery(subInfoGroups, masteryPoints, arcaneInfo) {
|
|
8971
|
+
if (masteryPoints == null || masteryPoints == 0 || arcaneInfo == null)
|
|
8962
8972
|
return;
|
|
8963
|
-
var masteryValue = GetSkillMasteryValue(masteryPoints,
|
|
8964
|
-
if (masteryValue == null
|
|
8973
|
+
var masteryValue = GetSkillMasteryValue(masteryPoints, arcaneInfo);
|
|
8974
|
+
if (masteryValue == null)
|
|
8965
8975
|
return;
|
|
8966
8976
|
var formattedMasteryValue = Number.isInteger(masteryValue) ? masteryValue.toString() : masteryValue.toFixed(2).replace(',', '.');
|
|
8967
8977
|
subInfoGroups.push({
|
|
@@ -8972,7 +8982,7 @@ function AddSkillMastery(subInfoGroups, masteryPoints, masteryIsCooldown) {
|
|
|
8972
8982
|
React.createElement("span", { className: "tooltipArg", style: { fontSize: "14px" } }, "Skill Grandmaster"),
|
|
8973
8983
|
React.createElement("div", { className: "arcanemark" }),
|
|
8974
8984
|
React.createElement("span", { className: "tooltipArg", style: { fontSize: "14px" } }, masteryPoints)),
|
|
8975
|
-
!
|
|
8985
|
+
!arcaneInfo.IsCooldown ?
|
|
8976
8986
|
React.createElement("div", null,
|
|
8977
8987
|
"Damage increase:\u00A0",
|
|
8978
8988
|
React.createElement("span", { className: "tooltipArg" },
|
|
@@ -9195,9 +9205,9 @@ var css_248z$5 = ".TooltipBase_bns_upgradeRed_color {\n color: #FF2818;\n}\n\n.
|
|
|
9195
9205
|
styleInject(css_248z$5);
|
|
9196
9206
|
|
|
9197
9207
|
var SkillTooltipWrapper = function (_a) {
|
|
9198
|
-
var data = _a.data, children = _a.children, _b = _a.interactive, interactive = _b === void 0 ? false : _b, _c = _a.placement, placement = _c === void 0 ? "right" : _c, _d = _a.followCursor, followCursor$1 = _d === void 0 ? false : _d, _e = _a.trigger, trigger = _e === void 0 ? "mouseenter focus" : _e, _f = _a.showArrow, showArrow = _f === void 0 ? true : _f, _g = _a.debug, debug = _g === void 0 ? false : _g, _h = _a.masteryPoints, masteryPoints = _h === void 0 ? 0 : _h
|
|
9208
|
+
var data = _a.data, children = _a.children, _b = _a.interactive, interactive = _b === void 0 ? false : _b, _c = _a.placement, placement = _c === void 0 ? "right" : _c, _d = _a.followCursor, followCursor$1 = _d === void 0 ? false : _d, _e = _a.trigger, trigger = _e === void 0 ? "mouseenter focus" : _e, _f = _a.showArrow, showArrow = _f === void 0 ? true : _f, _g = _a.debug, debug = _g === void 0 ? false : _g, _h = _a.masteryPoints, masteryPoints = _h === void 0 ? 0 : _h;
|
|
9199
9209
|
var spanRef = useRef(null);
|
|
9200
|
-
var
|
|
9210
|
+
var _j = useState(null), childRef = _j[0], setChildRef = _j[1];
|
|
9201
9211
|
/**
|
|
9202
9212
|
* Mount the temporary span element.
|
|
9203
9213
|
* retrieve and store the target element's reference.
|
|
@@ -9210,7 +9220,7 @@ var SkillTooltipWrapper = function (_a) {
|
|
|
9210
9220
|
}, []);
|
|
9211
9221
|
return (React.createElement(React.Fragment, null,
|
|
9212
9222
|
children,
|
|
9213
|
-
childRef ? (React.createElement(Tippy, { arrow: showArrow, trigger: trigger, plugins: [followCursor], followCursor: followCursor$1 && (!interactive && !debug), appendTo: document.body, placement: placement, animation: "fade", interactive: interactive || debug, content: React.createElement(SkillTooltip, { data: data, debug: debug, masteryPoints: masteryPoints
|
|
9223
|
+
childRef ? (React.createElement(Tippy, { arrow: showArrow, trigger: trigger, plugins: [followCursor], followCursor: followCursor$1 && (!interactive && !debug), appendTo: document.body, placement: placement, animation: "fade", interactive: interactive || debug, content: React.createElement(SkillTooltip, { data: data, debug: debug, masteryPoints: masteryPoints }), theme: "grade" + 4, reference: childRef })) : (React.createElement("span", { "data-testid": "TooltipWrapper", ref: spanRef, style: { display: "none" } }))));
|
|
9214
9224
|
};
|
|
9215
9225
|
|
|
9216
9226
|
var ServerRegion;
|