示例#1
0
    // Use this for initialization
    private void Awake()
    {
        if (Inst == null)
        {
            Inst = this;
        }

        FloorDataManager.Init();

        if (!File.Exists(Application.persistentDataPath + "/gamesave.save"))
        {
            MdlPlayer.Init();
        }
        else
        {
            var savedData = LoadData();
            if (savedData != null)
            {
                MdlPlayer.Init(savedData);
                var cash         = savedData.Cash;
                var currenttower = savedData.CurrentTowerId;
                var floors       = savedData.FloorsLvlsInTowers;
                var tower0       = floors[1];
                Debug.Log(string.Format("cash: {0}, currenttower: {1}, towers count: {2}, floors at 1 tower: {3}, 1st floor exp: {4}, id: {5}, HelperLeve: {6}", cash, currenttower, floors.Count, floors[1].Count, tower0[0].Exp, tower0[0].Id, tower0[0].HelperLevel));
            }

            else
            {
                Debug.Log("SavedGame was damaged, creating new game");
                MdlPlayer.Init();
            }
        }

        Application.runInBackground = true;
    }
示例#2
0
 public void  AddLvl()
 {
     if (!FloorDataManager.IsMaxLevel(Level))
     {
         Level++;
     }
 }
示例#3
0
 public void AddExp()
 {
     MdlPlayer.AddCash(-FloorDataManager.GetFloorNextExpUpgradeCost(this));
     Exp++;
     if (Exp >= FloorDataManager.FLOOR_MAX_EXP)
     {
         AddLvl();
         Exp = 0;
     }
 }
示例#4
0
 private static void CreateFloors()
 {
     foreach (var tower in FloorDataManager.GetAllTowers())
     {
         FloorsLvlsInTowers.Add(tower, new List <MdlFloor>());
         foreach (var _floor in FloorDataManager.GetAllFloors())
         {
             FloorsLvlsInTowers[tower].Add(new MdlFloor(_floor, 0, 1));
         }
     }
 }
示例#5
0
    private void CalculateMultipliedCash()
    {
        var baseCash      = FloorDataManager.BaseCashOfFloor(_floor.Id);
        var lvlMultiplier = FloorDataManager.MultiplierOfLevel(_floor.Level);
        var expMultiplier = _floor.Level != 1 ? _floor.Level * FloorDataManager.FLOOR_MAX_EXP + _floor.Exp : _floor.Exp;

        var cash = baseCash * lvlMultiplier * expMultiplier;

        MdlPlayer.AddCash(cash);
        _owner.RebuildWidgets();
        //RebuildWidget();
    }
示例#6
0
 public void Init(MdlFloor floor, UIFloorsPanel owner)
 {
     _owner               = owner;
     _floor               = floor;
     BtnGetIncome         = BtnGetIncome.GetComponent <Button>();
     UpgradeFloorExp      = UpgradeFloorExp.GetComponent <Button>();
     _owner.OnCashUpdate += RebuildWidget;
     //CostToOpen.text = FloorDataManager.GetFloorNextExpUpgradeCost(_floor).ToString();
     //CostToOpenInactive.text = FloorDataManager.GetFloorNextExpUpgradeCost(_floor).ToString();
     CostToOpen.text         = FloorDataManager.CorrectCashName(FloorDataManager.GetFloorNextExpUpgradeCost(_floor));
     CostToOpenInactive.text = CostToOpen.text;
     OpenFloor();
     RebuildWidget();
     if (_hasHelper())
     {
         GetCash();
     }
 }
示例#7
0
    private IEnumerator CalculateTime()
    {
        _canGetIncome = false;
        float timeToEarn = FloorDataManager.TimeToEarnOfFloor(_floor.Id);
        float time       = timeToEarn;

        while (timeToEarn > 0)
        {
            timeToEarn -= Time.deltaTime;
            IncomeProgress.fillAmount = timeToEarn / time;
            yield return(null);
        }
        CalculateMultipliedCash();
        _canGetIncome = true;

        if (_hasHelper())
        {
            StartCoroutine(CalculateTime());
        }
        //StartCoroutine(CalculateTime()); recursion to automatisize the process of getting money, NEED HELPER
    }
示例#8
0
    private void RebuildWidget() //call each time when widget data changes to draw new info
    {
        var baseCash      = FloorDataManager.BaseCashOfFloor(_floor.Id);
        var multiplier    = FloorDataManager.MultiplierOfLevel(_floor.Level);
        var expMultiplier = _floor.Level != 1 ? _floor.Level * FloorDataManager.FLOOR_MAX_EXP + _floor.Exp : _floor.Exp;

        //IncomeFromFloor.text = (baseCash * multiplier * expMultiplier).ToString();
        IncomeFromFloor.text = FloorDataManager.CorrectCashName(baseCash * multiplier * expMultiplier);

        TimeToGetIncome.text = "/" + FloorDataManager.TimeToEarnOfFloor(_floor.Id).ToString() + "s";
        ExpText.text         = _floor.Exp.ToString();
        //ExpUpgradeCost.text = FloorDataManager.GetFloorNextExpUpgradeCost(_floor).ToString();
        ExpUpgradeCost.text = FloorDataManager.CorrectCashName(FloorDataManager.GetFloorNextExpUpgradeCost(_floor));
        if (_floor.Id == 2)
        {
            Debug.Log(string.Format("Can i upgrade floor? {0}, my cash: {1}, need to upgrade: {2}", _canExpUp(), MdlPlayer.Cash, FloorDataManager.GetFloorNextExpUpgradeCost(_floor)));
        }
        UnlockFloorBtn.SetActive(_canExpUp());
        UpgradeFloorExp.interactable = _canExpUp();
        ExpProgress.fillAmount       = 1 - (_floor.Exp / (float)FloorDataManager.FLOOR_MAX_EXP);
        UpdateStars();
        GameManager.Inst.SaveData();
    }
示例#9
0
 void Update()
 {
     MyCash.text = FloorDataManager.CorrectCashName(MdlPlayer.Cash);
 }
示例#10
0
 private bool _canExpUp()
 {
     return(MdlPlayer.Cash >= FloorDataManager.GetFloorNextExpUpgradeCost(_floor));
 }