using UnityEngine;[RequireComponent(typeof(CharacterStats))]publicclassEnemy:Interactable{PlayerManager playerManager;CharacterStats myStats;privatevoidStart(){
playerManager = PlayerManager.instance;
myStats =GetComponent<CharacterStats>();}publicoverridevoidInteract(){base.Interact();// Attack the Enemy;CharacterCombat playerCombat = playerManager.player.GetComponent<CharacterCombat>();if(playerCombat !=null){
playerCombat.Attack(myStats);}}}
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.SceneManagement;publicclassPlayerManager:MonoBehaviour{#region SingletonpublicstaticPlayerManager instance;privatevoidAwake(){if(instance ==null)
instance =this;}#endregionpublicGameObject player;privatevoidStart(){
player = GameObject.FindGameObjectWithTag("Player");}publicvoidKillPlayer(){
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);}}
using System.Collections;using System.Collections.Generic;using UnityEngine;publicclassPlayerStats:CharacterStats{voidStart(){
EquipmentManager.instance.onEquipmentChanged += OnEquipmentChanged;}voidOnEquipmentChanged(Equipment newItem,Equipment oldItem){if(newItem !=null){
armor.AddModifier(newItem.armorModifier);
damage.AddModifier(newItem.damageModifier);}if(oldItem !=null){
armor.RemoveModifier(oldItem.armorModifier);
damage.RemoveModifier(oldItem.damageModifier);}}publicoverridevoidDie(){base.Die();// Kill the player in some way.
PlayerManager.instance.KillPlayer();}}