Пример #1
0
    private void Escape(GameObject target, List <object> parameters)
    {
        if (parameters.Count == 0)
        {
            throw new Exception("Missing parameter: Could not find list of robbers parameter");
        }
        foreach (object robber in parameters)
        {
            if (robber.GetType() != typeof(GameObject))
            {
                throw new Exception("Illegal argument: parameter wrong type");
            }
        }
        List <GameObject> robbersCloseToEscapeVan = parameters.Select(robber => (GameObject)robber).ToList();

        if (robbers.All(robbersCloseToEscapeVan.Contains))
        {
            if (GetAccumulatedStolenMoney() >= winAmount)
            {
                //Store money, robbers, and next level
                StaticMoney.SetMoney(GetAccumulatedStolenMoney());
                //StaticMoney.set
                StaticMoney.SetRobbersAlive(robbers.Count);
                StaticMoney.SetLastScene(SceneManager.GetActiveScene().buildIndex + 1);

                SceneManager.LoadScene(1);
                //print(LoadNewScene.scene);

                //load next scene unless no more levels, then load title screen
                //if(LoadNewScene.scene <= 3) {SceneManager.LoadScene(LoadNewScene.scene);}
                ///else {SceneManager.LoadScene(0);}
            }
        }
    }
Пример #2
0
    private void Escape(GameObject target, List <object> parameters)
    {
        if (parameters.Count == 0)
        {
            throw new Exception("Missing parameter: Could not find list of robbers parameter");
        }
        foreach (object robber in parameters)
        {
            if (robber.GetType() != typeof(GameObject))
            {
                throw new Exception("Illegal argument: parameter wrong type");
            }
        }
        List <GameObject> robbersCloseToEscapeVan = parameters.Select(robber => (GameObject)robber).ToList();

        if (robbers.All(robbersCloseToEscapeVan.Contains))
        {
            if (GetAccumulatedStolenMoney() >= winAmount)
            {
                float money         = StaticMoney.GetMoneyCount();
                float stolenMoney   = GetAccumulatedStolenMoney();
                float refundedMoney = 0;
                foreach (GameObject robber in allRobbers)
                {
                    if (robber.name.Contains("Fast"))
                    {
                        refundedMoney += Constants.BASE_FAST_ROBBER_COST;
                    }
                    if (robber.name.Contains("Strong"))
                    {
                        refundedMoney += Constants.BASE_STRONG_ROBBER_COST;
                    }
                    if (robber.name.Contains("Big"))
                    {
                        refundedMoney += Constants.BASE_BIG_ROBBER_COST;
                    }
                    if (robber.name.Contains("Greedy"))
                    {
                        refundedMoney += Constants.BASE_GREEDY_ROBBER_COST;
                    }
                }
                //Store money, robbers, and next level
                StaticMoney.SetMoney(money);
                StaticMoney.SetStolenMoney(stolenMoney);
                StaticMoney.SetRefundedMoney(refundedMoney);
                StaticMoney.SetTotalMoney(money + stolenMoney + refundedMoney);
                StaticMoney.SetRobbersAlive(allRobbers.Count);
                StaticMoney.SetLastScene(SceneManager.GetActiveScene().buildIndex + 1);

                SceneManager.LoadScene(1);
                //print(LoadNewScene.scene);

                //load next scene unless no more levels, then load title screen
                //if(LoadNewScene.scene <= 3) {SceneManager.LoadScene(LoadNewScene.scene);}
                ///else {SceneManager.LoadScene(0);}
            }
        }
    }
Пример #3
0
 private void LoseGame(GameObject target, List <object> parameters)
 {
     isGameOver = true;
     StaticMoney.ResetMoney();
     Time.timeScale = 0;
     gameOver.gameObject.SetActive(true);
     pauseScreen.gameObject.SetActive(false);
     restartButton.gameObject.SetActive(true);
 }
