Files
UnityRoguelike/Assets/Scripts/Enemy.cs
Tommy Parnell ff3692e87a init
2015-04-12 22:33:50 -04:00

63 lines
1.5 KiB
C#

using UnityEngine;
using System.Collections;
public class Enemy : MovingObject {
public int playerDamage;
private Animator animator;
private Transform target;
private bool skipMove;
public AudioClip enemyAttack1;
public AudioClip enemyAttack2;
// Use this for initialization
protected override void Start()
{
base.Start();
GameManager.Instance.AddEnemyToList(this);
animator = GetComponent<Animator>();
target = GameObject.FindGameObjectWithTag("Player").transform;
}
protected override void AttemptMove<T>(int xDir, int yDir)
{
if (skipMove)
{
skipMove = false;
return;
}
base.AttemptMove<T>(xDir, yDir);
skipMove = true;
}
public void MoveEnemy()
{
var xDir = 0;
var yDir = 0;
//in the same column?
if (Mathf.Abs(target.position.x - transform.position.x) < float.Epsilon)
{
yDir = target.position.y > transform.position.y ? 1 : -1;
}
else
{
xDir = target.position.x > transform.position.x ? 1 : -1;
}
AttemptMove<Player>(xDir, yDir);
}
protected override void OnCantMove<T>(T component)
{
var hitPlayer = component as Player;
animator.SetTrigger("EnemyAttack");
SoundManager.instance.RandomizeSfx(enemyAttack1, enemyAttack2);
hitPlayer.LoseFood(playerDamage);
}
}