public override IEnumerator SkillRoutine(CustomCharacterController cc, Vector3 origin) { yield return(new WaitForSeconds(0.5f)); Sequence s = DOTween.Sequence(); //Move To Enemy Vector3 movePoint = new Vector3(enemy.transform.position.x - targetOffset, enemy.transform.position.y, enemy.transform.position.z); s.Append(actor.transform.DOMove(movePoint, moveToDuration)); yield return(new WaitForSeconds(moveToDuration)); //Wind Up Vector3 rotate = new Vector3(windUp - actor.transform.rotation.x, 90, 0); s.Append(actor.transform.DORotate(rotate, windUpDuration)); s.Append(actor.transform.DOPunchScale(new Vector3(2, 2, 2), windUpDuration, 5, 0.5f)); yield return(new WaitForSeconds(windUpDuration)); //Slam rotate = new Vector3(slam + actor.transform.rotation.x, 90, 0); s.Append(actor.transform.DORotate(rotate, slamDuration)); DealDamage(enemy, Damage); //Add Bleed buff to enemy BuffReciever bReceiver = enemy.GetComponent <BuffReciever>(); if (bReceiver.FindBuff(_BleedDebuff) == false) { bReceiver.AddBuff(_BleedDebuff); } else { bReceiver.FindBuff(_BleedDebuff).duration = _BleedDebuff.duration; } OnActivated.Invoke(); if (audioManager) { audioManager.PlaySFX("Hit"); } yield return(new WaitForSeconds(slamDuration)); s.Append(actor.transform.DORotate(new Vector3(0, 90, 0), 0.1f)); movePoint = origin; s.Append(actor.transform.DOMove(movePoint, returnDuration).OnComplete(SkillEffectEnd)); yield return(new WaitForSeconds(returnDuration)); cc.OnDestinationReach.Invoke(); }
public IEnumerator SkillRoutine(Vector3 origin) { yield return(new WaitForSeconds(0.5f)); Sequence s = DOTween.Sequence(); s.Append(actor.transform.DOMoveY(riseRange, riseDuration)); yield return(new WaitForSeconds(riseDuration)); Vector3 rotate = new Vector3(0, 180, 0); s.Append(actor.transform.DOBlendableRotateBy(rotate, spinTime)); s.Append(actor.transform.DOBlendableRotateBy(rotate, spinTime)); s.Append(actor.transform.DOBlendableRotateBy(rotate, spinTime)); s.Append(actor.transform.DOBlendableRotateBy(rotate, spinTime)); if (audioManager) { audioManager.PlaySFX("Cast_Ice_Shield"); } yield return(new WaitForSeconds(spinDuration)); actor.GetComponent <Character>().Mana -= cost; //Buff Settings _DoubleAttackBuff.BaseValue = _Intensity.Levels[IntensityLevel - 1].IDatas.First(); BuffReciever bReceiver = actor.GetComponent <BuffReciever>(); if (bReceiver.FindBuff(_DoubleAttackBuff) == false) { bReceiver.AddBuff(_DoubleAttackBuff); } else { bReceiver.FindBuff(_DoubleAttackBuff).duration = _DoubleAttackBuff.duration; } s.Append(actor.transform.DOMove(origin, riseDuration)); yield return(new WaitForSeconds(riseDuration)); OnActivated.Invoke(); base.SkillEffectEnd(); actor.GetComponent <CustomCharacterController>().OnDestinationReach.Invoke(); }
public void Effect() { actor.GetComponent <Character>().Mana -= cost; _ReduceDamageBuff.BaseValue = _Intensity.Levels[IntensityLevel - 1].IDatas.First(); foreach (var item in SingletonManager.Get <FieldManager>().SpawnedAllies) { BuffReciever bReceiver = item.GetComponent <BuffReciever>(); if (bReceiver.FindBuff(_ReduceDamageBuff) == false) { bReceiver.AddBuff(_ReduceDamageBuff); } } }