void Start()
 {
     eventer = GetComponent <PlayerJoinEventer>();
     eventer.OnPlayerJoined    += OnPlayerJoined;
     eventer.OnAllPlayersReady += OnAllPlayersReady;
     splitHelper = new SplitHelper();
 }
Example #2
0
        protected override void Perform(ActionEvent evt, Player player, MapElementInfo info, NVector pos,
                                        ActionHolder holder)
        {
            string[] keys;
            if (holder.data.ContainsKey("upgrade"))
            {
                keys = SplitHelper.Separator(holder.data["upgrade"]);
            }
            else
            {
                keys = info.IsBuilding()?L.b.buildings.Keys().ToArray():L.b.units.Keys().ToArray();
            }

            //load buildings
            WindowBuilderSplit b = WindowBuilderSplit.Create(holder.DataAction().Desc(), holder.DataAction().Name());

            {
                foreach (string key in keys)
                {
                    BaseDataBuildingUnit build = info.IsBuilding()?(BaseDataBuildingUnit)L.b.buildings[key]:L.b.units[key];
                    if (build.req.Check(player, info, pos, true))
                    {
                        BuildUpgradeSplitElement be = new BuildUpgradeSplitElement(build, info, pos, b);
                        be.disabled = build.req.Desc(player, info, pos);
                        b.Add(be);
                        //win.AddBuilding(build.id);
                    }
                }
            }

            b.Finish();
        }
        public override void ShowDetail(PanelBuilder panel)
        {
            panel.AddHeaderLabel("Receipts");

            int  i     = 0;
            bool found = false;

            while (_holder.data.ContainsKey("craft" + i))
            {
                found = true;
                var    d  = SplitHelper.SplitInt(_holder.data["craft" + i]);
                Craft  c  = L.b.crafts[d.key];
                int    id = i;
                Button b  = panel.AddImageTextButton((d.value == -1?"Endless ":d.value + "x ") + c.Name(), c.Icon, () =>
                {
                    Remove(id);
                });

                i++;
            }

            if (!found)
            {
                panel.AddLabel("No active receipt found. You can add some from the left menu.");
            }
        }
Example #4
0
        public override ActionHolder Create(string setting)
        {
            ActionHolder conf = base.Create(setting);

            //add res
            string[] type = SplitHelper.Separator(setting);
            if (type[0] == "once")
            {
                conf.trigger = ActionEvent.FinishConstruct;
            }
            else if (type[0] == "turn")
            {
                conf.trigger = ActionEvent.NextRound;
            }

            for (int i = 1; i < type.Length; i++)
            {
                var d = SplitHelper.SplitInt(type[i]);
                if (d.value < 0)
                {
                    conf.req.Add("res", $">{d.value*-1}:{d.key}");
                }
                conf.data.Add("res-" + d.key, d.value.ToString());
            }

            return(conf);
        }
Example #5
0
        protected void ActionParse(T ele, string data)
        {
            var a = SplitHelper.Delimiter(data);

            lastAction = LClass.s.GetNewAction(a.key).Create(a.value);
            ele.action.Add(lastAction);
        }
        protected bool CheckAllowed(Player player, MapElementInfo info, NVector pos, ActionHolder holder)
        {
            if (!holder.data.ContainsKey("allowed"))
            {
                return(false);
            }

            //load buildings
            WindowBuilderSplit b = WindowBuilderSplit.Create(holder.DataAction().Desc(), holder.DataAction().Name());

            foreach (string key in SplitHelper.Separator(holder.data["allowed"]))
            {
                AddObject(player, info, pos, key, b);
            }

            //has some?
            if (b.Count() >= 1)
            {
                b.Finish();
                return(true);
            }

            b.CloseWindow();
            info.UI().ShowPanelMessageError(S.T("tabNo", holder.DataAction().Desc()));
            return(true);
        }
