feat: generalized tank stats

This commit is contained in:
TrèsAbhi committed 2024-04-04 13:16:12 -05:00
1 parent 913411275b
commit bd412cdaa2
11 files changed
+633 -331

No files matched your search

@@ -84,18 +84,29 @@ export function CoreArmorSceneComponent({
async function handleProtagonistEquipmentChange(
equipment: EquipmentMatrix,
) {
const hasEnhancedArmor = await hasEquipment(110, false, equipment);
const duel = useDuel.getState();
const hasEnhancedArmor = await hasEquipment(
110,
duel.protagonist!.tank.equipment,
equipment,
);
material.uniforms.thickness.value = hasEnhancedArmor
? thickness * 1.04
: thickness;
}
async function handleAntagonistEquipmentChange(equipment: EquipmentMatrix) {
const shell = useDuel.getState().antagonist!.shell;
const penetration = resolveNearPenetration(shell.penetration);
const hasCalibratedShells = await hasEquipment(103, true, equipment);
const duel = useDuel.getState();
const penetration = resolveNearPenetration(
duel.antagonist!.shell.penetration,
);
const hasCalibratedShells = await hasEquipment(
103,
duel.antagonist!.tank.equipment,
equipment,
);
material.uniforms.penetration.value = hasCalibratedShells
? penetration * (isExplosive(shell.type) ? 1.1 : 1.05)
? penetration * (isExplosive(duel.antagonist!.shell.type) ? 1.1 : 1.05)
: penetration;
}
@@ -50,17 +50,28 @@ export function SpacedArmorSubExternal({
async function handleProtagonistEquipmentChange(
equipment: EquipmentMatrix,
) {
const hasEnhancedArmor = await hasEquipment(110, false, equipment);
const duel = useDuel.getState();
const hasEnhancedArmor = await hasEquipment(
110,
duel.protagonist!.tank.equipment,
equipment,
);
material.uniforms.thickness.value = hasEnhancedArmor
? thickness * 1.04
: thickness;
}
async function handleAntagonistEquipmentChange(equipment: EquipmentMatrix) {
const shell = useDuel.getState().antagonist!.shell;
const penetration = resolveNearPenetration(shell.penetration);
const hasCalibratedShells = await hasEquipment(103, true, equipment);
const duel = useDuel.getState();
const penetration = resolveNearPenetration(
duel.antagonist!.shell.penetration,
);
const hasCalibratedShells = await hasEquipment(
103,
duel.antagonist!.tank.equipment,
equipment,
);
material.uniforms.penetration.value = hasCalibratedShells
? penetration * (isExplosive(shell.type) ? 1.1 : 1.05)
? penetration * (isExplosive(duel.antagonist!.shell.type) ? 1.1 : 1.05)
: penetration;
}
@@ -62,15 +62,25 @@ export function SpacedArmorSubSpaced({
async function handleProtagonistEquipmentChange(
equipment: EquipmentMatrix,
) {
const hasEnhancedArmor = await hasEquipment(110, false, equipment);
const duel = useDuel.getState();
const hasEnhancedArmor = await hasEquipment(
110,
duel.protagonist!.tank.equipment,
equipment,
);
material.uniforms.thickness.value = hasEnhancedArmor
? thickness * 1.04
: thickness;
}
async function handleAntagonistEquipmentChange(equipment: EquipmentMatrix) {
const duel = useDuel.getState();
const shell = useDuel.getState().antagonist!.shell;
const penetration = resolveNearPenetration(shell.penetration);
const hasCalibratedShells = await hasEquipment(103, true, equipment);
const hasCalibratedShells = await hasEquipment(
103,
duel.antagonist!.tank.equipment,
equipment,
);
material.uniforms.penetration.value = hasCalibratedShells
? penetration * (isExplosive(shell.type) ? 1.1 : 1.05)
: penetration;
@@ -89,8 +89,17 @@ export function SpacedArmorSceneComponent({
async onClick(event) {
event.stopPropagation();
const hasCalibratedShells = await hasEquipment(103, true);
const hasEnhancedArmor = await hasEquipment(110);
const duel = useDuel.getState();
const hasCalibratedShells = await hasEquipment(
103,
duel.antagonist!.tank.equipment,
duel.antagonist!.equipment,
);
const hasEnhancedArmor = await hasEquipment(
110,
duel.protagonist!.tank.equipment,
duel.protagonist!.equipment,
);
const thicknessCoefficient = hasEnhancedArmor ? 1.04 : 1;
const shell = useDuel.getState().antagonist!.shell;
const explosive = isExplosive(shell.type);