correction du merge request
This commit is contained in:
parent
ccd2e898e5
commit
5238cb2e8a
@ -4,8 +4,14 @@ using UnityEngine;
|
|||||||
|
|
||||||
public class Ally : Entity
|
public class Ally : Entity
|
||||||
{
|
{
|
||||||
|
public override void Start()
|
||||||
|
{
|
||||||
|
base.Start();
|
||||||
|
|
||||||
void Update() {
|
}
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
|
||||||
if(IsEnemyDetected) {
|
if(IsEnemyDetected) {
|
||||||
AttackEnemy();
|
AttackEnemy();
|
||||||
@ -13,17 +19,17 @@ public class Ally : Entity
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AttackEnemy() {
|
void AttackEnemy()
|
||||||
|
{
|
||||||
//Attack Cooldown
|
//Attack Cooldown
|
||||||
if(AttackSpeed < AttackSpeedWait) {
|
if(AttackSpeed < AttackSpeedWait) {
|
||||||
|
|
||||||
Enemy.hit(AttackDamage);
|
Enemy.Hit(AttackDamage);
|
||||||
Debug.Log("Opponent Hp = " + Enemy.Hp);
|
|
||||||
|
|
||||||
//Kill if no hp
|
//Kill if no hp
|
||||||
if(Enemy.Hp <= 0) {
|
if(Enemy.Hp <= 0) {
|
||||||
IsEnemyDetected = false;
|
IsEnemyDetected = false;
|
||||||
Enemy.death();
|
Enemy.Death();
|
||||||
}
|
}
|
||||||
|
|
||||||
AttackSpeedWait = 0f;
|
AttackSpeedWait = 0f;
|
||||||
|
|||||||
@ -11,12 +11,16 @@ public class Archer : Ally
|
|||||||
private Rigidbody2D _rigidbodyAlly;
|
private Rigidbody2D _rigidbodyAlly;
|
||||||
private Rigidbody2D _rigidbodyOpponent;
|
private Rigidbody2D _rigidbodyOpponent;
|
||||||
|
|
||||||
void Start() {
|
public override void Start()
|
||||||
|
{
|
||||||
|
base.Start();
|
||||||
|
|
||||||
_rigidbodyAlly = GetComponent<Rigidbody2D>();
|
_rigidbodyAlly = GetComponent<Rigidbody2D>();
|
||||||
Animation = gameObject.AddComponent<AnimationEntity>();
|
Animation = gameObject.AddComponent<AnimationEntity>();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Update() {
|
void Update()
|
||||||
|
{
|
||||||
|
|
||||||
if(IsEnemyDetected) {
|
if(IsEnemyDetected) {
|
||||||
_rigidbodyOpponent = Enemy.GetComponent<Rigidbody2D>();
|
_rigidbodyOpponent = Enemy.GetComponent<Rigidbody2D>();
|
||||||
@ -25,12 +29,13 @@ public class Archer : Ally
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AttackEnemy() {
|
void AttackEnemy()
|
||||||
|
{
|
||||||
|
|
||||||
//Attack Cooldown
|
//Attack Cooldown
|
||||||
if(AttackSpeed < AttackSpeedWait) {
|
if(AttackSpeed < AttackSpeedWait) {
|
||||||
|
|
||||||
Animation.Attack();
|
Animation.PlayAttackAnim();
|
||||||
|
|
||||||
GameObject _newArrow = Instantiate(_arrow, _rigidbodyAlly.position, Quaternion.identity);
|
GameObject _newArrow = Instantiate(_arrow, _rigidbodyAlly.position, Quaternion.identity);
|
||||||
|
|
||||||
|
|||||||
@ -5,44 +5,50 @@ using UnityEngine;
|
|||||||
public class AnimationEntity : MonoBehaviour
|
public class AnimationEntity : MonoBehaviour
|
||||||
{
|
{
|
||||||
|
|
||||||
private Animator _animator_entity;
|
private Animator _animatorEntity;
|
||||||
private bool _doSomething = false;
|
private bool _doSomething = false;
|
||||||
private bool _isDead = false;
|
private bool _isDead = false;
|
||||||
|
|
||||||
void Start() {
|
void Start()
|
||||||
_animator_entity = GetComponentInChildren<Animator>();
|
{
|
||||||
|
_animatorEntity = GetComponentInChildren<Animator>();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Update() {
|
void Update()
|
||||||
|
{
|
||||||
|
|
||||||
if (_doSomething && _animator_entity.GetCurrentAnimatorStateInfo(0).normalizedTime >= 1f)
|
if (_doSomething && _animatorEntity.GetCurrentAnimatorStateInfo(0).normalizedTime >= 1f)
|
||||||
{
|
{
|
||||||
Idle();
|
PlayIdleAnim();
|
||||||
_doSomething = false;
|
_doSomething = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Idle() {
|
public void PlayIdleAnim()
|
||||||
|
{
|
||||||
if(!_isDead) {
|
if(!_isDead) {
|
||||||
_animator_entity.Play("idle", 0, 0f);
|
_animatorEntity.Play("idle", 0, 0f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Walk() {
|
public void PlayWalkAnim()
|
||||||
|
{
|
||||||
if(!_isDead) {
|
if(!_isDead) {
|
||||||
_animator_entity.Play("walk", 0, 0f);
|
_animatorEntity.Play("walk", 0, 0f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Attack() {
|
public void PlayAttackAnim()
|
||||||
|
{
|
||||||
if(!_isDead) {
|
if(!_isDead) {
|
||||||
_animator_entity.Play("attack", 0, 0f);
|
_animatorEntity.Play("attack", 0, 0f);
|
||||||
_doSomething = true;
|
_doSomething = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Die() {
|
public void PlayDieAnim()
|
||||||
_animator_entity.Play("die", 0, 0f);
|
{
|
||||||
|
_animatorEntity.Play("die", 0, 0f);
|
||||||
_doSomething = true;
|
_doSomething = true;
|
||||||
_isDead = true;
|
_isDead = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,13 +22,13 @@ public class Detection : MonoBehaviour
|
|||||||
void OnTriggerEnter2D(Collider2D other)
|
void OnTriggerEnter2D(Collider2D other)
|
||||||
{
|
{
|
||||||
//Projectiles detection + damage deal
|
//Projectiles detection + damage deal
|
||||||
if(_entityLinked is not null) {
|
if(_entityLinked != null) {
|
||||||
if(_projectileDamage > 0 && other.gameObject.GetComponent<Entity>() == _entityLinked) {
|
if(_projectileDamage > 0 && other.gameObject.GetComponent<Entity>() == _entityLinked) {
|
||||||
|
|
||||||
_entityLinked.hit(_projectileDamage);
|
_entityLinked.Hit(_projectileDamage);
|
||||||
//Kill if no hp
|
//Kill if no hp
|
||||||
if(other.gameObject.GetComponent<Entity>().Hp <= 0) {
|
if(other.gameObject.GetComponent<Entity>().Hp <= 0) {
|
||||||
other.gameObject.GetComponent<Entity>().death();
|
other.gameObject.GetComponent<Entity>().Death();
|
||||||
_entityLinked = null;
|
_entityLinked = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,8 +37,9 @@ public class Detection : MonoBehaviour
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnTriggerStay2D(Collider2D other) {
|
void OnTriggerStay2D(Collider2D other)
|
||||||
if(_entityLinked is not null) {
|
{
|
||||||
|
if(_entityLinked != null) {
|
||||||
if(_entityLinked.Enemy == null) {
|
if(_entityLinked.Enemy == null) {
|
||||||
//Detect the enemy and inform the Ally
|
//Detect the enemy and inform the Ally
|
||||||
if (other.gameObject.tag == "Opponent" && _entityLinked is Ally) {
|
if (other.gameObject.tag == "Opponent" && _entityLinked is Ally) {
|
||||||
@ -58,7 +59,7 @@ public class Detection : MonoBehaviour
|
|||||||
|
|
||||||
void OnTriggerExit2D(Collider2D other)
|
void OnTriggerExit2D(Collider2D other)
|
||||||
{
|
{
|
||||||
if(_entityLinked is not null) {
|
if(_entityLinked != null) {
|
||||||
if(_projectileDamage == 0) {
|
if(_projectileDamage == 0) {
|
||||||
if ((other.gameObject.tag == "Opponent" && _entityLinked is Ally) || (other.gameObject.tag == "Ally" && _entityLinked is Opponent)) {
|
if ((other.gameObject.tag == "Opponent" && _entityLinked is Ally) || (other.gameObject.tag == "Ally" && _entityLinked is Opponent)) {
|
||||||
_entityLinked.IsEnemyDetected = false;
|
_entityLinked.IsEnemyDetected = false;
|
||||||
|
|||||||
@ -16,62 +16,68 @@ public class Entity : LevelObject
|
|||||||
private float _attack_speed;
|
private float _attack_speed;
|
||||||
private float _attack_speed_wait = 0f;
|
private float _attack_speed_wait = 0f;
|
||||||
private AnimationEntity _animation;
|
private AnimationEntity _animation;
|
||||||
private Shader shaderGUItext;
|
private Shader _shaderGUItext;
|
||||||
private Shader shaderSpritesDefault;
|
private Shader _shaderSpritesDefault;
|
||||||
|
private SpriteRenderer[] _spriteRenderers;
|
||||||
|
|
||||||
//Enemy Spotted
|
//Enemy Spotted
|
||||||
private bool _isEnemyDetected = false;
|
private bool _isEnemyDetected = false;
|
||||||
private Entity _enemy;
|
private Entity _enemy;
|
||||||
|
|
||||||
//Methods
|
//Methods
|
||||||
public void death() {
|
public virtual void Start()
|
||||||
_animation.Die();
|
{
|
||||||
Invoke("dying", 0.1f);
|
_spriteRenderers = GetComponentsInChildren<SpriteRenderer>();
|
||||||
}
|
}
|
||||||
|
|
||||||
void dying() {
|
//Start the animation of death and the fading of the entity
|
||||||
SpriteRenderer[] spriteRenderers;
|
public void Death()
|
||||||
spriteRenderers = GetComponentsInChildren<SpriteRenderer>();
|
{
|
||||||
|
_animation.PlayDieAnim();
|
||||||
|
Invoke("Dying", 0.1f);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Recursive method that fade the dying entity
|
||||||
foreach (SpriteRenderer renderer in spriteRenderers)
|
void Dying()
|
||||||
|
{
|
||||||
|
foreach (SpriteRenderer renderer in _spriteRenderers)
|
||||||
{
|
{
|
||||||
Color currentColor = renderer.color;
|
Color currentColor = renderer.color;
|
||||||
currentColor.a = currentColor.a - 0.1f;
|
currentColor.a = currentColor.a - 0.1f;
|
||||||
renderer.color = currentColor;
|
renderer.color = currentColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(spriteRenderers[0].color.a > 0f) {
|
if(_spriteRenderers[0].color.a > 0f) {
|
||||||
Invoke("dying", 0.1f);
|
Invoke("Dying", 0.1f);
|
||||||
}else {
|
}else {
|
||||||
Destroy(gameObject);
|
Destroy(gameObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void hit(int damage) {
|
//When hit : get damage and start a flash of light
|
||||||
|
public void Hit(int damage)
|
||||||
|
{
|
||||||
|
|
||||||
_hp-=damage;
|
_hp-=damage;
|
||||||
|
|
||||||
SpriteRenderer[] spriteRenderers;
|
_shaderGUItext = Shader.Find("GUI/Text Shader");
|
||||||
spriteRenderers = GetComponentsInChildren<SpriteRenderer>();
|
_shaderSpritesDefault = Shader.Find("Sprites/Default");
|
||||||
shaderGUItext = Shader.Find("GUI/Text Shader");
|
|
||||||
shaderSpritesDefault = Shader.Find("Sprites/Default");
|
|
||||||
|
|
||||||
foreach (SpriteRenderer renderer in spriteRenderers)
|
foreach (SpriteRenderer renderer in _spriteRenderers)
|
||||||
{
|
{
|
||||||
renderer.material.shader = shaderGUItext;
|
renderer.material.shader = _shaderGUItext;
|
||||||
}
|
}
|
||||||
Invoke("returnNormalColor", 0.1f);
|
Invoke("ReturnNormalColor", 0.1f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void returnNormalColor() {
|
//End the flash of light from the method above
|
||||||
SpriteRenderer[] spriteRenderers;
|
void ReturnNormalColor()
|
||||||
spriteRenderers = GetComponentsInChildren<SpriteRenderer>();
|
{
|
||||||
|
|
||||||
foreach (SpriteRenderer renderer in spriteRenderers)
|
foreach (SpriteRenderer renderer in _spriteRenderers)
|
||||||
{
|
{
|
||||||
renderer.material.shader = shaderSpritesDefault;
|
renderer.material.shader = _shaderSpritesDefault;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -8,13 +8,16 @@ public class Opponent : Entity
|
|||||||
private Vector2 _movementVector = Vector2.zero;
|
private Vector2 _movementVector = Vector2.zero;
|
||||||
private Rigidbody2D _rigidbody;
|
private Rigidbody2D _rigidbody;
|
||||||
|
|
||||||
void Start()
|
public override void Start()
|
||||||
{
|
{
|
||||||
|
base.Start();
|
||||||
|
|
||||||
_rigidbody = GetComponent<Rigidbody2D>();
|
_rigidbody = GetComponent<Rigidbody2D>();
|
||||||
Animation = gameObject.AddComponent<AnimationEntity>();
|
Animation = gameObject.AddComponent<AnimationEntity>();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Update() {
|
void Update()
|
||||||
|
{
|
||||||
|
|
||||||
_movementVector.x = -Time.deltaTime * Speed;
|
_movementVector.x = -Time.deltaTime * Speed;
|
||||||
|
|
||||||
@ -26,18 +29,18 @@ public class Opponent : Entity
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AttackEnemy() {
|
void AttackEnemy()
|
||||||
|
{
|
||||||
//Attack Cooldown
|
//Attack Cooldown
|
||||||
if(AttackSpeed < AttackSpeedWait)
|
if(AttackSpeed < AttackSpeedWait)
|
||||||
{
|
{
|
||||||
Animation.Attack();
|
Animation.PlayAttackAnim();
|
||||||
|
|
||||||
Enemy.hit(AttackDamage);
|
Enemy.Hit(AttackDamage);
|
||||||
Debug.Log("Ally Hp = " + Enemy.Hp);
|
|
||||||
|
|
||||||
//Kill if no hp
|
//Kill if no hp
|
||||||
if(Enemy.Hp <= 0) {
|
if(Enemy.Hp <= 0) {
|
||||||
Enemy.death();
|
Enemy.Death();
|
||||||
}
|
}
|
||||||
|
|
||||||
AttackSpeedWait = 0f;
|
AttackSpeedWait = 0f;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user