5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
190 lines
5.6 KiB
Lua
190 lines
5.6 KiB
Lua
local GameResourceLoader = require("Game.Common.Resource.GameResourceLoader")
|
|
local ResTypeAny = GameResourceLoader.ResType.Any
|
|
local ChangeGenderCtrl = class("ChangeGenderCtrl", BaseCtrl)
|
|
local PlayerBaseData = PlayerData.Base
|
|
local WwiseAudioMgr = CS.WwiseAudioManager.Instance
|
|
local Actor2DManager = require("Game.Actor2D.Actor2DManager")
|
|
ChangeGenderCtrl._mapNodeConfig = {
|
|
TopBar = {
|
|
sNodeName = "TopBarPanel",
|
|
sCtrlName = "Game.UI.TopBarEx.TopBarCtrl"
|
|
},
|
|
tbTrRole = {
|
|
nCount = 2,
|
|
sNodeName = "role_",
|
|
sComponentName = "Transform"
|
|
},
|
|
animSwitchPlayer = {sNodeName = "FG", sComponentName = "Animator"},
|
|
animChooseGender = {
|
|
sNodeName = "--choose_gender--",
|
|
sComponentName = "Animator"
|
|
},
|
|
tmp_notice = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "ChangeGender_Title"
|
|
},
|
|
tmp_female = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "ChangeGender_BtnFemale"
|
|
},
|
|
tmp_male = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "ChangeGender_BtnMale"
|
|
},
|
|
tmp_Confirm = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "MainLine_Select_Btn_Confirm"
|
|
},
|
|
imgSelectedBg1 = {sComponentName = "Image"},
|
|
imgSelectedBg2 = {sComponentName = "Image"},
|
|
btn_female = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtn_Female"
|
|
},
|
|
btn_male = {sComponentName = "UIButton", callback = "OnBtn_Male"},
|
|
btn_confirm = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtn_Confirm"
|
|
},
|
|
animConfirmGender = {
|
|
sNodeName = "--confirm_gender--",
|
|
sComponentName = "Animator"
|
|
},
|
|
txtTitle1 = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "MainLine_Select_Btn_Confirm"
|
|
},
|
|
txtTitle2 = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "MainLine_Select_Btn_Confirm"
|
|
},
|
|
txtConfirmInfo = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "ChangeGender_ConfirmText"
|
|
},
|
|
txtConfirmTip = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "ChangeGender_ConfirmTips"
|
|
},
|
|
tmpCancel = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "MainLine_Select_Btn_Cancel"
|
|
},
|
|
tmpConfirm = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "MainLine_Select_Btn_Confirm"
|
|
},
|
|
btnBgClose = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtn_Close"
|
|
},
|
|
btnClose = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtn_Close"
|
|
},
|
|
btnCancel = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtn_Close"
|
|
},
|
|
btnConfirm = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtn_ConfirmAgain"
|
|
}
|
|
}
|
|
ChangeGenderCtrl._mapEventConfig = {}
|
|
function ChangeGenderCtrl:Awake()
|
|
self.v3Invisible = Vector3.zero
|
|
self.v3Visible = Vector3(100, 100, 100)
|
|
if PlayerBaseData:GetPlayerSex() == true then
|
|
self.bFemale = false
|
|
else
|
|
self.bFemale = true
|
|
end
|
|
Actor2DManager.PlayL2DAnim(self._mapNode.tbTrRole[1], "idle", true, true)
|
|
Actor2DManager.PlayL2DAnim(self._mapNode.tbTrRole[2], "idle", true, true)
|
|
self:_AnimChooseGender(true)
|
|
self:_AnimSwitchGender(true)
|
|
end
|
|
function ChangeGenderCtrl:_AnimChooseGender(bIn)
|
|
self._mapNode.animChooseGender:SetTrigger(bIn == true and "tIn" or "tOut")
|
|
end
|
|
function ChangeGenderCtrl:_AnimSwitchGender(bForce)
|
|
self._mapNode.imgSelectedBg1.transform.localScale = self.bFemale == true and Vector3.one or Vector3.zero
|
|
self._mapNode.imgSelectedBg2.transform.localScale = self.bFemale == true and Vector3.zero or Vector3.one
|
|
if bForce == true then
|
|
self:_DoSwitch()
|
|
else
|
|
WwiseAudioMgr:PlaySound("ui_charInfo_mirror")
|
|
self._mapNode.animSwitchPlayer:SetTrigger("tPlay")
|
|
self:AddTimer(1, 0.3, "_DoSwitch", true, true, true)
|
|
end
|
|
end
|
|
function ChangeGenderCtrl:_DoSwitch()
|
|
self._mapNode.tbTrRole[1].localScale = self.bFemale == true and self.v3Visible or self.v3Invisible
|
|
self._mapNode.tbTrRole[2].localScale = self.bFemale == true and self.v3Invisible or self.v3Visible
|
|
end
|
|
function ChangeGenderCtrl:_AnimConfirmAgain(bIn)
|
|
self._mapNode.animConfirmGender:SetTrigger(bIn == true and "tIn" or "tOut")
|
|
end
|
|
function ChangeGenderCtrl:OnBtn_Female(btn)
|
|
if self.bFemale == true then
|
|
return
|
|
end
|
|
EventManager.Hit(EventId.TemporaryBlockInput, 1.2)
|
|
self.bFemale = true
|
|
self:_AnimSwitchGender()
|
|
end
|
|
function ChangeGenderCtrl:OnBtn_Male(btn)
|
|
if self.bFemale == false then
|
|
return
|
|
end
|
|
EventManager.Hit(EventId.TemporaryBlockInput, 1.2)
|
|
self.bFemale = false
|
|
self:_AnimSwitchGender()
|
|
end
|
|
function ChangeGenderCtrl:OnBtn_Confirm(btn)
|
|
if PlayerBaseData:GetPlayerSex() ~= self.bFemale then
|
|
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("ChangeGender_Same"))
|
|
return
|
|
end
|
|
local msg = {
|
|
nType = AllEnum.MessageBox.Confirm,
|
|
sContent = ConfigTable.GetUIText("ChangeGender_ConfirmText"),
|
|
sContentSub = ConfigTable.GetUIText("ChangeGender_ConfirmTips"),
|
|
callbackConfirm = function()
|
|
local func_cb = function()
|
|
if PlayerBaseData:GetPlayerSex() == true then
|
|
PlayerBaseData:SetPlayerSex(false)
|
|
self.bFemale = true
|
|
else
|
|
PlayerBaseData:SetPlayerSex(true)
|
|
self.bFemale = false
|
|
end
|
|
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("ChangeGender_Succ"))
|
|
end
|
|
HttpNetHandler.SendMsg(NetMsgId.Id.player_gender_edit_req, {}, nil, func_cb)
|
|
end
|
|
}
|
|
EventManager.Hit(EventId.OpenMessageBox, msg)
|
|
end
|
|
function ChangeGenderCtrl:OnBtn_Close(btn)
|
|
EventManager.Hit(EventId.TemporaryBlockInput, 0.5)
|
|
self:_AnimConfirmAgain(false)
|
|
end
|
|
function ChangeGenderCtrl:OnBtn_ConfirmAgain(btn)
|
|
EventManager.Hit(EventId.TemporaryBlockInput, 1)
|
|
self:_AnimConfirmAgain(false)
|
|
local func_cb = function()
|
|
if PlayerBaseData:GetPlayerSex() == true then
|
|
PlayerBaseData:SetPlayerSex(false)
|
|
self.bFemale = true
|
|
else
|
|
PlayerBaseData:SetPlayerSex(true)
|
|
self.bFemale = false
|
|
end
|
|
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("ChangeGender_Succ"))
|
|
end
|
|
HttpNetHandler.SendMsg(NetMsgId.Id.player_gender_edit_req, {}, nil, func_cb)
|
|
end
|
|
return ChangeGenderCtrl
|