public bool IsAssemblyUpgradeable(int t) { Module.Type type = (Module.Type)t; bool upgradeable = true; bool anyOfModule = false; if (t >= 0) { for (int i = 0; i < modules.Count; i++) { if (modules[i].moduleType == type && !modules[i].IsUpgradeable()) { upgradeable = false; break; } } } else { for (int i = 0; i < modules.Count; i++) { if (modules[i].IsUpgradeable()) { return(true); } } return(false); } return(upgradeable); }
public void OpenAssembly(Module _rootModule) { Game.UpdateDarkOverlay(); gameObject.SetActive(true); rootModule = _rootModule; modules = rootModule.GetModuleTree().ToList(); UpdateModuleTree(); if (Game.currentScene == Scene.Play) { for (int i = 0; i < upgradeButton.Length; i++) { Module.Type type = (Module.Type)i; ChangeUpgradeCostText(i, rootModule.GetUpgradeCost(i).ToString()); foreach (Module module in modules) { if (module.moduleType == type) { if (module.upgradeCount >= Module.MAX_UPGRADE_AMOUNT) { rootModule.upgradeButtonDisabled[i] = true; break; } } } } } }
GameObject GetStandardModule(Module.Type moduleType, int moduleClass, out string message) { message = ""; for (int i = 0; i < purchaseMenu.standard.Count; i++) { Module mod = purchaseMenu.standard[i].GetComponent <Module>(); if (mod.moduleType == moduleType && mod.moduleClass == moduleClass) { return(purchaseMenu.standard[i]); } } message = "No " + moduleType.ToString() + " found."; return(null); }
public int GetUpgradeCost(int t) { int cost = 0; Module.Type type = (Module.Type)t; foreach (Module module in modules) { if (module.moduleType == type && module.IsUpgradeable()) { cost += module.upgradeCost; } } return(cost); }
public Module createModule(Module.Type moduleType, string name = "") { Module m = null; switch (moduleType) { case Module.Type.AutoCorrect: m = new AutoCorrect(size.X, size.Y); break; case Module.Type.Bias: m = new Bias(size.X, size.Y); break; case Module.Type.Pow: m = new Pow(size.X, size.Y); break; case Module.Type.Combiner: m = new Combiner(size.X, size.Y); break; case Module.Type.Constant: m = new Constant(size.X, size.Y); break; case Module.Type.Fractal2d: m = new Fractal2d(size.X, size.Y); break; case Module.Type.Fractal3d: m = new Fractal3d(size.X, size.Y); break; case Module.Type.Gradient: m = new Gradient(size.X, size.Y); break; case Module.Type.Scale: m = new Scale(size.X, size.Y); break; case Module.Type.ScaleDomain: m = new ScaleDomain(size.X, size.Y); break; case Module.Type.Select: m = new Select(size.X, size.Y); break; case Module.Type.Translate: m = new Translate(size.X, size.Y); break; case Module.Type.Function: m = new Function(size.X, size.Y); break; } if (name == "") { name = nextName(String.Format("{0}", m.myType)); } m.myName = name; addModule(m); return(m); }
public Module addModule(Module.Type moduleType, string name = "") { Module m = null; switch (moduleType) { case Module.Type.AutoCorect: m = new AutoCorrect(myX, myY); break; case Module.Type.Bias: m = new Bias(myX, myY); break; case Module.Type.Combiner: m = new Combiner(myX, myY); break; case Module.Type.Constant: m = new Constant(myX, myY); break; case Module.Type.Fractal: m = new Fractal(myX, myY); break; case Module.Type.Gradient: m = new Gradient(myX, myY); break; case Module.Type.Output: m = new Output(myX, myY); break; case Module.Type.Scale: m = new Scale(myX, myY); break; case Module.Type.ScaleDomain: m = new ScaleDomain(myX, myY); break; case Module.Type.Select: m = new Select(myX, myY); break; case Module.Type.Translate: m = new Translate(myX, myY); break; } if (name == "") { name = nextName(String.Format("{0}", m.myType)); } m.myName = name; myModules.Add(name, m); return(m); }
public bool UpgradeAssembly(int t) { Module.Type type = (Module.Type)t; if (Game.currentScene == Scene.Play && Game.credits >= rootModule.GetUpgradeCost(t) && IsAssemblyUpgradeable(t)) { bool canUpgrade = true; Game.credits -= rootModule.GetUpgradeCost(t); foreach (Module module in modules) { if (module.moduleType == type) { canUpgrade = !module.UpgradeModule(); } } rootModule.upgradeButtonDisabled[t] = !canUpgrade; return(canUpgrade); } return(true); }