Beispiel #1
0
        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));
        }
Beispiel #5
0
            /// <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();
	}
Beispiel #7
0
 public override bool IsMet(GOAPAgent agent)
 {
     return(agent.EntityState.GetValue(StateVariables.IsTalkingTo(Target)));
 }
Beispiel #8
0
 public override bool IsMet(GOAPAgent agent)
 {
     return(Entity.EntityState.GetValue(StateVariables.IsAttacking(Target)));
 }
Beispiel #9
0
        /// <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;
        }