/******************************************************************************** * 文件名: BaseAttr.cs * 全路径: \Script\Player\BaseAttr.cs * 创建人: 李嘉 * 创建时间:2013-11-20 * * 功能说明:Obj基础战斗属性,以及基础属性换算公式 * 修改记录: *********************************************************************************/ using GCGame.Table; using UnityEngine.Events; public enum SKILLDELANDGAINTYPE //技能的消耗和收益 { HPTYPE_INVAILID =-1, HPTYPE_VALUE =101,//血值 HPTYPE_RATE =102,//血百分百 MPTYPE_VALUE = 201,//蓝值 MPTYPE_RATE = 202,//蓝百分百 XPTYPE_VALUE = 301,//战意值 XPTYPE_RATE = 302,//战意百分百 COINTYPE =401,//金币 } public enum COMBATATTE { MAXHP =0, //血上限 MAXMP =1, //蓝上限 MAXXP =2, //战意上限 PYSATTACK =3, //物理攻击 MAGATTACK =4, //魔法攻击 PYSDEF =5, //物理防御 MAGDEF =6, //魔法防御 HIT =7, //命中 DODGE =8, //闪避 CRITICAL =9, //暴击 DECRITICAL =10, //暴抗 STRIKE =11, //穿透 DUCTICAL =12, //韧性 CRITIADD =13, //暴击伤害加成 CRITIMIS =14, //暴击伤害减免 MOVESPEED =15, //移动速度 ATTACKSPEED =16, //攻击速度 COMBATATTE_MAXNUM, } public enum MIXBATATTR { MIXATTR_BEGIN = 999, MIXATTR_ALLATTACK = 1000, MIXATTR_ALLDEF = 1001, } public class MaxBatAttrUtil { public static bool IsContainType(MIXBATATTR nMixType, COMBATATTE nJudgeAttrType) { switch (nMixType) { case MIXBATATTR.MIXATTR_ALLDEF: { if (nJudgeAttrType == COMBATATTE.PYSDEF || nJudgeAttrType == COMBATATTE.MAGDEF) { return true; } } break; case MIXBATATTR.MIXATTR_ALLATTACK: { if (nJudgeAttrType == COMBATATTE.PYSATTACK || nJudgeAttrType == COMBATATTE.MAGATTACK) { return true; } } break; default: break; } return false; } } public class BaseAttr { //生命值 private long m_nHP = 0; public long HP { get { return m_nHP; } set { m_nHP = value; } } private long m_nMaxHP = 0; public long MaxHP { get { return m_nMaxHP; } set { m_nMaxHP = value; } } private long m_nCurMaxHP = 0; public long CurMaxHP { get { return m_nCurMaxHP; } set { m_nCurMaxHP = value; } } //法力值 private int m_nMp = 0; public int MP { get { return m_nMp; } set { m_nMp = value; } } //跨服声望 private int m_nCrossServerScore = 0; public int CrossServerScore { get { return m_nCrossServerScore; } set { m_nCrossServerScore = value; } } private int m_nMaxMp = 0; public int MaxMP { get { return m_nMaxMp; } set { m_nMaxMp = value; } } //战意 private int m_nXp = 0; public int XP { get { return m_nXp; } set { m_nXp = value; } } private int m_nMaxXp = 0; public int MaxXP { get { return m_nMaxXp; } set { m_nMaxXp = value; } } public long Exp { set; get; } public long HeadExp { set; get; } public long SkillExp { set; get; } public float Xiewei { set; get; } //名字 private string m_RoleName = ""; public string RoleName { get { return m_RoleName; } set { m_RoleName = value; } } //称号 private string m_TitleName; public string TitlenName { set { GameManager.gameManager.PlayerDataPool.TitleInvestitive.SetTitleName(value); } get { return GameManager.gameManager.PlayerDataPool.TitleInvestitive.GetCurrentTitle(); } } //等级 private int m_nLevel = 0; public int Level { get { return m_nLevel; } set { m_nLevel = value; } } //职业 private int _Profession = 0; public int Profession { get { return _Profession; } set { _Profession = value; } } // 头像 private string m_strHeadPic = ""; public string HeadPic { get { return m_strHeadPic; } set { m_strHeadPic = value; } } //数据表ID,既RoleBase中的ID private int m_nRoleBaseID = -1; public int RoleBaseID { get { return m_nRoleBaseID; } set { m_nRoleBaseID = value; } } // 数据表,延迟初始化 public Tab_RoleBaseAttr RoleData { get { return _roleData ?? (_roleData = TableManager.GetRoleBaseAttrByID(RoleBaseID, 0)); } } private Tab_RoleBaseAttr _roleData; //玩家支付的数目 private int m_PayCout; public int PayCount { set { m_PayCout = value; } get { return m_PayCout; } } //玩家已花费的灵玉 private int m_JadgeCost; public int JadgeCost { set { m_JadgeCost = value; } get { return m_JadgeCost; } } //玩家已经登录的天数 private int m_LoginDays; public int LoginDays { set { m_LoginDays = value; } get { return m_LoginDays; } } //补签次数 private int m_RecheckNum; public int RecheckNum { set { m_RecheckNum = value; } get { return m_RecheckNum; } } //可否再领一次奖(在线签到) private int m_TimeDouble; public int TimeDouble { set { m_TimeDouble = value; } get { return m_TimeDouble; } } //进阶翅膀ID private int m_AdvanceWingId; public int AdvanceWingId { set { m_AdvanceWingId = value; } get { return m_AdvanceWingId; } } //神兵ID private int m_AdvanceGodweaponId; public int AdvanceGodweaponId { set { m_AdvanceGodweaponId = value; } get { return m_AdvanceGodweaponId; } } //暗器ID private int m_AdvanceWishId; public int AdvanceWishId { set { m_AdvanceWishId = value; } get { return m_AdvanceWishId; } } //Seal玉玺 private int m_AdvanceSealId; public int AdvanceSealId { get { return m_AdvanceSealId; } set { m_AdvanceSealId = value; } } //Mask面具 private int m_AdvanceMaskId; public int AdvanceMaskId { set { m_AdvanceMaskId = value; } get { return m_AdvanceMaskId; } } //Crown皇冠 private int m_AdvanceCrownId; public int AdvanceCrownId { set { m_AdvanceCrownId = value; } get { return m_AdvanceCrownId; } } //队长福利等级 private int m_CaptainWelfareLevel; public int CaptainWelfareLevel { get { return m_CaptainWelfareLevel; } set { m_CaptainWelfareLevel = value; } } private int m_nPkValue = 0; public int PKValue { get { return m_nPkValue; } set { m_nPkValue = value; } } private int m_nForce = -1; public int Force { get { return m_nForce; } set { m_nForce = value; if (CaptureFlagStatePanelCtr.Instance && CaptureFlagStatePanelCtr.Instance.isActiveAndEnabled) CaptureFlagStatePanelCtr.Instance.SetCampMark(); } } private int m_nWarForce = 0; public int WarForce //用来把判断是否是在战场 不是0表示是在战场 并且和主角相同表示是在同一个阵营 { get { return m_nWarForce; } set { m_nWarForce = value; } } //比武积分 private int m_FightScore; public int FightScore { set { m_FightScore = value; } get { return m_FightScore; } } //情义积分 private int m_QingYiScore; public int QingYiScore { set { m_QingYiScore = value; } get { return m_QingYiScore; } } //受赠积分 private int m_ShouZengScore; public int ShouZengScore { get { return m_ShouZengScore; } set { m_ShouZengScore = value; } } private float m_fMoveSpeed = 5.0f; public float MoveSpeed { get { #if UNITY_ANDROID return m_fMoveSpeed - 0.1f; #else return m_fMoveSpeed; #endif } set { if (m_fMoveSpeed != value) { m_fMoveSpeed = value; if (onMoveSpeedUpdate != null) onMoveSpeedUpdate(); } } } /// <summary> /// 移动速度被修改事件 /// </summary> // 注:暂时采用事件抛出的方式来通知角色需要更新速度 public UnityAction onMoveSpeedUpdate; //死亡状态 public bool Die { get; set; } //朝向 private float m_fDirection = 0.0f; public float Direction { get { return m_fDirection; } set { m_fDirection = value; } } //战斗力 private int m_nCombatValue = 0; public int CombatValue { get { return m_nCombatValue; } set { m_nCombatValue = value; } } //装备总评分 装备基础评分+宝石+强化 private int m_EquipTotalCombatValue = 0; public int EquipTotalCombatValue { set { m_EquipTotalCombatValue = value; } get { return m_EquipTotalCombatValue; } } //每日活力 private int m_DailyActivityVal = 0; public int DailyActivityVal { set { m_DailyActivityVal = value; } get { return m_DailyActivityVal; } } //体能 private int m_nCurStamina = 0; public int CurStamina { get { return m_nCurStamina; } set { m_nCurStamina = value; } } private int m_nOffLineExp = 0; public int OffLineExp { get { return m_nOffLineExp; } set { m_nOffLineExp = value; } } //学会的轻功技能等级 private int m_nLightSkillLevel = 0; public int LightSkillLevel { get { return m_nLightSkillLevel; } set { m_nLightSkillLevel = value; } } private ulong _Guid = 0; public ulong Guid { get { return _Guid; } set { _Guid = value; } } }