public void HurtBattler(float _amount, Battler _target, Element _element = Element.Physical) { _target.GetComponent <SpriteAnimator>().Play(_target.anims.Hurt); _target.HP -= _amount; SpawnDamageText(_target.transform.position, _amount.ToString(), Color.white); //_target.aura.Add(_element, _amount); }
void Update() { if (initalized) { if (life == 0) { source.GetComponent <SpriteAnimator>().Play(source.anims.getAnimation(userAnimToPlay)); } foreach (BattleEffect i in effects.Where(x => x.Triggered == false)) { if (life >= i.triggerTime) { i.Trigger(); i.Triggered = true; } } if (Done()) { Destroy(gameObject); } life += Time.deltaTime; } }
public float BattlerDamageOther(Battler _attacker, AttackDamageProperties _skill, Battler _defender) { float damageDone = 1; if (_skill.power > 0) { //Check Crit & Hit if (!CheckHit(_attacker, _skill, _defender)) { SpawnDamageText(_defender.transform.position, "Miss", Color.grey); return(0); } bool crit = CheckCrit(_attacker, _skill, _defender); //Damage damageDone = Mathf.Floor(Calculator.DamageCalc(_attacker, _skill, _defender, crit)); if (_defender.defending) { damageDone = Mathf.Floor(damageDone * 0.25f); } _defender.GetComponent <SpriteAnimator>().Play(_defender.anims.Hurt, true); _defender.HP -= damageDone; if (!crit) { SpawnDamageText(_defender.transform.position, damageDone.ToString(), Color.white); } else { SpawnDamageText(_defender.transform.position, "" + (damageDone).ToString(), Color.yellow); } //_other.aura.Add(_skill.element, damageDone); } return(damageDone); }
private void NextTurn() { currentBattlerID = (currentBattlerID + 1) % battlers.Count; Battler currentBattler = battlers[currentBattlerID]; currentBattler.GetComponent <IDecision>().RequestDecision(currentBattlerID); // Começa a corrotina de esperar o tempo do turno acabar }
void BattlerDie(Battler _subject) { _subject.HP = 0; _subject.isAlive = false; _subject.GetComponent <SpriteAnimator>().Play(_subject.anims.Dead); _subject.turnDelay = 100; //_subject.BurnChill = 0; //_subject.aura.Zero(); }
public override IEnumerator StandardAttack(Battler user, Battler target) { Animator anim = user.GetComponent<Animator>(); Vector3 startPos = user.gameObject.transform.position; anim.SetInteger("State", 1); yield return Move.MoveInFrontOfBattler(user, target, startPos, new Vector3(-2f, 0f, 0f), 50); anim.SetInteger("State", 2); int baseDamage = (user.BattleBehavior.Stats.Attack * 6) - (target.BattleBehavior.Stats.Defense * 3); baseDamage = new System.Random().Next((int)(baseDamage * 0.9), (int)(baseDamage * 1.1)); yield return new WaitForSeconds(0.5f); target.BattleBehavior.TakeDamage(user, baseDamage); yield return new WaitForSeconds(0.3f); anim.SetInteger("State", 1); yield return Move.MoveBackFromBattler(user, target, startPos, new Vector3(-2f, 0f, 0f), 50); anim.SetInteger("State", 0); }
public override IEnumerator Run(Battler user, Battler target, IList<Battler> allCharacters, IList<Battler> allEnemies, BattleController bc) { Animator anim = user.GetComponent<Animator>(); anim.SetInteger("State", 3); yield return new WaitForSeconds(1.4f); int duration = 40; Material m = target.GetComponentInChildren<Renderer>().material; m.EnableKeyword("_EMISSION"); SpecialEffectsManager.RestoreParticles(target); for (int i = 0; i < duration; i++) { m.SetColor("_EmissionColor", Color.white * 0.6f * Mathf.Sin((float) i / duration * Mathf.PI)); yield return 0; } target.BattleBehavior.RestoreHP(user, 250); anim.SetInteger("State", 0); Debug.Log(user.BattleBehavior.Name + " restored 250 HP to " + target.BattleBehavior.Name); }
public override IEnumerator Run(Battler user, Battler target, IList<Battler> allCharacters, IList<Battler> allEnemies, BattleController bc) { anim = user.GetComponent<Animator>(); anim.SetInteger("State", 3); yield return new WaitForSeconds(1.4f); Camera.main.hdr = true; Light light = GameObject.FindGameObjectWithTag("Light").GetComponent<Light>(); yield return new WaitForSeconds(0.3f); yield return Dim(); for (int i = 0; i < starCount; i++) { CreateStar(user, target); yield return new WaitForSeconds(0.1f); } yield return new WaitForSeconds(3f); int baseDamage = (int)((user.BattleBehavior.Stats.SpAttack * 6 * Power) - (target.BattleBehavior.Stats.SpDefense * 3)); baseDamage = new System.Random().Next((int)(baseDamage * 0.9), (int)(baseDamage * 1.1)); target.BattleBehavior.TakeDamage(user, baseDamage); yield return Brighten(); Camera.main.hdr = false; anim.SetInteger("State", 0); }
/// <summary> /// Play skill animation then wait for delay. /// </summary> /// <param name="battler"></param> public virtual IEnumerator Execute(Battler battler, Transform target) { battler.GetComponent <Animator>().CrossFade(Animator.StringToHash(AnimationToPlay), TransitionDuration); yield return(new WaitForSeconds(Delay)); }