void Start()
    {
        audio          = GetComponent <AudioController>();
        timer          = GetComponent <CentralTimer>();
        devController  = gameObject.GetComponent <DevController>();
        buffController = gameObject.GetComponent <BuffController>();

        setSceneText = GetComponent <SetPlaySceneText>();

        resetMinGames = resetBaseMinGames;

        max            = initialMax;
        reward         = initialReward;
        maxScaleFactor = initialMaxScaleFactor;
        coins          = initialCoins;
        progress       = 0;
        gameCounter    = 0;

        setSceneText.LoadTextSource();

        if (LoadState.LoadSituation)
        {
            loadGame();
        }
    }
Example #2
0
 public void Initialize()
 {
     _mockService = new MockDevService {
         ReturnValue = true
     };
     _controller = new DevController(_mockService);
 }
Example #3
0
    public float[] GetChance()
    {
        DevController.MeasureElapsedTimeStart();

        previousLevelChances = (float[])currentLevelChances.Clone();

        // TODO: how to make it scalable
        if (GenerateFirstChances())
        {
            return(currentLevelChances);
        }
        else if (GenerateSecondChances())
        {
            return(currentLevelChances);
        }
        else if (GenerateThirdChances())
        {
            return(currentLevelChances);
        }
        else
        {
            GenerateFourthChances();
        }

        DevController.MeasureElapsedTimeEnd("Generate chance");

        return(currentLevelChances);
    }
Example #4
0
    public static void UpdateSprites()
    {
        DevController.MeasureElapsedTimeStart();
        RemoveExtraChances();
        GenerateNewSprites();
        DevController.MeasureElapsedTimeEnd("Ore cracking");

        void RemoveExtraChances()
        {
            for (int ore = 0; ore < Constants.oresAmount; ore++)
            {
                if (crackedOres[ore, 0, 0] != null && ChancesGenerator.currentLevelChances[ore] == 0)
                {
                    Debug.Log("remove " + ore);
                    for (int i = 0; i < crackedOres.GetLength(1); i++)
                    {
                        for (int j = 0; j < crackedOres.GetLength(2); j++)
                        {
                            crackedOres[ore, i, j] = null;
                        }
                    }
                }
            }

            Resources.UnloadUnusedAssets();
        }

        void GenerateNewSprites()
        {
            for (int ore = 0; ore < Constants.oresAmount; ore++)
            {
                if (crackedOres[ore, 0, 0] == null && ChancesGenerator.currentLevelChances[ore] != 0)
                {
                    for (int i = 0; i < crackedOres.GetLength(1); i++)
                    {
                        for (int j = 0; j < crackedOres.GetLength(2); j++)
                        {
                            GenerateOre(ore, i, j);
                        }
                    }
                }
            }
        }

        void GenerateOre(int ore, int texture, int crackingStage)
        {
            _mainTexture = Resources.Load <Sprite>($"OresSprites/{ore + 1}/{texture + 1}");
            Merge(_crackingSprites[crackingStage], texture);
            crackedOres[ore, texture, crackingStage] = _finalSprite;
        }
    }
Example #5
0
    private void GenerateLevelPrefab(bool newLevel, string seed = null)
    {
        DevController.MeasureElapsedTimeStart();

        if (newLevel)
        {
            _randomCaveGenerator.GenerateRandom();
            player.transform.position = _randomCaveGenerator.playerSpawnPoint;
        }
        else
        {
            _randomCaveGenerator.LoadLevel(seed);
        }

        DevController.MeasureElapsedTimeEnd("Generate level");
    }
