public static void SixBasicThreats()
        {
            var players = GetPlayers();

            var externalTracksByZone = new Dictionary <ZoneLocation, TrackConfiguration>
            {
                { ZoneLocation.Blue, TrackConfiguration.Track1 },
                { ZoneLocation.Red, TrackConfiguration.Track2 },
                { ZoneLocation.White, TrackConfiguration.Track3 },
            };
            const TrackConfiguration internalTrack = TrackConfiguration.Track4;

            var destroyer = new Destroyer();

            destroyer.SetInitialPlacement(4, ZoneLocation.Blue);
            var fighter1 = new Fighter();

            fighter1.SetInitialPlacement(5, ZoneLocation.Red);
            var fighter2 = new Fighter();

            fighter2.SetInitialPlacement(6, ZoneLocation.White);
            var externalThreats = new ExternalThreat[] { destroyer, fighter1, fighter2 };

            var skirmishers = new SkirmishersA();

            skirmishers.SetInitialPlacement(4);
            var fissure = new Fissure();

            fissure.SetInitialPlacement(2);
            var nuclearDevice = new NuclearDevice();

            nuclearDevice.SetInitialPlacement(6);
            var internalThreats = new InternalThreat[] { skirmishers, fissure, nuclearDevice };

            var bonusThreats = new Threat[0];

            var game = new Game(players, internalThreats, externalThreats, bonusThreats, externalTracksByZone, internalTrack, null);

            game.StartGame();
            for (var currentTurn = 0; currentTurn < game.NumberOfTurns + 1; currentTurn++)
            {
                game.PerformTurn();
            }

            Assert.AreEqual(GameStatus.Won, game.GameStatus);
            Assert.AreEqual(4, game.SittingDuck.BlueZone.TotalDamage);
            Assert.AreEqual(3, game.SittingDuck.RedZone.TotalDamage);
            Assert.AreEqual(3, game.SittingDuck.WhiteZone.TotalDamage);
            Assert.AreEqual(3, game.ThreatController.DefeatedThreats.Count());
            Assert.AreEqual(3, game.ThreatController.SurvivedThreats.Count());
            Assert.AreEqual(30, game.TotalPoints);
            Assert.AreEqual(3, game.SittingDuck.Zones.ElementAt(0).CurrentDamageTokens.Count);
            Assert.AreEqual(3, game.SittingDuck.Zones.ElementAt(1).CurrentDamageTokens.Count);
            Assert.AreEqual(4, game.SittingDuck.Zones.ElementAt(2).CurrentDamageTokens.Count);
        }
Example #2
0
        public Earthshaker(Unit9 owner, MultiSleeper abilitySleeper, Sleeper orbwalkSleeper, ControllableUnitMenu menu)
            : base(owner, abilitySleeper, orbwalkSleeper, menu)
        {
            this.ComboAbilities = new Dictionary <AbilityId, Func <ActiveAbility, UsableAbility> >
            {
                { AbilityId.earthshaker_fissure, x => this.fissure = new Fissure(x) },
                { AbilityId.earthshaker_enchant_totem, x => this.totem = new EnchantTotem(x) },
                { AbilityId.earthshaker_echo_slam, x => this.echo = new EchoSlam(x) },

                { AbilityId.item_blink, x => this.blink = new BlinkDaggerShaker(x) },
                { AbilityId.item_force_staff, x => this.force = new ForceStaff(x) },
            };
        }
        private static bool IsFarmableFissure(Fissure fissure)
        {
            if (fissure.Tier == "Lith" &&
                (fissure.MissionType == "Crossfire" ||
                 fissure.MissionType == "Extermination"))
            {
                return(true);
            }

            // removing defense for now since DE are a bunch of drunken monkeys who can't write code to
            // prevent enemies from teleporting inside walls, which makes the level un-completable
            return /*fissure.MissionType == "Defense"
                    ||*/(fissure.MissionType == "Excavation" ||
                    fissure.MissionType == "Interception" ||
                    fissure.MissionType == "Survival");
        }
Example #4
0
        public void UpdateFissures()
        {
            String fissureResponse = _client.DownloadString("https://api.warframestat.us/PC/fissures");

            JArray fissuresJArray = JArray.Parse(fissureResponse);

            List <Fissure> fissureList = new List <Fissure>();

            foreach (JObject fissureJObject in fissuresJArray)
            {
                Fissure fissure = JsonConvert.DeserializeObject <Fissure>(fissureJObject.ToString());
                if (!fissure.expired)
                {
                    fissureList.Add(fissure);
                }
            }

            fissureList = fissureList.OrderBy(o => o.tierNum).ToList();

            Fissures = fissureList;
            //return fissureList;
        }
Example #5
0
 public static string ToTitle(Fissure f)
 {
     return($"{f.Tier} {f.MissionType} on {f.Node}, ends in {ToReadable(f.EndTime.ToLocalTime() - DateTime.Now)}");
 }