19 lines
497 B
JavaScript
19 lines
497 B
JavaScript
|
|
class NPCStateMachine {
|
|
constructor(states) {
|
|
this.states = states;
|
|
this.current = 'idle';
|
|
}
|
|
update(context) {
|
|
const state = this.states[this.current];
|
|
for (const transition of state.transitions) {
|
|
if (transition.condition(context)) {
|
|
this.current = transition.target;
|
|
console.log(`NPC transitioned to ${this.current}`);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
export default NPCStateMachine;
|