コード例 #1
0
    private void IncreaseIP()
    {
        App    app    = UnityEngine.Object.FindObjectOfType <App>();
        Nation player = State.getNations()[app.GetHumanIndex()];

        PlayerPayer.payForIP(player);
        Debug.Log("Increasing AP");
        if (player.getNumberResource(MyEnum.Resources.spice) < 1 || player.getAP() < 1 ||
            player.getNumberGood(MyEnum.Goods.furniture) < 1)
        {
            encourageCapitalists.interactable = false;
        }
        MyEnum.Era era = State.era;
        if (era == MyEnum.Era.Middle && player.getNumberGood(MyEnum.Goods.paper) < 1)
        {
            encourageCapitalists.interactable = false;
        }
        if (era == MyEnum.Era.Late && (player.getNumberGood(MyEnum.Goods.telephone) < 1 ||
                                       player.getNumberGood(MyEnum.Goods.auto) < 1))
        {
            encourageCapitalists.interactable = false;
        }
        PlayerReceiver.receiveIP(player);
        currentIP.text = player.getIP().ToString();
        capLevel.text  = player.getInvestmentLevel().ToString();
        AP.text        = player.getAP().ToString();
    }
コード例 #2
0
    /// <summary>
    /// 接受服务器的响应
    /// </summary>
    /// <param name="operationResponse"></param>
    public void OnOperationResponse(OperationResponse operationResponse)
    {
        LogManager.Log(operationResponse.ToStringFull());
        byte opCode  = operationResponse.OperationCode;
        byte subCode = (byte)operationResponse[80];

        //转接
        switch (opCode)
        {
        case OperationCode.AccountCode:
            AccountReceiver.OnReceive(subCode, operationResponse);
            break;

        case OperationCode.PlayerCode:
            PlayerReceiver.OnReceive(subCode, operationResponse);
            break;

        case OperationCode.SelectCode:
            SelectReceiver.OnReceive(subCode, operationResponse);
            break;

        case OperationCode.BattleCode:
            BattleReceiver.OnReceive(subCode, operationResponse);
            break;
        }
    }
コード例 #3
0
    private void cancelProduction()
    {
        MyEnum.Goods factoryType    = (MyEnum.Goods)System.Enum.Parse(typeof(MyEnum.Goods), goodType.text);
        App          app            = UnityEngine.Object.FindObjectOfType <App>();
        Nation       player         = State.getNations()[app.GetHumanIndex()];
        int          amountToCancel = player.industry.getGoodProducing(factoryType);

        PlayerReceiver.receiveFromCancelingProduction(player, factoryType, amountToCancel);
        cancel.transform.localScale       = new Vector3(0, 0, 0);
        cancel.interactable               = false;
        produceGoods.transform.localScale = new Vector3(1, 1, 1);
        float ableToProduce = player.industry.determineCanProduce(factoryType, player);

        canProduce.text        = ableToProduce.ToString();
        factorySlider.maxValue = (float)Math.Floor(ableToProduce);
        factorySlider.value    = 0;
        Debug.Log("Max slider value: " + factorySlider.maxValue);

        if (factorySlider.maxValue >= 1 && player.industry.getGoodProducing(factoryType) == 0)
        {
            factorySlider.interactable = true;
            produceGoods.interactable  = true;
        }
        else
        {
            factorySlider.interactable = false;
            produceGoods.interactable  = false;
        }
    }
コード例 #4
0
    public void researchTech()
    {
        string techName = hiddenTechName.text;

        Debug.Log(techName);
        Technology tech   = State.GetTechnologies()[techName];
        App        app    = UnityEngine.Object.FindObjectOfType <App>();
        Nation     player = State.getNations()[app.GetHumanIndex()];

        PlayerPayer.PayForTechnology(player, techName);
        PlayerReceiver.addNewTech(player, tech);
        PlayerReceiver.registerTechChanges(tech, player);
        tech.SetDiscovered(true);
        tech.SetDiscoveredBy(player.getIndex());
        research.interactable = false;
        researchPoints.text   = player.Research.ToString();
        numberPattents.text   = player.getNumberPattents().ToString();
        GameObject buttonOfResearchedTech = GetChildWithName.getChildWithName(techTreeConnector, tech.GetTechName());
        Image      image = buttonOfResearchedTech.GetComponent <Image>();

        image.sprite = Resources.Load("AlchemistUITools/SteamContent/Sprites/Buttons/QuadroBtnBg", typeof(Sprite)) as Sprite;

        RectTransform imageTransform = image.rectTransform;

        imageTransform.ForceUpdateRectTransforms();
        uI_updater.updateUI();
    }
