123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256 |
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
- namespace YLBattle
- {
- /// <summary>
- /// buff
- /// </summary>
- public partial class LogicFighter
- {
- /// <summary>
- /// 已获得buff 【tid,iid】
- /// </summary>
- private Dictionary<string, int> mBuffs_Data = new Dictionary<string, int>();
- /// <summary>
- /// buff相关属性
- /// </summary>
- private int[] mBuffProperty = new int[(int)EBuffEffect.EBUFF_EFFECT_MAX];
- /// <summary>
- /// 增加buff
- /// </summary>
- /// <param name="tid">模板TID</param>
- /// <param name="iid">实例IID</param>
- public int GetLastBuff(string tid, int iid)
- {
- int lastIID = -1;
- if (this.mBuffs_Data.ContainsKey(tid))
- {
- lastIID = this.mBuffs_Data[tid];
- this.mBuffs_Data[tid] = iid;
- }
- else
- {
- this.mBuffs_Data.Add(tid, iid);
- }
- return lastIID;
- }
- /// <summary>
- /// 获取所以buff<tid,iid>
- /// </summary>
- /// <returns>已获得buff 【tid,iid】</returns>
- public Dictionary<string, int> GetAllBuff()
- {
- return this.mBuffs_Data;
- }
- /// <summary>
- /// 获取指定buff效果
- /// </summary>
- /// <param name="indx">buff效果索引</param>
- /// <returns>对应数值</returns>
- public int GetBuffEffectProperty(EBuffEffect indx)
- {
- return this.mBuffProperty[(int)indx];
- }
- /// <summary>
- /// 修改指定buff效果值
- /// </summary>
- /// <param name="indx">buf效果索引</param>
- /// <param name="val">修改值</param>
- public void ModifyBuffEffectProperty(EBuffEffect indx, int val)
- {
- this.mBuffProperty[(int)indx] += val;
- }
- /// <summary>
- /// 设置指定buff效果值
- /// </summary>
- /// <param name="indx">buff效果索引</param>
- /// <param name="val">新值</param>
- public void SetBuffEffectProperty(EBuffEffect indx, int val)
- {
- this.mBuffProperty[(int)indx] = val;
- }
- #region 2017-09-24
- /// <summary>
- /// 获得自身正在生效的buff类型(Tid)的执行参数
- /// 格式{"iid1;parm|iid2;parm"}
- /// 备足:parm存在逗号','
- /// </summary>
- /// <returns></returns>
- //public List<LogicFighterBuff> GetBuffEffectParm(EBuffEffect eid)
- //{
- // List<LogicFighterBuff> result = new List<LogicFighterBuff>();
- // foreach (LogicFighterBuff buff in this.mBuffs_Data.Values)
- // {
- // if (buff.Effect == eid)
- // {
- // result.Add(buff);
- // if (eid == EBuffEffect.EBUFF_EFFECT_Shield)
- // continue;
- // if (eid == EBuffEffect.EBUFF_EFFECT_TAUNT)
- // continue;
- // }
- // }
- // return result;
- //}
- /// <summary>
- /// 检测同类型的Buff(根据Layer数值判断)是否可叠加【二级检测】
- /// </summary>
- /// <param name="BuffTid"></param>
- /// <returns></returns>
- //public bool CheckBuffLayer(string BuffTid)
- //{
- // /**
- // * 类型冲突,主要是参考bufftid....(非effect)
- // * ///A:如果是大于1,则为同款[叠加]
- // * ///B:如果为等于1,则为[替换],参数[更新]
- // */
- // if (this.mBuffs_Layer.ContainsKey(BuffTid))
- // {
- // if (this.mBuffs_Layer[BuffTid] + 1 > mBuffs_MaxLayer[BuffTid])
- // {
- // LogHelper.Log("**********************模板TID:"+BuffTid+" 当前层:"+this.mBuffs_Layer[BuffTid]+"最大层:"+mBuffs_MaxLayer[BuffTid].ToString());
- // return false;
- // }
- // }
- // return true;
- //}
- /// <summary>
- /// 检测冲突【优先检测】
- /// </summary>
- /// <param name="chongtu"></param>
- /// <returns></returns>
- //public int CheckBuffChongTu(string chongtu)
- //{
- // int resultIID = -1;
- // /**
- // * 冲突
- // * A:同ID的buff,根据layer数值来判断是否可叠加
- // * B:不同的ID的buff,根据chongtu数值判断是否可替换
- // * {替换:无视上一个buff的层数,直接替换}
- // */
- // if (chongtu == "" || chongtu == string.Empty || chongtu.Trim().Length <= 0)
- // {
- // return resultIID;
- // }
- // if (this.mBuffs_ChongTu.ContainsKey(chongtu))
- // {
- // resultIID= this.mBuffs_ChongTu[chongtu];
- // this.mBuffs_ChongTu.Remove(chongtu);
- // }
- // return resultIID;
- //}
- /// <summary>
- /// 获得自身正在生效的buff类型(Tid)的层
- /// </summary>
- /// <param name="iid"></param>
- /// <returns></returns>
- //public int GetBuffLayer(string tid)
- //{
- // int result = -1;
- // if (this.mBuffs_Layer.ContainsKey(tid))
- // {
- // result = this.mBuffs_Layer[tid];
- // }
- // return result;
- //}
- /// <summary>
- /// 获得自身正在生效的buff类型(Tid)的触发参数
- /// 格式{"iid1;parm|iid2;parm"}
- /// 备足:parm存在逗号','
- /// </summary>
- /// <returns></returns>
- //public string GetBuffTriggerParm(EBuffEffect eid)
- //{
- // string result = "-1";
- // foreach (LogicFighterBuff buff in this.mBuffs_Data.Values)
- // {
- // if (buff.Effect == eid)
- // {
- // return buff.TriggerParm;
- // }
- // }
- // return result;
- //}
- /// <summary>
- /// 更新buff【外部】触发参数
- /// 供BUFF外部【角色/技能/其他】调用
- /// </summary>
- /// <param name="iid"></param>
- /// <param name="parm"></param>
- //public void ModifyBuffTriggerParm(int iid, string parm)
- //{
- // if (this.mBuffs_Data.ContainsKey(iid))
- // {
- // this.mBuffs_Data[iid].TriggerParm = parm;
- // }
- //}
- /// <summary>
- /// 更新buff【外部】执行参数
- /// 供BUFF外部【角色/技能/其他】调用
- /// </summary>
- /// <param name="iid"></param>
- /// <param name="parm"></param>
- //public LogicFighterBuff ModifyBuffEffectParm(int iid, string parm)
- //{
- // if (this.mBuffs_Data.ContainsKey(iid))
- // {
- // this.mBuffs_Data[iid].EffectParm = parm;
- // return this.mBuffs_Data[iid];
- // }
- // return null;
- //}
- ///// <summary>
- ///// 获取指定buff效果
- ///// </summary>
- ///// <param name="indx">buff效果索引</param>
- ///// <returns>对应数值</returns>
- //public int GetBuffEffectProperty(EBuffEffect indx)
- //{
- // return this.mBuffProperty[(int)indx];
- //}
- ///// <summary>
- ///// 修改指定buff效果值
- ///// </summary>
- ///// <param name="indx">buf效果索引</param>
- ///// <param name="val">修改值</param>
- //public void ModifyBuffEffectProperty(EBuffEffect indx, int val)
- //{
- // this.mBuffProperty[(int)indx] += val;
- //}
- ///// <summary>
- ///// 设置指定buff效果值
- ///// </summary>
- ///// <param name="indx">buff效果索引</param>
- ///// <param name="val">新值</param>
- //public void SetBuffEffectProperty(EBuffEffect indx, int val)
- //{
- // this.mBuffProperty[(int)indx] = val;
- //}
- #endregion
- }
- }
|