Example #1
0
    /* private void buildNavy()
     * {
     *   App app = UnityEngine.Object.FindObjectOfType<App>();
     *   int playerIndex = app.GetHumanIndex();
     *   Nation player = State.getNations()[playerIndex];
     *   if (player.GetTechnologies().Contains("oil_powered_ships"))
     *   {
     *       PlayerPayer.PayDreadnought(player);
     *       player.seaForces.dreadnought.addUnit();
     *   }
     *
     *   else if (player.GetTechnologies().Contains("ironclad"))
     *   {
     *       PlayerPayer.PayIronClad(player);
     *       player.seaForces.ironclad.addUnit();
     *   }
     *   else
     *   {
     *       PlayerPayer.PayFrigate(player);
     *       player.seaForces.frigate.addUnit();
     *   }
     *   uiUpdater.updateUI();
     *
     * } */

    private void getCultureCards()
    {
        selfProvince.SetActive(false);
        otherProvince.SetActive(false);
        progressPanel.SetActive(false);
        coordinator.progressFlag = false;

        App    app    = UnityEngine.Object.FindObjectOfType <App>();
        Nation player = State.getNations()[app.GetHumanIndex()];

        PlayerPayer.payForDevelopmentAction(player, 1);

        MyEnum.cultCard newCard = PlayerReceiver.collectCultureCard(player);

        uiUpdater.updateUI();

        Stack <CultureCard>   remainingCultCards = State.getCultureDeck();
        HashSet <CultureCard> cultDeckSet        = new HashSet <CultureCard>(remainingCultCards);

        List <MyEnum.cultCard> playerCultHand = new List <MyEnum.cultCard>(player.getCultureCards());
        HashSet <CultureCard>  playerCultSet  = new HashSet <CultureCard>(remainingCultCards);

        foreach (MyEnum.cultCard cardName in playerCultHand)
        {
            CultureCard card = State.getCultureCardByName(cardName);
            playerCultSet.Add(card);
        }

        updateCultureCardBook(newCard);
        showCultureHandPanel();
    }
Example #2
0
    private void placeCultureCardOnTable(MyEnum.cultCard cardName, int cardSlot)
    {
        Debug.Log(cardSlot);
        App    app    = UnityEngine.Object.FindObjectOfType <App>();
        Nation player = State.getNations()[app.GetHumanIndex()];

        Debug.Log(cardName.ToString());
        CultureCard newCard = State.getCultureCardByName(cardName);

        Transform  cardTransform = cardArea.transform.GetChild(cardSlot);
        GameObject card          = cardTransform.gameObject;

        card.SetActive(true);
        Image cardImage = card.GetComponent <Image>();

        cardImage.sprite  = Resources.Load("CultureCards/CultureCardSprites/" + newCard.getCardName(), typeof(Sprite)) as Sprite;
        cardImage.enabled = true;
        Debug.Log(card.name);
        //  Image border = card.GetComponentInChildren<Image>();
        Image border = card.transform.Find("border").GetComponentInChildren <Image>();

        border.name = cardName.ToString();
        Debug.Log(border.name);
        Text[] texts  = border.GetComponentsInChildren <Text>();
        Text   name   = texts[0];
        Text   era    = texts[1];
        Text   effect = texts[2];
        //Image CardType = border.GetComponentInParent<Image>();

        Image CardType = border.transform.Find("Type").GetComponentInChildren <Image>();

        card.name = newCard.getCardName().ToString();
        Debug.Log("Type: " + newCard.getCardType());
        border.sprite   = Resources.Load("CultureCards/CultureCardSprites/" + newCard.getCardType(), typeof(Sprite)) as Sprite;
        name.text       = newCard.getCardName().ToString();
        era.text        = newCard.getEra().ToString();
        effect.text     = newCard.getDescription();
        CardType.sprite = Resources.Load("CultureCards/CultureCardSprites/TypeSymbols/" + newCard.getCardType(), typeof(Sprite)) as Sprite;


        /*myNewInstance.transform.SetParent(hand.transform.GetChild(cardSlot), false);
         * //  MyEnum.cultCard cardType = (MyEnum.cultCard)Enum.Parse(typeof(MyEnum.cultCard), cardName, true);
         * CultureCard thisCard = State.getCultureCard(cardName);
         * if (thisCard.getOriginator() == player.getIndex())
         * {
         *
         *  Transform tempItem = hand.transform.GetChild(cardSlot);
         *  Transform grandChild = tempItem.GetChild(0);
         *  Image img = grandChild.GetComponent<Image>();
         *  Debug.Log(img.name);
         *  img.transform.SetParent(hand.transform.GetChild(cardSlot), false);
         *  img.enabled = true;
         *  img.transform.SetAsLastSibling();
         * }
         * //Debug.Log("The Parent is: " + hand.transform.GetChild(cardSlot).name);
         * myNewInstance.transform.localPosition = new Vector3(0, 20, 0);
         * myNewInstance.transform.localScale = new Vector3(0.5f, 0.5f, 0.5f); */
    }
