示例#1
0
        private static NetworkUI.NetworkMenu BuildManager(Players.Player player, Pipliz.Collections.SortedList <string, ColonyJobData> jobinfo)
        {
            NetworkUI.NetworkMenu ret = NetworkStuff.BaseMenu();
            ret.LocalStorage.SetAs("header", "Colony Manager");

            List <(NetworkUI.IItem, int)> headers = new List <(NetworkUI.IItem, int)>();

            headers.Add((new NetworkUI.Items.Label("Job"), 140));
            headers.Add((new NetworkUI.Items.Label("Working"), 140));
            headers.Add((new NetworkUI.Items.Label("Available"), 140));
            ret.Items.Add(new NetworkUI.Items.HorizontalRow(headers));

            //List Jobs
            foreach (var item in jobinfo)
            {
                List <(NetworkUI.IItem, int)> items = new List <(NetworkUI.IItem, int)>();
                items.Add((new NetworkUI.Items.Label(item.Key), 140));

                items.Add((new NetworkUI.Items.Label(item.Value.Taken.ToString()), 140));
                items.Add((new NetworkUI.Items.Label(item.Value.Avaible.ToString()), 140));

                items.Add((new NetworkUI.Items.ButtonCallback("PG.Recruit." + item.Key, new NetworkUI.LabelData("Recruit", UnityEngine.Color.black, UnityEngine.TextAnchor.MiddleCenter)), 140));

                items.Add((new NetworkUI.Items.ButtonCallback("PG.Jobs." + item.Key, new NetworkUI.LabelData("NPC List", UnityEngine.Color.black, UnityEngine.TextAnchor.MiddleCenter)), 140));

                ret.LocalStorage.SetAs("PG.Recruit." + item.Key, 0);
                ret.LocalStorage.SetAs("PG.Jobs." + item.Key, 0);
                ret.Items.Add(new NetworkUI.Items.HorizontalRow(items));
            }

            return(ret);
        }
示例#2
0
        private static NetworkUI.NetworkMenu BuildManager(Players.Player player, string jobname)
        {
            NetworkUI.NetworkMenu ret = NetworkStuff.BaseMenu();
            ret.LocalStorage.SetAs("header", "Job Manager");
            List <NPC.NPCBase> npcs = GetNPCsofJob(player.ActiveColony, jobname);

            List <(NetworkUI.IItem, int)> headers = new List <(NetworkUI.IItem, int)>();

            headers.Add((new NetworkUI.Items.Label("Name"), 140));
            headers.Add((new NetworkUI.Items.Label("Age"), 140));
            headers.Add((new NetworkUI.Items.Label("Job Level"), 140));
            headers.Add((new NetworkUI.Items.Label("Action Speed"), 140));
            ret.Items.Add(new NetworkUI.Items.HorizontalRow(headers));

            foreach (var npc in npcs)
            {
                if (NPCXP.JobManager.GetJobData(npc.NPCType, out NPCXP.JobData jobData))
                {
                    NPCXP.NPCData npcData = NPCXP.NPCManager.GetNPCData(npc.ID, player.ActiveColony);
                    NPCXP.XPData  xpData  = npcData.XPData;
                    List <(NetworkUI.IItem, int)> items = new List <(NetworkUI.IItem, int)>();
                    items.Add((new NetworkUI.Items.Label(npcData.Name), 140));
                    items.Add((new NetworkUI.Items.Label(npcData.Age.ToString()), 140));
                    items.Add((new NetworkUI.Items.Label(xpData.GetLevel(jobname).ToString()), 140));

                    items.Add((new NetworkUI.Items.Label((jobData.cooldown * xpData.GetCraftingMultiplier(jobname)).ToString()), 140));

                    ret.Items.Add(new NetworkUI.Items.HorizontalRow(items));
                }
            }

            return(ret);
        }
示例#3
0
        private static NetworkUI.NetworkMenu BuildMenu(Players.Player player)
        {
            NetworkUI.NetworkMenu ret = NetworkStuff.BaseMenu();
            ret.LocalStorage.SetAs("header", "Resource Manager");

            List <(NetworkUI.IItem, int)> headers = new List <(NetworkUI.IItem, int)>();

            headers.Add((new NetworkUI.Items.Label("Item Name"), 200));
            headers.Add((new NetworkUI.Items.Label("Today"), 200));
            headers.Add((new NetworkUI.Items.Label("Yesterday"), 200));
            headers.Add((new NetworkUI.Items.Label("Two Days Ago"), 200));
            headers.Add((new NetworkUI.Items.Label("Average"), 200));
            ret.Items.Add(new NetworkUI.Items.HorizontalRow(headers));

            Stockpile.OldStockpiles stockpiles = Stockpile.StockpileManager.GetOldStockpiles(player.ActiveColony.ColonyID);
            foreach (var item in player.ActiveColony.Stockpile.Items)
            {
                if (stockpiles.today.ContainsKey(item.Key) || stockpiles.yesterday.ContainsKey(item.Key) || stockpiles.twodaysago.ContainsKey(item.Key))
                {
                    List <(NetworkUI.IItem, int)> items = new List <(NetworkUI.IItem, int)>();
                    items.Add((new NetworkUI.Items.Label(ItemTypes.IndexLookup.GetName(item.Key)), 200));
                    int avg = 0;
                    if (stockpiles.today.ContainsKey(item.Key))
                    {
                        avg += stockpiles.today[item.Key];
                        items.Add((new NetworkUI.Items.Label(stockpiles.today[item.Key].ToString()), 200));
                    }
                    else
                    {
                        items.Add((new NetworkUI.Items.Label("NA"), 200));
                    }
                    if (stockpiles.yesterday.ContainsKey(item.Key))
                    {
                        avg += stockpiles.yesterday[item.Key];
                        items.Add((new NetworkUI.Items.Label(stockpiles.yesterday[item.Key].ToString()), 200));
                    }
                    else
                    {
                        items.Add((new NetworkUI.Items.Label("NA"), 200));
                    }
                    if (stockpiles.twodaysago.ContainsKey(item.Key))
                    {
                        avg += stockpiles.twodaysago[item.Key];
                        items.Add((new NetworkUI.Items.Label(stockpiles.twodaysago[item.Key].ToString()), 200));
                    }
                    else
                    {
                        items.Add((new NetworkUI.Items.Label("NA"), 200));
                    }
                    avg = avg / 3;
                    items.Add((new NetworkUI.Items.Label(avg.ToString()), 200));
                    ret.Items.Add(new NetworkUI.Items.HorizontalRow(items));
                }
            }
            return(ret);
        }