示例#1
0
    public void ThisFillInData(assemblyCsharp.Province province)
    {
        this.Name.text = province.getProvName();
        string resource          = province.getResource().ToString();
        Sprite newResourceSprite = Resources.Load("Resource/" + resource, typeof(Sprite)) as Sprite;

        this.Resource.sprite         = newResourceSprite;
        this.Resource.preserveAspect = true;

        this.Produces.text      = "Produces " + province.getProduction().ToString("0.0") + " " + resource + " /turn";
        this.RailroadLevel.text = province.getInfrastructure().ToString();
        this.FortLevel.text     = province.getFortLevel().ToString();
        this.Culture.text       = "Culture: " + province.culture;
        // this.resourceText.text = "Province produces " + resource;
        // Text text = ResourceTip.GetComponentInChildren<Text>();
        // text.text =  "Province produces " + Resource;
        pickProductionPicture(province);

        State.setCurrentlySelectedProvince(province.getIndex());
        App    app         = UnityEngine.Object.FindObjectOfType <App>();
        int    playerIndex = app.GetHumanIndex();
        Nation player      = State.getNations()[playerIndex];

        updateSelfProvinceButtons(player, province);
    }
示例#2
0
    private void distributeStartingResourcesAndGoods(Nation player)
    {
        for (int i = 0; i < player.getProvinces().Count; i++)
        {
            int index = player.getProvinceIndex(i);
            assemblyCsharp.Province prov = State.getProvinces()[index];
            MyEnum.Resources        res  = prov.getResource();
            float amount = prov.getProduction();
            if (res == MyEnum.Resources.gold)
            {
                player.receiveGold(amount * 5);
            }
            else
            {
                player.collectResource(res, amount);
            }
            player.addRuralPOP();
            player.addRuralPOP();
        }

        player.receiveGold(5);

        if (player.getType() == MyEnum.NationType.major)
        {
            player.collectGoods(MyEnum.Goods.steel, 1);
            player.collectGoods(MyEnum.Goods.fabric, 1);
            player.collectGoods(MyEnum.Goods.lumber, 1);
            player.collectGoods(MyEnum.Goods.arms, 2);

            player.collectResource(MyEnum.Resources.wheat, 1);
            player.collectResource(MyEnum.Resources.meat, 0.5f);
            player.collectResource(MyEnum.Resources.fruit, 0.5f);
            player.receiveGold(5);
        }
    }
示例#3
0
    public void ThatFillInData(assemblyCsharp.Province province)
    {
        this.Name.text = province.getProvName();
        string resource = province.getResource().ToString();

        Sprite newResourceSprite = Resources.Load("Resource/" + resource, typeof(Sprite)) as Sprite;

        this.Resource.sprite         = newResourceSprite;
        this.Resource.preserveAspect = true;
        Debug.Log("You f****r...." + province.getProduction().ToString());
        this.Produces.text      = "Produces " + province.getProduction().ToString("0.0") + " " + resource + " /turn";
        this.RailroadLevel.text = province.getInfrastructure().ToString();
        this.FortLevel.text     = province.getFortLevel().ToString();
        this.Culture.text       = "Culture: " + province.culture;
        // this.resourceText.text = "Province produces " + resource;
        string nation = province.getOwner().ToString();

        Debug.Log("Owner: " + nation);
        this.DevelopmentLevel.text = province.getDevelopmentLevel().ToString();
        this.NationName.text       = nation;
        //text.text = "Province produces " + Resource;
        this.Flag.sprite = Resources.Load("Flags/" + province.getOwner().ToString(), typeof(Sprite)) as Sprite;
        pickProductionPicture(province);
        // Text flagText = FlagTip.GetComponentInChildren<Text>();
        // Debug.Log("Flag text: " + flagText.text);
        // flagText.text = Owner;
        //flagTip.GetComponent<Text>().text = nation;
    }
示例#4
0
    private void updateSelfProvinceButtons(Nation player, assemblyCsharp.Province province)
    {
        if (PlayerCalculator.checkUpgradeDevelopment(province, player))
        {
            upgradeDevelopment.interactable = true;
        }
        else
        {
            upgradeDevelopment.interactable = false;
        }
        if (PlayerCalculator.canUpgradeRailRoad(province, player))
        {
            upgradeRailway.interactable = true;
        }
        else
        {
            upgradeRailway.interactable = false;
        }

        if (PlayerCalculator.canUpgradeFort(province, player))
        {
            upgradeFort.interactable = true;
        }
        else
        {
            upgradeFort.interactable = false;
        }
    }
    private static void collectResources(Nation player)
    {
        for (int i = 0; i < player.getProvinces().Count; i++)
        {
            int index = player.getProvinces()[i];
            assemblyCsharp.Province prov = State.getProvinces()[index];
            float            resYield    = prov.getProduction();
            MyEnum.Resources res         = prov.getResource();
            Debug.Log("prov res: " + res);
            if (res != MyEnum.Resources.gold)
            {
                player.collectResource(res, resYield);
            }
            else
            {
                player.receiveGold(resYield * 5);
            }
        }

        for (int i = 0; i < player.getColonies().Count; i++)
        {
            int index = player.getColonies()[i];
            assemblyCsharp.Province prov = State.getProvinces()[index];
            float            resYield    = prov.getProduction();
            MyEnum.Resources res         = prov.getResource();
            player.collectResource(res, resYield);
        }
    }
