Files
JJBB/Assets/Project/Script/Player/BaseAttr/BaseAttr.cs

434 lines
10 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00
/********************************************************************************
* 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; }
}
}