Example #7
0
        public void UpdateCell(SplitItem split)
        {
            AmountLabel.Text   = string.Format("£{0:N}", split.Amount);
            NameLabel.Text     = split.Name;
            LocationLabel.Text = split.Location;


            PersonImage.Image = SplitHelper.GenerateImage(PersonImage.Frame.Width, PersonImage.Frame.Height);
        }
Example #8
0
        public (int min, int max) ResRange(string res)
        {
            if (!this.res.ContainsKey(res))
            {
                return(0, 0);
            }

            string[] c = SplitHelper.Separator(this.res[res])[0].Split('-');
            return(ConvertHelper.Int(c[0]), ConvertHelper.Int(c[1]));
        }
Example #9
0
        public override bool Check(Player player, string sett)
        {
            if (!LSys.tem.options["updateCheck"].Bool())
            {
                return(false);
            }

            string[] s = SplitHelper.Separator(PlayerPrefs.GetString("update.txt", "false"));
            return(!(s[0].Equals("false")));
        }
Example #10
0
        private void CreateCraft(Craft ele, string data)
        {
            var d = SplitHelper.SplitInt(data);

            if (d.value < 0)
            {
                ele.req.Add("res", $">{d.value*-1}:{d.key}");
            }
            ele.res.Add(d.key, d.value);
        }
        public void SetValue(int goal, bool presetFormat = false)
        {
            int left, right;

            while (!SplitHelper.SplitValue(goal, Operator.ToString().ToCharArray()[0], out left, out right, presetFormat))
            {
                ;
            }
            Left.SetValue(left, presetFormat);
            Right.SetValue(right, presetFormat);
        }
Example #12
0
        protected override void SetTile(TileMapConfig16 tile, NVector pos)
        {
            if (S.ActPlayer().overlay.Get("res", pos) == 0)
            {
                return;
            }

            int align = 0;
            var rgk   = GameMgmt.Get().data.map.levels[pos.level].ResGenKey(pos.x, pos.y);

            if (rgk == null)
            {
                return;
            }

            foreach (string key in rgk)
            {
                int act = GameMgmt.Get().data.map.ResGen(pos, key);
                var res = L.b.res[key];

                //nothing to display?
                if (res.overlay.Count == 0 || act == 0)
                {
                    continue;
                }

                string found = null;
                //find id
                foreach (var o in res.overlay)
                {
                    var sp = SplitHelper.DelimiterInt(o);
                    if (sp.value > act)
                    {
                        break;
                    }

                    found = sp.key;
                }

                //show it
                Tile t = GameMgmt.Get().newMap.tools.GetTile(found);
                tile.GetComponent <Tilemap>().SetTile(new Vector3Int(pos.x * 2 + (align % 2), pos.y * 2 + (align / 2), 0), t);

                align++;

                //full?
                if (align >= 4)
                {
                    return;
                }
            }
        }
Example #13
0
        public void UpdateCell(SplitItem split)
        {
            //TextLabel.Text = string.Format("£{0:N}", split.Amount);
            if (Amount != null)
            {
                Amount.Text = string.Format("£{0:N}", (split.Amount * split.SplitBetween));
            }

            TextLabel.Text       = split.Name;
            DetailTextLabel.Text = string.Format("Your share: £{0:N}", split.Amount);

            ImageView.Image = SplitHelper.GenerateImage(32, 32);
        }
Example #14
0
        public override bool Check(Player player, MapElementInfo onMap, string sett, NVector pos)
        {
            string[] terr = SplitHelper.Separator(sett);
            foreach (string terrain in terr)
            {
                if (GameMgmt.Get().newMap.Terrain(pos).category == terrain)
                {
                    return(true);
                }
            }

            return(false);
        }
Example #15
0
        /// <summary>
        /// Build the reqs
        /// </summary>
        /// <param name="reqs"></param>
        /// <returns></returns>
        public void Add(params string[] reqs)
        {
            foreach (string req in reqs)
            {
                if (String.IsNullOrEmpty(req))
                {
                    continue;
                }

                var s = SplitHelper.Delimiter(req);
                Add(s.key, s.value);
            }
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            splitHistory = StoredSplits;

            var tempSplits = SplitHelper.GenerateTempSplits();

            splitHistory.Source = new SplitHistorySource(this, tempSplits);


            //splitHistory.BackgroundColor = UIColor.Blue;
        }
