Exemplo n.º 1
0
 public void Refresh(SkillKey skill, SkillSlot slot, float progress)
 {
     progress = Mathf.Max(0, progress);
     var timing = CalculateTiming(progress);
     RefreshSlots(slot);
     RefreshCurrentSlot(slot, timing);
     RefreshGlow(timing);
     RefreshSkill(skill, timing);
 }
Exemplo n.º 2
0
        /// <summary>
        /// 格納データ読み出し関数
        /// </summary>
        /// <param name="key">読み出しデータキー</param>
        /// <returns>読みだされたデータ</returns>
        public Skill GetContests(SkillKey key)
        {
            var fileName = key.ToFileName();
            var result   = GetContests(fileName);

            if (result.name != fileName)
            {
                throw new FileNotFoundException("Skillの索引キーとSkillオブジェクト名が異なる");
            }
            return(result);
        }
Exemplo n.º 3
0
        public static string GetKeyName(this SkillKey key)
        {
            switch (key)
            {
            case SkillKey.KeyA: return("b0");

            case SkillKey.KeyB: return("b1");

            case SkillKey.KeyC: return("b2");

            default: return("b0");
            }
        }
Exemplo n.º 4
0
        private static Expression KeyCondition(SkillKey key)
        {
            string index;

            switch (key)
            {
            case SkillKey.KeyA:
                index = "inputCountA";
                break;

            case SkillKey.KeyB:
                index = "inputCountB";
                break;

            case SkillKey.KeyC:
                index = "inputCountC";
                break;

            default:
                return(new ConstNumberExpr(1));
            }
            return(ThisExpr.Instance.MakeIndex("u").MakeIndex(index).GreaterZero());
        }
Exemplo n.º 5
0
        public static String SkillValue(String skill, SkillKey key)
        {
            if (!SkillData.ContainsKey(skill))
                throw new Exception(String.Format("No such skill [{0}]", skill));

            if (SkillData[skill].ContainsKey(key))
                return SkillData[skill][key];

            Log.Warn(MethodBase.GetCurrentMethod().DeclaringType, String.Format("No such key {0}", skill));

            return String.Empty;
        }
Exemplo n.º 6
0
 public static int SkillValueAsInt(String skill, SkillKey key)
 {
     var value = SkillValue(skill, key);
     return value != String.Empty ? int.Parse(value) : 0;
 }
Exemplo n.º 7
0
 private void RefreshSkill(SkillKey skill, float timing)
 {
     _skillIcon.transform.localScale = Vector3.one*timing;
     _skillIcon.sprite = R.Skill.GetIcon(skill);
 }
Exemplo n.º 8
0
 /// <summary>
 /// スキルキークラスからリソースフォルダに検索かける際のキー文字列への変換処理
 /// </summary>
 /// <param name="key">スキルの索引キークラス</param>
 /// <returns>検索キーとなる文字列</returns>
 public static string ToFileName(this SkillKey key) => key.ToString().ConvertSnakeToPascal();
