Exemplo n.º 1
0
        public virtual void BuildPanel(ActionDisplaySettings sett)
        {
            FDataAction da = L.b.actions[id];
            string h = sett.header ?? (S.Debug() ? $"{da.Name()} ({id})" : da.Name());

            if (sett.compact)
            {
                sett.panel.AddImageLabel(h, da.Icon);
                return;
            }
            
            sett.panel.AddHeaderLabel(h);

            if (S.Debug())
            {
                sett.panel.AddSubLabel("triggerWait",sett.holder.triggerWait.ToString());
            }

            if (sett.holder.triggerCount > 0)
            {
                string s = sett.holder.triggerWait ? " in" : " ";
                if (sett.holder.trigger == ActionEvent.NextRound)
                {
                    sett.panel.AddImageLabel($"Action will be performed{s} {sett.holder.triggerCount} rounds.", "build");
                } 
                else if (sett.holder.trigger == ActionEvent.Direct)
                {
                    sett.panel.AddLabel($"You can perform this action{s} {sett.holder.triggerCount} times.");
                }
            }
            else
            {
                switch (sett.holder.trigger)
                {
                    case ActionEvent.Direct:
                        sett.panel.AddImageLabel($"You can performed it directly for {sett.holder.cost} AP","ap");
                        break;
                    case ActionEvent.FinishConstruct:
                        sett.panel.AddLabel("It will be performed after finish construction.");
                        break;
                    case ActionEvent.NextRound:
                        sett.panel.AddLabel("It will be performed every round.");
                        break;
                    default:
                        sett.panel.AddLabel($"It will be performed {sett.holder.trigger}");
                        break;
                }
            }
            
            //add req?
            if (sett.addReq)
            {
                if (sett.pos == null)
                    sett.holder.req.BuildPanel(sett.panel);
                else
                    sett.holder.req.BuildPanel(sett.panel, sett.mapElement, sett.pos);
            }
                
        }
Exemplo n.º 2
0
        public override void BuildPanel(ActionDisplaySettings sett)
        {
            sett.panel.AddModi(sett.holder.data);

            if (!sett.compact)
            {
                base.BuildPanel(sett);
            }
        }
Exemplo n.º 3
0
        public override void BuildPanel(ActionDisplaySettings sett)
        {
            if (sett.pos == null)
            {
                base.BuildPanel(sett);
                return;
            }

            //found dest?
            BuildPanelIntern(sett, S.Unit(sett.pos));
        }
Exemplo n.º 4
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.º 5
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.º 6
0
        public override void BuildPanel(ActionDisplaySettings sett)
        {
            foreach (var ele in sett.holder.data)
            {
                int val = ConvertHelper.Int(ele.Value);
                sett.panel.AddImageLabel(S.T(val > 0?"statAdd":"statRemove", val, S.T(ele.Key)), Icon(ele.Key));
            }

            if (!sett.compact)
            {
                base.BuildPanel(sett);
            }
        }
Exemplo n.º 7
0
        public override void ShowLexicon(PanelBuilder panel)
        {
            base.ShowLexicon(panel);
            L.b.res[C.BuildRes].AddSubLabel(panel, buildTime, "round");
            L.b.modifiers[C.ViewModi].AddSubLabel(panel, visibilityRange, "field");
            ShowWorker(panel);
            panel.AddResT("constructionCost", cost);
            req.BuildPanel(panel, S.T("constructionReq"));
            panel.AddModi(modi);

            ActionDisplaySettings sett = new ActionDisplaySettings(panel, null);

            sett.compact = true;
            action.BuildPanelT(sett);
        }
Exemplo n.º 8
0
        public override void BuildPanel(ActionDisplaySettings sett)
        {
            base.BuildPanel(sett);

            //list it
            int i = 0;

            while (sett.holder.data.ContainsKey(i.ToString()))
            {
                var         d    = SplitHelper.Split(sett.holder.data[i.ToString()]);
                DataTerrain terr = L.b.terrains[d.key];
                sett.panel.AddImageLabel(CreateTitle(d), terr.Icon);
                i++;
            }
        }
