public static void RaiseMoveRandomCards(GameView gameView, int amount, string sourceSectorCode, string targetSectorCode) { List<CardPosition> positions; PlayerStructure activePlayer = gameView.GameStructure.GetActivePlayer(); ISectorView targetSectorView = (ISectorView)gameView.Controls.Find(activePlayer.Sectors.Single(e => e.Item.Code == targetSectorCode).SectorKey, true).First(); if(GameViewHelper.TryGetSectorValidCardPositions(targetSectorView, CardPositionOffset.Top, amount, out positions)) gameView.Controller.MoveRandomCards(amount, sourceSectorCode, targetSectorCode, positions, null); }
public static void RaiseSetLifePoints(GameView gameView, PlayerStatusView playerStatusView, SetLifePointsMode mode) { if(gameView.ChangePointsAbilitationByPlayer[playerStatusView.Name]) { int? num = null; switch(mode) { case SetLifePointsMode.Add: num = playerStatusView.PlayerPoints + 1; break; case SetLifePointsMode.Subtract: num = playerStatusView.PlayerPoints - 1; break; case SetLifePointsMode.Query: num = QueryForNumber(gameView, true); if(num.HasValue) num = playerStatusView.PlayerPoints + num.Value; break; } if(num.HasValue) gameView.Controller.SetPlayerPoints(playerStatusView.Name, num.Value); } }
public static void RaiseMoveCards(GameView gameView, List<CardView> cardViews, string targetSectorCode, CardVisibility? visibility) { RaiseMoveCards(gameView, cardViews, targetSectorCode, CardPositionOffset.Top, visibility); }
public static void RaiseMoveCards(GameView gameView, List<CardView> cardViews, string targetSectorCode, CardPositionOffset offset, CardVisibility? visibility) { foreach(var cardsByOwner in cardViews.GroupBy(c => c.CardViewItem.OwnerPlayerKey)) { List<CardPosition> positions; PlayerStructure ownerPlayer = gameView.GameStructure.GetPlayer(cardsByOwner.Key); ISectorView targetSectorView = (ISectorView)gameView.Controls.Find(ownerPlayer.Sectors.Single(e => e.Item.Code == targetSectorCode).SectorKey, true).First(); if(GameViewHelper.TryGetSectorValidCardPositions(targetSectorView, offset, cardsByOwner.Count(), out positions)) gameView.Controller.MoveCards(cardsByOwner.Select(e => e.Name).ToList(), targetSectorCode, positions, visibility); } }
public static void RaiseMoveCards(GameView gameView, List<CardView> cardViews, string targetSectorCode, CardPositionOffset offset) { RaiseMoveCards(gameView, cardViews, targetSectorCode, offset, null); }
public static void RaiseDuplicateCard(GameView gameView) { List<CardPosition> cardPositions; var sectorKey = gameView.GameStructure.GetActivePlayer().Sectors.Single(e => e.Item.Code == SystemSectors.BATTLEFIELD.ToString()).SectorKey; ISectorView sectorView = (ISectorView)gameView.Controls.Find(sectorKey, true).First(); var cardView = sectorView.CardViews.FirstOrDefault(c => c.Selected); if(cardView != null) if(GameViewHelper.TryGetSectorValidCardPositions(sectorView, CardPositionOffset.Top, 1, out cardPositions)) gameView.Controller.DuplicateCard(cardView.Name, cardPositions.First()); }
public static void RaiseCreatePawn(GameView gameView) { PawnEditor dlg = new PawnEditor(string.Empty, string.Empty, string.Empty, string.Empty); dlg.StartPosition = FormStartPosition.CenterScreen; if(dlg.ShowDialog(gameView) == DialogResult.OK) { var sectorKey = gameView.GameStructure.GetActivePlayer().Sectors.Single(e => e.Item.Code == SystemSectors.BATTLEFIELD.ToString()).SectorKey; ISectorView sectorView = (ISectorView)gameView.Controls.Find(sectorKey, true).First(); List<CardPosition> cardPositions; if(GameViewHelper.TryGetSectorValidCardPositions(sectorView, CardPositionOffset.Top, 1, out cardPositions)) gameView.Controller.CreatePawn(sectorView.SectorKey, dlg.NewName, dlg.NewType, dlg.NewText, dlg.NewCharacteristics, cardPositions.First()); } }
public static void RaiseChangeCardCharacteristics(GameView gameView, ChangeCardCharacteristicsMode mode) { var sectorKey = gameView.GameStructure.GetActivePlayer().Sectors.Single(e => e.Item.Code == SystemSectors.BATTLEFIELD.ToString()).SectorKey; ISectorView sectorView = (ISectorView)gameView.Controls.Find(sectorKey, true).First(); var cards = sectorView.CardViews.Where(c => c.Selected).ToList(); if(cards.Count > 0) { string characteristics = null; bool applyNumericalIncrement = true; switch(mode) { case ChangeCardCharacteristicsMode.AddPower: characteristics = "1/0"; break; case ChangeCardCharacteristicsMode.SubtractPower: characteristics = "-1/0"; break; case ChangeCardCharacteristicsMode.AddToughness: characteristics = "0/1"; break; case ChangeCardCharacteristicsMode.SubtractToughness: characteristics = "0/-1"; break; case ChangeCardCharacteristicsMode.Query: { CharacteristicsEditor dlg = new CharacteristicsEditor(cards.Count > 1 ? string.Empty : cards.First().CardViewItem.CustomCharacteristics); dlg.StartPosition = FormStartPosition.CenterScreen; if(dlg.ShowDialog(gameView) == DialogResult.OK) { characteristics = dlg.CardCharacteristics; applyNumericalIncrement = dlg.ApplyNumericalIncrement; } } break; } if(characteristics != null) gameView.Controller.SetCardsCustomCharacteristics(cards.Select(c => c.Name).ToList(), characteristics, true, applyNumericalIncrement); } }
public static void RaiseAddCardToken(GameView gameView) { var sectorKey = gameView.GameStructure.GetActivePlayer().Sectors.Single(e => e.Item.Code == SystemSectors.BATTLEFIELD.ToString()).SectorKey; ISectorView sectorView = (ISectorView)gameView.Controls.Find(sectorKey, true).First(); var cardKeys = sectorView.CardViews.Where(c => c.Selected && c.TokenKeys.Count() < 6).Select(e => e.Name).ToList(); if(cardKeys.Count > 0) gameView.Controller.AddToken(cardKeys, 1, string.Empty, TokenColor.Red); }