2025-05-18 01:04:31 +08:00

409 lines
13 KiB
C#

// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2020-12-25
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
// <copyright file= "SettingWindow.View" company="Kunpo"></copyright>
// <summary></summary>
// ***********************************************************************
namespace G.UI
{
using TMPro;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
///
/// </summary>
partial class SettingWindow
{
#region Field
#pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
[KUIFlag]
Button _btnClose;
[KUIFlag]
TextMeshProUGUI _tmpName;
[KUIFlag]
TextMeshProUGUI _tmpForce;
[KUIFlag]
TextMeshProUGUI _tmpDesciption;
[KUIFlag]
TextMeshProUGUI _tmpGrade;
[KUIFlag]
Image _imgHeadIcon;
[KUIFlag]
TextMeshProUGUI _tmpId;
[KUIFlag]
TextMeshProUGUI _tmpLevelProgress;
[KUIFlag]
TextMeshProUGUI _tmpAccSwitch;
[KUIFlag]
Toggle _tgMusicBg;
[KUIFlag]
Toggle _tgAudioFx;
[KUIFlag]
Toggle _tgScreenFit;
//[KUIFlag]
//Toggle _tgVibrate;
[KUIFlag]
Toggle _tgLowEffect;
//[KUIFlag]
//Toggle _tgLowFrameRate;
[KUIFlag]
Button _btnNameChanged;
[KUIFlag]
Button _btnRedeem;
[KUIFlag]
Button _btnFeedback;
[KUIFlag]
Button _btnAccBind;
[KUIFlag]
Button _btnAccSwitch;
[KUIFlag]
Button _btnUploadArchive;
[KUIFlag]
TextMeshProUGUI _tmpUploadArchiveInfo;
[KUIFlag]
Button _btnLogoff;
[KUIFlag]
Button _btnUserAgreement;
[KUIFlag]
Button _btnPrivacyPolicy;
[KUIFlag]
Button _btnIdentifyProtocol;
[KUIFlag]
Button _btnRepair;
[KUIFlag]
Button _btnHead;
#pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
private Slider _musicBgSlider;
private Slider _audioFxSlider;
#endregion
#region Method
/// <summary>
///
/// </summary>
public void InitView()
{
SetViewData();
_btnClose.onClick.AddListener(this.OnCloseBtnClick);
_btnNameChanged.onClick.AddListener(this.OnNameChangedClick);
_tmpId.GetComponent<Button>().onClick.AddListener(OnIdClick);
var music_bg = SoundProxy.Instance.bgEnabled;
_tgMusicBg.isOn = music_bg;
_tgMusicBg.onValueChanged.AddListener(this.OnMusicBgValueChanged);
var music_bg_v = SoundProxy.Instance.bgVolume;
_musicBgSlider = _tgMusicBg.GetComponentInChildren<Slider>();
_musicBgSlider.value = music_bg_v;
_musicBgSlider.onValueChanged.AddListener(this.OnMusicBgValueChanged);
_musicBgSlider.interactable = _tgMusicBg.isOn;
var audio_fx = SoundProxy.Instance.fxEnabled;
_tgAudioFx.isOn = audio_fx;
_tgAudioFx.onValueChanged.AddListener(this.OnAudioFxValueChanged);
var audio_fx_v = SoundProxy.Instance.fxVolume;
_audioFxSlider = _tgAudioFx.GetComponentInChildren<Slider>();
_audioFxSlider.value = audio_fx_v;
_audioFxSlider.onValueChanged.AddListener(this.OnAudioFxValueChanged);
_audioFxSlider.interactable = _tgAudioFx.isOn;
////
_tgLowEffect.isOn = SettingProxy.Instance.lowEffect;
_tgLowEffect.onValueChanged.AddListener(this.OnEffectValueChanged);
////
_tgScreenFit.isOn = SettingProxy.Instance.screenFit;
_tgScreenFit.onValueChanged.AddListener(this.OnScreenValueChanged);
////
_btnRedeem.onClick.AddListener(this.OnRedeemBtnClick);
_btnFeedback.onClick.AddListener(this.OnFeedbackBtnClick);
_btnAccBind.onClick.AddListener(this.OnAccBindBtnClick);
_btnAccSwitch.onClick.AddListener(this.OnAccSwitchBtnClick);
_btnUploadArchive.onClick.AddListener(this.OnUploadArchiveBtnClick);
if (KPlatform.Instance.IsVisitor())
{
_btnLogoff.gameObject.SetActive(false);
}
_btnLogoff.onClick.AddListener(this.OnLogoffBtnClick);
_btnUserAgreement.onClick.AddListener(this.OnUserAgreementBtnClick);
_btnPrivacyPolicy.onClick.AddListener(this.OnPrivacyPolicyBtnClick);
_btnIdentifyProtocol.onClick.AddListener(this.OnIdentifyProtocolBtnClick);
_btnRepair.onClick.AddListener(this.OnRepairResBtnClick);
_btnHead.onClick.AddListener(this.OnHeadBtnClick);
if (KPlatform.Instance.supportSwitchAccount)
{
_btnAccBind.gameObject.SetActive(true);
_btnAccSwitch.gameObject.SetActive(true);
}
else
{
_btnAccBind.gameObject.SetActive(false);
_btnAccSwitch.gameObject.SetActive(false);
}
if (KPlatform.Instance.supportPrivacyProtocol)
{
_btnUserAgreement.gameObject.SetActive(true);
_btnPrivacyPolicy.gameObject.SetActive(true);
_btnLogoff.gameObject.SetActive(true);
}
else
{
_btnUserAgreement.gameObject.SetActive(false);
_btnPrivacyPolicy.gameObject.SetActive(false);
_btnLogoff.gameObject.SetActive(false);
}
}
/// <summary>
///
/// </summary>
public void RefreshView()
{
_tmpName.text = PlayerProxy.Instance.nickName;
//_tmpGrade.text = PlayerProxy.Instance.grade.ToString();
_tmpForce.text = PlayerProxy.Instance.combatValue.ToString();
var levelItem = ItemProxy.Instance.GetStaticItem<ItemLevel>(LevelProxy.Instance.currentUnlockedLevel);
if (levelItem != null)
_tmpLevelProgress.text = levelItem.name;
_tmpUploadArchiveInfo.text = ArchiveProxy.Instance.autoUploadArchiveMessage;
_tmpId.text = UserProxy.UserId + $"({KPlatform.Instance.loginTypeText})";
if (KRemoteConfig.Instance.isReview)
{
_btnRedeem.gameObject.SetActive(false);
_btnFeedback.gameObject.SetActive(false);
}
else
{
_btnRedeem.gameObject.SetActive(true);
_btnFeedback.gameObject.SetActive(false);
}
if (KPlatform.Instance.IsVisitor())
{
if (KPlatform.Instance.supportSwitchAccount)
_btnAccBind.gameObject.SetActive(true);
_btnFeedback.gameObject.SetActive(false);
}
else
{
if (KPlatform.Instance.supportSwitchAccount)
_btnAccBind.gameObject.SetActive(false);
_btnFeedback.gameObject.SetActive(false);
}
RefreshAvatar();
}
private void RefreshAvatar()
{
var headURL = PlayerProxy.Instance.headURL;
if (int.TryParse(headURL, out var avatarId))
{
var chaAvatar = ItemProxy.Instance.GetStaticItem<ItemChaAvatar>(avatarId);
if (chaAvatar != null)
IconProxy.Instance.SetSprite(_imgHeadIcon, chaAvatar.icon);
}
}
private void RefreshNickName()
{
_tmpName.text = PlayerProxy.Instance.nickName;
}
private void OnCloseBtnClick()
{
CloseWindow(this);
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
private void OnIdClick()
{
if (KPlatform.Instance.SetClipboardData(UserProxy.UserId))
ToastBox.ShowText("复制帐号");
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
private void OnNameChangedClick()
{
#if SDK_WECHAT_WASM
KPlatform.Instance.GetUserNickName((error, message) =>
{
if (error == 0)
{
RefreshNickName();
ToastBox.ShowText("同步昵称");
}
});
#else
NameBox.Show(_tmpName.text, (result) =>
{
if (!string.IsNullOrEmpty(result))
{
_tmpName.text = result;
PlayerProxy.Instance.nickName = result;
PostNotification(GlobalDefine.EVENT_NAME_CHANGED);
}
});
#endif
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
private void OnMusicBgValueChanged(bool value)
{
SoundProxy.Instance.bgEnabled = value;
_musicBgSlider.interactable = value;
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
private void OnMusicBgValueChanged(float value)
{
SoundProxy.Instance.bgVolume = value;
}
private void OnAudioFxValueChanged(bool value)
{
SoundProxy.Instance.fxEnabled = value;
_audioFxSlider.interactable = value;
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
private void OnAudioFxValueChanged(float value)
{
SoundProxy.Instance.fxVolume = value;
}
//private void OnLowFrameRateValueChanged(bool value)
//{
// SettingProxy.Instance.lowFrameRate = value;
// SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
//}
private void OnEffectValueChanged(bool value)
{
SettingProxy.Instance.lowEffect = value;
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
private void OnScreenValueChanged(bool value)
{
SettingProxy.Instance.screenFit = value;
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
private void OnRedeemBtnClick()
{
CloseWindow(this);
OpenWindow<RedeemBox>();
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
private void OnFeedbackBtnClick()
{
KPlatform.Instance.OpenFeedback();
//SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
private void OnUserAgreementBtnClick()
{
KPlatform.Instance.OpenUserProtocol();
//SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
private void OnPrivacyPolicyBtnClick()
{
KPlatform.Instance.OpenPrivacyProtocol();
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
private void OnIdentifyProtocolBtnClick()
{
KPlatform.Instance.OpenIdentifyProtocol();
}
private void OnLogoffBtnClick()
{
KPlatform.Instance.OpenLogoffProtocol();
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
private void OnRepairResBtnClick()
{
MessageBox.ShowMessage("修复游戏", "确定后将重启游戏",
() =>
{
AssetProxy.Instance.Repair();
Application.Quit();
},
() => { });
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
private void OnHeadBtnClick()
{
CloseWindow(this);
OpenWindow<AvatarBox>();
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
private void OnAccBindBtnClick()
{
ServerProxy.LoginSuccessEvent = OnLoginSuccess;
KPlatform.Instance.VisitorBindAccount();
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
private void OnAccSwitchBtnClick()
{
ServerProxy.LoginSuccessEvent = OnLoginSuccess;
KPlatform.Instance.SwitchAccount();
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
private void OnUploadArchiveBtnClick()
{
if (!AntiCheatProxy.Instance.isCheat)
{
ArchiveProxy.Instance.Upload(false, (err, msg) =>
{ _tmpUploadArchiveInfo.text = msg; });
}
else
{
ToastBox.ShowText("上传存档失败,请检查手机时间");
}
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
private void OnLoginSuccess()
{
_btnLogoff.gameObject.SetActive(KPlatform.Instance.IsVisitor());
CloseWindow(this);
}
#endregion
}
}