/// <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); }
/// <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); }