ys = ys or {} slot0 = ys slot1 = slot0.Battle.BattleEvent slot2 = slot0.Battle.BattleUnitEvent slot3 = slot0.Battle.BattleConst slot4 = slot0.Battle.BattleVariable slot5 = slot0.Battle.BattleConfig slot6 = class("BattleUIMediator", slot0.MVC.Mediator) slot0.Battle.BattleUIMediator = slot6 slot6.__name = "BattleUIMediator" function slot6.Ctor(slot0) uv0.super.Ctor(slot0) end function slot6.SetBattleUI(slot0) slot0._ui = slot0._state:GetUI() end function slot6.Initialize(slot0) uv0.super.Initialize(slot0) slot0._dataProxy = slot0._state:GetProxyByName(uv1.Battle.BattleDataProxy.__name) slot0._uiMGR = pg.UIMgr.GetInstance() slot0._updateViewList = {} slot0:SetBattleUI() slot0:AddUIEvent() slot0:InitCamera() slot0:InitGuide() end function slot6.Reinitialize(slot0) slot0._skillView:Dispose() end function slot6.EnableComponent(slot0, slot1) slot0._ui:findTF("PauseBtn"):GetComponent(typeof(Button)).enabled = slot1 slot0._skillView:EnableWeaponButton(slot1) end function slot6.EnableJoystick(slot0, slot1) slot0._stickController.enabled = slot1 setActive(slot0._joystick, slot1) end function slot6.EnableWeaponButton(slot0, slot1) slot0._skillView:EnableWeaponButton(slot1) end function slot6.EnableSkillFloat(slot0, slot1) slot0._ui:EnableSkillFloat(slot1) end function slot6.GetAppearFX(slot0) return slot0._appearEffect end function slot6.DisableComponent(slot0) slot0._ui:findTF("PauseBtn"):GetComponent(typeof(Button)).enabled = false slot0._skillView:DisableWeapnButton() SetActive(slot0._ui:findTF("HPBarContainer"), false) SetActive(slot0._ui:findTF("flagShipMark"), false) if slot0._jammingView then slot0._jammingView:Eliminate(false) end if slot0._inkView then slot0._inkView:SetActive(false) end end function slot6.ActiveDebugConsole(slot0) slot0._debugConsoleView:SetActive(true) end function slot6.OpeningEffect(slot0, slot1, slot2) slot0._uiMGR:SetActive(false) if slot2 == SYSTEM_SUBMARINE_RUN then slot0._skillView:SubmarineButton() slot3 = uv0.JOY_STICK_DEFAULT_PREFERENCE slot0._joystick.anchorMin = Vector2(slot3.x, slot3.y) slot0._joystick.anchorMax = Vector2(slot3.x, slot3.y) elseif slot2 == SYSTEM_SUB_ROUTINE then slot0._skillView:SubRoutineButton() elseif slot2 == SYSTEM_DEBUG then slot0._skillView:NormalButton() elseif pg.SeriesGuideMgr.GetInstance().currIndex and slot3:isEnd() then slot0._skillView:NormalButton() else slot0._skillView:CustomButton(slot0._dataProxy:GetDungeonData().skill_hide or {}) end slot0._ui._go:GetComponent("DftAniEvent"):SetEndEvent(function (slot0) uv0._uiMGR:SetActive(true) uv0:EnableComponent(true) uv0._ui._go:GetComponent("DftAniEvent").enabled = false if uv1 then uv1() end end) SetActive(slot0._ui._go, true) end function slot6.InitScene(slot0) slot0._mapId = slot0._dataProxy._mapId slot0._seaView = uv0.Battle.BattleMap.New(slot0._mapId) end function slot6.InitJoystick(slot0) slot0._joystick = slot0._ui:findTF("Stick") slot1 = uv0.JOY_STICK_DEFAULT_PREFERENCE slot2 = slot0._joystick if Screen.dpi / CameraUtil.finalWidth * 5 <= 0 then slot3 = 1 end slot5 = PlayerPrefs.GetFloat("joystick_anchorX", slot1.x) slot6 = PlayerPrefs.GetFloat("joystick_anchorY", slot1.y) slot3 = slot3 * PlayerPrefs.GetFloat("joystick_scale", slot1.scale) slot0._joystick.localScale = Vector3(slot3, slot3, 1) slot2.anchoredPosition = slot2.anchoredPosition * slot3 slot0._joystick.anchorMin = Vector2(slot5, slot6) slot0._joystick.anchorMax = Vector2(slot5, slot6) slot0._stickController = slot0._joystick:GetComponent("StickController") slot0._uiMGR:AttachStickOb(slot0._joystick) end function slot6.InitTimer(slot0) if slot0._dataProxy:GetInitData().battleType == SYSTEM_DUEL then slot0._timerView = uv0.Battle.BattleTimerView.New(slot0._ui:findTF("DuelTimer")) else slot0._timerView = uv0.Battle.BattleTimerView.New(slot0._ui:findTF("Timer")) end end function slot6.InitEnemyHpBar(slot0) slot0._enemyHpBar = uv0.Battle.BattleEnmeyHpBarView.New(slot0._ui:findTF("EnemyHPBar")) end function slot6.InitAirStrikeIcon(slot0) slot0._airStrikeView = uv0.Battle.BattleAirStrikeIconView.New(slot0._ui:findTF("AirFighterContainer/AirStrikeIcon")) end function slot6.InitCommonWarning(slot0) slot0._warningView = uv0.Battle.BattleCommonWarningView.New(slot0._ui:findTF("WarningView")) end function slot6.InitScoreBar(slot0) slot0._scoreBarView = uv0.Battle.BattleScoreBarView.New(slot0._ui:findTF("DodgemCountBar")) end function slot6.InitKizunaJamming(slot0) slot2 = uv0.Battle.BattleResourceManager.GetInstance():InstKizunaJamming() setParent(slot2, slot0._ui.uiCanvas, false) slot0._jammingView = uv0.Battle.BattleKizunaJammingView.New(slot2) slot0._jammingView:ConfigCallback(function () uv0._dataProxy:KizunaJammingEliminate() SetActive(uv1, false) end) slot0._jammingView:Active() end function slot6.InitAutoBtn(slot0) slot0._autoBtn = slot0._ui:findTF("AutoBtn") slot1 = uv0.AUTO_DEFAULT_PREFERENCE slot2 = PlayerPrefs.GetFloat("auto_scale", slot1.scale) slot3 = PlayerPrefs.GetFloat("auto_anchorX", slot1.x) slot4 = PlayerPrefs.GetFloat("auto_anchorY", slot1.y) slot0._autoBtn.localScale = Vector3(slot2, slot2, 1) slot0._autoBtn.anchorMin = Vector2(slot3, slot4) slot0._autoBtn.anchorMax = Vector2(slot3, slot4) end function slot6.InitDuelRateBar(slot0) slot0._duelRateBar = uv0.Battle.BattleDuelDamageRateView.New(slot0._ui:findTF("DuelDamageRate")) return slot0._duelRateBar end function slot6.InitSimulationBuffCounting(slot0) slot0._simulationBuffCountView = uv0.Battle.BattleSimulationBuffCountView.New(slot0._ui:findTF("SimulationWarning")) return slot0._simulationBuffCountView end function slot6.InitMainDamagedView(slot0) slot0._mainDamagedView = uv0.Battle.BattleMainDamagedView.New(slot0._ui:findTF("HPWarning")) end function slot6.InitInkView(slot0, slot1) slot0._inkView = uv0.Battle.BattleInkView.New(slot0._ui:findTF("InkContainer")) slot1:RegisterEventListener(slot0, uv1.FLEET_HORIZON_UPDATE, slot0.onFleetHorizonUpdate) end function slot6.InitDebugConsole(slot0) slot0._debugConsoleView = slot0._debugConsoleView or uv0.Battle.BattleDebugConsole.New(slot0._ui:findTF("Debug_Console"), slot0._state) end function slot6.InitCameraGestureSlider(slot0) slot0._gesture = uv0.Battle.BattleCameraSlider.New(slot0._ui:findTF("CameraController")) uv0.Battle.BattleCameraUtil.GetInstance():SetCameraSilder(slot0._gesture) slot0._cameraUtil:SwitchCameraPos("FOLLOW_GESTURE") end function slot6.InitGuide(slot0) end function slot6.InitCamera(slot0) slot0._camera = GameObject.Find("MainCamera"):GetComponent(typeof(Camera)) slot0._uiCamera = GameObject.Find("UICamera"):GetComponent(typeof(Camera)) slot0._cameraUtil = uv0.Battle.BattleCameraUtil.GetInstance() slot0._cameraUtil:RegisterEventListener(slot0, uv1.CAMERA_FOCUS, slot0.onCameraFocus) slot0._cameraUtil:RegisterEventListener(slot0, uv1.SHOW_PAINTING, slot0.onShowPainting) slot0._cameraUtil:RegisterEventListener(slot0, uv1.BULLET_TIME, slot0.onBulletTime) end function slot6.Update(slot0) for slot4, slot5 in pairs(slot0._updateViewList) do slot4:Update() end end function slot6.AddUIEvent(slot0) slot0._dataProxy:RegisterEventListener(slot0, uv0.STAGE_DATA_INIT_FINISH, slot0.onStageInit) slot0._dataProxy:RegisterEventListener(slot0, uv0.COMMON_DATA_INIT_FINISH, slot0.onCommonInit) slot0._dataProxy:RegisterEventListener(slot0, uv0.ADD_UNIT, slot0.onAddUnit) slot0._dataProxy:RegisterEventListener(slot0, uv0.REMOVE_UNIT, slot0.onRemoveUnit) slot0._dataProxy:RegisterEventListener(slot0, uv0.HIT_ENEMY, slot0.onEnemyHit) slot0._dataProxy:RegisterEventListener(slot0, uv0.CAST_SKILL, slot0.onCastSkill) slot0._dataProxy:RegisterEventListener(slot0, uv0.ADD_AIR_FIGHTER_ICON, slot0.onAddAirStrike) slot0._dataProxy:RegisterEventListener(slot0, uv0.REMOVE_AIR_FIGHTER_ICON, slot0.onRemoveAirStrike) slot0._dataProxy:RegisterEventListener(slot0, uv0.UPDATE_HOSTILE_SUBMARINE, slot0.onUpdateHostileSubmarine) slot0._dataProxy:RegisterEventListener(slot0, uv0.UPDATE_ENVIRONMENT_WARNING, slot0.onUpdateEnvironmentWarning) slot0._dataProxy:RegisterEventListener(slot0, uv0.UPDATE_COUNT_DOWN, slot0.onUpdateCountDown) slot0._dataProxy:RegisterEventListener(slot0, uv0.KIZUNA_JAMMING, slot0.onJamming) end function slot6.RemoveUIEvent(slot0) slot0._dataProxy:UnregisterEventListener(slot0, uv0.COMMON_DATA_INIT_FINISH) slot0._dataProxy:UnregisterEventListener(slot0, uv0.STAGE_DATA_INIT_FINISH) slot0._dataProxy:UnregisterEventListener(slot0, uv0.ADD_UNIT) slot0._dataProxy:UnregisterEventListener(slot0, uv0.REMOVE_UNIT) slot0._dataProxy:UnregisterEventListener(slot0, uv0.HIT_ENEMY) slot0._dataProxy:UnregisterEventListener(slot0, uv0.CAST_SKILL) slot0._dataProxy:UnregisterEventListener(slot0, uv0.UPDATE_COUNT_DOWN) slot0._cameraUtil:UnregisterEventListener(slot0, uv0.SHOW_PAINTING) slot0._cameraUtil:UnregisterEventListener(slot0, uv0.CAMERA_FOCUS) slot0._cameraUtil:UnregisterEventListener(slot0, uv0.BULLET_TIME) slot0._dataProxy:UnregisterEventListener(slot0, uv0.ADD_SUBMARINE_WARINING) slot0._dataProxy:UnregisterEventListener(slot0, uv0.REMOVE_SUBMARINE_WARINING) slot0._dataProxy:UnregisterEventListener(slot0, uv0.UPDATE_DODGEM_SCORE) slot0._dataProxy:UnregisterEventListener(slot0, uv0.UPDATE_DODGEM_COMBO) slot0._userFleet:UnregisterEventListener(slot0, uv0.SHOW_BUFFER) slot0._userFleet:UnregisterEventListener(slot0, uv1.POINT_HIT_CHARGE) slot0._userFleet:UnregisterEventListener(slot0, uv1.POINT_HIT_CANCEL) slot0._userFleet:UnregisterEventListener(slot0, uv0.MANUAL_SUBMARINE_SHIFT) slot0._userFleet:UnregisterEventListener(slot0, uv0.FLEET_BLIND) slot0._userFleet:UnregisterEventListener(slot0, uv0.FLEET_HORIZON_UPDATE) slot0._dataProxy:UnregisterEventListener(slot0, uv0.UPDATE_HOSTILE_SUBMARINE) slot0._dataProxy:UnregisterEventListener(slot0, uv0.UPDATE_ENVIRONMENT_WARNING) end function slot6.ShowSkillPainting(slot0, slot1, slot2, slot3) slot0._ui:painting(slot1:GetTemplate(), slot3 or 1, slot1:GetIFF()) end function slot6.ShowSkillFloat(slot0, slot1, slot2, slot3) slot0._ui:appendSkill(slot2, slot1, slot3) end function slot6.ShowSkillFloatCover(slot0, slot1, slot2, slot3) slot0._ui:appendSkillCover(slot2, slot1, slot3) end function slot6.SeaSurfaceShift(slot0, slot1, slot2, slot3, slot4) slot0._seaView:ShiftSurface(slot1, slot2, slot3 or uv0.Battle.BattleConfig.calcInterval, slot4) end function slot6.ShowAutoBtn(slot0) SetActive(slot0._autoBtn.transform, true) triggerToggle(slot0._autoBtn, uv0.Battle.BattleState.IsAutoBotActive()) end function slot6.ShowTimer(slot0) slot0._timerView:SetActive(true) end function slot6.ShowDuelBar(slot0) slot0._duelRateBar:SetActive(true) end function slot6.ShowSimulationView(slot0) slot0._simulationBuffCountView:SetActive(true) end function slot6.ShowDodgemScoreBar(slot0) slot0:InitScoreBar() slot0._dataProxy:RegisterEventListener(slot0, uv0.UPDATE_DODGEM_SCORE, slot0.onUpdateDodgemScore) slot0._dataProxy:RegisterEventListener(slot0, uv0.UPDATE_DODGEM_COMBO, slot0.onUpdateDodgemCombo) slot0._scoreBarView:UpdateScore(0) slot0._scoreBarView:SetActive(true) end function slot6.onStageInit(slot0, slot1) slot0:InitJoystick() slot0:InitScene() slot0:InitTimer() slot0:InitEnemyHpBar() slot0:InitAirStrikeIcon() slot0:InitCommonWarning() slot0:InitAutoBtn() slot0:InitMainDamagedView() end function slot6.onEnemyHit(slot0, slot1) if slot1.Data:GetDiveInvisible() and not slot2:GetDiveDetected() then return end if slot0._enemyHpBar:GetCurrentTarget() then if slot3 ~= slot2 then slot0._enemyHpBar:SwitchTarget(slot2, slot0._dataProxy:GetUnitList()) end else slot0._enemyHpBar:SwitchTarget(slot2, slot0._dataProxy:GetUnitList()) end end function slot6.onEnemyHpUpdate(slot0, slot1) if slot1.Dispatcher == slot0._enemyHpBar:GetCurrentTarget() and (not slot2:GetDiveInvisible() or slot2:GetDiveDetected()) then slot0._enemyHpBar:UpdateHpBar() end end function slot6.onPlayerMainUnitHpUpdate(slot0, slot1) if slot1.Data.dHP < 0 then slot0._mainDamagedView:Play() end end function slot6.onCastSkill(slot0, slot1) slot2 = slot1.Data slot4 = slot2.caster if uv0.Battle.BattleDataFunction.GetSkillTemplate(slot2.skillID).uiEffect ~= "" then pg.EffectMgr.GetInstance():BattleUIEffect(slot6, function (slot0) slot0:GetComponent(typeof(DftAniEvent)):SetEndEvent(function (slot0) Destroy(uv0) end) end) end end function slot6.onCommonInit(slot0, slot1) slot0._skillView = uv0.Battle.BattleSkillView.New(slot0, slot1.Data) slot0._updateViewList[slot0._skillView] = true slot0._userFleet = slot0._dataProxy:GetFleetByIFF(uv1.FRIENDLY_CODE) slot0._userFleet:RegisterEventListener(slot0, uv2.SHOW_BUFFER, slot0.onShowBuffer) slot0._userFleet:RegisterEventListener(slot0, uv3.POINT_HIT_CHARGE, slot0.onPointHitSight) slot0._userFleet:RegisterEventListener(slot0, uv3.POINT_HIT_CANCEL, slot0.onPointHitSight) slot0._userFleet:RegisterEventListener(slot0, uv2.MANUAL_SUBMARINE_SHIFT, slot0.onManualSubShift) slot0._userFleet:RegisterEventListener(slot0, uv2.FLEET_BLIND, slot0.onFleetBlind) slot0._sightView = uv0.Battle.BattleOpticalSightView.New(slot0._ui:findTF("ChargeAreaContainer")) slot0._sightView:SetFleetVO(slot0._userFleet) slot2, slot3, slot4, slot5 = slot0._dataProxy:GetTotalBounds() slot0._sightView:SetAreaBound(slot4, slot5) end function slot6.onAddUnit(slot0, slot1) slot2 = slot1.Data.type if slot1.Data.unit.IsBoss and slot3:IsBoss() then if slot0._hasAppearEffect then return end slot0._hasAppearEffect = true slot0._dataProxy:BlockManualCast(true) LoadAndInstantiateAsync("UI", "MonsterAppearUI", function (slot0) if not uv0._seaView then uv0._hasAppearEffect = nil Destroy(slot0) return end uv0._state:SetTakeoverProcess({ Pause = function () uv0.speed = 0 end, Resume = function () uv0.speed = 1 end }) uv0._appearEffect = slot0 slot0:GetComponent(typeof(Animator)).speed = 1 / uv0._state:GetTimeScaleRate() slot0.transform:SetParent(uv0._uiMGR.UIMain.transform, false) slot0:GetComponent(typeof(DftAniEvent)):SetEndEvent(function (slot0) uv0._userFleet:CoupleEncourage() uv0._dataProxy:BlockManualCast(false) uv0._state:ClearTakeoverProcess() uv0._appearEffect = nil uv0._hasAppearEffect = nil Destroy(uv1) end) SetActive(slot0, true) end) elseif slot2 == uv0.UnitType.ENEMY_UNIT then slot0:registerUnitEvent(slot3) elseif slot2 == uv0.UnitType.NPC_UNIT and slot3:GetIFF() == uv1.FOE_CODE then slot0:registerUnitEvent(slot3) elseif slot2 == uv0.UnitType.PLAYER_UNIT and slot3:IsMainFleetUnit() and slot3:GetIFF() == uv1.FRIENDLY_CODE then slot0:registerPlayerMainUnitEvent(slot3) end end function slot6.onSubmarineDetected(slot0, slot1) slot2 = slot1.Dispatcher if slot0._enemyHpBar:GetCurrentTarget() and slot0._enemyHpBar:GetCurrentTarget() == slot2 and slot2:GetDiveDetected() == false then slot0._enemyHpBar:RemoveUnit() end end function slot6.onRemoveUnit(slot0, slot1) slot2 = slot1.Data.unit if slot1.Data.type == uv0.UnitType.ENEMY_UNIT and not slot2:IsBoss() then slot0:unregisterUnitEvent(slot2) elseif slot2:GetIFF() == uv1.FRIENDLY_CODE and slot2:IsMainFleetUnit() then slot0:unregisterPlayerMainUnitEvent(slot2) end if slot1.Data.deadReason == uv0.UnitDeathReason.LEAVE and slot0._enemyHpBar:GetCurrentTarget() and slot0._enemyHpBar:GetCurrentTarget() == slot1.Data.unit then slot0._enemyHpBar:RemoveUnit(slot1.Data.deadReason) end end function slot6.onUpdateCountDown(slot0, slot1) slot0._timerView:SetCountDownText(slot0._dataProxy:GetCountDown()) end function slot6.onJamming(slot0, slot1) slot0:InitKizunaJamming() end function slot6.onUpdateDodgemScore(slot0, slot1) slot0._scoreBarView:UpdateScore(slot1.Data.totalScore) end function slot6.onUpdateDodgemCombo(slot0, slot1) slot0._scoreBarView:UpdateCombo(slot1.Data.combo) end function slot6.onAddAirStrike(slot0, slot1) slot2 = slot1.Data.index slot0._airStrikeView:AppendIcon(slot2, slot0._dataProxy:GetAirFighterInfo(slot2)) end function slot6.onRemoveAirStrike(slot0, slot1) slot2 = slot1.Data.index slot0._airStrikeView:RemoveIcon(slot2, slot0._dataProxy:GetAirFighterInfo(slot2)) end function slot6.onUpdateHostileSubmarine(slot0, slot1) slot0._warningView:UpdateHostileSubmarineCount(slot0._dataProxy:GetEnemySubmarineCount()) end function slot6.onUpdateEnvironmentWarning(slot0, slot1) if slot1.Data.isActive then slot0._warningView:ActiveWarning(slot0._warningView.WARNING_TYPE_ARTILLERY) else slot0._warningView:DeactiveWarning(slot0._warningView.WARNING_TYPE_ARTILLERY) end end function slot6.onCameraFocus(slot0, slot1) if slot1.Data.unit ~= nil then slot0:EnableComponent(false) slot0:EnableSkillFloat(slot2.skill or false) else LeanTween.delayedCall(slot0._ui._go, slot2.duration + slot2.extraBulletTime, System.Action(function () uv0:EnableComponent(true) uv0:EnableSkillFloat(true) end)) end end function slot6.onShowPainting(slot0, slot1) slot2 = slot1.Data slot0:ShowSkillPainting(slot2.caster, slot2.skill, slot2.speed) end function slot6.onBulletTime(slot0, slot1) slot2 = slot1.Data if slot2.rate then uv0.AppendMapFactor(slot2.key, slot4) else uv0.RemoveMapFactor(slot3) end slot0._seaView:UpdateSpeedScaler() end function slot6.onShowBuffer(slot0, slot1) slot0._seaView:UpdateBufferAlpha(slot1.Data.dist) end function slot6.onManualSubShift(slot0, slot1) slot0._skillView:ShiftSubmarineManualButton(slot1.Data.state) end function slot6.onPointHitSight(slot0, slot1) if slot1.ID == uv0.POINT_HIT_CHARGE then slot0._sightView:SetActive(true) slot0._updateViewList[slot0._sightView] = true elseif slot2 == uv0.POINT_HIT_CANCEL then slot0._sightView:SetActive(false) slot0._updateViewList[slot0._sightView] = nil end end function slot6.onFleetBlind(slot0, slot1) slot2 = slot1.Data.isBlind if not slot0._inkView then slot0:InitInkView(slot1.Dispatcher) end if slot2 then slot0._inkView:SetActive(true, slot3:GetUnitList()) slot0._skillView:HideSkillButton(true) slot0._updateViewList[slot0._inkView] = true else slot0._inkView:SetActive(false) slot0._skillView:HideSkillButton(false) slot0._updateViewList[slot0._inkView] = nil end end function slot6.onFleetHorizonUpdate(slot0, slot1) if not slot0._inkView then return end slot0._inkView:UpdateHollow(slot1.Dispatcher:GetUnitList()) end function slot6.registerUnitEvent(slot0, slot1) slot1:RegisterEventListener(slot0, uv0.UPDATE_HP, slot0.onEnemyHpUpdate) if table.contains(TeamType.SubShipType, slot1:GetTemplate().type) then slot1:RegisterEventListener(slot0, uv0.SUBMARINE_DETECTED, slot0.onSubmarineDetected) end end function slot6.registerPlayerMainUnitEvent(slot0, slot1) slot1:RegisterEventListener(slot0, uv0.UPDATE_HP, slot0.onPlayerMainUnitHpUpdate) end function slot6.unregisterUnitEvent(slot0, slot1) slot1:UnregisterEventListener(slot0, uv0.UPDATE_HP) if table.contains(TeamType.SubShipType, slot1:GetTemplate().type) then slot1:UnregisterEventListener(slot0, uv0.SUBMARINE_DETECTED) end end function slot6.unregisterPlayerMainUnitEvent(slot0, slot1) slot1:UnregisterEventListener(slot0, uv0.UPDATE_HP) end function slot6.Dispose(slot0) LeanTween.cancel(slot0._ui._go) slot0._uiMGR:ClearStick() slot0._uiMGR = nil if slot0._appearEffect then Destroy(slot0._appearEffect) end slot0:RemoveUIEvent() slot0._timerView:Dispose() slot0._enemyHpBar:Dispose() slot0._skillView:Dispose() slot0._seaView:Dispose() slot0._airStrikeView:Dispose() slot0._sightView:Dispose() slot0._mainDamagedView:Dispose() slot0._warningView:Dispose() slot0._seaView = nil slot0._enemyHpBar = nil slot0._skillView = nil slot0._timerView = nil slot0._joystick = nil slot0._airStrikeView = nil slot0._warningView = nil slot0._mainDamagedView = nil if slot0._duelRateBar then slot0._duelRateBar:Dispose() slot0._duelRateBar = nil end if slot0._simulationBuffCountView then slot0._simulationBuffCountView:Dispose() slot0._simulationBuffCountView = nil end if slot0._jammingView then slot0._jammingView:Dispose() slot0._jammingView = nil end if slot0._inkView then slot0._inkView:Dispose() slot0._inkView = nil end uv0.super.Dispose(slot0) end