void Start() { player = SpawnCharacter(true); enemy = SpawnCharacter(false); SetSelectedCharacter(player); }
private void SetSelectedCharacter(CharacterBattleHanlder character) { Destroy(selectedCircle); if (character == player) { selectedCharacter = player; selectedCircle = Instantiate(pfSelectedCharacterCircle, player.transform.position, Quaternion.identity); } else if (character == enemy) { selectedCharacter = enemy; selectedCircle = Instantiate(pfSelectedCharacterCircle, enemy.transform.position, Quaternion.identity); var distance = Vector3.Distance(enemy.transform.position, player.transform.position); var slideTargetPosition = new Vector3(enemy.transform.position.x - distance, enemy.transform.position.y); enemy.SlideToPosition(slideTargetPosition, () => { enemy.Attack(enemy, () => { var damage = UnityEngine.Random.Range(10, 40); player.Damage(damage); if (enemy.IsDead()) { FightOver("Enemy"); } enemy.SlideToPosition(new Vector3(1.5f, 0, 0), () => { enemy.state = CharacterState.Idle; SetSelectedCharacter(player); }); }); }); } }
public void Attack(CharacterBattleHanlder target, Action onAttackComplete) { state = CharacterState.Busy; attackTime = .5f; this.onAttackComplete = onAttackComplete; }