コード例 #1
0
 /// <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;
 }
コード例 #2
0
        /// <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);
        }