Beispiel #1
0
        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);
            }));
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
     }
 }
Beispiel #6
0
 internal Card GetCardFromChoice(CardChoice choice)
 {
     if (choice == CardChoice.Discard)
     {
         return(TakeTopOfDiscardPile());
     }
     else
     {
         return(TakeTopOfMainDeck());
     }
 }
Beispiel #7
0
            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;
                }
            }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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);
    }
Beispiel #11
0
        // 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);
            }
        }
Beispiel #14
0
        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();
            }
        }
Beispiel #15
0
        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);
        }
    }
Beispiel #18
0
        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();
 }