Exemple #1
0
        /// <summary>
        /// Reset the specified teamName and material.
        /// </summary>
        /// <param name="teamName">Team name.</param>
        /// <param name="material">Material.</param>
        public void Reset(string teamName, Color color)
        {
            MeshRenderer[] renderComponents = this.gameObject.GetComponents <MeshRenderer>();
            if (renderComponents.Length != 1)
            {
                LogUtility.LogErrorFormat("Object had {0} render components", renderComponents.Length);
            }

            this.transform.localScale =
                new Vector3(
                    StaticController.GlobalShapeHorizontalScale,
                    this.transform.localScale.y,
                    StaticController.GlobalShapeHorizontalScale);

            renderComponents[0].material.color = color;

            this.gameObject.SetActive(true);

            this.TeamName = teamName;

            this.genome = GenePoolManager.GetData(teamName);

            // Key read only variables
            this.Health.Value           = InitialHealth;
            this.AttackStrength.Value   = InitialAttackStrength;
            this.GrowFoodStrength.Value = InitialGrowFoodStrength;

            // Key read write variables
            this.HelperInt1.Value           = 0;
            this.HelperInt2.Value           = 0;
            this.HelperBool1                = GeneticBool.False;
            this.HelperBool2                = GeneticBool.False;
            this.HelperGridDirection1.Value = GridDirection.North;
            this.HelperGridDirection2.Value = GridDirection.North;
        }
        /// <summary>
        /// Evaluates the Condition, and if true, executes the LeftStatement.
        /// </summary>
        /// <param name="instance">The instance to execute against.</param>
        public bool Execute(ref EntBehaviorManager instance)
        {
            GeneticBool condition = this.condition.Evaluate(ref instance);

            if ((bool)condition.Value)
            {
                return(this.leftStatement.Execute(ref instance));
            }

            return(false);
        }
Exemple #3
0
        /// <summary>
        /// Writes to variable.
        /// </summary>
        /// <param name="signature">Signature.</param>
        /// <param name="value">Value.</param>
        public void WriteToVariable(VariableSignature signature, GeneticObject value)
        {
            if (signature.VariableId == EntVariableEnum.HelperInt1)
            {
                this.HelperInt1 = value as GeneticInt;
                return;
            }

            if (signature.VariableId == EntVariableEnum.HelperInt2)
            {
                this.HelperInt2 = value as GeneticInt;
                return;
            }

            if (signature.VariableId == EntVariableEnum.HelperBool1)
            {
                this.HelperBool1 = value as GeneticBool;
                return;
            }

            if (signature.VariableId == EntVariableEnum.HelperBool2)
            {
                this.HelperBool2 = value as GeneticBool;
                return;
            }

            if (signature.VariableId == EntVariableEnum.HelperGridDirection1)
            {
                this.HelperGridDirection1 = value as GeneticGridDirection;
                return;
            }

            if (signature.VariableId == EntVariableEnum.HelperGridDirection2)
            {
                this.HelperGridDirection2 = value as GeneticGridDirection;
                return;
            }

            LogUtility.LogErrorFormat(
                "No implementation found for writable variable: {0}",
                signature);
        }