private string BuildArgumentXml(Argument argument, string?value, string commandParameter = "") { var state = StateVariables.FirstOrDefault(a => string.Equals(a.Name, argument.RelatedStateVariable, StringComparison.OrdinalIgnoreCase)); if (state != null) { var sendValue = state.AllowedValues.FirstOrDefault(a => string.Equals(a, commandParameter, StringComparison.OrdinalIgnoreCase)) ?? (state.AllowedValues.Count > 0 ? state.AllowedValues[0] : value); return(string.Format(CultureInfo.InvariantCulture, "<{0} xmlns:dt=\"urn:schemas-microsoft-com:datatypes\" dt:dt=\"{1}\">{2}</{0}>", argument.Name, state.DataType, sendValue)); } return(string.Format(CultureInfo.InvariantCulture, "<{0}>{1}</{0}>", argument.Name, value)); }
public override void Enter() { agent.SetDestination(owner.Home); if (owner.GuardIndicator != null) { owner.GuardIndicator.SetIndicatorSprite(owner.GuardIndicator.GetIndicatorSprite(GeneralVariables.GUARD_ICON.DOTS)); } StateVariables stateVariables = owner.FSM.GetStateVariables <GoingHomeState>(); owner.LightFeedback.SetColour(stateVariables.GetLightColour()); owner.VisionCone.SetMaterialColour(stateVariables.GetLightColour()); agent.speed = stateVariables.GetMovementSpeed(); }
public override void Enter() { target = GameObject.FindGameObjectWithTag(GeneralVariables.PlayerTag).transform; if (owner.GuardIndicator != null) { owner.GuardIndicator.SetIndicatorSprite(owner.GuardIndicator.GetIndicatorSprite(GeneralVariables.GUARD_ICON.EXCLAMATION)); } StateVariables stateVariables = owner.FSM.GetStateVariables <ChasePlayerState>(); owner.LightFeedback.SetColour(stateVariables.GetLightColour()); owner.VisionCone.SetMaterialColour(stateVariables.GetLightColour()); agent.speed = stateVariables.GetMovementSpeed(); }
private string BuildArgumentXml(Argument argument, string value, string commandParameter = "") { var state = StateVariables.FirstOrDefault(a => a.Name == argument.RelatedStateVariable); if (state != null) { var sendValue = (state.AllowedValues.FirstOrDefault(a => a == commandParameter) ?? state.AllowedValues.FirstOrDefault()) ?? value; return(string.Format("<{0} xmlns:dt=\"urn:schemas-microsoft-com:datatypes\" dt:dt=\"{1}\">{2}</{0}>", argument.Name, state.DataType ?? "string", sendValue)); } return(string.Format("<{0}>{1}</{0}>", argument.Name, value)); }
/// <summary> /// This method returns the list of variables in the log file from the log descriptor /// in the same order as they are defined in the descriptor /// </summary> /// <returns>The list of variables read from the log descriptor</returns> public Descriptor(string logDescriptorFileName) { List <string> variableList = new List <string>(); XmlDocument logDescriptor = new XmlDocument(); if (File.Exists(logDescriptorFileName)) { try { logDescriptor.Load(logDescriptorFileName); XmlNode node = logDescriptor.FirstChild; if (node.Name == XMLTags.descriptorRootNodeName) { if (node.Attributes.GetNamedItem(XMLTags.descriptorBinaryDataFile) != null) { BinaryLogFile = node.Attributes[XMLTags.descriptorBinaryDataFile].Value; } if (node.Attributes.GetNamedItem(XMLTags.descriptorSceneFile) != null) { SceneFile = node.Attributes[XMLTags.descriptorSceneFile].Value; } foreach (XmlNode child in node.ChildNodes) { string variableName = child.InnerText; switch (child.Name) { case XMLTags.descriptorStateVarNodeName: StateVariables.Add(variableName); break; case XMLTags.descriptorActionVarNodeName: ActionVariables.Add(variableName); break; case XMLTags.descriptorRewardVarNodeName: RewardVariables.Add(variableName); break; case XMLTags.descriptorStatVarNodeName: StatVariables.Add(variableName); break; } } } } catch (Exception ex) { throw new Exception("Error loading log descriptor: " + logDescriptorFileName + ex.Message); } } }
private static void InitStateVariables() { _stateVariables = new StateVariables(); }
public override bool IsMet(GOAPAgent agent) { return(agent.EntityState.GetValue(StateVariables.IsTalkingTo(Target))); }
public override bool IsMet(GOAPAgent agent) { return(Entity.EntityState.GetValue(StateVariables.IsAttacking(Target))); }
/// <summary> /// Takes a time step /// </summary> /// <param name="Endtime"></param> public void MoveInTime(DateTime Endtime) { double output = 0; CurrentTime = Endtime; CurrentState = StateVariables.Rows.Find(new object[] { ID, CurrentTime }); if (CurrentState == null) { CurrentState = StateVariables.NewRow(); CurrentState["ID"] = ID; CurrentState["Time"] = CurrentTime; StateVariables.Rows.Add(CurrentState); } foreach (var S in SourceModels) { double value; if (S.Update) { value = S.GetValue(this, Endtime) * DateTime.DaysInMonth(Endtime.Year, Endtime.Month) * 86400.0; CurrentState[S.Name] = value; } if (!CurrentState.IsNull(S.Name)) { output += (double)CurrentState[S.Name]; } } foreach (var R in InternalReduction) { double value; if (R.Update) { value = R.GetReduction(this, output, Endtime) * DateTime.DaysInMonth(Endtime.Year, Endtime.Month) * 86400.0; CurrentState[R.Name] = value; } if (!CurrentState.IsNull(R.Name)) { output -= (double)CurrentState[R.Name]; } } foreach (var ups in UpstreamConnections) { output += ups.GetDownStreamOutput(Endtime); } //Do the global reductions foreach (var R in MainStreamReduction) { double value; if (R.Update) { value = R.GetReduction(this, output, Endtime) * DateTime.DaysInMonth(Endtime.Year, Endtime.Month) * 86400.0; CurrentState[R.Name] = value; } if (!CurrentState.IsNull(R.Name)) { output -= (double)CurrentState[R.Name]; } } if (Precipitation != null) { CurrentState["Precipitation"] = Precipitation.GetTs(TimeStepUnit.Month).GetValue(CurrentTime); } if (Temperature != null) { CurrentState["Air Temperature"] = Temperature.GetValue(CurrentTime, InterpolationMethods.DeleteValue); } if (M11Flow != null) { CurrentState["M11Flow"] = M11Flow.GetTs(TimeStepUnit.Month).GetValue(CurrentTime) * DateTime.DaysInMonth(CurrentTime.Year, CurrentTime.Month) * 86400; CurrentState["NetM11Flow"] = NetInflow.GetTs(TimeStepUnit.Month).GetValue(CurrentTime) * DateTime.DaysInMonth(CurrentTime.Year, CurrentTime.Month) * 86400; } if (Leaching != null) { CurrentState["Leaching"] = Leaching.GetValue(CurrentTime, InterpolationMethods.DeleteValue) * DateTime.DaysInMonth(CurrentTime.Year, CurrentTime.Month) * 86400; } if (Measurements != null) { CurrentState["ObservedFlow"] = Measurements.Flow.GetValue(CurrentTime, InterpolationMethods.DeleteValue); CurrentState["ObservedNitrate"] = Measurements.Nitrate.GetValue(CurrentTime, InterpolationMethods.DeleteValue); if (ObsNitrate == null) { ObsNitrate = new FixedTimeStepSeries() { TimeStepSize = TimeStepUnit.Month, StartTime = CurrentTime }; SimNitrate = new FixedTimeStepSeries() { TimeStepSize = TimeStepUnit.Month, StartTime = CurrentTime }; } ObsNitrate.Add(Measurements.Nitrate.GetValue(CurrentTime, InterpolationMethods.DeleteValue)); SimNitrate.Add(output); } CurrentState["DownStreamOutput"] = output; }