示例#6
0
    private void pickProductionPicture(assemblyCsharp.Province province)
    {
        MyEnum.Resources res = province.getResource();

        if (res == MyEnum.Resources.wheat || res == MyEnum.Resources.fruit || res == MyEnum.Resources.rubber || res == MyEnum.Resources.dyes)
        {
            DevelopmentImage.sprite = Resources.Load("Resource/Icons/plow", typeof(Sprite)) as Sprite;
        }
        if (res == MyEnum.Resources.oil)
        {
            DevelopmentImage.sprite = Resources.Load("Resource/Icons/oil_rig", typeof(Sprite)) as Sprite;
        }
        if (res == MyEnum.Resources.iron || res == MyEnum.Resources.coal || res == MyEnum.Resources.gold)
        {
            DevelopmentImage.sprite = Resources.Load("Resource/Icons/miningTools", typeof(Sprite)) as Sprite;
        }
        if (res == MyEnum.Resources.cotton)
        {
            DevelopmentImage.sprite = Resources.Load("Resource/Icons/cottonGinIcon", typeof(Sprite)) as Sprite;
        }
        if (res == MyEnum.Resources.meat)
        {
            DevelopmentImage.sprite = Resources.Load("Resource/Icons/barbedWire", typeof(Sprite)) as Sprite;
        }
        if (res == MyEnum.Resources.wood)
        {
            DevelopmentImage.sprite = Resources.Load("Resource/Icons/axe", typeof(Sprite)) as Sprite;
        }
    }
示例#7
0
    private void initalizeArmies(Nation player)
    {
        player.GetMilitaryForm().setMaxMorale(1);
        Army firstArmy = new Army(player.getIndex());

        // Debug.Log("Nation Type: " + player.getType() + "________________________");
        if (player.getType() == MyEnum.NationType.major)
        {
            //    Debug.Log("Any Major Nations Here?");
            firstArmy.addUnit(MyEnum.ArmyUnits.infantry);
            firstArmy.addUnit(MyEnum.ArmyUnits.infantry);
            firstArmy.addUnit(MyEnum.ArmyUnits.cavalry);

            Fleet firstFleet = new Fleet(player.getIndex());
            firstFleet.addUnit(MyEnum.NavyUnits.frigates, 1);
            player.addFleet(firstFleet);
            //Still need to place fleet
        }
        else
        {
            firstArmy.addUnit(MyEnum.ArmyUnits.infantry);
        }
        player.addArmy(firstArmy);
        PlaceArmy armyPlacer = new PlaceArmy();
        string    capName    = player.capital;

        Debug.Log(player.getNationName());
        Debug.Log(capName);
        assemblyCsharp.Province prov = State.GetProvinceByName(capName);
        int capIndex = prov.getIndex();

        armyPlacer.placeArmyOnMap(capIndex, player, firstArmy.GetIndex());
        player.setMilitaryScore();
        Debug.Log("Military Score: " + player.getMilitaryScore().ToString());
    }
示例#8
0
    // Use this for initialization
    void Start()
    {
        map = WMSK.instance;


        map.OnProvinceClick += (int provinceIndex, int regionIndex, int buttonIndex) => Debug.Log("Clicked province " + map.provinces[provinceIndex].name);


        map.OnClick += (float x, float y, int buttonIndex) => {
            if (buttonIndex == 1)
            {
                return;
            }
            Vector2 provincePosition = new Vector2(x, y);
            if (map.ContainsWater(provincePosition))
            {
                Debug.Log("Yes, water!");
            }
            else
            {
                Debug.Log("Land");
            }
            int clickedIndex = map.GetProvinceIndex(provincePosition);
            assemblyCsharp.Province clickedProvince = provinces[clickedIndex];
            int provinceOwner = clickedProvince.getOwnerIndex();
            //  Debug.Log("Province Culture: " + clickedProvince.getCulture());
            Nation owner = nations[provinceOwner];
            Debug.Log("Nation name " + owner.getName());
            if (map.VGOLastHighlighted == null)
            {
                if (SelfProvinceGUI.activeSelf)
                {
                    SelfProvinceGUI.SetActive(false);
                }

                if (OtherProvinceGUI.activeSelf)
                {
                    OtherProvinceGUI.SetActive(false);
                }


                if (owner.IsHuman())
                {
                    ThisFillInData(clickedProvince);

                    SelfProvinceGUI.SetActive(true);
                }
                else
                {
                    NationName.text = owner.getName();
                    ThatFillInData(clickedProvince);
                    OtherProvinceGUI.SetActive(true);
                }
            }
        };
        upgradeDevelopment.onClick.AddListener(delegate { UpgradeDevelopment(); });
        upgradeRailway.onClick.AddListener(delegate { UpgradeRailway(); });
        upgradeFort.onClick.AddListener(delegate { UpgradeFort(); });
    }
