예제 #1
0
    /// <summary>
    /// 外部调用的话 只针对自己的Buff
    /// </summary>
    /// <param name="buffs">Buffs.</param>
    /// <param name="bulletID">Bullet I.</param>
    public void applyBuff_Src(List <BuffCtrl> buffs, int bulletID)
    {
        //添加buff,trigger是buff的施加者
        for (int i = 0; i < buffs.Count; i++)
        {
            BuffCtrl each = buffs [i];
            //如果是指定的施加者相同并且施加者的目标包含buff的使用者
            each.owner.characterCtrl.AddBuff(each);

            // 如果是伤害buff,需要根据ID号激活,为了细分伤害
            if (each.serverData.sample.getType() == BuffType.damage)
            {
                if (bulletID == 0 || bulletID == each.bulletID || each.trigger == each.owner)
                {
                    //激活相同ID的伤害buff,0全激活
                    each.activeDamageBuff(bulletID);
                }
                else
                {
                    continue;
                }
            }
            else
            {
                each.activeOtherBuff();                                     //激活buff
            }
            each.owner.characterCtrl.BeHit(serverData.sample.CanHitBack()); //引爆伤害
        }
    }
예제 #2
0
 /// <summary>
 /// 加召唤兽怒气
 /// </summary>
 public void applyMonsterBuffOnly(CharacterData trigger)
 {
     //trigger是buff的施加者
     for (int i = 0; i < trigger.characterCtrl.activeAction.Skill.buffs.Count; i++)
     {
         BuffCtrl each = trigger.characterCtrl.activeAction.Skill.buffs [i];
         //如果是指定的施加者相同并且施加者的目标包含buff的使用者
         if (each.serverData.sample.getType() == BuffType.power)
         {
             each.activeOtherBuff();
         }
     }
 }