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

157 lines
4.0 KiB
C#

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
namespace Games.ImpactModle
{
public enum BUFFICON
{
MAX_BUFFICONUM = 5, //主角头像显示的最大buff 图标位 加一个宠物Buff 但是最多只能显示4个buff
}
public enum BUFFTYPE
{
DEBUFF =0, //减益BUFF
BUFF =1,//增益BUFF
}
//玩家身上的一些buff产生的效果
public enum DISABLESTATE
{
None = -1,
Disable_UseSkill = 0, //不能使用技能
Disable_Move, //不能移动
Disable_Select, //不能选择目标
GodState, //无敌状态
StealState, //隐身状态
TauntState, //嘲讽状态
BlackScreen, //黑屏状态
Chaos, //混乱
Disable_BeSelect, // 不可被选中状态
}
public class ImpactInfo
{
public void CleanUp()
{
m_nHandleId = 0;
m_nIsForever = false;//Buff 是否永久
m_nRemainTime = 0;//Buff 剩余时间(单位s)
m_nAddnum = 0; //叠加个数
}
private uint m_nHandleId;//Buff Id
public uint HandleId
{
get { return m_nHandleId; }
set { m_nHandleId = value; }
}
private bool m_nIsForever;//Buff 是否永久
public bool IsForever
{
get { return m_nIsForever; }
set { m_nIsForever = value; }
}
private float m_nRemainTime;//Buff 剩余时间(单位s)
public float RemainTime
{
get { return m_nRemainTime; }
set { m_nRemainTime = value; }
}
private int m_nAddnum;
public int AddNum
{
get { return m_nAddnum; }
set { m_nAddnum = value; }
}
}
public class ClientImpactInfo
{
public string m_BuffDescribe = "";
public void CleanUp()
{
m_nImpactId =-1;//Buff Id
m_BuffDescribe = "";
}
List<ImpactInfo> m_ImpactInfos = new List<ImpactInfo>();
public void RemoveBuff(uint handleId)
{
for (int i = 0; i < m_ImpactInfos.Count; i++)
{
if (m_ImpactInfos[i].HandleId == handleId)
{
m_ImpactInfos.RemoveAt(i);
break;
}
}
}
public void AddBuff(ImpactInfo impact)
{
for(int i=0;i< m_ImpactInfos.Count;i++)
{
if(m_ImpactInfos[i].HandleId == impact.HandleId)
{
m_ImpactInfos.RemoveAt(i);
break;
}
}
m_ImpactInfos.Add(impact);
}
public bool IsVaild()
{
return (m_nImpactId != -1 && m_ImpactInfos.Count > 0);
}
private int m_nImpactId;//Buff Id
public int ImpactId
{
get { return m_nImpactId; }
set { m_nImpactId = value; }
}
public bool IsForever
{
get
{
for (int i = 0; i < m_ImpactInfos.Count; i++)
{
if (m_ImpactInfos[i].IsForever == true)
return true;
}
return false;
}
}
public int AddNum
{
get
{
int num = 0;
for (int i = 0; i < m_ImpactInfos.Count; i++)
{
num += m_ImpactInfos[i].AddNum;
}
return num;
}
}
public float RemainTime
{
get
{
float remain = 0;
for (int i = 0; i < m_ImpactInfos.Count; i++)
{
if (remain < m_ImpactInfos[i].RemainTime)
remain = m_ImpactInfos[i].RemainTime;
}
return remain;
}
}
}
}