示例#9
0
    public void initalizeAIPriorities(Nation player)
    {
        TopLevel aiTopLevel = player.getAI().GetTopLevel();

        foreach (MyEnum.macroPriorities macro in Enum.GetValues(typeof(MyEnum.macroPriorities)))
        {
            aiTopLevel.setMacroPriority(player, macro, 1);
        }
        for (int i = 0; i < player.getProvinces().Count; i++)
        {
            int pIndex = player.getProvinces()[i];
            assemblyCsharp.Province prov = State.getProvinces()[pIndex];
            if (prov.getResource() == MyEnum.Resources.coal)
            {
                aiTopLevel.alterMacroPriority(player, MyEnum.macroPriorities.buildFactory, 0.15f);
                aiTopLevel.alterMacroPriority(player, MyEnum.macroPriorities.research, 0.15f);
            }
            if (prov.getResource() == MyEnum.Resources.cotton)
            {
                aiTopLevel.alterMacroPriority(player, MyEnum.macroPriorities.colonies, 0.1f);
                aiTopLevel.alterMacroPriority(player, MyEnum.macroPriorities.developProvince, 0.1f);
            }
            if (prov.getResource() == MyEnum.Resources.dyes)
            {
                aiTopLevel.alterMacroPriority(player, MyEnum.macroPriorities.developProvince, 0.1f);
            }
            if (prov.getResource() == MyEnum.Resources.gold)
            {
                aiTopLevel.alterMacroPriority(player, MyEnum.macroPriorities.culture, 0.15f);
                aiTopLevel.alterMacroPriority(player, MyEnum.macroPriorities.spheres, 0.15f);
            }
            if (prov.getResource() == MyEnum.Resources.iron)
            {
                aiTopLevel.alterMacroPriority(player, MyEnum.macroPriorities.buildFactory, 0.15f);
                aiTopLevel.alterMacroPriority(player, MyEnum.macroPriorities.conquest, 0.15f);
            }
            if (prov.getResource() == MyEnum.Resources.oil)
            {
                aiTopLevel.alterMacroPriority(player, MyEnum.macroPriorities.developProvince, 0.1f);
                aiTopLevel.alterMacroPriority(player, MyEnum.macroPriorities.conquest, 0.05f);
            }
            if (prov.getResource() == MyEnum.Resources.rubber)
            {
                aiTopLevel.alterMacroPriority(player, MyEnum.macroPriorities.research, 0.1f);
            }
            if (prov.getResource() == MyEnum.Resources.spice)
            {
                aiTopLevel.alterMacroPriority(player, MyEnum.macroPriorities.culture, 0.1f);
            }
            if (prov.getResource() == MyEnum.Resources.wood)
            {
                aiTopLevel.alterMacroPriority(player, MyEnum.macroPriorities.colonies, 0.1f);
                aiTopLevel.alterMacroPriority(player, MyEnum.macroPriorities.navy, 0.1f);
                aiTopLevel.alterMacroPriority(player, MyEnum.macroPriorities.buildFactory, 0.05f);
            }
        }
    }
示例#10
0
    public static int getNumberProvDevelopments(Nation player)
    {
        int amount = 0;

        for (int i = 0; i < player.getProvinces().Count; i++)
        {
            int pIndex = player.getProvinces()[i];
            assemblyCsharp.Province prov = State.getProvinces()[pIndex];
            amount += prov.getDevelopmentLevel();
        }
        return(amount);
    }
示例#11
0
    public static int getNumberProvRailRoads(Nation player)
    {
        int amount = 0;

        for (int i = 0; i < player.getProvinces().Count; i++)
        {
            int pIndex = player.getProvinces()[i];
            assemblyCsharp.Province prov = State.getProvinces()[pIndex];
            amount += prov.getInfrastructure();
        }
        return(amount);
    }
示例#12
0
    private void UpgradeDevelopment()
    {
        App    app       = UnityEngine.Object.FindObjectOfType <App>();
        Nation player    = State.getNations()[app.GetHumanIndex()];
        int    provIndex = State.getCurrentlySelectedProvince();

        assemblyCsharp.Province prov = State.getProvinces()[provIndex];
        PlayerPayer.payDevelopment(player, prov);
        this.DevelopmentLevel.text = prov.getDevelopmentLevel().ToString();
        AP.text = player.getAP().ToString();
        updateSelfProvinceButtons(player, prov);
    }
示例#13
0
    public void processTurnAdmin()
    {
        Debug.Log("Begin Process Turn Admin");
        // State.setCurrentTurnOrderIndex(0);
        State.setCurrentPlayer(0);
        // MyEnum.GamePhase currentPhase = State.GetPhase();
        App    app         = UnityEngine.Object.FindObjectOfType <App>();
        int    playerIndex = app.GetHumanIndex();
        Nation humanPlayer = State.getNations()[playerIndex];

        State.currentPlayer = 0;
        Nation currentPlayer = State.getNations()[0];
        // PlayerCollector.collectForPlayer(player);

        // Debug.Log("Count of getTurnOrder: " + State.getTurnOrder().Count);
        bool first = true;

        while (currentPlayer.getIndex() != 0 || first == true)
        {
            first = false;
            // Debug.Log("Current Turn Order Index: " + State.currentTurnOrderIndex);
            //   Debug.Log("Current player is index: " + currentPlayer.getIndex());
            if (humanPlayer.getIndex() == currentPlayer.getIndex())
            {
                currentPlayer = State.getNextPlayer();
            }
            // EarlyGameAdminstration.mainEarlyAdminLoop(currentPlayer);
            //------------------------------------------------------------------
            currentPlayer.getAI().processAdminstrationPhase(currentPlayer);
            // PlayerProcessor.processSignals(currentPlayer);
            //  maintenancePayer.payMaintenance(currentPlayer);
            PlayerCollector.collectForPlayer(currentPlayer);
            currentPlayer = State.getNextPlayer();
            Debug.Log("New current player is: " + currentPlayer.getName() +
                      " " + currentPlayer.getIndex());

            Queue <int> newRailroads = currentPlayer.getAI().NewRailRoads;
            while (newRailroads.Count > 0)
            {
                int nextProvIndex            = newRailroads.Dequeue();
                assemblyCsharp.Province prov = State.getProvinces()[nextProvIndex];
                railPlacer.drawRailroadOnMap(prov, currentPlayer);
            }
        }



        //  State.advanceGamePhase();
        Debug.Log(State.GetPhase());

        return;
    }
