Split ink vac sucking radius into min and max (#1839)

* split ink vac stats into two

* add missing translations for analyzer:stat.special.radiusRangeMin and analyzer:stat.special.radiusRangeMin

* add pt-BR translation

* added roundToNDecimalPlaces to min and max radius values
This commit is contained in:
Phil-hacker 2024-08-24 07:20:24 +02:00 committed by GitHub
parent 7d5c2ec61f
commit fcfc6cf7d1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
19 changed files with 80 additions and 38 deletions

View File

@ -280,7 +280,8 @@ export interface AnalyzedBuild {
specialMoveSpeed?: Stat;
specialAutoChargeRate?: Stat;
specialMaxRadius?: Stat;
specialRadiusRange?: Stat<string>;
specialRadiusRangeMin?: Stat;
specialRadiusRangeMax?: Stat;
specialPowerUpDuration?: Stat;
};
}

View File

@ -173,7 +173,8 @@ export function buildStats({
specialMoveSpeed: specialMoveSpeed(input),
specialAutoChargeRate: specialAutoChargeRate(input),
specialMaxRadius: specialMaxRadius(input),
specialRadiusRange: specialRadiusRange(input),
specialRadiusRangeMin: specialRadiusRangeMin(input),
specialRadiusRangeMax: specialRadiusRangeMax(input),
specialPowerUpDuration: specialPowerUpDuration(input),
},
};
@ -1742,14 +1743,39 @@ function specialMaxRadius(
};
}
function specialRadiusRange(
function specialRadiusRangeMax(
args: StatFunctionInput,
): AnalyzedBuild["stats"]["specialRadiusRange"] {
): AnalyzedBuild["stats"]["specialRadiusRangeMax"] {
if (
!hasEffect({
key: "RadiusMax",
weapon: args.specialWeaponParams,
}) ||
})
) {
return;
}
const SPECIAL_RADIUS_RANGE_KEY = "SPU";
const radiusMax = abilityPointsToEffects({
abilityPoints: apFromMap({
abilityPoints: args.abilityPoints,
ability: SPECIAL_RADIUS_RANGE_KEY,
}),
key: "RadiusMax",
weapon: args.specialWeaponParams,
});
return {
baseValue: roundToNDecimalPlaces(radiusMax.baseEffect),
value: roundToNDecimalPlaces(radiusMax.effect),
modifiedBy: SPECIAL_RADIUS_RANGE_KEY,
};
}
function specialRadiusRangeMin(
args: StatFunctionInput,
): AnalyzedBuild["stats"]["specialRadiusRangeMin"] {
if (
!hasEffect({
key: "RadiusMin",
weapon: args.specialWeaponParams,
@ -1768,22 +1794,10 @@ function specialRadiusRange(
key: "RadiusMin",
weapon: args.specialWeaponParams,
});
const radiusMax = abilityPointsToEffects({
abilityPoints: apFromMap({
abilityPoints: args.abilityPoints,
ability: SPECIAL_RADIUS_RANGE_KEY,
}),
key: "RadiusMax",
weapon: args.specialWeaponParams,
});
return {
baseValue: `${roundToNDecimalPlaces(
radiusMin.baseEffect,
)}-${roundToNDecimalPlaces(radiusMax.baseEffect)}`,
value: `${roundToNDecimalPlaces(radiusMin.effect)}-${roundToNDecimalPlaces(
radiusMax.effect,
)}`,
baseValue: roundToNDecimalPlaces(radiusMin.baseEffect),
value: roundToNDecimalPlaces(radiusMin.effect),
modifiedBy: SPECIAL_RADIUS_RANGE_KEY,
};
}

View File

@ -649,11 +649,22 @@ function BuildAnalyzerPage() {
popoverInfo={t("analyzer:stat.special.maxRadius.explanation")}
/>
)}
{analyzed.stats.specialRadiusRange && (
{analyzed.stats.specialRadiusRangeMin && (
<StatCard
context={context}
stat={statKeyToTuple("specialRadiusRange")}
title={t("analyzer:stat.special.radiusRange", {
stat={statKeyToTuple("specialRadiusRangeMin")}
title={t("analyzer:stat.special.radiusRangeMin", {
weapon: t(
`weapons:SPECIAL_${analyzed.weapon.specialWeaponSplId}`,
),
})}
/>
)}
{analyzed.stats.specialRadiusRangeMax && (
<StatCard
context={context}
stat={statKeyToTuple("specialRadiusRangeMax")}
title={t("analyzer:stat.special.radiusRangeMax", {
weapon: t(
`weapons:SPECIAL_${analyzed.weapon.specialWeaponSplId}`,
),

View File

@ -83,7 +83,8 @@
"stat.special.autoChargeRate": "{{weapon}}'s auto-opladningshastighed",
"stat.special.maxRadius": "{{weapon}} bølgerne tilbagelægger følgende afstand",
"stat.special.maxRadius.explanation": "Bølgernes fart er altid den samme",
"stat.special.radiusRange": "{{weapon}}s sugeradius",
"stat.special.radiusRangeMin": "{{weapon}}s sugeradius (Minimum)",
"stat.special.radiusRangeMax": "{{weapon}}s sugeradius (Maksimum)",
"stat.special.powerUpDuration": "varrigheden af effekterne fra {{weapon}}-drinks",
"damage.header.type": "Type",
"damage.header.damage": "Skade",

View File

@ -72,7 +72,8 @@
"stat.special.autoChargeRate": "{{weapon}} Auto-Aufladungsrate",
"stat.special.maxRadius": "{{weapon}} Max. Radius Welle",
"stat.special.maxRadius.explanation": "Die Ausbreitungsgeschwindigkeit der Welle ist immer konstant, trotz größerem Radius.",
"stat.special.radiusRange": "{{weapon}} Saugradius",
"stat.special.radiusRangeMin": "{{weapon}} Saugradius (Minimum)",
"stat.special.radiusRangeMax": "{{weapon}} Saugradius (Maximum)",
"stat.special.powerUpDuration": "{{weapon}} Drink-Effektdauer",
"damage.header.type": "Typ",
"damage.header.damage": "Schaden",

View File

@ -83,7 +83,8 @@
"stat.special.autoChargeRate": "{{weapon}} auto charge rate",
"stat.special.maxRadius": "{{weapon}} wave max radius",
"stat.special.maxRadius.explanation": "Travel speed of the wave is always the same despite the increased radius.",
"stat.special.radiusRange": "{{weapon}} sucking radius",
"stat.special.radiusRangeMin": "{{weapon}} sucking radius (Minimum)",
"stat.special.radiusRangeMax": "{{weapon}} sucking radius (Maximum)",
"stat.special.powerUpDuration": "{{weapon}} drink effect duration",
"damage.header.type": "Type",
"damage.header.damage": "Damage",

View File

@ -80,7 +80,8 @@
"stat.special.autoChargeRate": "Velocidad de carga automatica de {{weapon}}",
"stat.special.maxRadius": "Radio máximo de ondas de {{weapon}}",
"stat.special.maxRadius.explanation": "La velocidad de la onda es igual a pesar del aumento del radio.",
"stat.special.radiusRange": "Radio del aspiro de {{weapon}}",
"stat.special.radiusRangeMin": "Radio del aspiro de {{weapon}} (Mínimo)",
"stat.special.radiusRangeMax": "Radio del aspiro de {{weapon}} (Máximo)",
"stat.special.powerUpDuration": "Duración del effecto de {{weapon}}",
"damage.header.type": "Tipo",
"damage.header.damage": "Daño",

View File

@ -80,7 +80,8 @@
"stat.special.autoChargeRate": "Velocidad de carga automatica de {{weapon}}",
"stat.special.maxRadius": "Radio máximo de ondas de {{weapon}}",
"stat.special.maxRadius.explanation": "La velocidad de la onda es igual a pesar del aumento del radio.",
"stat.special.radiusRange": "Radio del aspiro de {{weapon}}",
"stat.special.radiusRangeMin": "Radio del aspiro de {{weapon}} (Mínimo)",
"stat.special.radiusRangeMax": "Radio del aspiro de {{weapon}} (Máximo)",
"stat.special.powerUpDuration": "Duración del effecto de {{weapon}}",
"damage.header.type": "Tipo",
"damage.header.damage": "Daño",

View File

@ -79,7 +79,8 @@
"stat.special.autoChargeRate": "Cadence de charge auto du {{weapon}}",
"stat.special.maxRadius": "Rayon max de l'onde du {{weapon}}",
"stat.special.maxRadius.explanation": "La vitesse de déplacement de l'onde est toujours la même malgré l'augmentation du rayon.",
"stat.special.radiusRange": "Rayon d'aspiration d'{{weapon}}",
"stat.special.radiusRangeMin": "Rayon d'aspiration d'{{weapon}} (Minimum)",
"stat.special.radiusRangeMax": "Rayon d'aspiration d'{{weapon}} (Maximum)",
"stat.special.powerUpDuration": "Durée de l'effet de {{weapon}}",
"damage.header.type": "Type",
"damage.header.damage": "Dégâts",

View File

@ -79,7 +79,8 @@
"stat.special.autoChargeRate": "Cadence de charge auto du {{weapon}}",
"stat.special.maxRadius": "Rayon max de l'onde du {{weapon}}",
"stat.special.maxRadius.explanation": "La vitesse de déplacement de l'onde est toujours la même malgré l'augmentation du rayon.",
"stat.special.radiusRange": "Rayon d'aspiration d'{{weapon}}",
"stat.special.radiusRangeMin": "Rayon d'aspiration d'{{weapon}} (Minimum)",
"stat.special.radiusRangeMax": "Rayon d'aspiration d'{{weapon}} (Maximum)",
"stat.special.powerUpDuration": "Durée de l'effet de {{weapon}}",
"damage.header.type": "Type",
"damage.header.damage": "Dégâts",

View File

@ -79,7 +79,8 @@
"stat.special.autoChargeRate": "קצב טעינה אוטומטי של {{weapon}}",
"stat.special.maxRadius": "רדיוס מרבי לגל של {{weapon}}",
"stat.special.maxRadius.explanation": "מהירות הגל תמיד קבועה למרות הגדלת הרדיוס.",
"stat.special.radiusRange": "רדיוס שאיבה של {{weapon}}",
"stat.special.radiusRangeMin": "(מינימום) רדיוס שאיבה של {{weapon}}",
"stat.special.radiusRangeMax": "(מקסימום) רדיוס שאיבה של {{weapon}}",
"stat.special.powerUpDuration": "משך השפעת המשקה של {{weapon}}",
"damage.header.type": "סוג",
"damage.header.damage": "נזק",

View File

@ -69,7 +69,8 @@
"stat.special.autoChargeRate": "Tasso di ricarica automatica {{weapon}}",
"stat.special.maxRadius": "Raggio massimo onda {{weapon}}",
"stat.special.maxRadius.explanation": "La velocità dell'onda è sempre la stessa nonostante l'aumento del raggio.",
"stat.special.radiusRange": "Raggio di aspirazione {{weapon}}",
"stat.special.radiusRangeMin": "Raggio di aspirazione {{weapon}} (Minimo)",
"stat.special.radiusRangeMax": "Raggio di aspirazione {{weapon}} (Massimo)",
"stat.special.powerUpDuration": "Durata effetto bibita {{weapon}}",
"damage.header.type": "Tipo",
"damage.header.damage": "Danno",

View File

@ -83,7 +83,8 @@
"stat.special.autoChargeRate": "{{weapon}} 自動チャージ速度",
"stat.special.maxRadius": "{{weapon}} ウェーブ最大範囲",
"stat.special.maxRadius.explanation": "ウェーブの移動スピードは範囲が広がっても常に同じです。",
"stat.special.radiusRange": "{{weapon}} 吸引範囲",
"stat.special.radiusRangeMin": "{{weapon}} 吸引範囲 (最小)",
"stat.special.radiusRangeMax": "{{weapon}} 吸引範囲 (最大)",
"stat.special.powerUpDuration": "{{weapon}} ドリンクの効果時間",
"damage.header.type": "タイプ",
"damage.header.damage": "ダメージ",

View File

@ -81,7 +81,8 @@
"stat.special.autoChargeRate": "{{weapon}} 자동 충전 속도",
"stat.special.maxRadius": "{{weapon}} 파동 범위",
"stat.special.maxRadius.explanation": "범위가 증가하더라도 파동의 속도는 변하지 않습니다.",
"stat.special.radiusRange": "{{weapon}} 흡입 범위",
"stat.special.radiusRangeMin": "{{weapon}} 흡입 범위 (최소)",
"stat.special.radiusRangeMax": "{{weapon}} 흡입 범위 (최대)",
"stat.special.powerUpDuration": "{{weapon}} 효과 지속 시간",
"damage.header.type": "종류",
"damage.header.damage": "대미지",

View File

@ -86,6 +86,7 @@
"stat.special.autoChargeRate": "{{weapon}} auto laad snelheid",
"stat.special.maxRadius": "{{weapon}} golf max radius",
"stat.special.maxRadius.explanation": "De afgelegde snelheid van de golf blijft altijd hetzelfde onafhankelijk van de vergrootte radius.",
"stat.special.radiusRange": "{{weapon}} zuig radius",
"stat.special.radiusRangeMin": "{{weapon}} zuig radius (Minimum)",
"stat.special.radiusRangeMax": "{{weapon}} zuig radius (Maximum)",
"stat.special.powerUpDuration": "{{weapon}} drank effect duratie"
}

View File

@ -72,7 +72,8 @@
"stat.special.autoChargeRate": "Automatyczna prędkośc ładowania {{weapon}}",
"stat.special.maxRadius": "{{weapon}} fala maks. zasięg",
"stat.special.maxRadius.explanation": "Szybkość poruszenia się fali jest taka sama mimo powięszkonego zasięgu.",
"stat.special.radiusRange": "{{weapon}} sucking radius",
"stat.special.radiusRangeMin": "{{weapon}} sucking radius (Minimalna)",
"stat.special.radiusRangeMax": "{{weapon}} sucking radius (Maksymalna)",
"stat.special.powerUpDuration": "{{weapon}} drink effect duration",
"damage.header.type": "Rodzaj",
"damage.header.damage": "Szkoda",

View File

@ -83,7 +83,8 @@
"stat.special.autoChargeRate": "Taxa de carregamento automático da {{weapon}}",
"stat.special.maxRadius": "Raio máximo da onda do {{weapon}}",
"stat.special.maxRadius.explanation": "A velocidade de viagem da onda é sempre a mesma apesar do raio aumentado.",
"stat.special.radiusRange": "Raio de sucção do {{weapon}}",
"stat.special.radiusRangeMin": "Raio de sucção do {{weapon}} (Mínimo)",
"stat.special.radiusRangeMax": "Raio de sucção do {{weapon}} (Máximo)",
"stat.special.powerUpDuration": "Duração dos efeitos da bebida do {{weapon}}",
"damage.header.type": "Tipo",
"damage.header.damage": "Dano",

View File

@ -72,7 +72,8 @@
"stat.special.autoChargeRate": "Скорость автоматического заряда: {{weapon}}",
"stat.special.maxRadius": "Максимальный радиус волны: {{weapon}}",
"stat.special.maxRadius.explanation": "Скорость передвижения волны не меняется вместе с её радиусом.",
"stat.special.radiusRange": "Радиус тяги: {{weapon}}",
"stat.special.radiusRangeMin": "Радиус тяги: {{weapon}} (Минимум)",
"stat.special.radiusRangeMax": "Радиус тяги: {{weapon}} (Максимум)",
"stat.special.powerUpDuration": "Длительность эффекта напитка: {{weapon}}",
"damage.header.type": "Тип",
"damage.header.damage": "Урон",

View File

@ -83,7 +83,8 @@
"stat.special.autoChargeRate": "{{weapon}} 自动蓄力速度",
"stat.special.maxRadius": "{{weapon}} 声波最大半径",
"stat.special.maxRadius.explanation": "声波的移动速度保持恒定,不会因为半径变化改变。",
"stat.special.radiusRange": "{{weapon}} 吸收范围",
"stat.special.radiusRangeMin": "{{weapon}} 吸收范围 (最小值)",
"stat.special.radiusRangeMax": "{{weapon}} 吸收范围 (最大值)",
"stat.special.powerUpDuration": "{{weapon}} 饮料持续时间",
"damage.header.type": "类型",
"damage.header.damage": "伤害",