maint: moving around methods to work better with Unit/Player/Enemy classes

This commit is contained in:
Chris
2025-10-04 13:47:32 -04:00
parent 8a1d135138
commit 11f2ae26cc
4 changed files with 121 additions and 48 deletions

View File

@@ -1,11 +1,51 @@
using Reset.Core;
using System;
using Reset.Core;
using UnityEngine;
namespace Reset.Units{
public class Enemy : Unit, ILockOnTarget{
public class Enemy : Unit, ILockOnTarget, IKillable {
public float lockonTargetRadius{ get; set; } = 10f;
public Animator testModelAnimator;
public override void UnitStart(){
base.UnitStart();
((IKillable)this).IKillableInitialize();
}
public void OnTargetDelete(){
GetComponent<ILockOnTarget>().SafelyDeleteTarget();
}
public void TakeDamage(DamageSource[] sources){
foreach (DamageSource source in sources) {
TakeDamage(source);
}
}
public void TakeDamage(DamageSource source){
try {
((IKillable)this).currentHealth -= source.damageDealt;
testModelAnimator.SetTrigger("Hit");
if (((IKillable)this).currentHealth <= 0) {
Kill();
}
} catch (Exception e) {
Debug.LogError($"Failed TakeDamage on {this.name}: {e.Message}");
}
}
public void Kill(){
throw new System.NotImplementedException();
}
void Update(){
GetComponent<IKillable>().DrawHealthDebug();
}
public float maxHealth{ get; set; }
public float currentHealth{ get; set; }
}
}