public void CreateControllerTest_InputAlienWave() { //Erzeugung Testumgebung ControllerManager target = new ControllerManager(); //Nicht benötigt object sender = null; BehaviourEnum behaviour = BehaviourEnum.BlockMovement; LinkedList <IGameItem> controllees = new LinkedList <IGameItem>(); controllees.AddFirst(new Alien(Vector2.Zero, new Vector2(5, 5), 1, 1, new PlayerNormalWeapon(), 7)); DifficultyLevel difficultyLevel = DifficultyLevel.EasyDifficulty; ControllerEventArgs desiredController = new ControllerEventArgs(behaviour, controllees, difficultyLevel); // TODO: Initialize to an appropriate value //Test start target.CreateController(sender, desiredController); //Testergebnis Assert.AreEqual(target.Controllers.Count, 1); }
public void CreateFormationTest() { GameItem.GameItemList = new LinkedList <IGameItem>(); BehaviourEnum AI = BehaviourEnum.BlockMovement; int hitpoints = 10; Vector2 velocity = new Vector2(40.0f, 40.0f); Vector2[] formation = FormationGenerator.ArrowFormation; int damage = 10; int scoreGain = 10; LinkedList <IGameItem> wave = new LinkedList <IGameItem>(); for (int i = 0; i < formation.Length; i++) { wave.AddLast(new Alien(formation[i], velocity, hitpoints, damage, GameItemConstants.AlienWeapon, scoreGain)); } LinkedList <IGameItem> expected = wave; LinkedList <IGameItem> actual; actual = FormationGenerator.CreateFormation(AI, hitpoints, velocity, formation, damage, scoreGain); LinkedListNode <IGameItem> item2 = expected.First; for (LinkedListNode <IGameItem> item1 = actual.First; item1 != null; item1 = item1.Next) { Assert.AreEqual(item2.Value.BoundingVolume, item1.Value.BoundingVolume); Assert.AreEqual(item2.Value.Damage, item1.Value.Damage); Assert.AreEqual(item2.Value.Hitpoints, item1.Value.Hitpoints); Assert.AreEqual(item2.Value.IsAlive, item1.Value.IsAlive); Assert.AreEqual(item2.Value.Position, item1.Value.Position); Assert.AreEqual(item2.Value.Velocity, item1.Value.Velocity); Enemy item2Enemy = (Enemy)item2.Value; Enemy item1Enemy = (Enemy)item1.Value; Assert.AreEqual(item2Enemy.ScoreGain, item1Enemy.ScoreGain); Assert.ReferenceEquals(item2Enemy.Weapon, item1Enemy.Weapon); item2 = item2.Next; } GameItem.GameItemList = null; }
public IBehaviour Create(ProductBase productBase, BehaviourEnum behaviour) { switch (behaviour) { case BehaviourEnum.Payout: return(new PayoutWithdrawalBehaviour(productBase)); case BehaviourEnum.FinalRebalancing: return(new FinalRebalancingBehaviour(productBase)); case BehaviourEnum.AnnualRebalancing: return(new AnnualRebalancingBehaviour(productBase)); case BehaviourEnum.FlexibleAllocationsRebalancing: return(new FlexibleAllocationRebalancingBehaviour(productBase)); default: throw new BehaviourNotFoundException(); } }
/// <summary> /// Erzeugt eine Liste von Gegner-Objekten aus einem Vector2-Array. /// </summary> /// <param name="AI">Art der Welle</param> /// <param name="hitpoints">Lebenspunkte</param> /// <param name="velocity">Geschwindigkeit</param> /// <param name="formation">Formation der Welle</param> /// <param name="damage">Kollisionsschaden</param> /// <param name="scoreGain">Abschusspunktzahl</param> /// <returns>Die generierte Liste von Gegnern</returns> public static LinkedList <IGameItem> CreateFormation(BehaviourEnum AI, int hitpoints, Vector2 velocity, Vector2[] formation, int damage, int scoreGain) { LinkedList <IGameItem> wave = new LinkedList <IGameItem>(); if (AI.Equals(BehaviourEnum.MothershipMovement)) { for (int i = 0; i < formation.Length; i++) { wave.AddLast(new Mothership(formation[i], velocity, hitpoints, damage, GameItemConstants.MothershipWeapon, scoreGain)); } } else { for (int i = 0; i < formation.Length; i++) { wave.AddLast(new Alien(formation[i], velocity, hitpoints, damage, GameItemConstants.AlienWeapon, scoreGain)); } } return(wave); }
/// <summary> /// Erzeugt eine neue Welle und ruft danach das Event "WaveGenerated" auf, um dem Controller die gewünschten Controller-Eigenschaften mitzuteilen. /// </summary> /// <remarks>Dem Event "WaveGenerated" werden die gewünschte Controller-AI, die erstellte Liste an Gegnern und das Schwierigkeitsgrad-Objekt übergeben.</remarks> /// <param name="AI">gewünschtes Verhalten des Controllers</param> /// <param name="formation">gewünschte Formation der Welle</param> /// <param name="difficultyLevel">gewünschter Schwierigkeitsgrad</param> /// <returns>Eine Liste von Gegnern, die die aktuelle Welle darstellen</returns> public static LinkedList <IGameItem> CreateWave(BehaviourEnum AI, Vector2[] formation, DifficultyLevel difficultyLevel) { int hitpoints; Vector2 velocity; int damage; int scoreGain; LinkedList <IGameItem> wave = null; if (AI.Equals(BehaviourEnum.MothershipMovement)) { hitpoints = (int)(GameItemConstants.MothershipHitpoints * difficultyLevel.HitpointsMultiplier); velocity.X = GameItemConstants.MothershipVelocity.X * difficultyLevel.VelocityMultiplier.X; velocity.Y = GameItemConstants.MothershipVelocity.Y * difficultyLevel.VelocityMultiplier.Y; damage = (int)(GameItemConstants.MothershipDamage * difficultyLevel.DamageMultiplier); scoreGain = (int)(GameItemConstants.MothershipScoreGain * difficultyLevel.ScoreGainMultiplier); wave = FormationGenerator.CreateFormation(BehaviourEnum.MothershipMovement, hitpoints, velocity, formation, damage, scoreGain); } else { hitpoints = (int)(GameItemConstants.AlienHitpoints * difficultyLevel.HitpointsMultiplier); velocity.X = GameItemConstants.AlienVelocity.X * difficultyLevel.VelocityMultiplier.X; velocity.Y = GameItemConstants.AlienVelocity.Y * difficultyLevel.VelocityMultiplier.Y; damage = (int)(GameItemConstants.AlienDamage * difficultyLevel.DamageMultiplier); scoreGain = (int)(GameItemConstants.AlienScoreGain * difficultyLevel.ScoreGainMultiplier); wave = FormationGenerator.CreateFormation(BehaviourEnum.BlockMovement, hitpoints, velocity, formation, damage, scoreGain); } if (WaveGenerated != null) { WaveGenerated(null, new ControllerEventArgs(AI, wave, difficultyLevel)); } return(wave); }
public DefaultMethodBehaviourAttribute(BehaviourEnum behaviour) { Behaviour = behaviour; }
/// <summary> /// Konstruktor /// </summary> /// <param name="behaviour">gewünschtes Verhalten des Controllers</param> /// <param name="controllees">Liste der zu kontrollierenden Gegner</param> /// <param name="difficultyLevel">Schwierigkeitsgrad der Gegner</param> public ControllerEventArgs(BehaviourEnum behaviour, LinkedList <IGameItem> controllees, DifficultyLevel difficultyLevel) { this.Behaviour = behaviour; this.Controllees = controllees; this.DifficultyLevel = difficultyLevel; }
public SimpleBrain() { _behaviour = BehaviourEnum.NotSet; _target = null; }