From f3012edbb95dbd9ac61a39221a6ebd6f6f546c83 Mon Sep 17 00:00:00 2001 From: __stdcall Date: Sat, 2 Mar 2024 16:26:33 +0800 Subject: [PATCH] Further tweak SR scorers --- model/starrail/relic.ts | 1 - model/starrail/scorer.ts | 45 +++++++------------ resources/starrail/index.ts | 4 +- .../starrail/relics/Path of Gelid Wind.ts | 9 +--- .../starrail/relics/Path of Providence.ts | 5 +-- resources/starrail/relics/World 7.ts | 5 +-- resources/starrail/scorers/FuXuan.ts | 25 +++++++++++ resources/starrail/scorers/Gepard.ts | 23 ++++++++++ resources/starrail/scorers/Jingliu.ts | 22 +++++++++ .../starrail/scorers/{scorers => }/Luocha.ts | 0 resources/starrail/scorers/Seele.ts | 22 +++++++++ resources/starrail/scorers/Yinyue.ts | 22 +++++++++ resources/starrail/scorers/index.ts | 6 +++ resources/starrail/scorers/rule.ts | 40 ++++++++++++++++- .../starrail/scorers/rules/MainStatWeight.ts | 11 ----- .../starrail/scorers/rules/SubStatWeight.ts | 18 -------- resources/starrail/scorers/rules/index.ts | 28 ------------ resources/starrail/scorers/scorer.ts | 2 - resources/starrail/scorers/scorers/Arlan.ts | 19 -------- resources/starrail/scorers/scorers/Asta.ts | 20 --------- resources/starrail/scorers/scorers/Bailu.ts | 27 ----------- resources/starrail/scorers/scorers/Bronya.ts | 19 -------- resources/starrail/scorers/scorers/DanHeng.ts | 19 -------- .../starrail/scorers/scorers/DanHengBig.ts | 27 ----------- resources/starrail/scorers/scorers/FuXuan.ts | 29 ------------ resources/starrail/scorers/scorers/Gepard.ts | 25 ----------- resources/starrail/scorers/scorers/Herta.ts | 27 ----------- .../starrail/scorers/scorers/JingYuan.ts | 19 -------- resources/starrail/scorers/scorers/Jingliu.ts | 27 ----------- resources/starrail/scorers/scorers/Lynx.ts | 20 --------- resources/starrail/scorers/scorers/Natasha.ts | 20 --------- resources/starrail/scorers/scorers/Pela.ts | 20 --------- resources/starrail/scorers/scorers/Qingque.ts | 26 ----------- resources/starrail/scorers/scorers/Sampo.ts | 20 --------- resources/starrail/scorers/scorers/Seele.ts | 26 ----------- .../starrail/scorers/scorers/SilverWolf.ts | 20 --------- resources/starrail/scorers/scorers/Tingyun.ts | 18 -------- .../scorers/scorers/TrailblazerFire.ts | 23 ---------- resources/starrail/scorers/scorers/Welt.ts | 20 --------- resources/starrail/scorers/scorers/Yanqing.ts | 25 ----------- resources/starrail/scorers/scorers/index.ts | 23 ---------- 41 files changed, 180 insertions(+), 627 deletions(-) create mode 100644 resources/starrail/scorers/FuXuan.ts create mode 100644 resources/starrail/scorers/Gepard.ts create mode 100644 resources/starrail/scorers/Jingliu.ts rename resources/starrail/scorers/{scorers => }/Luocha.ts (100%) create mode 100644 resources/starrail/scorers/Seele.ts create mode 100644 resources/starrail/scorers/Yinyue.ts create mode 100644 resources/starrail/scorers/index.ts delete mode 100644 resources/starrail/scorers/rules/MainStatWeight.ts delete mode 100644 resources/starrail/scorers/rules/SubStatWeight.ts delete mode 100644 resources/starrail/scorers/rules/index.ts delete mode 100644 resources/starrail/scorers/scorer.ts delete mode 100644 resources/starrail/scorers/scorers/Arlan.ts delete mode 100644 resources/starrail/scorers/scorers/Asta.ts delete mode 100644 resources/starrail/scorers/scorers/Bailu.ts delete mode 100644 resources/starrail/scorers/scorers/Bronya.ts delete mode 100644 resources/starrail/scorers/scorers/DanHeng.ts delete mode 100644 resources/starrail/scorers/scorers/DanHengBig.ts delete mode 100644 resources/starrail/scorers/scorers/FuXuan.ts delete mode 100644 resources/starrail/scorers/scorers/Gepard.ts delete mode 100644 resources/starrail/scorers/scorers/Herta.ts delete mode 100644 resources/starrail/scorers/scorers/JingYuan.ts delete mode 100644 resources/starrail/scorers/scorers/Jingliu.ts delete mode 100644 resources/starrail/scorers/scorers/Lynx.ts delete mode 100644 resources/starrail/scorers/scorers/Natasha.ts delete mode 100644 resources/starrail/scorers/scorers/Pela.ts delete mode 100644 resources/starrail/scorers/scorers/Qingque.ts delete mode 100644 resources/starrail/scorers/scorers/Sampo.ts delete mode 100644 resources/starrail/scorers/scorers/Seele.ts delete mode 100644 resources/starrail/scorers/scorers/SilverWolf.ts delete mode 100644 resources/starrail/scorers/scorers/Tingyun.ts delete mode 100644 resources/starrail/scorers/scorers/TrailblazerFire.ts delete mode 100644 resources/starrail/scorers/scorers/Welt.ts delete mode 100644 resources/starrail/scorers/scorers/Yanqing.ts delete mode 100644 resources/starrail/scorers/scorers/index.ts diff --git a/model/starrail/relic.ts b/model/starrail/relic.ts index ca23cc6..89046c1 100644 --- a/model/starrail/relic.ts +++ b/model/starrail/relic.ts @@ -118,7 +118,6 @@ export class Piece extends Base.Piece { }; export class Set extends Base.Set { - constructor( public name: string, public displayName: string, diff --git a/model/starrail/scorer.ts b/model/starrail/scorer.ts index d7faa67..bf03021 100644 --- a/model/starrail/scorer.ts +++ b/model/starrail/scorer.ts @@ -9,51 +9,36 @@ export const findRule = (stat: Stat, rule: StatWeightTable): number => { return Base.findRule(stat, rule); }; -export class MainStatWeightRule extends ScoreRule { +export class MainStatRule extends ScoreRule { constructor( - public pieceName: string[], - public scale: number + public targets: string[], + public stat: { [statName: string]: number }, + public reward: number, + public punish: number ) { super(); } override target(piece: Piece): boolean { - return this.pieceName.includes(piece.name); + return this.targets.includes(piece.name); } override add(piece: Piece, weight: StatWeightTable): number { - return this.scale * findRule(piece.mainStat, weight); - } -}; - -export interface StatMatchTable { - [ statName: string ]: number; -}; + if (!(piece.mainStat.name in this.stat)) + return 0; -export class MainStatMatchRule extends ScoreRule { - constructor( - public statMatch: StatMatchTable - ) { super(); } + let score = (piece.level + 1) / 16 * this.stat[piece.mainStat.name]; + score += this.reward * findRule(piece.mainStat, weight); - override target(piece: Piece): boolean { - return [ - "Body", "Feet", - "Planar Sphere", "Link Rope" - ].includes(piece.name); + return score; } - override mul(piece: Piece, weight: StatWeightTable): number { - if (!(piece.mainStat.name in this.statMatch)) - return 0.1; + override mul(piece: Piece): number { + if (!(piece.mainStat.name in this.stat)) + return this.punish; return 1; } - - override add(piece: Piece, weight: StatWeightTable): number { - if (!(piece.mainStat.name in this.statMatch)) - return 0; - return piece.level / 15 * this.statMatch[piece.mainStat.name]; - } }; -export class SubStatWeightRule extends ScoreRule { +export class SubStatRule extends ScoreRule { constructor( public multipler: StatWeightTable ) { super(); } diff --git a/resources/starrail/index.ts b/resources/starrail/index.ts index 063f3c5..ba94671 100644 --- a/resources/starrail/index.ts +++ b/resources/starrail/index.ts @@ -2,7 +2,9 @@ export * from './stat.js'; export * from './piece.js'; export * from './scorers/rule.js'; -export * from './scorers/scorer.js'; + +import * as Scorer from './scorers/index.js'; +export { Scorer }; import { Sets as sets } from './set.js'; import { Domains as domains } from './domain.js'; diff --git a/resources/starrail/relics/Path of Gelid Wind.ts b/resources/starrail/relics/Path of Gelid Wind.ts index b5f4dd4..25bdcf2 100644 --- a/resources/starrail/relics/Path of Gelid Wind.ts +++ b/resources/starrail/relics/Path of Gelid Wind.ts @@ -1,7 +1,7 @@ import { AddOuterSet } from '../set.js'; import { AddDomain } from '../domain.js'; -import { Scorer } from '../scorers/scorer.js'; +import * as Scorer from '../scorers/index.js'; AddDomain( "Path of Gelid Wind", "睿治之径", @@ -11,9 +11,7 @@ AddDomain( "Hunter of Glacial Forest", "密林卧雪的猎人", ["冰", "冰套"], [ - Scorer.YanqingScorer, - Scorer.JingliuScorer, - Scorer.HertaScorer, + Scorer.JingliuScorer ], { "Head": { @@ -42,9 +40,6 @@ AddDomain( "Eagle of Twilight Line", "晨昏交界的翔鹰", ["风", "风套"], [ - Scorer.DanHengScorer, - Scorer.SampoScorer, - Scorer.BronyaScorer, ], { "Head": { diff --git a/resources/starrail/relics/Path of Providence.ts b/resources/starrail/relics/Path of Providence.ts index 49d6805..e104143 100644 --- a/resources/starrail/relics/Path of Providence.ts +++ b/resources/starrail/relics/Path of Providence.ts @@ -1,7 +1,7 @@ import { AddOuterSet } from '../set.js'; import { AddDomain } from '../domain.js'; -import { Scorer } from '../scorers/scorer.js'; +import * as Scorer from '../scorers/index.js'; AddDomain( "Path of Providence", "睿治之径", @@ -11,8 +11,6 @@ AddDomain( "Genius of Brilliant Stars", "繁星璀璨的天才", ["量子", "量子套"], [ - // Scorer.JingYuanScorer, - Scorer.QingqueScorer, Scorer.SeeleScorer ], { @@ -42,7 +40,6 @@ AddDomain( "Guard of Wuthering Snow", "戍卫风雪的铁卫", ["铁卫", "铁卫套"], [ - // Scorer.TrailblazerFireScorer, Scorer.FuXuanScorer, ], { diff --git a/resources/starrail/relics/World 7.ts b/resources/starrail/relics/World 7.ts index 738fd77..0353ecd 100644 --- a/resources/starrail/relics/World 7.ts +++ b/resources/starrail/relics/World 7.ts @@ -1,7 +1,7 @@ import { AddInnerSet } from '../set.js'; import { AddDomain } from '../domain.js'; -import { Scorer } from '../scorers/scorer.js'; +import * as Scorer from '../scorers/index.js'; AddDomain( "World 7", "第七世界", @@ -11,8 +11,6 @@ AddDomain( "Rutilant Arena", "繁星竞技场", ["繁星", "繁星套"], [ - Scorer.QingqueScorer, - Scorer.DanHengBigScorer, Scorer.SeeleScorer, Scorer.JingliuScorer ], @@ -35,7 +33,6 @@ AddDomain( [ Scorer.GepardScorer, Scorer.LuochaScorer, - Scorer.BailuScorer, Scorer.FuXuanScorer ], { diff --git a/resources/starrail/scorers/FuXuan.ts b/resources/starrail/scorers/FuXuan.ts new file mode 100644 index 0000000..a0ee417 --- /dev/null +++ b/resources/starrail/scorers/FuXuan.ts @@ -0,0 +1,25 @@ +import { StarRail } from '#gc.model'; +import { makeRules } from './rule.js'; + +export const FuXuanScorer = new StarRail.Scorer( + "Fu Xuan", + "符玄", + makeRules([ + [["Body"], {"HP": 0, "DEF": 0, "CRIT DMG": 5}], + [["Feet"], {"SPD": 5}], + [["Planar Sphere"], {"HP": 3, "DEF": 3, "Quantum DMG Boost": 6}], + [["Link Rope"], {"Energy Regeneration Rate": 10}] + ]), + { + "HP": 1, + "FlatHP": 1, + "DEF": 0.5, + "FlatDEF": 0.5, + "SPD": 1, + "CRIT Rate": 1, + "CRIT DMG": 1, + "Energy Regeneration Rate": 0.5, + "Effect RES": 0.5, + "Quantum DMG Boost": 1 + } +); diff --git a/resources/starrail/scorers/Gepard.ts b/resources/starrail/scorers/Gepard.ts new file mode 100644 index 0000000..52ae7f5 --- /dev/null +++ b/resources/starrail/scorers/Gepard.ts @@ -0,0 +1,23 @@ +import { StarRail } from '#gc.model'; +import { makeRules } from './rule.js'; + +export const GepardScorer = new StarRail.Scorer( + "Gepard", + "杰帕德", + makeRules([ + [["Body"], {"Effect Hit Rate": 5, "DEF": 0}], + [["Feet"], {"SPD": 5}], + [["Planar Sphere"], {"DEF": 3}], + [["Link Rope"], {"Energy Regeneration Rate": 10}], + ]), + { + "HP": 0.5, + "FlatHP": 0.5, + "DEF": 1, + "FlatDEF": 1, + "SPD": 1, + "Energy Regeneration Rate": 1, + "Effect Hit Rate": 0.5, + "Effect RES": 0.5 + } +); diff --git a/resources/starrail/scorers/Jingliu.ts b/resources/starrail/scorers/Jingliu.ts new file mode 100644 index 0000000..3645687 --- /dev/null +++ b/resources/starrail/scorers/Jingliu.ts @@ -0,0 +1,22 @@ +import { StarRail } from '#gc.model'; +import { makeRules } from './rule.js'; + +export const JingliuScorer = new StarRail.Scorer( + "Jingliu", + "镜流", + makeRules([ + [["Body"], {"CRIT DMG": 5}], + [["Feet"], {"SPD": 5}], + [["Planar Sphere"], {"Ice DMG Boost": 6}], + [["Link Rope"], {"ATK": 0, "Energy Regeneration Rate": 10}], + ]), + { + "ATK": 0.75, + "FlatATK": 0.75, + "SPD": 1, + "CRIT Rate": 1, + "CRIT DMG": 1, + "Energy Regeneration Rate": 0.5, + "Ice DMG Boost": 1 + } +); diff --git a/resources/starrail/scorers/scorers/Luocha.ts b/resources/starrail/scorers/Luocha.ts similarity index 100% rename from resources/starrail/scorers/scorers/Luocha.ts rename to resources/starrail/scorers/Luocha.ts diff --git a/resources/starrail/scorers/Seele.ts b/resources/starrail/scorers/Seele.ts new file mode 100644 index 0000000..e13f9ae --- /dev/null +++ b/resources/starrail/scorers/Seele.ts @@ -0,0 +1,22 @@ +import { StarRail } from '#gc.model'; +import { makeRules } from './rule.js'; + +export const SeeleScorer = new StarRail.Scorer( + "Seele", + "希儿", + makeRules([ + [["Body"], {"CRIT Rate": 5, "CRIT DMG": 5}], + [["Feet"], {"ATK": 0}], + [["Planar Sphere"], {"Quantum DMG Boost": 6}], + [["Link Rope"], {"ATK": 0}] + ]), + { + "ATK": 0.75, + "FlatATK": 0.75, + "SPD": 1, + "CRIT Rate": 1, + "CRIT DMG": 1, + "Energy Regeneration Rate": 0.5, + "Quantum DMG Boost": 1 + } +); diff --git a/resources/starrail/scorers/Yinyue.ts b/resources/starrail/scorers/Yinyue.ts new file mode 100644 index 0000000..afc57c0 --- /dev/null +++ b/resources/starrail/scorers/Yinyue.ts @@ -0,0 +1,22 @@ +import { StarRail } from '#gc.model'; +import { makeRules } from './rule.js'; + +export const YinyueScorer = new StarRail.Scorer( + "Dan Heng·Imbibitor Lunae", + "丹恒·饮月", + makeRules([ + [["Body"], {"CRIT Rate": 5, "CRIT DMG": 5}], + [["Feet"], {"ATK": 0}], + [["Planar Sphere"], {"Imaginary DMG Boost": 6}], + [["Link Rope"], {"ATK": 0, "Energy Regeneration Rate": 10}] + ]), + { + "ATK": 0.75, + "FlatATK": 0.75, + "SPD": 1, + "CRIT Rate": 1, + "CRIT DMG": 1, + "Energy Regeneration Rate": 0.50, + "Imaginary DMG Boost": 1 + } +); diff --git a/resources/starrail/scorers/index.ts b/resources/starrail/scorers/index.ts new file mode 100644 index 0000000..9d05652 --- /dev/null +++ b/resources/starrail/scorers/index.ts @@ -0,0 +1,6 @@ +export * from './FuXuan.js'; +export * from './Gepard.js'; +export * from './Jingliu.js'; +export * from './Luocha.js'; +export * from './Seele.js'; +export * from './Yinyue.js'; diff --git a/resources/starrail/scorers/rule.ts b/resources/starrail/scorers/rule.ts index bf52e72..7b8d834 100644 --- a/resources/starrail/scorers/rule.ts +++ b/resources/starrail/scorers/rule.ts @@ -1,2 +1,38 @@ -import * as Rule from "./rules/index.js"; -export { Rule }; +import { StarRail } from "#gc.model"; + +const subRule = new StarRail.SubStatRule({ + "CRIT Rate": 2, + "CRIT DMG": 1, + "HP": 1.5, + "ATK": 1.5, + "DEF": 1.19, + "SPD": 2.53, + "Break Effect": 1, + "Effect Hit Rate": 1.49, + "Effect RES": 1.49, + "FlatATK": 0.3 * 0.5, + "FlatDEF": 0.3 * 0.5, + "FlatHP": 0.153 * 0.5, +}); + +type RuleArgs = [string[], { [ statName: string ]: number }, number?, number?]; + +export const makeRules = (mainRules: RuleArgs[]): StarRail.ScoreRule[] => { + let arr: StarRail.ScoreRule[] = [ subRule ]; + + for (let i = 0; i < mainRules.length; ++i) { + mainRules.push(null); + mainRules.push(null); + + mainRules[i][2] ??= 5.83; // default reward + mainRules[i][3] ??= 0.25; // default punish + arr.push(new StarRail.MainStatRule( + mainRules[i][0], + mainRules[i][1], + mainRules[i][2], + mainRules[i][3], + )); + } + + return arr; +}; diff --git a/resources/starrail/scorers/rules/MainStatWeight.ts b/resources/starrail/scorers/rules/MainStatWeight.ts deleted file mode 100644 index 07f3382..0000000 --- a/resources/starrail/scorers/rules/MainStatWeight.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { StarRail } from "#gc.model"; - -export const MainStatWeight = new StarRail.MainStatWeightRule( - [ - "Body", - "Feet", - "Planar Sphere", - "Link Rope" - ], - 5.83 -); diff --git a/resources/starrail/scorers/rules/SubStatWeight.ts b/resources/starrail/scorers/rules/SubStatWeight.ts deleted file mode 100644 index e8e4072..0000000 --- a/resources/starrail/scorers/rules/SubStatWeight.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { StarRail } from "#gc.model"; - -export const SubStatWeight = new StarRail.SubStatWeightRule( - { - "CRIT Rate": 2, - "CRIT Damage": 1, - "HP": 1.5, - "ATK": 1.5, - "DEF": 1.19, - "SPD": 2.53, - "Break Effect": 1, - "Effect Hit Rate": 1.49, - "Effect RES": 1.49, - "FlatATK": 0.3 * 0.5, - "FlatDEF": 0.3 * 0.5, - "FlatHP": 0.153 * 0.5, - } -); diff --git a/resources/starrail/scorers/rules/index.ts b/resources/starrail/scorers/rules/index.ts deleted file mode 100644 index 77d5d74..0000000 --- a/resources/starrail/scorers/rules/index.ts +++ /dev/null @@ -1,28 +0,0 @@ - -import { MainStatWeight } from "./MainStatWeight.js"; -import { SubStatWeight } from "./SubStatWeight.js"; - -const All = [ - MainStatWeight, - SubStatWeight -]; - -import { StarRail } from "#gc.model"; - -const MainStatMatchRule = StarRail.MainStatMatchRule; - -const makeRule = (match: StarRail.StatMatchTable): StarRail.ScoreRule[] => { - return [ - MainStatWeight, - SubStatWeight, - new MainStatMatchRule(match) - ]; -}; - -export { - makeRule, - MainStatMatchRule, - MainStatWeight, - SubStatWeight, - All -}; diff --git a/resources/starrail/scorers/scorer.ts b/resources/starrail/scorers/scorer.ts deleted file mode 100644 index ade6ed6..0000000 --- a/resources/starrail/scorers/scorer.ts +++ /dev/null @@ -1,2 +0,0 @@ -import * as Scorer from './scorers/index.js'; -export { Scorer }; diff --git a/resources/starrail/scorers/scorers/Arlan.ts b/resources/starrail/scorers/scorers/Arlan.ts deleted file mode 100644 index 906fa86..0000000 --- a/resources/starrail/scorers/scorers/Arlan.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { StarRail } from '#gc.model'; -import { Rule } from '../rule.js'; - -const Weight = { - "ATK": 0.75, - "FlatATK": 0.75, - "SPD": 0.75, - "CRIT Rate": 1, - "CRIT DMG": 1, - "Energy Regeneration Rate": 0.5, - "Lightning DMG Boost": 1 -}; - -export const ArlanScorer = new StarRail.Scorer( - "Arlan", - "阿兰", - Rule.All, - Weight -); diff --git a/resources/starrail/scorers/scorers/Asta.ts b/resources/starrail/scorers/scorers/Asta.ts deleted file mode 100644 index acb7fd1..0000000 --- a/resources/starrail/scorers/scorers/Asta.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { StarRail } from '#gc.model'; -import { Rule } from '../rule.js'; - -const Weight = { - "ATK": 0.75, - "FlatATK": 0.75, - "SPD": 1, - "CRIT Rate": 0.75, - "CRIT DMG": 0.75, - "Break Effect": 1, - "Energy Regeneration Rate": 1, - "Fire DMG Boost": 1 -}; - -export const AstaScorer = new StarRail.Scorer( - "Asta", - "艾丝妲", - Rule.All, - Weight -); diff --git a/resources/starrail/scorers/scorers/Bailu.ts b/resources/starrail/scorers/scorers/Bailu.ts deleted file mode 100644 index 99faf35..0000000 --- a/resources/starrail/scorers/scorers/Bailu.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { StarRail } from '#gc.model'; -import { Rule } from '../rule.js'; - -const Weight = { - "HP": 1, - "FlatHP": 1, - "DEF": 0.5, - "FlatDEF": 0.5, - "SPD": 0.75, - "Energy Regeneration Rate": 1, - "Outgoing Healing Boost": 1, - "Effect RES": 0.5 -}; - -const Match = { - "Outgoing Healing Boost": 5, - "SPD": 5, - "Energy Regeneration Rate": 10, - "HP": 0 -}; - -export const BailuScorer = new StarRail.Scorer( - "Bailu", - "白露", - Rule.makeRule(Match), - Weight -); diff --git a/resources/starrail/scorers/scorers/Bronya.ts b/resources/starrail/scorers/scorers/Bronya.ts deleted file mode 100644 index 03cfef8..0000000 --- a/resources/starrail/scorers/scorers/Bronya.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { StarRail } from '#gc.model'; -import { Rule } from '../rule.js'; - -const Weight = { - "ATK": 0.75, - "FlatATK": 0.75, - "SPD": 1, - "CRIT Rate": 0.75, - "CRIT DMG": 1, - "Energy Regeneration Rate": 1, - "Wind DMG Boost": 1 -}; - -export const BronyaScorer = new StarRail.Scorer( - "Bronya", - "布洛妮娅", - Rule.All, - Weight -); diff --git a/resources/starrail/scorers/scorers/DanHeng.ts b/resources/starrail/scorers/scorers/DanHeng.ts deleted file mode 100644 index 3f14a7d..0000000 --- a/resources/starrail/scorers/scorers/DanHeng.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { StarRail } from '#gc.model'; -import { Rule } from '../rule.js'; - -const Weight = { - "ATK": 0.75, - "FlatATK": 0.75, - "SPD": 0.75, - "CRIT Rate": 1, - "CRIT DMG": 1, - "Energy Regeneration Rate": 0.50, - "Wind DMG Boost": 1 -}; - -export const DanHengScorer = new StarRail.Scorer( - "Dan Heng", - "丹恒", - Rule.All, - Weight -); diff --git a/resources/starrail/scorers/scorers/DanHengBig.ts b/resources/starrail/scorers/scorers/DanHengBig.ts deleted file mode 100644 index f7787d0..0000000 --- a/resources/starrail/scorers/scorers/DanHengBig.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { StarRail } from '#gc.model'; -import { Rule } from '../rule.js'; - -const Weight = { - "ATK": 0.75, - "FlatATK": 0.75, - "SPD": 1, - "CRIT Rate": 1, - "CRIT DMG": 1, - "Energy Regeneration Rate": 0.50, - "Imaginary DMG Boost": 1 -}; - -const Match = { - "CRIT Rate": 5, - "CRIT DMG": 5, - "ATK": 0, - "Imaginary DMG Boost": 6, - "Energy Regeneration Rate": 10 -}; - -export const DanHengBigScorer = new StarRail.Scorer( - "Dan Heng·Imbibitor Lunae", - "丹恒·饮月", - Rule.makeRule(Match), - Weight -); diff --git a/resources/starrail/scorers/scorers/FuXuan.ts b/resources/starrail/scorers/scorers/FuXuan.ts deleted file mode 100644 index ef725a7..0000000 --- a/resources/starrail/scorers/scorers/FuXuan.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { StarRail } from '#gc.model'; -import { Rule } from '../rule.js'; - -const Weight = { - "HP": 1, - "FlatHP": 1, - "DEF": 0.5, - "FlatDEF": 0.5, - "SPD": 1, - "CRIT Rate": 1, - "CRIT DMG": 1, - "Energy Regeneration Rate": 0.5, - "Effect RES": 0.5, - "Quantum DMG Boost": 1 -}; - -const Match = { - "HP": 2, - "DEF": 0, - "SPD": 5, - "Energy Regeneration Rate": 10, -}; - -export const FuXuanScorer = new StarRail.Scorer( - "Fu Xuan", - "符玄", - Rule.makeRule(Match), - Weight -); diff --git a/resources/starrail/scorers/scorers/Gepard.ts b/resources/starrail/scorers/scorers/Gepard.ts deleted file mode 100644 index 4b1a24e..0000000 --- a/resources/starrail/scorers/scorers/Gepard.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { StarRail } from '#gc.model'; -import { Rule } from '../rule.js'; - -const Weight = { - "HP": 0.5, - "FlatHP": 0.5, - "DEF": 1, - "FlatDEF": 1, - "SPD": 1, - "Energy Regeneration Rate": 1, - "Effect Hit Rate": 0.5, - "Effect RES": 0.5 -}; - -const Match = { - "Effect Hit Rate": 5, - "SPD": 5, -}; - -export const GepardScorer = new StarRail.Scorer( - "Gepard", - "杰帕德", - Rule.All, - Weight -); diff --git a/resources/starrail/scorers/scorers/Herta.ts b/resources/starrail/scorers/scorers/Herta.ts deleted file mode 100644 index 264f9ed..0000000 --- a/resources/starrail/scorers/scorers/Herta.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { StarRail } from '#gc.model'; -import { Rule } from '../rule.js'; - -const HertaWeight = { - "ATK": 0.75, - "FlatATK": 0.75, - "SPD": 0.75, - "CRIT Rate": 1, - "CRIT DMG": 1, - "Energy Regeneration Rate": 0.50, - "Ice DMG Boost": 1 -}; - -const Match = { - "CRIT DMG": 5, - "CRIT Rate": 5, - "Ice DMG Boost": 6, - "ATK": 0, - "SPD": 5 -}; - -export const HertaScorer = new StarRail.Scorer( - "Herta", - "黑塔", - Rule.makeRule(Match), - HertaWeight -); diff --git a/resources/starrail/scorers/scorers/JingYuan.ts b/resources/starrail/scorers/scorers/JingYuan.ts deleted file mode 100644 index ab94175..0000000 --- a/resources/starrail/scorers/scorers/JingYuan.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { StarRail } from '#gc.model'; -import { Rule } from '../rule.js'; - -const Weight = { - "ATK": 0.75, - "FlatATK": 0.75, - "SPD": 1, - "CRIT Rate": 1, - "CRIT DMG": 1, - "Energy Regeneration Rate": 0.5, - "Quantum DMG Boost": 1 -}; - -export const JingYuanScorer = new StarRail.Scorer( - "Jing Yuan", - "景元", - Rule.All, - Weight -); diff --git a/resources/starrail/scorers/scorers/Jingliu.ts b/resources/starrail/scorers/scorers/Jingliu.ts deleted file mode 100644 index efbaf8a..0000000 --- a/resources/starrail/scorers/scorers/Jingliu.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { StarRail } from '#gc.model'; -import { Rule } from '../rule.js'; - -const JingliuWeight = { - "ATK": 0.75, - "FlatATK": 0.75, - "SPD": 1, - "CRIT Rate": 1, - "CRIT DMG": 1, - "Energy Regeneration Rate": 0.5, - "Ice DMG Boost": 1 -}; - -const Match = { - "CRIT DMG": 5, - "SPD": 5, - "Ice DMG Boost": 6, - "ATK": 0, - "Energy Regeneration Rate": 10, -}; - -export const JingliuScorer = new StarRail.Scorer( - "Jingliu", - "镜流", - Rule.makeRule(Match), - JingliuWeight -); diff --git a/resources/starrail/scorers/scorers/Lynx.ts b/resources/starrail/scorers/scorers/Lynx.ts deleted file mode 100644 index 53d3aca..0000000 --- a/resources/starrail/scorers/scorers/Lynx.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { StarRail } from '#gc.model'; -import { Rule } from '../rule.js'; - -const Weight = { - "HP": 1, - "FlatHP": 1, - "DEF": 0.5, - "FlatDEF": 0.5, - "SPD": 1, - "Energy Regeneration Rate": 0.75, - "Outgoing Healing Boost": 1, - "Effect RES": 0.5 -}; - -export const LynxScorer = new StarRail.Scorer( - "Lynx", - "玲可", - Rule.All, - Weight -); diff --git a/resources/starrail/scorers/scorers/Natasha.ts b/resources/starrail/scorers/scorers/Natasha.ts deleted file mode 100644 index 34a011b..0000000 --- a/resources/starrail/scorers/scorers/Natasha.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { StarRail } from '#gc.model'; -import { Rule } from '../rule.js'; - -const Weight = { - "HP": 1, - "FlatHP": 1, - "DEF": 0.5, - "FlatDEF": 0.5, - "SPD": 0.75, - "Energy Regeneration Rate": 0.75, - "Outgoing Healing Boost": 1, - "Effect RES": 0.5 -}; - -export const NatashaScorer = new StarRail.Scorer( - "Natasha", - "娜塔莎", - Rule.All, - Weight -); diff --git a/resources/starrail/scorers/scorers/Pela.ts b/resources/starrail/scorers/scorers/Pela.ts deleted file mode 100644 index 0db717f..0000000 --- a/resources/starrail/scorers/scorers/Pela.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { StarRail } from '#gc.model'; -import { Rule } from '../rule.js'; - -const Weight = { - "ATK": 0.75, - "FlatATK": 0.75, - "SPD": 1, - "CRIT Rate": 1, - "CRIT DMG": 1, - "Energy Regeneration Rate": 0.50, - "Effect Hit Rate": 1, - "Ice DMG Boost": 1 -}; - -export const PelaScorer = new StarRail.Scorer( - "Pela", - "佩拉", - Rule.All, - Weight -); diff --git a/resources/starrail/scorers/scorers/Qingque.ts b/resources/starrail/scorers/scorers/Qingque.ts deleted file mode 100644 index 04f2761..0000000 --- a/resources/starrail/scorers/scorers/Qingque.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { StarRail } from '#gc.model'; -import { Rule } from '../rule.js'; - -const Weight = { - "ATK": 0.75, - "FlatATK": 0.75, - "SPD": 0.75, - "CRIT Rate": 1, - "CRIT DMG": 1, - "Energy Regeneration Rate": 0.50, - "Quantum DMG Boost": 1 -}; - -const Match = { - "CRIT Rate": 5, - "SPD": 5, - "ATK": 0, - "Quantum DMG Boost": 6 -}; - -export const QingqueScorer = new StarRail.Scorer( - "Qingque", - "青雀", - Rule.makeRule(Match), - Weight -); diff --git a/resources/starrail/scorers/scorers/Sampo.ts b/resources/starrail/scorers/scorers/Sampo.ts deleted file mode 100644 index 04e45fa..0000000 --- a/resources/starrail/scorers/scorers/Sampo.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { StarRail } from '#gc.model'; -import { Rule } from '../rule.js'; - -const Weight = { - "ATK": 0.75, - "FlatATK": 0.75, - "SPD": 1, - "CRIT Rate": 1, - "CRIT DMG": 1, - "Energy Regeneration Rate": 0.50, - "Effect Hit Rate": 1, - "Wind DMG Boost": 1 -}; - -export const SampoScorer = new StarRail.Scorer( - "Sambo", - "桑博", - Rule.All, - Weight -); diff --git a/resources/starrail/scorers/scorers/Seele.ts b/resources/starrail/scorers/scorers/Seele.ts deleted file mode 100644 index 427c188..0000000 --- a/resources/starrail/scorers/scorers/Seele.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { StarRail } from '#gc.model'; -import { Rule } from '../rule.js'; - -const SeeleWeight = { - "ATK": 0.75, - "FlatATK": 0.75, - "SPD": 1, - "CRIT Rate": 1, - "CRIT DMG": 1, - "Energy Regeneration Rate": 0.5, - "Quantum DMG Boost": 1 -}; - -const Match = { - "ATK": 0, - "CRIT Rate": 5, - "CRIT DMG": 5, - "Quantum DMG Boost": 6, -}; - -export const SeeleScorer = new StarRail.Scorer( - "Seele", - "希儿", - Rule.makeRule(Match), - SeeleWeight -); diff --git a/resources/starrail/scorers/scorers/SilverWolf.ts b/resources/starrail/scorers/scorers/SilverWolf.ts deleted file mode 100644 index f50cae6..0000000 --- a/resources/starrail/scorers/scorers/SilverWolf.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { StarRail } from '#gc.model'; -import { Rule } from '../rule.js'; - -const Weight = { - "ATK": 0.75, - "FlatATK": 0.75, - "SPD": 1, - "CRIT Rate": 1, - "CRIT DMG": 1, - "Energy Regeneration Rate": 0.75, - "Effect Hit Rate": 1, - "Quantum DMG Boost": 1 -}; - -export const SilverWolfScorer = new StarRail.Scorer( - "Silver Wolf", - "银狼", - Rule.All, - Weight -); diff --git a/resources/starrail/scorers/scorers/Tingyun.ts b/resources/starrail/scorers/scorers/Tingyun.ts deleted file mode 100644 index 23ac0ae..0000000 --- a/resources/starrail/scorers/scorers/Tingyun.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { StarRail } from '#gc.model'; -import { Rule } from '../rule.js'; - -const Weight = { - "HP": 0.5, - "FlatHP": 0.5, - "ATK": 1, - "FlatATK": 1, - "SPD": 1, - "Energy Regeneration Rate": 1, -}; - -export const TingyunScorer = new StarRail.Scorer( - "Tingyun", - "停云", - Rule.All, - Weight -); diff --git a/resources/starrail/scorers/scorers/TrailblazerFire.ts b/resources/starrail/scorers/scorers/TrailblazerFire.ts deleted file mode 100644 index 5eacde9..0000000 --- a/resources/starrail/scorers/scorers/TrailblazerFire.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { StarRail } from '#gc.model'; -import { Rule } from '../rule.js'; - -const Weight = { - "HP": 0.5, - "FlatHP": 0.5, - "DEF": 1, - "FlatDEF": 1, - "ATK": 0.75, - "FlatATK": 0.75, - "SPD": 0.75, - "CRIT Rate": 1, - "CRIT DMG": 1, - "Energy Regeneration Rate": 0.5, - "Fire DMG Boost": 1 -}; - -export const TrailblazerFireScorer = new StarRail.Scorer( - "Trailblazer (fire)", - "开拓者 (火)", - Rule.All, - Weight -); diff --git a/resources/starrail/scorers/scorers/Welt.ts b/resources/starrail/scorers/scorers/Welt.ts deleted file mode 100644 index 1dae13e..0000000 --- a/resources/starrail/scorers/scorers/Welt.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { StarRail } from '#gc.model'; -import { Rule } from '../rule.js'; - -const Weight = { - "ATK": 0.75, - "FlatATK": 0.75, - "SPD": 1, - "CRIT Rate": 1, - "CRIT DMG": 1, - "Energy Regeneration Rate": 0.50, - "Effect Hit Rate": 1, - "Imaginary DMG Boost": 1 -}; - -export const WeltScorer = new StarRail.Scorer( - "Welt", - "瓦尔特", - Rule.All, - Weight -); diff --git a/resources/starrail/scorers/scorers/Yanqing.ts b/resources/starrail/scorers/scorers/Yanqing.ts deleted file mode 100644 index 2b2c141..0000000 --- a/resources/starrail/scorers/scorers/Yanqing.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { StarRail } from '#gc.model'; -import { Rule } from '../rule.js'; - -const YanqingWeight = { - "ATK": 0.75, - "FlatATK": 0.75, - "SPD": 0.75, - "CRIT Rate": 1, - "CRIT DMG": 1, - "Energy Regeneration Rate": 0.75, - "Ice DMG Boost": 1 -}; - -const Match = { - "CRIT DMG": 5, - "Ice DMG Boost": 6, - "ATK": 0 -}; - -export const YanqingScorer = new StarRail.Scorer( - "Yanqing", - "彦卿", - Rule.makeRule(Match), - YanqingWeight -); diff --git a/resources/starrail/scorers/scorers/index.ts b/resources/starrail/scorers/scorers/index.ts deleted file mode 100644 index 1d397d7..0000000 --- a/resources/starrail/scorers/scorers/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -export * from './Seele.js'; -export * from './Jingliu.js'; -export * from './Yanqing.js'; -export * from './Herta.js'; -export * from './Pela.js'; -export * from './DanHeng.js'; -export * from './Sampo.js'; -export * from './Asta.js'; -export * from './Bronya.js'; -export * from './SilverWolf.js'; -export * from './TrailblazerFire.js'; -export * from './FuXuan.js'; -export * from './Arlan.js'; -export * from './Tingyun.js'; -export * from './Qingque.js'; -export * from './JingYuan.js'; -export * from './DanHengBig.js'; -export * from './Welt.js'; -export * from './Luocha.js'; -export * from './Gepard.js'; -export * from './Natasha.js'; -export * from './Bailu.js'; -export * from './Lynx.js';