Example #17
0
        protected override void Perform(ActionEvent evt, Player player, MapElementInfo info, NVector pos,
                                        ActionHolder holder)
        {
            DataTerrain terrain = GameMgmt.Get().newMap.Terrain(pos);

            //which is possible?
            List <(string key, string value)> opts = new List <(string key, string value)>();
            int i = 0;

            while (holder.data.ContainsKey(i.ToString()))
            {
                var d = SplitHelper.Split(holder.data[i.ToString()]);
                if (terrain.id == d.key)
                {
                    opts.Add(d);
                }
                i++;
            }

            //found it?
            if (opts.Count == 0)
            {
                OnMapUI.Get().unitUI.ShowPanelMessageError($"No terraform possible for {terrain.Name()}");
                return;
            }

            Vector3Int v3 = new Vector3Int(pos.x, pos.y, 1); //TODO find right pos

            if (opts.Count == 1)
            {
                GameMgmt.Get().newMap.levels[pos.level]
                .SetTile(v3, opts[0].value == "remove" ? null : L.b.terrains[opts[0].value]);
                return;
            }

            //multiple?
            WindowPanelBuilder wpb = WindowPanelBuilder.Create($"Terraform {terrain.Name()}");

            foreach (var opt in opts)
            {
                wpb.panel.AddImageTextButton(CreateTitle(opt), terrain.Sprite(), () =>
                {
                    GameMgmt.Get().newMap.levels[pos.level]
                    .SetTile(v3, opt.value == "remove" ? null : L.b.terrains[opt.value]);
                    wpb.Close();
                });
            }

            wpb.AddClose();
            wpb.Finish();
        }
Example #18
0
        protected override void Perform(ActionEvent evt, Player player, MapElementInfo info, NVector pos,
                                        ActionHolder holder)
        {
            var i = SplitHelper.Split(holder.data["improvement"]);

            //set improvement
            L.b.improvements.Set(i.key, pos);

            //kill?
            if (i.value == "kill")
            {
                info.Kill();
            }
        }
Example #19
0
        public override ActionHolder Create(string setting)
        {
            ActionHolder conf = base.Create(setting);

            conf.trigger = ActionEvent.Quest;

            foreach (var ele in SplitHelper.Separator(setting))
            {
                var s = SplitHelper.Split(ele);
                conf.data[s.key] = s.value;
            }

            return(conf);
        }
Example #20
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++;
            }
        }
Example #21
0
        public int ResChance(string res)
        {
            if (!this.res.ContainsKey(res))
            {
                return(0);
            }

            string[] s = SplitHelper.Separator(this.res[res]);

            if (s.Length >= 2)
            {
                return((int)ConvertHelper.Proc(s[1]));
            }

            return(0);
        }
Example #22
0
        protected override void Run(Player player)
        {
            string[] s = SplitHelper.Separator(PlayerPrefs.GetString("update.txt", "false"));

            if (s[0].Equals("false"))
            {
                return;
            }

            WindowPanelBuilder w = WindowPanelBuilder.Create($"Update to {s[1]}");

            w.panel.AddLabel(s[2]);
            w.panel.AddButton($"Download {s[1]}", (() => Application.OpenURL("http://9nations.de/download")));
            w.AddClose();
            w.Finish();
        }
Example #23
0
        public override ActionHolder Create(string setting)
        {
            ActionHolder conf = base.Create(setting);

            conf.trigger = ActionEvent.Direct;

            var split = SplitHelper.Separator(setting);

            conf.data["type"] = split[0];
            if (split.Length >= 2)
            {
                conf.data["player"] = split[1];
            }

            return(conf);
        }
