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()); }
public override IEnumerator DoSkillLogic() { yield return(MoveSkillOB(() => { SkillAttackDamage damage = new SkillAttackDamage(0, 1.5f, 1.5f); AttackTarget(damage); })); }
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())); }
/// <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); }
/// <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)); }
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()); }
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()); }
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); }
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); }
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()); }
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()); }
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); }