Ejemplo n.º 1
0
 private List <IShipPart> getDamageableParts()
 {
     return(new List <IShipPart>()
            .Concat(Reactors.Where(x => !x.IsDestroyed()))
            .Concat(Engines.Where(x => !x.IsDestroyed()))
            .Concat(Shields.Where(x => !x.IsDestroyed()))
            .Concat(Weapons.Where(x => !x.IsDestroyed()))
            .Concat(CrewDecks.Where(x => !x.IsDestroyed())).ToList());
 }
Ejemplo n.º 2
0
        /// <summary>
        /// repairs some part that is damaged.
        /// </summary>
        /// <param name="crewDeck">Use this crewdeck's repair rate.</param>
        private void repairARandomPartThatNeedsIt(CrewDeck crewDeck)
        {
            List <IShipPart> damagedParts = new List <IShipPart>();

            damagedParts.AddRange(Reactors.Where(x => x.Health.Item1 < x.Health.Item2));
            damagedParts.AddRange(Engines.Where(x => x.Health.Item1 < x.Health.Item2));
            damagedParts.AddRange(Weapons.Where(x => x.Health.Item1 < x.Health.Item2));
            damagedParts.AddRange(Shields.Where(x => x.Health.Item1 < x.Health.Item2));
            damagedParts.AddRange(CrewDecks.Where(x => x.Health.Item1 < x.Health.Item2));

            if (damagedParts.Count() == 0)
            {
                return;
            }

            crewDeck.PerformRepair(damagedParts[GameEngine.Random(damagedParts.Count)]);
        }