Пример #4
0
    // Start is called before the first frame update
    void Start()
    {
        text = GetComponent <TMP_Text>();

        money = StaticMoney.GetMoneyCount();

        robbersAlive = StaticMoney.GetRobbersAlive();

        total = StaticMoney.GetTotalMoneyCount();
    }
    private bool CheckIfEnoughMoney(int robberNum, int slotNum)
    {
        float newAmount = StaticMoney.GetMoneyCount();

        if (selectedRobbers[slotNum] != null)
        {
            newAmount += GetRobberCost(selectedRobbers[slotNum]);
        }
        newAmount -= GetNewRobberCost(robberPrefabs[robberNum]);
        return(newAmount > 0);
    }
Пример #6
0
    IEnumerator LoadNextLevel()
    {
        yield return(new WaitForSeconds(3));

        if (StaticMoney.GetLastScene() <= 4)
        {
            SceneManager.LoadSceneAsync(StaticMoney.GetLastScene());
        }
        else
        {
            SceneManager.LoadSceneAsync(0);
        }
    }
Пример #7
0
    // Start is called before the first frame update
    void Start()
    {
        text = GetComponent <TMP_Text>();

        robbersAlive = StaticMoney.GetRobbersAlive();

        money = StaticMoney.GetMoneyCount();

        stolenMoney = StaticMoney.GetStolenMoney();

        refundedMoney = StaticMoney.GetRefundedMoney();

        total = StaticMoney.GetTotalMoneyCount();
    }
Пример #8
0
    private void Awake()
    {
        List <MonoBehaviour> deps = new List <MonoBehaviour>
        {
            (gem = FindObjectOfType(typeof(GlobalEventManager)) as GlobalEventManager),
        };

        if (deps.Contains(null))
        {
            throw new Exception("Could not find dependency");
        }
        money = StaticMoney.GetMoneyCount();
        UpdateMoneyText();
        gem.StartListening("SetSelectionMoney", UpdateMoney);
        gem.StartListening("StartGame", HideText);
        gem.StartListening("LostGame", Destroy);
    }
    // Update is called once per frame
    void Update()
    {
        //displays image over button
        // Only go into this if statement
        // if the player has enough money to buy anything to begin with
        if (robberNum > -1 && slotNum > -1)
        {
            button = buttonList[slotNum];
            if (CheckIfEnoughMoney(robberNum, slotNum) == false)
            {
                robberNum = -1;
                slotNum   = -1;
                button.transform.GetChild(1).gameObject.SetActive(false);
                button.transform.GetChild(0).gameObject.SetActive(false);
                return;
            }
            if (selectedRobbers[slotNum] != null)
            {
                StaticMoney.AddMoney(GetRobberCost(selectedRobbers[slotNum]));
            }
            StaticMoney.RemoveMoney(GetNewRobberCost(robberPrefabs[robberNum]));
            gem.TriggerEvent("SetSelectionMoney", gameObject, new List <object> {
                StaticMoney.GetMoneyCount()
            });
            button.image.sprite      = robberList[robberNum];
            selectedRobbers[slotNum] = robberPrefabs[robberNum];
            button.transform.GetChild(1).gameObject.SetActive(false);
            button.transform.GetChild(0).gameObject.SetActive(false);

            //shows next button
            //TODO: dont show button if player can't afford
            if (slotNum < 3)
            {
                button = buttonList[slotNum + 1];
                button.transform.gameObject.SetActive(true);
            }

            //reset
            robberNum = -1;
            slotNum   = -1;
        }
    }
Пример #10
0
    private void CountTotal()
    {
        countingMoney += (int)(addingAmount + speedup);

        if (countingMoney > total)
        {
            doneCountingMoney = true;

            countingMoney = (int)total;

            doneCountingTotal = true;

            // sets money to total money to prepare for next map
            StaticMoney.SetMoney(StaticMoney.GetTotalMoney());

            button.SetActive(true);
        }

        text.text = moneyText + countingMoney;

        speedup += speedupAmount;
    }
Пример #11
0
 public void RestartLevel()
 {
     Time.timeScale = 1;
     StaticMoney.ResetMoney();
     SceneManager.LoadScene(SceneManager.GetActiveScene().name);
 }