Esempio n. 1
0
    public override IEnumerator DoSkillLogic()
    {
        yield return(MoveToTarget());

        bool allDie = false;

        for (int i = 0; i < 6; i++)
        {
            yield return(MoveSkillOB(() =>
            {
                SkillAttackDamage damage = new SkillAttackDamage(0, 0.5f, 0);
                AttackInfo info = AttackTarget(damage);
                if (info.die)
                {
                    List <BaseCharacterEntity> list = GetRandomEnemy(1);
                    if (list.Count > 0)
                    {
                        selfOnly.ActionTarget = list[0] as CharacterEntity;
                    }
                    else
                    {
                        allDie = true;
                    }
                }
            }));

            if (allDie)
            {
                break;
            }
        }
        yield return(MoveToSelfPos());
    }
Esempio n. 2
0
 public override IEnumerator DoSkillLogic()
 {
     yield return(MoveSkillOB(() =>
     {
         SkillAttackDamage damage = new SkillAttackDamage(0, 1.5f, 1.5f);
         AttackTarget(damage);
     }));
 }
Esempio n. 3
0
 public virtual AttackInfo AttackTarget(SkillAttackDamage atkAttackDamage, CharacterEntity targetEntity = null)
 {
     if (targetEntity == null)
     {
         targetEntity = selfOnly.ActionTarget;
     }
     return(selfOnly.Attack(targetEntity, atkAttackDamage.GetPAtkDamageRate(), atkAttackDamage.GetMAtkDamageRate(), atkAttackDamage.hitCount, (int)atkAttackDamage.GetFixDamage()));
 }
Esempio n. 4
0
 /// <summary>
 /// 直接攻击目标,不需要移动过去
 /// </summary>
 /// <param name="atkAttackDamage"></param>
 /// <param name="targetEntity"></param>
 /// <returns></returns>
 public virtual IEnumerator PatkImmediate(SkillAttackDamage atkAttackDamage, CharacterEntity targetEntity = null)
 {
     if (targetEntity == null)
     {
         targetEntity = selfOnly.ActionTarget;
     }
     selfOnly.Attack(targetEntity, atkAttackDamage.GetPAtkDamageRate(), atkAttackDamage.GetMAtkDamageRate(), atkAttackDamage.hitCount, (int)atkAttackDamage.GetFixDamage());
     yield return(null);
 }
Esempio n. 5
0
    /// <summary>
    /// 移动到指定目标旁边并攻击
    /// </summary>
    /// <param name="atkAttackDamage"></param>
    /// <param name="targetEntity"></param>
    /// <returns></returns>
    public virtual IEnumerator Patk(SkillAttackDamage atkAttackDamage, CharacterEntity targetEntity = null)
    {
        if (targetEntity == null)
        {
            targetEntity = selfOnly.ActionTarget;
        }
        yield return(selfOnly.MoveTo(targetEntity.CastedFormation.GetTarget2Position(targetEntity.Position), 1));

        selfOnly.Attack(targetEntity, atkAttackDamage.GetPAtkDamageRate(), atkAttackDamage.GetMAtkDamageRate(), atkAttackDamage.hitCount, (int)atkAttackDamage.GetFixDamage());
        yield return(selfOnly.MoveTo(targetEntity.CastedFormation.GetTarget1Position(targetEntity.Position), 1));
    }
Esempio n. 6
0
    public override IEnumerator DoSkillLogic()
    {
        selfOnly.Manager.SpawnCombatCustomText(selfOnly, skillName);
        yield return(MoveToTarget());

        var attackDamage = new SkillAttackDamage(0, 1, 0);

        selfOnly.Attack(selfOnly.ActionTarget, attackDamage.GetPAtkDamageRate(), attackDamage.GetMAtkDamageRate(), attackDamage.hitCount, (int)attackDamage.GetFixDamage());
        //消耗0能量,增加8能量就可了,不需要修改那个值,在这里灵活一点,可以根据情况决定恢复程度
        GamePlayManager.Singleton.uiUseSkillManager.sikllPower.AddPower(8);
        yield return(MoveToSelfPos());
    }
