Example #1
0
    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);
    }
Example #2
0
    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);
    }
Example #4
0
    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);
    }
Example #5
0
        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);
        }
Example #6
0
        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);
        }
Example #7
0
    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);
    }