protected override void ChildClone(PowerUpgradeDataBase newConfig)
        {
            base.ChildClone(newConfig);
            PowerUpgradeData_Core config = ((PowerUpgradeData_Core)newConfig);

            config.AbilityCooldownDecreasePercent = AbilityCooldownDecreasePercent;
        }
        public PowerUpgradeDataBase GetPowerUpgradeData(int inputPower)
        {
            SortedDictionary <int, PowerUpgradeDataBase> tempDict = new SortedDictionary <int, PowerUpgradeDataBase>();

            foreach (PowerUpgradeDataBase p in PowerUpgradeDataList)
            {
                tempDict.Add(p.PowerConsume, p);
            }

            PowerUpgradeDataBase lastMatch = null;

            foreach (KeyValuePair <int, PowerUpgradeDataBase> kv in tempDict)
            {
                if (kv.Key > inputPower)
                {
                    return(lastMatch);
                }
                else
                {
                    lastMatch = kv.Value;
                }
            }

            return(lastMatch);
        }
        protected override void ChildClone(PowerUpgradeDataBase newConfig)
        {
            base.ChildClone(newConfig);
            PowerUpgradeData_Gun config = ((PowerUpgradeData_Gun)newConfig);

            config.DamageIncreasePercent          = DamageIncreasePercent;
            config.DamageRangeIncreasePercent     = DamageRangeIncreasePercent;
            config.DamageMaxTargetsOverride       = DamageMaxTargetsOverride;
            config.AbilityCooldownDecreasePercent = AbilityCooldownDecreasePercent;
            config.MaxRangeIncreasePercent        = MaxRangeIncreasePercent;
            config.MaxDurationIncreasePercent     = MaxDurationIncreasePercent;
            config.ScaleIncreasePercent           = ScaleIncreasePercent;
            config.VelocityIncreasePercent        = VelocityIncreasePercent;
            config.CanReflectOverride             = CanReflectOverride;
            config.ReflectTimesOverride           = ReflectTimesOverride;
        }