local SettingsBattleCtrl = class("SettingsBattleCtrl", BaseCtrl)
local ModuleManager = require("GameCore.Module.ModuleManager")
local UIGameSystemSetup = CS.UIGameSystemSetup
local BattleAnimTypeEnum = {
	UIGameSystemSetup.TimeLinePlayType.dayOnce,
	UIGameSystemSetup.TimeLinePlayType.everyTime,
	UIGameSystemSetup.TimeLinePlayType.none
}
SettingsBattleCtrl._mapNodeConfig = {
	txtPageTitle = {
		sComponentName = "TMP_Text",
		sLanguageId = "Settings_Game"
	},
	txtAnim1 = {
		sComponentName = "TMP_Text",
		sLanguageId = "Settings_Animation"
	},
	txtAnim2 = {
		sComponentName = "TMP_Text",
		sLanguageId = "Settings_AnimationSub"
	},
	txtBattleHUD = {
		sComponentName = "TMP_Text",
		sLanguageId = "Settings_BattleHUD_Title"
	},
	Anim1 = {
		sCtrlName = "Game.UI.Settings.OptionChooseCtrl"
	},
	Anim2 = {
		sCtrlName = "Game.UI.Settings.OptionChooseCtrl"
	},
	Anim3 = {
		sCtrlName = "Game.UI.Settings.OptionChooseCtrl"
	},
	JoyStick = {
		sCtrlName = "Game.UI.Settings.OptionSwitchCtrl"
	},
	Gizmos = {
		sCtrlName = "Game.UI.Settings.OptionSwitchCtrl"
	},
	Mouse = {
		sCtrlName = "Game.UI.Settings.OptionSwitchCtrl"
	},
	AutoUlt = {
		sCtrlName = "Game.UI.Settings.OptionSwitchCtrl"
	},
	BattleHudList = {}
}
SettingsBattleCtrl._mapEventConfig = {
	SettingsChangeL2d = "OnEvent_ChangeL2d"
}
function SettingsBattleCtrl:RefreshText()
	self._mapNode.Anim1:SetText(ConfigTable.GetUIText("Settings_Animation_One"), ConfigTable.GetUIText("Settings_Animation_Open"), ConfigTable.GetUIText("Settings_Animation_Close"))
	self._mapNode.Anim2:SetText(ConfigTable.GetUIText("Settings_Animation_One"), ConfigTable.GetUIText("Settings_Animation_Open"), ConfigTable.GetUIText("Settings_Animation_Close"))
	self._mapNode.Anim3:SetText(ConfigTable.GetUIText("Settings_BattleHUD_Type1"), ConfigTable.GetUIText("Settings_BattleHUD_Type2"), "")
	self._mapNode.JoyStick:SetText(ConfigTable.GetUIText("Settings_JoyStick"))
	self._mapNode.Gizmos:SetText(ConfigTable.GetUIText("Settings_Gizmos"))
	self._mapNode.Mouse:SetText(ConfigTable.GetUIText("Settings_Mouse"))
	self._mapNode.AutoUlt:SetText(ConfigTable.GetUIText("Settings_AutoBattle_Ultra"))
end
function SettingsBattleCtrl:Init()
	if self.bInit then
		return
	end
	self.bInit = true
	self:LoadSetting()
end
function SettingsBattleCtrl:Quit()
	if not self.bInit then
		return
	end
end
function SettingsBattleCtrl:LoadSetting()
	self.battleAnim = self._panel:LoadLocalData("Animation")
	self._mapNode.Anim1:Init(function(index)
		UIGameSystemSetup.Instance.PlayType = BattleAnimTypeEnum[index]
		self.battleAnim = index
	end, self.battleAnim)
	self.battleAnim2 = self._panel:LoadLocalData("AnimationSub")
	local bUseLive2D = self._panel:LoadLocalData("UseLive2D")
	if bUseLive2D == false then
		self._mapNode.Anim2:SetGray({
			[1] = true,
			[2] = true
		}, ConfigTable.GetUIText("Settings_SubSkillDisable"))
		self.battleAnim2 = 3
	else
		self._mapNode.Anim2:SetGray()
	end
	self._mapNode.Anim2:Init(function(index)
		self.battleAnim2 = index
	end, self.battleAnim2)
	self.battleHud = self._panel:LoadLocalData("BattleHUD")
	self._mapNode.Anim3:Init(function(index)
		self.battleHud = index
	end, self.battleHud, 2)
	self._mapNode.Mouse.gameObject:SetActive(false)
	self.floatingJoyStick = self._panel:LoadLocalData("JoyStick")
	self._mapNode.JoyStick:Init(function()
		self.floatingJoyStick = not self.floatingJoyStick
		UIGameSystemSetup.Instance.EnableFloatingJoyStick = self.floatingJoyStick
		EventManager.Hit("SetVariableJoystickMode")
	end, self.floatingJoyStick)
	self.gizmos = self._panel:LoadLocalData("Gizmos")
	self._mapNode.Gizmos:Init(function()
		self.gizmos = not self.gizmos
		UIGameSystemSetup.Instance.EnableAttackGizmos = self.gizmos
		if ModuleManager.GetIsAdventure() then
			CS.AdventureModuleHelper.Lua2CSharp_ChangeVisionAttackRange(self.gizmos)
		end
	end, self.gizmos)
	self.autoUlt = self._panel:LoadLocalData("AutoUlt")
	self._mapNode.AutoUlt:Init(function()
		self.autoUlt = not self.autoUlt
		UIGameSystemSetup.Instance.EnableAutoUlt = self.autoUlt
	end, self.autoUlt)
end
function SettingsBattleCtrl:SaveSetting()
	self._panel:SaveLocalData("Animation", self.battleAnim)
	self._panel:SaveLocalData("AnimationSub", self.battleAnim2)
	if not NovaAPI.IsMobilePlatform() then
		self._panel:SaveLocalData("Mouse", self.openMouse)
	end
	self._panel:SaveLocalData("JoyStick", self.floatingJoyStick)
	self._panel:SaveLocalData("Gizmos", self.gizmos)
	self._panel:SaveLocalData("AutoUlt", self.autoUlt)
	self._panel:SaveLocalData("BattleHUD", self.battleHud)
end
function SettingsBattleCtrl:Awake()
	self.bInit = false
	local bMobile = NovaAPI.IsMobilePlatform()
	self._mapNode.JoyStick.gameObject:SetActive(bMobile)
	self:RefreshText()
end
function SettingsBattleCtrl:OnEnable()
end
function SettingsBattleCtrl:OnDisable()
	if not self.bInit then
		return
	end
	self:SaveSetting()
	EventManager.Hit(EventId.SettingsBattleClose)
end
function SettingsBattleCtrl:OnDestroy()
end
function SettingsBattleCtrl:OnEvent_ChangeL2d(bUseLive2D)
	self:Init()
	if bUseLive2D == false then
		self._mapNode.Anim2:SetGray({
			[1] = true,
			[2] = true
		}, ConfigTable.GetUIText("Settings_SubSkillDisable"))
		self.battleAnim2 = 3
	else
		self._mapNode.Anim2:SetGray()
	end
	self._mapNode.Anim2:Init(function(index)
		self.battleAnim2 = index
	end, self.battleAnim2)
end
return SettingsBattleCtrl
