示例#1
0
    /// <summary>
    ///
    /// </summary>
    /// <param name="upgrade"></param>
    /// <param name="load">передаем false и этот метод переприсвоит переданный в первом параметре апгрейд. если передадим true то будет загружен переданный в первом параметре апгрейд</param>
    public void Initiate(DSPlayerSkill.SkillUpgrade upgrade, bool load)
    {
        if (!load)
        {
            upgrade.AdditionalValuePerLevel = upgradeStats.AdditionalValuePerLevel;
            upgrade.FieldName         = upgradeStats.FieldName;
            upgrade.level             = upgradeStats.level;
            upgrade.isUpgradeToUnlock = upgradeStats.isUpgradeToUnlock;
        }
        upgradeStats = upgrade;

        btn = GetComponent <Button>();
        //btn.onClick.AddListener(OnClick); через это сыбытие, почему то, оооочень сильно лагает... ватаФАК??? НЕ УДАЛАТЬ КОМЕНТАРИЙ!! ОБ ЭТОМ НУЖНО ЗНАТЬ
        actions      = new List <Action>();
        actionsNames = new List <string>();
        Action ok = Upgrade;

        ok += TipsPanel.Instance.Hide;
        actions.Add(TipsPanel.Instance.Hide);
        actionsNames.Add(LocalizedStrings.cancel);
        actions.Add(ok);
        actionsNames.Add(LocalizedStrings.upgrade);

        maximumLevelText.text = "/" + maxLevel.ToString();

        Refresh();
    }
示例#2
0
 void IntButtonsReursive(SkillUpgradeButton btn, DSPlayerSkill.SkillUpgrade upgrade, bool isLoadedData)
 {
     btn.Initiate(upgrade, isLoadedData);
     foreach (var nextB in btn.nextButton)
     {
         bool loaded = true;
         var  up     = upgrades.Find((u) => { return(u.Id == nextB.Id); });
         if (up == null)
         {
             up = new DSPlayerSkill.SkillUpgrade(nextB.Id);
             upgrades.Add(up);
             loaded = false;
         }
         IntButtonsReursive(nextB, up, loaded);
     }
 }
示例#3
0
    void Start()
    {
        var skills = GameManager.Instance.SavablePlayerData.PlayerProgress.Skills.skills;

        //ищем в сохранениях информацию о прокачке данного скила
        var skill = skills.Find(s => s.Id == skillId);

        //если в сохранениях нет прокачки для этого скилла, то добавляем новую информацию,
        //о непрокачанном скиле
        if (skill == null)
        {
            var newSkillUps = new DSPlayerSkill(skillId);
            skills.Add(newSkillUps);
            upgrades = newSkillUps.Upgrades;
        }
        else
        {
            upgrades = skill.Upgrades;
        }

        //находим начальную кнопку
        startButton = Buttons.Find(b => b.UpgradeStats.isUpgradeToUnlock);
        if (startButton == null)
        {
            throw new System.Exception("Тут короч нет начальной кнопки. Скорее всего, в редакторе что то испортилось... не не факт");
        }

        //проходим по соответствующим кнопкам и инициализируем их
        bool loaded  = true;
        var  upgrade = upgrades.Find((u) => { return(u.Id == startButton.Id); });

        if (upgrade == null)
        {
            upgrade = new DSPlayerSkill.SkillUpgrade(startButton.Id);
            upgrades.Add(upgrade);
            loaded = false;
        }
        IntButtonsReursive(startButton, upgrade, loaded);
    }