2021-02-26 19:01:47 +00:00
|
|
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using UniRx;
|
|
|
|
|
|
|
|
|
|
public class Minion : Agent
|
|
|
|
|
{
|
|
|
|
|
public Minion(Ship ship) : base(ship)
|
|
|
|
|
{
|
|
|
|
|
var patrolState = new PatrolOrbitsState(this);
|
|
|
|
|
_rootState.AddTransition(patrolState,
|
2021-03-10 09:18:07 +00:00
|
|
|
() => Task is PatrolOrbitsTask,
|
2021-02-26 19:01:47 +00:00
|
|
|
() => patrolState.Task = Task as PatrolOrbitsTask);
|
|
|
|
|
|
2021-05-11 04:45:42 +01:00
|
|
|
Ship.VisibleEnemies.ObserveAdd().Where(_ => Ship.Target.Value == null).Subscribe(add => Ship.Target.Value = add.Value);
|
2021-02-26 19:01:47 +00:00
|
|
|
|
|
|
|
|
var combatState = new CombatState(this);
|
2021-04-18 05:13:20 +01:00
|
|
|
_rootState.AddTransition(combatState,
|
2021-02-26 19:01:47 +00:00
|
|
|
() => Ship.Target.Value != null, null, true, _rootState);
|
|
|
|
|
|
|
|
|
|
combatState.AddTransition(_rootState,
|
|
|
|
|
() => Ship.Target.Value == null, null, true, _rootState);
|
|
|
|
|
}
|
|
|
|
|
}
|