private SkillPanel CreateSkillPanel(SkillPanel prefab, string name, long value = 0, float percent = 0, Color?color = null, Sprite icon = null) { var skillPanel = Instantiate(prefab, _panelContent); skillPanel.SetText(name); skillPanel.SetValue(value, percent); skillPanel.SetIcon(icon); if (color != null) { skillPanel.SetProgressColor(color.Value); } skillPanel.name = string.Format("Skill_{0}", name); return(skillPanel); }
private SkillPanel CreateSkillPanel(SkillType type, SkillPanel prefab, string name, long value = 0, float percent = 0, Color?color = null, Sprite icon = null) { if (_skillPanels.ContainsKey(type)) { _skillPanels.Remove(type); } var skillPanel = Instantiate(prefab, _skillScrollRect.content); skillPanel.name = string.Format("Skill_{0}", name); skillPanel.SetText(name); skillPanel.SetValue(value, percent); skillPanel.SetIcon(icon); if (color != null) { skillPanel.SetProgressColor(color.Value); } _skillPanels.Add(type, skillPanel); return(skillPanel); }
protected override void OnClientVersionChange(int _, int newVersion) { base.OnClientVersionChange(_, newVersion); var gameManager = OpenTibiaUnity.GameManager; DestroyOldComponents(); if (newVersion > 1000) { CreateSkillPanel(SkillType.Level, ModulesManager.Instance.ProgressSkillPanelPrefab, TextResources.SKILLS_LEVEL); CreateSkillPanel(SkillType.Experience, ModulesManager.Instance.RawSkillPanelPrefab, TextResources.SKILLS_EXPERIENCE_MINIMAL); // exp panel is yellow if experienceBonus > 0 (10.54+ and was removed at some point) } else { CreateSkillPanel(SkillType.Level, ModulesManager.Instance.ProgressSkillPanelPrefab, TextResources.SKILLS_LEVEL); CreateSkillPanel(SkillType.Experience, ModulesManager.Instance.ProgressSkillPanelPrefab, TextResources.SKILLS_EXPERIENCE); } if (OpenTibiaUnity.GameManager.GetFeature(GameFeature.GameExperienceGain)) { CreateSkillPanel(SkillType.ExperienceGain, ModulesManager.Instance.RawSkillPanelPrefab, TextResources.SKILLS_XPGAIN); } CreateSkillPanel(SkillType.Health, ModulesManager.Instance.RawSkillPanelPrefab, TextResources.SKILLS_HITPOINTS); CreateSkillPanel(SkillType.Mana, ModulesManager.Instance.RawSkillPanelPrefab, TextResources.SKILLS_MANA); CreateSkillPanel(SkillType.SoulPoints, ModulesManager.Instance.RawSkillPanelPrefab, TextResources.SKILLS_SOULPOINTS); CreateSkillPanel(SkillType.Capacity, ModulesManager.Instance.RawSkillPanelPrefab, TextResources.SKILLS_CAPACITY); if (gameManager.GetFeature(GameFeature.GameSkillsBase)) { CreateSkillPanel(SkillType.Speed, ModulesManager.Instance.RawSkillPanelPrefab, TextResources.SKILLS_SPEED); } if (gameManager.GetFeature(GameFeature.GamePlayerRegenerationTime)) { CreateSkillPanel(SkillType.Food, ModulesManager.Instance.RawSkillPanelPrefab, TextResources.SKILLS_REGENERATION); } if (gameManager.GetFeature(GameFeature.GamePlayerStamina)) { CreateSkillPanel(SkillType.Stamina, ModulesManager.Instance.ProgressSkillPanelPrefab, TextResources.SKILLS_STAMINA); } if (gameManager.GetFeature(GameFeature.GameOfflineTrainingTime)) { CreateSkillPanel(SkillType.OfflineTraining, ModulesManager.Instance.ProgressSkillPanelPrefab, TextResources.SKILLS_OFFLINETRAINING); } if (newVersion > 1150) { CreateSeparator(); CreateSkillPanel(SkillType.MagLevel, ModulesManager.Instance.ProgressIconSkillPanelPrefab, TextResources.SKILLS_MAGIC, 0, 0, Color.green, _magicIcon); CreateSkillPanel(SkillType.Fist, ModulesManager.Instance.ProgressIconSkillPanelPrefab, TextResources.SKILLS_FIST, 0, 0, Color.green, _fistIcon); CreateSkillPanel(SkillType.Club, ModulesManager.Instance.ProgressIconSkillPanelPrefab, TextResources.SKILLS_CLUB, 0, 0, Color.green, _clubIcon); CreateSkillPanel(SkillType.Sword, ModulesManager.Instance.ProgressIconSkillPanelPrefab, TextResources.SKILLS_SWORD, 0, 0, Color.green, _swordIcon); CreateSkillPanel(SkillType.Axe, ModulesManager.Instance.ProgressIconSkillPanelPrefab, TextResources.SKILLS_AXE, 0, 0, Color.green, _axeIcon); CreateSkillPanel(SkillType.Distance, ModulesManager.Instance.ProgressIconSkillPanelPrefab, TextResources.SKILLS_DISTANCE, 0, 0, Color.green, _distIcon); CreateSkillPanel(SkillType.Shield, ModulesManager.Instance.ProgressIconSkillPanelPrefab, TextResources.SKILLS_SHIELDING, 0, 0, Color.green, _shieldingIcon); CreateSkillPanel(SkillType.Fishing, ModulesManager.Instance.ProgressIconSkillPanelPrefab, TextResources.SKILLS_FISHING, 0, 0, Color.green, _fishingIcon); } else { CreateSkillPanel(SkillType.MagLevel, ModulesManager.Instance.ProgressSkillPanelPrefab, TextResources.SKILLS_MAGIC, 0, 0, Color.red); CreateSeparator(); CreateSkillPanel(SkillType.Fist, ModulesManager.Instance.ProgressSkillPanelPrefab, TextResources.SKILLS_FIST_LEGACY, 0, 0, Color.green); CreateSkillPanel(SkillType.Club, ModulesManager.Instance.ProgressSkillPanelPrefab, TextResources.SKILLS_CLUB_LEGACY, 0, 0, Color.green); CreateSkillPanel(SkillType.Sword, ModulesManager.Instance.ProgressSkillPanelPrefab, TextResources.SKILLS_SWORD_LEGACY, 0, 0, Color.green); CreateSkillPanel(SkillType.Axe, ModulesManager.Instance.ProgressSkillPanelPrefab, TextResources.SKILLS_AXE_LEGACY, 0, 0, Color.green); CreateSkillPanel(SkillType.Distance, ModulesManager.Instance.ProgressSkillPanelPrefab, TextResources.SKILLS_DISTANCE_LEGACY, 0, 0, Color.green); CreateSkillPanel(SkillType.Shield, ModulesManager.Instance.ProgressSkillPanelPrefab, TextResources.SKILLS_SHIELDING, 0, 0, Color.green); CreateSkillPanel(SkillType.Fishing, ModulesManager.Instance.ProgressSkillPanelPrefab, TextResources.SKILLS_FISHING, 0, 0, Color.green); } if (gameManager.GetFeature(GameFeature.GameAdditionalSkills)) { CreateSeparator(); SkillPanel[] extraPanels = new SkillPanel[6]; CreateSkillLabel(TextResources.SKILLS_CRITICALHIT); extraPanels[0] = CreateSkillPanel(SkillType.CriticalHitChance, ModulesManager.Instance.RawSkillPanelPrefab, TextResources.SKILLS_CRITICALHIT_CHANCE); extraPanels[1] = CreateSkillPanel(SkillType.CriticalHitDamage, ModulesManager.Instance.RawSkillPanelPrefab, TextResources.SKILLS_CRITICALHIT_EXTRADMG); CreateSkillLabel(TextResources.SKILLS_LIFELEECH); extraPanels[2] = CreateSkillPanel(SkillType.LifeLeechChance, ModulesManager.Instance.RawSkillPanelPrefab, TextResources.SKILLS_LIFELEECH_CHANCE); extraPanels[3] = CreateSkillPanel(SkillType.LifeLeechAmount, ModulesManager.Instance.RawSkillPanelPrefab, TextResources.SKILLS_LIFELEECH_AMOUNT); CreateSkillLabel(TextResources.SKILLS_MANALEECH); extraPanels[4] = CreateSkillPanel(SkillType.ManaLeechChance, ModulesManager.Instance.RawSkillPanelPrefab, TextResources.SKILLS_MANALEECH_CHANCE); extraPanels[5] = CreateSkillPanel(SkillType.ManaLeechAmount, ModulesManager.Instance.RawSkillPanelPrefab, TextResources.SKILLS_MANALEECH_AMOUNT); foreach (var skillPanel in extraPanels) { var rt = skillPanel.labelText.rectTransform; rt.offsetMin = new Vector2(5, rt.offsetMin.y); } } UpdateMaxHeight(); }
protected void DestroyOldComponents() { if (_expPanel) { Destroy(_expPanel.gameObject); _expPanel = null; } if (_levelPanel) { Destroy(_levelPanel.gameObject); _levelPanel = null; } if (_expGainRatePanel) { Destroy(_expGainRatePanel.gameObject); _expGainRatePanel = null; } if (_hitPointsPanel) { Destroy(_hitPointsPanel.gameObject); _hitPointsPanel = null; } if (_manaPanel) { Destroy(_manaPanel.gameObject); _manaPanel = null; } if (_soulPointsPanel) { Destroy(_soulPointsPanel.gameObject); _soulPointsPanel = null; } if (_capacityPanel) { Destroy(_capacityPanel.gameObject); _capacityPanel = null; } if (_speedPanel) { Destroy(_speedPanel.gameObject); _speedPanel = null; } if (_regenerationPanel) { Destroy(_regenerationPanel.gameObject); _regenerationPanel = null; } if (_staminaPanel) { Destroy(_staminaPanel.gameObject); _staminaPanel = null; } if (_offlineTrainingPanel) { Destroy(_offlineTrainingPanel.gameObject); _offlineTrainingPanel = null; } if (_magicPanel) { Destroy(_magicPanel.gameObject); _magicPanel = null; } if (_fistPanel) { Destroy(_fistPanel.gameObject); _fistPanel = null; } if (_clubPanel) { Destroy(_clubPanel.gameObject); _clubPanel = null; } if (_swordPanel) { Destroy(_swordPanel.gameObject); _swordPanel = null; } if (_axePanel) { Destroy(_axePanel.gameObject); _axePanel = null; } if (_distancePanel) { Destroy(_distancePanel.gameObject); _distancePanel = null; } if (_shieldingPanel) { Destroy(_shieldingPanel.gameObject); _shieldingPanel = null; } if (_criticalChancePanel) { Destroy(_criticalChancePanel.gameObject); _criticalChancePanel = null; } if (_criticalExtraDamagePanel) { Destroy(_criticalExtraDamagePanel.gameObject); _criticalExtraDamagePanel = null; } if (_lifeLeechChancePanel) { Destroy(_lifeLeechChancePanel.gameObject); _lifeLeechChancePanel = null; } if (_lifeLeechAmountPanel) { Destroy(_lifeLeechAmountPanel.gameObject); _lifeLeechAmountPanel = null; } if (_manaLeechChancePanel) { Destroy(_manaLeechChancePanel.gameObject); _manaLeechChancePanel = null; } if (_manaLeechAmountPanel) { Destroy(_manaLeechAmountPanel.gameObject); _manaLeechAmountPanel = null; } foreach (Transform child in _panelContent) { Destroy(child.gameObject); } }
protected override void OnClientVersionChange(int _, int newVersion) { base.OnClientVersionChange(_, newVersion); var gameManager = OpenTibiaUnity.GameManager; DestroyOldComponents(); if (newVersion > 1000) { _levelPanel = CreateSkillPanel(_skillProgressPanelPrefab, TextResources.SKILLS_LEVEL); _expPanel = CreateSkillPanel(_skillRawPanelPrefab, TextResources.SKILLS_EXPERIENCE_MINIMAL); // exp panel is yellow if experienceBonus > 0 (10.54+ and was removed at some point) } else { _expPanel = CreateSkillPanel(_skillProgressPanelPrefab, TextResources.SKILLS_LEVEL); _levelPanel = CreateSkillPanel(_skillProgressPanelPrefab, TextResources.SKILLS_EXPERIENCE); } if (OpenTibiaUnity.GameManager.GetFeature(GameFeature.GameExperienceGain)) { _expGainRatePanel = CreateSkillPanel(_skillRawPanelPrefab, TextResources.SKILLS_XPGAIN); } _hitPointsPanel = CreateSkillPanel(_skillRawPanelPrefab, TextResources.SKILLS_HITPOINTS); _manaPanel = CreateSkillPanel(_skillRawPanelPrefab, TextResources.SKILLS_MANA); _soulPointsPanel = CreateSkillPanel(_skillRawPanelPrefab, TextResources.SKILLS_SOULPOINTS); _capacityPanel = CreateSkillPanel(_skillRawPanelPrefab, TextResources.SKILLS_CAPACITY); if (gameManager.GetFeature(GameFeature.GameSkillsBase)) { _speedPanel = CreateSkillPanel(_skillRawPanelPrefab, TextResources.SKILLS_SPEED); } if (gameManager.GetFeature(GameFeature.GamePlayerRegenerationTime)) { _regenerationPanel = CreateSkillPanel(_skillRawPanelPrefab, TextResources.SKILLS_REGENERATION); } if (gameManager.GetFeature(GameFeature.GamePlayerStamina)) { _staminaPanel = CreateSkillPanel(_skillProgressPanelPrefab, TextResources.SKILLS_STAMINA); } if (gameManager.GetFeature(GameFeature.GameOfflineTrainingTime)) { _offlineTrainingPanel = CreateSkillPanel(_skillProgressPanelPrefab, TextResources.SKILLS_OFFLINETRAINING); } if (newVersion > 1150) { CreateSeparator(); _magicPanel = CreateSkillPanel(_skillProgressIconPanelPrefab, TextResources.SKILLS_MAGIC, 0, 0, GreenColor, _magicIcon); _fistPanel = CreateSkillPanel(_skillProgressIconPanelPrefab, TextResources.SKILLS_FIST, 0, 0, GreenColor, _fistIcon); _clubPanel = CreateSkillPanel(_skillProgressIconPanelPrefab, TextResources.SKILLS_CLUB, 0, 0, GreenColor, _clubIcon); _swordPanel = CreateSkillPanel(_skillProgressIconPanelPrefab, TextResources.SKILLS_SWORD, 0, 0, GreenColor, _swordIcon); _axePanel = CreateSkillPanel(_skillProgressIconPanelPrefab, TextResources.SKILLS_AXE, 0, 0, GreenColor, _axeIcon); _distancePanel = CreateSkillPanel(_skillProgressIconPanelPrefab, TextResources.SKILLS_DISTANCE, 0, 0, GreenColor, _distIcon); _shieldingPanel = CreateSkillPanel(_skillProgressIconPanelPrefab, TextResources.SKILLS_SHIELDING, 0, 0, GreenColor, _shieldingIcon); _fishingPanel = CreateSkillPanel(_skillProgressIconPanelPrefab, TextResources.SKILLS_FISHING, 0, 0, GreenColor, _fishingIcon); } else { _magicPanel = CreateSkillPanel(_skillProgressPanelPrefab, TextResources.SKILLS_MAGIC, 0, 0, RedColor); CreateSeparator(); _fistPanel = CreateSkillPanel(_skillProgressPanelPrefab, TextResources.SKILLS_FIST_LEGACY, 0, 0, GreenColor); _clubPanel = CreateSkillPanel(_skillProgressPanelPrefab, TextResources.SKILLS_CLUB_LEGACY, 0, 0, GreenColor); _swordPanel = CreateSkillPanel(_skillProgressPanelPrefab, TextResources.SKILLS_SWORD_LEGACY, 0, 0, GreenColor); _axePanel = CreateSkillPanel(_skillProgressPanelPrefab, TextResources.SKILLS_AXE_LEGACY, 0, 0, GreenColor); _distancePanel = CreateSkillPanel(_skillProgressPanelPrefab, TextResources.SKILLS_DISTANCE_LEGACY, 0, 0, GreenColor); _shieldingPanel = CreateSkillPanel(_skillProgressPanelPrefab, TextResources.SKILLS_SHIELDING, 0, 0, GreenColor); _shieldingPanel = CreateSkillPanel(_skillProgressPanelPrefab, TextResources.SKILLS_FISHING, 0, 0, GreenColor); } if (gameManager.GetFeature(GameFeature.GameAdditionalSkills)) { CreateSeparator(); CreateSkillLabel(TextResources.SKILLS_CRITICALHIT); _criticalChancePanel = CreateSkillPanel(_skillRawPanelPrefab, TextResources.SKILLS_CRITICALHIT_CHANCE); _criticalExtraDamagePanel = CreateSkillPanel(_skillRawPanelPrefab, TextResources.SKILLS_CRITICALHIT_EXTRADMG); CreateSkillLabel(TextResources.SKILLS_LIFELEECH); _lifeLeechChancePanel = CreateSkillPanel(_skillRawPanelPrefab, TextResources.SKILLS_LIFELEECH_CHANCE); _lifeLeechAmountPanel = CreateSkillPanel(_skillRawPanelPrefab, TextResources.SKILLS_LIFELEECH_AMOUNT); CreateSkillLabel(TextResources.SKILLS_MANALEECH); _manaLeechChancePanel = CreateSkillPanel(_skillRawPanelPrefab, TextResources.SKILLS_MANALEECH_CHANCE); _manaLeechAmountPanel = CreateSkillPanel(_skillRawPanelPrefab, TextResources.SKILLS_MANALEECH_AMOUNT); var skillPanels = new SkillPanel[] { _criticalChancePanel, _criticalExtraDamagePanel, _lifeLeechChancePanel, _lifeLeechAmountPanel, _manaLeechChancePanel, _manaLeechAmountPanel }; foreach (var skillPanel in skillPanels) { var rt = skillPanel.labelText.rectTransform; rt.offsetMin = new Vector2(5, rt.offsetMin.y); } } UpdateMaxHeight(); }
protected void DestroyOldComponents() { if (m_ExpPanel) { Destroy(m_ExpPanel.gameObject); m_ExpPanel = null; } if (m_LevelPanel) { Destroy(m_LevelPanel.gameObject); m_LevelPanel = null; } if (m_ExpGainRatePanel) { Destroy(m_ExpGainRatePanel.gameObject); m_ExpGainRatePanel = null; } if (m_HitPointsPanel) { Destroy(m_HitPointsPanel.gameObject); m_HitPointsPanel = null; } if (m_ManaPanel) { Destroy(m_ManaPanel.gameObject); m_ManaPanel = null; } if (m_SoulPointsPanel) { Destroy(m_SoulPointsPanel.gameObject); m_SoulPointsPanel = null; } if (m_CapacityPanel) { Destroy(m_CapacityPanel.gameObject); m_CapacityPanel = null; } if (m_SpeedPanel) { Destroy(m_SpeedPanel.gameObject); m_SpeedPanel = null; } if (m_RegenerationPanel) { Destroy(m_RegenerationPanel.gameObject); m_RegenerationPanel = null; } if (m_StaminaPanel) { Destroy(m_StaminaPanel.gameObject); m_StaminaPanel = null; } if (m_MagicPanel) { Destroy(m_MagicPanel.gameObject); m_MagicPanel = null; } if (m_FistPanel) { Destroy(m_FistPanel.gameObject); m_FistPanel = null; } if (m_ClubPanel) { Destroy(m_ClubPanel.gameObject); m_ClubPanel = null; } if (m_SwordPanel) { Destroy(m_SwordPanel.gameObject); m_SwordPanel = null; } if (m_AxePanel) { Destroy(m_AxePanel.gameObject); m_AxePanel = null; } if (m_DistancePanel) { Destroy(m_DistancePanel.gameObject); m_DistancePanel = null; } if (m_ShieldingPanel) { Destroy(m_ShieldingPanel.gameObject); m_ShieldingPanel = null; } if (m_CriticalChancePanel) { Destroy(m_CriticalChancePanel.gameObject); m_CriticalChancePanel = null; } if (m_CriticalExtraDamagePanel) { Destroy(m_CriticalExtraDamagePanel.gameObject); m_CriticalExtraDamagePanel = null; } if (m_LifeLeechChancePanel) { Destroy(m_LifeLeechChancePanel.gameObject); m_LifeLeechChancePanel = null; } if (m_LifeLeechAmountPanel) { Destroy(m_LifeLeechAmountPanel.gameObject); m_LifeLeechAmountPanel = null; } if (m_ManaLeechChancePanel) { Destroy(m_ManaLeechChancePanel.gameObject); m_ManaLeechChancePanel = null; } if (m_ManaLeechAmountPanel) { Destroy(m_ManaLeechAmountPanel.gameObject); m_ManaLeechAmountPanel = null; } foreach (Transform child in m_PanelContent) { Destroy(child.gameObject); } }