static BlueprintProgression CreateFavoredClassProgression(BlueprintCharacterClass favoredClass)
        {
            var className = favoredClass.Name.ToLower();
            // TODO: implement other classes/races favored class benefits.
            var description = $"Whenever you gain a {className} level, you can choose between +1 hit point, +1 skill rank, or the racial bonus associated with their favored class.";

            var isSorcerer = favoredClass.AssetGuid == "b3a505fb61437dc4097f43c3f8f9a4cf";
            var isBard     = favoredClass.AssetGuid == "772c83a25e2268e448e841dcd548235f";
            var isOracle   = favoredClass == OracleClass.oracle;
            //var isWizard = favoredClass.AssetGuid == "ba34257984f4c41408ce1dc2004e342e";
            //var isHaldeen = false;

            var isExtraSpellClass = isSorcerer || isBard || isOracle;

            if (isExtraSpellClass)
            {
                description += "\nRacial favored class benefits:" +
                               $"\n  Human (and Half-Elf, Half-Orc, Aasimar) — Add one spell known from the {className} spell list. This spell must be at least one level below the highest {className} spell you can cast.";
            }
            //string mergeGuid = ;
            //string mergeGuid = isArcanist == false ?: "081651146ada3d2a99f6e9190ac6b01a";

            //Log.Write(className);
            //Log.Write(mergeGuid);

            var favored = Helpers.CreateProgression(
                $"FavoredClass{favoredClass.name}Progression",
                $"Favored Class — {favoredClass.Name}",
                description,
                Helpers.MergeIds(favoredClass.AssetGuid, "081651146ada4d0a88f6e9190ac6b01a"),
                favoredClass.Icon,
                FeatureGroup.Feat,
                Helpers.Create <DisableAutomaticFavoredClassHitPoints>());

            var choices = new List <BlueprintFeature>();

            if (isExtraSpellClass)
            {
                for (int level = 1; level <= 8; level++)
                {
                    choices.Add(CreateExtraSpellChoice(favoredClass, level));
                }
            }

            FavoredClassBonus.FillFavoredClassProgression(favored, favoredClass, choices);
            return(favored);
        }
Exemplo n.º 2
0
        static BlueprintProgression CreateFavoredClassProgression(BlueprintCharacterClass favoredClass)
        {
            var className = favoredClass.Name.ToLower();
            // TODO: implement other classes/races favored class benefits.
            var description = string.Format(RES.FavoredClassProgressionDescription_info, className);

            var isSorcerer = favoredClass.AssetGuid == "b3a505fb61437dc4097f43c3f8f9a4cf";
            var isBard     = favoredClass.AssetGuid == "772c83a25e2268e448e841dcd548235f";
            var isOracle   = favoredClass == OracleClass.oracle;
            //var isWizard = favoredClass.AssetGuid == "ba34257984f4c41408ce1dc2004e342e";
            //var isHaldeen = false;

            var isExtraSpellClass = isSorcerer || isBard || isOracle;

            if (isExtraSpellClass)
            {
                description += string.Format(RES.FavoredClassExtraSpellProgressionDescription_info, className, className);
            }
            //string mergeGuid = ;
            //string mergeGuid = isArcanist == false ?: "081651146ada3d2a99f6e9190ac6b01a";

            //Log.Write(className);
            //Log.Write(mergeGuid);

            var favored = Helpers.CreateProgression(
                $"FavoredClass{favoredClass.name}Progression",
                string.Format(RES.TypeHyphenSubtype_info, RES.FavoredClassFeatureName_info, favoredClass.Name),
                description,
                Helpers.MergeIds(favoredClass.AssetGuid, "081651146ada4d0a88f6e9190ac6b01a"),
                favoredClass.Icon,
                FeatureGroup.Feat,
                Helpers.Create <DisableAutomaticFavoredClassHitPoints>());

            var choices = new List <BlueprintFeature>();

            if (isExtraSpellClass)
            {
                for (int level = 1; level <= 8; level++)
                {
                    choices.Add(CreateExtraSpellChoice(favoredClass, level));
                }
            }

            FavoredClassBonus.FillFavoredClassProgression(favored, favoredClass, choices);
            return(favored);
        }
        static BlueprintProgression CreateFavoredClassProgression(BlueprintCharacterClass favoredClass)
        {
            var className = favoredClass.Name.ToLower();
            // TODO: implement other classes/races favored class benefits.
            var description = $"每当此角色提升 {className} 等级时, 你可以获得+1生命值,+1技能点,或者基于他们天赋职业的其它奖励。";

            var isSorcerer        = favoredClass.AssetGuid == "b3a505fb61437dc4097f43c3f8f9a4cf";
            var isBard            = favoredClass.AssetGuid == "772c83a25e2268e448e841dcd548235f";
            var isOracle          = favoredClass == OracleClass.oracle;
            var isExtraSpellClass = isSorcerer || isBard || isOracle;

            if (isExtraSpellClass)
            {
                description += "\n其它天赋职业奖励:" +
                               $"\n  人类 (和半精灵,半兽人,阿斯莫) — 从 {className} 法术列表中获得一个额外已知法术。这个法术必须比你当前所能施展的最高环 {className} 法术低一环。";
            }

            var favored = Helpers.CreateProgression(
                $"FavoredClass{favoredClass.name}Progression",
                $"天赋职业 — {favoredClass.Name}",
                description,
                Helpers.MergeIds(favoredClass.AssetGuid, "081651146ada4d0a88f6e9190ac6b01a"),
                favoredClass.Icon,
                FeatureGroup.Feat,
                Helpers.Create <DisableAutomaticFavoredClassHitPoints>());

            var choices = new List <BlueprintFeature>();

            if (isExtraSpellClass)
            {
                for (int level = 1; level <= 8; level++)
                {
                    choices.Add(CreateExtraSpellChoice(favoredClass, level));
                }
            }

            FavoredClassBonus.FillFavoredClassProgression(favored, favoredClass, choices);
            return(favored);
        }