genshin_panel
Version:
genshin panel calculator
500 lines (369 loc) • 289 kB
JavaScript
/*
* ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else if(typeof exports === 'object')
exports["genshinPanel"] = factory();
else
root["genshinPanel"] = factory();
})(this, function() {
return /******/ (() => { // webpackBootstrap
/******/ var __webpack_modules__ = ({
/***/ "./src/numerics/character/data/index.d.ts":
/*!************************************************!*\
!*** ./src/numerics/character/data/index.d.ts ***!
\************************************************/
/***/ (() => {
eval("\n\n//# sourceURL=webpack://genshinPanel/./src/numerics/character/data/index.d.ts?");
/***/ }),
/***/ "./src/numerics/weapon/data/index.d.ts":
/*!*********************************************!*\
!*** ./src/numerics/weapon/data/index.d.ts ***!
\*********************************************/
/***/ (() => {
eval("\n\n//# sourceURL=webpack://genshinPanel/./src/numerics/weapon/data/index.d.ts?");
/***/ }),
/***/ "./src/artifact/artifact.ts":
/*!**********************************!*\
!*** ./src/artifact/artifact.ts ***!
\**********************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nconst common_1 = __webpack_require__(/*! ../common/common */ \"./src/common/common.ts\");\r\nclass Artifact {\r\n constructor(level, star, position, setName) {\r\n this.level = level;\r\n this.star = star;\r\n this.position = position;\r\n this.setName = setName;\r\n this.tag1 = {};\r\n this.tag2 = {};\r\n }\r\n addTag1(name, value) {\r\n this.tag1[name] = value;\r\n }\r\n addTag2(name, value) {\r\n this.tag2[name] = value;\r\n }\r\n apply(attr) {\r\n for (let key in this.tag1) {\r\n common_1.applySecondaryTag(attr, key, this.tag1[key]);\r\n }\r\n for (let key in this.tag2) {\r\n common_1.applySecondaryTag(attr, key, this.tag2[key]);\r\n }\r\n }\r\n}\r\nexports.default = Artifact;\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/artifact.ts?");
/***/ }),
/***/ "./src/artifact/artifact_builder.ts":
/*!******************************************!*\
!*** ./src/artifact/artifact_builder.ts ***!
\******************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nconst artifact_1 = __webpack_require__(/*! ./artifact */ \"./src/artifact/artifact.ts\");\r\nclass ArtifactBuilder {\r\n constructor() {\r\n this.tag1 = [];\r\n this.tag2 = [];\r\n this._level = -1;\r\n this._star = -1;\r\n this._position = \"\";\r\n this._setName = \"\";\r\n }\r\n level(value) {\r\n this._level = value;\r\n return this;\r\n }\r\n star(value) {\r\n this._star = value;\r\n return this;\r\n }\r\n position(value) {\r\n this._position = value;\r\n return this;\r\n }\r\n setName(value) {\r\n this._setName = value;\r\n return this;\r\n }\r\n mainTag(name, value) {\r\n this.tag1.push({\r\n name, value\r\n });\r\n return this;\r\n }\r\n tag(name, value) {\r\n this.tag2.push({\r\n name, value\r\n });\r\n return this;\r\n }\r\n check() {\r\n if (this._position === \"\") {\r\n return false;\r\n }\r\n if (this._setName === \"\") {\r\n return false;\r\n }\r\n return true;\r\n }\r\n build() {\r\n if (!this.check()) {\r\n throw \"typename and setname must be given\";\r\n }\r\n let art = new artifact_1.default(this._level, this._star, this._position, this._setName);\r\n for (let item of this.tag1) {\r\n art.addTag1(item.name, item.value);\r\n }\r\n for (let item of this.tag2) {\r\n art.addTag2(item.name, item.value);\r\n }\r\n return art;\r\n }\r\n}\r\nexports.default = ArtifactBuilder;\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/artifact_builder.ts?");
/***/ }),
/***/ "./src/artifact/artifact_set.ts":
/*!**************************************!*\
!*** ./src/artifact/artifact_set.ts ***!
\**************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nconst effects_1 = __webpack_require__(/*! ./effects */ \"./src/artifact/effects/index.ts\");\r\nclass ArtifactSet {\r\n constructor() {\r\n this.arts = [];\r\n }\r\n addArtifact(artifact) {\r\n this.arts.push(artifact);\r\n }\r\n length() {\r\n return this.arts.length;\r\n }\r\n get(i) {\r\n return this.arts[i];\r\n }\r\n applyBasic(attribute) {\r\n for (let art of this.arts) {\r\n art.apply(attribute);\r\n }\r\n }\r\n applyEffect(attribute, ctx, params) {\r\n effects_1.default(attribute, ctx, params, this);\r\n }\r\n}\r\nexports.default = ArtifactSet;\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/artifact_set.ts?");
/***/ }),
/***/ "./src/artifact/effects/adventurer.ts":
/*!********************************************!*\
!*** ./src/artifact/effects/adventurer.ts ***!
\********************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.lifeStatic += 1000;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/adventurer.ts?");
/***/ }),
/***/ "./src/artifact/effects/archaic_petra.ts":
/*!***********************************************!*\
!*** ./src/artifact/effects/archaic_petra.ts ***!
\***********************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.rockBonus += 0.15;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n if (params.configArchaicPatra) {\r\n let element = params.configArchaicPatra.element;\r\n let rate = params.configArchaicPatra.rate;\r\n let bonusName = element + \"Bonus\";\r\n attribute[bonusName] += rate * 0.35;\r\n }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/archaic_petra.ts?");
/***/ }),
/***/ "./src/artifact/effects/berserker.ts":
/*!*******************************************!*\
!*** ./src/artifact/effects/berserker.ts ***!
\*******************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.crit(0.12);\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n if (params.configBerserker) {\r\n let rate = params.configBerserker.rate;\r\n attribute.crit(rate * 0.24);\r\n }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/berserker.ts?");
/***/ }),
/***/ "./src/artifact/effects/blizzard_strayer.ts":
/*!**************************************************!*\
!*** ./src/artifact/effects/blizzard_strayer.ts ***!
\**************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.iceBonus += 0.15;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n if (params.configBlizzardStrayer) {\r\n let value = params.configBlizzardStrayer.criticalBonus;\r\n attribute.crit(value);\r\n }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/blizzard_strayer.ts?");
/***/ }),
/***/ "./src/artifact/effects/bloodstained_chivalry.ts":
/*!*******************************************************!*\
!*** ./src/artifact/effects/bloodstained_chivalry.ts ***!
\*******************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.physicalBonus += 0.25;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n if (params.configBloodstainedChivalry) {\r\n let rate = params.configBloodstainedChivalry.rate;\r\n attribute.bBonus += rate * 0.5;\r\n }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/bloodstained_chivalry.ts?");
/***/ }),
/***/ "./src/artifact/effects/brave_heart.ts":
/*!*********************************************!*\
!*** ./src/artifact/effects/brave_heart.ts ***!
\*********************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.attackPercentage += attribute.attackBasic * 0.18;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n if (params.configBraveHeart) {\r\n let rate = params.configBraveHeart.rate;\r\n attribute.bonus += rate * 0.3;\r\n }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/brave_heart.ts?");
/***/ }),
/***/ "./src/artifact/effects/crimson_witch.ts":
/*!***********************************************!*\
!*** ./src/artifact/effects/crimson_witch.ts ***!
\***********************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.fireBonus += 0.15;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n attribute.overloadEnhance += 0.4;\r\n attribute.burningEnhance += 0.4;\r\n attribute.vaporizeEnhance += 0.15;\r\n attribute.meltEnhance += 0.15;\r\n if (params.configCrimsonWitch) {\r\n let level = Math.min(3, params.configCrimsonWitch.level);\r\n attribute.fireBonus += 0.075 * level;\r\n }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/crimson_witch.ts?");
/***/ }),
/***/ "./src/artifact/effects/defender_will.ts":
/*!***********************************************!*\
!*** ./src/artifact/effects/defender_will.ts ***!
\***********************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.defendPercentage += attribute.defendBasic * 0.3;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n if (params.configDefenderWill) {\r\n for (let element of params.configDefenderWill.elements) {\r\n let resName = element + \"Res\";\r\n attribute[resName] += 0.3;\r\n }\r\n }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/defender_will.ts?");
/***/ }),
/***/ "./src/artifact/effects/emblem_of_severed_fate.ts":
/*!********************************************************!*\
!*** ./src/artifact/effects/emblem_of_severed_fate.ts ***!
\********************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.recharge += 0.2;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n attribute.addLazy((a) => {\r\n let recharge = a.recharge;\r\n let value = Math.min(recharge * 0.25, 0.75);\r\n attribute.qBonus += value;\r\n });\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/emblem_of_severed_fate.ts?");
/***/ }),
/***/ "./src/artifact/effects/exile.ts":
/*!***************************************!*\
!*** ./src/artifact/effects/exile.ts ***!
\***************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.recharge += 0.2;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/exile.ts?");
/***/ }),
/***/ "./src/artifact/effects/gambler.ts":
/*!*****************************************!*\
!*** ./src/artifact/effects/gambler.ts ***!
\*****************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.eBonus += 0.2;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/gambler.ts?");
/***/ }),
/***/ "./src/artifact/effects/gladiator_finale.ts":
/*!**************************************************!*\
!*** ./src/artifact/effects/gladiator_finale.ts ***!
\**************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.attackPercentage += attribute.attackBasic * 0.18;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n let weaponType = ctx.character.weapon;\r\n if (weaponType === 0 /* Sword */ || weaponType === 4 /* Sword2 */ || weaponType === 3 /* Stick */) {\r\n attribute.aBonus += 0.35;\r\n }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/gladiator_finale.ts?");
/***/ }),
/***/ "./src/artifact/effects/heart_of_depth.ts":
/*!************************************************!*\
!*** ./src/artifact/effects/heart_of_depth.ts ***!
\************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.waterBonus += 0.15;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n if (params.configHeartOfDepth) {\r\n let rate = params.configHeartOfDepth.rate;\r\n attribute.aBonus += rate * 0.3;\r\n attribute.bBonus += rate * 0.3;\r\n }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/heart_of_depth.ts?");
/***/ }),
/***/ "./src/artifact/effects/husk_of_opulent_dreams.ts":
/*!********************************************************!*\
!*** ./src/artifact/effects/husk_of_opulent_dreams.ts ***!
\********************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.defendPercentage += attribute.defendBasic * 0.3;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n if (params.configHuskOfOpulentDreams) {\r\n const level = params.configHuskOfOpulentDreams.level;\r\n const value = level * 0.06;\r\n attribute.defendPercentage += attribute.defendBasic * value;\r\n attribute.rockBonus += value;\r\n }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/husk_of_opulent_dreams.ts?");
/***/ }),
/***/ "./src/artifact/effects/index.ts":
/*!***************************************!*\
!*** ./src/artifact/effects/index.ts ***!
\***************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nconst adventurer_1 = __webpack_require__(/*! ./adventurer */ \"./src/artifact/effects/adventurer.ts\");\r\nconst archaic_petra_1 = __webpack_require__(/*! ./archaic_petra */ \"./src/artifact/effects/archaic_petra.ts\");\r\nconst berserker_1 = __webpack_require__(/*! ./berserker */ \"./src/artifact/effects/berserker.ts\");\r\nconst bloodstained_chivalry_1 = __webpack_require__(/*! ./bloodstained_chivalry */ \"./src/artifact/effects/bloodstained_chivalry.ts\");\r\nconst brave_heart_1 = __webpack_require__(/*! ./brave_heart */ \"./src/artifact/effects/brave_heart.ts\");\r\nconst crimson_witch_1 = __webpack_require__(/*! ./crimson_witch */ \"./src/artifact/effects/crimson_witch.ts\");\r\nconst defender_will_1 = __webpack_require__(/*! ./defender_will */ \"./src/artifact/effects/defender_will.ts\");\r\nconst exile_1 = __webpack_require__(/*! ./exile */ \"./src/artifact/effects/exile.ts\");\r\nconst gambler_1 = __webpack_require__(/*! ./gambler */ \"./src/artifact/effects/gambler.ts\");\r\nconst gladiator_finale_1 = __webpack_require__(/*! ./gladiator_finale */ \"./src/artifact/effects/gladiator_finale.ts\");\r\nconst instructor_1 = __webpack_require__(/*! ./instructor */ \"./src/artifact/effects/instructor.ts\");\r\nconst lava_walker_1 = __webpack_require__(/*! ./lava_walker */ \"./src/artifact/effects/lava_walker.ts\");\r\nconst lucky_dog_1 = __webpack_require__(/*! ./lucky_dog */ \"./src/artifact/effects/lucky_dog.ts\");\r\nconst maiden_beloved_1 = __webpack_require__(/*! ./maiden_beloved */ \"./src/artifact/effects/maiden_beloved.ts\");\r\nconst martial_artist_1 = __webpack_require__(/*! ./martial_artist */ \"./src/artifact/effects/martial_artist.ts\");\r\nconst noblesse_oblige_1 = __webpack_require__(/*! ./noblesse_oblige */ \"./src/artifact/effects/noblesse_oblige.ts\");\r\nconst prayers_for_destiny_1 = __webpack_require__(/*! ./prayers_for_destiny */ \"./src/artifact/effects/prayers_for_destiny.ts\");\r\nconst prayers_for_illumination_1 = __webpack_require__(/*! ./prayers_for_illumination */ \"./src/artifact/effects/prayers_for_illumination.ts\");\r\nconst prayers_for_wisdom_1 = __webpack_require__(/*! ./prayers_for_wisdom */ \"./src/artifact/effects/prayers_for_wisdom.ts\");\r\nconst prayers_to_springtime_1 = __webpack_require__(/*! ./prayers_to_springtime */ \"./src/artifact/effects/prayers_to_springtime.ts\");\r\nconst resolution_of_sojourner_1 = __webpack_require__(/*! ./resolution_of_sojourner */ \"./src/artifact/effects/resolution_of_sojourner.ts\");\r\nconst retracing_bolide_1 = __webpack_require__(/*! ./retracing_bolide */ \"./src/artifact/effects/retracing_bolide.ts\");\r\nconst scholar_1 = __webpack_require__(/*! ./scholar */ \"./src/artifact/effects/scholar.ts\");\r\nconst thunder_smoother_1 = __webpack_require__(/*! ./thunder_smoother */ \"./src/artifact/effects/thunder_smoother.ts\");\r\nconst thundering_fury_1 = __webpack_require__(/*! ./thundering_fury */ \"./src/artifact/effects/thundering_fury.ts\");\r\nconst tiny_miracle_1 = __webpack_require__(/*! ./tiny_miracle */ \"./src/artifact/effects/tiny_miracle.ts\");\r\nconst traveling_doctor_1 = __webpack_require__(/*! ./traveling_doctor */ \"./src/artifact/effects/traveling_doctor.ts\");\r\nconst viridescent_venerer_1 = __webpack_require__(/*! ./viridescent_venerer */ \"./src/artifact/effects/viridescent_venerer.ts\");\r\nconst wanderer_troupe_1 = __webpack_require__(/*! ./wanderer_troupe */ \"./src/artifact/effects/wanderer_troupe.ts\");\r\nconst heart_of_depth_1 = __webpack_require__(/*! ./heart_of_depth */ \"./src/artifact/effects/heart_of_depth.ts\");\r\nconst blizzard_strayer_1 = __webpack_require__(/*! ./blizzard_strayer */ \"./src/artifact/effects/blizzard_strayer.ts\");\r\nconst pale_flame_1 = __webpack_require__(/*! ./pale_flame */ \"./src/artifact/effects/pale_flame.ts\");\r\nconst tenacity_of_the_millelith_1 = __webpack_require__(/*! ./tenacity_of_the_millelith */ \"./src/artifact/effects/tenacity_of_the_millelith.ts\");\r\nconst emblem_of_severed_fate_1 = __webpack_require__(/*! ./emblem_of_severed_fate */ \"./src/artifact/effects/emblem_of_severed_fate.ts\");\r\nconst shimenawa_reminiscence_1 = __webpack_require__(/*! ./shimenawa_reminiscence */ \"./src/artifact/effects/shimenawa_reminiscence.ts\");\r\nconst husk_of_opulent_dreams_1 = __webpack_require__(/*! ./husk_of_opulent_dreams */ \"./src/artifact/effects/husk_of_opulent_dreams.ts\");\r\nconst ocean_hued_clam_1 = __webpack_require__(/*! ./ocean_hued_clam */ \"./src/artifact/effects/ocean_hued_clam.ts\");\r\nlet applyFunctions = {};\r\napplyFunctions[\"adventurer\"] = adventurer_1.default;\r\napplyFunctions[\"archaicPetra\"] = archaic_petra_1.default;\r\napplyFunctions[\"berserker\"] = berserker_1.default;\r\napplyFunctions[\"bloodstainedChivalry\"] = bloodstained_chivalry_1.default;\r\napplyFunctions[\"braveHeart\"] = brave_heart_1.default;\r\napplyFunctions[\"crimsonWitch\"] = crimson_witch_1.default;\r\napplyFunctions[\"defenderWill\"] = defender_will_1.default;\r\napplyFunctions[\"exile\"] = exile_1.default;\r\napplyFunctions[\"gambler\"] = gambler_1.default;\r\napplyFunctions[\"gladiatorFinale\"] = gladiator_finale_1.default;\r\napplyFunctions[\"instructor\"] = instructor_1.default;\r\napplyFunctions[\"lavaWalker\"] = lava_walker_1.default;\r\napplyFunctions[\"luckyDog\"] = lucky_dog_1.default;\r\napplyFunctions[\"maidenBeloved\"] = maiden_beloved_1.default;\r\napplyFunctions[\"martialArtist\"] = martial_artist_1.default;\r\napplyFunctions[\"noblesseOblige\"] = noblesse_oblige_1.default;\r\napplyFunctions[\"prayersForDestiny\"] = prayers_for_destiny_1.default;\r\napplyFunctions[\"prayersForIllumination\"] = prayers_for_illumination_1.default;\r\napplyFunctions[\"prayersForWisdom\"] = prayers_for_wisdom_1.default;\r\napplyFunctions[\"prayersToSpringtime\"] = prayers_to_springtime_1.default;\r\napplyFunctions[\"resolutionOfSojourner\"] = resolution_of_sojourner_1.default;\r\napplyFunctions[\"retracingBolide\"] = retracing_bolide_1.default;\r\napplyFunctions[\"scholar\"] = scholar_1.default;\r\napplyFunctions[\"thunderSmoother\"] = thunder_smoother_1.default;\r\napplyFunctions[\"thunderingFury\"] = thundering_fury_1.default;\r\napplyFunctions[\"tinyMiracle\"] = tiny_miracle_1.default;\r\napplyFunctions[\"travelingDoctor\"] = traveling_doctor_1.default;\r\napplyFunctions[\"viridescentVenerer\"] = viridescent_venerer_1.default;\r\napplyFunctions[\"wandererTroupe\"] = wanderer_troupe_1.default;\r\napplyFunctions[\"heartOfDepth\"] = heart_of_depth_1.default;\r\napplyFunctions[\"blizzardStrayer\"] = blizzard_strayer_1.default;\r\napplyFunctions[\"paleFlame\"] = pale_flame_1.default;\r\napplyFunctions[\"tenacityOfTheMillelith\"] = tenacity_of_the_millelith_1.default;\r\napplyFunctions[\"emblemOfSeveredFate\"] = emblem_of_severed_fate_1.default;\r\napplyFunctions[\"shimenawaReminiscence\"] = shimenawa_reminiscence_1.default;\r\napplyFunctions[\"huskOfOpulentDreams\"] = husk_of_opulent_dreams_1.default;\r\napplyFunctions[\"oceanHuedClam\"] = ocean_hued_clam_1.default;\r\nfunction apply(attribute, ctx, params, artifacts) {\r\n let temp = {};\r\n let len = artifacts.length();\r\n params = params || {};\r\n for (let i = 0; i < len; i++) {\r\n let art = artifacts.get(i);\r\n let setName = art.setName;\r\n if (temp[setName]) {\r\n temp[setName]++;\r\n }\r\n else {\r\n temp[setName] = 1;\r\n }\r\n }\r\n for (let key in temp) {\r\n let count = temp[key];\r\n for (let i = 0; i < count; i++) {\r\n if (applyFunctions[key][i]) {\r\n applyFunctions[key][i](attribute, ctx, params);\r\n }\r\n }\r\n }\r\n}\r\nexports.default = apply;\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/index.ts?");
/***/ }),
/***/ "./src/artifact/effects/instructor.ts":
/*!********************************************!*\
!*** ./src/artifact/effects/instructor.ts ***!
\********************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.elementalMastery += 80;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n if (params.configInstructor) {\r\n let rate = params.configInstructor.rate;\r\n attribute.elementalMastery += 120 * rate;\r\n }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/instructor.ts?");
/***/ }),
/***/ "./src/artifact/effects/lava_walker.ts":
/*!*********************************************!*\
!*** ./src/artifact/effects/lava_walker.ts ***!
\*********************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.fireRes += 0.4;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n if (params.configLavaWalker) {\r\n let rate = params.configLavaWalker.rate;\r\n attribute.bonus += rate * 0.35;\r\n }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/lava_walker.ts?");
/***/ }),
/***/ "./src/artifact/effects/lucky_dog.ts":
/*!*******************************************!*\
!*** ./src/artifact/effects/lucky_dog.ts ***!
\*******************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.defendStatic += 100;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/lucky_dog.ts?");
/***/ }),
/***/ "./src/artifact/effects/maiden_beloved.ts":
/*!************************************************!*\
!*** ./src/artifact/effects/maiden_beloved.ts ***!
\************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.cureEffect += 0.15;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n if (params.configMaidenBeloved) {\r\n let rate = params.configMaidenBeloved.rate;\r\n attribute.curedEffect += rate * 0.2;\r\n }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/maiden_beloved.ts?");
/***/ }),
/***/ "./src/artifact/effects/martial_artist.ts":
/*!************************************************!*\
!*** ./src/artifact/effects/martial_artist.ts ***!
\************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.aBonus += 0.15;\r\n attribute.bBonus += 0.15;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n if (params.configMartialArtist) {\r\n let rate = params.configMartialArtist.rate;\r\n attribute.aBonus += rate * 0.25;\r\n attribute.bBonus += rate * 0.25;\r\n }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/martial_artist.ts?");
/***/ }),
/***/ "./src/artifact/effects/noblesse_oblige.ts":
/*!*************************************************!*\
!*** ./src/artifact/effects/noblesse_oblige.ts ***!
\*************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.qBonus += 0.2;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n if (params.configNoblesseOblige) {\r\n let rate = params.configNoblesseOblige.rate;\r\n attribute.atkLift(rate * 0.2);\r\n }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/noblesse_oblige.ts?");
/***/ }),
/***/ "./src/artifact/effects/ocean_hued_clam.ts":
/*!*************************************************!*\
!*** ./src/artifact/effects/ocean_hued_clam.ts ***!
\*************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.cureEffect += 0.15;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/ocean_hued_clam.ts?");
/***/ }),
/***/ "./src/artifact/effects/pale_flame.ts":
/*!********************************************!*\
!*** ./src/artifact/effects/pale_flame.ts ***!
\********************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.physicalBonus += 0.25;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n if (params.configPaleFlame) {\r\n let level = Math.min(params.configPaleFlame.level, 2);\r\n let rate = params.configPaleFlame.rate;\r\n attribute.atkLift(0.09 * level);\r\n attribute.physicalBonus += 0.25 * rate;\r\n }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/pale_flame.ts?");
/***/ }),
/***/ "./src/artifact/effects/prayers_for_destiny.ts":
/*!*****************************************************!*\
!*** ./src/artifact/effects/prayers_for_destiny.ts ***!
\*****************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n// 祭水之人\r\nfunction apply1(attribute, ctx, params) {\r\n attribute.waterTime += 0.4;\r\n}\r\nexports.default = [apply1, null, null, null, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/prayers_for_destiny.ts?");
/***/ }),
/***/ "./src/artifact/effects/prayers_for_illumination.ts":
/*!**********************************************************!*\
!*** ./src/artifact/effects/prayers_for_illumination.ts ***!
\**********************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n// 祭火之人\r\nfunction apply1(attribute, ctx, params) {\r\n attribute.fireTime += 0.4;\r\n}\r\nexports.default = [apply1, null, null, null, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/prayers_for_illumination.ts?");
/***/ }),
/***/ "./src/artifact/effects/prayers_for_wisdom.ts":
/*!****************************************************!*\
!*** ./src/artifact/effects/prayers_for_wisdom.ts ***!
\****************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n// 祭雷之人\r\nfunction apply1(attribute, ctx, params) {\r\n attribute.thunderTime += 0.4;\r\n}\r\nexports.default = [apply1, null, null, null, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/prayers_for_wisdom.ts?");
/***/ }),
/***/ "./src/artifact/effects/prayers_to_springtime.ts":
/*!*******************************************************!*\
!*** ./src/artifact/effects/prayers_to_springtime.ts ***!
\*******************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n// 祭冰之人\r\nfunction apply1(attribute, ctx, params) {\r\n attribute.iceTime += 0.4;\r\n}\r\nexports.default = [apply1, null, null, null, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/prayers_to_springtime.ts?");
/***/ }),
/***/ "./src/artifact/effects/resolution_of_sojourner.ts":
/*!*********************************************************!*\
!*** ./src/artifact/effects/resolution_of_sojourner.ts ***!
\*********************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.attackPercentage += attribute.attackBasic * 0.18;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n attribute.bCritical += 0.3;\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/resolution_of_sojourner.ts?");
/***/ }),
/***/ "./src/artifact/effects/retracing_bolide.ts":
/*!**************************************************!*\
!*** ./src/artifact/effects/retracing_bolide.ts ***!
\**************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.shield += 0.35;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n if (params.configRetracingBolide) {\r\n let rate = params.configRetracingBolide.rate;\r\n attribute.aBonus += 0.4 * rate;\r\n attribute.bBonus += 0.4 * rate;\r\n }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/retracing_bolide.ts?");
/***/ }),
/***/ "./src/artifact/effects/scholar.ts":
/*!*****************************************!*\
!*** ./src/artifact/effects/scholar.ts ***!
\*****************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.recharge += 0.2;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/scholar.ts?");
/***/ }),
/***/ "./src/artifact/effects/shimenawa_reminiscence.ts":
/*!********************************************************!*\
!*** ./src/artifact/effects/shimenawa_reminiscence.ts ***!
\********************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.attackPercentage += attribute.attackBasic * 0.18;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n if (params.configShimenawaReminiscence) {\r\n let rate = params.configShimenawaReminiscence.rate;\r\n let value = rate * 0.5;\r\n attribute.aBonus += value;\r\n attribute.bBonus += value;\r\n attribute.airBonus += value;\r\n }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/shimenawa_reminiscence.ts?");
/***/ }),
/***/ "./src/artifact/effects/tenacity_of_the_millelith.ts":
/*!***********************************************************!*\
!*** ./src/artifact/effects/tenacity_of_the_millelith.ts ***!
\***********************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.lifePercentage += attribute.lifeBasic * 0.2;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n if (params.configTenacityOfTheMillelith) {\r\n let rate = params.configTenacityOfTheMillelith.rate;\r\n attribute.atkLift(rate * 0.2);\r\n attribute.shield += rate * 0.3;\r\n }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/tenacity_of_the_millelith.ts?");
/***/ }),
/***/ "./src/artifact/effects/thunder_smoother.ts":
/*!**************************************************!*\
!*** ./src/artifact/effects/thunder_smoother.ts ***!
\**************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.thunderRes += 0.4;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n if (params.configThunderSmoother) {\r\n let rate = params.configThunderSmoother.rate;\r\n attribute.bonus += 0.35 * rate;\r\n }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/thunder_smoother.ts?");
/***/ }),
/***/ "./src/artifact/effects/thundering_fury.ts":
/*!*************************************************!*\
!*** ./src/artifact/effects/thundering_fury.ts ***!
\*************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.thunderBonus += 0.15;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n attribute.overloadEnhance += 0.4;\r\n attribute.electroEnhance += 0.4;\r\n attribute.superconductEnhance += 0.4;\r\n // if (params.countThunderingFury) {\r\n // attribute.bonus += 0.4;\r\n // if (typeof attribute.tag !== \"undefined\") {\r\n // attribute.tag.push(\"计入如雷的盛怒4件套\");\r\n // }\r\n // }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/thundering_fury.ts?");
/***/ }),
/***/ "./src/artifact/effects/tiny_miracle.ts":
/*!**********************************************!*\
!*** ./src/artifact/effects/tiny_miracle.ts ***!
\**********************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.thunderRes += 0.2;\r\n attribute.iceRes += 0.2;\r\n attribute.rockRes += 0.2;\r\n attribute.fireRes += 0.2;\r\n attribute.windRes += 0.2;\r\n attribute.waterRes += 0.2;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n if (params.configTinyMiracle) {\r\n let element = params.configTinyMiracle.element;\r\n let rate = params.configTinyMiracle.rate;\r\n let resName = element + \"res\";\r\n attribute[resName] += 0.3 * rate;\r\n }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/tiny_miracle.ts?");
/***/ }),
/***/ "./src/artifact/effects/traveling_doctor.ts":
/*!**************************************************!*\
!*** ./src/artifact/effects/traveling_doctor.ts ***!
\**************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.curedEffect += 0.2;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/traveling_doctor.ts?");
/***/ }),
/***/ "./src/artifact/effects/viridescent_venerer.ts":
/*!*****************************************************!*\
!*** ./src/artifact/effects/viridescent_venerer.ts ***!
\*****************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.windBonus += 0.15;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n // if (params.countViridescentVenerer) {\r\n // attribute.bonus += 0.6;\r\n // if (typeof attribute.tag !== \"undefined\") {\r\n // attribute.tag.push(\"计入翠绿之影4件套\");\r\n // }\r\n // }\r\n attribute.swirlEnhance += 0.6;\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/viridescent_venerer.ts?");
/***/ }),
/***/ "./src/artifact/effects/wanderer_troupe.ts":
/*!*************************************************!*\
!*** ./src/artifact/effects/wanderer_troupe.ts ***!
\*************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nfunction apply2(attribute, ctx, params) {\r\n attribute.elementalMastery += 80;\r\n}\r\nfunction apply4(attribute, ctx, params) {\r\n let weapon = ctx.character.weapon;\r\n if (weapon === 1 /* Book */ || weapon === 2 /* Bow */) {\r\n attribute.bBonus += 0.35;\r\n }\r\n}\r\nexports.default = [null, apply2, null, apply4, null];\r\n\n\n//# sourceURL=webpack://genshinPanel/./src/artifact/effects/wanderer_troupe.ts?");
/***/ }),
/***/ "./src/attribute/attribute.ts":
/*!************************************!*\
!*** ./src/attribute/attribute.ts ***!
\************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nclass Attribute {\r\n constructor() {\r\n this.cureEffect = 0; // 治疗效果 \r\n this.curedEffect = 0; // 被治疗效果\r\n this.lifeBasic = 0; // 基础生命值\r\n this.lifeStatic = 0; // 固定增加生命值\r\n this.lifePercentage = 0; // %增加生命值\r\n this.attackBasic = 0; // 基础攻击力\r\n this.attackStatic = 0; // 固定攻击力\r\n this.attackPercentage = 0; // %增加攻击力\r\n this.defendBasic = 0; // 基础防御力\r\n this.defendStatic = 0; // 固定防御力\r\n this.defendPercentage = 0; // %增加防御力\r\n this.critical = 0.05; // 普通攻击暴击率\r\n this.bCritical = 0.05; // 重击暴击率\r\n this.eCritical = 0.05; // 元素战技暴击率\r\n this.qCritical = 0.05; // 元素爆发暴击率\r\n this.airCritical = 0.05; // 下落攻击暴击率\r\n this.criticalDamage = 0.5; // 暴击伤害\r\n this.thunderCriticalDamage = 0; // 雷元素暴击伤害\r\n this.fireCriticalDamage = 0;\r\n this.waterCriticalDamage = 0;\r\n this.iceCriticalDamage = 0;\r\n this.windCriticalDamage = 0;\r\n this.rockCriticalDamage = 0;\r\n this.grassCriticalDamage = 0;\r\n this.physicalCriticalDamage = 0;\r\n this.thunderRes = 0; // 雷元素抗性\r\n this.fireRes = 0; //\r\n this.waterRes = 0; //\r\n this.iceRes = 0; //\r\n this.windRes = 0; //\r\n this.rockRes = 0; //\r\n this.grassRes = 0;\r\n this.elementalMastery = 0; // 元素精通\r\n this.recharge = 1; // 元素充能效率\r\n this.thunderBonus = 0; // 雷元素伤害加成\r\n this.fireBonus = 0; //\r\n this.waterBonus = 0; //\r\n this.iceBonus = 0; //\r\n this.windBonus = 0; //\r\n this.rockBonus = 0; //\r\n this.grassBonus = 0; //\r\n this.physicalBonus = 0; // 物理伤害加成\r\n // elementalBonus: number = 0; // 元素伤害加成\r\n this.aBonus = 0; // 普通攻击伤害加成\r\n this.bBonus = 0; // 重击伤害加成\r\n this.eBonus = 0; // 元素战技伤害加成\r\n this.qBonus = 0; // 元素爆发伤害加成\r\n this.airBonus = 0; // 下落攻击伤害加成\r\n this.bonus = 0; // 伤害加成\r\n this.thunderTime = 0; // 雷元素附着持续时间\r\n this.fireTime = 0; //\r\n this.waterTime = 0; //\r\n this.iceTime = 0; //\r\n this.windTime = 0; //\r\n this.rockTime = 0; //\r\n this.grassTime = 0; //\r\n this.shield = 0; // 护盾强效\r\n this.aSpeed = 1; // 攻击速度\r\n this.bSpeed = 1;\r\n this.overloadEnhance = 0; // 超载强度\r\n this.burningEnhance = 0; // 燃烧强度\r\n this.electroEnhance = 0; // 感电强度\r\n this.superconductEnhance = 0; // 超导强度\r\n this.swirlThunderEnhance = 0; // 扩散(雷)强度\r\n this.swirlFireEnhance = 0;\r\n this.swirlWaterEnhance = 0;\r\n this.swirlIceEnhance = 0;\r\n this.swirlEnhance = 0;\r\n this.vaporizeEnhance = 0; // 蒸发强度\r\n this.meltEnhance = 0; // 融化强度\r\n this.moveSpeed = 1;\r\n this.lifeRatio = 0; // 基础伤害乘区的生命值倍率,这是因为某些武器也会加该乘区\r\n this.defendRatio = 0; // 基础伤害乘区的防御力倍率\r\n this.atkRatio = 0;\r\n this.aLifeRatio = 0;\r\n this.aDefRatio = 0;\r\n this.aAtkRatio = 0;\r\n this.bLifeRatio = 0;\r\n this.bDefRatio = 0;\r\n this.bAtkRatio = 0;\r\n this.airLifeRatio = 0;\r\n this.airDefRatio = 0;\r\n this.airAtkRatio = 0;\r\n this.eLifeRatio = 0;\r\n this.eDefRatio = 0;\r\n this.eAtkRatio = 0;\r\n this.qLifeRatio = 0;\r\n this.qDefRatio = 0;\r\n this.qAtkRatio = 0;\r\n this.enemyThunderDown = 0; // 雷元素减抗\r\n this.enemyFireDown = 0; //\r\n this.enemyWaterDown = 0; //\r\n this.enemyIceDown = 0; //\r\n this.enemyWindDown = 0; //\r\n this.enemyRockDown = 0; //\r\n this.enemyGrassDown = 0; //\r\n this.enemyPhysicalDown = 0; // 物理减抗\r\n this.enemyDefDown = 0; // 减防\r\n this._lazyList = [];\r\n }\r\n getBaseDamage(skill, atkRatio = 0, defRatio = 0, hpRatio = 0) {\r\n if (skill === \"a\") {\r\n return this.getNormalAttackBaseDamage(atkRatio, defRatio, hpRatio);\r\n }\r\n else if (skill === \"b\") {\r\n return this.getChargedAttackBaseDamage(atkRatio, defRatio, hpRatio);\r\n }\r\n else if (skill === \"air\") {\r\n return this.getPlungingAttackBaseDamage(atkRatio, defRatio, hpRatio);\r\n }\r\n else if (skill === \"e\") {\r\n return this.getElementalSkillBaseDamage(atkRatio, defRatio, hpRatio);\r\n }\r\n else if (skill === \"q\") {\r\n return this.getElementalBurstBaseDamage(atkRatio, defRatio, hpRatio);\r\n }\r\n throw new Error(`unsupported skill name: ${skill}`);\r\n }\r\n getNormalAttackBaseDamage(atkRatio, defRatio = 0, hpRatio = 0) {\r\n const atk = this.attack();\r\n const def = this.defend();\r\n const hp = this.life();\r\n const atkR = atkRatio + this.atkRatio + this.aAtkRatio;\r\n const defR = defRatio + this.defendRatio + this.aDefRatio;\r\n const hpR = hpRatio + this.lifeRatio + this.aLifeRatio;\r\n return atk * atkR + def * defR + hp * hpR;\r\n }\r\n getChargedAttackBaseDamage(atkRatio, defRatio = 0, hpRatio = 0) {\r\n const atk = this.attack();\r\n const def = this.defend();\r\n const hp = this.life();\r\n const atkR = atkRatio + this.atkRatio + this.bAtkRatio;\r\n const defR = defRatio + this.defendRatio + this.bDefRatio;\r\n const hpR = hpRatio + this.lifeRatio + this.bLifeRatio;\r\n return atk * atkR + def * defR + hp * hpR;\r\n }\r\n getPlungingAttackBaseDamage(atkRatio, defRatio = 0, hpRatio = 0) {\r\n const atk = this.attack();\r\n const def = this.defend();\r\n const hp = this.life();\r\n const atkR = atkRatio + this.atkRatio + this.airAtkRatio;\r\n const defR = defRatio + this.defendRatio + this.airDefRatio;\r\n const hpR = hpRatio + this.lifeRatio + this.airLifeRatio;\r\n