Example #3
0
    private void getCultureCards()
    {
        App    app    = UnityEngine.Object.FindObjectOfType <App>();
        Nation player = State.getNations()[app.GetHumanIndex()];

        PlayerPayer.payForCultureCard(player);
        MyEnum.cultCard newCard = PlayerReceiver.collectCultureCard(player);


        MyEnum.Era era = State.era;
        if (player.getNumberGood(MyEnum.Goods.paper) < 1 || player.getAP() < 1)
        {
            drawCultureCards.interactable = false;
        }
        if (era != MyEnum.Era.Late && player.getNumberResource(MyEnum.Resources.spice) < 1)
        {
            drawCultureCards.interactable = false;
        }
        if (era != MyEnum.Era.Early)
        {
            if (player.getNumberGood(MyEnum.Goods.clothing) < 1)
            {
                drawCultureCards.interactable = false;
            }
        }
        if (era == MyEnum.Era.Late && player.getNumberGood(MyEnum.Goods.telephone) < 1)
        {
            drawCultureCards.interactable = false;
        }
        Stack <CultureCard>   remainingCultCards = State.getCultureDeck();
        HashSet <CultureCard> cultDeckSet        = new HashSet <CultureCard>(remainingCultCards);

        List <MyEnum.cultCard> playerCultHand = new List <MyEnum.cultCard>(player.getCultureCards());
        HashSet <CultureCard>  playerCultSet  = new HashSet <CultureCard>(remainingCultCards);

        foreach (MyEnum.cultCard cardName in playerCultHand)
        {
            CultureCard card = State.getCultureCardByName(cardName);
            playerCultSet.Add(card);
        }


        if (cultDeckSet.IsSubsetOf(playerCultSet))
        {
            drawCultureCards.interactable = false;
        }
        AP.text = player.getAP().ToString();
        // numberCultureCards.text = player.getCultureCards().Count.ToString();
        cultureLevel.text = player.getCulureLevel().ToString();
        updateCultureCardBook(newCard);
        showCultureHandPanel();
    }
Example #4
0
        public static List <Card> ReadAllCards()
        {
            string strCommand = File.ReadAllText("Database/select_cards_script.sql");
            var    result     = new List <Card>();

            using (SQLiteConnection objConnection = new SQLiteConnection(strConnection))
            {
                objConnection.Open();
                using (SQLiteCommand command = new SQLiteCommand(strCommand, objConnection))
                {
                    using (var reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            Card card;
                            var  type = (CardType)reader.GetInt32(3);
                            switch (type)
                            {
                            case CardType.MilitaryCard:
                                card = new MilitaryCard();
                                break;

                            case CardType.CultureCard:
                                card = new CultureCard();
                                break;

                            case CardType.ResourceCard:
                                card = new ResourceCard();
                                break;

                            case CardType.ScienceCard:
                                card = new ScienceCard();
                                break;

                            default:
                                card = new TradeCard();
                                break;
                            }
                            Read(reader, card);
                            result.Add(card);
                        }
                    }
                }
                objConnection.Close();
            }
            return(result);
        }
