2022-01-12 10:06:03 +03:00
|
|
|
|
using System.Collections;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using UnityEngine;
|
2022-01-13 11:00:37 +03:00
|
|
|
|
using UnityEngine.Events;
|
2022-01-12 10:06:03 +03:00
|
|
|
|
using UnityEngine.UI;
|
|
|
|
|
|
|
|
|
|
public class Enemy : MonoBehaviour
|
|
|
|
|
{
|
2022-01-13 11:00:37 +03:00
|
|
|
|
|
|
|
|
|
|
2022-01-12 10:06:03 +03:00
|
|
|
|
[SerializeField] private Text enemyName;
|
|
|
|
|
[SerializeField] private Text enemyMaxHp;
|
|
|
|
|
[SerializeField] private Text enemyHp;
|
|
|
|
|
[SerializeField] private Slider enemyHealthbar;
|
|
|
|
|
|
2022-01-13 12:07:16 +03:00
|
|
|
|
|
2022-01-13 11:00:37 +03:00
|
|
|
|
|
|
|
|
|
[Header("For checking. dont touch this")]
|
2022-01-13 12:07:16 +03:00
|
|
|
|
[SerializeField] private int hp;
|
|
|
|
|
public EnemyConfig enemyConfig;
|
|
|
|
|
public GameObject enemyPosition;
|
2022-01-13 11:00:37 +03:00
|
|
|
|
[SerializeField] int phaseAttack = 0;
|
|
|
|
|
public List<UnityEvent> attackLoop = new List<UnityEvent>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-01-13 12:07:16 +03:00
|
|
|
|
public void onClick()
|
|
|
|
|
{
|
|
|
|
|
DeckManager.main.ActionInEnemy(this);
|
|
|
|
|
}
|
2022-01-13 11:00:37 +03:00
|
|
|
|
|
2022-01-12 10:06:03 +03:00
|
|
|
|
public void ChangeHp(int damage)
|
|
|
|
|
{
|
|
|
|
|
hp -= damage;
|
2022-01-13 11:00:37 +03:00
|
|
|
|
|
|
|
|
|
if (hp <= 0)
|
2022-01-12 10:06:03 +03:00
|
|
|
|
{
|
|
|
|
|
Death();
|
|
|
|
|
}
|
2022-01-13 11:00:37 +03:00
|
|
|
|
else if (hp > enemyConfig.enemyCharacteristics.maxHp)
|
2022-01-12 10:06:03 +03:00
|
|
|
|
{
|
|
|
|
|
hp = enemyConfig.enemyCharacteristics.maxHp;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
enemyHp.text = hp.ToString();
|
|
|
|
|
enemyHealthbar.value = hp;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void NewInformation()
|
|
|
|
|
{
|
|
|
|
|
SpriteRenderer _sprRend = enemyPosition.GetComponent<SpriteRenderer>();
|
|
|
|
|
_sprRend.sprite = enemyConfig.enemyCharacteristics.sprite;
|
|
|
|
|
var _character = enemyConfig.enemyCharacteristics;
|
|
|
|
|
enemyName.text = _character.name;
|
|
|
|
|
enemyMaxHp.text = _character.maxHp.ToString();
|
|
|
|
|
enemyHp.text = _character.maxHp.ToString();
|
|
|
|
|
enemyHealthbar.maxValue = _character.maxHp;
|
|
|
|
|
enemyHealthbar.value = _character.maxHp;
|
|
|
|
|
hp = _character.maxHp;
|
2022-01-13 12:07:16 +03:00
|
|
|
|
|
2022-01-12 10:06:03 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void Death()
|
|
|
|
|
{
|
|
|
|
|
SpriteRenderer _sprRend = enemyPosition.GetComponent<SpriteRenderer>();
|
|
|
|
|
_sprRend.sprite = null;
|
2022-01-13 12:07:16 +03:00
|
|
|
|
Session.instance.EnemyDeath();
|
|
|
|
|
Destroy(gameObject);
|
2022-01-12 10:06:03 +03:00
|
|
|
|
}
|
2022-01-13 11:00:37 +03:00
|
|
|
|
|
|
|
|
|
public void Turn()
|
|
|
|
|
{
|
|
|
|
|
BaseEnemyTurn.basic.FindLoopTurn(this.gameObject, phaseAttack);
|
|
|
|
|
phaseAttack++;
|
|
|
|
|
}
|
2022-01-12 10:06:03 +03:00
|
|
|
|
}
|