Compare commits
2 commits
ea9203ca8a
...
37e8c8d689
Author | SHA1 | Date | |
---|---|---|---|
37e8c8d689 | |||
98402a90f7 |
4 changed files with 67 additions and 10 deletions
|
@ -1,4 +1,5 @@
|
|||
using System.Collections;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
|
@ -93,9 +94,24 @@ public abstract class AbstractCharacter : MonoBehaviour
|
|||
public abstract void Move(Vector2 movementDirection);
|
||||
public abstract void Shoot();
|
||||
|
||||
// TODO : Manage hurt + OnCollision + Death'n stuff
|
||||
public void Hurt()
|
||||
private void OnCollisionEnter2D(Collision2D other)
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
Bullet bullet = other.gameObject.GetComponent<Bullet>();
|
||||
if (bullet == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Hurt(bullet.Damage);
|
||||
}
|
||||
|
||||
public void Hurt(int damage)
|
||||
{
|
||||
CurrentHealth -= damage;
|
||||
if (CurrentHealth <= 0)
|
||||
{
|
||||
Death();
|
||||
}
|
||||
}
|
||||
// Handles the death of the character, should be overriden
|
||||
protected abstract void Death();
|
||||
}
|
||||
|
|
|
@ -1,13 +1,38 @@
|
|||
using System.Collections;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class Bullet : MonoBehaviour
|
||||
{
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
[SerializeField] private int _damage;
|
||||
public int Damage => _damage;
|
||||
|
||||
// Speed in m/s
|
||||
[SerializeField] private float _speed;
|
||||
public float Speed
|
||||
{
|
||||
get { return _speed; }
|
||||
set { _speed = value; }
|
||||
}
|
||||
|
||||
[SerializeField] private Vector2 _direction;
|
||||
public Vector2 Direction
|
||||
{
|
||||
get { return _direction; }
|
||||
set { _direction = value; }
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
Mover mover = GetComponentInParent<Mover>();
|
||||
if (mover == null)
|
||||
{
|
||||
throw new MissingComponentException("Missing Mover!");
|
||||
}
|
||||
|
||||
mover.Direction = Direction;
|
||||
mover.MaxSpeed = Speed;
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
|
@ -15,4 +40,10 @@ public class Bullet : MonoBehaviour
|
|||
{
|
||||
|
||||
}
|
||||
|
||||
// Destroy on Stay, collision effects should be handled on Enter
|
||||
private void OnCollisionStay2D(Collision2D other)
|
||||
{
|
||||
Destroy(gameObject);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,6 +8,11 @@ public class Mover : MonoBehaviour
|
|||
private Transform _transform;
|
||||
private Vector2 _direction;
|
||||
private float _maxSpeed;
|
||||
public float MaxSpeed
|
||||
{
|
||||
get { return _maxSpeed; }
|
||||
set { _maxSpeed = value; }
|
||||
}
|
||||
|
||||
public Vector2 Direction
|
||||
{
|
||||
|
@ -15,11 +20,11 @@ public class Mover : MonoBehaviour
|
|||
set { _direction = value; }
|
||||
}
|
||||
|
||||
void Start()
|
||||
void Awake()
|
||||
{
|
||||
_transform = GetComponentInParent<Transform>();
|
||||
_character = GetComponentInParent<AbstractCharacter>();
|
||||
_maxSpeed = _character.MaxSpeed;
|
||||
_maxSpeed = _character != null ? _character.MaxSpeed : 1;
|
||||
_direction = Vector2.zero;
|
||||
}
|
||||
|
||||
|
|
|
@ -17,4 +17,9 @@ public class PlayerCharacter : AbstractCharacter
|
|||
// TODO : Implement
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
|
||||
protected override void Death()
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue