434 lines
10 KiB
C#
434 lines
10 KiB
C#
|
/********************************************************************************
|
|||
|
* 文件名: 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; }
|
|||
|
}
|
|||
|
}
|