// Update is called once per frame void Update() { playerDistX = Mathf.Abs(transform.position.x - playerTransform.position.x); playerYDist = Mathf.Abs(transform.position.y - playerTransform.position.y); rangeState = GetState(); if (rangeState == RangeState.PointBlank) { dir = Vector2.zero; } else if (rangeState != RangeState.Out) { npcm.UpdateWeights(playerTransform.position); dir = npcm.GetDir(); } else { npcm.UpdateWeights(startPos); dir = npcm.GetDir(); } //approachTime += Time.deltaTime; //if (approachTime % 10 < 5) //{ // ApproachPlayer(); //} }
private void EnterArmedState(FlightStatus triggerStatus) { FlightLogger.eventLog.Add(string.Format("[{0}]: Range safety entered ARM state: {1}", KSPUtil.PrintTimeCompact((int)Math.Floor(FlightGlobals.ActiveVessel.missionTime), false), FlightCorridorBase.GetFlightStatusText(triggerStatus))); State = RangeState.Armed; if (rangeSafetyInstance.settings.terminateThrustOnArm) { actionQueue.Enqueue(RangeActions.TerminateThrust); } if (rangeSafetyInstance.settings.destroySolids) { actionQueue.Enqueue(RangeActions.DestroySolids); } if (rangeSafetyInstance.settings.coastToApogeeBeforeAbort) { actionQueue.Enqueue(RangeActions.CoastToApogee); } if (rangeSafetyInstance.settings.abortOnArm) { actionQueue.Enqueue(RangeActions.ExecuteAbort); } if (rangeSafetyInstance.settings.delay3secAfterAbort) { actionQueue.Enqueue(RangeActions.WaitForAbortToClear); } if (rangeSafetyInstance.settings.destroyLaunchVehicle) { actionQueue.Enqueue(RangeActions.TerminateFlight); } }
internal static string GetRangeStateText(RangeState rangeState, FlightStatus corridorState) { string state = "DISARM"; string description = string.Empty; switch (rangeState) { case RangeState.Nominal: state = "NOMINAL"; break; case RangeState.Armed: state = "ARM"; break; case RangeState.Destroyed: state = "DESTROYED"; break; case RangeState.Safe: state = "SAFE"; break; } description = FlightCorridorBase.GetFlightStatusText(corridorState); return(string.Format("{0}: {1}", state, description)); }
private void Start() { _closeRangeState = gameObject.GetComponent <CloseRangeState>(); _outOfRangeState = gameObject.GetComponent <OutOfRangeState>(); _currentState = _closeRangeState; ChangeState(RangeStates.CloseRange); }
internal void Initialize(RangeSafety instance) { rangeSafetyInstance = instance; CheckIfRunwayOrLaunchPad(); if (State != RangeState.Exempt) { State = rangeSafetyInstance.settings.enableRangeSafety ? RangeState.Nominal : RangeState.Disarmed; } }
public MonthCellDescriptor(DateTime date, bool isCurrentMonth, bool isSelectable, bool isSelected, bool isToday, int value, RangeState rangeState) { DateTime = date; Value = value; IsCurrentMonth = isCurrentMonth; IsSelected = isSelected; IsToday = isToday; IsSelectable = isSelectable; RangeState = rangeState; }
public StepConfiguration FixFrequency(double frequency, RangeState range, SubFrequencyState sub) { FixFrequencyParameter verify = new FixFrequencyParameter() { Frequency = frequency, Range = range, SubFrequency = sub }; return(LoadContext(new SetFixFrequencyContext(radio, verify))); }
private void CheckIfRunwayOrLaunchPad() { var vessel = FlightGlobals.ActiveVessel; var biome = Vessel.GetLandedAtString(vessel.landedAt); //var biome = FlightGlobals.currentMainBody.BiomeMap.GetAtt(Utils.DegreeToRadian(vessel.latitude), Utils.DegreeToRadian(vessel.longitude)).name; if (biome == "Runway") { State = RangeState.Exempt; } }
public MonthCellDescriptor(DateTime date, bool isCurrentMonth, bool isSelectable, bool isSelected, bool isToday, bool isHighlighted, int value, RangeState rangeState) { DateTime = date; Value = value; IsCurrentMonth = isCurrentMonth; IsSelected = isSelected; IsHighlighted = isHighlighted; IsToday = isToday; IsSelectable = isSelectable; RangeState = rangeState; }
public void ChangeState(RangeStates newState) { switch (newState) { case RangeStates.CloseRange: _currentState = _closeRangeState; break; case RangeStates.OutOfRange: _currentState = _outOfRangeState; break; } StartCoroutine(StateMachine()); }
public FixedRangeContext(MainModel radio, RangeState state) { Radio = radio; this.state = state; }
public void SetRangeState(RangeState rangeState) { RangeState = rangeState; }
public static bool OutOfRange(RangeState value) => value < 0 || (int)value >= numberPosiotion;
public void Clear() { _ranges.Clear(); _lastRangeState = null; }
public StepConfiguration FixAntenna(RangeState frequencyState, SubFrequencyState subFrequency) { return(LoadContext(new FixAntenaContext(radio, frequencyState, subFrequency))); }
public StepConfiguration Range(RangeState state) { return(LoadContext(new FixedRangeContext(radio, state))); }
public FixAntenaContext(MainModel radio, RangeState frequencyState, SubFrequencyState subFrequency) { Radio = radio; this.fixFrequency = frequencyState; this.subFrequency = subFrequency; }
private void EnterSafeState(FlightStatus triggerStatus) { FlightLogger.eventLog.Add(string.Format("[{0}]: Range safety entered SAFE state: {1}", KSPUtil.PrintTimeCompact((int)Math.Floor(FlightGlobals.ActiveVessel.missionTime), false), FlightCorridorBase.GetFlightStatusText(triggerStatus))); State = RangeState.Safe; }
public bool TryFind(double n, out T state) { // first we check previously requested range if (_lastRangeState != null) { if (_lastRangeState.IsWithin(n)) { state = _lastRangeState.Value; return(true); } // if it isn't last check the next if (_lastRangeState.Index < (_ranges.Count - 1) && _ranges[_lastRangeState.Index + 1].IsWithin(n)) { _lastRangeState = _ranges[_lastRangeState.Index + 1]; state = _lastRangeState.Value; return(true); } } // if no ranges return NULL if (_ranges.Count == 0) { state = default(T); return(false); } var first = _ranges[0]; // check the first - in most cases the first call will ask for the first range if (first.IsWithin(n)) { _lastRangeState = first; state = _lastRangeState.Value; return(true); } // if less than all return NULL if (n < first.From) { state = default(T); return(false); } // if more than all return NULL var last = _ranges[0]; if (n > last.To) { state = default(T); return(false); } var min = 0; var max = _ranges.Count - 1; var index = GetMiddleIndex(min, max); var current = _ranges[index]; // binary search for (var i = 0; i < 512; ++i) { if (current.IsWithin(n)) { state = current.Value; _lastRangeState = current; return(true); } if (n < current.From) { max = current.Index - 1; index = GetMiddleIndex(min, max); current = _ranges[index]; } else if (n > current.To) { min = current.Index + 1; index = GetMiddleIndex(min, max); current = _ranges[index]; } } state = default(T); return(false); }
public static double ToAngle(RangeState value) => (int)value * k;