public VictoryScreen(Player player, EncounterDefinition encounterDefinition, Battle battle, IEnumerable<Turn> turns) { this.player = player; this.battle = battle; this.encounterDefinition = encounterDefinition; this.turns = turns; if (!player.CompletedEncounters.Contains(encounterDefinition.Name)) player.CompletedEncounters.Add(encounterDefinition.Name); }
public EncounterScreen(Player player, EncounterDefinition encounterDefinition, Battle battle) { this.player = player; this.encounterDefinition = encounterDefinition; this.battle = battle; battle.Start(); turns = new List<Turn>(); abilityButtons = new List<Button>(); //targettingStrategyButtons = new List<Button>(); orderQueueButtons = new List<Button>(); selectedActors = new List<Actor>(); }
private void okButton_Click() { var count = memberListBox.CheckedItems.Count(); for (int i = 0; i < count; i++) { var actor = memberListBox.CheckedItems.ElementAt(i); var a = Math.PI * 2.0 / (double)count; var x = (float)Math.Cos(i * a) * 3f; var y = (float)Math.Sin(i * a) * 3f; actor.Position = new Vector2(-10f, 0f) + new Vector2(x, y); actor.Direction = Vector2.Normalize(new Vector2(1, -1)); actor.Destination = null; actor.IsAlive = true; actor.CurrentHealth = actor.MaximumHealth; actor.CurrentMana = actor.MaximumMana; actor.Orders.Clear(); actor.ThreatList.Clear(); actor.Targets.Clear(); actor.CurrentOrder = null; actor.CastingProgress = null; actor.BaseAnimationState = BaseAnimationState.Idle; actor.PlayerControlled = true; foreach (var ability in actor.Abilities) { ability.Cooldown.Reset(); } } var battle = new Battle(encounterDefinition); battle.Actors.AddRange(memberListBox.CheckedItems.Take(encounterDefinition.HeroLimit)); VictoryScreen.SaveActors(ScreenManager, player); ScreenManager.AddScreen(new EncounterScreen(player, encounterDefinition, battle)); ScreenManager.RemoveScreen(this); }
public DefeatScreen(Player player, Battle battle) { this.player = player; this.battle = battle; }