import type { BattleSession } from 'db://assets/mx/module/battle'; import type { EntityId } from 'db://assets/mx/module/ecs'; import type { Player } from '../../game/Player'; import { getTowerLoadoutService } from './TowerLoadoutService'; import { SkillPickApplier } from '../skill/SkillPickApplier'; import { getInBattleBondHost } from '../bond/InBattleBondHost'; import { getBattleGameGlobalAttackSpeedHost } from './BattleGameGlobalAttackSpeedHost'; import { getBattleGameGlobalAttackRangeHost } from './BattleGameGlobalAttackRangeHost'; import { getBattleBuffUnitAttackSpeedHost } from './BattleBuffUnitAttackSpeedHost'; import { getBattleBuffDigitStatHost } from './BattleBuffDigitStatHost'; /** 塔部署后的战斗初始化:Combat + Ability + 词条空操作 */ export function setupTowerCombat( session: BattleSession, entityId: EntityId, weapon1Id: number, level: number, player: Player, ): void { const loadoutSvc = getTowerLoadoutService(); loadoutSvc.setupCombat(session, entityId, weapon1Id, level, player); new SkillPickApplier(session).materializePlayerSkillsToEntity(entityId, player); getInBattleBondHost().refreshEntity(entityId, player); getBattleGameGlobalAttackSpeedHost().refreshEntity(session, entityId, player); getBattleGameGlobalAttackRangeHost().refreshEntity(session, entityId, player); getBattleBuffUnitAttackSpeedHost().refreshEntity(session, entityId, player.playerId); getBattleBuffDigitStatHost().refreshEntity(session, entityId, player.playerId); }