Example #6
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Error");
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();
            if (!env.IsDevelopment())
            {
                app.UseSpaStaticFiles();
            }

            app.UseRouting();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller}/{action=Index}/{id?}");
            });

            //initialize custom  and controllers
            Primes.Initialize();
            ScriboAlacritoController.Initialize();
            DevController.Initialize();

            app.UseSpa(spa =>
            {
                // To learn more about options for serving an Angular SPA from ASP.NET Core,
                // see https://go.microsoft.com/fwlink/?linkid=864501

                spa.Options.SourcePath = "ClientApp";

                if (env.IsDevelopment())
                {
                    spa.UseAngularCliServer(npmScript: "start");
                }
            });
        }
    // Start is called before the first frame update
    void Start()
    {
        dev            = gameObject.GetComponent <Dev>();
        controllerObj  = GameObject.Find("GameController");
        gameController = controllerObj.GetComponent <GameController>();
        devController  = controllerObj.GetComponent <DevController>();

        devText = GameText.text.PlayScene.DevInfo;

        sellText.text           = devText.SellDev;
        sellWarning.text        = devText.SellWarning;
        sellYes.text            = GameText.text.Yes;
        sellNo.text             = GameText.text.No;
        energyText.text         = devText.Energy;
        exhaustedText.text      = devText.Exhausted;
        exhaustedText.faceColor = new Color32(255, 0, 156, 255);

        activityOptions[Dev.devActivity.training] = devText.Activities.Training;
        activityOptions[Dev.devActivity.resting]  = devText.Activities.Resting;
        activityOptions[Dev.devActivity.working]  = devText.Activities.Working;

        devCost.text       = dev.typeData.cost / 2 + GameText.text.PlayScene.CurrencySymbol;
        devName.text       = dev.typeData.devName;
        workText.text      = activityOptions[dev.currActivity];
        workText.faceColor = new Color32(0, 52, 183, 255);

        optionsMenu.SetActive(false);
        sellMenu.SetActive(false);

        if (dev.currActivity == defaultActivityOptions[0])
        {
            btn1.option = Dev.devActivity.working;
            btn2.option = defaultActivityOptions[1];
        }
        else if (dev.currActivity == defaultActivityOptions[1])
        {
            btn1.option = defaultActivityOptions[0];
            btn2.option = Dev.devActivity.working;
        }

        btn1.text.text = activityOptions[btn1.option];
        btn2.text.text = activityOptions[btn2.option];
    }
Example #8
0
 void Awake()
 {
     controller   = gameObject.GetComponent <GameController>();
     devFunctions = gameObject.GetComponent <DevController>();
 }
Example #9
0
    public void GenerateOres(bool newOres)
    {
        DevController.MeasureElapsedTimeStart();

        _emptyPoints      = GenerateLevel.GetEmptyPoints();
        _emptyPointsIndex = 0;
        values            = chancesGenerator.GetChance();

        if (values.Sum() != 100)
        {
            Debug.LogError("ERROR");
        }

        if (newOres) // generate new ores
        {
            randNumbers = new float[GridBehavior.WIDTH, GridBehavior.HEIGHT];

            var spawnPointIndex = _gridBehaviour.GetArrayIndex(player.transform.position);

            for (int x = 0; x < GridBehavior.WIDTH; x++)
            {
                for (int y = 0; y < GridBehavior.HEIGHT; y++)
                {
                    if (Math.Abs(spawnPointIndex.x - x) > 9 || Math.Abs(spawnPointIndex.y - y) > 6)
                    {
                        randNumbers[x, y] = -1;
                        continue;
                    }

                    if (new Vector3Int(x, y, 0) == _gridBehaviour.GetArrayIndex(_emptyPoints[_emptyPointsIndex]))
                    {
                        _gridBehaviour.InstantiateNewGridPrefab(_emptyPoints[_emptyPointsIndex]);
                        randNumbers[x, y] = -1;
                        if (_emptyPointsIndex < _emptyPoints.Length - 1)
                        {
                            _emptyPointsIndex++;
                        }
                    }
                    else
                    {
                        GenerateOre(x, y);
                    }
                }
            }
        }
        else // load old ores
        {
            Debug.Log("load ores");

            for (int x = 0; x < GridBehavior.WIDTH; x++)
            {
                for (int y = 0; y < GridBehavior.HEIGHT; y++)
                {
                    if (_gridBehaviour.gridArray[x, y] == null &&
                        _gridBehaviour.descentPos != new Vector2(x, y) && randNumbers[x, y] != -1)
                    {
                        GenerateOre(x, y, randNumbers[x, y]);
                    }
                }
            }

            NextLevelLoadController.needsToLoadNextLevel = false;
        }

        DevController.MeasureElapsedTimeEnd("Ore generation");
    }