mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-10-01 07:37:55 -05:00
Angle Shooter tracking defense stat + explanation
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import type { MainWeaponId } from "~/modules/in-game-lists";
|
||||
import { ANGLE_SHOOTER_ID } from "~/modules/in-game-lists";
|
||||
import { INK_MINE_ID, POINT_SENSOR_ID } from "~/modules/in-game-lists";
|
||||
import type {
|
||||
AbilityPoints,
|
||||
@@ -84,6 +85,8 @@ export function buildStats({
|
||||
subDefPointSensorMarkedTimeInSeconds:
|
||||
subDefPointSensorMarkedTimeInSeconds(input),
|
||||
subDefInkMineMarkedTimeInSeconds: subDefInkMineMarkedTimeInSeconds(input),
|
||||
subDefAngleShooterMarkedTimeInSeconds:
|
||||
subDefAngleShooterMarkedTimeInSeconds(input),
|
||||
...subStats(input),
|
||||
},
|
||||
};
|
||||
@@ -698,3 +701,31 @@ function subDefInkMineMarkedTimeInSeconds(
|
||||
value: framesToSeconds(markingTimeEffect * effect),
|
||||
};
|
||||
}
|
||||
|
||||
function subDefAngleShooterMarkedTimeInSeconds(
|
||||
args: StatFunctionInput
|
||||
): AnalyzedBuild["stats"]["subDefAngleShooterMarkedTimeInSeconds"] {
|
||||
const SUB_DEF_ANGLE_SHOOTER_MARKED_TIME_IN_SECONDS_KEY = "SRU";
|
||||
const { baseEffect, effect } = abilityPointsToEffects({
|
||||
abilityPoints: apFromMap({
|
||||
abilityPoints: args.abilityPoints,
|
||||
ability: SUB_DEF_ANGLE_SHOOTER_MARKED_TIME_IN_SECONDS_KEY,
|
||||
}),
|
||||
key: "MarkingTimeRt",
|
||||
weapon: args.mainWeaponParams,
|
||||
});
|
||||
|
||||
const angleShooterParams = weaponParams().subWeapons[ANGLE_SHOOTER_ID];
|
||||
|
||||
const { baseEffect: markingTimeEffect } = abilityPointsToEffects({
|
||||
abilityPoints: 0,
|
||||
key: "MarkingFrameSubSpec",
|
||||
weapon: angleShooterParams,
|
||||
});
|
||||
|
||||
return {
|
||||
baseValue: framesToSeconds(markingTimeEffect * baseEffect),
|
||||
modifiedBy: SUB_DEF_ANGLE_SHOOTER_MARKED_TIME_IN_SECONDS_KEY,
|
||||
value: framesToSeconds(markingTimeEffect * effect),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -188,14 +188,13 @@ export interface AnalyzedBuild {
|
||||
|
||||
subDefPointSensorMarkedTimeInSeconds: Stat;
|
||||
subDefInkMineMarkedTimeInSeconds: Stat;
|
||||
subDefAngleShooterMarkedTimeInSeconds: Stat;
|
||||
// subDefBombDamageLight: Stat;
|
||||
// subDefBombDamageHeavy: Stat;
|
||||
// subDefAngleShooterDamage: Stat;
|
||||
// subDefSplashWallDamage: Stat;
|
||||
// subDefSprinklerDamage: Stat;
|
||||
// subDefToxicMistMoveReduction: Stat;
|
||||
// subDefInkMineMarkingTime: Stat;
|
||||
// subDefPointSensorMarkingTime: Stat;
|
||||
|
||||
subVelocity?: Stat;
|
||||
subFirstPhaseDuration?: Stat;
|
||||
|
||||
@@ -20,6 +20,7 @@ import type {
|
||||
SpecialEffectType,
|
||||
} from "~/modules/analyzer/types";
|
||||
import type { BuildAbilitiesTupleWithUnknown } from "~/modules/in-game-lists";
|
||||
import { ANGLE_SHOOTER_ID } from "~/modules/in-game-lists";
|
||||
import { INK_MINE_ID, POINT_SENSOR_ID } from "~/modules/in-game-lists";
|
||||
import {
|
||||
abilities,
|
||||
@@ -223,6 +224,16 @@ export default function BuildAnalyzerPage() {
|
||||
})}
|
||||
suffix={t("analyzer:suffix.seconds")}
|
||||
/>
|
||||
<StatCard
|
||||
stat={analyzed.stats.subDefAngleShooterMarkedTimeInSeconds}
|
||||
title={t("analyzer:stat.markedTime", {
|
||||
weapon: t(`weapons:SUB_${ANGLE_SHOOTER_ID}`),
|
||||
})}
|
||||
suffix={t("analyzer:suffix.seconds")}
|
||||
/>
|
||||
<div className="analyzer__stat-category-explanation">
|
||||
{t("analyzer:trackingSubDefExplanation")}
|
||||
</div>
|
||||
</StatCategory>
|
||||
|
||||
{analyzed.stats.damages.length > 0 && (
|
||||
|
||||
@@ -139,6 +139,12 @@
|
||||
font-size: var(--fonts-xxs);
|
||||
}
|
||||
|
||||
.analyzer__stat-category-explanation {
|
||||
color: var(--text-lighter);
|
||||
font-size: var(--fonts-xxs);
|
||||
grid-column: 1 / 4;
|
||||
}
|
||||
|
||||
.analyzer__patch {
|
||||
background-color: var(--theme-transparent);
|
||||
border-radius: var(--rounded);
|
||||
|
||||
@@ -65,5 +65,6 @@
|
||||
"patch": "Patch:",
|
||||
"abilityPoints": "Ability points",
|
||||
"abilityPoints.short": "AP",
|
||||
"consumptionExplanation": "This chart shows the amount of actions left to perform with main weapon after using sub 0-{{maxSubsToUse}} times. Max amount of consecutive subs to use with full ink tank is {{maxSubsToUse}}."
|
||||
"consumptionExplanation": "This chart shows the amount of actions left to perform with main weapon after using sub 0-{{maxSubsToUse}} times. Max amount of consecutive subs to use with full ink tank is {{maxSubsToUse}}.",
|
||||
"trackingSubDefExplanation": "Point Sensor, Ink Mine and Angle Shooter tracking times are calculated against an opponent with 0AP of Sub Power Up."
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user