using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
|
using System;
|
using IFix.Core;
|
using System.Reflection;
|
|
namespace Snxxz.UI
|
{
|
|
public class RoleModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
|
{
|
public int openUIMark = 0; //自定义openui带的数字含义,规律其一为功能ID*10000 + 数字
|
Dictionary<int,Int2> customAwardsDict = new Dictionary<int, Int2>();
|
|
public event Action OnCustomAwardsEvent;
|
FriendsModel friendsModel { get { return ModelCenter.Instance.GetModel<FriendsModel>(); } }
|
public string RecordPlayerNameKey;
|
public override void Init()
|
{
|
FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
|
}
|
|
public void OnBeforePlayerDataInitialize()
|
{
|
customAwardsDict.Clear();
|
}
|
|
public void OnAfterPlayerDataInitialize()
|
{
|
|
}
|
|
public void OnPlayerLoginOk()
|
{
|
RecordPlayerNameKey = StringUtility.Contact("RecordPlayerName",PlayerDatas.Instance.baseData.PlayerID);
|
SendRenameInfoToPlayer();
|
}
|
|
public override void UnInit()
|
{
|
FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
|
}
|
|
public string playerRename { get; private set; }
|
public void SetRename(string rename)
|
{
|
playerRename = rename;
|
}
|
#region 协议
|
public void ServerRenameResult(HA921_tagUpdatePlayerNameResult renameResult)
|
{
|
switch ((RoleRenameResult)renameResult.Result)
|
{
|
case RoleRenameResult.MoneyErr:
|
SysNotifyMgr.Instance.ShowTip("GoldErr");
|
break;
|
case RoleRenameResult.NameRuleErr:
|
ServerTipDetails.DisplayNormalTip(Language.Get("L1007"));
|
break;
|
case RoleRenameResult.NameLengErr:
|
break;
|
case RoleRenameResult.NameRepeatErr:
|
SysNotifyMgr.Instance.ShowTip("RepeatName");
|
break;
|
case RoleRenameResult.RenameFailErr:
|
break;
|
case RoleRenameResult.RenameSuccess:
|
LocalSave.SetString(RecordPlayerNameKey, UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName));
|
SysNotifyMgr.Instance.ShowTip("RenameSuccess01", playerRename);
|
if(WindowCenter.Instance.IsOpen<RoleRenameWin>())
|
{
|
WindowCenter.Instance.Close<RoleRenameWin>();
|
}
|
GameNetSystem.Instance.Reconnect();
|
break;
|
}
|
}
|
#endregion
|
|
private void SendRenameInfoToPlayer()
|
{
|
if(PlayerPrefs.HasKey(RecordPlayerNameKey))
|
{
|
string recordName = LocalSave.GetString(RecordPlayerNameKey);
|
if(!string.IsNullOrEmpty(recordName))
|
{
|
string info = Language.Get("RenameText_02",recordName, playerRename);
|
friendsModel.SendChatInfoByGroup(GroupType.Friend, info);
|
PlayerPrefs.DeleteKey(RecordPlayerNameKey);
|
}
|
}
|
}
|
|
public void OpenRolePanel()
|
{
|
var functionOrder = 0;
|
var godWeaponModel = ModelCenter.Instance.GetModel<MagicianModel>();
|
var gatherSoulModel = ModelCenter.Instance.GetModel<GatheringSoulModel>();
|
var reikiRootModel = ModelCenter.Instance.GetModel<ReikiRootModel>();
|
var fashionDressModel = ModelCenter.Instance.GetModel<FashionDressModel>();
|
if (MainRedDot.Instance.roleTagRedpoint.state != RedPointState.None)
|
{
|
functionOrder = 0;
|
}
|
else if (reikiRootModel.redpoint.state == RedPointState.Simple)
|
{
|
functionOrder = 1;
|
}
|
else if (fashionDressModel.redpoint.state == RedPointState.Simple)
|
{
|
functionOrder = 2;
|
}
|
else if (godWeaponModel.magicianRedpoint.state != RedPointState.None)
|
{
|
functionOrder = 3;
|
}
|
else if (gatherSoulModel.redpoint.state != RedPointState.None)
|
{
|
functionOrder = 4;
|
}
|
WindowCenter.Instance.Open<RolePanel>(false, functionOrder);
|
}
|
|
//功能:是否提醒过 1 在线特惠
|
public Dictionary<int, int> funcInfo = new Dictionary<int, int>();
|
private void OnFuncStateChangeEvent(int id)
|
{
|
if (id == 193)
|
{
|
//无限货币每日上线弹框一次
|
if (ILRuntimeUtility.Instance.ModelInvoke<bool>("OnlineRechargeModel", "IsOpen"))
|
{
|
funcInfo[1] = 0;
|
}
|
}
|
}
|
|
public void SetCustomAwardsState(HA3CC_tagMCCustomAwardInfo pack)
|
{
|
for (int i = 0; i < pack.RecordStateList.Length; i++)
|
{
|
customAwardsDict[pack.RecordStateList[i].KeyNum] = new Int2((int)pack.RecordStateList[i].CanGetState, (int)pack.RecordStateList[i].GetState);
|
}
|
OnCustomAwardsEvent?.Invoke();
|
}
|
|
//对应奖励表
|
// 0 未达成 1 可领取 2 已领取
|
public int GetCustomAwardState(int awardID)
|
{
|
int keyNum = awardID / 31;
|
int bitNum = awardID % 31;
|
if (!customAwardsDict.ContainsKey(keyNum))
|
return 0;
|
|
if (((int)Math.Pow(2, bitNum) & customAwardsDict[keyNum].x) <= 0)
|
return 0;
|
|
if (((int)Math.Pow(2, bitNum) & customAwardsDict[keyNum].y) <= 0)
|
return 1;
|
|
return 2;
|
}
|
|
public void GetCustomAward(int awardID)
|
{
|
CA504_tagCMPlayerGetReward pak = new CA504_tagCMPlayerGetReward();
|
pak.RewardType = 61;
|
pak.DataEx = (uint)awardID;
|
GameNetSystem.Instance.SendInfo(pak);
|
}
|
}
|
}
|
|