problème : pas de moyen de sauvegarder et de charger les niveaux entamés solution : fonctions save et load dans le LevelManager
91 lines
2.0 KiB
C#
91 lines
2.0 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using static Extensions;
|
|
|
|
public class Entity : LevelObject
|
|
{
|
|
//Attribut
|
|
[SerializeField, LevelSerialize]
|
|
private int _hp;
|
|
[SerializeField, LevelSerialize]
|
|
private float _speed;
|
|
[SerializeField, LevelSerialize]
|
|
private int _attack_damage;
|
|
[SerializeField, LevelSerialize]
|
|
private float _attack_speed;
|
|
private float _attack_speed_wait = 0f;
|
|
|
|
//Enemy Spotted
|
|
private bool _isEnemyDetected = false;
|
|
private Entity _enemy;
|
|
|
|
//GETTERS AND SETTERS
|
|
|
|
public int Hp
|
|
{
|
|
get { return _hp; }
|
|
set { _hp = value; }
|
|
}
|
|
|
|
public float Speed
|
|
{
|
|
get { return _speed; }
|
|
set { _speed = value; }
|
|
}
|
|
|
|
public int AttackDamage
|
|
{
|
|
get { return _attack_damage; }
|
|
set { _attack_damage = value; }
|
|
}
|
|
|
|
public float AttackSpeed
|
|
{
|
|
get { return _attack_speed; }
|
|
set { _attack_speed = value; }
|
|
}
|
|
|
|
public float AttackSpeedWait
|
|
{
|
|
get { return _attack_speed_wait; }
|
|
set { _attack_speed_wait = value; }
|
|
}
|
|
|
|
public bool IsEnemyDetected
|
|
{
|
|
get { return _isEnemyDetected; }
|
|
set { _isEnemyDetected = value; }
|
|
}
|
|
|
|
public Entity Enemy
|
|
{
|
|
get { return _enemy; }
|
|
set { _enemy = value; }
|
|
}
|
|
|
|
#region [LevelManager code]
|
|
public override bool Equals(ILevelObject other)
|
|
{
|
|
return other is Entity otherEntity
|
|
&& base.Equals(otherEntity)
|
|
&& otherEntity._hp == _hp
|
|
&& otherEntity._speed == _speed
|
|
&& otherEntity._attack_speed == _attack_speed
|
|
&& otherEntity._attack_damage == _attack_damage;
|
|
}
|
|
|
|
public override Dictionary<string, object> ToDictionary()
|
|
{
|
|
var dict = base.ToDictionary();
|
|
|
|
dict[nameof(_hp)] = _hp;
|
|
dict[nameof(_speed)] = _speed;
|
|
dict[nameof(_attack_speed)] = _attack_speed;
|
|
dict[nameof(_attack_damage)] = _attack_damage;
|
|
|
|
return dict;
|
|
}
|
|
#endregion
|
|
}
|