/// <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(); }
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); } }
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); }