Example #5
0
    public static MyEnum.cultCard collectCultureCard(Nation player)
    {
        Stack <CultureCard> cultureDeck = State.getCultureDeck();
        CultureCard         newCard     = cultureDeck.Pop();

        if (player.getCultureCards().Contains(newCard.getCardName()))
        {
            Boolean newCardFound = false;
            while (newCardFound == false)
            {
                cultureDeck.Push(newCard);
                State.Shuffle <CultureCard>(cultureDeck);
                newCard = cultureDeck.Pop();
                if (!player.getCultureCards().Contains(newCard.getCardName()))
                {
                    newCardFound = true;
                }
            }
        }
        player.addCultureCard(newCard.getCardName());
        player.Stability       += newCard.getHappinessBoost();
        player.InfulencePoints += newCard.getInfulenceBoost();
        player.increasePrestige(newCard.getPrestigeBoost());
        player.GetMilitaryForm().adjustMaxMorale(newCard.getMoraleBoost());
        player.adjustClothingQuality(newCard.getClothingQuality());
        player.adjustFurnitureQuality(newCard.getFurnQuality());
        int         index    = State.getCultureCardTypes().IndexOf(newCard);
        CultureCard thisCard = State.getCultureCardTypes()[index];

        Debug.Log("Current originator: " + thisCard.getOriginator());
        if (thisCard.getOriginator() == -1)
        {
            thisCard.setOriginator(player);
            player.increasePrestige(1);
        }
        Debug.Log("New Card is: " + newCard.getCardName().ToString());
        player.increaseCultureLevel();

        return(thisCard.getCardName());
    }
Example #6
0
    private void placeCultureCardOnTable(MyEnum.cultCard cardName, int cardSlot)
    {
        App    app    = UnityEngine.Object.FindObjectOfType <App>();
        Nation player = State.getNations()[app.GetHumanIndex()];

        Debug.Log(cardName.ToString());
        GameObject card          = Resources.Load <GameObject>("CultureCards/" + cardName.ToString()) as GameObject;
        GameObject myNewInstance = Instantiate(card);
        Transform  hand          = cultureCardPanel.transform;

        // Image[] images = cultureCardPanel.GetComponentsInChildren<Image>();
        // images[cardSlot].sprite = myNewInstance;
        myNewInstance.transform.SetParent(hand.transform.GetChild(cardSlot), false);
        //  MyEnum.cultCard cardType = (MyEnum.cultCard)Enum.Parse(typeof(MyEnum.cultCard), cardName, true);
        CultureCard thisCard = State.getCultureCard(cardName);

        if (thisCard.getOriginator() == player.getIndex())
        {
            /*  GameObject NewObj = new GameObject(); //Create the GameObject
             *  Image NewImage = NewObj.AddComponent<Image>(); //Add the Image Component script
             *   NewImage.sprite = Resources.Load<Sprite>("Sprites/MedalCulture") as Sprite; //Set the Sprite of the Image Component on the new GameObject
             *  NewObj.GetComponent<RectTransform>().SetParent(hand.transform.GetChild(cardSlot)); //Assign the newly created Image GameObject as a Child of the Parent Panel.
             *  NewObj.SetActive(true); //Activate the GameObject */

            Transform tempItem   = hand.transform.GetChild(cardSlot);
            Transform grandChild = tempItem.GetChild(0);
            Image     img        = grandChild.GetComponent <Image>();
            Debug.Log(img.name);
            img.transform.SetParent(hand.transform.GetChild(cardSlot), false);
            img.enabled = true;
            img.transform.SetAsLastSibling();
        }

        //Debug.Log("The Parent is: " + hand.transform.GetChild(cardSlot).name);
        myNewInstance.transform.localPosition = new Vector3(0, 20, 0);
        myNewInstance.transform.localScale    = new Vector3(0.5f, 0.5f, 0.5f);
    }