Example #24
0
    public void SetOrientation(SplitHelper.Orientation orientation)
    {
        RectTransform healthTransform = healthSlider.GetComponent<RectTransform>();
        RectTransform boostTransform = boostSlider.GetComponent<RectTransform>();
        RectTransform scoreTransform = scorePanel.GetComponent<RectTransform>();
        Vector2 anchor = Vector2.zero;
        Vector2 position = Vector2.zero;
        switch (orientation) {
            case SplitHelper.Orientation.CENTER:
            case SplitHelper.Orientation.RIGHT:
            case SplitHelper.Orientation.TOP_RIGHT:
                anchor = new Vector2(1.0f, 0.0f);
                position = new Vector2(-margin, margin);
                break;
            case SplitHelper.Orientation.LEFT:
            case SplitHelper.Orientation.TOP_LEFT:
            case SplitHelper.Orientation.TOP:
                anchor = new Vector2(0.0f, 0.0f);
                position = new Vector2(margin, margin);
                break;
            case SplitHelper.Orientation.BOT_RIGHT:
                anchor = new Vector2(1.0f, 1.0f);
                position = new Vector2(-margin, -margin);
                break;
            case SplitHelper.Orientation.BOT_LEFT:
            case SplitHelper.Orientation.BOTTOM:
                anchor = new Vector2(0.0f, 1.0f);
                position = new Vector2(margin, -margin);
                break;
        }
        healthTransform.anchorMin = anchor;
        healthTransform.anchorMax = anchor;
        healthTransform.pivot = anchor;
        healthTransform.anchoredPosition = position;

        boostTransform.anchorMin = anchor;
        boostTransform.anchorMax = anchor;
        boostTransform.pivot = anchor;
        boostTransform.anchoredPosition = position + new Vector2(0.0f, Mathf.Sign(position.y) * boostMargin);

        scoreTransform.anchorMin = anchor;
        scoreTransform.anchorMax = anchor;
        scoreTransform.pivot = anchor;
        scoreTransform.anchoredPosition = position + new Vector2(0.0f, Mathf.Sign(position.y) * scoreMargin);
    }
        public MappingProfile()
        {
            CreateMap <DemoEntity, Demo>()
            .ForMember(dest => dest.Name, opts => opts.MapFrom(src => $"{src.FirstName} {src.LastName}"))
            .ForMember(dest => dest.Position, opts => opts.MapFrom(src => EnumHelper <Position> .GetDisplayValue(src.Position)))
            .ForMember(dest => dest.Offices, opts => opts.MapFrom(src => src.Office))
            .ReverseMap()
            .ForMember(dest => dest.FirstName, opts => opts.MapFrom(src => SplitHelper.Split(src.Name, ' ', 0)))
            .ForMember(dest => dest.LastName, opts => opts.MapFrom(src => SplitHelper.Split(src.Name, ' ', 1)));

            CreateMap <DemoNestedLevelOneEntity, DemoNestedLevelOne>()
            .ForMember(dest => dest.Extension, opts => opts.MapFrom(src => src.Extn))
            .ForMember(dest => dest.DemoNestedLevelTwos, opts => opts.MapFrom(src => src.DemoNestedLevelTwo))
            .ReverseMap();

            CreateMap <DemoNestedLevelTwoEntity, DemoNestedLevelTwo>()
            .ForMember(dest => dest.StartDates, opts => opts.MapFrom(src => src.StartDate))
            .ReverseMap();
        }
Example #26
0
        public static Dictionary <string, string> BuildNewReq(Dictionary <string, string> o)
        {
            Dictionary <string, string> r = new Dictionary <string, string>();
            int id = 0;

            while (o.ContainsKey("req" + id))
            {
                var re = SplitHelper.Delimiter(o["req" + id]);
                id++;
                if (string.IsNullOrEmpty(re.value))
                {
                    o.Add(re.key, "");
                    continue;
                }
                r.Add(re.key, re.value);
            }

            return(r);
        }
