/// <summary> /// Attacks another unit /// </summary> /// <param name="unit">Unit to attack</param> protected override void Attack(Unit unit) { GameLogger.Instance.AddMove(ActionRecord.AttackAction(this, this.Coordinate, unit, unit.Coordinate)); this.AnimationState = AnimationState.Attack; this.StartCoroutine(this.AnimateAttack( unit, () => { this.AnimationState = AnimationState.Idle; unit.Health -= this.AttackPower; })); }
/// <summary> /// Attacks another unit /// </summary> /// <param name="unit">Unit to attack</param> protected override void Attack(Unit unit) { GameLogger.Instance.AddMove(ActionRecord.AttackAction(this, this.Coordinate, unit, unit.Coordinate)); this.LookAt(unit.transform.position); this.AnimationState = AnimationState.Attack; var bullet = (GameObject)Instantiate(this.Bullet); bullet.transform.position = this.BulletSpawn.transform.position; this.StartCoroutine(bullet.GetComponent <BulletController>().SendTo( unit.transform.position, () => { this.AnimationState = AnimationState.Idle; unit.Health -= this.AttackPower; })); }
/// <summary> /// Attacks another unit /// </summary> /// <param name="unit">Unit to attack</param> protected virtual void Attack(Unit unit) { GameLogger.Instance.AddMove(ActionRecord.AttackAction(this, this.Coordinate, unit, unit.Coordinate)); unit.Health -= this.AttackPower; }