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); }
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"); }
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; }
public static string ToTitle(Fissure f) { return($"{f.Tier} {f.MissionType} on {f.Node}, ends in {ToReadable(f.EndTime.ToLocalTime() - DateTime.Now)}"); }