Exemplo n.º 1
0
Arquivo: L.cs Projeto: TrutzX/9Nations
        protected override IEnumerator Loading()
        {
            mgmts         = new Dictionary <string, IRead>();
            terrains      = (TerrainMgmt)Add(new TerrainMgmt());
            modifiers     = (ModifierMgmt)Add(new ModifierMgmt());
            nations       = (NationMgmt)Add(new NationMgmt());
            improvements  = (ImprovementMgmt)Add(new ImprovementMgmt());
            elements      = (ElementMgmt)Add(new ElementMgmt());
            rounds        = (RoundMgmt)Add(new RoundMgmt());
            buildings     = (DataBuildingMgmt)Add(new DataBuildingMgmt());
            units         = (DataUnitMgmt)Add(new DataUnitMgmt());
            usages        = (UsageMgmt)Add(new UsageMgmt());
            res           = (ResourceMgmt)Add(new ResourceMgmt());
            actions       = (FActionMgmt)Add(new FActionMgmt());
            researches    = (ResearchMgmt)Add(new ResearchMgmt());
            movements     = (MovementMgmt)Add(new MovementMgmt());
            gameButtons   = (GameButtonMgmt)Add(new GameButtonMgmt());
            fightModis    = (FightModiMgmt)Add(new FightModiMgmt());
            gameOptions   = (GameOptionMgmt)Add(new GameOptionMgmt());
            playerOptions = (PlayerOptionMgmt)Add(new PlayerOptionMgmt());
            crafts        = (CraftMgmt)Add(new CraftMgmt());
            overlays      = (OverlayMgmt)Add(new OverlayMgmt());
            coats         = (CoatMgmt)Add(new CoatMgmt());
            items         = (ItemMgmt)Add(new ItemMgmt());
            spells        = Add <SpellMgmt>();
            animations    = Add <AnimationMgmt>();

            yield return(base.Loading());
        }
Exemplo n.º 2
0
 private void Remove(int i)
 {
     CraftMgmt.RebuildAfter(i, _holder.data);
     window.Reload();
 }
Exemplo n.º 3
0
        protected override void Perform(ActionEvent evt, Player player, MapElementInfo info, NVector pos,
                                        ActionHolder holder)
        {
            // show it
            if (evt == ActionEvent.Direct)
            {
                WindowBuilderSplit wbs = WindowBuilderSplit.Create("Craft", null);
                wbs.Add(new CraftStatusSplitElement(info, holder));

                //build it
                foreach (var craft in L.b.crafts.GetAllByCategory(holder.data["category"]))
                {
                    if (craft.req.Check(player, info, pos, true))
                    {
                        wbs.Add(new CraftSplitElement(craft, info, holder));
                    }
                }

                wbs.Finish();
                return;
            }

            //produce
            if (evt == ActionEvent.NextRound)
            {
                //has it?
                if (!holder.data.ContainsKey("craft0"))
                {
                    info.SetLastInfo("Nothing to craft");
                    return;
                }

                var c = SplitHelper.SplitInt(holder.data["craft0"]);

                //produce?
                Craft craft = L.b.crafts[c.key];

                foreach (var data in craft.res)
                {
                    if (!ProduceOneRes(evt, info, pos, data.Value, data.Key))
                    {
                        return;
                    }
                }

                //found it?
                if (c.value > 0)
                {
                    c.value--;
                    if (c.value > 0)
                    {
                        holder.data["craft0"] = SplitHelper.BuildSplit(c.key, c.value);
                    }
                    else
                    {
                        //delete it?
                        CraftMgmt.RebuildAfter(0, holder.data);
                    }
                }
            }
        }