Exemplo n.º 1
0
        public override void ShowDetail(PanelBuilder panel)
        {
            PlayerResearchMgmt mgmt = S.ActPlayer().research;

            panel.AddHeaderLabel("Actual");
            if (mgmt.actual == null || mgmt.actual.Count == 0)
            {
                panel.AddImageLabel("No Research at the moment", "no");
            }
            else
            {
                foreach (string e in mgmt.actual)
                {
                    Element el = L.b.elements[e];
                    panel.AddImageLabel(el.Name(), el.Icon);
                }
            }

            elements = new List <string>();

            panel.AddHeaderLabel("New Research area");
            foreach (string en in S.ActPlayer().elements.elements)
            {
                Element e = L.b.elements[en];
                panel.AddImageTextButton($"Add {e.Name()}", e.Sprite(), (() =>
                {
                    elements.Add(e.id);
                    UpdateDesc();
                }));
            }

            panel.AddHeaderLabel("Control");
            desc = panel.AddLabel("???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ");
            panel.AddButton("Clear actual plan", () => { elements.Clear(); UpdateDesc(); });
            start = panel.AddButton("??", () => { mgmt.BeginNewResearch(elements); window.CloseWindow(); });
            UpdateDesc();

            if (S.Debug())
            {
                panel.AddSubLabel($"Act cost", S.ActPlayer().research.cost.ToString());
                panel.AddHeaderLabel("General possible");
                panel.AddLabel(String.Join(",", S.ActPlayer().research.AvailableResearch().Select(r => r.Name())));
                if (mgmt.actual != null)
                {
                    panel.AddHeaderLabel("Actual possible");
                    panel.AddLabel(String.Join(",", S.ActPlayer().research.AvailableResearch(mgmt.actual).Select(r => r.Name())));
                }
            }
        }
Exemplo n.º 2
0
        public override void ShowDetail(PanelBuilder panel)
        {
            panel.AddHeaderLabel("Finish researches");
            foreach (Research r in L.b.researches.Values())
            {
                if (S.ActPlayer().research.IsFinish(r.id))
                {
                    panel.AddImageLabel(r.Name(), r.Icon);
                }
            }

            if (panel.Count() == 1)
            {
                panel.AddImageLabel("No finish research.", "no");
            }
        }
Exemplo n.º 3
0
        public override void ShowDetail(PanelBuilder panel)
        {
            panel.AddImageLabel(_info.name, _info.Sprite());
            panel.AddHeaderLabel("Information");
            //diff unit?
            if (!_info.Owner(S.ActPlayerID()))
            {
                panel.AddSubLabel("Owner", _info.Player().name, _info.Player().Coat().Icon);
                panel.AddSubLabel("HP", $"??/{_info.baseData.hp}", "hp");
                panel.AddSubLabel("AP", $"??/{_info.baseData.ap}", "ap");
                return;
            }

            panel.RichText(_info.data.info.LastInfo());
            panel.AddSubLabel("HP", $"{_info.data.hp}/{_info.data.hpMax}", "hp");
            panel.AddSubLabel("AP", $"{_info.data.ap}/{_info.data.apMax}", "ap");

            Construction con = _info.GetComponent <Construction>();

            if (con != null)
            {
                panel.AddResT("constructionOnGoing", _info.data.construction.ToDictionary(entry => entry.Key, entry => entry.Value));
                panel.AddLabelT("constructionOnGoingDesc");
            }

            panel.AddModi(_info.data.modi);
        }
Exemplo n.º 4
0
        public void BuildPanel(PanelBuilder panel, string title, Player player = null)
        {
            try
            {
                //addHeader
                if (reqs.Count == 0)
                {
                    return;
                }

                panel.AddHeaderLabel(title);

                //add req
                foreach (var req in reqs)
                {
                    BaseReq r = OLib.GetReq(req[0]);
                    if (player == null)
                    {
                        panel.AddLabel(r.Desc(null, req[1]));
                    }
                    else
                    {
                        panel.AddImageLabel(r.Desc(player, req[1]), r.Check(player, req[1]));
                    }
                }
            }
            catch (Exception e)
            {
                ExceptionHelper.ShowException(e);
            }
        }
Exemplo n.º 5
0
        public override void ShowLexicon(PanelBuilder panel)
        {
            base.ShowLexicon(panel);
            panel.AddImageLabel(S.T("spellCost", cost), "ap");
            req.BuildPanel(panel);
            reqTarget.BuildPanel(panel);

            var ah = new ActionDisplaySettings(panel, null);

            action.BuildPanelT(ah, "spellPerformSuccess");
            actionFail.BuildPanelT(ah, "spellPerformFail");
        }
Exemplo n.º 6
0
        public override void ShowLexicon(PanelBuilder panel, MapElementInfo info, NVector pos)
        {
            base.ShowLexicon(panel);
            panel.AddImageLabel(S.T("spellCostUnit", cost, info.data.ap), "ap");
            panel.AddLabel(S.T("spellChance", info.data.spells.CalcChance(id)));
            req.BuildPanel(panel, info, info.Pos());
            reqTarget.BuildPanel(panel);

            var ah = new ActionDisplaySettings(panel, S.ActPlayer(), info, info.Pos(), null);

            action.BuildPanelT(ah, "spellPerformSuccess");
            actionFail.BuildPanelT(ah, "spellPerformFail");
        }
Exemplo n.º 7
0
 public void AddToPanel(PanelBuilder panel)
 {
     if (desc != null)
     {
         panel.AddImageTextButton(title, SpriteHelper.Load(icon), ShowImportant);
     }
     else if (action == null)
     {
         panel.AddImageLabel(title, SpriteHelper.Load(icon));
     }
     else
     {
         panel.AddImageTextButton(title, SpriteHelper.Load(icon), CallAction);
     }
 }