示例#14
0
    public void drawRailRoadsFromScratch(Nation player)
    {
        HashSet <int> allProvinces = PlayerCalculator.getAllProvinces(player);

        foreach (int provIndex in allProvinces)
        {
            assemblyCsharp.Province prov = State.getProvinces()[provIndex];
            if (prov.railroad)
            {
                drawRailroadOnMap(prov, player);
            }
        }
    }
示例#15
0
    private void UpgradeFort()
    {
        App    app       = UnityEngine.Object.FindObjectOfType <App>();
        Nation player    = State.getNations()[app.GetHumanIndex()];
        int    provIndex = State.getCurrentlySelectedProvince();

        Debug.Log("Currently selected province: " + State.getProvinces()[provIndex].getProvName());
        assemblyCsharp.Province prov = State.getProvinces()[provIndex];
        PlayerPayer.payFortUpgrade(player, prov);
        FortLevel.text = prov.getFortLevel().ToString();
        AP.text        = player.getAP().ToString();
        updateSelfProvinceButtons(player, prov);
    }
示例#16
0
    private void pickNewFleetPosition(Nation player)
    {
        WMSK map = WMSK.instance;

        Debug.Log(player.getNationName());
        string capitalString = player.capital;

        assemblyCsharp.Province capital = State.GetProvinceByName(capitalString);
        int            capitalIndex     = capital.getIndex();
        List <Vector2> capitalCoast     = map.GetProvinceCoastalPoints(capitalIndex);
        int            coastSize        = capitalCoast.Count;
        int            middle           = (int)coastSize / 2;
        //   Debug.Log("Middle: " + middle);
        Vector2 navalChoice = capitalCoast[middle];

        player.setNewNavyPosition(navalChoice);
    }
示例#17
0
 private static void placeNewLandUnits(Nation player)
 {
     foreach (MyEnum.ArmyUnits unitType in Enum.GetValues(typeof(MyEnum.ArmyUnits)))
     {
         string capitalString            = player.capital;
         assemblyCsharp.Province capital = State.GetProvinceByName(capitalString);
         for (int i = 0; i < player.getArmyProducing(unitType); i++)
         {
             Army newArmy = new Army(player.getIndex());
             newArmy.addUnit(unitType);
             newArmy.setLocation(capital.getIndex());
             capital.addFriendlyArmy(newArmy.GetIndex());
             player.addArmy(newArmy);
             armyPlacer.placeArmyOnMap(capital.getIndex(), player, newArmy.GetIndex());
         }
     }
 }
示例#18
0
    public void drawRailroadOnMap(assemblyCsharp.Province prov, Nation player)
    {
        WorldMapStrategyKit.Province mapProvince = map.provinces[prov.getIndex()];
        Vector2 provCenter = mapProvince.center;

        for (int i = 0; i < prov.Neighbours.Count; i++)
        {
            if (PlayerCalculator.getAllProvinces(player).Contains(prov.Neighbours[i]))
            {
                // draw rail segment from prv to neighbourProv
                assemblyCsharp.Province neighbourProvince = State.getProvinces()[prov.Neighbours[i]];
                if (neighbourProvince.railroad && !neighbourProvince.Linked.Contains(prov.getIndex()) &&
                    !prov.Linked.Contains(neighbourProvince.getIndex()))
                {
                    WorldMapStrategyKit.Province mapNeighbourProvince = map.provinces[prov.Neighbours[i]];
                    Vector2    neighbourCenter = mapNeighbourProvince.center;
                    Cell       startCell       = map.GetCell(provCenter);
                    Cell       endCell         = map.GetCell(neighbourCenter);
                    List <int> cellIndices     = map.FindRoute(startCell, endCell, TERRAIN_CAPABILITY.OnlyGround);
                    if (cellIndices == null)
                    {
                        return;
                    }
                    int positionsCount = cellIndices.Count;
                    Debug.Log("Number of positions: " + positionsCount);

                    Vector2[] positions = new Vector2[positionsCount];
                    for (int k = 0; k < positionsCount; k++)
                    {
                        positions[k] = map.cells[cellIndices[k]].center;
                    }

                    // Build a railroad along the map coordinates
                    LineMarkerAnimator lma         = map.AddLine(positions, Color.white, 0.0f, 0.15f);
                    Texture2D          railwayMatt = Resources.Load("Sprites/GUI/railRoad", typeof(Texture2D)) as Texture2D;

                    lma.lineMaterial.mainTexture      = railwayMatt;
                    lma.lineMaterial.mainTextureScale = new Vector2(16f, 2f);
                    neighbourProvince.Linked.Add(prov.getIndex());
                    prov.Linked.Add(neighbourProvince.getIndex());
                }
            }
        }
    }
