mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-08-12 20:40:47 -05:00
Special damages: Booyah Bomb
This commit is contained in:
@@ -39,6 +39,7 @@ export const DAMAGE_TYPE = [
|
||||
"SPECIAL_BULLET_MIN",
|
||||
"SPECIAL_BUMP",
|
||||
"SPECIAL_JUMP",
|
||||
"SPECIAL_TICK",
|
||||
] as const;
|
||||
|
||||
export const damageTypeToWeaponType: Record<
|
||||
@@ -80,6 +81,7 @@ export const damageTypeToWeaponType: Record<
|
||||
SPECIAL_CANNON: "SPECIAL",
|
||||
SPECIAL_BUMP: "SPECIAL",
|
||||
SPECIAL_JUMP: "SPECIAL",
|
||||
SPECIAL_TICK: "SPECIAL",
|
||||
};
|
||||
|
||||
export const multiShot: Partial<Record<MainWeaponId, number>> = {
|
||||
|
||||
@@ -135,6 +135,7 @@ export type SpecialWeaponParams = SpecialWeaponParamsObject[SpecialWeaponId] & {
|
||||
CannonDamage?: Array<DistanceDamage>;
|
||||
BumpDamage?: number;
|
||||
JumpDamage?: number;
|
||||
TickDamage?: number;
|
||||
};
|
||||
|
||||
export type ParamsJson = {
|
||||
|
||||
@@ -434,6 +434,7 @@ const damageTypeToParamsKey: Record<
|
||||
SPECIAL_CANNON: "CannonDamage",
|
||||
SPECIAL_BUMP: "BumpDamage",
|
||||
SPECIAL_JUMP: "JumpDamage",
|
||||
SPECIAL_TICK: "TickDamage",
|
||||
};
|
||||
|
||||
function damages(args: StatFunctionInput): AnalyzedBuild["stats"]["damages"] {
|
||||
@@ -476,7 +477,6 @@ function damages(args: StatFunctionInput): AnalyzedBuild["stats"]["damages"] {
|
||||
return result;
|
||||
}
|
||||
|
||||
// xxx: TODO: handle damage distance increasing e.g. inkzooka, small special power up icon next to the distance
|
||||
function specialWeaponDamages(
|
||||
args: StatFunctionInput
|
||||
): AnalyzedBuild["stats"]["specialWeaponDamages"] {
|
||||
|
||||
@@ -1779,7 +1779,8 @@
|
||||
"Low": 0.002,
|
||||
"Mid": 0.006
|
||||
}
|
||||
}
|
||||
},
|
||||
"TickDamage": 33
|
||||
},
|
||||
"7": {
|
||||
"overwrites": {
|
||||
|
||||
@@ -93,7 +93,7 @@ export const objectDamageJsonKeyPriority: Record<
|
||||
MovePainter_Direct: null,
|
||||
MultiMissile_BombCore: ["BOMB_NORMAL"],
|
||||
MultiMissile_Bullet: null,
|
||||
NiceBall: null,
|
||||
NiceBall: ["SPECIAL_TICK"],
|
||||
ObjectEffect_Up: null,
|
||||
RollerCore: ["ROLL_OVER"],
|
||||
RollerSplash_Compact: [
|
||||
|
||||
@@ -135,6 +135,7 @@ export const damageTypePriorityList = [
|
||||
"SPECIAL_BULLET_MIN",
|
||||
"SPECIAL_BUMP",
|
||||
"SPECIAL_JUMP",
|
||||
"SPECIAL_TICK",
|
||||
] as const;
|
||||
assertType<
|
||||
(typeof damageTypePriorityList)[number],
|
||||
|
||||
@@ -121,6 +121,7 @@
|
||||
"damage.SPECIAL_CANNON": "Cannon",
|
||||
"damage.SPECIAL_BUMP": "Bump",
|
||||
"damage.SPECIAL_JUMP": "Jump",
|
||||
"damage.SPECIAL_TICK": "Tick",
|
||||
"suffix.seconds": "s",
|
||||
"suffix.hp": "hp",
|
||||
"suffix.specialPointsShort": "p",
|
||||
|
||||
@@ -464,6 +464,8 @@ function parametersToSpecialWeaponResult(params: any) {
|
||||
const isCrabTank = () => !!params["CannonParam"];
|
||||
const isKraken = () => !!params["BodyParam"]?.["DamageJumpValue"];
|
||||
const isInkjet = () => !!params["JetParam"];
|
||||
const isBooyahBomb = () =>
|
||||
params["BlastParam"]?.["$type"] === "spl__BulletSpNiceBallBlastParam";
|
||||
|
||||
const SwingDamage = () => {
|
||||
if (!isUltraStamp()) return;
|
||||
@@ -504,6 +506,12 @@ function parametersToSpecialWeaponResult(params: any) {
|
||||
return 1200;
|
||||
};
|
||||
|
||||
const BooyahBombTickDamage = () => {
|
||||
if (!isBooyahBomb()) return;
|
||||
|
||||
return 33;
|
||||
};
|
||||
|
||||
return {
|
||||
ArmorHP: params["WeaponSpChariotParam"]?.["ArmorHP"],
|
||||
overwrites: resultUnwrapped,
|
||||
@@ -537,6 +545,7 @@ function parametersToSpecialWeaponResult(params: any) {
|
||||
CannonDamage: Cannon(),
|
||||
BumpDamage: isCrabTank() ? 400 : undefined,
|
||||
JumpDamage: params["BodyParam"]?.["DamageJumpValue"],
|
||||
TickDamage: BooyahBombTickDamage(),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user