Exemplo n.º 8
0
        public override void ShowLexicon(PanelBuilder panel)
        {
            DataTerrain terr = L.b.terrains[Terrain];

            base.ShowLexicon(panel);
            panel.AddHeaderLabelT("general");
            panel.AddImageLabel($"Home terrain: {terr.Name()}", terr.Sprite());
            panel.AddModi(Modi);
            if (elements.Count > 0)
            {
                panel.AddHeaderLabel(S.T(L.b.elements.Id(), elements.Count));
                foreach (var element in elements)
                {
                    L.b.elements[element].AddImageLabel(panel);
                }
            }
        }
Exemplo n.º 9
0
        public override void ShowDetail(PanelBuilder panel)
        {
            panel.AddHeaderLabel("General");
            panel.AddSubLabel("Version", Application.version);
            panel.AddSubLabel("System", Application.platform.ToString());

            panel.AddHeaderLabel("Library");
            foreach (var m in L.b.mgmts.Values)
            {
                panel.AddImageLabel($"{m.Length} x {m.Name()}", m.Sprite());
            }

            panel.AddHeaderLabel("Mods");
            foreach (var mod in ModManager.GetInstalledModDirectories(true))
            {
                panel.AddLabel(new DirectoryInfo(mod).Name);
            }
        }
Exemplo n.º 10
0
        public void ShowInfo(PanelBuilder panel)
        {
            if (!ActPlayerIsOwner())
            {
                panel.AddImageLabel(name, GetIcon());
                panel.AddLabel(GetTownLevelName());
                panel.AddSubLabel("Owner", Player().name, Player().Coat().Icon);
                return;
            }

            panel.AddInputRandom("town name", name, val => name = val,
                                 () => LClass.s.NameGenerator(Player().Nation().TownNameGenerator));

            panel.AddLabel(GetTownLevelName());
            L.b.res[C.Inhabitant]
            .AddImageLabel(panel, $"{GetRes(C.Inhabitant)}/{MaxInhabitantsAndWorker().maxInhabitants}");
            //panel.AddSubLabel(L.b.res["inhabitant"].name,$"{}/{}",L.b.res["inhabitant"].Icon);
            //ShowRes(panel);

            ShowCombineRes(panel);

            panel.AddModi(modi);
        }
Exemplo n.º 11
0
        public void BuildPanel(PanelBuilder panel, string title, MapElementInfo onMap, NVector pos)
        {
            try
            {
                //addHeader
                if (reqs.Count == 0)
                {
                    return;
                }

                panel.AddHeaderLabel(title);

                //add req
                foreach (var req in reqs)
                {
                    BaseReq r = OLib.GetReq(req[0]);
                    panel.AddImageLabel(r.Desc(S.ActPlayer(), onMap, req[1], pos), r.Check(S.ActPlayer(), onMap, req[1], pos));
                }
            }
            catch (Exception e)
            {
                ExceptionHelper.ShowException(e);
            }
        }
Exemplo n.º 12
0
 public void AddImageLabel(PanelBuilder panel, string count)
 {
     panel.AddImageLabel(S.T("resourceCount", S.T(id, 2), count), Sprite());
 }
Exemplo n.º 13
0
 public override void AddImageLabel(PanelBuilder panel, int count)
 {
     panel.AddImageLabel(Text(count), Sprite());
 }
Exemplo n.º 14
0
        public override void ShowDetail(PanelBuilder panel)
        {
            ShowInhabitants(panel);

            //usage?
            if (!L.b.gameOptions["usageTown"].Bool())
            {
                return;
            }

            var inh = town.GetRes(C.Inhabitant);

            panel.AddSubLabel("Productivity", town.modi["produce"], "res");
            if (town.usageMess != null)
            {
                panel.AddSubLabel("Status", town.usageMess);
            }

            int usages = 0;

            panel.AddHeaderLabelT("usageRound");

            //find usage count
            foreach (Usage usage in L.b.usages.Values())
            {
                //can use?
                if (!usage.req.Check(town.Player()))
                {
                    continue;
                }

                usages += usage.factor;
            }
            int usageMax = usages;


            //use usage
            foreach (Usage usage in L.b.usages.Values())
            {
                //can use?
                if (!usage.req.Check(town.Player()))
                {
                    continue;
                }

                var r = L.b.res[usage.id];

                int amount    = (int)Math.Round(inh * usage.rate);
                int hasAmount = town.GetRes(r.id);

                panel.AddSubLabel(usage.Name(), S.T("usageRoundRes", amount, hasAmount), usage.Icon);
                //need res?
                if (amount >= 0 || amount * -1 <= hasAmount)
                {
                    usages -= 1;
                }
            }

            //worker
            //res

            panel.AddHeaderLabelT("usageRoundResult");
            panel.AddImageLabel(S.T("usageRoundResultStatus", usageMax - usages, usageMax - town.level), "usage");
            panel.AddImageLabel(town.level >= usages?S.T("usageRoundResultStatusFulfilled"):S.T("usageRoundResultStatusNotFulfilled"), town.level >= usages);
        }
Exemplo n.º 15
0
        public virtual void AddImageLabel(PanelBuilder panel, int count)
        {
            var text = S.T("plural", S.T(id, count), count);

            panel.AddImageLabel(text, Sprite());
        }
Exemplo n.º 16
0
 public void AddImageLabel(PanelBuilder panel)
 {
     panel.AddImageLabel(S.Debug()?S.T("debugName", Name(), id):Name(), Sprite());
 }