Exemplo n.º 9
0
        public override void BuildPanel(ActionDisplaySettings sett)
        {
            var create = Get(sett.holder.data["type"]);
            var txt    = sett.holder.data.ContainsKey("player") ? S.T("createBelong", create.Name(), S.Player(ConvertHelper.Int(sett.holder.data["player"])).name) : S.T("createDetail", create.Name());

            if (sett.compact)
            {
                sett.panel.AddImageLabel(txt, create.Icon);

                return;
            }

            sett.header = txt;
            base.BuildPanel(sett);
        }
Exemplo n.º 10
0
        protected void BuildPanelIntern(ActionDisplaySettings sett, MapElementInfo info)
        {
            sett.header = TextHelper.Cap(S.T("attack", info.name));
            base.BuildPanel(sett);

            if (sett.compact)
            {
                return;
            }

            sett.panel.AddHeaderLabel(S.T("attackSelf", sett.mapElement.name));
            sett.panel.AddSubLabelT("atk", sett.mapElement.data.atk, "atk");
            sett.panel.AddSubLabelT("dam", S.T("attackDam", sett.mapElement.baseData.damMin, sett.mapElement.baseData.damMax),
                                    "damage");

            sett.panel.AddHeaderLabel(S.T("attackNonSelf", info.name));
            sett.panel.AddSubLabelT("def", info.data.def, "def");

            //both units?
            if (!sett.mapElement.IsBuilding() && !info.IsBuilding())
            {
                bool found = false;
                foreach (var fm in L.b.fightModis.Values())
                {
                    if (!fm.req.Check(sett.mapElement, sett.pos))
                    {
                        continue;
                    }

                    if (!found)
                    {
                        sett.panel.AddHeaderLabelT("fightmodi");
                        found = true;
                    }

                    sett.panel.AddImageLabel(fm.Desc(), fm.Icon);
                }
            }
        }
Exemplo n.º 11
0
        public override void BuildPanel(ActionDisplaySettings sett)
        {
            if (sett.compact)
            {
                sett.panel.AddHeaderLabelT(sett.holder.trigger == ActionEvent.FinishConstruct
                    ? "produceConstruction":"produceTurn");
                foreach (var data in sett.holder.data)
                {
                    if (!data.Key.StartsWith("res-"))
                    {
                        continue;
                    }

                    L.b.res[data.Key.Substring(4)].AddImageLabel(sett.panel, ConvertHelper.Int(data.Value));
                }

                return;
            }

            sett.addReq = false;
            base.BuildPanel(sett);
            foreach (var data in sett.holder.data)
            {
                if (!data.Key.StartsWith("res-"))
                {
                    continue;
                }

                L.b.res[data.Key.Substring(4)].AddImageLabel(sett.panel, ConvertHelper.Int(data.Value));
            }
            if (sett.mapElement == null)
            {
                sett.holder.req.BuildPanel(sett.panel);
            }
            else
            {
                sett.holder.req.BuildPanel(sett.panel, sett.mapElement, sett.pos);
            }
        }
Exemplo n.º 12
0
        public override void ShowLexicon(PanelBuilder panel, MapElementInfo onMap, NVector pos)
        {
            if (onMap == null)
            {
                ShowIntern(panel, null, pos);

                ActionDisplaySettings sett = new ActionDisplaySettings(panel, S.ActPlayer(), null, pos, null);
                sett.compact = true;
                action.BuildPanelT(sett);
                return;
            }

            if (!onMap.Owner(S.ActPlayerID()))
            {
                ShowLexicon(panel);
                return;
            }

            pos = onMap.Pos();
            ShowIntern(panel, onMap, pos);

            onMap.data.action.BuildPanelT(new ActionDisplaySettings(panel, onMap.Player(), onMap, pos, null));
        }
Exemplo n.º 13
0
 public override void BuildPanel(ActionDisplaySettings sett)
 {
     base.BuildPanel(sett);
     sett.panel.AddSubLabel("Chance to evolve", (100 / sett.player.elements.elements.Count) + "%");
 }
Exemplo n.º 14
0
        public override void ShowDetail(PanelBuilder panel)
        {
            ActionDisplaySettings ads = new ActionDisplaySettings(panel, S.ActPlayer(), self, pos, action);

            action.PerformAction().BuildPanel(ads);
        }