Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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();
        }
Ejemplo n.º 6
0
        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);
            }
        }