コード例 #5
0
    public void UpgradeFactory()
    {
        App    app  = UnityEngine.Object.FindObjectOfType <App>();
        string type = GetComponentInChildren <Text>().text;
        //    MyEnum.Goods goodType = (MyEnum.Goods)System.Enum.Parse(typeof(MyEnum.Goods), type);
        Nation player = State.getNations()[app.GetHumanIndex()];

        PlayerPayer.payForFactory(player, good);
        player.industry.setFactoryLevel(good, player.industry.getFactoryLevel(good) + 1);
        int factoryLevel = player.industry.getFactoryLevel(good);

        if (factoryLevel == 1)
        {
            productionLevelImage.sprite = Resources.Load("Sprites/factorySmall",
                                                         typeof(Sprite)) as Sprite;
        }
        if (factoryLevel == 2)
        {
            productionLevelImage.sprite = Resources.Load("Sprites/FactoryBig") as Sprite;
        }
        PlayerReceiver.increaseFactoryLevel(player, good);
        float ableToProduce = player.industry.determineCanProduce(good, player);

        canProduce.text     = "Able to Produce: " + ableToProduce.ToString();
        slider.maxValue     = (float)Math.Floor(ableToProduce);
        APValue.text        = player.getAP().ToString();
        button.interactable = false;
    }
コード例 #6
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();
    }
コード例 #7
0
    private void getTacticCards()
    {
        Debug.Log("press tactic cards");
        App    app    = UnityEngine.Object.FindObjectOfType <App>();
        Nation player = State.getNations()[app.GetHumanIndex()];

        //....................

        PlayerPayer.payTacticCards(player);
        PlayerReceiver.collectTacticCards(player);

        drawTacticCards.interactable = true;

        MyEnum.Era era = State.era;
        if (player.getNumberGood(MyEnum.Goods.arms) < 1 || player.getAP() < 1 ||
            player.getNumberResource(MyEnum.Resources.spice) < 1)
        {
            drawTacticCards.interactable = false;
        }
        if (era != MyEnum.Era.Early)
        {
            if (player.getNumberGood(MyEnum.Goods.furniture) < 1)
            {
                drawTacticCards.interactable = false;
            }
        }
        if (era == MyEnum.Era.Late && player.getNumberGood(MyEnum.Goods.auto) < 1)
        {
            drawTacticCards.interactable = false;
        }
        showTacticsHandPanel();
        AP.text = player.getAP().ToString();
    }
コード例 #8
0
    /* private void IncreasePOP()
     * {
     *   App app = UnityEngine.Object.FindObjectOfType<App>();
     *   Nation player = State.getNations()[app.GetHumanIndex()];
     *   PlayerPayer.payForMorePOP(player);
     *   uiUpdater.updateUI();
     * } */

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

        PlayerPayer.payForDevelopmentAction(player, 1);
        Debug.Log("Increasing AP");
        PlayerReceiver.receiveIP(player);
        uiUpdater.updateUI();
    }
コード例 #9
0
    public void addAP()
    {
        App    app    = UnityEngine.Object.FindObjectOfType <App>();
        Nation player = State.getNations()[app.GetHumanIndex()];

        PlayerPayer.payForAP(player);
        PlayerReceiver.collectAP(player, 5);

        uiUpdater.updateUI();
    }
コード例 #10
0
    private void addResearchPoints()
    {
        App    app    = UnityEngine.Object.FindObjectOfType <App>();
        Nation player = State.getNations()[app.GetHumanIndex()];

        PlayerPayer.PayForResearch(player);
        PlayerReceiver.CollectResearchPoints(player);
        currentResearchPoints.text = player.Research.ToString();
        numberPattents.text        = player.getNumberPattents().ToString();
        Debug.Log("fff");
    }
コード例 #11
0
    private void addResearchPoints()
    {
        Debug.Log("Doing Research");

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

        PlayerPayer.payForDevelopmentAction(player, 1);
        PlayerReceiver.CollectResearchPoints(player);
        uiUpdater.updateUI();
    }
コード例 #12
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();
    }
コード例 #13
0
    // Use this for initialization
    void Start()
    {
        list = new ArrayList ();

        myGame = (Game)GameObject.Find ("Game").GetComponent<Game> ();
        sm = (SoundManager)GameObject.Find ("SoundManager").GetComponent<SoundManager> ();
        player = (PlayerReceiver)GameObject.Find ("Player").GetComponent<PlayerReceiver>();
        playerObj = GameObject.Find ("Player");

        menuStyle = new GUIStyle ();
        menuStyle.fontSize = Mathf.RoundToInt (Screen.height * 0.05f);
        menuStyle.normal.textColor = Color.white;
        menuStyle.font = (Font)Resources.Load ("Fonts/After_Shok");

        background = new Texture2D (1, 1, TextureFormat.RGB24, false);
        foreground = (Texture2D)Resources.Load ("Textures/CrimsonSwirl");
        foreground2 = (Texture2D)Resources.Load ("Textures/EmeraldSwirl");

        background.SetPixel (0, 0, Color.black);

        background.Apply ();

        display = true;
        inventory = false;
        charWindow = false;
        skills = false;
        quests = false;
        pause = false;
    }