示例#19
0
    // Use this for initialization
    void Start()
    {
        map = WMSK.instance;


        map.OnClick += (float x, float y, int buttonIndex) =>
        {
            if (buttonIndex == 1)
            {
                return;
            }
            Vector2 provincePosition = new Vector2(x, y);
            int     clickedIndex     = map.GetProvinceIndex(provincePosition);
            if (map.ContainsWater(provincePosition))
            {
                return;
            }
            assemblyCsharp.Province clickedProvince = provinces[clickedIndex];
            int    provinceOwner = clickedProvince.getOwnerIndex();
            Nation owner         = nations[provinceOwner];
            //   Debug.Log("That 51");

            if (map.VGOLastHighlighted == null)
            {
                if (SelfProvinceGUI.activeSelf)
                {
                    SelfProvinceGUI.SetActive(false);
                }

                if (OtherProvinceGUI.activeSelf)
                {
                    OtherProvinceGUI.SetActive(false);
                }

                if (!owner.IsHuman())
                {
                    //     Debug.Log("That 69");
                    ThatFillInData(clickedProvince);
                    OtherProvinceGUI.SetActive(true);
                }
            }
        };
    }
示例#20
0
    private static void placeNewSeaUnits(Nation player)
    {
        WMSK map = WMSK.instance;

        foreach (MyEnum.NavyUnits unitType in Enum.GetValues(typeof(MyEnum.ArmyUnits)))
        {
            string capitalString            = player.capital;
            assemblyCsharp.Province capital = State.GetProvinceByName(capitalString);
            for (int i = 0; i < player.getNavyProducing(unitType); i++)
            {
                Fleet newFleet = new Fleet(player.getIndex());
                newFleet.addUnit(unitType, 1);
                // map.GetProvinceCoastalPoints
                newFleet.setLocation(capital.getIndex());
                player.addFleet(newFleet);

                //maybe add mount object for port and have new fleets appear there by default
            }
        }
    }
示例#21
0
    public void ThatFillInData(assemblyCsharp.Province province)
    {
        this.Name.text = province.getProvName();
        string resource = province.getResource().ToString();

        Sprite newResourceSprite = Resources.Load("Resource/" + resource, typeof(Sprite)) as Sprite;

        this.Resource.sprite    = newResourceSprite;
        this.Produces.text      = "Produces " + Produces.ToString() + " " + resource + " /turn";
        this.RailroadLevel.text = province.getInfrastructure().ToString();
        this.FortLevel.text     = province.getFortLevel().ToString();
        this.Culture.text       = "Culture: " + province.culture;
        this.resourceText.text  = "Province produces " + resource;
        string nation = province.getOwner().ToString();

        this.NationName.text = nation;
        //text.text = "Province produces " + Resource;
        this.Flag.sprite = Resources.Load("Flags/" + province.getOwner().ToString(), typeof(Sprite)) as Sprite;
        // Text flagText = FlagTip.GetComponentInChildren<Text>();
        // Debug.Log("Flag text: " + flagText.text);
        // flagText.text = Owner;
    }
示例#22
0
    private void updateGameMap()
    {
        WMSK map = WMSK.instance;

        foreach (Nation nation in State.getNations().Values)
        {
            if (nation.IsColonyOf() >= 0)
            {
                Nation major = State.getNations()[nation.IsColonyOf()];
                Color  color = major.getColor();
                nation.setColor(color);
                //Colonies taken from Old Empires will be handled differently.
            }
            Queue <int> newRailroads = nation.getAI().NewRailRoads;
            while (newRailroads.Count > 0)
            {
                int provIndex = newRailroads.Dequeue();
                assemblyCsharp.Province prov = State.getProvinces()[provIndex];
                railPlacer.drawRailroadOnMap(prov, nation);
            }
        }
    }
示例#23
0
    //just for AI
    public void initalizeFactoryPriorities(Nation player)
    {
        TopLevel aiTopLevel = player.getAI().GetTopLevel();

        foreach (MyEnum.Goods good in Enum.GetValues(typeof(MyEnum.Goods)))
        {
            aiTopLevel.setFactPriority(player, good, 1);
        }

        for (int i = 0; i < player.getProvinces().Count; i++)
        {
            int pIndex = player.getProvinces()[i];
            assemblyCsharp.Province prov = State.getProvinces()[pIndex];

            if (prov.getResource() == MyEnum.Resources.coal)
            {
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.steel, 0.25f);
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.parts, 0.15f);
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.arms, 0.15f);
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.chemicals, 0.2f);
            }
            if (prov.getResource() == MyEnum.Resources.cotton)
            {
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.fabric, 0.25f);
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.clothing, 0.2f);
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.furniture, 0.1f);
            }

            if (prov.getResource() == MyEnum.Resources.dyes)
            {
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.fabric, 0.25f);
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.clothing, 0.2f);
            }

            if (prov.getResource() == MyEnum.Resources.iron)
            {
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.steel, 0.25f);
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.parts, 0.2f);
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.arms, 0.2f);
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.gear, 0.075f);
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.auto, 0.075f);
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.tank, 0.12f);
            }

            if (prov.getResource() == MyEnum.Resources.oil)
            {
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.auto, 0.15f);
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.fighter, 0.1f);
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.tank, 0.1f);
            }
            if (prov.getResource() == MyEnum.Resources.rubber)
            {
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.gear, 0.25f);
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.telephone, 0.2f);
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.auto, 0.12f);
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.fighter, 0.075f);
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.tank, 0.075f);
            }

            if (prov.getResource() == MyEnum.Resources.wood)
            {
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.lumber, 0.25f);
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.paper, 0.25f);
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.furniture, 0.15f);
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.telephone, 0.075f);
                aiTopLevel.alterFactPriority(player, MyEnum.Goods.fighter, 0.075f);
            }
        }
    }
