Files
JJBB/Assets/Project/Script/Player/BaseAttr/BaseAttr.cs
2024-08-23 15:49:34 +08:00

434 lines
10 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/********************************************************************************
* 文件名: 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; }
}
}