mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-23 19:49:50 +02:00
SpacedArmorSceneComponent
This commit is contained in:
1 parent
22aff6188a
commit
5d7482b158
2 files changed
+21
-13
No files matched your search
@@ -13,11 +13,11 @@ import {
|
|||||||
Vector3,
|
Vector3,
|
||||||
} from "three";
|
} from "three";
|
||||||
import { degToRad } from "three/src/math/MathUtils.js";
|
import { degToRad } from "three/src/math/MathUtils.js";
|
||||||
import { hasEquipment } from "../core/blitzkit/hasEquipment";
|
import { defaultEqualizer } from "../config/equalizer";
|
||||||
import { jsxTree } from "../core/blitzkit/jsxTree";
|
import { jsxTree } from "../core/blitzkit/jsxTree";
|
||||||
import { defaultEqualizer } from "../core/blitzkit/tankToDuelMember";
|
|
||||||
import { discardClippingPlane } from "../core/three/discardClippingPlane";
|
import { discardClippingPlane } from "../core/three/discardClippingPlane";
|
||||||
import { Duel } from "../stores/duel";
|
import { DuelModule, getDuel } from "../hooks/useDuel";
|
||||||
|
import { hasEquipment } from "../hooks/useEquipment";
|
||||||
import {
|
import {
|
||||||
type Shot,
|
type Shot,
|
||||||
type ShotLayerBase,
|
type ShotLayerBase,
|
||||||
@@ -83,15 +83,16 @@ export function SpacedArmorSceneComponent({
|
|||||||
allowRicochet: boolean,
|
allowRicochet: boolean,
|
||||||
remainingPenetrationInput?: number,
|
remainingPenetrationInput?: number,
|
||||||
) => {
|
) => {
|
||||||
|
const protagonist = getDuel("protagonist", DuelModule.Tank);
|
||||||
|
const antagonist = getDuel("antagonist", DuelModule.Tank);
|
||||||
|
|
||||||
const { customShell } = Tankopedia.state;
|
const { customShell } = Tankopedia.state;
|
||||||
const shell = customShell ?? Duel.state.antagonist.shell;
|
const shell = customShell ?? getDuel("protagonist", DuelModule.Shell);
|
||||||
const { equalize } = Duel.state;
|
const { equalize } = Tankopedia.state;
|
||||||
const protagonistEqualizer =
|
const protagonistEqualizer =
|
||||||
(equalize ? Duel.state.protagonist.tank.equalizer : undefined) ??
|
(equalize ? protagonist.equalizer : undefined) ?? defaultEqualizer;
|
||||||
defaultEqualizer;
|
|
||||||
const antagonistEqualizer =
|
const antagonistEqualizer =
|
||||||
(equalize ? Duel.state.antagonist.tank.equalizer : undefined) ??
|
(equalize ? antagonist.equalizer : undefined) ?? defaultEqualizer;
|
||||||
defaultEqualizer;
|
|
||||||
const cameraNormal = camera.position.clone().sub(point).normalize();
|
const cameraNormal = camera.position.clone().sub(point).normalize();
|
||||||
const shot: Shot = {
|
const shot: Shot = {
|
||||||
splashRadius:
|
splashRadius:
|
||||||
@@ -109,13 +110,13 @@ export function SpacedArmorSceneComponent({
|
|||||||
|
|
||||||
const hasCalibratedShells = hasEquipment(
|
const hasCalibratedShells = hasEquipment(
|
||||||
103,
|
103,
|
||||||
Duel.state.antagonist.tank.equipment_preset,
|
antagonist.equipment_preset,
|
||||||
Duel.state.antagonist.equipmentMatrix,
|
Tankopedia.state.antagonist.equipment,
|
||||||
);
|
);
|
||||||
const hasEnhancedArmor = hasEquipment(
|
const hasEnhancedArmor = hasEquipment(
|
||||||
110,
|
110,
|
||||||
Duel.state.protagonist.tank.equipment_preset,
|
protagonist.equipment_preset,
|
||||||
Duel.state.protagonist.equipmentMatrix,
|
Tankopedia.state.protagonist.equipment,
|
||||||
);
|
);
|
||||||
const penetration =
|
const penetration =
|
||||||
shell.penetration!.near *
|
shell.penetration!.near *
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
export const defaultEqualizer: Equalizer = {
|
||||||
|
armor: 1,
|
||||||
|
damage: 1,
|
||||||
|
health: 1,
|
||||||
|
module_health: 1,
|
||||||
|
penetration: 1,
|
||||||
|
};
|
||||||
Reference in new issue
Block a user