示例#24
0
    public void initalizeResourcePriorities(Nation player)
    {
        TopLevel aiTopLevel = player.getAI().GetTopLevel();

        aiTopLevel.setResPriority(player, MyEnum.Resources.wheat, 3);
        aiTopLevel.setResPriority(player, MyEnum.Resources.meat, 2.5f);
        aiTopLevel.setResPriority(player, MyEnum.Resources.fruit, 2.5f);
        aiTopLevel.setResPriority(player, MyEnum.Resources.coal, 1);
        aiTopLevel.setResPriority(player, MyEnum.Resources.cotton, 1.5f);
        aiTopLevel.setResPriority(player, MyEnum.Resources.dyes, 2.5f);
        aiTopLevel.setResPriority(player, MyEnum.Resources.gold, 3f);
        aiTopLevel.setResPriority(player, MyEnum.Resources.iron, 2.25f);
        aiTopLevel.setResPriority(player, MyEnum.Resources.oil, 0.25f);
        aiTopLevel.setResPriority(player, MyEnum.Resources.rubber, 0.25f);
        aiTopLevel.setResPriority(player, MyEnum.Resources.spice, 2.75f);
        aiTopLevel.setResPriority(player, MyEnum.Resources.wood, 1.5f);

        for (int i = 0; i < player.getProvinces().Count; i++)
        {
            int pIndex = player.getProvinces()[i];
            assemblyCsharp.Province prov = State.getProvinces()[pIndex];
            if (prov.getResource() == MyEnum.Resources.wheat)
            {
                aiTopLevel.alterResPriority(player, MyEnum.Resources.wheat, -0.2f);
            }
            if (prov.getResource() == MyEnum.Resources.meat)
            {
                aiTopLevel.alterResPriority(player, MyEnum.Resources.meat, -0.15f);
            }
            if (prov.getResource() == MyEnum.Resources.fruit)
            {
                aiTopLevel.alterResPriority(player, MyEnum.Resources.fruit, -0.15f);
            }
            if (prov.getResource() == MyEnum.Resources.coal)
            {
                aiTopLevel.alterResPriority(player, MyEnum.Resources.iron, 0.15f);
                aiTopLevel.alterResPriority(player, MyEnum.Resources.coal, -0.05f);
            }
            if (prov.getResource() == MyEnum.Resources.cotton)
            {
                aiTopLevel.alterResPriority(player, MyEnum.Resources.dyes, 0.16f);
                aiTopLevel.alterResPriority(player, MyEnum.Resources.cotton, -0.075f);
                aiTopLevel.alterResPriority(player, MyEnum.Resources.wood, 0.075f);
            }

            if (prov.getResource() == MyEnum.Resources.dyes)
            {
                aiTopLevel.alterResPriority(player, MyEnum.Resources.cotton, 0.2f);
            }
            if (prov.getResource() == MyEnum.Resources.gold)
            {
                aiTopLevel.alterResPriority(player, MyEnum.Resources.gold, -0.15f);
            }
            if (prov.getResource() == MyEnum.Resources.iron)
            {
                aiTopLevel.alterResPriority(player, MyEnum.Resources.coal, 0.1f);
                aiTopLevel.alterResPriority(player, MyEnum.Resources.iron, -0.075f);
            }
            if (prov.getResource() == MyEnum.Resources.oil)
            {
                aiTopLevel.alterResPriority(player, MyEnum.Resources.oil, -0.075f);
            }
            if (prov.getResource() == MyEnum.Resources.rubber)
            {
                aiTopLevel.alterResPriority(player, MyEnum.Resources.rubber, -0.075f);
            }
            if (prov.getResource() == MyEnum.Resources.spice)
            {
                aiTopLevel.alterResPriority(player, MyEnum.Resources.gold, -0.075f);
            }
            if (prov.getResource() == MyEnum.Resources.wood)
            {
                aiTopLevel.alterResPriority(player, MyEnum.Resources.wood, -0.1f);
                aiTopLevel.alterResPriority(player, MyEnum.Resources.cotton, 0.075f);
            }
        }
    }
