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()); }
private void Remove(int i) { CraftMgmt.RebuildAfter(i, _holder.data); window.Reload(); }
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); } } } }