Exemplo n.º 9
0
        public void ImproveSkill(SkillKey identifier)
        {
            switch (identifier)
            {
            case SkillKey.BulletDamage:
                foreach (var cannon in Cannons)
                {
                    cannon.SkillsManager.Power += EvolutionRate / EvolutionSteps;
                }
                break;

            case SkillKey.BulletEndurance:
                foreach (var cannon in Cannons)
                {
                    cannon.SkillsManager.Endurance += EvolutionRate / EvolutionSteps;
                }
                break;

            case SkillKey.ShootSpeed:
                foreach (var cannon in Cannons)
                {
                    cannon.SkillsManager.ShootSpeed += EvolutionRate / EvolutionSteps;
                }
                break;

            case SkillKey.BulletReload:
                foreach (var cannon in Cannons)
                {
                    cannon.SkillsManager.ShootRate++;
                }
                break;

            case SkillKey.Speed:
                Speed += (MaxSpeed - MinSpeed) / EvolutionSteps;
                break;

            case SkillKey.MaximumHealth:
                if (MaximumHealth < MaxHealth)
                {
                    MaximumHealth += (MaxHealth - MinHealth) / EvolutionSteps;
                    if (MaximumHealth > MaxHealth)
                    {
                        MaximumHealth = MaxHealth;
                    }
                }
                break;

            case SkillKey.HealthRegen:
                if (HealthRegen < MaxHealthRegenRate)
                {
                    HealthRegen += (MaxHealthRegenRate - MinHealthRegenRate) / EvolutionSteps;
                    if (HealthRegen > MaxHealthRegenRate)
                    {
                        HealthRegen = MaxHealthRegenRate;
                    }
                }
                break;

            case SkillKey.BodyDamage:
                if (Power < MaxPower)
                {
                    Power += (MaxPower - MinPower) / EvolutionSteps;
                    if (Power > MaxPower)
                    {
                        Power = MaxPower;
                    }
                }
                break;

            case SkillKey.Stability:
                if (Stability < MaxStability)
                {
                    Stability += (MaxStability - MinStability) / EvolutionSteps;
                    if (Stability > MaxStability)
                    {
                        Stability = Stability;
                    }
                }
                break;

            case SkillKey.ShootImpact:
                foreach (var cannon in Cannons)
                {
                    cannon.SkillsManager.ShootImpact += (SkillsManager.MaxShootImpact - SkillsManager.MinShootImpact) / EvolutionSteps;
                }
                break;

            default:
                break;
            }
            // This code should be changed to not spend Score when the Skills is already at maximum level
            // Uncomment this line at final version
            //AvailableScore--;
        }
Exemplo n.º 10
0
 public void Set(SkillKey key)
 {
     _key = key;
     _icon.enabled = true;
     _icon.sprite = R.Skill.GetIcon(key);
 }
Exemplo n.º 11
0
        public static SkillDescriptor Create(SkillKey key)
        {
            switch (key)
            {
                case SkillKey.None1:
                case SkillKey.None2:
                case SkillKey.None3:
                case SkillKey.None4:
                    return delegate { return "invalid skill: " + key; };

                case SkillKey.ArcherReload:
                case SkillKey.PaladinDefense:
                case SkillKey.PaladinPurification:
                case SkillKey.PaladinMassDefense:
                    return data => data.DescriptionFormat;

                case SkillKey.WarriorAttack:
                case SkillKey.WarriorStrongAttack:
                case SkillKey.WizardFireBolt:
                case SkillKey.WizardFireBall:
                case SkillKey.ArcherSnipe:
                case SkillKey.ThiefAssassination:
                    return data =>
                    {
                        var args = new AttackSkillArguments(data.Arguments);
                        return args.Describe(data.DescriptionFormat);
                    };

                case SkillKey.WizardIceBolt:
                case SkillKey.WizardIceSpear:
                case SkillKey.ThiefSandAttack:
                case SkillKey.ThiefPoisonAttack:
                    return data =>
                    {
                        var args = data.Arguments.ToObject<AttackAndGrantStatusConditionArguments>();
                        return args.Describe(data.DescriptionFormat);
                    };

                case SkillKey.PaladinBash:
                case SkillKey.ThiefStab:
                    return data =>
                    {
                        var args = data.Arguments.ToObject<AttackAndTestStunArguments>();
                        return args.Describe(data.DescriptionFormat);
                    };

                case SkillKey.WizardLighteningBolt:
                case SkillKey.WizardLightening:
                    return data =>
                    {
                        var args = data.Arguments.ToObject<Battle.WizardLighteningBoltArguments>();
                        return args.Describe(data.DescriptionFormat);
                    };

                case SkillKey.ArcherEvadeShot:
                    return data =>
                    {
                        var args = data.Arguments.ToObject<Battle.ArcherEvadeShotArguments>();
                        return args.Describe(data.DescriptionFormat);
                    };

                case SkillKey.ArcherWeakPointAttack:
                    return data =>
                    {
                        var args = data.Arguments.ToObject<Battle.ArcherWeakPointArguments>();
                        return args.Describe(data.DescriptionFormat);
                    };

                case SkillKey.MonkEquility:
                    return data =>
                    {
                        var args = data.Arguments.ToObject<Battle.MonkEquilityArguments>();
                        return args.Describe(data.DescriptionFormat);
                    };

                case SkillKey.WarriorEvasion:
                case SkillKey.WarriorHeal:
                case SkillKey.ArcherArrowRain:
                case SkillKey.PaladinMassHeal:
                case SkillKey.PaladinBigMassHeal:
                case SkillKey.MonkHeal:
                case SkillKey.MonkSacrifice:
                case SkillKey.MonkRevenge:
                case SkillKey.MonkRecovery:
                case SkillKey.ThiefEvade:
                    return data => data.DescriptionFormat.Text.Replace(data.Arguments);
            }

            Debug.LogError(LogMessages.EnumUndefined(key));
            return delegate { return "undefined descriptor for " + key; };
        }
