protected override void addTrialEventsAndChoices() { TrialEvents.Add( new CardEffectPair( (Game game, Player choosingPlayer, ChoiceHandler choiceHandler) => { CardChoice peekFunc = genRevealOrPeakCardChoice(new HashSet <Property>() { Property.Language }, 2, false, this.CardInfo.TrialInChiefInfos[0].Description); BoardChoices boardChoices = peekFunc(game, choosingPlayer, choiceHandler); if (boardChoices.NotCancelled) { boardChoices.NotCancelled = handleMomentOfInsightChoice(new Player.PlayerSide[] { Player.PlayerSide.Prosecution, Player.PlayerSide.Defense }, game, choosingPlayer, choiceHandler, out boardChoices.MoIInfo); } return(boardChoices); }, (Game game, Player choosingPlayer, BoardChoices choices) => { peekAllAspects(game, choosingPlayer, choices); handleMomentOfInsight(game, choosingPlayer, choices); })); }
private void CardChoice_OnClickDrawNewCard(object sender, EventArgs e) { CardChoice card = (CardChoice)_CardHandler.CurrentCard; card.Action = CardChoice.ActionOption.DRAWCARD; _CardHandler.ExecuteCardAction(card); this.Content = new CardDialog(_CardHandler.CurrentCard); }
public static CardChoice ChooseCard(BoardState state) { string choiceSstring = ModelManager.ChooseDrawCard(state.DiscardPile.Last().Number); int choiceInt = int.Parse(choiceSstring); CardChoice choice = (CardChoice)Enum.ToObject(typeof(CardChoice), choiceInt); return(choice); }
private static void RecordMoveandResults(BoardState state, CardChoice choice, Card card, CardPlacement placement, int change) { DecisionResults results = new DecisionResults(); results.DrawChoice = choice; results.DrawnCardValue = card.Number; results.PlacementChoice = placement; results.HandValueChange = change; JSONwriter.RecordStateAndResults(state, results); }
// Use this for initialization void Start() { if (choices == null) { choices = this; } else if (choices != this) { Destroy(gameObject); } }
internal Card GetCardFromChoice(CardChoice choice) { if (choice == CardChoice.Discard) { return(TakeTopOfDiscardPile()); } else { return(TakeTopOfMainDeck()); } }
public CardEffectPair(CardChoice choiceFunc, CardEffect effectFunc, Func <Game, Player, bool> selectable = null) { CardChoice = choiceFunc; CardEffect = effectFunc; Selectable = (Game game, Player player) => { return(true); }; if (selectable != null) { Selectable = selectable; } }
public static CardChoice ChooseCard(BoardState state) { //string sum = PythonRunner.RunScript(3, 4); Random rand = new Random(); string[] choices = Enum.GetNames(typeof(CardChoice)); int i = rand.Next(choices.Length); CardChoice thisChoice = (CardChoice)Enum.ToObject(typeof(CardChoice), i); return(thisChoice); }
protected CardEffectPair genAttorneyJurySelectPeekEffectPair(int sameSideVal, int oppSideVal, int infoIdx) { return(new CardEffectPair( (Game game, Player choosingPlayer, ChoiceHandler handler) => { int numChoices = (choosingPlayer.Side == side) ? sameSideVal : oppSideVal; CardChoice func = genRevealOrPeakCardChoice(new HashSet <Property>() { }, numChoices, false, this.CardInfo.JurySelectionInfos[infoIdx].Description); return func(game, choosingPlayer, handler); }, peekAllAspects)); }
private void getNewCards() { instruction.text = "Player " + player + " make your choice"; int choiceN = random.Next(0, cardPairs.Count); currentCards = cardPairs.ElementAt(choiceN).GetComponent("CardChoice") as CardChoice; cardPairs.RemoveAt(choiceN); leftCard.GetComponentInChildren <Text>().text = currentCards.choice1; rightCard.GetComponentInChildren <Text>().text = currentCards.choice2; eventSys.SetSelectedGameObject(leftCard); }
// Event for CardChoice private void CardChoice_OnClickPay(object sender, EventArgs e) { CardChoice card = (CardChoice)_CardHandler.CurrentCard; card.Action = CardChoice.ActionOption.PAY; try { _CardHandler.ExecuteCardAction(card); this.Content = null; } catch (BankBalanceIsNotEnougth exp) { this.Content = null; EventException(exp.Amount, card); } }
// Use this for initialization void Start() { random = new System.Random(); player = random.Next(1, 3); //Aloittava pelaaja valitaan satunnaisesti instruction = GameObject.Find("Instruction").GetComponent <Text>(); instruction.text = "Player " + player + " choose your weapon"; int weaponChoiceN = random.Next(0, weaponPairs.Length); currentCards = weaponPairs[weaponChoiceN].GetComponent("CardChoice") as CardChoice; leftCard.GetComponentInChildren <Text>().text = currentCards.choice1; rightCard.GetComponentInChildren <Text>().text = currentCards.choice2; eventSys.SetSelectedGameObject(leftCard); }
RevealCardResolutions RevealCard(CardChoice cardChoice) //Reveals the card at the index of the deck { try { if (cardChoice == CardChoice.PASS) { return(RevealCardResolutions.PASS); } int index = (int)cardChoice; if (deck.Cards[index].State == CardState.Revealed) { return(RevealCardResolutions.ALREADY_REVEALED); } else { deck.Cards[index].State = CardState.Revealed; CardColor cardColor = keyCard.data[index]; switch (cardColor) { case CardColor.Red: return(RevealCardResolutions.REVEALED_RED_TEAM_CARD); case CardColor.Blue: return(RevealCardResolutions.REVEALED_BLUE_TEAM_CARD); case CardColor.Brown: return(RevealCardResolutions.REVEALED_BROWN_TEAM_CARD); case CardColor.Black: return(RevealCardResolutions.REVEALED_BLACK_TEAM_CARD); default: throw new System.Exception("RevealCardResolutions not implemented: " + cardColor); } } } catch { return(RevealCardResolutions.ERROR); } }
public void ProcessCurrentTurn() { if (CurrentPlayerHuman) { Views.DrawChoiceWindow drawChoiceWindow = new Views.DrawChoiceWindow(); drawChoiceWindow.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen; drawChoiceWindow.ShowDialog(); CardChoice choice = drawChoiceWindow.DrawCard; Card card = TheBoard.GetCardFromChoice(choice); Views.PlacementChoiceWindow placementWindow = new Views.PlacementChoiceWindow(); placementWindow.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen; placementWindow.label_DrawnCard.Content = string.Format("Drawn Value: {0}", card.Number); placementWindow.ShowDialog(); CardPlacement placement = placementWindow.Placement; int change = TheBoard.MakePlayerCardPlacement(placement, card); RecordMoveandResults(TheBoard.GetBoardStateOfPlayer(TheBoard.CurrentPlayer), choice, card, placement, change); EndTurn(); } else { BoardState state = TheBoard.GetBoardStateOfPlayer(TheBoard.CurrentPlayer); PlayerModel pModel = GetModelOfPlayer(TheBoard.CurrentPlayer); CardChoice choice = pModel.ComputerChooseCard(state); Card card = TheBoard.GetCardFromChoice(choice); CardPlacement placement = GetPlacementChoice(pModel, card); int change = TheBoard.MakePlayerCardPlacement(placement, card); RecordMoveandResults(state, choice, card, placement, change); EndTurn(); } }
protected override void addTrialEventsAndChoices() { TrialEvents.Add( new CardEffectPair( (Game game, Player choosingPlayer, ChoiceHandler choiceHandler) => { CardChoice pickAspectFunc = genAspectTrackForModCardChoice(new HashSet <Property>(), 1, -2, false, this.CardInfo.TrialInChiefInfos[0].Description); BoardChoices boardChoices = pickAspectFunc(game, choosingPlayer, choiceHandler); if (boardChoices.NotCancelled) { boardChoices.NotCancelled = handleMomentOfInsightChoice(new Player.PlayerSide[] { Player.PlayerSide.Defense }, game, choosingPlayer, choiceHandler, out boardChoices.MoIInfo); } return(boardChoices); }, (Game game, Player choosingPlayer, BoardChoices choices) => { choices.SelectedObjs.Keys.Cast <AspectTrack>().ToList().ForEach(t => t.AddToValue(-2)); handleMomentOfInsight(game, choosingPlayer, choices); })); }
public TeamCardSubmission(CardChoice index, CardColor team) { cardIndex = index; teamColor = team; }
// Update is called once per frame void Update() { direction = Input.GetAxis("Horizontal-" + player); if (Input.GetButtonDown("SelectCard-" + player)) { GameObject selected = eventSys.currentSelectedGameObject; GameObject unselected; if (selected == leftCard) { unselected = rightCard; } else { unselected = leftCard; } if (choicesMade == 0) { GameObject.Find("Stats-" + player).GetComponent <PlayerStats>().weapon = selected.GetComponentInChildren <Text>().text; player = nextPlayer(); GameObject.Find("Stats-" + player).GetComponent <PlayerStats>().weapon = unselected.GetComponentInChildren <Text>().text; choicesMade += 1; int mapChoiceN = random.Next(0, mapPairs.Length); currentCards = mapPairs[mapChoiceN].GetComponent("CardChoice") as CardChoice; instruction.text = "Player " + player + " choose the arena"; leftCard.GetComponentInChildren <Text>().text = currentCards.choice1; rightCard.GetComponentInChildren <Text>().text = currentCards.choice2; eventSys.SetSelectedGameObject(leftCard); } else if (choicesMade == 1) { GameObject.Find("Stats-" + player).GetComponent <PlayerStats>().map = selected.GetComponentInChildren <Text>().text; player = nextPlayer(); GameObject.Find("Stats-" + player).GetComponent <PlayerStats>().map = selected.GetComponentInChildren <Text>().text; choicesMade += 1; getNewCards(); } else { PlayerStats leftP; PlayerStats rightP; if (selected == leftCard) { leftP = GameObject.Find("Stats-" + player).GetComponent <PlayerStats>(); player = nextPlayer(); rightP = GameObject.Find("Stats-" + player).GetComponent <PlayerStats>(); } else { rightP = GameObject.Find("Stats-" + player).GetComponent <PlayerStats>(); player = nextPlayer(); leftP = GameObject.Find("Stats-" + player).GetComponent <PlayerStats>(); } switch (currentCards.gameObject.name) { case "SpeedHp": leftP.speedMod *= 1.5f; leftP.hpMod *= 0.5f; rightP.speedMod *= 2.0f; rightP.hpMod *= 2.0f; break; case "SizeDamage": leftP.sizeMod *= 1.25f; leftP.damageMod *= 1.25f; rightP.sizeMod *= 0.75f; rightP.damageMod *= 0.75f; break; case "HeavyFloaty": leftP.fallMult = 5f; rightP.fallMult = 0.1f; break; case "Invert": leftP.invertVertical = true; rightP.invertHorizontal = true; break; case "LifeJump": leftP.hpMod *= 2.0f; leftP.hasNoJump = true; rightP.hasDoubleJump = true; break; case "JumpDash": leftP.hasDoubleJump = true; rightP.hasDash = true; break; case "FireDamage": leftP.fireRateMod *= 0.5f; leftP.damageMod *= 0.5f; rightP.fireRateMod *= 2.0f; rightP.damageMod *= 2.0f; break; case "AccuracySpeed": leftP.accuracyMod *= 1.5f; rightP.speedMod *= 1.5f; break; case "Beauty": leftP.hasOuterBeauty = true; rightP.hasInnerBeauty = true; break; case "SmartDumb": leftP.isSmart = true; rightP.isDumb = true; break; default: Console.WriteLine("En tiedä mitä valitsit :("); break; } choicesMade += 1; if (choicesMade < maxChoices) { getNewCards(); } else { switch (GameObject.Find("Stats-" + player).GetComponent <PlayerStats>().map) { case "Open": SceneManager.LoadScene("Map1"); break; case "Less platforms but more walls": SceneManager.LoadScene("Map2"); break; case "Maze": SceneManager.LoadScene("map3"); break; case "More platforms but less walls": SceneManager.LoadScene("map4"); break; default: SceneManager.LoadScene(0); break; } } } } if (direction < 0) { eventSys.SetSelectedGameObject(leftCard); } else if (direction > 0) { eventSys.SetSelectedGameObject(rightCard); } }
public void ExecuteCardAction(Card c) { if (c is CardUpdateMoney) { CardUpdateMoney card = (CardUpdateMoney)c; if (card.Amount < 0) { _PlayerHandler.PayeAmount(PlayerHandler.Instance.currentPlayer, Math.Abs(card.Amount)); } else { _PlayerHandler.CardGiveMoney(PlayerHandler.Instance.currentPlayer, card.Amount); } } else if (c is CardUpdateMoneyAccordingBuilds) { CardUpdateMoneyAccordingBuilds card = (CardUpdateMoneyAccordingBuilds)c; ObservableCollection <Property> properties = _PlayerHandler.Properties(); int Amount = 0; foreach (Property p in properties) { if (p is Land) { Land l = (Land)p; Amount += l.NbHotel * card.CostHotel; Amount += l.NbHouse * card.CostHouse; } } _PlayerHandler.PayeAmount(PlayerHandler.Instance.currentPlayer, Math.Abs(Amount)); } else if (c is CardAnniversary) { CardAnniversary card = (CardAnniversary)c; Player current = _PlayerHandler.currentPlayer; Predicate <Player> findAllPlayerWithoutDrawer = (Player p) => { return(p.Id != current.Id); }; List <Player> players = _PlayerHandler.ListOfPlayers.FindAll(findAllPlayerWithoutDrawer); foreach (Player p in players) { _PlayerHandler.PayeTo(p, current, card.Amount); } } else if (c is CardMove) { CardMove card = (CardMove)c; Player current = _PlayerHandler.currentPlayer; _PlayerHandler.MoveTo(current, (current.Position + card.NbMove)); } else if (c is CardMoveToCell) { CardMoveToCell card = (CardMoveToCell)c; Player current = _PlayerHandler.currentPlayer; _PlayerHandler.MoveTo(current, _BoardHandler.Board.GetCell(card.CellPosition)); } else if (c is CardMoveToJail) { CardMoveToJail card = (CardMoveToJail)c; Player current = _PlayerHandler.currentPlayer; current.InJail = true; DicesHandler.Instance.PlayerCanBeRaise = false; _PlayerHandler.MoveTo(current, _BoardHandler.Board.GetCell(card.CellPosition)); } else if (c is CardExitToJail) { CardExitToJail card = (CardExitToJail)c; Player current = _PlayerHandler.currentPlayer; switch (card.Action) { case CardExitToJail.ActionOption.EXITTOJAIL: _PlayerHandler.ExitToJail(current); break; case CardExitToJail.ActionOption.KEEPCARD: _PlayerHandler.AddCardTo(current, c); break; } } else if (c is CardChoice) { CardChoice card = (CardChoice)c; Player current = _PlayerHandler.currentPlayer; switch (card.Action) { case CardChoice.ActionOption.DRAWCARD: switch (card.CardTypeToDraw) { case (int)CardType.CHANCE: this.GetNextChanceCard(); break; case (int)CardType.COMMUNITY: this.GetNextCommunityCard(); break; } break; case CardChoice.ActionOption.PAY: _PlayerHandler.PayeAmount(current, card.Amount); break; } } }
private void button_ChooseDiscard_Click(object sender, RoutedEventArgs e) { this.DrawCard = CardChoice.Discard; this.Close(); }
private void button_ChooseMain_Click(object sender, RoutedEventArgs e) { this.DrawCard = CardChoice.MainDeck; this.Close(); }