/// <summary> /// Adds an IVisionObserver to the observers of this ConeDetector. Observers will be notified /// when objects enter the field of vision, leave the field of vision and every frame that they stay in the field of vision. /// </summary> /// <param name="observer">The observer to add.</param> public void AddObserver(IVisionObserver observer) { if (observer != null) { observers.Add(observer); } }
public Moving(MovementHelper movementHelper, TargetingHelper targetingHelper, IUnit unit, IMap map, IVisionObserver vision, Vector3 targetPosition) : base(ComputerStateIds.Chasing, movementHelper, targetingHelper, unit, map, vision) { _targetPositoon = targetPosition; _path = Map.PathFinder.FindPath(Unit.LogicPosition, _targetPositoon); }
public Strafing(MovementHelper movementHelper, TargetingHelper targetingHelper, IUnit unit, IMap map, IVisionObserver vision, ITarget target) : base(ComputerStateIds.Chasing, movementHelper, targetingHelper, unit, map, vision) { _target = target; _path = Map.PathFinder.FindSafespot(Unit.LogicPosition); }
public ComputerStatesFactory(IMap map, IUnit unit, IVisionObserver vision, MovementHelper movementHelper, TargetingHelper targetingHelper) { _map = map; _unit = unit; _vision = vision; _movementHelper = movementHelper; _targetingHelper = targetingHelper; }
public Searching(MovementHelper movementHelper, TargetingHelper targetingHelper, IUnit unit, IMap map, IVisionObserver vision, ITargetMemory memory) : base(ComputerStateIds.Chasing, movementHelper, targetingHelper, unit, map, vision) { _targetMemory = memory; _initialDistance = (_targetMemory.LastSeenPosition - Unit.LogicPosition).magnitude; FindPath(); }
public Watching(MovementHelper movementHelper, TargetingHelper targetingHelper, IUnit unit, IMap map, IVisionObserver vision, Vector3?preferedLookDirection, float timeLimit = 0) : base(ComputerStateIds.Watching, movementHelper, targetingHelper, unit, map, vision) { _preferedLookDirection = preferedLookDirection; if (timeLimit > 0) { _isLimited = true; _timeLimit = timeLimit; } }
protected CognitionState(ComputerStateIds id, MovementHelper movementHelper, TargetingHelper targetingHelper, IUnit unit, IMap map, IVisionObserver vision) { Unit = unit; Id = id; Map = map; Vision = vision; MovementHelper = movementHelper; TargetingHelper = targetingHelper; _nextStateBuilder = new NextStateBuilder(this); StatesFactory = new ComputerStatesFactory(map, unit, vision, movementHelper, targetingHelper); }
/// <summary> /// Removes the given observer from this ConeDetector. /// </summary> /// <param name="observer"></param> public void RemoveObserver(IVisionObserver observer) { observers.Remove(observer); }
private void Awake() { _playerStore = FindObjectOfType <PlayerStore>(); _visionObserver = FindObjectOfType <VisionStore>().GetVisionObserver(_playerStore.PlayerUnit); }