Exemplo n.º 12
0
        public static SkillActor Create(SkillKey key, Battle context, Character owner)
        {
            var data = SkillBalance._.Find(key);
            if (data == null)
                return new NullSkillActor(context, owner);

            switch (key)
            {
                case SkillKey.None1:
                case SkillKey.None2:
                case SkillKey.None3:
                case SkillKey.None4:
                    return new NullSkillActor(data, context, owner);
                case SkillKey.WarriorAttack:
                case SkillKey.WarriorStrongAttack:
                case SkillKey.WizardFireBolt:
                case SkillKey.WizardFireBall:
                case SkillKey.ThiefAssassination:
                    return new AttackSkillActor(data, context, owner);
                case SkillKey.WarriorHeal:
                case SkillKey.MonkHeal:
                    return new HealSkillActor(data, context, owner);
                case SkillKey.PaladinMassHeal:
                case SkillKey.PaladinBigMassHeal:
                    return new MassHealSkillActor(data, context, owner);
                case SkillKey.PaladinPurification:
                    return new MassCureSkillActor(data, context, owner);
                case SkillKey.WarriorEvasion:
                case SkillKey.ThiefEvade:
                    return new EvasionSkillActor(data, context, owner);
                case SkillKey.WizardIceBolt:
                case SkillKey.WizardIceSpear:
                case SkillKey.ThiefSandAttack:
                case SkillKey.ThiefPoisonAttack:
                    return new AttackAndGrantStatusConditionSkillActor(data, context, owner);
                case SkillKey.PaladinBash:
                case SkillKey.ThiefStab:
                    return new AttackAndTestStunSkillActor(data, context, owner);

                case SkillKey.WizardLighteningBolt:
                case SkillKey.WizardLightening:
                    return new WizardLighteningBoltSkillActor(data, context, owner);

                case SkillKey.ArcherReload:
                    return new ArcherReloadSkillActor(data, context, owner);
                case SkillKey.ArcherEvadeShot:
                    return new ArcherEvadeShotSkillActor(data, context, owner);
                case SkillKey.ArcherSnipe:
                    return new ArcherAttackSkillActor(data, context, owner);
                case SkillKey.ArcherWeakPointAttack:
                    return new ArcherWeakPointAttackActor(data, context, owner);
                case SkillKey.ArcherArrowRain:
                    return new ArcherArrowRainSkillActor(data, context, owner);

                case SkillKey.PaladinDefense:
                    return new PaladinDefenseSkillActor(data, context, owner);
                case SkillKey.PaladinMassDefense:
                    return new PaladinDefenseSkillActor(data, context, owner);

                case SkillKey.MonkSacrifice:
                    return new MonkSacrificeSkillActor(data, context, owner);
                case SkillKey.MonkEquility:
                    return new MonkEquilitySkillActor(data, context, owner);
                case SkillKey.MonkRevenge:
                    return new MonkRevengeSkillActor(data, context, owner);
                case SkillKey.MonkRecovery:
                    return new MonkRecoverySkillActor(data, context, owner);
            }

            Debug.LogError(LogMessages.EnumNotHandled(key));
            return new NullSkillActor(data, context, owner);
        }
Exemplo n.º 13
0
 private void OnClick(SkillKey skill, bool isSelected)
 {
     OnClickCallback.CheckAndCall(skill, isSelected);
 }