This repository has been archived by the owner on Aug 14, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 9
StateMachinePseudo Abstract Code
Erik edited this page Apr 26, 2019
·
4 revisions
public abstract class CharStateData
{
//derived classes should cache Monobehaviours and values
}
public abstract class StateController<T> where T : CharStateData
{
//public abstract State<T> GetCurrentState();
//public abstract State<T> GetRemainState();
//public abstract Action<T> GetAction();
//public abstract Decision<T> GetDecision();
public State<T> currentState;
public State<T> remainState;
public Action<T>[] actions;
public Decision<T>[] decisions;
//etc.
}
public class EnemyStateController : StateController<EnemyStateData>
{
}
public abstract class Action<T> where T : CharStateData
{
public abstract void Act(T charStateData);
}
public abstract class Decision<T> where T : CharStateData
{
public abstract bool Decide(T charStateData);
}
public class State<T> where T: CharStateData
{
}
public class EnemyStateData : CharStateData
{
//public CharacterHealth characterHealth;
//public EnemyMovementController enemyMovementController;
}
public class EnemyChaseDecision : Decision<EnemyStateData>
{
public override bool Decide(EnemyStateData charStateData)
{
throw new System.NotImplementedException();
}
}
Script Documentation
General Scripts
Generic Character Scripts
Enemy Scripts
Player Scripts
Erik's ongoing laundry list of TODOs that he doesn't want to create issues for