public Citizen() { SteeringBehaviors = new SteeringBehaviors(this, enemy); _personTexture = new AnimatedTexture(new Vector2D(16,16), 0, 1, 0); Mass = 0.1f; double rotation = VectorHelper.RandFloat()*(Math.PI*2); Heading = new Vector2D((float)Math.Sin(rotation), (float)-Math.Cos(rotation)); MaxSpeed = 50f; MaxForce = 50f; Velocity = new Vector2D(0, 0); Side = Heading.Perp(); Target = new Vector2D(0,0); Bradius = 16; Brain = new Think(this); Brain.Activate(); Strength = 0; fm = new FuzzyModule(); Fuzzy_Desirability = fm.CreateFLV("Desirability"); FuzzySet Low_Desirability = Fuzzy_Desirability.AddLeftShoulderSet("Low", 0, 100, 200); FuzzySet Average_Desirability = Fuzzy_Desirability.AddTriangleSet("Average", 100, 200, 375); FuzzySet Very_Desirability = Fuzzy_Desirability.AddRightShoulderSet("Very", 200, 375, 500); Fuzzy_DistanceToTarget = fm.CreateFLV("Distance to Target"); FuzzySet TargetClose = Fuzzy_DistanceToTarget.AddLeftShoulderSet("TargetClose", 0, 300, 800); FuzzySet TargetMedium = Fuzzy_DistanceToTarget.AddTriangleSet("TargetMedium", 300, 800, 1300); FuzzySet TargetFar = Fuzzy_DistanceToTarget.AddRightShoulderSet("TargetFar", 800, 1300, 1600); Fuzzy_Strength = fm.CreateFLV("Strength"); FuzzySet Weak_Strength = Fuzzy_Strength.AddLeftShoulderSet("Weak", 0, 10000, 50000); FuzzySet Average_Strength = Fuzzy_Strength.AddTriangleSet("Average", 10000, 50000, 75000); FuzzySet Strong_Strength = Fuzzy_Strength.AddRightShoulderSet("Strong", 50000, 75000, 100000); fm.AddRule(new FuzzyAnd(Strong_Strength, TargetClose), Very_Desirability); fm.AddRule(new FuzzyAnd(Strong_Strength, TargetMedium), Average_Desirability); fm.AddRule(new FuzzyAnd(Strong_Strength, TargetFar), Low_Desirability); fm.AddRule(new FuzzyAnd(Weak_Strength, TargetClose), Low_Desirability); fm.AddRule(new FuzzyAnd(Weak_Strength, TargetMedium), Average_Desirability); fm.AddRule(new FuzzyAnd(Weak_Strength, TargetFar), Very_Desirability); fm.AddRule(new FuzzyAnd(Average_Strength, TargetMedium), Average_Desirability); fm.AddRule(new FuzzyAnd(Average_Strength, TargetClose), Average_Desirability); fm.AddRule(new FuzzyAnd(Average_Strength, TargetFar), Average_Desirability); }
public Thug() { _personTexture = new AnimatedTexture(new Vector2D(16,16), 0, 1, 0); Heading = new Vector2D(0,0); Bradius = 16; }