Files
JJBB/Assets/Project/Script/GUI/Role/RoleViewLogic.cs
2024-08-23 15:49:34 +08:00

871 lines
35 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using Games.GlobeDefine;
using GCGame;
using GCGame.Table;
using Module.Log;
using UnityEngine;
using UnityEngine.UI;
public class RoleViewLogic : MonoBehaviour
{
private static RoleViewLogic m_Instance;
public UITagPanel _TagPanel;
public static RoleViewLogic Instance()
{
return m_Instance;
}
private void OnEnable()
{
m_Instance = this;
_TagPanel.ShowPage(0);
OnAttrPage(0);
InitServerLevel();
HideToggleMark(0);
UpdateModel();
}
private void OnDestroy()
{
m_Instance = null;
}
public void OnTagPage(int page)
{
switch (page)
{
case 0:
OnAttrPage(0);
break;
case 1:
InitJifenPanel();
break;
}
HideToggleMark(page);
}
public void HideToggleMark(int _Index)
{
for (var index = 0; index < bgList.Count; index++)
{
bgList[index].SetActive(index == _Index ? false : true);
markList[index].SetActive(index == _Index ? true : false);
}
}
public void CloseWindow()
{
UIManager.CloseUI(UIInfo.RoleView);
}
#region
public void MyAutoBtnClick()
{
UIManager.ShowUI(UIInfo.AutoUseMedicPanel);
}
#endregion
#region Toggle
public List<GameObject> bgList;
public List<GameObject> markList;
#endregion
#region Attrs
public enum RoleViewSimple
{
LEVEL, //等级
PROFESSION, //职业
ABILITYLEVEL, //修为
CURHP, //血量
CURMP, //
MAXHP, //血上限 0
MAXMP, //蓝上限
MAXXP, //战意上限
PYSATTACK, //物理攻击
MAGATTACK, //魔法攻击
PYSDEF, //物理防御
MAGDEF, //魔法防御
HIT, //命中
DODGE, //闪避
CRITICAL, //暴击
DECRITICAL, //爆抗
STRIKE, //穿透
DUCTICAL, //韧性
CRITIADD, //暴击伤害加成
CRITIMIS, //暴击伤害减免
INGDEF, //无视防御
REDUCEDAM, //伤害减免
MOVESPEED, //移动速度
ATTACKSPEED, //攻击速度
CUREAMOUNT, //治疗量
CONSTITU, //体质
MORFIB, //精力
STRENGTH, //力量
INTELLENG, //智力
AGILE //敏捷
}
public enum RoleViewDetail
{
MAXHP, //血上限 0
MAXMP, //蓝上限
MAXXP, //战意上限
PYSATTACK, //物理攻击
MAGATTACK, //魔法攻击
PYSDEF, //物理防御
MAGDEF, //魔法防御
HIT, //命中
DODGE, //闪避
CRITICAL, //暴击
DECRITICAL, //爆抗
STRIKE, //穿透
DUCTICAL, //韧性
CRITIADD, //暴击伤害加成
CRITIMIS, //暴击伤害减免
INGDEF, //无视防御
REDUCEDAM, //伤害减免
MOVESPEED, //移动速度
ATTACKSPEED, //攻击速度
CUREAMOUNT, //治疗量
CONSTITU, //体质
MORFIB, //精力
STRENGTH, //力量
INTELLENG, //智力
AGILE, //敏捷
DIZZYENHANCE, //眩晕增强
DIZZYEDEF, //眩晕抗性
SILENTENHANCE, //沉默增强
SILENTDEF, //沉默抗性
IMMOBENHANCE, //定身
IMMOBDEF, //抗定身
REPELENHANCE, //击退增强
REPELDEF, //抗击退
POLYMORPHENHANCE, //变羊增强
POLYMORPHDEF, //抗变羊
HMENHANCE, //昏迷增强
HMDEF, //抗昏迷
SMENHANCE, //失明增强
SMDEF, //抗失明
SHENHANCE, //石化增强
SHDEF, //抗石化
DGDEF, //电抗
DGIGNDEF, //忽视电抗
HUOGDEF, //火抗
HUOGIGNDEF, //忽视火炕
DUGDEF, //毒抗
DUGIGNDEF, //忽视毒抗
BGDEF, //冰抗
BGIGNDEF, //忽视冰抗
FGDEF, //风抗
FGIGNDEF, //忽视风抗
GGDEF, //光抗
GGIGNDEF, //忽视光抗
HUANGDEF, // 抗幻弓
HUANGIFNDEF, //忽视幻抗
HLDEF, // 抗混乱
HLIGNDEF, //忽视幻抗
HLENCHANCE, //混乱增强
PKVAL, //PK值
ACTVAL, //活力值
LUCKYVAL, //幸运值
DGATTACK, //点攻
HUOATTACK, //火攻
DUGATTACK, //毒攻
BGATTACK, //冰攻
FGATTACK, //风攻
GGATTACK, //光攻
HUANGATTACK, //幻攻
VOCDAMAGERATE_TianJi, // 对天机伤害提升比
VOCDAMAGERATE_LiuShan, // 对六扇伤害提升比
VOCDAMAGERATE_ShuShan, // 对蜀山伤害提升比
VOCDAMAGERATE_XuanNv, // 对玄女伤害提升比
HEADEXP, //迎头经验
LEVEL, //等级
PROFESSION, //职业
ABILITYLEVEL, //修为
CURHP, //血量
CURMP // 当前法力
}
#endregion Attrs
#region Attr Panel
public Text m_NameLabel;
public Text m_TitleLabel;
public Text m_CombatValueLable;
public Text m_LevelValueLable;
public Text m_GUIDValueLable;
public Text m_HPValueLable;
public Text m_MPValueLable;
public Text m_ExpValueLable;
public Text m_ExExpValueLable;
public Slider m_HPSprite;
public Slider m_HP2Sprite;
public Slider m_MPSprite;
public Slider m_ExpSprite;
public Slider m_OffLineExpSprite;
public Text _RoleLevel;
public Text _CapLevel;
public UIContainerBase _SimpleAttrs;
public AttrDescPanel _AttrDescPanel;
public UIContainerBase _DetailMainAttrs;
public UIContainerBase _DetailBaseAttrs;
public UIContainerBase _DetailSpecilAttrs;
public UIContainerBase _DetailEffectAttrs;
public UIContainerBase _DetailExAttrs;
public UICameraTexture _UICameraTexture;
private bool m_bIsNeedUpdateSimpleAttr = true;
private bool m_bIsNeedUpdateDetailAttr = true;
private string m_GUIDStr;
public List<GameObject> _PanelList;
public List<GameObject> _MarkIconList;
public int curSelectPage = -1;
public void OnAttrPage(int page)
{
curSelectPage = page;
for (var index = 0; index < _PanelList.Count; index++)
{
_MarkIconList[index].SetActive(index == page);
_PanelList[index].SetActive(page == index);
}
switch (page)
{
case 0:
ReqSimpleAttr();
break;
case 1:
ReqDetailAttr();
break;
}
}
public void ReqSimpleAttr()
{
// 发包请求数据
var _mainPlayer = Singleton<ObjManager>.GetInstance().MainPlayer;
//if (_mainPlayer != null && m_bIsNeedUpdateSimpleAttr) //战斗力不相同时 才去重新发包请求最新数据
{
var askPak = (CG_ASK_ROLE_DATA) PacketDistributed.CreatePacket(MessageID.PACKET_CG_ASK_ROLE_DATA);
askPak.SetUserguid(_mainPlayer.GUID);
askPak.SetDatatype(0);
askPak.SendPacket();
m_bIsNeedUpdateSimpleAttr = false;
}
UpdateModel();
}
public void ReqDetailAttr()
{
// 发包请求数据
var _mainPlayer = Singleton<ObjManager>.GetInstance().MainPlayer;
//if (_mainPlayer != null && m_bIsNeedUpdateDetailAttr) //战斗力不相同时 才去重新发包请求最新数据
{
var askPak = (CG_ASK_ROLE_DATA) PacketDistributed.CreatePacket(MessageID.PACKET_CG_ASK_ROLE_DATA);
askPak.SetUserguid(_mainPlayer.GUID);
askPak.SetDatatype(1);
askPak.SendPacket();
m_bIsNeedUpdateDetailAttr = false;
}
UpdateModel();
}
public void OnCombatChange()
{
m_bIsNeedUpdateDetailAttr = true;
if (_TagPanel.GetShowingPage() == 0)
{
// 战斗力发生变化 重新发包请求最新数据
var _mainPlayer = Singleton<ObjManager>.GetInstance().MainPlayer;
if (_mainPlayer != null)
{
var askPak = (CG_ASK_ROLE_DATA) PacketDistributed.CreatePacket(MessageID.PACKET_CG_ASK_ROLE_DATA);
askPak.SetUserguid(_mainPlayer.GUID);
askPak.SendPacket();
m_bIsNeedUpdateDetailAttr = false;
}
}
}
public void UpdateRoleDataPacket(GC_RET_ROLE_DATA packet)
{
var _mainPlayer = Singleton<ObjManager>.GetInstance().MainPlayer;
_RoleLevel.text = _mainPlayer.BaseAttr.Level + "";
var attrList = new List<RoleViewAttrPair.AttrPair>();
if (packet.Datatype == 0)
{
// 基础属性
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.CONSTITU,
packet.propList[(int) RoleViewSimple.CONSTITU]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.MORFIB,
packet.propList[(int) RoleViewSimple.MORFIB]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.STRENGTH,
packet.propList[(int) RoleViewSimple.STRENGTH]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.INTELLENG,
packet.propList[(int) RoleViewSimple.INTELLENG]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.AGILE,
packet.propList[(int) RoleViewSimple.AGILE]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.MAXHP,
packet.propList[(int) RoleViewSimple.MAXHP]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.MAXMP,
packet.propList[(int) RoleViewSimple.MAXMP]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.PYSATTACK,
packet.propList[(int) RoleViewSimple.PYSATTACK]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.MAGATTACK,
packet.propList[(int) RoleViewSimple.MAGATTACK]));
attrList.Add(
new RoleViewAttrPair.AttrPair(PropID.PropertyID.HIT, packet.propList[(int) RoleViewSimple.HIT]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.LEVEL,
packet.propList[(int) RoleViewSimple.LEVEL]));
//attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.CUREAMOUNT, packet.propList[(int)RoleViewSimple.CUREAMOUNT]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.PYSDEF,
packet.propList[(int) RoleViewSimple.PYSDEF]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.MAGDEF,
packet.propList[(int) RoleViewSimple.MAGDEF]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.DODGE,
packet.propList[(int) RoleViewSimple.DODGE]));
_SimpleAttrs.InitContentItem(attrList, null, null, OnAttrClick);
}
else
{
// 重要/主要属性
attrList.Clear();
//attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.PROPUSER_EXP, _mainPlayer.BaseAttr.Exp));
//Tab_LevelUp curTabLevelup = TableManager.GetLevelUpByID(_mainPlayer.BaseAttr.Level, 0);
//if (curTabLevelup != null)
//{
// var maxExp = long.Parse(curTabLevelup.ExpNeed);
// attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.LEVEL_UP_EXP, maxExp));
//}
//attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.ACTVAL, packet.propList[(int)RoleViewDetail.ACTVAL]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.PKVAL,
packet.propList[(int) RoleViewDetail.PKVAL]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.LUCKYVAL,
packet.propList[(int) RoleViewDetail.LUCKYVAL]));
_DetailMainAttrs.InitContentItem(attrList, null, null, OnAttrClick);
// 基础属性
attrList.Clear();
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.MAXHP,
packet.propList[(int) RoleViewDetail.MAXHP]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.MAXMP,
packet.propList[(int) RoleViewDetail.MAXMP]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.PYSATTACK,
packet.propList[(int) RoleViewDetail.PYSATTACK]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.MAGATTACK,
packet.propList[(int) RoleViewDetail.MAGATTACK]));
//attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.CUREAMOUNT, packet.propList[(int)RoleViewDetail.CUREAMOUNT]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.PYSDEF,
packet.propList[(int) RoleViewDetail.PYSDEF]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.MAGDEF,
packet.propList[(int) RoleViewDetail.MAGDEF]));
attrList.Add(
new RoleViewAttrPair.AttrPair(PropID.PropertyID.HIT, packet.propList[(int) RoleViewDetail.HIT]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.DODGE,
packet.propList[(int) RoleViewDetail.DODGE]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.CRITICAL,
packet.propList[(int) RoleViewDetail.CRITICAL]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.DECRITICAL,
packet.propList[(int) RoleViewDetail.DECRITICAL]));
_DetailBaseAttrs.InitContentItem(attrList, null, null, OnAttrClick);
// 特殊属性
attrList.Clear();
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.STRIKE,
packet.propList[(int) RoleViewDetail.STRIKE]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.DUCTICAL,
packet.propList[(int) RoleViewDetail.DUCTICAL]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.CRITIADD,
packet.propList[(int) RoleViewDetail.CRITIADD]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.CRITIMIS,
packet.propList[(int) RoleViewDetail.CRITIMIS]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.INGDEF,
packet.propList[(int) RoleViewDetail.INGDEF]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.REDUCEDAM,
packet.propList[(int) RoleViewDetail.REDUCEDAM]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.VOCDAMAGERATE,
CharacterDefine.PROFESSION.TIANJI, packet.propList[(int) RoleViewDetail.VOCDAMAGERATE_TianJi]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.VOCDAMAGERATE,
CharacterDefine.PROFESSION.LIUSHAN, packet.propList[(int) RoleViewDetail.VOCDAMAGERATE_LiuShan]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.VOCDAMAGERATE,
CharacterDefine.PROFESSION.SHUSHAN, packet.propList[(int) RoleViewDetail.VOCDAMAGERATE_ShuShan]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.VOCDAMAGERATE,
CharacterDefine.PROFESSION.XUANNV, packet.propList[(int) RoleViewDetail.VOCDAMAGERATE_XuanNv]));
_DetailSpecilAttrs.InitContentItem(attrList, null, null, OnAttrClick);
// 效果属性
attrList.Clear();
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.DIZZYENHANCE,
packet.propList[(int) RoleViewDetail.DIZZYENHANCE]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.DIZZYEDEF,
packet.propList[(int) RoleViewDetail.DIZZYEDEF]));
//attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.SILENTENHANCE, packet.propList[(int)RoleViewDetail.SILENTENHANCE]));
//attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.SILENTDEF, packet.propList[(int)RoleViewDetail.SILENTDEF]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.IMMOBENHANCE,
packet.propList[(int) RoleViewDetail.IMMOBENHANCE]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.IMMOBDEF,
packet.propList[(int) RoleViewDetail.IMMOBDEF]));
//attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.REPELENHANCE, packet.propList[(int)RoleViewDetail.REPELENHANCE]));
//attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.REPELDEF, packet.propList[(int)RoleViewDetail.REPELDEF]));
//attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.POLYMORPHENHANCE, packet.propList[(int)RoleViewDetail.POLYMORPHENHANCE]));
// attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.POLYMORPHDEF, packet.propList[(int)RoleViewDetail.POLYMORPHDEF]));
//attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.HMENHANCE, packet.propList[(int)RoleViewDetail.HMENHANCE]));
//attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.HMDEF, packet.propList[(int)RoleViewDetail.HMDEF]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.SMENHANCE,
packet.propList[(int) RoleViewDetail.SMENHANCE]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.SMDEF,
packet.propList[(int) RoleViewDetail.SMDEF]));
//attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.SHENHANCE, packet.propList[(int)RoleViewDetail.SHENHANCE]));
//attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.SHDEF, packet.propList[(int)RoleViewDetail.SHDEF]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.HLENHANCE,
packet.propList[(int) RoleViewDetail.HLENCHANCE]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.HLDEF,
packet.propList[(int) RoleViewDetail.HLDEF]));
_DetailEffectAttrs.InitContentItem(attrList, null, null, OnAttrClick);
// 元素属性
attrList.Clear();
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.DGDEF,
packet.propList[(int) RoleViewDetail.DGDEF]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.DGIGNDEF,
packet.propList[(int) RoleViewDetail.DGIGNDEF]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.HUOGDEF,
packet.propList[(int) RoleViewDetail.HUOGDEF]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.HUOGIGNDEF,
packet.propList[(int) RoleViewDetail.HUOGIGNDEF]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.DUGDEF,
packet.propList[(int) RoleViewDetail.DUGDEF]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.DUGIGNDEF,
packet.propList[(int) RoleViewDetail.DUGIGNDEF]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.BGDEF,
packet.propList[(int) RoleViewDetail.BGDEF]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.BGIGNDEF,
packet.propList[(int) RoleViewDetail.BGIGNDEF]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.FGDEF,
packet.propList[(int) RoleViewDetail.FGDEF]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.FGIGNDEF,
packet.propList[(int) RoleViewDetail.FGIGNDEF]));
//attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.GGDEF, packet.propList[(int)RoleViewDetail.GGDEF]));
//attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.GGIGNDEF, packet.propList[(int)RoleViewDetail.GGIGNDEF]));
//attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.HUANGDEF, packet.propList[(int)RoleViewDetail.HUANGDEF]));
//attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.HUANGIFNDEF, packet.propList[(int)RoleViewDetail.HUANGIFNDEF]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.DUGATTACK,
packet.propList[(int) RoleViewDetail.DUGATTACK]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.HUOATTACK,
packet.propList[(int) RoleViewDetail.HUOATTACK]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.BGATTACK,
packet.propList[(int) RoleViewDetail.BGATTACK]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.DGATTACK,
packet.propList[(int) RoleViewDetail.DGATTACK]));
attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.FGATTACK,
packet.propList[(int) RoleViewDetail.FGATTACK]));
//attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.GGATTACK, packet.propList[(int)RoleViewDetail.GGATTACK]));
//attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.HUANGATTACK, packet.propList[(int)RoleViewDetail.HUANGATTACK]));
//attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.HLDEF, packet.propList[(int)RoleViewDetail.HLDEF]));
//attrList.Add(new RoleViewAttrPair.AttrPair(PropID.PropertyID.HUANGIFNDEF, packet.propList[(int)RoleViewDetail.HLIGNDEF]));
_DetailExAttrs.InitContentItem(attrList, null, null, OnAttrClick);
}
}
// 属性点击回调,显示属性说明
public void OnAttrClick(UIBase attrInfoItem)
{
if (attrInfoItem != null)
{
var selectAttr = attrInfoItem as RoleViewAttrPair;
if (selectAttr != null)
{
var info = selectAttr._InitInfo as RoleViewAttrPair.AttrPair;
if (info != null) _AttrDescPanel.ShowAttr((int) info._PropID, selectAttr.transform);
}
}
}
public void UpdateAttrRightView()
{
//战斗力
//m_CombatValueLable.text = m_nCombatValue.ToString();
//等级
//m_LevelValueLable.text = m_nLevel.ToString();
//职业名
var _mainPlayer = Singleton<ObjManager>.GetInstance().MainPlayer;
//name
m_NameLabel.text = GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.RoleName;
//title
m_TitleLabel.text = GameManager.gameManager.PlayerDataPool.TitleInvestitive.GetCurrentTitle();
//GUID
m_GUIDStr = Utils.GetPlayerStringGuid();
m_GUIDValueLable.text = StrDictionary.GetClientDictionaryString("#{6740}", m_GUIDStr);
//血
m_HPValueLable.text = string.Format("{0}/{1}/{2}", Utils.ConvertLargeNumToString(_mainPlayer.BaseAttr.HP),
Utils.ConvertLargeNumToString(_mainPlayer.BaseAttr.MaxHP),
Utils.ConvertLargeNumToString(_mainPlayer.BaseAttr.CurMaxHP));
m_HPSprite.value = _mainPlayer.BaseAttr.HP / (float) _mainPlayer.BaseAttr.MaxHP;
m_HP2Sprite.value = _mainPlayer.BaseAttr.MaxHP / (float) _mainPlayer.BaseAttr.CurMaxHP;
//蓝
m_MPValueLable.text = string.Format("{0}/{1}", Utils.ConvertLargeNumToString(_mainPlayer.BaseAttr.MP),
Utils.ConvertLargeNumToString(_mainPlayer.BaseAttr.MaxMP));
m_MPSprite.value = _mainPlayer.BaseAttr.MP / (float) _mainPlayer.BaseAttr.MaxMP;
//经验
var curTabLevelup = TableManager.GetLevelUpByID(_mainPlayer.BaseAttr.Level);
if (null == curTabLevelup) return;
var maxExp = long.Parse(curTabLevelup.ExpNeed);
m_ExpValueLable.text = string.Format("{0}/{1}", Utils.ConvertLargeNumToString(_mainPlayer.BaseAttr.Exp),
Utils.ConvertLargeNumToString(maxExp));
m_ExpSprite.value = _mainPlayer.BaseAttr.Exp / (float) maxExp;
m_ExExpValueLable.text = Utils.ConvertLargeNumToString(_mainPlayer.BaseAttr.HeadExp);
//UpdateLevelBtn();
}
private string DecimalToTwentySixSB(int num)
{
var result = new StringBuilder();
while (num > 0)
{
var remainder = num % 26;
result.Append((char) (remainder + 97)); //A -> 65
num /= 26;
}
for (var index = 0; index < result.Length / 2; index++)
{
var temp = result[index];
result[index] = result[result.Length - index - 1];
result[result.Length - index - 1] = temp;
}
var str = result.ToString();
return str;
}
public void UpdateCurAttr()
{
var _mainPlayer = Singleton<ObjManager>.GetInstance().MainPlayer;
if (_mainPlayer != null)
{
//血
m_HPValueLable.text = string.Format("{0}/{1}/{2}", Utils.ConvertLargeNumToString(_mainPlayer.BaseAttr.HP),
Utils.ConvertLargeNumToString(_mainPlayer.BaseAttr.MaxHP),
Utils.ConvertLargeNumToString(_mainPlayer.BaseAttr.CurMaxHP));
m_HPSprite.value = _mainPlayer.BaseAttr.HP / (float) _mainPlayer.BaseAttr.MaxHP;
m_HP2Sprite.value = _mainPlayer.BaseAttr.MaxHP / (float) _mainPlayer.BaseAttr.CurMaxHP;
//蓝
m_MPValueLable.text = string.Format("{0}/{1}", Utils.ConvertLargeNumToString(_mainPlayer.BaseAttr.MP),
Utils.ConvertLargeNumToString(_mainPlayer.BaseAttr.MaxMP));
m_MPSprite.value = _mainPlayer.BaseAttr.MP / (float) _mainPlayer.BaseAttr.MaxMP;
//经验
var curTabLevelup = TableManager.GetLevelUpByID(_mainPlayer.BaseAttr.Level);
if (null == curTabLevelup) return;
var maxExp = long.Parse(curTabLevelup.ExpNeed);
m_ExpValueLable.text = string.Format("{0}/{1}", Utils.ConvertLargeNumToString(_mainPlayer.BaseAttr.Exp),
Utils.ConvertLargeNumToString(maxExp));
m_ExpSprite.value = _mainPlayer.BaseAttr.Exp / (float) maxExp;
m_ExExpValueLable.text = Utils.ConvertLargeNumToString(_mainPlayer.BaseAttr.HeadExp);
//UpdateLevelBtn();
}
}
public void UpdateModel()
{
var mainPlayer = Singleton<ObjManager>.GetInstance().MainPlayer;
if (mainPlayer == null)
return;
_UICameraTexture.InitPlayerModel(mainPlayer);
//新增 禁用升级按钮
//_BtnLevelUp.enabled = false;
}
#endregion
#region title
public void OnTitleClick()
{
UIManager.ShowUI(UIInfo.TitleView);
}
public void OnBtnCopyGuid()
{
CommonUtility.ToCopyClip(m_GUIDStr);
}
public void AfterLoadTitleItem()
{
}
#endregion
#region jifen
public UIContainerBase _JifenShops;
public void InitJifenPanel()
{
var jifenInfos = new List<RoleViewJifenItem.JifenInfo>();
//获取全部的积分信息
var m_AllRoleIntegral = TableManager.GetRoleIntegral().Values;
foreach (var roleIntegral in m_AllRoleIntegral)
{
var jifenInfo = new RoleViewJifenItem.JifenInfo();
jifenInfo.name = roleIntegral.IntegralName;
jifenInfo.IntegralShopId = roleIntegral.IntegralShopId;
var shop = TableManager.GetSystemShopByID(roleIntegral.IntegralShopId);
if (shop != null)
{
var curConsumeType = shop.GetMoneyTypebyIndex(0);
var consumeSubType = shop.GetMoneySubTypebyIndex(0);
switch (curConsumeType)
{
case (int) CONSUM_TYPE.MONEY:
{
switch (consumeSubType)
{
case (int) MONEYTYPE.MONEYTYPE_COIN:
jifenInfo.value = GameManager.gameManager.PlayerDataPool.Money.GetMoney_Coin();
break;
case (int) MONEYTYPE.MONEYTYPE_YUANBAO:
jifenInfo.value = GameManager.gameManager.PlayerDataPool.Money.GetMoney_YuanBao();
break;
case (int) MONEYTYPE.MONEYTYPE_YUANBAO_BIND:
jifenInfo.value = GameManager.gameManager.PlayerDataPool.Money.GetMoney_YuanBaoBind();
break;
case (int) MONEYTYPE.MONEYTYPE_COIN_BIND:
jifenInfo.value = GameManager.gameManager.PlayerDataPool.Money.GetMoney_CoinBind();
break;
case (int) MONEYTYPE.MONEYTYPE_USERCHALLENGE:
jifenInfo.value =
GameManager.gameManager.PlayerDataPool.Money.GetMoney_ChallengeScore();
break;
case (int) MONEYTYPE.MONEYTYPE_SNATCHSCORE:
jifenInfo.value = GameManager.gameManager.PlayerDataPool.Money.GetMoney_SnatchScore();
break;
}
}
break;
case (int) CONSUM_TYPE.PROPVAL:
jifenInfo.value =
GameManager.gameManager.PlayerDataPool.GetPropInt((PropID.PropertyID) consumeSubType);
break;
case (int) CONSUM_TYPE.SCORE:
if ((int) SCORE_TYPE.GUILD_SCORE == consumeSubType)
jifenInfo.value = GameManager.gameManager.PlayerDataPool.GuildInfo.GuildContribute;
break;
}
}
else
{
jifenInfo.value = 0;
}
jifenInfo.shopId = roleIntegral.IntegralShopId;
jifenInfo.icon = roleIntegral.IntegralIcon;
//jifenInfo.dayValue = roleIntegral.Value[0].IntegralDayLimit; //需要同步已经兑换的次数
//jifenInfo.dayMax = roleIntegral.Value[0].IntegralDayLimit; //每天限制兑换的次数
jifenInfos.Add(jifenInfo);
}
_JifenShops.InitContentItem(jifenInfos);
}
#endregion
#region Server level
public Button _BtnLevelUp;
private bool _IsMaxLvCap;
private int _CurLvCap = 69;
private int _CurLvExBuff;
private DateTime _NextLvCapRemain;
private int _LevelCap = 0;
private int _nextlvlcapremain;
private void InitServerLevel()
{
var packet = (CG_REQ_SERVER_LVL_CAP) PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_SERVER_LVL_CAP);
packet.Noparam = 1;
packet.SendPacket();
//UpdateLevelBtn();
}
//public NewRanlnfoItem NewRanlnfoItem;
public void UpdateServerLevel(GC_RET_SERVER_LVL_CAP packet)
{
_IsMaxLvCap = packet.Ismaxlvlcap > 0;
_CurLvCap = packet.Curlvlcap;
_CapLevel.text = _CurLvCap + "";
//_LevelCap = packet.nextlvlcapremain;
_nextlvlcapremain = packet.Nextlvlcapremain;
_CurLvExBuff = packet.Myexpbuff;
LogModule.DebugLog("packet.Nextlvlcapremain:" + packet.Nextlvlcapremain);
LogModule.DebugLog("server time:" + GlobalData.ServerAnsiTime);
_NextLvCapRemain = Utils.GetServerDateTime(packet.Nextlvlcapremain);
}
//public void UpdateLevelBtn()
//{
////隐藏升级按钮
//if (_BtnLevelUp.isActiveAndEnabled)
// _BtnLevelUp.gameObject.SetActive(false);
//Tab_LevelUp curTabLevelup = TableManager.GetLevelUpByID(GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level, 0);
//if (null == curTabLevelup)
//{
// return;
//}
//var maxExp = long.Parse(curTabLevelup.ExpNeed);
//if (GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Exp < maxExp)
// _BtnLevelUp.gameObject.SetActive(false);
//else
// _BtnLevelUp.gameObject.SetActive(true);
//}
public void OnBtnServerLvClick()
{
#region
//string serverTip = StrDictionary.GetClientDictionaryString("#{4800}", _CurLvExBuff, _CurLvCap, _nextlvlcapremain + "");
//MessageBoxLogic.OpenOKBox(serverTip);
//List<int> LevelCapList = new List<int>();
//foreach (var serverLv in TableManager.GetServerLvlCap().Values)
//{
// LevelCapList.Add(serverLv.LevelCap);
// Debug.LogError(GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level + " 是玩家当前等级吗?");
// if (GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level <= LevelCapList[0])
// {
// Debug.LogError(LevelCapList[0] + " 是 89 吗?");
// }
// string serverTip = StrDictionary.GetClientDictionaryString("#{4800}", _CurLvExBuff, _CurLvCap, serverLv.LevelCap + "");
// MessageBoxLogic.OpenOKBox(serverTip);
//}
#endregion
if (_nextlvlcapremain < 50)
{
var serverTip = StrDictionary.GetClientDictionaryString("#{4801}", _CurLvExBuff, _CurLvCap);
MessageBoxLogic.OpenOKBox(serverTip);
}
else
{
//string dataTime = string.Format("{0:yyyy年MM月dd日 HH:mm}", _NextLvCapRemain);
var serverTip =
StrDictionary.GetClientDictionaryString("#{4800}", _CurLvExBuff, _CurLvCap, _nextlvlcapremain + 1 + "");
MessageBoxLogic.OpenOKBox(serverTip);
}
}
#region
/// <summary>
/// 手动升级
/// </summary>
//public void OnBtnLevelUp()
//{
// Tab_LevelUp curTabLevelup = TableManager.GetLevelUpByID(GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level, 0);
// if (null == curTabLevelup)
// {
// return;
// }
// var nextLevelNeedExp = long.Parse(curTabLevelup.ExpNeed);
// var hasFind = false;
// foreach (var serverLv in TableManager.GetServerLvlCap().Values)
// {
// if (GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level == serverLv.LevelCap - 1)
// {
// hasFind = true;
// if (GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Exp < nextLevelNeedExp)
// {
// GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{4807}"));
// return;
// }
// MessageBoxLogic.OpenOKCancelBox(serverLv.GetLvUpStrbyIndex(0), "", OnBtnLevelUpOk);
// return;
// }
// else if (GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level == serverLv.LevelCap)
// {
// hasFind = true;
// if (GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Exp < nextLevelNeedExp)
// {
// GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{4807}"));
// return;
// }
// MessageBoxLogic.OpenOKCancelBox(serverLv.GetLvUpStrbyIndex(1), "", OnBtnLevelUpOk);
// return;
// }
// }
// //没有达到封印等级提示
// if (!hasFind)
// GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{4806}"));
//}
#endregion
public void OnBtnLevelUpOk()
{
var packet = (CG_REQ_LVL_UP) PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_LVL_UP);
packet.Noparam = 1;
packet.SendPacket();
}
public void OnBtnHelp(int helpMsgID)
{
MessageHelpLogic.ShowHelpMessage(helpMsgID);
}
#endregion
}