Esempio n. 7
0
    public override IEnumerator DoSkillLogic()
    {
        yield return(MoveToTarget());

        List <BaseCharacterEntity> randomFour = GetRandomEnemy(4);
        SkillAttackDamage          damage     = new SkillAttackDamage(0, 1.8f, 0);

        for (int i = 0; i < randomFour.Count; i++)
        {
            yield return(PatkImmediate(damage, randomFour[i] as CharacterEntity));
        }
        yield return(MoveToSelfPos());
    }
Esempio n. 8
0
    public override IEnumerator DoSkillLogic()
    {
        selfOnly.Manager.SpawnCombatCustomText(selfOnly, skillName);
        yield return(MoveToTarget());

        var attackDamage = new SkillAttackDamage();

        selfOnly.Attack(selfOnly.ActionTarget, attackDamage.GetPAtkDamageRate(), attackDamage.GetMAtkDamageRate(), attackDamage.hitCount, (int)attackDamage.GetFixDamage());
        yield return(ApplyBuffLogic());

        yield return(MoveToSelfPos());

        yield return(null);
    }
Esempio n. 9
0
    public override IEnumerator DoSkillLogic()
    {
        selfOnly.Manager.SpawnCombatCustomText(selfOnly, skillName);
        yield return(MoveToTarget());

        List <BaseCharacterEntity> targets = GetRandomEnemy(4);
        var attackDamage0 = new SkillAttackDamage(200, 2.1f, 0);

        for (int i = 0; i < targets.Count; i++)
        {
            yield return(PatkImmediate(attackDamage0, targets[i] as CharacterEntity));
        }
        selfOnly.Custombody.AddFlood((int)selfOnly.GetTotalAttributes().pAtk * 6);
        yield return(MoveToSelfPos());

        //yield return ApplyBuffLogic();
        yield return(null);
    }
Esempio n. 10
0
    public override IEnumerator DoSkillLogic()
    {
        yield return(MoveToTarget());

        AttackInfo info = null;

        for (int i = 0; i < hintCount; i++)
        {
            yield return(MoveSkillOB(() =>
            {
                SkillAttackDamage damage = new SkillAttackDamage(0, 1, 0);
                info = AttackTarget(damage);
            }));

            if (info.die)
            {
                break;
            }
        }
        yield return(MoveToSelfPos());
    }
Esempio n. 11
0
    public override IEnumerator DoSkillLogic()
    {
        yield return(MoveToTarget());

        yield return(MoveSkillOB(() =>
        {
            SkillAttackDamage damage = new SkillAttackDamage(0, 3, 0);
            AttackInfo info = AttackTarget(damage);
            if (info.die)
            {
                int overHP = (int)(info.totalDamage - info.lastHP);
                List <BaseCharacterEntity> allEntities = GetRandomEnemy(9);
                for (int i = 0; i < allEntities.Count; i++)
                {
                    SkillAttackDamage damageOver = new SkillAttackDamage(overHP, 0, 0);
                    AttackTarget(damageOver, allEntities[i] as CharacterEntity);
                }
            }
        }));

        yield return(MoveToSelfPos());
    }
Esempio n. 12
0
    public override IEnumerator DoSkillLogic()
    {
        selfOnly.Manager.SpawnCombatCustomText(selfOnly, skillName);
        yield return(MoveToTarget());

        var attackDamage0 = new SkillAttackDamage(200, 0.5f, 0);

        yield return(Patk(attackDamage0));

        var attackDamage1 = new SkillAttackDamage(200, 0.5f, 0);

        yield return(Patk(attackDamage1));

        var attackDamage2 = new SkillAttackDamage(200, 0.5f, 0);

        yield return(Patk(attackDamage2));

        yield return(MoveToSelfPos());

        //yield return ApplyBuffLogic();
        yield return(null);
    }