2018-04-22 23:50:39 +02:00
|
|
|
|
using Assets.Scripts.Entities.Attack;
|
2018-04-21 18:45:26 +02:00
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
public class Player : Mob {
|
2018-04-22 23:50:39 +02:00
|
|
|
|
|
|
|
|
|
[SerializeField]
|
|
|
|
|
private GameObject bulletPrefab;
|
|
|
|
|
[SerializeField]
|
|
|
|
|
Transform bulletSpawn;
|
|
|
|
|
[SerializeField]
|
|
|
|
|
private int carDamage = 5;
|
|
|
|
|
|
|
|
|
|
private float nextAttackTime;
|
2018-04-21 18:45:26 +02:00
|
|
|
|
|
2018-04-22 15:59:14 +02:00
|
|
|
|
public Player() : base(100) { }
|
2018-04-21 18:45:26 +02:00
|
|
|
|
|
2018-04-22 23:50:39 +02:00
|
|
|
|
private void Start() {
|
|
|
|
|
SingleShot s = new SingleShot(this.gameObject);
|
|
|
|
|
s.SetPrefab(bulletPrefab);
|
|
|
|
|
s.SetSpawn(bulletSpawn);
|
|
|
|
|
SetAttack(s);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Update() {
|
|
|
|
|
if ( Time.timeSinceLevelLoad >= nextAttackTime && attack != null) {
|
2018-04-23 16:24:59 +02:00
|
|
|
|
if ( Input.GetAxis("Fire") > 0 ) {
|
2018-04-22 23:50:39 +02:00
|
|
|
|
Debug.Log("Attack pressed!");
|
|
|
|
|
attack.Attack();
|
|
|
|
|
nextAttackTime = Time.timeSinceLevelLoad + attack.GetCooldownTime();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2018-04-22 15:59:14 +02:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Collision checking. Player is going to die on any collision with a wall.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="collision"></param>
|
|
|
|
|
private void OnCollisionEnter2D(Collision2D collision) {
|
2018-04-21 19:50:12 +02:00
|
|
|
|
Debug.Log("Collision");
|
2018-04-22 15:59:14 +02:00
|
|
|
|
if ( collision.collider.tag == "wall" ) {
|
|
|
|
|
Death();
|
2018-04-23 01:25:50 +02:00
|
|
|
|
} else if ( collision.collider.tag == "Enemy" ) {
|
2018-04-22 05:57:26 +02:00
|
|
|
|
Mob m = collision.collider.GetComponent(typeof(Mob)) as Mob;
|
2018-04-22 15:59:14 +02:00
|
|
|
|
if ( m != null ) {
|
2018-04-23 01:25:50 +02:00
|
|
|
|
//m.InflictDamage(carDamage);
|
|
|
|
|
//InflictDamage(carDamage); // TODO
|
2018-04-22 05:57:26 +02:00
|
|
|
|
}
|
2018-04-21 19:50:12 +02:00
|
|
|
|
}
|
2018-04-22 15:59:14 +02:00
|
|
|
|
}
|
2018-04-21 19:50:12 +02:00
|
|
|
|
|
2018-04-22 15:59:14 +02:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// This is called when a Player died.
|
|
|
|
|
/// </summary>
|
|
|
|
|
protected override void Death() {
|
2018-04-22 19:43:29 +02:00
|
|
|
|
Debug.Log("Player died...");
|
2018-04-21 19:50:12 +02:00
|
|
|
|
Destroy(this.gameObject);
|
2018-04-22 00:22:56 +02:00
|
|
|
|
GameController.instance.ChangeState(GameController.GameState.ENDED);
|
2018-04-22 15:59:14 +02:00
|
|
|
|
}
|
2018-04-21 18:45:26 +02:00
|
|
|
|
}
|