示例#25
0
    private void prepareAuctionPanel(AuctionHandler auction)
    {
        increaseBid.enabled = true;
        decreaseBid.enabled = true;
        App             app         = UnityEngine.Object.FindObjectOfType <App>();
        int             playerIndex = app.GetHumanIndex();
        Nation          player      = State.getNations()[playerIndex];
        TextMeshProUGUI title       = AuctionPanelTitleText.GetComponent <TextMeshProUGUI>();
        Nation          item        = State.getNations()[0];

        // Colony Auction
        backGroudImage.sprite = Resources.Load("Sprites/BackGrounds/imperialism_cartoon", typeof(Sprite)) as Sprite;
        title.text            = "Colony Bids";
        pointTypeText.text    = "Colonial Points";
        // PointTypeImage.sprite = Resources.Load("Sprites/GUI/eagle", typeof(Sprite)) as Sprite;

        item = State.getNations()[auction.getIndexOfCurrentItem()];

        // GameObject mapPrefab = Instantiate(Resources.Load<GameObject>("RPG100set/512/Prop/06_letter" + item.getNationName()));
        currentNumberOfBiddingPoints.text = player.GetColonialPoints().ToString();
        if (player.GetColonialPoints() < State.CurrentColonyAuctionBid || player.RecognizingTheseClaims.Contains(item.getIndex()) || player.landForces.Strength < 2)
        {
            increaseBid.interactable = false;
        }
        else
        {
            increaseBid.interactable = true;
        }

        TextMeshProUGUI itemName = ItemNameText.GetComponent <TextMeshProUGUI>();

        itemName.text = item.getNationName();

        GameObject itemFlag = Instantiate(Resources.Load <GameObject>("Flags/Prefabs/" + item.getNationName()));

        itemFlag1.ObjectPrefab = itemFlag.transform;

        // TextMeshProUGUI currentPlayerBid = currentBidAmount.GetComponent<TextMeshProUGUI>();
        currentBidAmount.text = "00";
        int firstProvIndex  = -1;
        int secondProvIndex = -1;

        foreach (int provIndex in item.getProvinces())
        {
            if (firstProvIndex == -1)
            {
                firstProvIndex = provIndex;
            }
            else
            {
                secondProvIndex = provIndex;
            }
        }

        assemblyCsharp.Province firstProvince = State.getProvince(firstProvIndex);
        itemProvinces.Rows[1].Cells[0].GetComponentInChildren <Text>().text = firstProvince.getProvName();
        //  itemProvinces.Rows[1].Cells[1].GetComponentInChildren<Image>().sprite =
        Transform P1Res      = itemProvinces.Rows[1].Cells[1].transform.GetChild(0);
        Image     P1ResImage = P1Res.GetComponent <Image>();

        // Image provOneRes = itemProvinces.Rows[1].Cells[1].GetComponentInChildren<Image>() as Image;
        //resImg.sprite = Resources.Load("Resource/" + imp.getResourceType().ToString(), typeof(Sprite)) as Sprite;
        //  Debug.Log("First Resource is: " + firstProvince.getResource());
        P1ResImage.sprite = Resources.Load("Resource/" + firstProvince.getResource().ToString(), typeof(Sprite)) as Sprite;
        itemProvinces.Rows[1].Cells[2].GetComponentInChildren <Text>().text = firstProvince.getDevelopmentLevel().ToString();
        Toggle provOneRail = itemProvinces.Rows[1].Cells[3].GetComponentInChildren <Toggle>();

        if (firstProvince.getRail())
        {
            provOneRail.isOn = true;
        }
        else
        {
            provOneRail.isOn = false;
        }

        assemblyCsharp.Province secondProvince = State.getProvince(secondProvIndex);
        itemProvinces.Rows[2].Cells[0].GetComponentInChildren <Text>().text = secondProvince.getProvName();
        //  itemProvinces.Rows[1].Cells[1].GetComponentInChildren<Image>().sprite =
        // Image provTwoRes = itemProvinces.Rows[2].Cells[1].GetComponentInChildren<Image>() as Image;
        // Debug.Log("Second Resource is: " + secondProvince.getResource());
        Transform P2Res      = itemProvinces.Rows[2].Cells[1].transform.GetChild(0);
        Image     P2ResImage = P2Res.GetComponent <Image>();

        P2ResImage.sprite = Resources.Load("Resource/" + secondProvince.getResource().ToString(), typeof(Sprite)) as Sprite;
        itemProvinces.Rows[2].Cells[2].GetComponentInChildren <Text>().text = secondProvince.getDevelopmentLevel().ToString();
        Toggle provTwoRail = itemProvinces.Rows[2].Cells[3].GetComponentInChildren <Toggle>();

        if (secondProvince.getRail())
        {
            provTwoRail.isOn = true;
        }
        else
        {
            provTwoRail.isOn = false;
        }
        if (item.IsColonyOf() != -1)
        {
            Nation currentOwner = State.getNations()[item.IsColonyOf()];
            currentOwnerName.text         = currentOwner.getNationName();
            relationWithCurrentOwner.text = player.Relations[currentOwner.getIndex()].ToString();
        }
        else
        {
            currentOwnerName.text = "None";
        }

        if (player.RecognizingTheseClaims.Contains(item.getIndex()))
        {
            isRecognizing.isOn = true;
        }
        else
        {
            isRecognizing.isOn = false;
        }
    }
