Exemplo n.º 1
0
            public BuffContainerWrapper(IBuffContainer pBuffContainer)
            {
                this.pBuffContainer = pBuffContainer;
                this.bIsEternal     = false;

                DoReset();
            }
Exemplo n.º 2
0
 //检查是否含有特定效果
 public static bool ContainEffect(IBuffContainer c, eBuff_Effect id)
 {
     foreach (Buff item in c.getBuffList())
     {
         if (item.my_buff_info.effect == id)
         {
             return(true);
         }
     }
     return(false);
 }
Exemplo n.º 3
0
        public static List <Buff> getBuff_by_ID(IBuffContainer c, eBuff_Effect id)
        {
            List <Buff> res = new List <Buff>();

            foreach (Buff item in c.getBuffList())
            {
                if (item.my_buff_info.effect == id)
                {
                    res.Add(item);
                }
            }
            return(res);
        }
Exemplo n.º 4
0
        /* 单个效果的触发 可以直接通过analyse执行效果
         * 这里主要提供群体触发,机会回合切换等时间。(加入有什么效果的事件是其他技能发动时,也可以加,呜噗噗噗噗噗)
         */
        public static void dealBuff(IBuffContainer container, bool run_delete, eBuffEvent buff_event)
        {
            List <Buff> dead_list = new List <Buff>();   //删除标记
            List <Buff> dick      = container.getBuffList();

            foreach (Buff buff in dick)
            {
                analyseBuff_Effect(buff, buff_event);


                // 删除检查&标记
                if (run_delete)
                {
                    buff.my_Duration--;
                    if (buff.my_Duration <= 0)
                    {
                        dead_list.Add(buff);
                        analyseBuff_Effect(buff, eBuffEvent.Buff_Remove);

                        // TODO 删除特效
                        for (int i = buff.vfx_duration.Count - 1; i >= 0; i--)
                        {
                            UnityEngine.Object.Destroy(buff.vfx_duration[i]);
                        }
                    }
                }
            }

            //执行删除
            foreach (Buff i in dead_list)
            {
                if (container.getBuffList().Contains(i))
                {
                    container.getBuffList().Remove(i);
                }
            }
        }