Exemple #1
0
        public int AddBuff(BuffParam param)
        {
            if (param.templateID <= 0)
            {
                return((int)BuffDefines.ActionReult.Act_ParamError);
            }

            Buff_Tbl buffTbl = TemplatePool.Instance.GetDataByKey <Buff_Tbl>(param.templateID);

            if (null == buffTbl)
            {
                return((int)BuffDefines.ActionReult.Act_CfgError);
            }

            // firstly cover same series
            foreach (var value in m_buffList.Values)
            {
                if (null == value)
                {
                    continue;
                }

                Buff_Tbl buffTemp = value.GetTemplate();
                if (buffTemp.buffType == buffTbl.buffType)
                {
                    if ((int)BuffDefines.CoverType.Cover == buffTbl.coverType)
                    {
                        CoverBuff(value, param);
                        return((int)BuffDefines.ActionReult.Act_Success);
                    }
                }
            }

            return(DoAddBuff(param));
        }
Exemple #2
0
        public int AddBuff(int ownerID, BuffParam param)
        {
            BuffSet buffset = this.FindBuffSet(ownerID);

            if (null == buffset)
            {
                buffset = new BuffSet();
                buffset.Init(ownerID);
            }

            return(buffset.AddBuff(param));
        }
Exemple #3
0
        private int DoAddBuff(BuffParam param)
        {
            Buff buff = this.GetFreeInst();

            if (buff != null)
            {
                buff.Init(++m_idCounter, param);

                buff.Pile();

                return((int)BuffDefines.ActionReult.Act_Success);
            }

            return((int)BuffDefines.ActionReult.Act_Falied);
        }
Exemple #4
0
 private void CoverBuff(Buff oldBuff, BuffParam param)
 {
     RemoveBuff(oldBuff.GetID());
     DoAddBuff(param);
 }