示例#26
0
        // Use this for initialization
        void Start()
        {
            State.turn = 1;
            State.setGamePhase(MyEnum.GamePhase.adminstration);
            map = WMSK.instance;

            SelfProvinceGUI.SetActive(false);
            OtherProvinceGUI.SetActive(false);

            // WMSKMiniMap.Show();


            string nationsPath = Application.dataPath +
                                 "/StreamingAssets/Scenarios/DefaultFictional/Nations";
            string provincesPath = Application.dataPath +
                                   "/StreamingAssets/Scenarios/DefaultFictional/Provinces";



            string[] provFiles = Directory.GetFiles(provincesPath, "*.json");
            //foreach (string file in System.IO.Directory.GetFiles(provincesPath))
            foreach (string file in provFiles)
            {
                string dataAsJson = File.ReadAllText(file);

                //  Debug.Log(dataAsJson);
                //  assemblyCsharp.Province province = assemblyCsharp.Province.CreateFromJSON(dataAsJson);
                //assemblyCsharp.Province province = new assemblyCsharp.Province();
                // assemblyCsharp.Province newProvince = JsonUtility.FromJson<assemblyCsharp.Province>(dataAsJson);
                var newProvince = Newtonsoft.Json.JsonConvert.DeserializeObject <assemblyCsharp.Province>(dataAsJson);
                provinces.Add(newProvince.getIndex(), newProvince);
                // Debug.Log("Culture: " + newProvince.getCulture());

                map.GetProvince(newProvince.getIndex()).name        = newProvince.getProvName();
                map.GetProvince(newProvince.getIndex()).customLabel = newProvince.getProvName();
            }

            string[] nationFiles = Directory.GetFiles(nationsPath, "*.json");

            foreach (string file in nationFiles)
            {
                string dataAsJson = File.ReadAllText(file);
                //   Debug.Log(dataAsJson);
                var newNation = Newtonsoft.Json.JsonConvert.DeserializeObject <assemblyCsharp.Nation>(dataAsJson);
                //   Nation newNation = JsonUtility.FromJson<Nation>(dataAsJson);

                nations.Add(newNation.getIndex(), newNation);
                map.GetCountry(newNation.getIndex()).name = newNation.getNationName();
                Color color = new Color(UnityEngine.Random.Range(0.0f, 1.0f),
                                        UnityEngine.Random.Range(0.0f, 1.0f), UnityEngine.Random.Range(0.0f, 1.0f));
                newNation.setColor(color);
                // map.ToggleCountrySurface(newNation.getIndex(), true, color);
                map.GetCountry(newNation.getIndex()).customLabel = newNation.getNationName();
                map.CountryRename("Country" + newNation.getIndex(), newNation.getNationName());
            }

            map.Redraw();

            for (int k = 0; k < map.countries.Length; k++)
            {
                //Color color = new Color(UnityEngine.Random.Range(0.0f, 1.0f),
                // UnityEngine.Random.Range(0.0f, 1.0f), UnityEngine.Random.Range(0.0f, 1.0f));
                Color color = nations[k].getColor();
                //    Debug.Log("f**k: " + k + " " + color);

                map.ToggleCountrySurface(k, true, color);
            }

            float       left   = 0.78f;
            float       top    = 0.02f;
            float       width  = 0.2f;
            float       height = 0.2f;
            Vector4     normalizedScreenRect = new Vector4(left, top, width, height);
            WMSKMiniMap minimap = WMSKMiniMap.Show(normalizedScreenRect);

            // string path = Application.dataPath + "Alpha9.png";
            minimap.map.earthStyle = EARTH_STYLE.SolidColor;
            //  string absoluteImagePath = Path.Combine(Application.streamingAssetsPath, "ScenarioOne/Alpha9.png");

            //Texture2D  miniMapTexture = loadSprite(path);
            Texture2D miniMapTexture = Resources.Load("AlphaPrime.png", typeof(Texture2D)) as Texture2D;

            minimap.map.earthTexture = miniMapTexture;
            minimap.map.fillColor    = Color.blue;
            minimap.map.earthColor   = Color.blue;

            minimap.duration  = 1.5f;
            minimap.zoomLevel = 0.4f;


            for (int countryIndex = 0; countryIndex < map.countries.Length; countryIndex++)
            {
                Color color = nations[countryIndex].getColor();
                minimap.map.ToggleCountrySurface(countryIndex, true, color);
            }


            Dictionary <int, string> majorNations = NationData.majorDict;
            Dictionary <int, string> minorNations = NationData.minorDict;
            Dictionary <int, string> uncivNations = NationData.uncivDict;

            map.showProvinceNames = true;

            WorldMapStrategyKit.Province prov = map.GetProvince(45);
            Vector2 position = prov.center;

            //  Vector2 position = map.GetProvince(45, 20).center;


            army      = PlaceArmy(position);
            army.name = "first unit";
            army.GetComponent <ArmyController>().army = army;

            Vector2 position2 = map.GetProvince(32).center;

            Nation humanPlayer = nations[16];

            humanPlayer.SetHuman(true);

            //


            //Ship Click

            /*  map.OnClick += (float x, float y, int buttonIndex) => {
             *    Vector2 shipPosition = new Vector2(x, y);
             *    byte byteValue1= 0;
             *
             *    map.waterMaskLevel = byteValue1;
             *    if (map.ContainsWater(shipPosition))
             *    {
             *        Debug.Log("Water!");
             *
             *    }
             *    else
             *    {
             *        Debug.Log("Land!");
             *    }
             *    if (map.GetProvince(shipPosition) == null)
             *    {
             *        ship.MoveTo(shipPosition, 0.1f);
             *    }
             *
             * }; */


            // LaunchShip();

            //Show resources of each provinces
            //  ShowProvinceResources();

            map.OnClick += (float x, float y, int buttonIndex) =>
            {
                Vector2 provincePosition = new Vector2(x, y);
                int     clickedIndex     = map.GetProvinceIndex(provincePosition);
                assemblyCsharp.Province clickedProvince = provinces[clickedIndex];
            };
        }