Example #27
0
        public override ActionHolder Create(string setting)
        {
            ActionHolder conf = base.Create(setting);

            conf.trigger = ActionEvent.Direct;

            if (!string.IsNullOrEmpty(setting))
            {
                conf.data["upgrade"] = setting;
                string[] keys = SplitHelper.Separator(setting);

                //add req
                foreach (string key in keys)
                {
                    conf.req.Add("upgrade", key);
                }
            }

            return(conf);
        }
Example #28
0
        public override bool Check(Player player, MapElementInfo onMap, string sett, NVector pos)
        {
            if (S.Building().Free(pos))
            {
                return(false);
            }

            var bi = S.Building().At(pos).dataBuilding;

            string[] builds = SplitHelper.Separator(sett);
            foreach (var b in builds)
            {
                if (bi.id == b)
                {
                    return(true);
                }
            }

            return(false);
        }
Example #29
0
        public void FinishBuild()
        {
            //check generate
            if (terrains.Count == 0)
            {
                Assert.IsNotNull(generate, $"Data and generate for level {name} is missing.");
                LSys.tem.mapGeneration[generate].Generator().Generate(this);
            }

            //set res
            resGenerate = new Dictionary <string, int> [Width(), Height()];
            for (int x = 0; x < Width(); x++)
            {
                for (int y = 0; y < Height(); y++)
                {
                    DataTerrain bt = Terrain(x, y);
                    //has res?
                    if (bt.res.Count == 0)
                    {
                        continue;
                    }

                    //add it
                    resGenerate[x, y] = new Dictionary <string, int>();
                    foreach (KeyValuePair <string, string> r in bt.res)
                    {
                        string[] s = SplitHelper.Separator(r.Value);

                        //has chance?
                        if (s.Length >= 2 && Random.Range(0, 100) < ConvertHelper.Proc(s[1]))
                        {
                            continue;
                        }

                        var c = bt.ResRange(r.Key);
                        resGenerate[x, y].Add(r.Key, Random.Range(c.min, c.max));
                    }
                }
            }
        }
        protected void AddLast(Player player, MapElementInfo info, NVector pos, ActionHolder holder,
                               WindowTabBuilder wtb)
        {
            var last = L.b.playerOptions["last" + id];

            //add last used?
            if (!string.IsNullOrEmpty(last.Value()))
            {
                SplitElementTab set = new SplitElementTab(last.Name(), last.Icon, holder.DataAction().Name());
                foreach (string key in SplitHelper.Separator(last.Value()))
                {
                    if (string.IsNullOrEmpty(key))
                    {
                        continue;
                    }

                    AddObject(player, info, pos, key, set);
                }

                wtb.Add(set);
            }
        }
        /// <summary>
        /// Instantiate a new operator node and make sure that its value is as specified
        /// and the tree rooted at this node has the specified number of operand nodes.
        /// </summary>
        /// <param name="goal"></param>
        /// <param name="numberOfNewNodes"></param>
        public OperatorNode(int goal, int numberOfNewNodes = 2)
        {
            int  left, right;
            char op;

            // Choose a random valid operator for this node and split the goal
            do
            {
                op = Tree.operators.GetRandomElement();
            } while (!SplitHelper.SplitValue(goal, op, out left, out right));

            Operator = new Operator(op);
            Left     = new OperandNode(left);
            Right    = new OperandNode(right);

            int toLeft, toRight;

            // Distribute the number of new operands to be made between the two sides
            SplitHelper.SplitNumberOfOperands(left, right, numberOfNewNodes, out toLeft, out toRight);

            Left  = Left.Expand(toLeft);
            Right = Right.Expand(toRight);
        }
 void Start()
 {
     eventer = GetComponent<PlayerJoinEventer>();
     eventer.OnPlayerJoined += OnPlayerJoined;
     eventer.OnAllPlayersReady += OnAllPlayersReady;
     splitHelper = new SplitHelper();
 }