mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-09-30 15:17:43 -05:00
@@ -325,6 +325,7 @@ export interface AnalyzedBuild {
|
||||
shotAutofireSpreadAir?: Stat;
|
||||
shotAutofireSpreadGround?: number;
|
||||
squidSurgeChargeFrames: Stat;
|
||||
squidRollSpeedRetained: Stat;
|
||||
|
||||
subDefPointSensorMarkedTimeInSeconds: Stat;
|
||||
subDefInkMineMarkedTimeInSeconds: Stat;
|
||||
|
||||
@@ -229,6 +229,17 @@ describe("Analyze build", () => {
|
||||
expect(analyzed.stats.jumpHeightInEnemyInk.value).toBe(1.1);
|
||||
});
|
||||
|
||||
test("IA removes the speed loss of consecutive Squid Rolls", () => {
|
||||
const analyzed = buildStats({
|
||||
weaponSplId: 40,
|
||||
abilityPoints: new Map([["IA", 57]]),
|
||||
hasTacticooler: false,
|
||||
});
|
||||
|
||||
expect(analyzed.stats.squidRollSpeedRetained.baseValue).toBe(85);
|
||||
expect(analyzed.stats.squidRollSpeedRetained.value).toBe(100);
|
||||
});
|
||||
|
||||
test("Accounts for Jr. big ink tank with main weapon ink consumption %", () => {
|
||||
const analyzedJr = buildStats({
|
||||
weaponSplId: 10,
|
||||
|
||||
@@ -156,6 +156,7 @@ export function buildStats({
|
||||
shotAutofireSpreadAir: shotAutofireSpreadAir(input),
|
||||
shotAutofireSpreadGround: mainWeaponParams.Variable_Stand_DegSwerve,
|
||||
squidSurgeChargeFrames: squidSurgeChargeFrames(input),
|
||||
squidRollSpeedRetained: squidRollSpeedRetained(input),
|
||||
subDefPointSensorMarkedTimeInSeconds:
|
||||
subDefPointSensorMarkedTimeInSeconds(input),
|
||||
subDefInkMineMarkedTimeInSeconds: subDefInkMineMarkedTimeInSeconds(input),
|
||||
@@ -1232,6 +1233,26 @@ function squidSurgeChargeFrames(
|
||||
};
|
||||
}
|
||||
|
||||
function squidRollSpeedRetained(
|
||||
args: StatFunctionInput,
|
||||
): AnalyzedBuild["stats"]["squidRollSpeedRetained"] {
|
||||
const SQUID_ROLL_SPEED_RETAINED_ABILITY = "IA";
|
||||
const { baseEffect, effect } = abilityPointsToEffects({
|
||||
abilityPoints: apFromMap({
|
||||
abilityPoints: args.abilityPoints,
|
||||
ability: SQUID_ROLL_SPEED_RETAINED_ABILITY,
|
||||
}),
|
||||
key: "Somersault_MoveVelKd",
|
||||
weapon: args.mainWeaponParams,
|
||||
});
|
||||
|
||||
return {
|
||||
baseValue: effectToRounded(baseEffect * 100, 1),
|
||||
value: effectToRounded(effect * 100, 1),
|
||||
modifiedBy: SQUID_ROLL_SPEED_RETAINED_ABILITY,
|
||||
};
|
||||
}
|
||||
|
||||
function damageTakenInEnemyInkPerSecond(
|
||||
args: StatFunctionInput,
|
||||
): AnalyzedBuild["stats"]["damageTakenInEnemyInkPerSecond"] {
|
||||
|
||||
@@ -922,6 +922,12 @@ function BuildAnalyzerPage() {
|
||||
stat={statKeyToTuple("squidSurgeChargeFrames")}
|
||||
title={t("analyzer:stat.squidSurgeChargeFrames")}
|
||||
/>
|
||||
<StatCard
|
||||
context={context}
|
||||
stat={statKeyToTuple("squidRollSpeedRetained")}
|
||||
title={t("analyzer:stat.squidRollSpeedRetained")}
|
||||
suffix="%"
|
||||
/>
|
||||
<StatCard
|
||||
context={context}
|
||||
stat={statKeyToTuple("runSpeedInEnemyInk")}
|
||||
|
||||
Reference in New Issue
Block a user