From 5fa602cd730f7cc9d1e24eceb04a4b80ac99f86c Mon Sep 17 00:00:00 2001 From: Dovel Date: Mon, 20 May 2024 02:04:36 +0300 Subject: [PATCH 01/35] update russian translation --- .../Translations/ru/SubClasses/RangerFeyWanderer-ru.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SolastaUnfinishedBusiness/Translations/ru/SubClasses/RangerFeyWanderer-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/SubClasses/RangerFeyWanderer-ru.txt index 42f36a6a41..0deadca10b 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/SubClasses/RangerFeyWanderer-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/SubClasses/RangerFeyWanderer-ru.txt @@ -12,7 +12,7 @@ Feature/&PowerRangerFeyWandererBeguilingTwistFrightenedTitle=Испуган Feature/&PowerRangerFeyWandererBeguilingTwistTitle=Заманивающий трюк Feature/&PowerRangerFeyWandererFeyReinforcementsDescription=Один раз до окончания длительного отдыха вы можете действием наложить заклинание Призыв феи. Наложение заклинания подобным образом не требует компонентов или поддержания концентрации, а длительность действия заклинания - 1 минута. Feature/&PowerRangerFeyWandererFeyReinforcementsTitle=Подкрепление фей -Feature/&PowerRangerFeyWandererMistyWandererDescription=Вы можете проскользнуть в Страну Фей и выйти из неё, чтобы переместиться за мгновение ока: вы можете накладывать туманный шаг без затрат ячеек заклинаний. Вы можете сделать это количество раз, равное вашему модификатору Мудрости (минимум один раз), и восстанавливаете все потраченные применения после окончания продолжительного отдыха. Кроме того, каждый раз, когда вы используете туманный шаг, вы можете взять с собой одно согласное существо, которое видеть, в пределах 5 футов от себя. +Feature/&PowerRangerFeyWandererMistyWandererDescription=Вы можете проскользнуть в Страну Фей и выйти из неё, чтобы переместиться за мгновение ока: вы можете накладывать туманный шаг без затрат ячеек заклинаний. Вы можете сделать это количество раз, равное вашему модификатору Мудрости (минимум один раз), и восстанавливаете все потраченные применения после окончания продолжительного отдыха. Кроме того, каждый раз, когда вы используете туманный шаг, вы можете взять с собой одно согласное существо, которое можете видеть в пределах 5 футов. Feature/&PowerRangerFeyWandererMistyWandererTitle=Туманный странник Feedback/&AdditionalDamageDreadfulStrikesFormat=Ужасающие удары Feedback/&AdditionalDamageDreadfulStrikesLine=Ужасающие наносят дополнительно +{2} урона! @@ -22,4 +22,4 @@ Reaction/&ReactionSpendPowerBundlePowerRangerFeyWandererBeguilingTwistReactTitle Reaction/&ReactionSpendPowerBundlePowerRangerFeyWandererBeguilingTwistTitle=Заманивающий трюк Subclass/&RangerFeyWandererDescription=Загадочность фей окружает вас благодаря благословению архифеи, сияющему плоду, который вы съели с говорящего дерева, волшебному источнику, в котором вы плавали, или какому-либо другому удачному случаю. Как бы вы ни овладели вашей магией фей, теперь вы странник фей — следопыт, представляющий, как царство смертных, так и Страну Фей. Когда вы блуждаете по мультивселенной, ваш задорный смех озаряет сердца угнетённых, а ваша воинская доблесть вселяет ужас в ваших врагов, ибо велика радость фей и ужасна их ярость. Subclass/&RangerFeyWandererTitle=Странник фей -Tooltip/&MustBeWithin5ft=Должно быть в пределах 5 футов +Tooltip/&MustBeWithin5ft=Существо должно быть в пределах 5 футов From 494c5c6a7f452badea43c2c226351eed920b5eff Mon Sep 17 00:00:00 2001 From: kdgmo <135420589+kdgmo@users.noreply.github.com> Date: Thu, 23 May 2024 03:35:25 +0900 Subject: [PATCH 02/35] Update Armor-ko.txt Signed-off-by: kdgmo <135420589+kdgmo@users.noreply.github.com> --- .../Translations/ko/Feats/Armor-ko.txt | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/SolastaUnfinishedBusiness/Translations/ko/Feats/Armor-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Feats/Armor-ko.txt index 72695e9ab1..ee52c6fdd2 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Feats/Armor-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Feats/Armor-ko.txt @@ -1,14 +1,14 @@ -Feat/&FeatHeavyArmorMasterDescription=갑옷을 사용하여 다른 사람을 죽일 수 있는 공격을 반사할 수 있습니다. 근력 점수가 1 증가하여 최대 20까지 증가합니다. 중갑을 착용하는 동안 공격으로 받는 타격, 관통, 베기 피해가 3 감소합니다. +Feat/&FeatHeavyArmorMasterDescription=갑옷을 사용하여 다른 사람을 죽일 수 있는 공격을 반사할 수 있습니다. 힘 점수가 1 증가하여 최대 20까지 증가합니다. 중갑을 착용하는 동안 공격으로 받는 타격, 관통, 베기 피해가 3 감소합니다. Feat/&FeatHeavyArmorMasterTitle=중갑 마스터 -Feat/&FeatMediumArmorDexDescription=민첩성을 1 증가시켜 최대 20까지 증가시킵니다.\n중형 갑옷과 방패에 대한 숙련도를 얻습니다. -Feat/&FeatMediumArmorDexTitle=중간 장갑 [덱스] -Feat/&FeatMediumArmorMasterDescription=다음과 같은 이점을 얻기 위해 중간 갑옷을 입고 움직이는 연습을 했습니다.\n• 중간 갑옷을 입어도 민첩(스텔스) 검사에 불이익을 주지 않습니다.\n• 중간 갑옷을 입을 때 3개를 추가할 수 있습니다. 2, 민첩성이 16 이상인 경우 AC에 연결됩니다. -Feat/&FeatMediumArmorMasterTitle=미디엄 아머 마스터 -Feat/&FeatMediumArmorStrDescription=힘을 1 증가시켜 최대 20까지 증가시킵니다.\n중형 갑옷과 방패에 대한 숙련도를 얻습니다. -Feat/&FeatMediumArmorStrTitle=중간 장갑 [Str] -Feat/&FeatShieldTechniquesDescription=보호를 위해서만이 아니라 공격을 위해서도 방패를 사용합니다. 방패를 휘두르는 동안 다음과 같은 이점을 얻을 수 있습니다.\n• 자신의 차례에 공격 행동을 취하면 보너스 행동을 사용하여 방패로 5피트 내의 생물을 밀어낼 수 있습니다.\n • 무력화되지 않은 경우 모든 민첩 내성 굴림에 +2 보너스를 얻습니다.\n• 손상 주문으로 인해 민첩 내성 굴림을 굴릴 때마다 반응을 통해 받는 피해를 절반으로 줄일 수 있습니다. +Feat/&FeatMediumArmorDexDescription=민첩을 1 증가시켜 최대 20까지 증가시킵니다.\n평갑 갑옷과 방패에 대한 숙련도를 얻습니다. +Feat/&FeatMediumArmorDexTitle=평갑 방어구 [민첩] +Feat/&FeatMediumArmorMasterDescription=다음과 같은 이점을 얻기 위해 평갑 갑옷을 입고 움직이는 연습을 했습니다.\n• 평갑 갑옷을 입어도 민첩(스텔스) 검사에 불이익을 주지 않습니다.\n• 평갑 갑옷을 입을 때 민첩이 16 이상인 경우 AC에 2가 아닌 3을 추가할 수 있습니다. +Feat/&FeatMediumArmorMasterTitle=평갑 마스터 +Feat/&FeatMediumArmorStrDescription=힘을 1 증가시켜 최대 20까지 증가시킵니다.\n평갑 갑옷과 방패에 대한 숙련도를 얻습니다. +Feat/&FeatMediumArmorStrTitle=중간 장갑 [힘] +Feat/&FeatShieldTechniquesDescription=보호를 위해서만이 아니라 공격을 위해서도 방패를 사용합니다. 방패를 휘두르는 동안 다음과 같은 이점을 얻을 수 있습니다.\n• 자신의 차례에 공격 행동을 취하면 보너스 행동을 사용하여 방패로 5피트 내의 생물을 밀어내거나 쓰러뜨릴 수 있습니다.\n • 무력화되지 않은 경우 모든 민첩 내성 굴림에 +2 보너스를 얻습니다.\n• 손상 주문으로 인해 민첩 내성 굴림을 굴릴 때마다 반응을 통해 받는 피해를 절반으로 줄일 수 있습니다. Feat/&FeatShieldTechniquesTitle=쉴드 마스터 -Reaction/&UseShieldTechniquesDescription=방패 기술을 사용하여 모든 수입 피해를 절반으로 줄이세요. -Reaction/&UseShieldTechniquesReactDescription=방패 기술을 사용하여 모든 수입 피해를 절반으로 줄이세요. +Reaction/&UseShieldTechniquesDescription=방패 기술을 사용하여 들어오는 모든 피해를 절반으로 줄이십시오. +Reaction/&UseShieldTechniquesReactDescription=방패 기술을 사용하여 들어오는 모든 피해를 절반으로 줄이십시오. Reaction/&UseShieldTechniquesReactTitle=쉴드 마스터 Reaction/&UseShieldTechniquesTitle=쉴드 마스터 From 683be2a36a7f7b2e709d6c8dc2177dd736487426 Mon Sep 17 00:00:00 2001 From: kdgmo <135420589+kdgmo@users.noreply.github.com> Date: Thu, 23 May 2024 04:46:14 +0900 Subject: [PATCH 03/35] Update Caster-ko.txt Signed-off-by: kdgmo <135420589+kdgmo@users.noreply.github.com> --- .../Translations/ko/Feats/Caster-ko.txt | 154 +++++++++--------- 1 file changed, 77 insertions(+), 77 deletions(-) diff --git a/SolastaUnfinishedBusiness/Translations/ko/Feats/Caster-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Feats/Caster-ko.txt index d5d98461d8..c926339c08 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Feats/Caster-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Feats/Caster-ko.txt @@ -1,83 +1,83 @@ -Feat/&FeatAegisTouchedChaDescription=카리스마 속성을 1 증가시켜 최대 20까지 높입니다.\n신앙의 방패를 시전하고 악과 선을 보호하고 할 수 있는 능력을 얻습니다. 긴 휴식마다 한 번씩 독 주문으로부터 보호하며 주문 슬롯을 사용하여 이러한 주문을 시전할 수 있습니다. -Feat/&FeatAegisTouchedChaTitle=이지스 터치드 [차] -Feat/&FeatAegisTouchedIntDescription=지능 속성을 1 올려 최대 20까지 높입니다.\n신앙의 방패를 시전하고 악과 선을 보호하고 할 수 있는 능력을 얻습니다. 긴 휴식마다 한 번씩 독 주문으로부터 보호하며 주문 슬롯을 사용하여 이러한 주문을 시전할 수 있습니다. -Feat/&FeatAegisTouchedIntTitle=이지스의 손길 [Int] -Feat/&FeatAegisTouchedWisDescription=지혜 속성을 1 증가시켜 최대 20까지 높입니다.\n신앙의 방패를 던지고, 악과 선을 보호하고 할 수 있는 능력을 얻습니다. 긴 휴식마다 한 번씩 독 주문으로부터 보호하며 주문 슬롯을 사용하여 이러한 주문을 시전할 수 있습니다. -Feat/&FeatAegisTouchedWisTitle=이지스 터치됨 [Wis] -Feat/&FeatCelestialTouchedChaDescription=카리스마 속성을 1 증가시켜 최대 20까지 증가시킵니다.\n치유의 단어, 상처 치료약한 회복을 시전하는 능력을 얻습니다. b> 긴 휴식마다 한 번씩 주문을 사용하며 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. -Feat/&FeatCelestialTouchedChaTitle=천상의 손길 [차] -Feat/&FeatCelestialTouchedIntDescription=지능 속성을 1 올려 최대 20까지 높입니다.\n치유의 단어를 시전하고 상처를 치료하고 낮은 회복을 할 수 있는 능력을 얻습니다. b> 긴 휴식마다 한 번씩 주문을 사용하며 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatAegisTouchedChaDescription=매력을 1 증가시켜 최대 20까지 증가시킵니다.\n신앙의 방패, 악 & 선으로부터 보호독으로부터 보호주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatAegisTouchedChaTitle=이지스의 손길 [매력] +Feat/&FeatAegisTouchedIntDescription=지능을 1 증가시켜 최대 20까지 증가시킵니다.\n신앙의 방패, 악 & 선으로부터 보호독으로부터 보호주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatAegisTouchedIntTitle=이지스의 손길 [지능] +Feat/&FeatAegisTouchedWisDescription=지혜를 1 증가시켜 최대 20까지 증가시킵니다.\n신앙의 방패, 악 & 선으로부터 보호독으로부터 보호주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatAegisTouchedWisTitle=이지스의 손길 [지혜] +Feat/&FeatCelestialTouchedChaDescription=매력을 1 증가시켜 최대 20까지 증가시킵니다.\n치유의 언어, 상처 치료하급 회복주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatCelestialTouchedChaTitle=천상의 손길 [매력] +Feat/&FeatCelestialTouchedIntDescription=지능을 1 증가시켜 최대 20까지 증가시킵니다.\n치유의 언어, 상처 치료하급 회복주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. Feat/&FeatCelestialTouchedIntTitle=천상의 손길 [지능] -Feat/&FeatCelestialTouchedWisDescription=지혜 속성을 1 증가시켜 최대 20까지 증가시킵니다.\n치유의 단어를 시전하고, 상처를 치료하고 약한 회복할 수 있는 능력을 얻습니다. b> 긴 휴식마다 한 번씩 주문을 사용하며 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. -Feat/&FeatCelestialTouchedWisTitle=천상의 손길 [Wis] -Feat/&FeatFeyTeleportationChaDescription=카리스마를 1 올려 최대 20까지 높입니다.\n짧은 휴식마다 미스티 스텝을 한 번 사용할 수 있으며 주문 슬롯을 사용하여 이 주문을 시전할 수 있습니다.\n다음에 능숙해집니다. 티르마리안. -Feat/&FeatFeyTeleportationChaTitle=페이 순간이동 [차] -Feat/&FeatFeyTeleportationIntDescription=지능이 1 증가하여 최대 20까지 증가합니다.\n짧은 휴식당 한 번 misty step을 사용할 수 있으며 주문 슬롯을 사용하여 이 주문을 시전할 수 있습니다.\n다음에 능숙해집니다. 티르마리안. -Feat/&FeatFeyTeleportationIntTitle=페이 순간이동 [Int] -Feat/&FeatFeyTeleportationWisDescription=지혜가 1 증가하여 최대 20까지 증가합니다.\n짧은 휴식마다 미스티 스텝을 한 번 사용할 수 있으며 주문 슬롯을 사용하여 이 주문을 시전할 수 있습니다.\n다음에 능숙해집니다. 티르마리안. -Feat/&FeatFeyTeleportationWisTitle=페이 순간이동 [Wis] -Feat/&FeatFlameTouchedChaDescription=카리스마 속성을 1 증가시켜 최대 20까지 증가시킵니다.\n불타는 손, 지옥한 책망불타는 광선을 시전할 수 있는 능력을 얻습니다. b> 긴 휴식마다 한 번씩 주문을 사용하며 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. -Feat/&FeatFlameTouchedChaTitle=불꽃에 닿은 [차] -Feat/&FeatFlameTouchedIntDescription=지능 속성을 1 증가시켜 최대 20까지 높입니다.\n불타는 손, 지옥 같은 질책불타는 광선을 시전할 수 있는 능력을 얻습니다. b> 긴 휴식마다 한 번씩 주문을 사용하며 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. -Feat/&FeatFlameTouchedIntTitle=불꽃에 닿음 [지능] -Feat/&FeatFlameTouchedWisDescription=지혜 속성을 1 증가시켜 최대 20까지 높입니다.\n불타는 손, 지옥 같은 책망불타는 광선을 시전할 수 있는 능력을 얻습니다. b> 긴 휴식마다 한 번씩 주문을 사용하며 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. -Feat/&FeatFlameTouchedWisTitle=불꽃에 닿은 [Wis] -Feat/&FeatIridescentTouchedChaDescription=카리스마 속성을 1 올려 최대 20까지 높입니다.\n컬러 스프레이, 요정의 불꽃컬러 버스트를 시전할 수 있는 능력을 얻습니다. b> 긴 휴식마다 한 번씩 주문을 사용하며 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. -Feat/&FeatIridescentTouchedChaTitle=무지개빛 감동 [차] -Feat/&FeatIridescentTouchedIntDescription=지능 속성을 1에서 최대 20까지 높입니다.\n컬러 스프레이, 요정의 불꽃컬러 버스트를 시전할 수 있는 능력을 얻습니다. b> 긴 휴식마다 한 번씩 주문을 사용하며 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. -Feat/&FeatIridescentTouchedIntTitle=무지개 빛깔의 손길 [Int] -Feat/&FeatIridescentTouchedWisDescription=지혜 속성을 1 증가시켜 최대 20까지 높입니다.\n컬러 스프레이, 요정의 불꽃컬러 버스트를 시전할 수 있는 능력을 얻습니다. b> 긴 휴식마다 한 번씩 주문을 사용하며 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. -Feat/&FeatIridescentTouchedWisTitle=무지개 빛깔의 감동 [Wis] -Feat/&FeatPeregrinationTouchedChaDescription=카리스마 속성을 1 올려 최대 20까지 높입니다.\n긴 스트라이더, 신속한 후퇴거미 오르기를 시전할 수 있는 능력을 얻습니다. b> 긴 휴식마다 한 번씩 주문을 사용하며 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. -Feat/&FeatPeregrinationTouchedChaTitle=Peregration에 닿은 [차] -Feat/&FeatPeregrinationTouchedIntDescription=지능 속성을 1 올려 최대 20까지 높입니다.\n긴 스트라이더, 신속한 후퇴거미 오르기를 시전할 수 있는 능력을 얻습니다. b> 긴 휴식마다 한 번씩 주문을 사용하며 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. -Feat/&FeatPeregrinationTouchedIntTitle=송향의 손길 [Int] -Feat/&FeatPeregrinationTouchedWisDescription=지혜 속성을 1 올려 최대 20까지 높입니다.\n긴 스트라이더, 신속한 후퇴거미 오르기를 시전할 수 있는 능력을 얻습니다. b> 긴 휴식마다 한 번씩 주문을 사용하며 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. -Feat/&FeatPeregrinationTouchedWisTitle=송향의 손길 [Wis] -Feat/&FeatRetinueTouchedChaDescription=카리스마 속성을 1 증가시켜 최대 20까지 증가시킵니다.\n축복, 영웅주의능력 강화를 시전할 수 있는 능력을 얻습니다. 긴 휴식마다 한 번 주문을 사용하고 주문 슬롯을 사용하여 이러한 주문을 시전할 수 있습니다. -Feat/&FeatRetinueTouchedChaTitle=수행원이 감동 [차] -Feat/&FeatRetinueTouchedIntDescription=지능 속성을 1 증가시켜 최대 20까지 증가시킵니다.\n축복, 영웅주의능력 강화를 시전할 수 있는 능력을 얻습니다. 긴 휴식마다 한 번 주문을 사용하고 주문 슬롯을 사용하여 이러한 주문을 시전할 수 있습니다. -Feat/&FeatRetinueTouchedIntTitle=수행원의 손길 [Int] -Feat/&FeatRetinueTouchedWisDescription=지혜 속성을 1 증가시켜 최대 20까지 증가시킵니다.\n축복, 영웅주의능력 강화를 시전할 수 있는 능력을 얻습니다. 긴 휴식마다 한 번 주문을 사용하고 주문 슬롯을 사용하여 이러한 주문을 시전할 수 있습니다. -Feat/&FeatRetinueTouchedWisTitle=수행원이 감동 [Wis] -Feat/&FeatShadowTouchedChaDescription=카리스마 속성을 1 증가시켜 최대 20까지 증가시킵니다.\n투명, 상처 입히기거짓 생명 을 시전하는 능력을 얻습니다. 긴 휴식마다 한 번씩 주문을 사용하며 주문 슬롯을 사용하여 이러한 주문을 시전할 수 있습니다. -Feat/&FeatShadowTouchedChaTitle=그림자에 물들음 [차] -Feat/&FeatShadowTouchedIntDescription=지능 속성을 1 증가시켜 최대 20까지 높입니다.\n투명화, 상처 입히기가짜 생명 을 시전하는 능력을 얻습니다. 긴 휴식마다 한 번씩 주문을 사용하며 주문 슬롯을 사용하여 이러한 주문을 시전할 수 있습니다. -Feat/&FeatShadowTouchedIntTitle=그림자에 물들음 [지능] -Feat/&FeatShadowTouchedWisDescription=지혜 속성을 1 증가시켜 최대 20까지 증가시킵니다.\n투명, 상처 입히기거짓 생명 을 시전하는 능력을 얻습니다. 긴 휴식마다 한 번씩 주문을 사용하며 주문 슬롯을 사용하여 이러한 주문을 시전할 수 있습니다. -Feat/&FeatShadowTouchedWisTitle=그림자에 닿은 [Wis] -Feat/&FeatTelekineticChaDescription=카리스마를 1 올려 최대 20까지 높입니다.\n보너스 액션으로 30피트 이내에 보이는 생명체 하나를 염동력으로 밀어낼 수 있습니다. 그렇게 할 때, 대상은 근력 내성 굴림(DC 8 + 숙련도 보너스 + 이 위업으로 증가된 점수의 능력 수정치)에 성공해야 하며 그렇지 않으면 당신을 향해 5피트 또는 멀어지게 이동해야 합니다. 동맹 생물은 내성 굴림 없이 이동되었습니다. -Feat/&FeatTelekineticChaTitle=염동력 [차] -Feat/&FeatTelekineticIntDescription=지능을 1 올려 최대 20까지 높입니다.\n보너스 액션으로 30피트 이내에 보이는 생명체 하나를 염동력으로 밀어낼 수 있습니다. 그렇게 할 때, 대상은 근력 내성 굴림(DC 8 + 숙련도 보너스 + 이 위업으로 증가된 점수의 능력 수정치)에 성공해야 하며 그렇지 않으면 당신을 향해 5피트 또는 멀어지게 이동해야 합니다. 동맹 생물은 내성 굴림 없이 이동되었습니다. -Feat/&FeatTelekineticIntTitle=염력 [Int] -Feat/&FeatTelekineticWisDescription=지혜가 1 증가하여 최대 20이 됩니다.\n보너스 액션으로 30피트 이내에 보이는 생물 하나를 염동력으로 밀어낼 수 있습니다. 그렇게 할 때, 대상은 근력 내성 굴림(DC 8 + 숙련도 보너스 + 이 위업으로 증가된 점수의 능력 수정치)에 성공해야 하며 그렇지 않으면 당신을 향해 5피트 또는 멀어지게 이동해야 합니다. 동맹 생물은 내성 굴림 없이 이동되었습니다. -Feat/&FeatTelekineticWisTitle=염력 [Wis] -Feat/&FeatVerdantTouchedChaDescription=카리스마 속성을 1 증가시켜 최대 20까지 증가시킵니다.\nbarkskin, entanglegoodberry 주문을 시전할 수 있는 능력을 얻습니다. 긴 휴식마다 한 번씩 주문 슬롯을 사용하여 이러한 주문을 시전할 수 있습니다. -Feat/&FeatVerdantTouchedChaTitle=초록빛 감동 [차] -Feat/&FeatVerdantTouchedIntDescription=지능 속성을 1 올려 최대 20까지 높입니다.\nbarkskin, entanglegoodberry 주문을 시전할 수 있는 능력을 얻습니다. 긴 휴식마다 한 번씩 주문 슬롯을 사용하여 이러한 주문을 시전할 수 있습니다. -Feat/&FeatVerdantTouchedIntTitle=신록의 손길 [Int] -Feat/&FeatVerdantTouchedWisDescription=지혜 속성을 1 증가시켜 최대 20까지 증가시킵니다.\nbarkskin, entanglegoodberry 주문을 시전할 수 있는 능력을 얻습니다. 긴 휴식마다 한 번씩 주문 슬롯을 사용하여 이러한 주문을 시전할 수 있습니다. -Feat/&FeatVerdantTouchedWisTitle=초록빛 손길 [Wis] +Feat/&FeatCelestialTouchedWisDescription=지혜를 1 증가시켜 최대 20까지 증가시킵니다.\n치유의 언어, 상처 치료하급 회복주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatCelestialTouchedWisTitle=천상의 손길 [지혜] +Feat/&FeatFeyTeleportationChaDescription=매력을 1 증가시켜 최대 20까지 증가시킵니다.\n짧은 휴식마다 안개 걸음을 한 번 사용할 수 있으며 주문 슬롯을 사용하여 이 주문을 시전할 수 있습니다.\n고대 티르마르어에 능숙해집니다. +Feat/&FeatFeyTeleportationChaTitle=페이의 순간이동 [매력] +Feat/&FeatFeyTeleportationIntDescription=지능을 1 증가시켜 최대 20까지 증가시킵니다.\n짧은 휴식마다 안개 걸음을 한 번 사용할 수 있으며 주문 슬롯을 사용하여 이 주문을 시전할 수 있습니다.\n고대 티르마르어에 능숙해집니다. +Feat/&FeatFeyTeleportationIntTitle=페이의 순간이동 [지능] +Feat/&FeatFeyTeleportationWisDescription=지혜를 1 증가시켜 최대 20까지 증가시킵니다.\n짧은 휴식마다 안개 걸음을 한 번 사용할 수 있으며 주문 슬롯을 사용하여 이 주문을 시전할 수 있습니다.\n고대 티르마르어에 능숙해집니다. +Feat/&FeatFeyTeleportationWisTitle=페이의 순간이동 [지혜] +Feat/&FeatFlameTouchedChaDescription=매력을 1 증가시켜 최대 20까지 증가시킵니다.\n타오르는 손길, 지옥의 책망작열의 광선주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatFlameTouchedChaTitle=불꽃의 손길 [매력] +Feat/&FeatFlameTouchedIntDescription=지능을 1 증가시켜 최대 20까지 증가시킵니다.\n타오르는 손길, 지옥의 책망작열의 광선주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatFlameTouchedIntTitle=불꽃의 손길 [지능] +Feat/&FeatFlameTouchedWisDescription=지혜을 1 증가시켜 최대 20까지 증가시킵니다.\n타오르는 손길, 지옥의 책망작열의 광선주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatFlameTouchedWisTitle=불꽃의 손길 [지혜] +Feat/&FeatIridescentTouchedChaDescription=매력을 1 증가시켜 최대 20까지 증가시킵니다.\n색체 분사, 요정의 빛컬러 버스트주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatIridescentTouchedChaTitle=무지개 빛깔의 손길 [매력] +Feat/&FeatIridescentTouchedIntDescription=지능을 1 증가시켜 최대 20까지 증가시킵니다.\n색체 분사, 요정의 빛컬러 버스트주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatIridescentTouchedIntTitle=무지개 빛깔의 손길 [지능] +Feat/&FeatIridescentTouchedWisDescription=지혜를 1 증가시켜 최대 20까지 증가시킵니다.\n색체 분사, 요정의 빛컬러 버스트주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatIridescentTouchedWisTitle=무지개 빛깔의 손길 [지혜] +Feat/&FeatPeregrinationTouchedChaDescription=매력을 1 증가시켜 최대 20까지 증가시킵니다.\n활보, 긴급 후퇴거미 등반주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatPeregrinationTouchedChaTitle=발 걸음의 손길 [매력] +Feat/&FeatPeregrinationTouchedIntDescription=지능을 1 증가시켜 최대 20까지 증가시킵니다.\n활보, 긴급 후퇴거미 등반주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatPeregrinationTouchedIntTitle=발 걸음의 손길 [지능] +Feat/&FeatPeregrinationTouchedWisDescription=지혜를 1 증가시켜 최대 20까지 증가시킵니다.\n활보, 긴급 후퇴거미 등반주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatPeregrinationTouchedWisTitle=발 걸음의 손길 [지혜] +Feat/&FeatRetinueTouchedChaDescription=매력을 1 증가시켜 최대 20까지 증가시킵니다.\n축복, 영웅심능력 향상주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatRetinueTouchedChaTitle=수행원의 손길 [매력] +Feat/&FeatRetinueTouchedIntDescription=지능을 1 증가시켜 최대 20까지 증가시킵니다.\n축복, 영웅심능력 향상주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatRetinueTouchedIntTitle=수행원의 손길 [지능] +Feat/&FeatRetinueTouchedWisDescription=지혜를 1 증가시켜 최대 20까지 증가시킵니다.\n축복, 영웅심능력 향상주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatRetinueTouchedWisTitle=수행원이 손길 [지혜] +Feat/&FeatShadowTouchedChaDescription=매력을 1 증가시켜 최대 20까지 증가시킵니다.\n투명화, 상처 가해거짓 생명주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatShadowTouchedChaTitle=그림자의 손길 [매력] +Feat/&FeatShadowTouchedIntDescription=지능을 1 증가시켜 최대 20까지 증가시킵니다.\n투명화, 상처 가해거짓 생명주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatShadowTouchedIntTitle=그림자의 손길 [지능] +Feat/&FeatShadowTouchedWisDescription=지혜를 1 증가시켜 최대 20까지 증가시킵니다.\n투명화, 상처 가해거짓 생명주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatShadowTouchedWisTitle=그림자의 손길 [지혜] +Feat/&FeatTelekineticChaDescription=매력을 1 증가시켜 최대 20까지 증가시킵니다.\n보너스 액션으로 30피트 이내에 보이는 생명체 하나를 염동력으로 밀어낼 수 있습니다. 그렇게 할 때, 대상은 근력 내성 굴림(DC 8 + 숙련도 보너스 + 이 위업으로 증가된 점수의 능력 수정치)에 성공해야 하며 그렇지 않으면 당신을 향해 5피트 또는 멀어지게 이동해야 합니다. 동맹 생물은 내성 굴림 없이 이동되었습니다. +Feat/&FeatTelekineticChaTitle=염동력 [매력] +Feat/&FeatTelekineticIntDescription=지능을 1 증가시켜 최대 20까지 증가시킵니다.\n보너스 액션으로 30피트 이내에 보이는 생명체 하나를 염동력으로 밀어낼 수 있습니다. 그렇게 할 때, 대상은 근력 내성 굴림(DC 8 + 숙련도 보너스 + 이 위업으로 증가된 점수의 능력 수정치)에 성공해야 하며 그렇지 않으면 당신을 향해 5피트 또는 멀어지게 이동해야 합니다. 동맹 생물은 내성 굴림 없이 이동되었습니다. +Feat/&FeatTelekineticIntTitle=염동력 [지능] +Feat/&FeatTelekineticWisDescription=지혜를 1 증가시켜 최대 20까지 증가시킵니다.\n보너스 액션으로 30피트 이내에 보이는 생명체 하나를 염동력으로 밀어낼 수 있습니다. 그렇게 할 때, 대상은 근력 내성 굴림(DC 8 + 숙련도 보너스 + 이 위업으로 증가된 점수의 능력 수정치)에 성공해야 하며 그렇지 않으면 당신을 향해 5피트 또는 멀어지게 이동해야 합니다. 동맹 생물은 내성 굴림 없이 이동되었습니다. +Feat/&FeatTelekineticWisTitle=염동력 [지혜] +Feat/&FeatVerdantTouchedChaDescription=매력을 1 증가시켜 최대 20까지 증가시킵니다.\n나무껍질 피부, 덩굴 속박굿베리주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatVerdantTouchedChaTitle=신록의 손길 [매력] +Feat/&FeatVerdantTouchedIntDescription=지능을 1 증가시켜 최대 20까지 증가시킵니다.\n나무껍질 피부, 덩굴 속박굿베리주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatVerdantTouchedIntTitle=신록의 손길 [지능] +Feat/&FeatVerdantTouchedWisDescription=지혜를 1 증가시켜 최대 20까지 증가시킵니다.\n나무껍질 피부, 덩굴 속박굿베리주문을 긴 휴식마다 한 번씩 시전할 수 있는 능력을 얻고, 주문 슬롯으로 이러한 주문을 시전할 수 있습니다. +Feat/&FeatVerdantTouchedWisTitle=신록의 손길 [지혜] Feature/&FeatTelekineticDescription=염력을 이용해 생물체를 당신 쪽으로 5피트 이동시킵니다. Feature/&FeatTelekineticPushFromOriginDescription=염동력을 이용해 생명체를 당신에게서 5피트 떨어진 곳으로 이동시킵니다. Feature/&FeatTelekineticPushFromOriginTitle=염동력 [푸시] Feature/&FeatTelekineticTitle=염동력 [당기기] -Screen/&AegisTouchedSpellDescription=이 Aegis 주문은 항상 준비되어 있습니다. -Screen/&AegisTouchedTitle=보호 -Screen/&CelestialTouchedSpellDescription=이 천상의 손길을 받은 주문은 항상 준비되어 있습니다. -Screen/&CelestialTouchedSpellTitle=천체의 -Screen/&FeyTeleportSpellDescription=이 페이 주문은 항상 준비되어 있습니다. -Screen/&FeyTeleportSpellTitle=Fey -Screen/&FlameTouchedSpellDescription=이 불꽃에 닿은 주문은 항상 준비되어 있습니다. -Screen/&FlameTouchedSpellTitle=불꽃 -Screen/&IridescentTouchedSpellDescription=이 무지개 빛깔의 주문은 항상 준비되어 있습니다. +Screen/&AegisTouchedSpellDescription=이 이지스의 손길 주문은 항상 준비되어 있습니다. +Screen/&AegisTouchedTitle=이지스의 +Screen/&CelestialTouchedSpellDescription=이 천상의 손길 받은 주문은 항상 준비되어 있습니다. +Screen/&CelestialTouchedSpellTitle=천상의 +Screen/&FeyTeleportSpellDescription=이 페이의 주문은 항상 준비되어 있습니다. +Screen/&FeyTeleportSpellTitle=페이의 +Screen/&FlameTouchedSpellDescription=이 불꽃의 손길 주문은 항상 준비되어 있습니다. +Screen/&FlameTouchedSpellTitle=불꽃의 +Screen/&IridescentTouchedSpellDescription=이 무지개 빛깔의 손길 주문은 항상 준비되어 있습니다. Screen/&IridescentTouchedTitle=무지개 빛깔의 -Screen/&PeregrinationTouchedSpellDescription=이 Peregrination 주문은 항상 준비되어 있습니다. -Screen/&PeregrinationTouchedTitle=주유 -Screen/&RetinueTouchedSpellDescription=이 Retinue 주문은 항상 준비되어 있습니다. -Screen/&RetinueTouchedTitle=시종 -Screen/&ShadowTouchedSpellDescription=이 Shadow Touched 주문은 항상 준비되어 있습니다. -Screen/&ShadowTouchedSpellTitle=그림자에 물든 -Screen/&VerdantTouchedSpellDescription=이 신록의 주문은 항상 준비되어 있습니다. -Screen/&VerdantTouchedTitle=젊은 -UI/&CustomFeatureSelectionTooltipTypePlaneMagic=비행기 마법 +Screen/&PeregrinationTouchedSpellDescription=이 발 걸음의 손길 주문은 항상 준비되어 있습니다. +Screen/&PeregrinationTouchedTitle=발 걸음의 +Screen/&RetinueTouchedSpellDescription=이 수행원의 손길 주문은 항상 준비되어 있습니다. +Screen/&RetinueTouchedTitle=수행원의 +Screen/&ShadowTouchedSpellDescription=이 그림자의 손길 주문은 항상 준비되어 있습니다. +Screen/&ShadowTouchedSpellTitle=그림자의 +Screen/&VerdantTouchedSpellDescription=이 신록의 손길 주문은 항상 준비되어 있습니다. +Screen/&VerdantTouchedTitle=신록의 +UI/&CustomFeatureSelectionTooltipTypePlaneMagic=마법의 계획 From f54a4ee320c58731e72eb7394fe4a21896c8570e Mon Sep 17 00:00:00 2001 From: kdgmo <135420589+kdgmo@users.noreply.github.com> Date: Thu, 23 May 2024 14:55:45 +0900 Subject: [PATCH 04/35] Update ClassFeats-ko.txt korean update Signed-off-by: kdgmo <135420589+kdgmo@users.noreply.github.com> --- .../Translations/ko/Feats/ClassFeats-ko.txt | 94 +++++++++---------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/SolastaUnfinishedBusiness/Translations/ko/Feats/ClassFeats-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Feats/ClassFeats-ko.txt index 8475cd876a..05491af0b4 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Feats/ClassFeats-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Feats/ClassFeats-ko.txt @@ -1,77 +1,77 @@ Condition/&ConditionFeatCallForChargeDescription=속도가 15피트 증가하고 공격에 유리해집니다. -Condition/&ConditionFeatCallForChargeTitle=요금 청구 +Condition/&ConditionFeatCallForChargeTitle=돌격 요청 Condition/&ConditionFeatSlayTheEnemiesDescription=당신은 공격 및 피해 굴림에 {0}만큼의 보너스를 받습니다. 당신의 목표가 선호하는 적이라면 공격 굴림 보너스 대신 이점을 얻습니다. -Condition/&ConditionFeatSlayTheEnemiesTitle=적을 처치하세요 -Feat/&FeatAwakenTheBeastWithinDescription={0} 점수를 1씩 최대 20까지 높이세요. Wild Shape 능력을 사용하여 야수로 변신할 때마다 드루이드 레벨의 두 배에 해당하는 임시 체력을 얻습니다. -Feat/&FeatAwakenTheBeastWithinTitle=야수를 깨우세요 [{0}] -Feat/&FeatBlessedSoulClericDescription=당신의 신성한 마법의 사용은 당신의 영혼에 영적인 흔적을 남겼고, 당신의 믿음을 더 자주 표현할 수 있게 해주었습니다. 지혜 점수를 1씩 최대 20까지 높이십시오. 휴식 사이에 채널 신성 사용량을 1회 더 얻습니다. +Condition/&ConditionFeatSlayTheEnemiesTitle=적군 살해 +Feat/&FeatAwakenTheBeastWithinDescription={0} 점수를 1씩 최대 20까지 높이세요. 변신 능력을 사용하여 야수로 변신할 때마다 드루이드 레벨의 두 배에 해당하는 임시 체력을 얻습니다. +Feat/&FeatAwakenTheBeastWithinTitle=야수를 깨우다 [{0}] +Feat/&FeatBlessedSoulClericDescription=당신의 신성한 마법의 사용은 당신의 영혼에 영적인 흔적을 남겼고, 당신의 믿음을 더 자주 표현할 수 있게 해주었습니다. 지혜 점수를 1씩 최대 20까지 높이십시오. 휴식 사이에 신성 변환 사용량을 1회 더 얻습니다. Feat/&FeatBlessedSoulClericTitle=축복받은 영혼 [성직자] -Feat/&FeatBlessedSoulPaladinDescription=당신의 신성한 마법의 사용은 당신의 영혼에 영적인 흔적을 남겼고, 당신의 믿음을 더 자주 표현할 수 있게 해주었습니다. 카리스마 점수를 1씩 최대 20까지 높이십시오. 휴식 사이에 채널 신성 사용량을 1회 더 얻습니다. +Feat/&FeatBlessedSoulPaladinDescription=당신의 신성한 마법의 사용은 당신의 영혼에 영적인 흔적을 남겼고, 당신의 믿음을 더 자주 표현할 수 있게 해주었습니다. 매력 점수를 1씩 최대 20까지 높이십시오. 휴식 사이에 신성 변환 사용량을 1회 더 얻습니다. Feat/&FeatBlessedSoulPaladinTitle=축복받은 영혼 [팔라딘] -Feat/&FeatCallForChargeDescription=보너스 액션을 사용하여 요금을 요청할 수 있습니다. 그렇게 하면 다음 턴이 시작될 때까지 당신과 당신의 동료들의 속도가 15피트 증가하고, 각자는 첫 번째 공격 굴림에서 이점을 얻습니다. 당신은 카리스마 수정치만큼 긴 휴식을 취할 때마다 이 힘을 여러 번 사용할 수 있습니다. -Feat/&FeatCallForChargeTitle=요금 청구 -Feat/&FeatCloseQuartersDexDescription=근접 전투 경험이 있으며 다음과 같은 이점을 얻습니다.\n• 민첩성이 1 증가하여 최대 20까지 증가합니다.\n• 5피트 이내에 근접 무기 공격으로 몰래 공격 피해를 입힐 때 대상을 지정하면 몰래 주사위가 d6 대신 d8이 됩니다. 이 기능은 또한 근접 주문 공격으로 은밀한 공격을 처리할 수 있는 클래스와 은밀한 주사위를 확장하는 악성 기능으로 확장됩니다. -Feat/&FeatCloseQuartersDexTitle=클로즈 쿼터스 [덱스] -Feat/&FeatCloseQuartersIntDescription=근접 전투 경험이 있으며 다음과 같은 이점을 얻을 수 있습니다.\n• 지능이 1 증가하여 최대 20까지 증가합니다.\n• 5피트 이내에 근접 무기 공격으로 몰래 공격 피해를 입힐 때 대상을 지정하면 몰래 주사위가 d6 대신 d8이 됩니다. 이 기능은 또한 근접 주문 공격으로 은밀한 공격을 처리할 수 있는 클래스와 은밀한 주사위를 확장하는 악성 기능으로 확장됩니다. -Feat/&FeatCloseQuartersIntTitle=마감 분기 [Int] -Feat/&FeatCunningEscapeDescription=당신이 대시 행동을 보너스 행동으로 사용할 때마다 당신의 움직임은 남은 턴 동안 기회 공격을 유발하지 않습니다. +Feat/&FeatCallForChargeDescription=보너스 액션을 사용하여 돌격을 요청할 수 있습니다. 그렇게 하면 다음 턴이 시작될 때까지 당신과 당신의 동료들의 속도가 15피트 증가하고, 각자는 첫 번째 공격 굴림에서 이점을 얻습니다. 당신은 매력 수정치만큼 긴 휴식을 취할 때마다 이 능력을 여러 번 사용할 수 있습니다. +Feat/&FeatCallForChargeTitle=돌격 요청 +Feat/&FeatCloseQuartersDexDescription=근접 전투 경험이 있으며 다음과 같은 이점을 얻습니다.\n• 민첩이 1 증가하여 최대 20까지 증가합니다.\n• 대상으로부터 5피트 이내에 있는 동안 근접 무기 공격으로 암습 피해를 입히면 암습 주사위가 d6 대신 d8이 됩니다. 이 능력은 근접 주문 공격으로 암습을 처리할 수 있는 클래스의 암습 주사위를 확장하지 않습니다. +Feat/&FeatCloseQuartersDexTitle=클로즈 쿼터스 [민첩] +Feat/&FeatCloseQuartersIntDescription=근접 전투 경험이 있으며 다음과 같은 이점을 얻습니다.\n• 지능이 1 증가하여 최대 20까지 증가합니다.\n• 대상으로부터 5피트 이내에 있는 동안 근접 무기 공격으로 암습 피해를 입히면 암습 주사위가 d6 대신 d8이 됩니다. 이 능력은 근접 주문 공격으로 암습을 처리할 수 있는 클래스의 암습 주사위를 확장하지 않습니다. +Feat/&FeatCloseQuartersIntTitle=클로즈 쿼터스 [지능] +Feat/&FeatCunningEscapeDescription=당신이 질주 행동을 보너스 행동으로 사용할 때마다 당신의 움직임은 남은 턴 동안 기회 공격을 유발하지 않습니다. Feat/&FeatCunningEscapeTitle=교활한 탈출 -Feat/&FeatDevastatingStrikesDescription=대검, 대도끼 및 망치를 사용한 공격은 특히 치명적이며, 이들 중 하나를 사용할 때 다음과 같은 이점을 얻습니다.\n• 해당 무기로 하는 공격 굴림에 +1 보너스를 얻습니다.\n• 언제든지 근접 공격 굴림과 명중에서 이점을 가지며 두 개의 d20 굴림 중 낮은 쪽도 대상에 명중할 경우 근력 또는 민첩 수정치와 동일한 유형의 추가 피해를 줍니다.\n• 치명타를 칠 때마다 , 당신은 추가 무기 주사위를 굴리고 해당 공격에 대한 목표 생물의 저항을 무시합니다. +Feat/&FeatDevastatingStrikesDescription=그레이트소드, 그레이트액스 및 마울을 사용한 공격은 특히 치명적이며, 이들 중 하나를 사용할 때 다음과 같은 이점을 얻습니다.\n• 무기를 사용한 공격은 숙련도 보너스와 동일한 추가 피해를 줍니다.\n• 치명타를 입힐 때마다 추가 무기 주사위를 굴리고 해당 공격에 대한 대상 생물의 저항을 무시합니다. Feat/&FeatDevastatingStrikesTitle=파괴적인 일격 Feat/&FeatExpandTheHuntDescription=지혜 점수를 1씩 최대 20까지 높이십시오. 선호하는 적, 언어 및 지형 유형을 하나 더 선택할 수 있습니다. -Feat/&FeatExpandTheHuntTitle=사냥을 확장하다 +Feat/&FeatExpandTheHuntTitle=확장된 사냥 Feat/&FeatExploiterDescription=당신은 주변의 전장을 끊임없이 인식하고 이러한 인식을 연마하여 치명적인 기량을 발휘합니다. 당신의 근접 무기가 닿는 범위 내에 있는 생물이 자신이 아닌 다른 생물의 공격으로 피해를 입는 경우, 당신은 반응을 사용하여 피해를 입은 생물에 대해 근접 무기 공격을 가할 수 있습니다. -Feat/&FeatExploiterTitle=악용하다 -Feat/&FeatGroupSecondChanceDescription=민첩, 건강 또는 카리스마 점수를 1씩 최대 20까지 높이십시오. 당신이 볼 수 있는 생물이 공격 굴림으로 당신을 때릴 때, 당신은 반응을 사용하여 그 생물이 다시 굴리도록 할 수 있습니다. 이 능력을 사용하면 전투 시작 시 주도권을 굴릴 때까지 또는 짧거나 긴 휴식을 마칠 때까지 다시 사용할 수 없습니다. +Feat/&FeatExploiterTitle=착취자 +Feat/&FeatGroupSecondChanceDescription=민첩, 건강 또는 매력 점수를 1씩 최대 20까지 높이십시오. 당신이 볼 수 있는 생물이 공격 굴림으로 당신을 때릴 때, 당신은 반응을 사용하여 그 생물이 다시 굴리도록 할 수 있습니다. 이 능력을 사용하면 전투 시작 시 주도권을 굴릴 때까지 또는 짧거나 긴 휴식을 마칠 때까지 다시 사용할 수 없습니다. Feat/&FeatGroupSecondChanceTitle=두번째 기회 Feat/&FeatHardyConDescription=건강 점수를 1씩 최대 20까지 높이십시오. 두 번째 바람 기능을 사용할 때마다 1D10 + 클래스 수준 임시 체력을 얻습니다. -Feat/&FeatHardyConTitle=하디 [콘] -Feat/&FeatHardyStrDescription=근력 점수를 1씩 최대 20까지 높이십시오. 두 번째 바람 기능을 사용할 때마다 1D10 + 클래스 레벨 임시 체력을 얻습니다. -Feat/&FeatHardyStrTitle=하디 [Str] -Feat/&FeatNaturalFluidityDescription=WildShape 양식을 사용하여 소모된 주문 슬롯을 최대 3레벨 주문 슬롯까지 복원할 수 있습니다. 또는 3레벨 이상의 주문 슬롯을 사용하여 WildShape 형태를 최대 2개까지 회복할 수 있습니다. 장기간 휴식 시 1회 사용할 수 있습니다. -Feat/&FeatNaturalFluidityTitle=자연스러운 유동성 -Feat/&FeatPoisonerDescription=독극물을 조작하는 방법에 대해 깊이 이해하고 있습니다.\n• 독극물 키트에 능숙해지거나 이미 능숙한 경우 전문 지식을 얻습니다.\n• 보너스 행동으로 무기에 독을 적용할 수 있는 능력을 얻습니다.\n• 피해 판정을 하면 독 피해에 대한 저항을 무시합니다. +Feat/&FeatHardyConTitle=하디 [건강] +Feat/&FeatHardyStrDescription=힘 점수를 1씩 최대 20까지 높이십시오. 두 번째 바람 기능을 사용할 때마다 1D10 + 클래스 레벨 임시 체력을 얻습니다. +Feat/&FeatHardyStrTitle=하디 [힘] +Feat/&FeatNaturalFluidityDescription=WildShape 변신을 사용하여 소모된 주문 슬롯을 최대 3레벨 주문 슬롯까지 복원할 수 있습니다. 또는 3레벨 이상의 주문 슬롯을 사용하여 변신 형태를 최대 2개까지 회복할 수 있습니다. 장기간 휴식 시 1회 사용할 수 있습니다. +Feat/&FeatNaturalFluidityTitle=자연의 유동성 +Feat/&FeatPoisonerDescription=독극물을 조작하는 방법에 대해 깊이 이해하고 있습니다.\n• 독 제작 도구에 숙련해지거나 이미 숙련한 경우 전문가가 됩니다.\n• 보너스 행동으로 무기에 독을 적용할 수 있는 능력을 얻습니다.\n• 피해 판정을 하면 독 피해에 대한 저항을 무시합니다. Feat/&FeatPoisonerTitle=독 전문가 Feat/&FeatPotentSpellcasterDescription=레퍼토리의 모든 {0} 캔 트립으로 처리하는 피해에 주문 시전자 속성 수정자를 추가할 수 있습니다. Feat/&FeatPotentSpellcasterTitle=강력한 마법사 [{0}] Feat/&FeatPrimalRageConDescription=건강 점수를 1씩 최대 20까지 높이십시오. 휴식 사이에 분노 사용량이 1회 더 늘어납니다. -Feat/&FeatPrimalRageConTitle=원시 분노 [콘] -Feat/&FeatPrimalRageStrDescription=근력 점수를 1씩 최대 20까지 높이세요. 휴식 사이에 분노 사용량이 1회 더 늘어납니다. -Feat/&FeatPrimalRageStrTitle=원시의 분노 [Str] -Feat/&FeatSecondChanceChaDescription=카리스마 점수를 1씩 최대 20까지 높이십시오. 당신이 볼 수 있는 생물이 공격 굴림으로 당신을 때릴 때, 당신은 반응을 사용하여 그 생물이 다시 굴리도록 할 수 있습니다. 이 능력을 사용하면 전투 시작 시 주도권을 굴릴 때까지 또는 짧거나 긴 휴식을 마칠 때까지 다시 사용할 수 없습니다. -Feat/&FeatSecondChanceChaTitle=두 번째 기회 [차] +Feat/&FeatPrimalRageConTitle=원시 분노 [건강] +Feat/&FeatPrimalRageStrDescription=힘 점수를 1씩 최대 20까지 높이세요. 휴식 사이에 분노 사용량이 1회 더 늘어납니다. +Feat/&FeatPrimalRageStrTitle=원시의 분노 [힘] +Feat/&FeatSecondChanceChaDescription=매력 점수를 1씩 최대 20까지 높이십시오. 당신이 볼 수 있는 생물이 공격 굴림으로 당신을 때릴 때, 당신은 반응을 사용하여 그 생물이 다시 굴리도록 할 수 있습니다. 이 능력을 사용하면 전투 시작 시 주도권을 굴릴 때까지 또는 짧거나 긴 휴식을 마칠 때까지 다시 사용할 수 없습니다. +Feat/&FeatSecondChanceChaTitle=두 번째 기회 [매력] Feat/&FeatSecondChanceConDescription=건강 점수를 1씩 최대 20까지 높이십시오. 당신이 볼 수 있는 생물이 공격 굴림으로 당신을 때릴 때, 당신은 반응을 사용하여 그 생물이 다시 굴리도록 할 수 있습니다. 이 능력을 사용하면 전투 시작 시 주도권을 굴릴 때까지 또는 짧거나 긴 휴식을 마칠 때까지 다시 사용할 수 없습니다. -Feat/&FeatSecondChanceConTitle=두 번째 기회 [단점] +Feat/&FeatSecondChanceConTitle=두 번째 기회 [건강] Feat/&FeatSecondChanceDexDescription=민첩 점수를 1씩 최대 20까지 높이십시오. 당신이 볼 수 있는 생물이 공격 굴림으로 당신을 때릴 때, 당신은 반응을 사용하여 그 생물이 다시 굴리도록 할 수 있습니다. 이 능력을 사용하면 전투 시작 시 주도권을 굴릴 때까지 또는 짧거나 긴 휴식을 마칠 때까지 다시 사용할 수 없습니다. -Feat/&FeatSecondChanceDexTitle=두 번째 기회 [덱스] +Feat/&FeatSecondChanceDexTitle=두 번째 기회 [민첩] Feat/&FeatSlayTheEnemiesDescription=보너스 액션을 사용하고 레인저 주문 슬롯 하나를 소비하여 사냥 지식을 적에게 집중시킬 수 있습니다. 당신은 최대 3까지 사용된 주문 슬롯 레벨과 동일한 공격 및 피해 굴림에 보너스를 받습니다. 선호하는 적에 대해 당신은 공격 굴림 보너스 대신 공격 굴림에서 이점을 얻습니다. 이 효과는 2라운드 동안 지속되며, 사용된 슬롯 레벨당 1라운드도 추가됩니다. -Feat/&FeatSlayTheEnemiesTitle=적들을 처치하세요 -Feat/&FeatSpiritualFluidityDescription=채널 신성 사용법을 사용하여 소모된 주문 슬롯을 최대 3레벨 주문 슬롯까지 복원할 수 있습니다. 또는 3레벨 이상의 주문 슬롯을 사용하여 최대 3개의 채널 신성 사용을 회복할 수 있습니다. 장기간 휴식 시 1회 사용할 수 있습니다. +Feat/&FeatSlayTheEnemiesTitle=적군 살해 +Feat/&FeatSpiritualFluidityDescription=신성 변환 사용법을 사용하여 소모된 주문 슬롯을 최대 3레벨 주문 슬롯까지 복원할 수 있습니다. 또는 3레벨 이상의 주문 슬롯을 사용하여 최대 3개의 신성 변환 사용을 회복할 수 있습니다. 장기간 휴식 시 1회 사용할 수 있습니다. Feat/&FeatSpiritualFluidityTitle=영적 유동성 Feature/&FeatureCloseQuartersDescription=대상으로부터 5피트 이내에 있는 동안 근접 무기 공격으로 은밀한 공격 피해를 입히면 은밀한 주사위가 d6 대신 d8이 됩니다. -Feature/&FeatureCloseQuartersTitle=가까운 분기 +Feature/&FeatureCloseQuartersTitle=클로즈 쿼터스 Feature/&FeatureFeatSecondChanceDescription=당신이 볼 수 있는 생물이 공격 굴림으로 당신을 때릴 때, 당신은 반응을 사용하여 그 생물이 다시 굴리도록 할 수 있습니다. 이 능력을 사용하면 전투 시작 시 주도권을 굴릴 때까지 또는 짧거나 긴 휴식을 마칠 때까지 다시 사용할 수 없습니다. Feature/&FeatureFeatSecondChanceTitle=두번째 기회 Feature/&PowerFeatCallForChargeDescription=귀하와 귀하의 동맹국의 속도가 15피트 증가하고 귀하는 공격에 유리합니다. -Feature/&PowerFeatCallForChargeTitle=요금 청구 -Feature/&PowerFeatNaturalFluidityGainSlotDescription=하나의 WildShape 양식을 사용하여 추가 슬롯 레벨 {0}을 1개 얻으세요. -Feature/&PowerFeatNaturalFluidityGainSlotPoolDescription=하나의 WildShape 형태를 사용하여 레벨 3 이하의 슬롯 1개를 추가로 얻으세요. +Feature/&PowerFeatCallForChargeTitle=돌격 요청 +Feature/&PowerFeatNaturalFluidityGainSlotDescription=하나의 변신을 사용하여 추가 슬롯 레벨 {0}을 1개 얻으세요. +Feature/&PowerFeatNaturalFluidityGainSlotPoolDescription=하나의 변신을 사용하여 레벨 3 이하의 슬롯 1개를 추가로 얻으세요. Feature/&PowerFeatNaturalFluidityGainSlotPoolTitle=주문 슬롯 획득 Feature/&PowerFeatNaturalFluidityGainSlotTitle=슬롯 레벨 {0} 획득 -Feature/&PowerFeatNaturalFluidityGainWildShapeFromSlotDescription=레벨 {1}의 슬롯 하나를 사용하여 WildShape 형태를 {0}개 얻으세요. -Feature/&PowerFeatNaturalFluidityGainWildShapeFromSlotTitle={0} WildShape를 얻습니다. -Feature/&PowerFeatNaturalFluidityWildShapePoolDescription=주문 슬롯을 사용하여 최대 2개의 WildShape 형태를 얻으세요. -Feature/&PowerFeatNaturalFluidityWildShapePoolTitle=자연스러운 유동성 +Feature/&PowerFeatNaturalFluidityGainWildShapeFromSlotDescription=레벨 {1}의 슬롯 하나를 사용하여 변신을 {0}개 얻으세요. +Feature/&PowerFeatNaturalFluidityGainWildShapeFromSlotTitle={0} 변신을 얻습니다. +Feature/&PowerFeatNaturalFluidityWildShapePoolDescription=주문 슬롯을 사용하여 최대 2개의 변신을 얻으세요. +Feature/&PowerFeatNaturalFluidityWildShapePoolTitle=자연의 유동성 Feature/&PowerFeatSlayTheEnemiesDescription=레벨 {0} 주문 슬롯을 소비하여 {1} 라운드 동안 공격 및 피해 굴림에 +{0}를 얻습니다. 선호하는 적에 대한 공격 판정 보너스는 이점으로 대체됩니다. Feature/&PowerFeatSlayTheEnemiesPoolDescription=짧은 시간 동안 모든 유형의 적에 대해 더 치명적인 무기 공격을 하려면 슬롯을 소비하십시오. -Feature/&PowerFeatSlayTheEnemiesPoolTitle=적을 처치하세요 -Feature/&PowerFeatSlayTheEnemiesTitle=적을 처치하세요 {0} -Feature/&PowerFeatSpiritualFluidityChannelDivinityPoolDescription=주문 슬롯을 사용하여 최대 3개의 채널 신성 포인트를 얻으세요. +Feature/&PowerFeatSlayTheEnemiesPoolTitle=적군 살해 +Feature/&PowerFeatSlayTheEnemiesTitle=적군 살해 {0} +Feature/&PowerFeatSpiritualFluidityChannelDivinityPoolDescription=주문 슬롯을 사용하여 최대 3개의 신성 변환 포인트를 얻으세요. Feature/&PowerFeatSpiritualFluidityChannelDivinityPoolTitle=영적 유동성 -Feature/&PowerFeatSpiritualFluidityGainChannelDivinityFromSlotDescription=레벨 {1}의 슬롯 하나를 사용하여 {0} 채널 신성을 얻으세요. -Feature/&PowerFeatSpiritualFluidityGainChannelDivinityFromSlotTitle=채널 신성을 {0} 획득하세요 -Feature/&PowerFeatSpiritualFluidityGainSlotDescription=채널 신성 포인트 1개를 사용하여 슬롯 레벨 {0}을 1개 더 얻습니다. -Feature/&PowerFeatSpiritualFluidityGainSlotPoolDescription=채널 신성 포인트 1개를 사용하여 3레벨 이하 슬롯 1개를 추가로 획득할 수 있습니다. +Feature/&PowerFeatSpiritualFluidityGainChannelDivinityFromSlotDescription=레벨 {1}의 슬롯 하나를 사용하여 {0} 신성 변환을 얻으세요. +Feature/&PowerFeatSpiritualFluidityGainChannelDivinityFromSlotTitle=신성변환을 {0} 획득하세요 +Feature/&PowerFeatSpiritualFluidityGainSlotDescription=신성 변환 포인트 1개를 사용하여 슬롯 레벨 {0}을 1개 더 얻습니다. +Feature/&PowerFeatSpiritualFluidityGainSlotPoolDescription=신성 변환 포인트 1개를 사용하여 3레벨 이하 슬롯 1개를 추가로 획득할 수 있습니다. Feature/&PowerFeatSpiritualFluidityGainSlotPoolTitle=주문 슬롯 획득 Feature/&PowerFeatSpiritualFluidityGainSlotTitle=슬롯 레벨 {0} 획득 Feedback/&AdditionalDamageDevastatingStrikesFormat=파괴적인 일격 From b5187de9bea26b0765567c06e36ba41d7982fae7 Mon Sep 17 00:00:00 2001 From: kdgmo <135420589+kdgmo@users.noreply.github.com> Date: Thu, 23 May 2024 21:34:25 +0900 Subject: [PATCH 05/35] Update Crafty-ko.txt korean update Signed-off-by: kdgmo <135420589+kdgmo@users.noreply.github.com> --- .../Translations/ko/Feats/Crafty-ko.txt | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/SolastaUnfinishedBusiness/Translations/ko/Feats/Crafty-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Feats/Crafty-ko.txt index 9f0947c6d1..b13aaf7384 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Feats/Crafty-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Feats/Crafty-ko.txt @@ -1,18 +1,18 @@ -Feat/&FeatApothecaryChaDescription=카리스마를 1 올려 최대 20까지 높입니다.\n약초학 키트 및 약품에 대한 숙련도를 얻거나, 이미 숙련된 경우 전문 지식을 얻습니다. -Feat/&FeatApothecaryChaTitle=약사 [차] -Feat/&FeatApothecaryIntDescription=지능이 1 증가하여 최대 20이 됩니다.\n약초학 키트 및 약품에 대한 숙련도를 얻거나, 이미 숙련된 경우 전문 지식을 얻습니다. -Feat/&FeatApothecaryIntTitle=연금술사 [Int] -Feat/&FeatApothecaryWisDescription=지혜가 1 증가하여 최대 20이 됩니다.\n약초학 키트와 아르카나 또는 이미 능숙한 경우 약품에 능숙해집니다. -Feat/&FeatApothecaryWisTitle=약사 [위스] -Feat/&FeatArcanistDescription=비전 예술을 연구하면 다음과 같은 이점을 얻을 수 있습니다.\n• 지능이 1 증가하여 최대 20이 됩니다.\n• 이미 능숙한 경우 신비 기술이나 전문 지식에 능숙해집니다.\n• 귀하 마법 감지 주문을 배우세요. 주문 슬롯을 소모하지 않고 마법 탐지를 한 번만 시전할 수 있으며, 긴 휴식을 취하면 해당 능력을 다시 얻습니다. +Feat/&FeatApothecaryChaDescription=매력을 1 올려 최대 20까지 높입니다.\n약초 제작 도구 및 의학에 대한 숙련도를 얻거나, 의학은 이미 숙련된 경우 전문성을 얻습니다. +Feat/&FeatApothecaryChaTitle=약종사 [매력] +Feat/&FeatApothecaryIntDescription=지능을 1 올려 최대 20까지 높입니다.\n약초 제작 도구 및 의학에 대한 숙련도를 얻거나, 의학은 이미 숙련된 경우 전문성을 얻습니다. +Feat/&FeatApothecaryIntTitle=약종상 [지능] +Feat/&FeatApothecaryWisDescription=지혜를 1 올려 최대 20까지 높입니다.\n약초 제작 도구 및 의학에 대한 숙련도를 얻거나, 의학은 이미 숙련된 경우 전문성을 얻습니다. +Feat/&FeatApothecaryWisTitle=약종상 [지혜] +Feat/&FeatArcanistDescription=당신은 비전술을 연구하여 다음과 같은 혜택을 얻습니다.\n• 지능을 1 올려 최대 20까지 높입니다.\n• 비전에 대한 숙련도를 얻거나, 이미 숙련된 경우 전문성을 얻습니다.\n• 마법 감지 주문을 배우세요. 주문 슬롯을 소모하지 않고 마법 감지를 한 번만 시전할 수 있으며, 긴 휴식을 취하면 해당 능력을 다시 얻습니다. Feat/&FeatArcanistTitle=비전술사 -Feat/&FeatCraftyScriberDescription=지능을 1 올려 최대 20까지 높이세요.\n두루마리 키트와 아르카나에 능숙해지거나, 이미 능숙하다면 전문 지식을 얻습니다. -Feat/&FeatCraftyScriberTitle=선침 -Feat/&FeatTheologianDescription=종교에 대한 광범위한 연구를 통해 다음과 같은 이점을 얻을 수 있습니다.\n• 지능이 1 증가하여 최대 20이 됩니다.\n• 이미 능숙한 경우 종교 기술이나 전문 지식에 능숙해집니다.\n• 당신은 Detect Evil and Good 주문을 배웁니다. 주문 슬롯을 소모하지 않고 Detect Evil and Good을 한 번 시전할 수 있으며, 긴 휴식을 마치면 그렇게 할 수 있는 능력을 다시 얻습니다. +Feat/&FeatCraftyScriberDescription=지능을 1 올려 최대 20까지 높입니다.\n두루마리 제작 도구와 비전에 대한 숙련도를 얻거나, 비전은 이미 숙련된 경우 전문성을 얻습니다. +Feat/&FeatCraftyScriberTitle=필경사 +Feat/&FeatTheologianDescription=종교에 대한 광범위한 연구를 통해 다음과 같은 혜택을 얻습니다.\n• 지능을 1 올려 최대 20까지 높입니다.\n• 종교에 대한 숙련도를 얻거나, 이미 숙련된 경우 전문성을 얻습니다.\n• 당신은 선악감지 주문을 배웁니다. 주문 슬롯을 소모하지 않고 선악감지를 한 번 시전할 수 있으며, 긴 휴식을 취하면 해당 능력을 다시 얻습니다. Feat/&FeatTheologianTitle=신학자 -Feat/&FeatToxicologistChaDescription=카리스마를 1 올려 최대 20까지 높입니다.\n독극물 키트 및 동물 취급에 능숙해지며, 이미 능숙한 경우 전문 지식을 얻습니다. -Feat/&FeatToxicologistChaTitle=독성학자 [차] -Feat/&FeatToxicologistIntDescription=지능이 1 증가하여 최대 20이 됩니다.\n포이즌서 키트와 자연에 대한 숙련도를 얻거나, 이미 숙련된 경우 전문 지식을 얻습니다. -Feat/&FeatToxicologistIntTitle=독성학자 [Int] -Feat/&FeatToxicologistWisDescription=지혜가 1 증가하여 최대 20이 됩니다.\n독극물 키트 및 의약품에 대한 숙련도를 얻거나, 이미 숙련된 경우 전문 지식을 얻습니다. -Feat/&FeatToxicologistWisTitle=독성학자 [Wis] +Feat/&FeatToxicologistChaDescription=매력을 1 올려 최대 20까지 높입니다.\n독 제작 도구 및 자연에 대한 숙련도를 얻거나, 자연은 이미 숙련된 경우 전문성을 얻습니다. +Feat/&FeatToxicologistChaTitle=독성학자 [매력] +Feat/&FeatToxicologistIntDescription=지능을 1 올려 최대 20까지 높입니다.\n독 제작 도구 및 자연에 대한 숙련도를 얻거나, 자연은 이미 숙련된 경우 전문성을 얻습니다. +Feat/&FeatToxicologistIntTitle=독성학자 [지능] +Feat/&FeatToxicologistWisDescription=지혜를 1 올려 최대 20까지 높입니다.\n독 제작 도구 및 자연에 대한 숙련도를 얻거나, 자연은 이미 숙련된 경우 전문성을 얻습니다. +Feat/&FeatToxicologistWisTitle=독성학자 [지혜] From a8e4145a71043c29479bed69944f330853c5b45c Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sat, 25 May 2024 15:59:24 -0700 Subject: [PATCH 06/35] fix Forge Cleric blessed metal not providing fire damage immunity - fix #4637 --- .../ChangelogHistory.txt | 4 ++ .../Subclasses/DomainSmith.cs | 40 ++++++++++++++++--- 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 060a91cda3..89d0d94173 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,3 +1,7 @@ +1.5.97.11: + +- fixed Forge Cleric blessed metal not providing fire damage immunity + 1.5.97.10 - Os cães ladram e a caravana passa: - added +X to hit and damage on Shield Bash feat on any wielded magical shield that adds +X to armor class diff --git a/SolastaUnfinishedBusiness/Subclasses/DomainSmith.cs b/SolastaUnfinishedBusiness/Subclasses/DomainSmith.cs index 7bfeff96a4..bd11cf9ddb 100644 --- a/SolastaUnfinishedBusiness/Subclasses/DomainSmith.cs +++ b/SolastaUnfinishedBusiness/Subclasses/DomainSmith.cs @@ -1,4 +1,5 @@ using System.Collections; +using System.Collections.Generic; using JetBrains.Annotations; using SolastaUnfinishedBusiness.Behaviors; using SolastaUnfinishedBusiness.Builders; @@ -397,21 +398,48 @@ private static bool CanArmorBeReinforced(RulesetCharacter character, RulesetItem private sealed class PhysicalAttackInitiatedOnMeBlessedMetal( // ReSharper disable once SuggestBaseTypeForParameterInConstructor - ConditionDefinition conditionBlessedMetal) : IPhysicalAttackInitiatedOnMe + ConditionDefinition conditionBlessedMetal) + : IPhysicalAttackBeforeHitConfirmedOnMe, IMagicEffectBeforeHitConfirmedOnMe { - public IEnumerator OnPhysicalAttackInitiatedOnMe( + public IEnumerator OnMagicEffectBeforeHitConfirmedOnMe( GameLocationBattleManager battleManager, - CharacterAction action, GameLocationCharacter attacker, GameLocationCharacter defender, - ActionModifier attackModifier, - RulesetAttackMode attackMode) + ActionModifier actionModifier, + RulesetEffect rulesetEffect, + List actualEffectForms, + bool firstTarget, + bool criticalHit) + { + MaybeAddCondition(defender); + + yield break; + } + + public IEnumerator OnPhysicalAttackBeforeHitConfirmedOnMe( + GameLocationBattleManager battleManager, + GameLocationCharacter attacker, + GameLocationCharacter defender, + ActionModifier actionModifier, + RulesetAttackMode attackMode, + bool rangedAttack, + AdvantageType advantageType, + List actualEffectForms, + bool firstTarget, + bool criticalHit) + { + MaybeAddCondition(defender); + + yield break; + } + + private void MaybeAddCondition(GameLocationCharacter defender) { var rulesetDefender = defender.RulesetCharacter; if (!defender.RulesetCharacter.IsWearingArmor()) { - yield break; + return; } rulesetDefender.InflictCondition( From 528394b10fdd87c4f7dfbf0f67b79bbac04a7cdc Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sat, 25 May 2024 17:51:46 -0700 Subject: [PATCH 07/35] fix Gray and Ironborn Dwarf subclasses missing normal and darkvision senses --- .../CharacterRaceDefinition/RaceGrayDwarf.json | 7 ++++++- .../CharacterRaceDefinition/RaceIronbornDwarf.json | 10 ++++++++++ SolastaUnfinishedBusiness/ChangelogHistory.txt | 1 + SolastaUnfinishedBusiness/Races/GrayDwarf.cs | 3 ++- SolastaUnfinishedBusiness/Races/IronbornDwarf.cs | 4 +++- 5 files changed, 22 insertions(+), 3 deletions(-) diff --git a/Diagnostics/UnfinishedBusinessBlueprints/CharacterRaceDefinition/RaceGrayDwarf.json b/Diagnostics/UnfinishedBusinessBlueprints/CharacterRaceDefinition/RaceGrayDwarf.json index f3f232d52f..e3dd67eb30 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/CharacterRaceDefinition/RaceGrayDwarf.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/CharacterRaceDefinition/RaceGrayDwarf.json @@ -13,6 +13,11 @@ "featureDefinition": "Definition:AttributeModifierGrayDwarfStrengthAbilityScoreIncrease:25954e3c-a310-5775-84b7-1c936d815cca", "level": 1 }, + { + "$type": "FeatureUnlockByLevel, Assembly-CSharp", + "featureDefinition": "Definition:SenseDarkvision:446f786482b07db45b6f4a0854be3056", + "level": 1 + }, { "$type": "FeatureUnlockByLevel, Assembly-CSharp", "featureDefinition": "Definition:FeatureSetGrayDwarfAncestry:48f08b34-9ff9-5055-accb-d2d8adc27cb4", @@ -30,7 +35,7 @@ }, { "$type": "FeatureUnlockByLevel, Assembly-CSharp", - "featureDefinition": "Definition:SenseSuperiorDarkvision:388ca3fa81ee8a84c831be14214fd1c0", + "featureDefinition": "Definition:SenseNormalVision:222ef639393ed4e4bbd7152690597945", "level": 1 }, { diff --git a/Diagnostics/UnfinishedBusinessBlueprints/CharacterRaceDefinition/RaceIronbornDwarf.json b/Diagnostics/UnfinishedBusinessBlueprints/CharacterRaceDefinition/RaceIronbornDwarf.json index 23a327d9f3..2fc5fea8f8 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/CharacterRaceDefinition/RaceIronbornDwarf.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/CharacterRaceDefinition/RaceIronbornDwarf.json @@ -13,6 +13,11 @@ "featureDefinition": "Definition:AttributeModifierIronbornDwarfStrengthAbilityScoreIncrease:9be9d1a0-07a6-569a-8901-105f69eddb76", "level": 1 }, + { + "$type": "FeatureUnlockByLevel, Assembly-CSharp", + "featureDefinition": "Definition:SenseDarkvision:446f786482b07db45b6f4a0854be3056", + "level": 1 + }, { "$type": "FeatureUnlockByLevel, Assembly-CSharp", "featureDefinition": "Definition:ProficiencyIronbornDwarfArmorTraining:6b3b86a5-5a8e-5208-b590-d63322af3186", @@ -22,6 +27,11 @@ "$type": "FeatureUnlockByLevel, Assembly-CSharp", "featureDefinition": "Definition:ProficiencyDwarfLanguages:bc18fab78e7b7414590755243ca5b6d3", "level": 1 + }, + { + "$type": "FeatureUnlockByLevel, Assembly-CSharp", + "featureDefinition": "Definition:SenseNormalVision:222ef639393ed4e4bbd7152690597945", + "level": 1 } ], "subRaces": [], diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 89d0d94173..21a7a2c991 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,6 +1,7 @@ 1.5.97.11: - fixed Forge Cleric blessed metal not providing fire damage immunity +- fixed Gray and Ironborn Dwarf subclasses missing normal and darkvision senses 1.5.97.10 - Os cães ladram e a caravana passa: diff --git a/SolastaUnfinishedBusiness/Races/GrayDwarf.cs b/SolastaUnfinishedBusiness/Races/GrayDwarf.cs index 00bb00a882..fcb6a1e7a3 100644 --- a/SolastaUnfinishedBusiness/Races/GrayDwarf.cs +++ b/SolastaUnfinishedBusiness/Races/GrayDwarf.cs @@ -141,7 +141,8 @@ private static CharacterRaceDefinition BuildGrayDwarf() .SetFeaturesAtLevel(1, attributeModifierGrayDwarfStrengthAbilityScoreIncrease, featureSetGrayDwarfAncestry, - FeatureDefinitionSenses.SenseSuperiorDarkvision, + FeatureDefinitionSenses.SenseDarkvision, + FeatureDefinitionSenses.SenseNormalVision, lightAffinityGrayDwarfLightSensitivity, FeatureDefinitionProficiencys.ProficiencyDwarfLanguages) .AddFeaturesAtLevel(3, diff --git a/SolastaUnfinishedBusiness/Races/IronbornDwarf.cs b/SolastaUnfinishedBusiness/Races/IronbornDwarf.cs index 27eff79ba5..e36c122a3c 100644 --- a/SolastaUnfinishedBusiness/Races/IronbornDwarf.cs +++ b/SolastaUnfinishedBusiness/Races/IronbornDwarf.cs @@ -49,7 +49,9 @@ private static CharacterRaceDefinition BuildIronbornDwarf() .SetFeaturesAtLevel(1, attributeModifierIronbornDwarfStrengthAbilityScoreIncrease, proficiencyIronbornDwarfArmorTraining, - FeatureDefinitionProficiencys.ProficiencyDwarfLanguages) + FeatureDefinitionProficiencys.ProficiencyDwarfLanguages, + FeatureDefinitionSenses.SenseDarkvision, + FeatureDefinitionSenses.SenseNormalVision) .AddToDB(); // using avg heights from PHB, scale factor is 53/49, or about 1.08 From 562e9bd034edd7e5a8583e58d7b4c5be716501de Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sat, 25 May 2024 18:00:53 -0700 Subject: [PATCH 08/35] fix skills, tools, and expertise when granted from feats --- .../ChangelogHistory.txt | 1 + .../Feats/_FeatHelpers.cs | 34 +++++++++++++------ 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 21a7a2c991..2a614db2fc 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -2,6 +2,7 @@ - fixed Forge Cleric blessed metal not providing fire damage immunity - fixed Gray and Ironborn Dwarf subclasses missing normal and darkvision senses +- fixed skills, tools, and expertise when granted from feats 1.5.97.10 - Os cães ladram e a caravana passa: diff --git a/SolastaUnfinishedBusiness/Feats/_FeatHelpers.cs b/SolastaUnfinishedBusiness/Feats/_FeatHelpers.cs index 8e570b8fdb..ff26f5a40b 100644 --- a/SolastaUnfinishedBusiness/Feats/_FeatHelpers.cs +++ b/SolastaUnfinishedBusiness/Feats/_FeatHelpers.cs @@ -42,12 +42,19 @@ internal sealed class SkillOrExpertise( public void ApplyFeature(RulesetCharacterHero hero, string tag) { var buildingData = hero.GetHeroBuildingData(); + var hasSkill = hero.TrainedSkills.Contains(skillDefinition) || + buildingData.LevelupTrainedSkills.Any(x => x.Value.Contains(skillDefinition)); - hero.ActiveFeatures[tag].TryAdd( - hero.TrainedSkills.Contains(skillDefinition) || - buildingData.LevelupTrainedSkills.Any(x => x.Value.Contains(skillDefinition)) - ? expertise - : skill); + if (hasSkill) + { + hero.ActiveFeatures[tag].TryAdd(expertise); + hero.TrainedExpertises.TryAdd(expertise.Name); + } + else + { + hero.ActiveFeatures[tag].TryAdd(skill); + hero.TrainedSkills.TryAdd(skillDefinition); + } } public void RemoveFeature(RulesetCharacterHero hero, string tag) @@ -64,12 +71,19 @@ internal sealed class ToolOrExpertise( public void ApplyFeature(RulesetCharacterHero hero, string tag) { var buildingData = hero.GetHeroBuildingData(); + var hasTool = hero.TrainedToolTypes.Contains(toolTypeDefinition) || + buildingData.LevelupTrainedToolTypes.Any(x => x.Value.Contains(toolTypeDefinition)); - hero.ActiveFeatures[tag].TryAdd( - hero.TrainedToolTypes.Contains(toolTypeDefinition) || - buildingData.LevelupTrainedToolTypes.Any(x => x.Value.Contains(toolTypeDefinition)) - ? expertise - : tool); + if (hasTool) + { + hero.ActiveFeatures[tag].TryAdd(expertise); + hero.TrainedExpertises.TryAdd(expertise.Name); + } + else + { + hero.ActiveFeatures[tag].TryAdd(tool); + hero.TrainedToolTypes.TryAdd(toolTypeDefinition); + } } public void RemoveFeature(RulesetCharacterHero hero, string tag) From dbca21211db8f5d686011cd0212d948054eed7d5 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sat, 25 May 2024 18:14:12 -0700 Subject: [PATCH 09/35] fix Thunderstep spell interaction with Transmuted metamagic --- SolastaUnfinishedBusiness/ChangelogHistory.txt | 1 + .../Subclasses/Builders/MetamagicBuilders.cs | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 2a614db2fc..d744c7eb21 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -3,6 +3,7 @@ - fixed Forge Cleric blessed metal not providing fire damage immunity - fixed Gray and Ironborn Dwarf subclasses missing normal and darkvision senses - fixed skills, tools, and expertise when granted from feats +- fixed Thunderstep spell interaction with Transmuted metamagic 1.5.97.10 - Os cães ladram e a caravana passa: diff --git a/SolastaUnfinishedBusiness/Subclasses/Builders/MetamagicBuilders.cs b/SolastaUnfinishedBusiness/Subclasses/Builders/MetamagicBuilders.cs index 2e4a3c0b83..e53069bff6 100644 --- a/SolastaUnfinishedBusiness/Subclasses/Builders/MetamagicBuilders.cs +++ b/SolastaUnfinishedBusiness/Subclasses/Builders/MetamagicBuilders.cs @@ -318,14 +318,15 @@ select FeatureDefinitionPowerSharedPoolBuilder private static void IsMetamagicTransmutedSpellValid( RulesetCharacter caster, - RulesetEffectSpell rulesetEffectSpell, + RulesetEffectSpell rulesetEffect, MetamagicOptionDefinition metamagicOption, ref bool result, ref string failure) { - if (rulesetEffectSpell.EffectDescription.EffectForms.Any(x => + if (rulesetEffect.EffectDescription.EffectForms.Any(x => x.FormType == EffectForm.EffectFormType.Damage && - TransmutedDamageTypes.Contains(x.DamageForm.DamageType))) + TransmutedDamageTypes.Contains(x.DamageForm.DamageType)) || + rulesetEffect.SpellDefinition.Name == "BoomingStep") { return; } @@ -351,7 +352,8 @@ public IEnumerator OnMagicEffectBeforeHitConfirmedOnEnemy( bool firstTarget, bool criticalHit) { - if (rulesetEffect.MetamagicOption != metamagicOptionDefinition) + if (rulesetEffect.MetamagicOption != metamagicOptionDefinition && + rulesetEffect.SourceDefinition.Name != "PowerBoomingStepExplode") { yield break; } From 2089b08597b50384500279cf12d4929022063d81 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sat, 25 May 2024 18:29:30 -0700 Subject: [PATCH 10/35] fix Arcane Backslash spell double caster animation effects --- .../PowerRoguishArcaneScoundrelArcaneBackslash.json | 2 +- SolastaUnfinishedBusiness/ChangelogHistory.txt | 1 + SolastaUnfinishedBusiness/Subclasses/RoguishArcaneScoundrel.cs | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerRoguishArcaneScoundrelArcaneBackslash.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerRoguishArcaneScoundrelArcaneBackslash.json index 09c32754c3..f7ca0668f7 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerRoguishArcaneScoundrelArcaneBackslash.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerRoguishArcaneScoundrelArcaneBackslash.json @@ -457,7 +457,7 @@ "abilityScoreBonusToAttack": false, "proficiencyBonusToAttack": false, "uniqueInstance": false, - "showCasting": true, + "showCasting": false, "shortTitleOverride": "", "overriddenPower": null, "includeBaseDescription": false, diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index d744c7eb21..a2aa1380a1 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,5 +1,6 @@ 1.5.97.11: +- fixed Arcane Backslash spell double caster animation effects - fixed Forge Cleric blessed metal not providing fire damage immunity - fixed Gray and Ironborn Dwarf subclasses missing normal and darkvision senses - fixed skills, tools, and expertise when granted from feats diff --git a/SolastaUnfinishedBusiness/Subclasses/RoguishArcaneScoundrel.cs b/SolastaUnfinishedBusiness/Subclasses/RoguishArcaneScoundrel.cs index 9b97560ae5..93b60990fc 100644 --- a/SolastaUnfinishedBusiness/Subclasses/RoguishArcaneScoundrel.cs +++ b/SolastaUnfinishedBusiness/Subclasses/RoguishArcaneScoundrel.cs @@ -136,8 +136,9 @@ public RoguishArcaneScoundrel() var powerArcaneBacklash = FeatureDefinitionPowerBuilder .Create($"Power{Name}ArcaneBackslash") - .SetUsesFixed(ActivationTime.NoCost) .SetGuiPresentation(Category.Feature) + .SetUsesFixed(ActivationTime.NoCost) + .SetShowCasting(false) .SetEffectDescription( EffectDescriptionBuilder .Create() From 557f7c472a8763066b421885e642603cd3e360eb Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 26 May 2024 10:00:09 -0700 Subject: [PATCH 11/35] fix Earthquake spell interaction with Widened metamagic --- .../ChangelogHistory.txt | 1 + .../EffectParticleParametersPatcher.cs | 47 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 SolastaUnfinishedBusiness/Patches/EffectParticleParametersPatcher.cs diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index a2aa1380a1..020bef1367 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,6 +1,7 @@ 1.5.97.11: - fixed Arcane Backslash spell double caster animation effects +- fixed Earthquake spell interaction with Widened metamagic - fixed Forge Cleric blessed metal not providing fire damage immunity - fixed Gray and Ironborn Dwarf subclasses missing normal and darkvision senses - fixed skills, tools, and expertise when granted from feats diff --git a/SolastaUnfinishedBusiness/Patches/EffectParticleParametersPatcher.cs b/SolastaUnfinishedBusiness/Patches/EffectParticleParametersPatcher.cs new file mode 100644 index 0000000000..5d482265b5 --- /dev/null +++ b/SolastaUnfinishedBusiness/Patches/EffectParticleParametersPatcher.cs @@ -0,0 +1,47 @@ +using System.Diagnostics.CodeAnalysis; +using HarmonyLib; +using JetBrains.Annotations; +using UnityEngine; + +namespace SolastaUnfinishedBusiness.Patches; + +[UsedImplicitly] +public static class EffectParticleParametersPatcher +{ + //PATCH: supports Earthquake spell interaction with widened metamagic + [HarmonyPatch(typeof(EffectParticleParameters), + nameof(EffectParticleParameters.GetActiveEffectSurfaceParticlePerIndex))] + [SuppressMessage("Minor Code Smell", "S101:Types should be named in PascalCase", Justification = "Patch")] + [UsedImplicitly] + public static class GetActiveEffectSurfaceParticlePerIndex_Patch + { + [UsedImplicitly] + public static bool Prefix(EffectParticleParameters __instance, out GameObject __result, int cellIndex) + { + __result = null; + + if (string.IsNullOrEmpty(__instance.activeEffectSurfaceParticlePerIndex)) + { + return false; + } + + //BEGIN PATCH + if (__instance.activeEffectSurfaceParticlePerIndex == "Earthquake" && + cellIndex > 143) + { + cellIndex -= 36; + } + //END PATCH + + if (ServiceRepository.GetService() is { LocationShuttingDown: false }) + { + __result = ServiceRepository.GetService() + .FetchOrLoadAssetSync( + $"{(object)__instance.activeEffectSurfaceParticlePerIndex}_{(object)cellIndex}", + GraphicsDefinitions.RetentionScope.Location); + } + + return false; + } + } +} From 6a62a9a7951600755e3054239c3c5deb913fef40 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 26 May 2024 10:36:22 -0700 Subject: [PATCH 12/35] fix skill/tool or expertise granting logic --- SolastaUnfinishedBusiness/Feats/_FeatHelpers.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SolastaUnfinishedBusiness/Feats/_FeatHelpers.cs b/SolastaUnfinishedBusiness/Feats/_FeatHelpers.cs index ff26f5a40b..5c8cff0093 100644 --- a/SolastaUnfinishedBusiness/Feats/_FeatHelpers.cs +++ b/SolastaUnfinishedBusiness/Feats/_FeatHelpers.cs @@ -48,7 +48,7 @@ public void ApplyFeature(RulesetCharacterHero hero, string tag) if (hasSkill) { hero.ActiveFeatures[tag].TryAdd(expertise); - hero.TrainedExpertises.TryAdd(expertise.Name); + hero.TrainedExpertises.TryAdd(skillDefinition.Name); } else { @@ -77,7 +77,7 @@ public void ApplyFeature(RulesetCharacterHero hero, string tag) if (hasTool) { hero.ActiveFeatures[tag].TryAdd(expertise); - hero.TrainedExpertises.TryAdd(expertise.Name); + hero.TrainedExpertises.TryAdd(toolTypeDefinition.Name); } else { From e7bb7b94ea0e16a67a4bfffd5fe3956efdd9e6f7 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 26 May 2024 11:16:47 -0700 Subject: [PATCH 13/35] fix Obsidian Dwarf subclasses missing normal and darkvision senses --- .../RaceObsidianDwarf.json | 10 ++++++++++ Documentation/Subraces.md | 16 ++++++++++++---- SolastaUnfinishedBusiness/ChangelogHistory.txt | 2 +- SolastaUnfinishedBusiness/Races/ObsidianDwarf.cs | 5 ++++- 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/Diagnostics/UnfinishedBusinessBlueprints/CharacterRaceDefinition/RaceObsidianDwarf.json b/Diagnostics/UnfinishedBusinessBlueprints/CharacterRaceDefinition/RaceObsidianDwarf.json index 2e6eb437a9..edfd8fc760 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/CharacterRaceDefinition/RaceObsidianDwarf.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/CharacterRaceDefinition/RaceObsidianDwarf.json @@ -18,10 +18,20 @@ "featureDefinition": "Definition:DamageAffinityObsidianDwarfFireResistance:3ec3875d-a184-50b0-a8b4-84b685c644e4", "level": 1 }, + { + "$type": "FeatureUnlockByLevel, Assembly-CSharp", + "featureDefinition": "Definition:SenseDarkvision:446f786482b07db45b6f4a0854be3056", + "level": 1 + }, { "$type": "FeatureUnlockByLevel, Assembly-CSharp", "featureDefinition": "Definition:ProficiencyObsidianDwarfLanguages:0b99ff27-3652-5c77-abce-2b00cd7dec30", "level": 1 + }, + { + "$type": "FeatureUnlockByLevel, Assembly-CSharp", + "featureDefinition": "Definition:SenseNormalVision:222ef639393ed4e4bbd7152690597945", + "level": 1 } ], "subRaces": [], diff --git a/Documentation/Subraces.md b/Documentation/Subraces.md index c4ed2ab412..c0e592f3ff 100644 --- a/Documentation/Subraces.md +++ b/Documentation/Subraces.md @@ -283,6 +283,10 @@ The Gray Dwarves are dwarves who have been changed after only a few generations Strength +1 +* Darkvision + +See normally in dim light, and in natural darkness as if in dim light. + * Gray Dwarf Ancestry Saving throw advantage against Charm, Paralyze and Illusions @@ -295,10 +299,6 @@ Common, Dwarvish You have Disadvantage on Wisdom (Perception) checks in bright light and suffers a -1d4 penalty on attack rolls. -* Superior Darkvision - -Within the specified range, a creature with superior Darkvision can see perfectly in all lighting conditions. - ## Level 3 @@ -587,6 +587,10 @@ Strong and hardy, the Ironborn Dwarves live among, but often apart from, their c Strength +2 +* Darkvision + +See normally in dim light, and in natural darkness as if in dim light. + * Ironborn Armor Training You have proficiency with light and medium armor. @@ -675,6 +679,10 @@ Strength +1 You have resistance to fire damage. +* Darkvision + +See normally in dim light, and in natural darkness as if in dim light. + * Languages Common, Dwarvish, and Giant diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 020bef1367..0b8c006574 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -3,7 +3,7 @@ - fixed Arcane Backslash spell double caster animation effects - fixed Earthquake spell interaction with Widened metamagic - fixed Forge Cleric blessed metal not providing fire damage immunity -- fixed Gray and Ironborn Dwarf subclasses missing normal and darkvision senses +- fixed Gray, Ironborn, and Obsidian Dwarf subclasses missing normal and darkvision senses - fixed skills, tools, and expertise when granted from feats - fixed Thunderstep spell interaction with Transmuted metamagic diff --git a/SolastaUnfinishedBusiness/Races/ObsidianDwarf.cs b/SolastaUnfinishedBusiness/Races/ObsidianDwarf.cs index 27b933951f..809330919e 100644 --- a/SolastaUnfinishedBusiness/Races/ObsidianDwarf.cs +++ b/SolastaUnfinishedBusiness/Races/ObsidianDwarf.cs @@ -8,6 +8,7 @@ using static RuleDefinitions; using static FeatureDefinitionAttributeModifier; using static SolastaUnfinishedBusiness.Api.DatabaseHelper.CharacterRaceDefinitions; +using static SolastaUnfinishedBusiness.Api.DatabaseHelper.FeatureDefinitionSenses; namespace SolastaUnfinishedBusiness.Races; @@ -54,7 +55,9 @@ private static CharacterRaceDefinition BuildObsidianDwarf() .SetFeaturesAtLevel(1, attributeModifierObsidianDwarfStrengthAbilityScoreIncrease, damageAffinityObsidianDwarfFireResistance, - proficiencyObsidianDwarfLanguages) + proficiencyObsidianDwarfLanguages, + SenseDarkvision, + SenseNormalVision) .AddToDB(); Dwarf.SubRaces.Add(raceObsidianDwarf); From 9e207d2007eaea180c49fd9a942c6b33583fd001 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 26 May 2024 11:20:52 -0700 Subject: [PATCH 14/35] Fix Toxicologist to always grant Nature and Apothecary to always grant Medicine --- .../ChangelogHistory.txt | 2 ++ .../Feats/CraftyFeats.cs | 18 ++++++----- .../Translations/de/Feats/Crafty-de.txt | 12 +++---- .../Translations/en/Feats/Crafty-en.txt | 10 +++--- .../Translations/es/Feats/Crafty-es.txt | 10 +++--- .../Translations/fr/Feats/Crafty-fr.txt | 10 +++--- .../Translations/it/Feats/Crafty-it.txt | 12 +++---- .../Translations/ja/Feats/Crafty-ja.txt | 10 +++--- .../Translations/ko/Feats/Crafty-ko.txt | 32 +++++++++---------- .../Translations/pt-BR/Feats/Crafty-pt-BR.txt | 10 +++--- 10 files changed, 65 insertions(+), 61 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 0b8c006574..3fb47c09ea 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,11 +1,13 @@ 1.5.97.11: +- fixed Apothecary feat to always grant Medicine regardless of chosen attribute increase - fixed Arcane Backslash spell double caster animation effects - fixed Earthquake spell interaction with Widened metamagic - fixed Forge Cleric blessed metal not providing fire damage immunity - fixed Gray, Ironborn, and Obsidian Dwarf subclasses missing normal and darkvision senses - fixed skills, tools, and expertise when granted from feats - fixed Thunderstep spell interaction with Transmuted metamagic +- fixed Toxicologist feat to always grant Nature regardless of chosen attribute increase 1.5.97.10 - Os cães ladram e a caravana passa: diff --git a/SolastaUnfinishedBusiness/Feats/CraftyFeats.cs b/SolastaUnfinishedBusiness/Feats/CraftyFeats.cs index 073263c15c..3a2d077f55 100644 --- a/SolastaUnfinishedBusiness/Feats/CraftyFeats.cs +++ b/SolastaUnfinishedBusiness/Feats/CraftyFeats.cs @@ -22,7 +22,8 @@ internal static void CreateFeats([NotNull] List feats) .SetProficiencies(ProficiencyType.Skill, SkillDefinitions.Arcana) .AddToDB(); - var proficiencyCraftyAnimalHandling = FeatureDefinitionProficiencyBuilder + // kept for backward compatibility + _ = FeatureDefinitionProficiencyBuilder .Create("ProficiencyCraftyAnimalHandling") .SetGuiPresentationNoContent(true) .SetProficiencies(ProficiencyType.Skill, SkillDefinitions.AnimalHandling) @@ -70,7 +71,8 @@ internal static void CreateFeats([NotNull] List feats) .SetProficiencies(ProficiencyType.Expertise, SkillDefinitions.Arcana) .AddToDB(); - var proficiencyCraftyAnimalHandlingExpertise = FeatureDefinitionProficiencyBuilder + // kept for backward compatibility + _ = FeatureDefinitionProficiencyBuilder .Create("ProficiencyCraftyAnimalHandlingExpertise") .SetGuiPresentationNoContent(true) .SetProficiencies(ProficiencyType.Expertise, SkillDefinitions.AnimalHandling) @@ -123,8 +125,8 @@ internal static void CreateFeats([NotNull] List feats) .AddCustomSubFeatures( new FeatHelpers.ToolOrExpertise(ToolTypeDefinitions.HerbalismKitType, proficiencyCraftyHerbalismKit, proficiencyCraftyHerbalismKitExpertise), - new FeatHelpers.SkillOrExpertise(DatabaseHelper.SkillDefinitions.Arcana, - proficiencyCraftyArcana, proficiencyCraftyArcanaExpertise)) + new FeatHelpers.SkillOrExpertise(DatabaseHelper.SkillDefinitions.Medecine, + proficiencyCraftyMedicine, proficiencyCraftyMedicineExpertise)) .SetFeatFamily("Apothecary") .AddToDB(); @@ -180,8 +182,8 @@ internal static void CreateFeats([NotNull] List feats) .AddCustomSubFeatures( new FeatHelpers.ToolOrExpertise(ToolTypeDefinitions.PoisonersKitType, proficiencyCraftyPoisonersKit, proficiencyCraftyPoisonersKitExpertise), - new FeatHelpers.SkillOrExpertise(DatabaseHelper.SkillDefinitions.Medecine, - proficiencyCraftyMedicine, proficiencyCraftyMedicineExpertise)) + new FeatHelpers.SkillOrExpertise(DatabaseHelper.SkillDefinitions.Nature, + proficiencyCraftyNature, proficiencyCraftyNatureExpertise)) .SetFeatFamily("Toxicologist") .AddToDB(); @@ -192,8 +194,8 @@ internal static void CreateFeats([NotNull] List feats) .AddCustomSubFeatures( new FeatHelpers.ToolOrExpertise(ToolTypeDefinitions.PoisonersKitType, proficiencyCraftyPoisonersKit, proficiencyCraftyPoisonersKitExpertise), - new FeatHelpers.SkillOrExpertise(DatabaseHelper.SkillDefinitions.AnimalHandling, - proficiencyCraftyAnimalHandling, proficiencyCraftyAnimalHandlingExpertise)) + new FeatHelpers.SkillOrExpertise(DatabaseHelper.SkillDefinitions.Nature, + proficiencyCraftyNature, proficiencyCraftyNatureExpertise)) .SetFeatFamily("Toxicologist") .AddToDB(); diff --git a/SolastaUnfinishedBusiness/Translations/de/Feats/Crafty-de.txt b/SolastaUnfinishedBusiness/Translations/de/Feats/Crafty-de.txt index ef52267c96..a157b042d0 100644 --- a/SolastaUnfinishedBusiness/Translations/de/Feats/Crafty-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/Feats/Crafty-de.txt @@ -1,18 +1,18 @@ -Feat/&FeatApothecaryChaDescription=Erhöhen Sie Ihr Charisma um 1 auf maximal 20.\nSie erwerben Kenntnisse im Umgang mit Kräuterheilmitteln und Medikamenten oder Fachwissen, wenn Sie bereits über Kenntnisse verfügen. +Feat/&FeatApothecaryChaDescription=Erhöhen Sie Ihr Charisma um 1 auf maximal 20.\nSie erwerben Kenntnisse im Umgang mit Kräuterkunde-Sets und Medikamenten oder Fachwissen, wenn Sie bereits über Kenntnisse verfügen. Feat/&FeatApothecaryChaTitle=Apotheker [Cha] -Feat/&FeatApothecaryIntDescription=Erhöhen Sie Ihre Intelligenz um 1 bis zu einem Maximum von 20.\nSie erlangen Kenntnisse im Umgang mit Kräuterkunde und Medizin oder Fachwissen, wenn Sie bereits über Kenntnisse verfügen. +Feat/&FeatApothecaryIntDescription=Erhöhen Sie Ihre Intelligenz um 1 auf maximal 20.\nSie erwerben Kenntnisse im Umgang mit Kräuterkunde-Sets und Medikamenten oder Fachwissen, wenn Sie bereits über Kenntnisse verfügen. Feat/&FeatApothecaryIntTitle=Apotheker [Int] -Feat/&FeatApothecaryWisDescription=Erhöhen Sie Ihre Weisheit um 1 auf maximal 20.\nSie erwerben Kenntnisse im Kräuterkunde-Set und Arcana oder Fachwissen, wenn Sie bereits über Kenntnisse verfügen. +Feat/&FeatApothecaryWisDescription=Erhöhen Sie Ihre Weisheit um 1 auf maximal 20.\nSie erwerben Kenntnisse im Umgang mit Kräuterkunde-Sets und Medikamenten oder Fachwissen, wenn Sie bereits über Kenntnisse verfügen. Feat/&FeatApothecaryWisTitle=Apotheker [Wis] -Feat/&FeatArcanistDescription=Du lernst die arkanen Künste und erhältst folgende Vorteile:\n• Deine Intelligenz steigt um 1, bis zu einem Maximum von 20.\n• Du erlangst Kenntnisse in arkaner Fertigkeit oder Expertise, wenn du bereits darin ausgebildet bist.\n• Du lernst den Zauber „Magie entdecken“. Du kannst „Magie entdecken“ einmal wirken, ohne einen Zauberplatz zu verbrauchen, und du erhältst die Fähigkeit dazu zurück, wenn du eine lange Ruhepause beendest. +Feat/&FeatArcanistDescription=Du studierst die arkanen Künste und erhältst die folgenden Vorteile:\n• Erhöhe deine Intelligenz um 1, bis zu einem Maximum von 20.\n• Du erlangst Kenntnisse in Arcana-Fertigkeiten oder -Expertise, wenn du bereits über Kenntnisse verfügst.\n• Du Lerne den Zauber „Magie entdecken“. Du kannst „Magie entdecken“ einmal wirken, ohne einen Zauberslot zu verbrauchen, und erhältst die Fähigkeit dazu zurück, wenn du eine lange Pause beendet hast. Feat/&FeatArcanistTitle=Arkanist Feat/&FeatCraftyScriberDescription=Erhöhen Sie Ihre Intelligenz um 1 auf maximal 20.\nSie erwerben Kenntnisse im Umgang mit Schriftrollen und Arcana oder Fachwissen, wenn Sie bereits über Kenntnisse verfügen. Feat/&FeatCraftyScriberTitle=Schreiber Feat/&FeatTheologianDescription=Ihr umfassendes Religionsstudium belohnt Sie mit den folgenden Vorteilen:\n• Erhöhen Sie Ihre Intelligenz um 1 auf maximal 20.\n• Sie erwerben Kenntnisse in religiösen Fähigkeiten oder Fachkenntnissen, wenn Sie bereits über Kenntnisse verfügen.\n• Du lernst den Zauber „Böses und Gutes erkennen“. Du kannst „Böses und Gutes erkennen“ einmal wirken, ohne einen Zauberslot zu verbrauchen, und erhältst die Fähigkeit dazu zurück, wenn du eine lange Pause beendet hast. Feat/&FeatTheologianTitle=Theologe -Feat/&FeatToxicologistChaDescription=Erhöhen Sie Ihr Charisma um 1 auf maximal 20.\nSie erwerben Kenntnisse im Umgang mit Giftausrüstung und im Umgang mit Tieren oder Fachwissen, wenn Sie bereits über Kenntnisse verfügen. +Feat/&FeatToxicologistChaDescription=Erhöhen Sie Ihr Charisma um 1 auf maximal 20.\nSie erwerben Kenntnisse im Umgang mit Giftausrüstung und Natur oder Fachwissen, wenn Sie bereits über Kenntnisse verfügen. Feat/&FeatToxicologistChaTitle=Toxikologe [Cha] Feat/&FeatToxicologistIntDescription=Erhöhen Sie Ihre Intelligenz um 1 auf maximal 20.\nSie erwerben Kenntnisse im Umgang mit Giftausrüstung und Natur oder Fachwissen, wenn Sie bereits über Kenntnisse verfügen. Feat/&FeatToxicologistIntTitle=Toxikologe [Int] -Feat/&FeatToxicologistWisDescription=Erhöhen Sie Ihre Weisheit um 1 auf maximal 20.\nSie erwerben Kenntnisse im Umgang mit Giftausrüstung und Medizin oder Fachwissen, wenn Sie bereits über Kenntnisse verfügen. +Feat/&FeatToxicologistWisDescription=Erhöhe deine Weisheit um 1 auf maximal 20.\nDu erlangst Kenntnisse im Umgang mit Giftausrüstung und Natur oder Fachwissen, wenn du bereits über Kenntnisse verfügst. Feat/&FeatToxicologistWisTitle=Toxikologe [Wis] diff --git a/SolastaUnfinishedBusiness/Translations/en/Feats/Crafty-en.txt b/SolastaUnfinishedBusiness/Translations/en/Feats/Crafty-en.txt index 4594cd051e..bc553905de 100644 --- a/SolastaUnfinishedBusiness/Translations/en/Feats/Crafty-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/Feats/Crafty-en.txt @@ -1,8 +1,8 @@ -Feat/&FeatApothecaryChaDescription=Increase your Charisma by 1, to a maximum of 20.\nYou gain proficiency with herbalism kit and medicine, or expertise if already proficient. +Feat/&FeatApothecaryChaDescription=Increase your Charisma by 1, to a maximum of 20.\nYou gain proficiency with herbalism kit and Medicine, or expertise if already proficient. Feat/&FeatApothecaryChaTitle=Apothecary [Cha] -Feat/&FeatApothecaryIntDescription=Increase your Intelligence by 1, to a maximum of 20.\nYou gain proficiency with herbalism kit and medicine, or expertise if already proficient. +Feat/&FeatApothecaryIntDescription=Increase your Intelligence by 1, to a maximum of 20.\nYou gain proficiency with herbalism kit and Medicine, or expertise if already proficient. Feat/&FeatApothecaryIntTitle=Apothecary [Int] -Feat/&FeatApothecaryWisDescription=Increase your Wisdom by 1, to a maximum of 20.\nYou gain proficiency with herbalism kit and Arcana, or expertise if already proficient. +Feat/&FeatApothecaryWisDescription=Increase your Wisdom by 1, to a maximum of 20.\nYou gain proficiency with herbalism kit and Medicine, or expertise if already proficient. Feat/&FeatApothecaryWisTitle=Apothecary [Wis] Feat/&FeatArcanistDescription=You study the arcane arts, gaining the following benefits:\n• Increase your Intelligence by 1, to a maximum of 20.\n• You gain proficiency with Arcana skill or expertise if you are already proficient.\n• You learn the Detect Magic spell. You can cast Detect Magic once without expending a spell slot, and you regain the ability to do so when you finish a long rest. Feat/&FeatArcanistTitle=Arcanist @@ -10,9 +10,9 @@ Feat/&FeatCraftyScriberDescription=Increase your Intelligence by 1, to a maximum Feat/&FeatCraftyScriberTitle=Scriber Feat/&FeatTheologianDescription=Your extensive study of religion rewards you with the following benefits.\n• Increase your Intelligence by 1, to a maximum of 20.\n• You gain proficiency with Religious skill or expertise if you are already proficient.\n• You learn the Detect Evil and Good spell. You can cast Detect Evil and Good once without expending a spell slot, and you regain the ability to do so when you finish a long rest. Feat/&FeatTheologianTitle=Theologian -Feat/&FeatToxicologistChaDescription=Increase your Charisma by 1, to a maximum of 20.\nYou gain proficiency with poisoner's kit and Animal Handling, or expertise if already proficient. +Feat/&FeatToxicologistChaDescription=Increase your Charisma by 1, to a maximum of 20.\nYou gain proficiency with poisoner's kit and Nature, or expertise if already proficient. Feat/&FeatToxicologistChaTitle=Toxicologist [Cha] Feat/&FeatToxicologistIntDescription=Increase your Intelligence by 1, to a maximum of 20.\nYou gain proficiency with poisoner's kit and Nature, or expertise if already proficient. Feat/&FeatToxicologistIntTitle=Toxicologist [Int] -Feat/&FeatToxicologistWisDescription=Increase your Wisdom by 1, to a maximum of 20.\nYou gain proficiency with poisoner's kit and Medicine, or expertise if already proficient. +Feat/&FeatToxicologistWisDescription=Increase your Wisdom by 1, to a maximum of 20.\nYou gain proficiency with poisoner's kit and Nature, or expertise if already proficient. Feat/&FeatToxicologistWisTitle=Toxicologist [Wis] diff --git a/SolastaUnfinishedBusiness/Translations/es/Feats/Crafty-es.txt b/SolastaUnfinishedBusiness/Translations/es/Feats/Crafty-es.txt index ce4ffc6c8b..22cc6b6ec9 100644 --- a/SolastaUnfinishedBusiness/Translations/es/Feats/Crafty-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/Feats/Crafty-es.txt @@ -1,8 +1,8 @@ -Feat/&FeatApothecaryChaDescription=Aumenta tu carisma en 1, hasta un máximo de 20.\nGanas competencia con el kit de herboristería y medicinas, o experiencia si ya eres competente. +Feat/&FeatApothecaryChaDescription=Aumenta tu carisma en 1, hasta un máximo de 20.\nGanas competencia con el kit de herboristería y medicina, o experiencia si ya la dominas. Feat/&FeatApothecaryChaTitle=Boticario [Cha] -Feat/&FeatApothecaryIntDescription=Aumenta tu Inteligencia en 1, hasta un máximo de 20.\nObtienes competencia con el kit de herboristería y medicinas, o experiencia si ya eres competente. +Feat/&FeatApothecaryIntDescription=Aumenta tu Inteligencia en 1, hasta un máximo de 20.\nObtienes competencia con el kit de herboristería y Medicina, o experiencia si ya la dominas. Feat/&FeatApothecaryIntTitle=Boticario [Ent] -Feat/&FeatApothecaryWisDescription=Aumenta tu Sabiduría en 1, hasta un máximo de 20.\nGanas competencia con el kit de herboristería y los Arcanos, o experiencia si ya eres competente. +Feat/&FeatApothecaryWisDescription=Aumenta tu Sabiduría en 1, hasta un máximo de 20.\nGanas competencia con el kit de herboristería y Medicina, o experiencia si ya la dominas. Feat/&FeatApothecaryWisTitle=Boticario [Wisconsin] Feat/&FeatArcanistDescription=Estudias las artes arcanas y obtienes los siguientes beneficios:\n• Aumentas tu inteligencia en 1, hasta un máximo de 20.\n• Obtienes competencia con la habilidad Arcana o experiencia si ya eres competente.\n• aprende el hechizo Detectar Magia. Puedes lanzar Detectar magia una vez sin gastar un espacio de hechizo y recuperas la capacidad de hacerlo cuando terminas un descanso prolongado. Feat/&FeatArcanistTitle=Arcanista @@ -10,9 +10,9 @@ Feat/&FeatCraftyScriberDescription=Aumenta tu Inteligencia en 1, hasta un máxim Feat/&FeatCraftyScriberTitle=Punta de trazar Feat/&FeatTheologianDescription=Tu extenso estudio de religión te recompensa con los siguientes beneficios.\n• Aumenta tu Inteligencia en 1, hasta un máximo de 20.\n• Obtienes competencia en habilidades o experiencia religiosa si ya eres competente.\n• Aprendes el hechizo Detectar el bien y el mal. Puedes lanzar Detectar el mal y el bien una vez sin gastar un espacio de hechizo, y recuperas la capacidad de hacerlo cuando terminas un descanso prolongado. Feat/&FeatTheologianTitle=Teólogo -Feat/&FeatToxicologistChaDescription=Aumenta tu carisma en 1, hasta un máximo de 20.\nGanas competencia con el kit de envenenador y manejo de animales, o experiencia si ya eres competente. +Feat/&FeatToxicologistChaDescription=Aumenta tu carisma en 1, hasta un máximo de 20.\nGanas competencia con el kit de envenenador y la Naturaleza, o experiencia si ya eres competente. Feat/&FeatToxicologistChaTitle=Toxicólogo [Cha] Feat/&FeatToxicologistIntDescription=Aumenta tu Inteligencia en 1, hasta un máximo de 20.\nGanas competencia con el kit de envenenador y la Naturaleza, o experiencia si ya eres competente. Feat/&FeatToxicologistIntTitle=Toxicólogo [Ent] -Feat/&FeatToxicologistWisDescription=Aumenta tu Sabiduría en 1, hasta un máximo de 20.\nGanas competencia con el kit del envenenador y la Medicina, o experiencia si ya la dominas. +Feat/&FeatToxicologistWisDescription=Aumenta tu Sabiduría en 1, hasta un máximo de 20.\nGanas competencia con el kit de envenenador y la Naturaleza, o experiencia si ya eres competente. Feat/&FeatToxicologistWisTitle=Toxicólogo [Wisconsin] diff --git a/SolastaUnfinishedBusiness/Translations/fr/Feats/Crafty-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/Feats/Crafty-fr.txt index 7519e7d623..ca7a768c5b 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/Feats/Crafty-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/Feats/Crafty-fr.txt @@ -1,8 +1,8 @@ -Feat/&FeatApothecaryChaDescription=Augmentez votre charisme de 1, jusqu'à un maximum de 20.\nVous gagnez en maîtrise du kit d'herboristerie et des médicaments, ou en expertise si vous êtes déjà compétent. +Feat/&FeatApothecaryChaDescription=Augmentez votre charisme de 1, jusqu'à un maximum de 20.\nVous gagnez en maîtrise du kit d'herboristerie et de la médecine, ou en expertise si vous êtes déjà compétent. Feat/&FeatApothecaryChaTitle=Apothicaire [Cha] -Feat/&FeatApothecaryIntDescription=Augmentez votre Intelligence de 1, jusqu'à un maximum de 20.\nVous gagnez en maîtrise du kit d'herboristerie et des médicaments, ou en expertise si vous êtes déjà compétent. +Feat/&FeatApothecaryIntDescription=Augmentez votre Intelligence de 1, jusqu'à un maximum de 20.\nVous gagnez en maîtrise du kit d'herboristerie et de la médecine, ou en expertise si vous êtes déjà compétent. Feat/&FeatApothecaryIntTitle=Apothicaire [Int] -Feat/&FeatApothecaryWisDescription=Augmentez votre Sagesse de 1, jusqu'à un maximum de 20.\nVous gagnez en maîtrise du kit d'herboristerie et des Arcanes, ou en expertise si vous êtes déjà compétent. +Feat/&FeatApothecaryWisDescription=Augmentez votre Sagesse de 1, jusqu'à un maximum de 20.\nVous gagnez en maîtrise du kit d'herboristerie et de la médecine, ou en expertise si vous êtes déjà compétent. Feat/&FeatApothecaryWisTitle=Apothicaire [Wis] Feat/&FeatArcanistDescription=Vous étudiez les arts arcaniques et bénéficiez des avantages suivants :\n• Augmentez votre intelligence de 1, jusqu'à un maximum de 20.\n• Vous maîtrisez la compétence ou l'expertise Arcana si vous la maîtrisez déjà.\n• Vous apprenez le sort Détection de la magie. Vous pouvez lancer Détecter la magie une fois sans dépenser d'emplacement de sort, et vous retrouvez la possibilité de le faire lorsque vous terminez un repos long. Feat/&FeatArcanistTitle=Arcaniste @@ -10,9 +10,9 @@ Feat/&FeatCraftyScriberDescription=Augmentez votre Intelligence de 1, jusqu'à u Feat/&FeatCraftyScriberTitle=Traceur Feat/&FeatTheologianDescription=Votre étude approfondie de la religion vous récompense avec les avantages suivants.\n• Augmentez votre intelligence de 1, jusqu'à un maximum de 20.\n• Vous gagnez la maîtrise d'une compétence ou d'une expertise religieuse si vous la maîtrisez déjà.\n• Vous apprenez le sort Détecter le mal et le bien. Vous pouvez lancer Détecter le mal et le bien une fois sans dépenser un emplacement de sort, et vous retrouvez la possibilité de le faire lorsque vous terminez un repos long. Feat/&FeatTheologianTitle=Théologien -Feat/&FeatToxicologistChaDescription=Augmentez votre charisme de 1, jusqu'à un maximum de 20.\nVous gagnez la maîtrise du kit d'empoisonneur et de la manipulation des animaux, ou une expertise si vous le maîtrisez déjà. +Feat/&FeatToxicologistChaDescription=Augmentez votre Charisme de 1, jusqu'à un maximum de 20.\nVous gagnez en maîtrise du kit d'empoisonneur et de la Nature, ou en expertise si vous le maîtrisez déjà. Feat/&FeatToxicologistChaTitle=Toxicologue [Cha] Feat/&FeatToxicologistIntDescription=Augmentez votre Intelligence de 1, jusqu'à un maximum de 20.\nVous gagnez en maîtrise du kit d'empoisonneur et de la Nature, ou en expertise si vous êtes déjà compétent. Feat/&FeatToxicologistIntTitle=Toxicologue [Int] -Feat/&FeatToxicologistWisDescription=Augmentez votre Sagesse de 1, jusqu'à un maximum de 20.\nVous gagnez la maîtrise du kit d'empoisonneur et de la médecine, ou une expertise si vous êtes déjà compétent. +Feat/&FeatToxicologistWisDescription=Augmentez votre Sagesse de 1, jusqu'à un maximum de 20.\nVous gagnez en maîtrise du kit d'empoisonneur et de la Nature, ou en expertise si vous êtes déjà compétent. Feat/&FeatToxicologistWisTitle=Toxicologue [Wis] diff --git a/SolastaUnfinishedBusiness/Translations/it/Feats/Crafty-it.txt b/SolastaUnfinishedBusiness/Translations/it/Feats/Crafty-it.txt index ec3dcdcf02..cd3481b340 100644 --- a/SolastaUnfinishedBusiness/Translations/it/Feats/Crafty-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/Feats/Crafty-it.txt @@ -1,18 +1,18 @@ -Feat/&FeatApothecaryChaDescription=Aumenta il tuo Carisma di 1, fino a un massimo di 20.\nOttieni competenza con kit di erboristeria e medicine o esperienza se già competente. +Feat/&FeatApothecaryChaDescription=Aumenta il tuo Carisma di 1, fino a un massimo di 20.\nOttieni competenza con il kit di erboristeria e la Medicina, o competenza se già competente. Feat/&FeatApothecaryChaTitle=Farmacista [Cha] -Feat/&FeatApothecaryIntDescription=Aumenta la tua Intelligenza di 1, fino a un massimo di 20.\nOttieni competenza con kit di erboristeria e medicine o competenza se già competente. +Feat/&FeatApothecaryIntDescription=Aumenta la tua Intelligenza di 1, fino a un massimo di 20.\nOttieni competenza con il kit di erboristeria e la medicina, o competenza se già competente. Feat/&FeatApothecaryIntTitle=Farmacista [Int] -Feat/&FeatApothecaryWisDescription=Aumenta la tua Saggezza di 1, fino a un massimo di 20.\nOttieni competenza con il kit di erboristeria e gli Arcani, o competenza se già competente. +Feat/&FeatApothecaryWisDescription=Aumenta la tua Saggezza di 1, fino a un massimo di 20.\nOttieni competenza con il kit di erboristeria e la Medicina, o competenza se già competente. Feat/&FeatApothecaryWisTitle=Farmacista [Sag] -Feat/&FeatArcanistDescription=Studi le arti arcane, ottenendo i seguenti benefici:\n• Aumenta la tua Intelligenza di 1, fino a un massimo di 20.\n• Ottieni competenza nelle abilità o competenze arcane se sei già competente.\n• Tu impara l'incantesimo Individuazione della magia. Puoi lanciare Individuazione della Magia una volta senza spendere uno slot incantesimo e riacquisti la capacità di farlo quando finisci un riposo lungo. +Feat/&FeatArcanistDescription=Studi le arti arcane, ottenendo i seguenti benefici:\n• Aumenta la tua Intelligenza di 1, fino a un massimo di 20.\n• Acquisisci competenza nelle abilità o competenze arcane se sei già competente.\n• Tu impara l'incantesimo Individuazione della magia. Puoi lanciare Individuazione della Magia una volta senza spendere uno slot incantesimo e riacquisti la capacità di farlo quando finisci un riposo lungo. Feat/&FeatArcanistTitle=Arcanista Feat/&FeatCraftyScriberDescription=Aumenta la tua Intelligenza di 1, fino a un massimo di 20.\nOttieni competenza con il kit di pergamene e gli Arcani o competenza se già competente. Feat/&FeatCraftyScriberTitle=Scribatore Feat/&FeatTheologianDescription=Il tuo studio approfondito della religione ti ricompensa con i seguenti vantaggi.\n• Aumenta la tua Intelligenza di 1, fino a un massimo di 20.\n• Ottieni competenza con abilità o competenze religiose se sei già competente.\n• Imparerai l'incantesimo Individuazione del Bene e del Male. Puoi lanciare Individuazione del Bene e del Male una volta senza spendere uno slot incantesimo e riacquisti l'abilità di farlo quando termini un riposo lungo. Feat/&FeatTheologianTitle=Teologo -Feat/&FeatToxicologistChaDescription=Aumenta il tuo Carisma di 1, fino a un massimo di 20.\nOttieni competenza con il kit da avvelenatore e Addestramento di animali, o esperienza se già competente. +Feat/&FeatToxicologistChaDescription=Aumenta il tuo Carisma di 1, fino a un massimo di 20.\nOttieni competenza con il kit dell'avvelenatore e la Natura, o competenza se già competente. Feat/&FeatToxicologistChaTitle=Tossicologo [Cha] Feat/&FeatToxicologistIntDescription=Aumenta la tua Intelligenza di 1, fino a un massimo di 20.\nOttieni competenza con il kit dell'avvelenatore e la Natura, o competenza se già competente. Feat/&FeatToxicologistIntTitle=Tossicologo [Int] -Feat/&FeatToxicologistWisDescription=Aumenta la tua Saggezza di 1, fino a un massimo di 20.\nOttieni competenza con il kit dell'avvelenatore e la Medicina, o competenza se già competente. +Feat/&FeatToxicologistWisDescription=Aumenta la tua Saggezza di 1, fino a un massimo di 20.\nOttieni competenza con il kit dell'avvelenatore e la Natura, o competenza se già competente. Feat/&FeatToxicologistWisTitle=Tossicologo [Saggio] diff --git a/SolastaUnfinishedBusiness/Translations/ja/Feats/Crafty-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/Feats/Crafty-ja.txt index 15dc53f269..1006489724 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/Feats/Crafty-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/Feats/Crafty-ja.txt @@ -1,8 +1,8 @@ -Feat/&FeatApothecaryChaDescription=カリスマ性を 1 増加させ、最大 20 まで高めます。\n薬草キットと薬の使用に習熟するか、すでに習熟している場合は専門知識を習得します。 +Feat/&FeatApothecaryChaDescription=カリスマ性を 1 増加させ、最大 20 まで高めます。\n薬草キットと薬の習熟度を獲得するか、すでに習熟している場合は専門知識を獲得します。 Feat/&FeatApothecaryChaTitle=薬屋[チャ] -Feat/&FeatApothecaryIntDescription=知力を 1 増加させ、最大 20 まで増やします。\n薬草キットと薬の使用に習熟するか、すでに習熟している場合は専門知識を習得します。 +Feat/&FeatApothecaryIntDescription=知能を 1 増加し、最大 20 になります。\n薬草キットと薬に関する熟練度を獲得します。すでに熟練している場合は専門知識を獲得します。 Feat/&FeatApothecaryIntTitle=アポセカリー[Int] -Feat/&FeatApothecaryWisDescription=知恵を 1 増やし、最大 20 にします。\n薬草キットと魔法に習熟するか、すでに習熟している場合は専門知識を得ます。 +Feat/&FeatApothecaryWisDescription=知恵を 1 増やし、最大 20 まで増やします。\n薬草キットと薬の習熟度を獲得するか、すでに習熟している場合は専門知識を獲得します。 Feat/&FeatApothecaryWisTitle=アポセカリー [ウィス] Feat/&FeatArcanistDescription=秘術を学ぶと、次のようなメリットが得られます。\n・知力が 1 増加し、最大 20 になります。\n・すでに熟練している場合は、アルカナのスキルまたは専門知識に習熟します。\n・あなたは、アルカナのスキルや専門知識に習熟します。ディテクトマジックの呪文を学びます。呪文スロットを消費せずに Detect Magic を 1 回唱えることができ、長い休息が終わるとその能力が回復します。 Feat/&FeatArcanistTitle=秘術師 @@ -10,9 +10,9 @@ Feat/&FeatCraftyScriberDescription=インテリジェンスを 1 増加させ、 Feat/&FeatCraftyScriberTitle=スクライバー Feat/&FeatTheologianDescription=宗教を幅広く学ぶと、次のようなメリットが得られます。\n・知力が 1 増加し、最大 20 になります。\n・すでに熟練している場合は、宗教のスキルや専門知識に習熟します。\n・あなたは「悪と善の探知」の呪文を学びます。呪文スロットを消費せずに Detect Evil と Good を 1 回唱えることができ、長い休息が終わるとその能力が回復します。 Feat/&FeatTheologianTitle=神学者 -Feat/&FeatToxicologistChaDescription=カリスマ性を 1 増加させ、最大 20 まで増加させます。\n毒殺者用キットと動物の取り扱いに関する習熟度、またはすでに習熟している場合は専門知識を獲得します。 +Feat/&FeatToxicologistChaDescription=カリスマ性が 1 増加し、最大 20 になります。\n毒殺キットと自然に関する習熟度が上がり、すでに習熟している場合は専門知識も得られます。 Feat/&FeatToxicologistChaTitle=毒物学者 [チャ] Feat/&FeatToxicologistIntDescription=インテリジェンスを 1 増加させ、最大 20 まで増加させます。\n毒殺キットと自然に関する熟練度を獲得するか、すでに熟練している場合は専門知識を獲得します。 Feat/&FeatToxicologistIntTitle=毒物学者 [Int] -Feat/&FeatToxicologistWisDescription=知恵を 1 増やし、最大 20 まで増やします。\n毒殺キットと薬の熟練度を獲得するか、すでに熟練している場合は専門知識を獲得します。 +Feat/&FeatToxicologistWisDescription=知恵を 1 増やして、最大 20 まで増やします。\n毒殺キットと自然に関する習熟度を獲得し、すでに習熟している場合は専門知識を獲得します。 Feat/&FeatToxicologistWisTitle=毒物学者 [ウィス] diff --git a/SolastaUnfinishedBusiness/Translations/ko/Feats/Crafty-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Feats/Crafty-ko.txt index b13aaf7384..8fa46f7fab 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Feats/Crafty-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Feats/Crafty-ko.txt @@ -1,18 +1,18 @@ -Feat/&FeatApothecaryChaDescription=매력을 1 올려 최대 20까지 높입니다.\n약초 제작 도구 및 의학에 대한 숙련도를 얻거나, 의학은 이미 숙련된 경우 전문성을 얻습니다. -Feat/&FeatApothecaryChaTitle=약종사 [매력] -Feat/&FeatApothecaryIntDescription=지능을 1 올려 최대 20까지 높입니다.\n약초 제작 도구 및 의학에 대한 숙련도를 얻거나, 의학은 이미 숙련된 경우 전문성을 얻습니다. -Feat/&FeatApothecaryIntTitle=약종상 [지능] -Feat/&FeatApothecaryWisDescription=지혜를 1 올려 최대 20까지 높입니다.\n약초 제작 도구 및 의학에 대한 숙련도를 얻거나, 의학은 이미 숙련된 경우 전문성을 얻습니다. -Feat/&FeatApothecaryWisTitle=약종상 [지혜] -Feat/&FeatArcanistDescription=당신은 비전술을 연구하여 다음과 같은 혜택을 얻습니다.\n• 지능을 1 올려 최대 20까지 높입니다.\n• 비전에 대한 숙련도를 얻거나, 이미 숙련된 경우 전문성을 얻습니다.\n• 마법 감지 주문을 배우세요. 주문 슬롯을 소모하지 않고 마법 감지를 한 번만 시전할 수 있으며, 긴 휴식을 취하면 해당 능력을 다시 얻습니다. +Feat/&FeatApothecaryChaDescription=카리스마를 1 올려 최대 20까지 높입니다.\n약초학 키트와 약품에 대한 숙련도를 얻거나, 이미 숙련된 경우 전문 지식을 얻습니다. +Feat/&FeatApothecaryChaTitle=약사 [차] +Feat/&FeatApothecaryIntDescription=지능이 1 증가하여 최대 20이 됩니다.\n약초학 키트 및 약품에 대한 숙련도를 얻거나, 이미 숙련된 경우 전문 지식을 얻습니다. +Feat/&FeatApothecaryIntTitle=연금술사 [Int] +Feat/&FeatApothecaryWisDescription=지혜가 1 증가하여 최대 20이 됩니다.\n약초학 키트 및 약품에 대한 숙련도를 얻거나 이미 숙련된 경우 전문 지식을 얻습니다. +Feat/&FeatApothecaryWisTitle=약사 [위스] +Feat/&FeatArcanistDescription=비전 예술을 연구하면 다음과 같은 이점을 얻을 수 있습니다.\n• 지능이 1 증가하여 최대 20이 됩니다.\n• 이미 능숙한 경우 신비 기술이나 전문 지식에 능숙해집니다.\n• 귀하 마법 감지 주문을 배우세요. 주문 슬롯을 소모하지 않고 마법 탐지를 한 번만 시전할 수 있으며, 긴 휴식을 취하면 해당 능력을 다시 얻습니다. Feat/&FeatArcanistTitle=비전술사 -Feat/&FeatCraftyScriberDescription=지능을 1 올려 최대 20까지 높입니다.\n두루마리 제작 도구와 비전에 대한 숙련도를 얻거나, 비전은 이미 숙련된 경우 전문성을 얻습니다. -Feat/&FeatCraftyScriberTitle=필경사 -Feat/&FeatTheologianDescription=종교에 대한 광범위한 연구를 통해 다음과 같은 혜택을 얻습니다.\n• 지능을 1 올려 최대 20까지 높입니다.\n• 종교에 대한 숙련도를 얻거나, 이미 숙련된 경우 전문성을 얻습니다.\n• 당신은 선악감지 주문을 배웁니다. 주문 슬롯을 소모하지 않고 선악감지를 한 번 시전할 수 있으며, 긴 휴식을 취하면 해당 능력을 다시 얻습니다. +Feat/&FeatCraftyScriberDescription=지능을 1 올려 최대 20까지 높이세요.\n두루마리 키트와 아르카나에 능숙해지거나, 이미 능숙하다면 전문 지식을 얻습니다. +Feat/&FeatCraftyScriberTitle=선침 +Feat/&FeatTheologianDescription=종교에 대한 광범위한 연구를 통해 다음과 같은 이점을 얻을 수 있습니다.\n• 지능이 1 증가하여 최대 20이 됩니다.\n• 이미 능숙한 경우 종교 기술이나 전문 지식에 능숙해집니다.\n• 당신은 Detect Evil and Good 주문을 배웁니다. 주문 슬롯을 소모하지 않고 Detect Evil and Good을 한 번 시전할 수 있으며, 긴 휴식을 마치면 그렇게 할 수 있는 능력을 다시 얻습니다. Feat/&FeatTheologianTitle=신학자 -Feat/&FeatToxicologistChaDescription=매력을 1 올려 최대 20까지 높입니다.\n독 제작 도구 및 자연에 대한 숙련도를 얻거나, 자연은 이미 숙련된 경우 전문성을 얻습니다. -Feat/&FeatToxicologistChaTitle=독성학자 [매력] -Feat/&FeatToxicologistIntDescription=지능을 1 올려 최대 20까지 높입니다.\n독 제작 도구 및 자연에 대한 숙련도를 얻거나, 자연은 이미 숙련된 경우 전문성을 얻습니다. -Feat/&FeatToxicologistIntTitle=독성학자 [지능] -Feat/&FeatToxicologistWisDescription=지혜를 1 올려 최대 20까지 높입니다.\n독 제작 도구 및 자연에 대한 숙련도를 얻거나, 자연은 이미 숙련된 경우 전문성을 얻습니다. -Feat/&FeatToxicologistWisTitle=독성학자 [지혜] +Feat/&FeatToxicologistChaDescription=카리스마를 1 증가시켜 최대 20까지 증가시킵니다.\n포이즌서 키트와 자연에 대한 숙련도를 얻거나, 이미 숙련된 경우 전문 지식을 얻습니다. +Feat/&FeatToxicologistChaTitle=독성학자 [차] +Feat/&FeatToxicologistIntDescription=지능이 1 증가하여 최대 20이 됩니다.\n포이즌서 키트 및 자연에 대한 숙련도를 얻거나, 이미 숙련된 경우 전문 지식을 얻습니다. +Feat/&FeatToxicologistIntTitle=독성학자 [Int] +Feat/&FeatToxicologistWisDescription=지혜가 1 증가하여 최대 20이 됩니다.\n독극물 키트와 자연에 대한 숙련도를 얻거나, 이미 숙련된 경우 전문 지식을 얻습니다. +Feat/&FeatToxicologistWisTitle=독성학자 [Wis] diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/Feats/Crafty-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/Feats/Crafty-pt-BR.txt index 0745d05512..533495b971 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/Feats/Crafty-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/Feats/Crafty-pt-BR.txt @@ -1,8 +1,8 @@ -Feat/&FeatApothecaryChaDescription=Aumente seu Carisma em 1, até um máximo de 20.\nVocê ganha proficiência com kit de fitoterapia e remédios, ou especialização se já for proficiente. +Feat/&FeatApothecaryChaDescription=Aumente seu Carisma em 1, até um máximo de 20.\nVocê ganha proficiência com kit de fitoterapia e medicina, ou especialização se já for proficiente. Feat/&FeatApothecaryChaTitle=Boticário [Cha] -Feat/&FeatApothecaryIntDescription=Aumente sua Inteligência em 1, até um máximo de 20.\nVocê ganha proficiência com kit de fitoterapia e remédios, ou especialização se já for proficiente. +Feat/&FeatApothecaryIntDescription=Aumente sua Inteligência em 1, até um máximo de 20.\nVocê ganha proficiência com kit de fitoterapia e medicina, ou especialização se já for proficiente. Feat/&FeatApothecaryIntTitle=Boticário [Int] -Feat/&FeatApothecaryWisDescription=Aumente sua Sabedoria em 1, até um máximo de 20.\nVocê ganha proficiência com kit de fitoterapia e Arcana, ou especialização se já for proficiente. +Feat/&FeatApothecaryWisDescription=Aumente sua Sabedoria em 1, até um máximo de 20.\nVocê ganha proficiência com kit de fitoterapia e Medicina, ou especialização se já for proficiente. Feat/&FeatApothecaryWisTitle=Boticário [Sab] Feat/&FeatArcanistDescription=Você estuda as artes arcanas, ganhando os seguintes benefícios:\n• Aumenta sua Inteligência em 1, até um máximo de 20.\n• Você ganha proficiência com habilidade ou especialização em Arcanos se já for proficiente.\n• Você aprenda o feitiço Detectar Magia. Você pode lançar Detectar Magia uma vez sem gastar um espaço de magia e recupera a habilidade de fazê-lo quando terminar um descanso longo. Feat/&FeatArcanistTitle=Arcanista @@ -10,9 +10,9 @@ Feat/&FeatCraftyScriberDescription=Aumente sua Inteligência em 1, até um máxi Feat/&FeatCraftyScriberTitle=Escriba Feat/&FeatTheologianDescription=Seu extenso estudo sobre religião recompensa você com os seguintes benefícios.\n• Aumente sua Inteligência em 1, até um máximo de 20.\n• Você ganha proficiência em habilidades ou conhecimentos religiosos se já for proficiente.\n• Você aprende o feitiço Detectar o Mal e o Bem. Você pode lançar Detectar o Mal e o Bem uma vez sem gastar um espaço de magia e recupera a habilidade de fazê-lo quando terminar um descanso longo. Feat/&FeatTheologianTitle=Teólogo -Feat/&FeatToxicologistChaDescription=Aumente seu Carisma em 1, até um máximo de 20.\nVocê ganha proficiência com kit de envenenamento e manejo de animais, ou especialização se já for proficiente. +Feat/&FeatToxicologistChaDescription=Aumente seu Carisma em 1, até um máximo de 20.\nVocê ganha proficiência com kit de envenenamento e Natureza, ou especialização se já for proficiente. Feat/&FeatToxicologistChaTitle=Toxicologista [Cha] Feat/&FeatToxicologistIntDescription=Aumente sua Inteligência em 1, até um máximo de 20.\nVocê ganha proficiência com kit de envenenamento e Natureza, ou especialização se já for proficiente. Feat/&FeatToxicologistIntTitle=Toxicologista [Int] -Feat/&FeatToxicologistWisDescription=Aumente sua Sabedoria em 1, até um máximo de 20.\nVocê ganha proficiência com kit de envenenamento e Medicina, ou especialização se já for proficiente. +Feat/&FeatToxicologistWisDescription=Aumente sua Sabedoria em 1, até um máximo de 20.\nVocê ganha proficiência com kit de envenenamento e Natureza, ou especialização se já for proficiente. Feat/&FeatToxicologistWisTitle=Toxicologista [Sab] From a3ee12aa2d05f4f64516eb1914473c6ecb0ac760 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 26 May 2024 11:28:07 -0700 Subject: [PATCH 15/35] fix metamagic triggers --- .../GameExtensions/RulesetActorExtensions.cs | 2 +- .../Interfaces/ITryAlterOutcomeAttack.cs | 26 +++++++++++++++---- .../CharacterActionSpendPowerPatcher.cs | 21 +++++++++++++-- .../GameLocationBattleManagerPatcher.cs | 16 ++++++++++++ .../Spells/SpellBuildersLevel03.cs | 5 ++++ .../Subclasses/Builders/MetamagicBuilders.cs | 3 +-- 6 files changed, 63 insertions(+), 10 deletions(-) diff --git a/SolastaUnfinishedBusiness/Api/GameExtensions/RulesetActorExtensions.cs b/SolastaUnfinishedBusiness/Api/GameExtensions/RulesetActorExtensions.cs index a72bbdc2e1..f19c71b2a8 100644 --- a/SolastaUnfinishedBusiness/Api/GameExtensions/RulesetActorExtensions.cs +++ b/SolastaUnfinishedBusiness/Api/GameExtensions/RulesetActorExtensions.cs @@ -52,8 +52,8 @@ private static List AllActiveDefinitions([CanBeNull] RulesetActo return list; } + // metamagic are handled in other locations list.AddRange(hero.trainedFeats); - list.AddRange(hero.trainedMetamagicOptions); list.AddRange(hero.trainedInvocations); list.AddRange(hero.trainedFightingStyles); diff --git a/SolastaUnfinishedBusiness/Interfaces/ITryAlterOutcomeAttack.cs b/SolastaUnfinishedBusiness/Interfaces/ITryAlterOutcomeAttack.cs index bd43fd767d..4dc382b311 100644 --- a/SolastaUnfinishedBusiness/Interfaces/ITryAlterOutcomeAttack.cs +++ b/SolastaUnfinishedBusiness/Interfaces/ITryAlterOutcomeAttack.cs @@ -24,12 +24,13 @@ internal static IEnumerable Handler( GameLocationCharacter defender, ActionModifier actionModifier) { - if (Gui.Battle == null) - { - yield break; - } + var locationCharacterService = ServiceRepository.GetService(); + var contenders = + (Gui.Battle?.AllContenders ?? + locationCharacterService.PartyCharacters.Union(locationCharacterService.GuestCharacters)) + .ToList(); - foreach (var unit in Gui.Battle.AllContenders + foreach (var unit in contenders .Where(u => u.RulesetCharacter is { IsDeadOrDyingOrUnconscious: false }) .ToList()) { @@ -39,6 +40,21 @@ internal static IEnumerable Handler( yield return feature.OnTryAlterOutcomeAttack( battleManager, action, attacker, defender, unit, actionModifier); } + + // supports metamagic use cases + var hero = unit.RulesetCharacter.GetOriginalHero(); + + if (hero == null) + { + continue; + } + + foreach (var feature in hero.TrainedMetamagicOptions + .SelectMany(metamagic => metamagic.GetAllSubFeaturesOfType())) + { + yield return feature.OnTryAlterOutcomeAttack( + battleManager, action, attacker, defender, unit, actionModifier); + } } } } diff --git a/SolastaUnfinishedBusiness/Patches/CharacterActionSpendPowerPatcher.cs b/SolastaUnfinishedBusiness/Patches/CharacterActionSpendPowerPatcher.cs index 893aa04342..93994052b4 100644 --- a/SolastaUnfinishedBusiness/Patches/CharacterActionSpendPowerPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/CharacterActionSpendPowerPatcher.cs @@ -1,5 +1,6 @@ using System.Collections; using System.Diagnostics.CodeAnalysis; +using System.Linq; using HarmonyLib; using JetBrains.Annotations; using SolastaUnfinishedBusiness.Api.GameExtensions; @@ -154,10 +155,26 @@ private static IEnumerator ExecuteImpl(CharacterActionSpendPower __instance) { var controller = actingCharacter.GetEffectControllerOrSelf(); - foreach (var magicalAttackBeforeHitConfirmedOnMe in controller.RulesetCharacter + foreach (var magicalAttackBeforeHitConfirmedOnEnemy in controller.RulesetCharacter .GetSubFeaturesByType()) { - yield return magicalAttackBeforeHitConfirmedOnMe.OnMagicEffectBeforeHitConfirmedOnEnemy( + yield return magicalAttackBeforeHitConfirmedOnEnemy.OnMagicEffectBeforeHitConfirmedOnEnemy( + battleManager, controller, target, actionModifier, + rulesetEffect, effectForms, i == 0, false); + } + + var hero = controller.RulesetCharacter.GetOriginalHero(); + + if (hero == null) + { + continue; + } + + foreach (var magicalAttackBeforeHitConfirmedOnEnemy in hero.TrainedMetamagicOptions + .SelectMany(metamagic => + metamagic.GetAllSubFeaturesOfType())) + { + yield return magicalAttackBeforeHitConfirmedOnEnemy.OnMagicEffectBeforeHitConfirmedOnEnemy( battleManager, controller, target, actionModifier, rulesetEffect, effectForms, i == 0, false); } diff --git a/SolastaUnfinishedBusiness/Patches/GameLocationBattleManagerPatcher.cs b/SolastaUnfinishedBusiness/Patches/GameLocationBattleManagerPatcher.cs index 53246e62a6..367703410a 100644 --- a/SolastaUnfinishedBusiness/Patches/GameLocationBattleManagerPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/GameLocationBattleManagerPatcher.cs @@ -776,6 +776,22 @@ public static IEnumerator Postfix( criticalHit); } + // supports metamagic use cases + var hero = controller.RulesetCharacter.GetOriginalHero(); + + if (hero != null) + { + foreach (var magicalAttackBeforeHitConfirmedOnEnemy in hero.TrainedMetamagicOptions + .SelectMany(metamagic => + metamagic.GetAllSubFeaturesOfType())) + { + yield return magicalAttackBeforeHitConfirmedOnEnemy.OnMagicEffectBeforeHitConfirmedOnEnemy( + __instance, controller, defender, magicModifier, rulesetEffect, actualEffectForms, + firstTarget, + criticalHit); + } + } + if (rulesetEffect is { SourceDefinition: SpellDefinition spellDefinition }) { //PATCH: illusionary spells against creatures with True Sight should automatically save diff --git a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel03.cs b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel03.cs index 6963bc139d..4fd3df699e 100644 --- a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel03.cs +++ b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel03.cs @@ -791,6 +791,11 @@ public IEnumerator OnMagicEffectFinishedByMe(CharacterActionMagicEffect action, } // don't use PowerNoCost here as it breaks the spell under MP + var rulesetEffect = implementationManager + .MyInstantiateEffectPower(rulesetAttacker, usablePower, false); + + rulesetEffect.MetamagicOption = action.ActionParams.activeEffect.MetamagicOption; + var actionParams = new CharacterActionParams(attacker, ActionDefinitions.Id.SpendPower) { ActionModifiers = actionModifiers, diff --git a/SolastaUnfinishedBusiness/Subclasses/Builders/MetamagicBuilders.cs b/SolastaUnfinishedBusiness/Subclasses/Builders/MetamagicBuilders.cs index e53069bff6..e06afbac9b 100644 --- a/SolastaUnfinishedBusiness/Subclasses/Builders/MetamagicBuilders.cs +++ b/SolastaUnfinishedBusiness/Subclasses/Builders/MetamagicBuilders.cs @@ -352,8 +352,7 @@ public IEnumerator OnMagicEffectBeforeHitConfirmedOnEnemy( bool firstTarget, bool criticalHit) { - if (rulesetEffect.MetamagicOption != metamagicOptionDefinition && - rulesetEffect.SourceDefinition.Name != "PowerBoomingStepExplode") + if (rulesetEffect.MetamagicOption != metamagicOptionDefinition) { yield break; } From c807aa00d2b06c22d52d682185856b1b2f6b7813 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 26 May 2024 11:53:13 -0700 Subject: [PATCH 16/35] fix Thunderstep spell to only allow optional allies within 5ft --- .../ChangelogHistory.txt | 1 + .../Spells/SpellBuildersLevel03.cs | 28 +++++++++++++++---- .../Subclasses/Builders/MetamagicBuilders.cs | 8 ++++-- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 3fb47c09ea..886a5d10e5 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -7,6 +7,7 @@ - fixed Gray, Ironborn, and Obsidian Dwarf subclasses missing normal and darkvision senses - fixed skills, tools, and expertise when granted from feats - fixed Thunderstep spell interaction with Transmuted metamagic +- fixed Thunderstep spell to only allow optional allies within 5ft - fixed Toxicologist feat to always grant Nature regardless of chosen attribute increase 1.5.97.10 - Os cães ladram e a caravana passa: diff --git a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel03.cs b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel03.cs index 4fd3df699e..4f9dc89147 100644 --- a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel03.cs +++ b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel03.cs @@ -770,10 +770,31 @@ internal static SpellDefinition BuildBoomingStep() } private sealed class CustomBehaviorBoomingStep(FeatureDefinitionPower powerExplode) - : IMagicEffectInitiatedByMe, IMagicEffectFinishedByMe + : IMagicEffectInitiatedByMe, IMagicEffectFinishedByMe, IFilterTargetingCharacter { private readonly List _targets = []; + public bool EnforceFullSelection => false; + + public bool IsValid(CursorLocationSelectTarget __instance, GameLocationCharacter target) + { + if (target.RulesetCharacter == null) + { + return false; + } + + var isValid = + target.RulesetCharacter is not RulesetCharacterEffectProxy && + __instance.ActionParams.ActingCharacter.IsWithinRange(target, 1); + + if (!isValid) + { + __instance.actionModifier.FailureFlags.Add("Tooltip/&MustBeWithin5ft"); + } + + return isValid; + } + public IEnumerator OnMagicEffectFinishedByMe(CharacterActionMagicEffect action, BaseDefinition baseDefinition) { var attacker = action.ActingCharacter; @@ -791,11 +812,6 @@ public IEnumerator OnMagicEffectFinishedByMe(CharacterActionMagicEffect action, } // don't use PowerNoCost here as it breaks the spell under MP - var rulesetEffect = implementationManager - .MyInstantiateEffectPower(rulesetAttacker, usablePower, false); - - rulesetEffect.MetamagicOption = action.ActionParams.activeEffect.MetamagicOption; - var actionParams = new CharacterActionParams(attacker, ActionDefinitions.Id.SpendPower) { ActionModifiers = actionModifiers, diff --git a/SolastaUnfinishedBusiness/Subclasses/Builders/MetamagicBuilders.cs b/SolastaUnfinishedBusiness/Subclasses/Builders/MetamagicBuilders.cs index e06afbac9b..bb87b93117 100644 --- a/SolastaUnfinishedBusiness/Subclasses/Builders/MetamagicBuilders.cs +++ b/SolastaUnfinishedBusiness/Subclasses/Builders/MetamagicBuilders.cs @@ -352,13 +352,15 @@ public IEnumerator OnMagicEffectBeforeHitConfirmedOnEnemy( bool firstTarget, bool criticalHit) { - if (rulesetEffect.MetamagicOption != metamagicOptionDefinition) + var rulesetAttacker = attacker.RulesetCharacter; + + if (rulesetEffect.MetamagicOption != metamagicOptionDefinition && + rulesetAttacker.SpellsCastByMe + .FirstOrDefault(x => x.SystemName == "BoomingStep")?.MetamagicOption != metamagicOptionDefinition) { yield break; } - var rulesetAttacker = attacker.RulesetCharacter; - if (!rulesetAttacker.HasConditionOfCategoryAndType( AttributeDefinitions.TagEffect, condition.Name)) { From 1d6db945c4f4c536418c32b5df4b267a6aa881fb Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 26 May 2024 12:51:12 -0700 Subject: [PATCH 17/35] fixed Martial Psi-Warrior force powered strike not triggering on ranged attacks --- SolastaUnfinishedBusiness/ChangelogHistory.txt | 1 + .../Subclasses/MartialForceKnight.cs | 9 ++------- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 886a5d10e5..f4212c9f09 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -5,6 +5,7 @@ - fixed Earthquake spell interaction with Widened metamagic - fixed Forge Cleric blessed metal not providing fire damage immunity - fixed Gray, Ironborn, and Obsidian Dwarf subclasses missing normal and darkvision senses +- fixed Martial Psi-Warrior force powered strike not triggering on ranged attacks - fixed skills, tools, and expertise when granted from feats - fixed Thunderstep spell interaction with Transmuted metamagic - fixed Thunderstep spell to only allow optional allies within 5ft diff --git a/SolastaUnfinishedBusiness/Subclasses/MartialForceKnight.cs b/SolastaUnfinishedBusiness/Subclasses/MartialForceKnight.cs index 9a06f87eaf..85cdaeaa05 100644 --- a/SolastaUnfinishedBusiness/Subclasses/MartialForceKnight.cs +++ b/SolastaUnfinishedBusiness/Subclasses/MartialForceKnight.cs @@ -64,13 +64,13 @@ public MartialForceKnight() .SetDamageDice(DieType.D6, 1) .SetSpecificDamageType(DamageTypeForce) .SetFrequencyLimit(FeatureLimitedUsage.OncePerTurn) + .SetAttackModeOnly() .SetImpactParticleReference( SpellDefinitions.ArcaneSword.EffectDescription.EffectParticleParameters.impactParticleReference) .AddToDB(); additionalDamageForcePoweredStrike.AddCustomSubFeatures( - new ModifyAdditionalDamagePoweredStrike(additionalDamageForcePoweredStrike), - ValidatorsRestrictedContext.IsWeaponOrUnarmedAttack); + new ModifyAdditionalDamagePoweredStrike(additionalDamageForcePoweredStrike)); var conditionForcePoweredStrike = ConditionDefinitionBuilder .Create($"Condition{Name}ForcePoweredStrike") @@ -627,11 +627,6 @@ public IEnumerator OnPhysicalAttackBeforeHitConfirmedOnEnemy( yield break; } - if (!ValidatorsWeapon.IsMelee(attackMode) && !ValidatorsWeapon.IsUnarmed(attackMode)) - { - yield break; - } - _considerTriggerPsionicAdept = true; attacker.UsedSpecialFeatures.TryAdd("ForcePoweredStrike", 0); From b30cd0907086939f3bf1373b2b8236dacb2e3ef0 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 26 May 2024 12:57:26 -0700 Subject: [PATCH 18/35] prefer SetAttackModeOnly() instead of ValidatorsRestrictedContext.IsWeaponOrUnarmedAttack --- .../AdditionalDamageBanishingSmite.json | 2 +- .../AdditionalDamageBlindingSmite.json | 2 +- .../AdditionalDamageEnsnaringStrike.json | 2 +- .../AdditionalDamageGambitDie.json | 2 +- .../AdditionalDamageGambitDieMelee.json | 2 +- ...dditionalDamageMartialForceKnightForcePoweredStrike.json | 2 +- .../AdditionalDamageSearingSmite.json | 2 +- .../AdditionalDamageStaggeringSmite.json | 2 +- .../AdditionalDamageWrathfulSmite.json | 2 +- SolastaUnfinishedBusiness/Models/FixesContext.cs | 4 ++-- SolastaUnfinishedBusiness/Spells/SpellBuildersLevel01.cs | 6 +++--- SolastaUnfinishedBusiness/Spells/SpellBuildersLevel03.cs | 3 +-- SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs | 3 +-- SolastaUnfinishedBusiness/Spells/SpellBuildersLevel05.cs | 5 ++--- .../Subclasses/Builders/GambitsBuilders.cs | 5 +++-- 15 files changed, 21 insertions(+), 23 deletions(-) diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageBanishingSmite.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageBanishingSmite.json index 4cc40d0f04..1b9c5d152f 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageBanishingSmite.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageBanishingSmite.json @@ -7,7 +7,7 @@ "otherSimilarAdditionalDamages": [], "triggerCondition": "AlwaysActive", "requiredProperty": "None", - "attackModeOnly": false, + "attackModeOnly": true, "attackOnly": false, "requiredTargetCondition": null, "requiredTargetSenseType": "Darkvision", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageBlindingSmite.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageBlindingSmite.json index c1d53c7c67..249aebab5e 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageBlindingSmite.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageBlindingSmite.json @@ -7,7 +7,7 @@ "otherSimilarAdditionalDamages": [], "triggerCondition": "AlwaysActive", "requiredProperty": "None", - "attackModeOnly": false, + "attackModeOnly": true, "attackOnly": false, "requiredTargetCondition": null, "requiredTargetSenseType": "Darkvision", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageEnsnaringStrike.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageEnsnaringStrike.json index 4eae1fbde8..2216117f96 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageEnsnaringStrike.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageEnsnaringStrike.json @@ -7,7 +7,7 @@ "otherSimilarAdditionalDamages": [], "triggerCondition": "AlwaysActive", "requiredProperty": "None", - "attackModeOnly": false, + "attackModeOnly": true, "attackOnly": false, "requiredTargetCondition": null, "requiredTargetSenseType": "Darkvision", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageGambitDie.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageGambitDie.json index e46faa34ff..e1faa616de 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageGambitDie.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageGambitDie.json @@ -7,7 +7,7 @@ "otherSimilarAdditionalDamages": [], "triggerCondition": "AlwaysActive", "requiredProperty": "None", - "attackModeOnly": false, + "attackModeOnly": true, "attackOnly": false, "requiredTargetCondition": null, "requiredTargetSenseType": "Darkvision", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageGambitDieMelee.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageGambitDieMelee.json index 711510cea1..f9190c319f 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageGambitDieMelee.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageGambitDieMelee.json @@ -7,7 +7,7 @@ "otherSimilarAdditionalDamages": [], "triggerCondition": "AlwaysActive", "requiredProperty": "None", - "attackModeOnly": false, + "attackModeOnly": true, "attackOnly": false, "requiredTargetCondition": null, "requiredTargetSenseType": "Darkvision", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageMartialForceKnightForcePoweredStrike.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageMartialForceKnightForcePoweredStrike.json index 5c6561e300..2c4c1e2597 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageMartialForceKnightForcePoweredStrike.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageMartialForceKnightForcePoweredStrike.json @@ -7,7 +7,7 @@ "otherSimilarAdditionalDamages": [], "triggerCondition": "AlwaysActive", "requiredProperty": "None", - "attackModeOnly": false, + "attackModeOnly": true, "attackOnly": false, "requiredTargetCondition": null, "requiredTargetSenseType": "Darkvision", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageSearingSmite.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageSearingSmite.json index 14f8855eee..28282e6073 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageSearingSmite.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageSearingSmite.json @@ -7,7 +7,7 @@ "otherSimilarAdditionalDamages": [], "triggerCondition": "AlwaysActive", "requiredProperty": "None", - "attackModeOnly": false, + "attackModeOnly": true, "attackOnly": false, "requiredTargetCondition": null, "requiredTargetSenseType": "Darkvision", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageStaggeringSmite.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageStaggeringSmite.json index 63fb8b9ccc..e6be9290b2 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageStaggeringSmite.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageStaggeringSmite.json @@ -7,7 +7,7 @@ "otherSimilarAdditionalDamages": [], "triggerCondition": "AlwaysActive", "requiredProperty": "None", - "attackModeOnly": false, + "attackModeOnly": true, "attackOnly": false, "requiredTargetCondition": null, "requiredTargetSenseType": "Darkvision", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageWrathfulSmite.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageWrathfulSmite.json index 0687541943..d0649a932d 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageWrathfulSmite.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageWrathfulSmite.json @@ -7,7 +7,7 @@ "otherSimilarAdditionalDamages": [], "triggerCondition": "AlwaysActive", "requiredProperty": "None", - "attackModeOnly": false, + "attackModeOnly": true, "attackOnly": false, "requiredTargetCondition": null, "requiredTargetSenseType": "Darkvision", diff --git a/SolastaUnfinishedBusiness/Models/FixesContext.cs b/SolastaUnfinishedBusiness/Models/FixesContext.cs index 8a9e118322..06e43417e2 100644 --- a/SolastaUnfinishedBusiness/Models/FixesContext.cs +++ b/SolastaUnfinishedBusiness/Models/FixesContext.cs @@ -319,10 +319,10 @@ private static void FixAdditionalDamageRestrictions() private static void FixAttackBuffsAffectingSpellDamage() { //BUGFIX: fix Branding Smite applying bonus damage to spells - AdditionalDamageBrandingSmite.AddCustomSubFeatures(ValidatorsRestrictedContext.IsWeaponOrUnarmedAttack); + AdditionalDamageBrandingSmite.attackModeOnly = true; //BUGFIX: fix Divine Favor applying bonus damage to spells - AdditionalDamageDivineFavor.AddCustomSubFeatures(ValidatorsRestrictedContext.IsWeaponOrUnarmedAttack); + AdditionalDamageDivineFavor.attackModeOnly = true; } private static void FixColorTables() diff --git a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel01.cs b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel01.cs index 9d703d073a..379f20cfb4 100644 --- a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel01.cs +++ b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel01.cs @@ -232,7 +232,7 @@ internal static SpellDefinition BuildEnsnaringStrike() .Create($"AdditionalDamage{NAME}") .SetGuiPresentation(NAME, Category.Spell) .SetNotificationTag(NAME) - .AddCustomSubFeatures(ValidatorsRestrictedContext.IsWeaponOrUnarmedAttack) + .SetAttackModeOnly() .SetDamageDice(DieType.D6, 0) .SetSavingThrowData( EffectDifficultyClassComputation.SpellCastingFeature, @@ -389,7 +389,7 @@ internal static SpellDefinition BuildSearingSmite() .Create($"AdditionalDamage{NAME}") .SetGuiPresentation(NAME, Category.Spell) .SetNotificationTag(NAME) - .AddCustomSubFeatures(ValidatorsRestrictedContext.IsWeaponOrUnarmedAttack) + .SetAttackModeOnly() .SetDamageDice(DieType.D6, 1) .SetSpecificDamageType(DamageTypeFire) .SetAdvancement(AdditionalDamageAdvancement.SlotLevel, 1) @@ -453,7 +453,7 @@ internal static SpellDefinition BuildWrathfulSmite() .Create($"AdditionalDamage{NAME}") .SetGuiPresentation(NAME, Category.Spell) .SetNotificationTag(NAME) - .AddCustomSubFeatures(ValidatorsRestrictedContext.IsWeaponOrUnarmedAttack) + .SetAttackModeOnly() .SetDamageDice(DieType.D6, 1) .SetSpecificDamageType(DamageTypePsychic) .SetAdvancement(AdditionalDamageAdvancement.SlotLevel, 1) diff --git a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel03.cs b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel03.cs index 4f9dc89147..b0fb3321d4 100644 --- a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel03.cs +++ b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel03.cs @@ -10,7 +10,6 @@ using SolastaUnfinishedBusiness.CustomUI; using SolastaUnfinishedBusiness.Interfaces; using SolastaUnfinishedBusiness.Properties; -using SolastaUnfinishedBusiness.Validators; using TA; using UnityEngine.AddressableAssets; using static RuleDefinitions; @@ -43,7 +42,7 @@ internal static SpellDefinition BuildBlindingSmite() .Create($"AdditionalDamage{NAME}") .SetGuiPresentation(NAME, Category.Spell) .SetNotificationTag(NAME) - .AddCustomSubFeatures(ValidatorsRestrictedContext.IsWeaponOrUnarmedAttack) + .SetAttackModeOnly() .SetDamageDice(DieType.D8, 3) .SetSpecificDamageType(DamageTypeRadiant) .SetSavingThrowData(EffectDifficultyClassComputation.SpellCastingFeature, EffectSavingThrowType.None) diff --git a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs index 12700b4cbb..5bdd71894c 100644 --- a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs +++ b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs @@ -8,7 +8,6 @@ using SolastaUnfinishedBusiness.CustomUI; using SolastaUnfinishedBusiness.Interfaces; using SolastaUnfinishedBusiness.Properties; -using SolastaUnfinishedBusiness.Validators; using UnityEngine.AddressableAssets; using static ActionDefinitions; using static RuleDefinitions; @@ -61,7 +60,7 @@ internal static SpellDefinition BuildStaggeringSmite() .Create($"AdditionalDamage{NAME}") .SetGuiPresentation(NAME, Category.Spell) .SetNotificationTag(NAME) - .AddCustomSubFeatures(ValidatorsRestrictedContext.IsWeaponOrUnarmedAttack) + .SetAttackModeOnly() .SetDamageDice(DieType.D6, 4) .SetSpecificDamageType(DamageTypePsychic) .SetSavingThrowData( diff --git a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel05.cs b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel05.cs index e6b9e2edcf..a26932404f 100644 --- a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel05.cs +++ b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel05.cs @@ -520,9 +520,8 @@ internal static SpellDefinition BuildBanishingSmite() .Create($"AdditionalDamage{NAME}") .SetGuiPresentation(NAME, Category.Spell) .SetNotificationTag(NAME) - .AddCustomSubFeatures( - ValidatorsRestrictedContext.IsWeaponOrUnarmedAttack, - new PhysicalAttackFinishedByMeBanishingSmite(conditionBanishingSmiteEnemy)) + .SetAttackModeOnly() + .AddCustomSubFeatures(new PhysicalAttackFinishedByMeBanishingSmite(conditionBanishingSmiteEnemy)) .SetDamageDice(DieType.D10, 5) .SetSpecificDamageType(DamageTypeForce) // doesn't follow the standard impact particle reference diff --git a/SolastaUnfinishedBusiness/Subclasses/Builders/GambitsBuilders.cs b/SolastaUnfinishedBusiness/Subclasses/Builders/GambitsBuilders.cs index db4ce14e77..f74e8b2ee6 100644 --- a/SolastaUnfinishedBusiness/Subclasses/Builders/GambitsBuilders.cs +++ b/SolastaUnfinishedBusiness/Subclasses/Builders/GambitsBuilders.cs @@ -73,11 +73,11 @@ internal static void BuildGambits() conditionName = MartialTactician.MarkDamagedByGambit }) .SetFrequencyLimit(FeatureLimitedUsage.None) + .SetAttackModeOnly() .AddToDB(); gambitDieDamage.AddCustomSubFeatures( - new ModifyAdditionalDamageGambitDieSize(gambitDieDamage), - ValidatorsRestrictedContext.IsWeaponOrUnarmedAttack); + new ModifyAdditionalDamageGambitDieSize(gambitDieDamage)); var gambitDieDamageMelee = FeatureDefinitionAdditionalDamageBuilder .Create("AdditionalDamageGambitDieMelee") @@ -92,6 +92,7 @@ internal static void BuildGambits() conditionName = MartialTactician.MarkDamagedByGambit }) .SetFrequencyLimit(FeatureLimitedUsage.None) + .SetAttackModeOnly() .AddToDB(); gambitDieDamageMelee.AddCustomSubFeatures( From 44fde58427fa244ba104c967e4601a5ed26b41f3 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 26 May 2024 14:22:47 -0700 Subject: [PATCH 19/35] refactor IModifyConcentrationAttribute into IRollSavingCheckInitiated --- .../IModifyConcentrationAttribute.cs | 10 -- .../Interfaces/IRollSavingCheckInitiated.cs | 14 ++ .../Patches/RulesetCharacterPatcher.cs | 146 ++++++++---------- .../Subclasses/CollegeOfWarDancer.cs | 41 ++++- 4 files changed, 113 insertions(+), 98 deletions(-) delete mode 100644 SolastaUnfinishedBusiness/Interfaces/IModifyConcentrationAttribute.cs create mode 100644 SolastaUnfinishedBusiness/Interfaces/IRollSavingCheckInitiated.cs diff --git a/SolastaUnfinishedBusiness/Interfaces/IModifyConcentrationAttribute.cs b/SolastaUnfinishedBusiness/Interfaces/IModifyConcentrationAttribute.cs deleted file mode 100644 index e161c6f03a..0000000000 --- a/SolastaUnfinishedBusiness/Interfaces/IModifyConcentrationAttribute.cs +++ /dev/null @@ -1,10 +0,0 @@ -using JetBrains.Annotations; - -namespace SolastaUnfinishedBusiness.Interfaces; - -public interface IModifyConcentrationAttribute -{ - public bool IsValid(RulesetActor rulesetActor); - - public string ConcentrationAttribute([UsedImplicitly] RulesetActor rulesetActor); -} diff --git a/SolastaUnfinishedBusiness/Interfaces/IRollSavingCheckInitiated.cs b/SolastaUnfinishedBusiness/Interfaces/IRollSavingCheckInitiated.cs new file mode 100644 index 0000000000..3163999d70 --- /dev/null +++ b/SolastaUnfinishedBusiness/Interfaces/IRollSavingCheckInitiated.cs @@ -0,0 +1,14 @@ +using JetBrains.Annotations; + +namespace SolastaUnfinishedBusiness.Interfaces; + +public interface IRollSavingCheckInitiated +{ + [UsedImplicitly] + public void OnRollSavingCheckInitiated( + RulesetCharacter defender, + int saveDC, + string damageType, + ref ActionModifier actionModifier, + ref int modifier); +} diff --git a/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs b/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs index f7f36aafa4..68518aa1d7 100644 --- a/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs @@ -1717,113 +1717,93 @@ public static void Postfix(RulesetCharacter __instance) [UsedImplicitly] public static class RollConcentrationCheck_Patch { - [UsedImplicitly] - public static IEnumerable Transpiler([NotNull] IEnumerable instructions) + private static int GetModifier( + RulesetCharacter __instance, + ActionModifier effectModifier, + string damageType, + string abilityScoreName) { - var myComputeBaseSavingThrowBonus = - new Func, int>(ComputeBaseSavingThrowBonus) - .Method; - - var myComputeSavingThrowModifier = - new Action, int>(ComputeSavingThrowModifier) - .Method; - - var myGetSavingThrowModifier = - new Func(GetSavingThrowModifier).Method; + var accountedProviders = new List(); + var savingThrowBonus = + __instance.ComputeBaseSavingThrowBonus(abilityScoreName, effectModifier.SavingThrowModifierTrends); - var computeBaseSavingThrowBonus = typeof(RulesetActor).GetMethod("ComputeBaseSavingThrowBonus"); - var computeSavingThrowModifier = typeof(RulesetActor).GetMethod("ComputeSavingThrowModifier"); - var getSavingThrowModifier = typeof(ActionModifier).GetMethod("GetSavingThrowModifier"); + __instance.ComputeSavingThrowModifier( + abilityScoreName, EffectForm.EffectFormType.Damage, string.Empty, + string.Empty, damageType, string.Empty, string.Empty, effectModifier, accountedProviders); - //PATCH: make ISpellCastingAffinityProvider from dynamic item properties apply to repertoires - return instructions - //PATCH: supports changing the concentration attribute score - .ReplaceCalls(computeBaseSavingThrowBonus, - "RulesetCharacter.RollConcentrationCheck.ComputeBaseSavingThrowBonus", - new CodeInstruction(OpCodes.Call, myComputeBaseSavingThrowBonus)) - .ReplaceCalls(computeSavingThrowModifier, - "RulesetCharacter.RollConcentrationCheck.ComputeSavingThrowModifier", - new CodeInstruction(OpCodes.Call, myComputeSavingThrowModifier)) - .ReplaceCalls(getSavingThrowModifier, - "RulesetCharacter.RollConcentrationCheck.GetSavingThrowModifier", - new CodeInstruction(OpCodes.Ldarg_0), - new CodeInstruction(OpCodes.Call, myGetSavingThrowModifier)) - //PATCH: allow modifiers from items to be considered on concentration checks - .ReplaceEnumerateFeaturesToBrowse( - "RulesetCharacter.RollConcentrationCheck.EnumerateSpellCastingAffinities", - EnumerateFeaturesFromItems); + return savingThrowBonus + effectModifier.GetSavingThrowModifier(abilityScoreName); } - private static void GetBestSavingThrowAbilityScore(RulesetActor rulesetActor, ref string attributeScore) + private static void RollConcentrationCheck( + RulesetCharacter __instance, + int saveDC, + string damageType, + out RollOutcome outcome) { - var savingThrowBonus = - AttributeDefinitions.ComputeAbilityScoreModifier( - rulesetActor.TryGetAttributeValue(attributeScore)) + - rulesetActor.ComputeBaseSavingThrowBonus(attributeScore, []); + var effectModifier = new ActionModifier(); + var modifier = GetModifier(__instance, effectModifier, damageType, AttributeDefinitions.Constitution); + + foreach (var rollSavingCheckInitiated in __instance.GetSubFeaturesByType()) + { + rollSavingCheckInitiated + .OnRollSavingCheckInitiated(__instance, saveDC, damageType, ref effectModifier, ref modifier); + } + + outcome = RollOutcome.Neutral; + + __instance.EnumerateFeaturesToBrowse( + __instance.FeaturesToBrowse, __instance.FeaturesOrigin); - foreach (var attribute in rulesetActor - .GetSubFeaturesByType() - .Where(x => x.IsValid(rulesetActor)) - .Select(x => x.ConcentrationAttribute(rulesetActor))) + foreach (var key in __instance.FeaturesToBrowse) { - var newSavingThrowBonus = - AttributeDefinitions.ComputeAbilityScoreModifier(rulesetActor.TryGetAttributeValue(attribute)) + - rulesetActor.ComputeBaseSavingThrowBonus(attribute, []); + var affinityProvider = key as ISpellCastingAffinityProvider; - // get the last one instead unless we start using this with other subs and then need to decide which one is better - if (newSavingThrowBonus <= savingThrowBonus) + if (affinityProvider is { ConcentrationAffinity: ConcentrationAffinity.CannotConcentrate }) { - continue; + outcome = RollOutcome.Failure; + break; } - attributeScore = attribute; - savingThrowBonus = newSavingThrowBonus; + if (affinityProvider is + { ConcentrationAffinity: ConcentrationAffinity.Advantage or ConcentrationAffinity.Disadvantage }) + { + effectModifier.SavingThrowAdvantageTrends.Add( + new TrendInfo( + affinityProvider.ConcentrationAffinity == ConcentrationAffinity.Advantage ? 1 : -1, + __instance.FeaturesOrigin[key].sourceType, __instance.FeaturesOrigin[key].sourceName, + __instance.FeaturesOrigin[key].source)); + } } - } - private static int ComputeBaseSavingThrowBonus( - RulesetActor __instance, - string abilityScoreName, - List savingThrowModifierTrends) - { - GetBestSavingThrowAbilityScore(__instance, ref abilityScoreName); + if (outcome == RollOutcome.Failure) + { + return; + } - return __instance.ComputeBaseSavingThrowBonus(abilityScoreName, savingThrowModifierTrends); - } + var rawRoll = __instance.RollDie(DieType.D20, RollContext.ConcentrationCheck, false, + ComputeAdvantage(effectModifier.SavingThrowAdvantageTrends), out _, out _); - private static void ComputeSavingThrowModifier( - RulesetActor __instance, - string abilityType, - EffectForm.EffectFormType formType, - string sourceName, - string schoolOfMagic, - string damageType, - string conditionType, - string sourceFamily, - ActionModifier effectModifier, - List accountedProviders, - int savingThrowContextField = 0) - { - GetBestSavingThrowAbilityScore(__instance, ref abilityType); + var totalRoll = rawRoll + modifier; - __instance.ComputeSavingThrowModifier(abilityType, formType, sourceName, schoolOfMagic, damageType, - conditionType, sourceFamily, effectModifier, accountedProviders, savingThrowContextField); + outcome = totalRoll < saveDC ? RollOutcome.Failure : RollOutcome.Success; + + __instance.ConcentrationCheckRolled?.Invoke(__instance, outcome, totalRoll, rawRoll, modifier, saveDC, + effectModifier.SavingThrowModifierTrends, effectModifier.SavingThrowAdvantageTrends); } - private static int GetSavingThrowModifier( - ActionModifier __instance, - string abilityType, - bool ignoreCover, - RulesetActor rulesetActor) + [UsedImplicitly] + public static bool Prefix( + RulesetCharacter __instance, + int saveDC, + string damageType, + out RollOutcome outcome) { - GetBestSavingThrowAbilityScore(rulesetActor, ref abilityType); + RollConcentrationCheck(__instance, saveDC, damageType, out outcome); - return __instance.GetSavingThrowModifier(abilityType, ignoreCover); + return false; } } - [HarmonyPatch(typeof(RulesetCharacter), nameof(RulesetCharacter.RollConcentrationCheckFromDamage))] [SuppressMessage("Minor Code Smell", "S101:Types should be named in PascalCase", Justification = "Patch")] [UsedImplicitly] diff --git a/SolastaUnfinishedBusiness/Subclasses/CollegeOfWarDancer.cs b/SolastaUnfinishedBusiness/Subclasses/CollegeOfWarDancer.cs index cca2a9f674..b4ff1f8d7b 100644 --- a/SolastaUnfinishedBusiness/Subclasses/CollegeOfWarDancer.cs +++ b/SolastaUnfinishedBusiness/Subclasses/CollegeOfWarDancer.cs @@ -390,16 +390,47 @@ private static int GetMomentumDiceNumber(RulesetCharacter character) } } - private sealed class FocusedWarDance : IModifyConcentrationAttribute + private sealed class FocusedWarDance : IRollSavingCheckInitiated { - public bool IsValid(RulesetActor rulesetActor) + public void OnRollSavingCheckInitiated( + RulesetCharacter defender, + int saveDC, + string damageType, + ref ActionModifier actionModifier, + ref int modifier) { - return rulesetActor.HasConditionOfCategoryAndType(AttributeDefinitions.TagEffect, ConditionWarDance.Name); + if (!defender.HasConditionOfCategoryAndType(AttributeDefinitions.TagEffect, ConditionWarDance.Name)) + { + return; + } + + var myActionModifier = new ActionModifier(); + var myModifier = GetModifier(defender, myActionModifier, damageType, AttributeDefinitions.Charisma); + + if (myModifier <= modifier) + { + return; + } + + modifier = myModifier; + actionModifier = myActionModifier; } - public string ConcentrationAttribute(RulesetActor rulesetActor) + private static int GetModifier( + RulesetCharacter __instance, + ActionModifier effectModifier, + string damageType, + string abilityScoreName) { - return AttributeDefinitions.Charisma; + var accountedProviders = new List(); + var savingThrowBonus = + __instance.ComputeBaseSavingThrowBonus(abilityScoreName, effectModifier.SavingThrowModifierTrends); + + __instance.ComputeSavingThrowModifier( + abilityScoreName, EffectForm.EffectFormType.Damage, string.Empty, + string.Empty, damageType, string.Empty, string.Empty, effectModifier, accountedProviders); + + return savingThrowBonus + effectModifier.GetSavingThrowModifier(abilityScoreName); } } } From 964b482455737173bdca560d044e12712f37ae88 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 26 May 2024 14:26:39 -0700 Subject: [PATCH 20/35] fix Wizard War Magic durable magic to add +2 on concentration checks --- .../ChangelogHistory.txt | 1 + .../Subclasses/WizardWarMagic.cs | 23 ++++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index f4212c9f09..8d682c0df6 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -10,6 +10,7 @@ - fixed Thunderstep spell interaction with Transmuted metamagic - fixed Thunderstep spell to only allow optional allies within 5ft - fixed Toxicologist feat to always grant Nature regardless of chosen attribute increase +- fixed Wizard War Magic durable magic to add +2 on concentration checks 1.5.97.10 - Os cães ladram e a caravana passa: diff --git a/SolastaUnfinishedBusiness/Subclasses/WizardWarMagic.cs b/SolastaUnfinishedBusiness/Subclasses/WizardWarMagic.cs index ad75b96b04..a41687a5ab 100644 --- a/SolastaUnfinishedBusiness/Subclasses/WizardWarMagic.cs +++ b/SolastaUnfinishedBusiness/Subclasses/WizardWarMagic.cs @@ -106,7 +106,7 @@ public WizardWarMagic() .SetSituationalContext(ExtraSituationalContext.IsConcentratingOnSpell) .AddToDB(); - featureDurableMagic.AddCustomSubFeatures(new RollSavingThrowInitiatedDurableMagic(featureDurableMagic)); + featureDurableMagic.AddCustomSubFeatures(new CustomBehaviorDurableMagic(featureDurableMagic)); // LEVEL 14 @@ -495,9 +495,26 @@ private void DamageReceived(RulesetActor target, int damage, string type, ulong } } - private sealed class RollSavingThrowInitiatedDurableMagic( - FeatureDefinition featureDurableMagic) : IRollSavingThrowInitiated + private sealed class CustomBehaviorDurableMagic( + FeatureDefinition featureDurableMagic) : IRollSavingThrowInitiated, IRollSavingCheckInitiated { + public void OnRollSavingCheckInitiated( + RulesetCharacter defender, + int saveDC, + string damageType, + ref ActionModifier actionModifier, + ref int modifier) + { + if (defender.ConcentratedSpell == null) + { + return; + } + + modifier += 2; + actionModifier.SavingThrowModifierTrends.Add( + new TrendInfo(2, FeatureSourceType.CharacterFeature, featureDurableMagic.Name, featureDurableMagic)); + } + public void OnSavingThrowInitiated( RulesetCharacter caster, RulesetCharacter defender, From 489b9388b2b771bcfc16abfbd46b1702365d6cac Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 26 May 2024 14:42:59 -0700 Subject: [PATCH 21/35] fix Ranger Fey Wanderer misty step to prevent a main levelled spell to be cast --- SolastaUnfinishedBusiness/ChangelogHistory.txt | 1 + SolastaUnfinishedBusiness/Subclasses/RangerFeyWanderer.cs | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 8d682c0df6..2d859fc021 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -6,6 +6,7 @@ - fixed Forge Cleric blessed metal not providing fire damage immunity - fixed Gray, Ironborn, and Obsidian Dwarf subclasses missing normal and darkvision senses - fixed Martial Psi-Warrior force powered strike not triggering on ranged attacks +- fixed Ranger Fey Wanderer misty step to prevent a main levelled spell to be cast - fixed skills, tools, and expertise when granted from feats - fixed Thunderstep spell interaction with Transmuted metamagic - fixed Thunderstep spell to only allow optional allies within 5ft diff --git a/SolastaUnfinishedBusiness/Subclasses/RangerFeyWanderer.cs b/SolastaUnfinishedBusiness/Subclasses/RangerFeyWanderer.cs index 2e5d09f697..093e5004e7 100644 --- a/SolastaUnfinishedBusiness/Subclasses/RangerFeyWanderer.cs +++ b/SolastaUnfinishedBusiness/Subclasses/RangerFeyWanderer.cs @@ -251,9 +251,9 @@ public void ModifyAdditionalDamage( private sealed class CustomBehaviorBeguilingTwist( FeatureDefinitionPower powerBeguilingTwist) - : IRollSavingThrowInitiated, ITryAlterOutcomeSavingThrow, IMagicEffectFinishedByMe + : IRollSavingThrowInitiated, ITryAlterOutcomeSavingThrow, IMagicEffectInitiatedByMe { - public IEnumerator OnMagicEffectFinishedByMe(CharacterActionMagicEffect action, BaseDefinition baseDefinition) + public IEnumerator OnMagicEffectInitiatedByMe(CharacterActionMagicEffect action, BaseDefinition baseDefinition) { action.ActingCharacter.UsedMainSpell = true; @@ -348,7 +348,7 @@ private static bool HasCharmedOrFrightened(List effectForms) } } - private sealed class CustomBehaviorMistyWanderer : IMagicEffectFinishedByMe, IFilterTargetingCharacter + private sealed class CustomBehaviorMistyWanderer : IMagicEffectInitiatedByMe, IFilterTargetingCharacter { public bool EnforceFullSelection => false; @@ -371,7 +371,7 @@ target.RulesetCharacter is not RulesetCharacterEffectProxy && return isValid; } - public IEnumerator OnMagicEffectFinishedByMe(CharacterActionMagicEffect action, BaseDefinition baseDefinition) + public IEnumerator OnMagicEffectInitiatedByMe(CharacterActionMagicEffect action, BaseDefinition baseDefinition) { action.ActingCharacter.UsedBonusSpell = true; From 0703fade9f580138a4002a01a022cd78fa92ef16 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 26 May 2024 17:58:41 -0700 Subject: [PATCH 22/35] fix Taunted condition to not enforce disadvantage against taunter --- .../ChangelogHistory.txt | 5 ++-- .../Models/CustomConditionsContext.cs | 24 +++++++++---------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 2d859fc021..0e5c05729e 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,6 +1,6 @@ 1.5.97.11: -- fixed Apothecary feat to always grant Medicine regardless of chosen attribute increase +- fixed Apothecary feat to always grant Medicine regardless of chosen attribute - fixed Arcane Backslash spell double caster animation effects - fixed Earthquake spell interaction with Widened metamagic - fixed Forge Cleric blessed metal not providing fire damage immunity @@ -8,9 +8,10 @@ - fixed Martial Psi-Warrior force powered strike not triggering on ranged attacks - fixed Ranger Fey Wanderer misty step to prevent a main levelled spell to be cast - fixed skills, tools, and expertise when granted from feats +- fixed Taunted condition to not enforce disadvantage against taunter - fixed Thunderstep spell interaction with Transmuted metamagic - fixed Thunderstep spell to only allow optional allies within 5ft -- fixed Toxicologist feat to always grant Nature regardless of chosen attribute increase +- fixed Toxicologist feat to always grant Nature regardless of chosen attribute - fixed Wizard War Magic durable magic to add +2 on concentration checks 1.5.97.10 - Os cães ladram e a caravana passa: diff --git a/SolastaUnfinishedBusiness/Models/CustomConditionsContext.cs b/SolastaUnfinishedBusiness/Models/CustomConditionsContext.cs index 83d2d4676c..c074cefeb6 100644 --- a/SolastaUnfinishedBusiness/Models/CustomConditionsContext.cs +++ b/SolastaUnfinishedBusiness/Models/CustomConditionsContext.cs @@ -62,7 +62,7 @@ internal static void Load() FeatureDefinitionActionAffinitys.ActionAffinityConditionRestrained) .AddToDB(); - Taunted = BuildTaunted(); + BuildTaunted(); } private static ConditionDefinition BuildLightSensitivity() @@ -97,17 +97,8 @@ private static ConditionDefinition BuildLightSensitivity() } - private static ConditionDefinition BuildTaunted() + private static void BuildTaunted() { - var combatAffinityTaunted = FeatureDefinitionCombatAffinityBuilder - .Create("CombatAffinityTaunted") - .SetGuiPresentation("ConditionTaunted", Category.Condition, Gui.NoLocalization) - .SetMyAttackAdvantage(AdvantageType.Disadvantage) - .SetSituationalContext(ExtraSituationalContext.IsNotConditionSource) - .AddToDB(); - - combatAffinityTaunted.requiredCondition = Taunted; - _taunter = ConditionDefinitionBuilder .Create("ConditionTaunter") .SetGuiPresentationNoContent(true) @@ -115,7 +106,14 @@ private static ConditionDefinition BuildTaunted() .AddCustomSubFeatures(new ActionFinishedByMeTaunter()) .AddToDB(); - return ConditionDefinitionBuilder + var combatAffinityTaunted = FeatureDefinitionCombatAffinityBuilder + .Create("CombatAffinityTaunted") + .SetGuiPresentation("ConditionTaunted", Category.Condition, Gui.NoLocalization) + .SetMyAttackAdvantage(AdvantageType.Disadvantage) + .SetSituationalContext(ExtraSituationalContext.IsNotConditionSource) + .AddToDB(); + + Taunted = ConditionDefinitionBuilder .Create("ConditionTaunted") .SetGuiPresentation(Category.Condition, ConditionDefinitions.ConditionConfused) .SetConditionType(ConditionType.Detrimental) @@ -124,6 +122,8 @@ private static ConditionDefinition BuildTaunted() .SetFeatures(combatAffinityTaunted) .AddCustomSubFeatures(new CustomBehaviorTaunted()) .AddToDB(); + + combatAffinityTaunted.requiredCondition = Taunted; } private static ConditionDefinition BuildFlightSuspended() From 5e7c0e8e608cd6654f22d6cedc706430cf351139 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 26 May 2024 18:44:53 -0700 Subject: [PATCH 23/35] fix Domain Forge blessed metal immunity and resistance logic --- .../ChangelogHistory.txt | 1 + .../Patches/RulesetActorPatcher.cs | 14 +++- .../Subclasses/DomainSmith.cs | 84 +++++-------------- 3 files changed, 32 insertions(+), 67 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 0e5c05729e..dcf62f36d2 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -2,6 +2,7 @@ - fixed Apothecary feat to always grant Medicine regardless of chosen attribute - fixed Arcane Backslash spell double caster animation effects +- fixed Domain Forge blessed metal immunity and resistance logic - fixed Earthquake spell interaction with Widened metamagic - fixed Forge Cleric blessed metal not providing fire damage immunity - fixed Gray, Ironborn, and Obsidian Dwarf subclasses missing normal and darkvision senses diff --git a/SolastaUnfinishedBusiness/Patches/RulesetActorPatcher.cs b/SolastaUnfinishedBusiness/Patches/RulesetActorPatcher.cs index febfb5266d..8900b66354 100644 --- a/SolastaUnfinishedBusiness/Patches/RulesetActorPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/RulesetActorPatcher.cs @@ -648,14 +648,22 @@ private static void EnumerateIDamageAffinityProvider( } } - //PATCH: add `IDamageAffinityProvider` from dynamic item properties - //fixes game not applying damage reductions from dynamic item properties - //used for Inventor's Resistant Armor infusions if (actor is not RulesetCharacterHero hero) { return; } + //PATCH: allow to remove damage affinities if necessary + var featuresActor = actor.GetSubFeaturesByType(); + + foreach (var feature in featuresActor) + { + feature.ModifyDamageAffinity(actor, caster, featuresToBrowse); + } + + //PATCH: add `IDamageAffinityProvider` from dynamic item properties + //fixes game not applying damage reductions from dynamic item properties + //used for Inventor's Resistant Armor infusions foreach (var equipedItem in hero.CharacterInventory.InventorySlotsByName .Select(keyValuePair => keyValuePair.Value) .Where(slot => slot.EquipedItem != null && !slot.Disabled && !slot.ConfigSlot) diff --git a/SolastaUnfinishedBusiness/Subclasses/DomainSmith.cs b/SolastaUnfinishedBusiness/Subclasses/DomainSmith.cs index bd11cf9ddb..ddddadbe32 100644 --- a/SolastaUnfinishedBusiness/Subclasses/DomainSmith.cs +++ b/SolastaUnfinishedBusiness/Subclasses/DomainSmith.cs @@ -1,6 +1,6 @@ -using System.Collections; -using System.Collections.Generic; +using System.Collections.Generic; using JetBrains.Annotations; +using SolastaUnfinishedBusiness.Api.GameExtensions; using SolastaUnfinishedBusiness.Behaviors; using SolastaUnfinishedBusiness.Builders; using SolastaUnfinishedBusiness.Builders.Features; @@ -312,21 +312,21 @@ public DomainSmith() .SetDamageAffinityType(DamageAffinityType.Resistance) .AddToDB(); - var conditionBlessedMetal = ConditionDefinitionBuilder - .Create($"Condition{NAME}BlessedMetal") - .SetGuiPresentationNoContent(true) - .SetSilent(Silent.WhenAddedOrRemoved) - .SetFeatures( + damageAffinityBlessedMetalFireImmunity.AddCustomSubFeatures( + new ModifyDamageAffinityBlessedMetal( damageAffinityBlessedMetalFireImmunity, damageAffinityBlessedMetalBludgeoningResistance, damageAffinityBlessedMetalPiercingResistance, - damageAffinityBlessedMetalSlashingResistance) - .AddToDB(); + damageAffinityBlessedMetalSlashingResistance)); - var featureBlessedMetal = FeatureDefinitionBuilder + var featureBlessedMetal = FeatureDefinitionFeatureSetBuilder .Create(BLESSED_METAL) .SetGuiPresentation(Category.Feature) - .AddCustomSubFeatures(new PhysicalAttackInitiatedOnMeBlessedMetal(conditionBlessedMetal)) + .SetFeatureSet( + damageAffinityBlessedMetalFireImmunity, + damageAffinityBlessedMetalBludgeoningResistance, + damageAffinityBlessedMetalPiercingResistance, + damageAffinityBlessedMetalSlashingResistance) .AddToDB(); // MAIN @@ -396,65 +396,21 @@ private static bool CanArmorBeReinforced(RulesetCharacter character, RulesetItem return !definition.Magical; } - private sealed class PhysicalAttackInitiatedOnMeBlessedMetal( - // ReSharper disable once SuggestBaseTypeForParameterInConstructor - ConditionDefinition conditionBlessedMetal) - : IPhysicalAttackBeforeHitConfirmedOnMe, IMagicEffectBeforeHitConfirmedOnMe + private sealed class ModifyDamageAffinityBlessedMetal( + params FeatureDefinitionDamageAffinity[] damageAffinities) : IModifyDamageAffinity { - public IEnumerator OnMagicEffectBeforeHitConfirmedOnMe( - GameLocationBattleManager battleManager, - GameLocationCharacter attacker, - GameLocationCharacter defender, - ActionModifier actionModifier, - RulesetEffect rulesetEffect, - List actualEffectForms, - bool firstTarget, - bool criticalHit) - { - MaybeAddCondition(defender); - - yield break; - } - - public IEnumerator OnPhysicalAttackBeforeHitConfirmedOnMe( - GameLocationBattleManager battleManager, - GameLocationCharacter attacker, - GameLocationCharacter defender, - ActionModifier actionModifier, - RulesetAttackMode attackMode, - bool rangedAttack, - AdvantageType advantageType, - List actualEffectForms, - bool firstTarget, - bool criticalHit) + public void ModifyDamageAffinity(RulesetActor defender, RulesetActor attacker, List features) { - MaybeAddCondition(defender); - - yield break; - } - - private void MaybeAddCondition(GameLocationCharacter defender) - { - var rulesetDefender = defender.RulesetCharacter; - - if (!defender.RulesetCharacter.IsWearingArmor()) + if (defender is RulesetCharacter rulesetCharacter && + rulesetCharacter.IsWearingArmor()) { return; } - rulesetDefender.InflictCondition( - conditionBlessedMetal.Name, - DurationType.Round, - 0, - TurnOccurenceType.EndOfTurn, - AttributeDefinitions.TagEffect, - rulesetDefender.guid, - rulesetDefender.CurrentFaction.Name, - 1, - conditionBlessedMetal.Name, - 0, - 0, - 0); + foreach (var damageAffinity in damageAffinities) + { + features.Remove(damageAffinity); + } } } } From a99f76fb7744548cecc3d1dfc14b4ab4e6eb8a0e Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 26 May 2024 18:48:24 -0700 Subject: [PATCH 24/35] tweak changelog --- SolastaUnfinishedBusiness/ChangelogHistory.txt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index dcf62f36d2..3d2d76a464 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,10 +1,8 @@ 1.5.97.11: -- fixed Apothecary feat to always grant Medicine regardless of chosen attribute -- fixed Arcane Backslash spell double caster animation effects +- fixed Apothecary feat to grant Medicine regardless of chosen attribute - fixed Domain Forge blessed metal immunity and resistance logic - fixed Earthquake spell interaction with Widened metamagic -- fixed Forge Cleric blessed metal not providing fire damage immunity - fixed Gray, Ironborn, and Obsidian Dwarf subclasses missing normal and darkvision senses - fixed Martial Psi-Warrior force powered strike not triggering on ranged attacks - fixed Ranger Fey Wanderer misty step to prevent a main levelled spell to be cast @@ -12,7 +10,7 @@ - fixed Taunted condition to not enforce disadvantage against taunter - fixed Thunderstep spell interaction with Transmuted metamagic - fixed Thunderstep spell to only allow optional allies within 5ft -- fixed Toxicologist feat to always grant Nature regardless of chosen attribute +- fixed Toxicologist feat to grant Nature regardless of chosen attribute - fixed Wizard War Magic durable magic to add +2 on concentration checks 1.5.97.10 - Os cães ladram e a caravana passa: From 0d07ff7eaf0c2c21990ec12999c117354104776d Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 26 May 2024 20:08:08 -0700 Subject: [PATCH 25/35] fix Chain Lightning to not consider allies or unperceived enemies --- SolastaUnfinishedBusiness/ChangelogHistory.txt | 1 + .../Patches/GameLocationTargetingManagerPatcher.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 3d2d76a464..f080ba3dfb 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,6 +1,7 @@ 1.5.97.11: - fixed Apothecary feat to grant Medicine regardless of chosen attribute +- fixed Chain Lightning to not consider allies or unperceived enemies - fixed Domain Forge blessed metal immunity and resistance logic - fixed Earthquake spell interaction with Widened metamagic - fixed Gray, Ironborn, and Obsidian Dwarf subclasses missing normal and darkvision senses diff --git a/SolastaUnfinishedBusiness/Patches/GameLocationTargetingManagerPatcher.cs b/SolastaUnfinishedBusiness/Patches/GameLocationTargetingManagerPatcher.cs index 333f8ce1fa..60f4a93da1 100644 --- a/SolastaUnfinishedBusiness/Patches/GameLocationTargetingManagerPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/GameLocationTargetingManagerPatcher.cs @@ -230,6 +230,7 @@ private static void ComputeAndSortSubtargets( if (validEntity != mainTarget && //BEGIN PATCH caster.CanPerceiveTarget(validEntity) && + caster.IsOppositeSide(validEntity.Side) && //END PATCH battleService.IsWithinXCells(mainTarget, validEntity, range)) { From 4fe7aff1d17e84bd6d0fba79904b267ff97984b4 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 26 May 2024 20:29:39 -0700 Subject: [PATCH 26/35] fix Gravity Sinkhole spell movement to effect origin --- .../SpellDefinition/GravitySinkhole.json | 2 +- SolastaUnfinishedBusiness/ChangelogHistory.txt | 1 + SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/GravitySinkhole.json b/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/GravitySinkhole.json index aef0909c25..98487b795d 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/GravitySinkhole.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/GravitySinkhole.json @@ -91,7 +91,7 @@ "motionForm": { "$type": "MotionForm, Assembly-CSharp", "type": "DragToOrigin", - "distance": 4, + "distance": 3, "forceTurnTowardsSourceCharacterAfterPush": false, "forceSourceCharacterTurnTowardsTargetAfterPush": false }, diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index f080ba3dfb..330b4afaef 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -4,6 +4,7 @@ - fixed Chain Lightning to not consider allies or unperceived enemies - fixed Domain Forge blessed metal immunity and resistance logic - fixed Earthquake spell interaction with Widened metamagic +- fixed Gravity Sinkhole spell movement to effect origin - fixed Gray, Ironborn, and Obsidian Dwarf subclasses missing normal and darkvision senses - fixed Martial Psi-Warrior force powered strike not triggering on ranged attacks - fixed Ranger Fey Wanderer misty step to prevent a main levelled spell to be cast diff --git a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs index 5bdd71894c..e3695d56b7 100644 --- a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs +++ b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs @@ -198,7 +198,7 @@ internal static SpellDefinition BuildGravitySinkhole() .SetEffectForms( EffectFormBuilder .Create() - .SetMotionForm(MotionForm.MotionType.DragToOrigin, 4) + .SetMotionForm(MotionForm.MotionType.DragToOrigin, 3) .HasSavingThrow(EffectSavingThrowType.Negates) .Build(), EffectFormBuilder From 5af3a19320ec0de2c18995fc795dedbd5e4af6b9 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 26 May 2024 20:29:56 -0700 Subject: [PATCH 27/35] update diagnostics --- .../UnfinishedBusinessBlueprints/Assets.txt | 4 +- .../ConditionDomainSmithBlessedMetal.json | 160 ------------------ .../CombatAffinityTaunted.json | 2 +- .../FeatureDomainSmithBlessedMetal.json | 15 +- 4 files changed, 17 insertions(+), 164 deletions(-) delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionDomainSmithBlessedMetal.json rename Diagnostics/UnfinishedBusinessBlueprints/{FeatureDefinition => FeatureDefinitionFeatureSet}/FeatureDomainSmithBlessedMetal.json (54%) diff --git a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt index 0de078ad40..50ed6801f0 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt +++ b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt @@ -662,7 +662,6 @@ ConditionDomainNatureDamageLightning ConditionDefinition ConditionDefinition d9f ConditionDomainNatureDamageThunder ConditionDefinition ConditionDefinition 771c3606-3167-5c3a-b43c-5c55205c08d7 ConditionDomainNatureDampenElements ConditionDefinition ConditionDefinition 2088c050-0d45-52be-a33f-ccf430c51aaa ConditionDomainSmithAdamantBenediction ConditionDefinition ConditionDefinition 1f2c6121-c970-5a0e-911a-aa4711365b7f -ConditionDomainSmithBlessedMetal ConditionDefinition ConditionDefinition 9de7e46c-a555-5f57-8486-cb79d57ab59a ConditionDraconicTransformation ConditionDefinition ConditionDefinition 197dd005-8ebf-51c9-a706-fbc7d16798c8 ConditionDraconicTransformationMark ConditionDefinition ConditionDefinition 479e53c2-73ef-5fc3-8acc-7577e597972d ConditionDragonWings ConditionDefinition ConditionDefinition d8583f8f-2243-5114-8b42-c2bc1e855b6a @@ -2144,7 +2143,7 @@ FeatureCrystalWyrmkinHardScales FeatureDefinition FeatureDefinition 6b38a03a-45b FeatureDomainDefilerInsidiousDeathMagic FeatureDefinition FeatureDefinition 5474f82c-c10e-5694-af52-5a3f797685a7 FeatureDomainLawFinalWord FeatureDefinition FeatureDefinition 6aa45f46-f2b3-5ac0-8174-cd175d6a3706 FeatureDomainOblivionKeeperOfOblivion FeatureDefinition FeatureDefinition 32c09e1c-09e8-5f6f-9669-aa311c37b5a7 -FeatureDomainSmithBlessedMetal FeatureDefinition FeatureDefinition af616884-6e4e-54ea-93ec-6e13d7e5a730 +FeatureDomainSmithBlessedMetal FeatureDefinitionFeatureSet FeatureDefinition af616884-6e4e-54ea-93ec-6e13d7e5a730 FeatureDomainSunRisingDawn FeatureDefinition FeatureDefinition e0364f87-c1d7-559b-b655-4385b5266dcf FeatureDruidBeastSpells FeatureDefinition FeatureDefinition a5f5e743-c777-5fb0-a3c4-0e62fc31724b FeatureEldritchVersatilityBattlefieldShorthand FeatureDefinition FeatureDefinition d19ee64d-b066-5114-9db8-c91b32f37614 @@ -4973,6 +4972,7 @@ EquipmentAffinityWendigoPowerfulBuild FeatureDefinitionEquipmentAffinity Feature AdditionalDamageSorcerousSpellBladeWarSorcerer FeatureDefinitionFeatureSet FeatureDefinitionFeatureSet 52bfbcf6-aeb3-515d-9228-3611fa4e9d2a DamageAffinityOligathHotBlooded FeatureDefinitionFeatureSet FeatureDefinitionFeatureSet 49794b8d-bffb-5cdc-8d10-54789fb7ebce FeatureCircleOfTheCosmosNovaStar FeatureDefinitionFeatureSet FeatureDefinitionFeatureSet 1fa028a2-7e42-5138-a524-885b1eabc967 +FeatureDomainSmithBlessedMetal FeatureDefinitionFeatureSet FeatureDefinitionFeatureSet af616884-6e4e-54ea-93ec-6e13d7e5a730 FeatureImproviseStrategy FeatureDefinitionFeatureSet FeatureDefinitionFeatureSet 619b0594-2816-595d-a7fc-8656266ac307 FeatureSefTacticianStrategicPlan FeatureDefinitionFeatureSet FeatureDefinitionFeatureSet adb9d7d1-a30b-5c04-9663-771cc4ac75ea FeatureSetBarbarianBrutalStrike FeatureDefinitionFeatureSet FeatureDefinitionFeatureSet ccb473c1-f41a-5b83-b3d5-ad855f195e15 diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionDomainSmithBlessedMetal.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionDomainSmithBlessedMetal.json deleted file mode 100644 index 0f8ba24610..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionDomainSmithBlessedMetal.json +++ /dev/null @@ -1,160 +0,0 @@ -{ - "$type": "ConditionDefinition, Assembly-CSharp", - "inDungeonEditor": false, - "parentCondition": null, - "conditionType": "Beneficial", - "features": [ - "Definition:DamageAffinityDomainSmithBlessedMetalBludgeoningResistance:e77a53c4-08c2-59e8-a451-2e70a57654a6", - "Definition:DamageAffinityDomainSmithBlessedMetalFireImmunity:55f1c83e-cad6-555d-9c81-18ce1fa1d16b", - "Definition:DamageAffinityDomainSmithBlessedMetalPiercingResistance:81cdcfab-9f06-5277-8058-46ba83c50540", - "Definition:DamageAffinityDomainSmithBlessedMetalSlashingResistance:13450c00-a95f-5da4-9849-6af75c643590" - ], - "allowMultipleInstances": false, - "silentWhenAdded": true, - "silentWhenRemoved": true, - "silentWhenRefreshed": false, - "terminateWhenRemoved": false, - "specialDuration": false, - "durationType": "Hour", - "durationParameterDie": "D4", - "durationParameter": 1, - "forceTurnOccurence": false, - "turnOccurence": "EndOfTurn", - "specialInterruptions": [], - "interruptionRequiresSavingThrow": false, - "interruptionSavingThrowComputationMethod": "SaveOverride", - "interruptionSavingThrowAbility": "", - "interruptionDamageThreshold": 0, - "keepConditionIfSavingThrowSucceeds": false, - "interruptionSavingThrowAffinity": "None", - "conditionTags": [], - "recurrentEffectForms": [], - "cancellingConditions": [], - "additionalDamageWhenHit": false, - "additionalDamageTypeDetermination": "Specific", - "additionalDamageType": "", - "additionalDamageQuantity": "AbilityBonus", - "additionalDamageDieType": "D1", - "additionalDamageDieNumber": 1, - "additionalConditionWhenHit": false, - "additionalCondition": null, - "additionalConditionDurationType": "Round", - "additionalConditionDurationParameter": 1, - "additionalConditionTurnOccurenceType": "StartOfTurn", - "conditionStartParticleReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "conditionParticleReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "conditionEndParticleReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "recurrentEffectParticleReference": null, - "characterShaderReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "particlesBasedOnAncestryDamageType": false, - "ancestryType": "Sorcerer", - "acidParticleParameters": null, - "coldParticleParameters": null, - "fireParticleParameters": null, - "lightningParticleParameters": null, - "poisonParticleParameters": null, - "overrideCharacterShaderColors": false, - "firstCharacterShaderColor": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 0.0, - "g": 0.0, - "b": 0.0, - "a": 0.0 - }, - "secondCharacterShaderColor": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 0.0, - "g": 0.0, - "b": 0.0, - "a": 0.0 - }, - "timeToWaitBeforeApplyingShader": 0.5, - "timeToWaitBeforeRemovingShader": 0.5, - "possessive": false, - "amountOrigin": "None", - "baseAmount": 0, - "additiveAmount": false, - "sourceAbilityBonusMinValue": 1, - "subsequentOnRemoval": null, - "subsequentHasSavingThrow": false, - "subsequentSavingThrowAbilityScore": "Constitution", - "subsequentVariableForDC": "FrenzyExhaustionDC", - "subsequentDCIncrease": 5, - "effectFormsOnRemoved": [], - "forceBehavior": false, - "addBehavior": false, - "fearSource": false, - "battlePackage": null, - "explorationPackage": null, - "removedFromTheGame": false, - "permanentlyRemovedIfExtraPlanar": false, - "refundReceivedDamageWhenRemoved": false, - "followSourcePosition": false, - "disolveCharacterOnDeath": false, - "disolveParameters": { - "$type": "GraphicsCharacterDefinitions+DisolveParameters, Assembly-CSharp", - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 0.0, - "g": 0.0, - "b": 0.0, - "a": 0.0 - }, - "colorWidth": 0.0, - "noiseScale": 5.0, - "hueScale": 0.0, - "vertexOffset": 0.0, - "curve": { - "$type": "UnityEngine.AnimationCurve, UnityEngine.CoreModule" - }, - "startAfterDeathAnimation": false, - "duration": 0.0 - }, - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "9de7e46c-a555-5f57-8486-cb79d57ab59a", - "contentPack": 9999, - "name": "ConditionDomainSmithBlessedMetal" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCombatAffinity/CombatAffinityTaunted.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCombatAffinity/CombatAffinityTaunted.json index f92662e81a..0d2d245d94 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCombatAffinity/CombatAffinityTaunted.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCombatAffinity/CombatAffinityTaunted.json @@ -22,7 +22,7 @@ "myDamageReductionDiceNumber": 1, "myDamageReductionDieType": "D4", "situationalContext": 9013, - "requiredCondition": null, + "requiredCondition": "Definition:ConditionTaunted:4684284a-a3b2-54f9-9b40-0badf8e95081", "nullifiedBySenses": [], "nullifiedBySelfSenses": [], "multiAttackAffinity": false, diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinition/FeatureDomainSmithBlessedMetal.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionFeatureSet/FeatureDomainSmithBlessedMetal.json similarity index 54% rename from Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinition/FeatureDomainSmithBlessedMetal.json rename to Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionFeatureSet/FeatureDomainSmithBlessedMetal.json index fc703e8e59..93f1d918e3 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinition/FeatureDomainSmithBlessedMetal.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionFeatureSet/FeatureDomainSmithBlessedMetal.json @@ -1,5 +1,18 @@ { - "$type": "FeatureDefinition, Assembly-CSharp", + "$type": "FeatureDefinitionFeatureSet, Assembly-CSharp", + "featureSet": [ + "Definition:DamageAffinityDomainSmithBlessedMetalFireImmunity:55f1c83e-cad6-555d-9c81-18ce1fa1d16b", + "Definition:DamageAffinityDomainSmithBlessedMetalBludgeoningResistance:e77a53c4-08c2-59e8-a451-2e70a57654a6", + "Definition:DamageAffinityDomainSmithBlessedMetalPiercingResistance:81cdcfab-9f06-5277-8058-46ba83c50540", + "Definition:DamageAffinityDomainSmithBlessedMetalSlashingResistance:13450c00-a95f-5da4-9849-6af75c643590" + ], + "mode": "Union", + "ancestryDamageTypeMap": [], + "ancestryType": "Sorcerer", + "defaultSelection": 0, + "uniqueChoices": false, + "enumerateInDescription": false, + "hasRacialAffinity": false, "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", "hidden": false, From 7696522b799d1c62a7d4e63c91e8dd90be47a4e3 Mon Sep 17 00:00:00 2001 From: zxcvbnm61004 Date: Mon, 27 May 2024 20:05:55 +0800 Subject: [PATCH 28/35] Update Crafty-zh-CN.txt Signed-off-by: zxcvbnm61004 --- .../Translations/zh-CN/Feats/Crafty-zh-CN.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/Feats/Crafty-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/Feats/Crafty-zh-CN.txt index f6185de4d8..e2d7cc876b 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/Feats/Crafty-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/Feats/Crafty-zh-CN.txt @@ -1,8 +1,8 @@ -Feat/&FeatApothecaryChaDescription=你的魅力 +1,上限为 20。\n你获得草药工具和奥秘熟练项,如果已有熟练项,则获得专精。 +Feat/&FeatApothecaryChaDescription=你的魅力 +1,上限为 20。\n你获得草药工具和医药熟练项,如果已有熟练项,则获得专精。 Feat/&FeatApothecaryChaTitle=药剂师【魅力】 -Feat/&FeatApothecaryIntDescription=你的智力 +1,上限为 20。\n你获得草药工具和奥秘熟练项,如果已有熟练项,则获得专精。 +Feat/&FeatApothecaryIntDescription=你的智力 +1,上限为 20。\n你获得草药工具和医药熟练项,如果已有熟练项,则获得专精。 Feat/&FeatApothecaryIntTitle=药剂师【智力】 -Feat/&FeatApothecaryWisDescription=你的感知 +1,上限为 20。\n你获得草药工具和奥秘熟练项,如果已有熟练项,则获得专精。 +Feat/&FeatApothecaryWisDescription=你的感知 +1,上限为 20。\n你获得草药工具和医药熟练项,如果已有熟练项,则获得专精。 Feat/&FeatApothecaryWisTitle=药剂师【感知】 Feat/&FeatArcanistDescription=你学习奥术艺术,获得以下好处:\n• 你的智力 +1,上限为 20。\n• 你获得奥秘熟练项,如果已有熟练项,则获得专精。\n• 你学会探测魔法咒语。你可以在不消耗法术位的情况下施放一次 侦测魔法,并且在完成长休后你将重新获得这样做的能力。 Feat/&FeatArcanistTitle=奥术师 From 523c5fcf5407eac5b6323330ed4c5a5f77187e2a Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Mon, 27 May 2024 08:42:06 -0700 Subject: [PATCH 29/35] fix skills or expertise --- .../UnfinishedBusinessBlueprints/Assets.txt | 32 ----- .../FeatDefinition/FeatAcrobat.json | 3 +- .../FeatDefinition/FeatApothecaryCha.json | 4 +- .../FeatDefinition/FeatApothecaryInt.json | 4 +- .../FeatDefinition/FeatApothecaryWis.json | 4 +- .../FeatDefinition/FeatArcanist.json | 3 +- .../FeatDefinition/FeatAthleteDex.json | 3 +- .../FeatDefinition/FeatAthleteStr.json | 3 +- .../FeatDefinition/FeatCraftyScriber.json | 4 +- .../FeatDefinition/FeatHealer.json | 1 + .../FeatDefinition/FeatPickPocket.json | 3 +- .../FeatDefinition/FeatStealthy.json | 3 +- .../FeatDefinition/FeatTheologian.json | 3 +- .../FeatDefinition/FeatToxicologistCha.json | 4 +- .../FeatDefinition/FeatToxicologistInt.json | 4 +- .../FeatDefinition/FeatToxicologistWis.json | 4 +- .../FeatMenacing.json | 3 +- .../FeatPoisoner.json | 3 +- .../ProficiencyAthlete.json | 2 +- .../ProficiencyAthleteExpertise.json | 35 ----- .../ProficiencyCraftyAnimalHandling.json | 35 ----- ...ficiencyCraftyAnimalHandlingExpertise.json | 35 ----- .../ProficiencyCraftyArcana.json | 2 +- .../ProficiencyCraftyArcanaExpertise.json | 35 ----- .../ProficiencyCraftyHerbalismKit.json | 2 +- ...roficiencyCraftyHerbalismKitExpertise.json | 35 ----- .../ProficiencyCraftyMedicine.json | 2 +- .../ProficiencyCraftyMedicineExpertise.json | 35 ----- .../ProficiencyCraftyNature.json | 2 +- .../ProficiencyCraftyNatureExpertise.json | 35 ----- .../ProficiencyCraftyPoisonersKit.json | 2 +- ...roficiencyCraftyPoisonersKitExpertise.json | 35 ----- .../ProficiencyCraftyReligion.json | 2 +- .../ProficiencyCraftyReligionExpertise.json | 35 ----- .../ProficiencyCraftyScrollKit.json | 2 +- .../ProficiencyCraftyScrollKitExpertise.json | 35 ----- .../ProficiencyFeatAcrobat.json | 2 +- .../ProficiencyFeatAcrobatExpertise.json | 35 ----- .../ProficiencyFeatHealerMedicine.json | 2 +- ...roficiencyFeatHealerMedicineExpertise.json | 35 ----- .../ProficiencyFeatMenacing.json | 2 +- .../ProficiencyFeatMenacingExpertise.json | 35 ----- .../ProficiencyFeatPickPocket.json | 2 +- .../ProficiencyFeatPickPocketExpertise.json | 35 ----- .../ProficiencyFeatPoisoner.json | 2 +- .../ProficiencyFeatPoisonerExpertise.json | 35 ----- .../ProficiencyFeatStealthy.json | 2 +- .../ProficiencyFeatStealthyExpertise.json | 35 ----- SolastaUnfinishedBusiness/Feats/ClassFeats.cs | 20 +-- .../Feats/CraftyFeats.cs | 128 +++--------------- SolastaUnfinishedBusiness/Feats/OtherFeats.cs | 91 +++---------- .../Feats/_FeatHelpers.cs | 59 -------- 52 files changed, 95 insertions(+), 879 deletions(-) delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyAthleteExpertise.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyAnimalHandling.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyAnimalHandlingExpertise.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyArcanaExpertise.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyHerbalismKitExpertise.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyMedicineExpertise.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyNatureExpertise.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyPoisonersKitExpertise.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyReligionExpertise.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyScrollKitExpertise.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatAcrobatExpertise.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatHealerMedicineExpertise.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatMenacingExpertise.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPickPocketExpertise.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPoisonerExpertise.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatStealthyExpertise.json diff --git a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt index 50ed6801f0..02a0f76c21 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt +++ b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt @@ -3626,7 +3626,6 @@ PowerWizardGraviturgistGravityWell FeatureDefinitionPower FeatureDefinition faf3 PowerWizardGraviturgistViolentAttraction FeatureDefinitionPower FeatureDefinition 643279dd-430f-5388-95a0-5a31d68ca973 PowerWizardSignatureSpells FeatureDefinitionPower FeatureDefinition a044a9c8-7d24-5dea-83b8-7c918686084e ProficiencyAthlete FeatureDefinitionProficiency FeatureDefinition 241be27a-e339-5e2b-952c-ec4dd090b461 -ProficiencyAthleteExpertise FeatureDefinitionProficiency FeatureDefinition ca7b11ce-5a52-51c0-93a2-dc05d01d48f4 ProficiencyBackgroundDevotedSkills FeatureDefinitionProficiency FeatureDefinition 6468a3eb-08e7-5d65-b2ed-a57c245c532e ProficiencyBackgroundFarmerSkills FeatureDefinitionProficiency FeatureDefinition b9d07d7a-5883-56f8-a14c-c2bf6176190d ProficiencyBackgroundFarmerWeapons FeatureDefinitionProficiency FeatureDefinition 1d092573-bd98-514d-97f0-360db89e03e7 @@ -3644,22 +3643,13 @@ ProficiencyCasterFightingWeapon FeatureDefinitionProficiency FeatureDefinition 0 ProficiencyCollegeOfAudacityArmor FeatureDefinitionProficiency FeatureDefinition 9ef315d4-a8cb-56a7-9af1-815ddfcadc3d ProficiencyCollegeOfAudacityScimitar FeatureDefinitionProficiency FeatureDefinition dbcdccfc-ab6c-58df-9385-cabffde3d258 ProficiencyCollegeOfThespianFightingStyle FeatureDefinitionProficiency FeatureDefinition 6db1feee-9ed0-5c15-b85d-9c8088a7d884 -ProficiencyCraftyAnimalHandling FeatureDefinitionProficiency FeatureDefinition 5c15f948-095c-5261-9555-4b10c0449d94 -ProficiencyCraftyAnimalHandlingExpertise FeatureDefinitionProficiency FeatureDefinition 86c4e783-8903-5a84-81bd-6d78354debd8 ProficiencyCraftyArcana FeatureDefinitionProficiency FeatureDefinition 619274ef-feed-56b7-9ad5-6394333b3884 -ProficiencyCraftyArcanaExpertise FeatureDefinitionProficiency FeatureDefinition 4e14bc1a-260e-504a-9ba8-c5810992444d ProficiencyCraftyHerbalismKit FeatureDefinitionProficiency FeatureDefinition 9418eab1-c4ca-51d3-8566-ed00ecb2afe2 -ProficiencyCraftyHerbalismKitExpertise FeatureDefinitionProficiency FeatureDefinition 15abe948-9315-52c5-b8ce-6ef889734cbd ProficiencyCraftyMedicine FeatureDefinitionProficiency FeatureDefinition 0f303467-f208-5a69-96e0-9c249edd7033 -ProficiencyCraftyMedicineExpertise FeatureDefinitionProficiency FeatureDefinition 8572b8b9-05e9-56da-b3ee-484b1eaad169 ProficiencyCraftyNature FeatureDefinitionProficiency FeatureDefinition 29c0f4f0-57c2-5a82-b5c1-88eaf4123d94 -ProficiencyCraftyNatureExpertise FeatureDefinitionProficiency FeatureDefinition a13453f4-83c4-59ba-bfac-5eb32a46b5b0 ProficiencyCraftyPoisonersKit FeatureDefinitionProficiency FeatureDefinition a6c63404-64c1-5af8-b9cf-3f6dd08709fb -ProficiencyCraftyPoisonersKitExpertise FeatureDefinitionProficiency FeatureDefinition 12d65d17-5f32-5ddc-baba-bafc705585e8 ProficiencyCraftyReligion FeatureDefinitionProficiency FeatureDefinition 28a79077-c8ba-55af-9191-86fe0d9d6657 -ProficiencyCraftyReligionExpertise FeatureDefinitionProficiency FeatureDefinition f6913329-25eb-5c9d-b894-8132bbf924f1 ProficiencyCraftyScrollKit FeatureDefinitionProficiency FeatureDefinition fba8bc65-1229-51e6-810d-12206ec4cce9 -ProficiencyCraftyScrollKitExpertise FeatureDefinitionProficiency FeatureDefinition cc2f090d-c23d-57af-bafc-68d7a923cac7 ProficiencyDarkelfWeaponTraining FeatureDefinitionProficiency FeatureDefinition b04688d6-0f45-5c9a-986e-12ee78715f36 ProficiencyDomainInsightAvatarOfKnowledgeSavingThrow FeatureDefinitionProficiency FeatureDefinition 44108874-f6f8-5e17-87ac-a9af6da53f4b ProficiencyDomainNatureHeavyArmor FeatureDefinitionProficiency FeatureDefinition 763c3faa-6a62-521b-8135-7cd40b47ce7e @@ -3667,7 +3657,6 @@ ProficiencyDomainTempestHeavyArmor FeatureDefinitionProficiency FeatureDefinitio ProficiencyDomainTempestMartialWeapons FeatureDefinitionProficiency FeatureDefinition 8cbb115b-7b9a-5c2c-b57b-558e313dfa24 ProficiencyFairyLanguages FeatureDefinitionProficiency FeatureDefinition 2825f30c-1e01-563c-93aa-c7d6934df362 ProficiencyFeatAcrobat FeatureDefinitionProficiency FeatureDefinition fe1d07bd-a7a1-5c92-804e-e97a96c0a211 -ProficiencyFeatAcrobatExpertise FeatureDefinitionProficiency FeatureDefinition 8d12b938-988d-5632-b703-96f9406ad21d ProficiencyFeatArchery FeatureDefinitionProficiency FeatureDefinition 2f481252-0c16-5606-8c23-28be3fc0eefe ProficiencyFeatAstralReach FeatureDefinitionProficiency FeatureDefinition 4143d5b8-381a-5953-9ea6-4f331db0142c ProficiencyFeatBlindFighting FeatureDefinitionProficiency FeatureDefinition 1020f7eb-192a-53e4-bbb6-34dae326338b @@ -3679,18 +3668,14 @@ ProficiencyFeatFeyTeleportationTirmarian FeatureDefinitionProficiency FeatureDef ProficiencyFeatGreatWeapon FeatureDefinitionProficiency FeatureDefinition bb71f888-76fb-5bfb-907f-52e7c40a1940 ProficiencyFeatHandAndAHalf FeatureDefinitionProficiency FeatureDefinition a02a0ff0-3956-5687-8382-10afbcf9c483 ProficiencyFeatHealerMedicine FeatureDefinitionProficiency FeatureDefinition 0f1b648b-e2fc-55e1-a1c7-7467d4db50e2 -ProficiencyFeatHealerMedicineExpertise FeatureDefinitionProficiency FeatureDefinition 5723788c-08b4-533f-83ec-087f9319843a ProficiencyFeatInterception FeatureDefinitionProficiency FeatureDefinition f3314ee7-8214-5674-b8ed-5cc4264b3898 ProficiencyFeatLunger FeatureDefinitionProficiency FeatureDefinition 0da39cf7-2df3-563d-ab18-f8ad7c8507af ProficiencyFeatMediumArmor FeatureDefinitionProficiency FeatureDefinition ed422a81-c767-56b0-a455-ad1c88d88869 ProficiencyFeatMenacing FeatureDefinitionProficiency FeatureDefinition 124a0eba-3658-5337-a675-1de95d55c6ad -ProficiencyFeatMenacingExpertise FeatureDefinitionProficiency FeatureDefinition e4e13686-5da6-59e3-be5b-8fd94bd0bf19 ProficiencyFeatMerciless FeatureDefinitionProficiency FeatureDefinition 19a654a6-15c9-57af-a93f-f14f5eed5b71 ProficiencyFeatMonkShieldExpert FeatureDefinitionProficiency FeatureDefinition 3c9cec58-0a28-5b43-b9e5-adaf1049543d ProficiencyFeatPickPocket FeatureDefinitionProficiency FeatureDefinition 3b9d1757-103e-57a0-bd7b-b9174e57400f -ProficiencyFeatPickPocketExpertise FeatureDefinitionProficiency FeatureDefinition e9c713f9-aa65-516e-8acb-93758a247396 ProficiencyFeatPoisoner FeatureDefinitionProficiency FeatureDefinition 9fcf9187-9d80-5363-b82e-e1f162565cab -ProficiencyFeatPoisonerExpertise FeatureDefinitionProficiency FeatureDefinition e52f1da6-3c38-56f6-913f-7103504f7bf6 ProficiencyFeatPolearmExpert FeatureDefinitionProficiency FeatureDefinition 1c75c89c-a39e-5546-8bba-022b6b9b1271 ProficiencyFeatProtection FeatureDefinitionProficiency FeatureDefinition 3db145d9-c49b-59da-93d2-df3587fd6104 ProficiencyFeatPugilist FeatureDefinitionProficiency FeatureDefinition a213f59d-9130-5168-a0ac-0ae7f54fcdb1 @@ -3703,7 +3688,6 @@ ProficiencyFeatSquatNimblenessAcrobaticsExpertise FeatureDefinitionProficiency F ProficiencyFeatSquatNimblenessAthletics FeatureDefinitionProficiency FeatureDefinition f09658d1-a649-544e-9467-8ba8e37474a0 ProficiencyFeatSquatNimblenessAthleticsExpertise FeatureDefinitionProficiency FeatureDefinition 3c1fd40f-22e9-550c-a148-8b610a9041c8 ProficiencyFeatStealthy FeatureDefinitionProficiency FeatureDefinition dfb97213-b173-5c3c-910c-1b555599df79 -ProficiencyFeatStealthyExpertise FeatureDefinitionProficiency FeatureDefinition 45713873-04f5-5c9a-a9b2-e690eb7a43b4 ProficiencyFeatTorchbearer FeatureDefinitionProficiency FeatureDefinition 1025b99d-524d-5e26-a706-068ab3eadbec ProficiencyFeatTwoWeapon FeatureDefinitionProficiency FeatureDefinition b425cfb2-ec6e-55da-827e-918ba44628d7 ProficiencyFeatWeaponMasterBattleaxeType FeatureDefinitionProficiency FeatureDefinition d01bd832-038b-5c25-b555-4ed3cb3e4a67 @@ -6217,7 +6201,6 @@ FeatureMonkWeaponSpecializationScimitarType FeatureDefinitionProficiency Feature FeatureMonkWeaponSpecializationShortbowType FeatureDefinitionProficiency FeatureDefinitionProficiency 0b67a1cb-41b2-54db-a7be-2f18abc68efb FeatureMonkWeaponSpecializationWarhammerType FeatureDefinitionProficiency FeatureDefinitionProficiency 2d4d980b-0923-525e-8c01-b3577c11c31b ProficiencyAthlete FeatureDefinitionProficiency FeatureDefinitionProficiency 241be27a-e339-5e2b-952c-ec4dd090b461 -ProficiencyAthleteExpertise FeatureDefinitionProficiency FeatureDefinitionProficiency ca7b11ce-5a52-51c0-93a2-dc05d01d48f4 ProficiencyBackgroundDevotedSkills FeatureDefinitionProficiency FeatureDefinitionProficiency 6468a3eb-08e7-5d65-b2ed-a57c245c532e ProficiencyBackgroundFarmerSkills FeatureDefinitionProficiency FeatureDefinitionProficiency b9d07d7a-5883-56f8-a14c-c2bf6176190d ProficiencyBackgroundFarmerWeapons FeatureDefinitionProficiency FeatureDefinitionProficiency 1d092573-bd98-514d-97f0-360db89e03e7 @@ -6235,22 +6218,13 @@ ProficiencyCasterFightingWeapon FeatureDefinitionProficiency FeatureDefinitionPr ProficiencyCollegeOfAudacityArmor FeatureDefinitionProficiency FeatureDefinitionProficiency 9ef315d4-a8cb-56a7-9af1-815ddfcadc3d ProficiencyCollegeOfAudacityScimitar FeatureDefinitionProficiency FeatureDefinitionProficiency dbcdccfc-ab6c-58df-9385-cabffde3d258 ProficiencyCollegeOfThespianFightingStyle FeatureDefinitionProficiency FeatureDefinitionProficiency 6db1feee-9ed0-5c15-b85d-9c8088a7d884 -ProficiencyCraftyAnimalHandling FeatureDefinitionProficiency FeatureDefinitionProficiency 5c15f948-095c-5261-9555-4b10c0449d94 -ProficiencyCraftyAnimalHandlingExpertise FeatureDefinitionProficiency FeatureDefinitionProficiency 86c4e783-8903-5a84-81bd-6d78354debd8 ProficiencyCraftyArcana FeatureDefinitionProficiency FeatureDefinitionProficiency 619274ef-feed-56b7-9ad5-6394333b3884 -ProficiencyCraftyArcanaExpertise FeatureDefinitionProficiency FeatureDefinitionProficiency 4e14bc1a-260e-504a-9ba8-c5810992444d ProficiencyCraftyHerbalismKit FeatureDefinitionProficiency FeatureDefinitionProficiency 9418eab1-c4ca-51d3-8566-ed00ecb2afe2 -ProficiencyCraftyHerbalismKitExpertise FeatureDefinitionProficiency FeatureDefinitionProficiency 15abe948-9315-52c5-b8ce-6ef889734cbd ProficiencyCraftyMedicine FeatureDefinitionProficiency FeatureDefinitionProficiency 0f303467-f208-5a69-96e0-9c249edd7033 -ProficiencyCraftyMedicineExpertise FeatureDefinitionProficiency FeatureDefinitionProficiency 8572b8b9-05e9-56da-b3ee-484b1eaad169 ProficiencyCraftyNature FeatureDefinitionProficiency FeatureDefinitionProficiency 29c0f4f0-57c2-5a82-b5c1-88eaf4123d94 -ProficiencyCraftyNatureExpertise FeatureDefinitionProficiency FeatureDefinitionProficiency a13453f4-83c4-59ba-bfac-5eb32a46b5b0 ProficiencyCraftyPoisonersKit FeatureDefinitionProficiency FeatureDefinitionProficiency a6c63404-64c1-5af8-b9cf-3f6dd08709fb -ProficiencyCraftyPoisonersKitExpertise FeatureDefinitionProficiency FeatureDefinitionProficiency 12d65d17-5f32-5ddc-baba-bafc705585e8 ProficiencyCraftyReligion FeatureDefinitionProficiency FeatureDefinitionProficiency 28a79077-c8ba-55af-9191-86fe0d9d6657 -ProficiencyCraftyReligionExpertise FeatureDefinitionProficiency FeatureDefinitionProficiency f6913329-25eb-5c9d-b894-8132bbf924f1 ProficiencyCraftyScrollKit FeatureDefinitionProficiency FeatureDefinitionProficiency fba8bc65-1229-51e6-810d-12206ec4cce9 -ProficiencyCraftyScrollKitExpertise FeatureDefinitionProficiency FeatureDefinitionProficiency cc2f090d-c23d-57af-bafc-68d7a923cac7 ProficiencyDarkelfWeaponTraining FeatureDefinitionProficiency FeatureDefinitionProficiency b04688d6-0f45-5c9a-986e-12ee78715f36 ProficiencyDomainInsightAvatarOfKnowledgeSavingThrow FeatureDefinitionProficiency FeatureDefinitionProficiency 44108874-f6f8-5e17-87ac-a9af6da53f4b ProficiencyDomainNatureHeavyArmor FeatureDefinitionProficiency FeatureDefinitionProficiency 763c3faa-6a62-521b-8135-7cd40b47ce7e @@ -6258,7 +6232,6 @@ ProficiencyDomainTempestHeavyArmor FeatureDefinitionProficiency FeatureDefinitio ProficiencyDomainTempestMartialWeapons FeatureDefinitionProficiency FeatureDefinitionProficiency 8cbb115b-7b9a-5c2c-b57b-558e313dfa24 ProficiencyFairyLanguages FeatureDefinitionProficiency FeatureDefinitionProficiency 2825f30c-1e01-563c-93aa-c7d6934df362 ProficiencyFeatAcrobat FeatureDefinitionProficiency FeatureDefinitionProficiency fe1d07bd-a7a1-5c92-804e-e97a96c0a211 -ProficiencyFeatAcrobatExpertise FeatureDefinitionProficiency FeatureDefinitionProficiency 8d12b938-988d-5632-b703-96f9406ad21d ProficiencyFeatArchery FeatureDefinitionProficiency FeatureDefinitionProficiency 2f481252-0c16-5606-8c23-28be3fc0eefe ProficiencyFeatAstralReach FeatureDefinitionProficiency FeatureDefinitionProficiency 4143d5b8-381a-5953-9ea6-4f331db0142c ProficiencyFeatBlindFighting FeatureDefinitionProficiency FeatureDefinitionProficiency 1020f7eb-192a-53e4-bbb6-34dae326338b @@ -6270,18 +6243,14 @@ ProficiencyFeatFeyTeleportationTirmarian FeatureDefinitionProficiency FeatureDef ProficiencyFeatGreatWeapon FeatureDefinitionProficiency FeatureDefinitionProficiency bb71f888-76fb-5bfb-907f-52e7c40a1940 ProficiencyFeatHandAndAHalf FeatureDefinitionProficiency FeatureDefinitionProficiency a02a0ff0-3956-5687-8382-10afbcf9c483 ProficiencyFeatHealerMedicine FeatureDefinitionProficiency FeatureDefinitionProficiency 0f1b648b-e2fc-55e1-a1c7-7467d4db50e2 -ProficiencyFeatHealerMedicineExpertise FeatureDefinitionProficiency FeatureDefinitionProficiency 5723788c-08b4-533f-83ec-087f9319843a ProficiencyFeatInterception FeatureDefinitionProficiency FeatureDefinitionProficiency f3314ee7-8214-5674-b8ed-5cc4264b3898 ProficiencyFeatLunger FeatureDefinitionProficiency FeatureDefinitionProficiency 0da39cf7-2df3-563d-ab18-f8ad7c8507af ProficiencyFeatMediumArmor FeatureDefinitionProficiency FeatureDefinitionProficiency ed422a81-c767-56b0-a455-ad1c88d88869 ProficiencyFeatMenacing FeatureDefinitionProficiency FeatureDefinitionProficiency 124a0eba-3658-5337-a675-1de95d55c6ad -ProficiencyFeatMenacingExpertise FeatureDefinitionProficiency FeatureDefinitionProficiency e4e13686-5da6-59e3-be5b-8fd94bd0bf19 ProficiencyFeatMerciless FeatureDefinitionProficiency FeatureDefinitionProficiency 19a654a6-15c9-57af-a93f-f14f5eed5b71 ProficiencyFeatMonkShieldExpert FeatureDefinitionProficiency FeatureDefinitionProficiency 3c9cec58-0a28-5b43-b9e5-adaf1049543d ProficiencyFeatPickPocket FeatureDefinitionProficiency FeatureDefinitionProficiency 3b9d1757-103e-57a0-bd7b-b9174e57400f -ProficiencyFeatPickPocketExpertise FeatureDefinitionProficiency FeatureDefinitionProficiency e9c713f9-aa65-516e-8acb-93758a247396 ProficiencyFeatPoisoner FeatureDefinitionProficiency FeatureDefinitionProficiency 9fcf9187-9d80-5363-b82e-e1f162565cab -ProficiencyFeatPoisonerExpertise FeatureDefinitionProficiency FeatureDefinitionProficiency e52f1da6-3c38-56f6-913f-7103504f7bf6 ProficiencyFeatPolearmExpert FeatureDefinitionProficiency FeatureDefinitionProficiency 1c75c89c-a39e-5546-8bba-022b6b9b1271 ProficiencyFeatProtection FeatureDefinitionProficiency FeatureDefinitionProficiency 3db145d9-c49b-59da-93d2-df3587fd6104 ProficiencyFeatPugilist FeatureDefinitionProficiency FeatureDefinitionProficiency a213f59d-9130-5168-a0ac-0ae7f54fcdb1 @@ -6294,7 +6263,6 @@ ProficiencyFeatSquatNimblenessAcrobaticsExpertise FeatureDefinitionProficiency F ProficiencyFeatSquatNimblenessAthletics FeatureDefinitionProficiency FeatureDefinitionProficiency f09658d1-a649-544e-9467-8ba8e37474a0 ProficiencyFeatSquatNimblenessAthleticsExpertise FeatureDefinitionProficiency FeatureDefinitionProficiency 3c1fd40f-22e9-550c-a148-8b610a9041c8 ProficiencyFeatStealthy FeatureDefinitionProficiency FeatureDefinitionProficiency dfb97213-b173-5c3c-910c-1b555599df79 -ProficiencyFeatStealthyExpertise FeatureDefinitionProficiency FeatureDefinitionProficiency 45713873-04f5-5c9a-a9b2-e690eb7a43b4 ProficiencyFeatTorchbearer FeatureDefinitionProficiency FeatureDefinitionProficiency 1025b99d-524d-5e26-a706-068ab3eadbec ProficiencyFeatTwoWeapon FeatureDefinitionProficiency FeatureDefinitionProficiency b425cfb2-ec6e-55da-827e-918ba44628d7 ProficiencyFeatWeaponMasterBattleaxeType FeatureDefinitionProficiency FeatureDefinitionProficiency d01bd832-038b-5c25-b555-4ed3cb3e4a67 diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatAcrobat.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatAcrobat.json index 17cec7c08d..1d4d5b0c44 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatAcrobat.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatAcrobat.json @@ -13,7 +13,8 @@ "knownFeatsPrerequisite": [], "features": [ "Definition:AttributeModifierCreed_Of_Misaye:74d55f601f8ad8246b18a19766524280", - "Definition:PowerFeatAcrobat:acbb3f93-a540-503d-b3d8-31dfa87a2a95" + "Definition:PowerFeatAcrobat:acbb3f93-a540-503d-b3d8-31dfa87a2a95", + "Definition:ProficiencyFeatAcrobat:fe1d07bd-a7a1-5c92-804e-e97a96c0a211" ], "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatApothecaryCha.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatApothecaryCha.json index 3c1aadcb59..e31671347d 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatApothecaryCha.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatApothecaryCha.json @@ -12,7 +12,9 @@ "familyTag": "Apothecary", "knownFeatsPrerequisite": [], "features": [ - "Definition:AttributeModifierCreed_Of_Solasta:330246532ae609848887c37e44b7f7e4" + "Definition:AttributeModifierCreed_Of_Solasta:330246532ae609848887c37e44b7f7e4", + "Definition:ProficiencyCraftyHerbalismKit:9418eab1-c4ca-51d3-8566-ed00ecb2afe2", + "Definition:ProficiencyCraftyMedicine:0f303467-f208-5a69-96e0-9c249edd7033" ], "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatApothecaryInt.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatApothecaryInt.json index 01bda50b55..ea0bc2e13a 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatApothecaryInt.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatApothecaryInt.json @@ -12,7 +12,9 @@ "familyTag": "Apothecary", "knownFeatsPrerequisite": [], "features": [ - "Definition:AttributeModifierCreed_Of_Pakri:de9467691aafac34c890c3e25d2f306c" + "Definition:AttributeModifierCreed_Of_Pakri:de9467691aafac34c890c3e25d2f306c", + "Definition:ProficiencyCraftyHerbalismKit:9418eab1-c4ca-51d3-8566-ed00ecb2afe2", + "Definition:ProficiencyCraftyMedicine:0f303467-f208-5a69-96e0-9c249edd7033" ], "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatApothecaryWis.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatApothecaryWis.json index c3519e889d..940d62761d 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatApothecaryWis.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatApothecaryWis.json @@ -12,7 +12,9 @@ "familyTag": "Apothecary", "knownFeatsPrerequisite": [], "features": [ - "Definition:AttributeModifierCreed_Of_Maraike:7fd526d5e743c6f48bad92aac9b1738d" + "Definition:AttributeModifierCreed_Of_Maraike:7fd526d5e743c6f48bad92aac9b1738d", + "Definition:ProficiencyCraftyHerbalismKit:9418eab1-c4ca-51d3-8566-ed00ecb2afe2", + "Definition:ProficiencyCraftyMedicine:0f303467-f208-5a69-96e0-9c249edd7033" ], "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatArcanist.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatArcanist.json index 7875b2f0ce..58c5d399cd 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatArcanist.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatArcanist.json @@ -13,7 +13,8 @@ "knownFeatsPrerequisite": [], "features": [ "Definition:AttributeModifierCreed_Of_Pakri:de9467691aafac34c890c3e25d2f306c", - "Definition:PowerFeatArcanist:e6ac8ee4-7cc2-5b1e-a689-60f74c048d59" + "Definition:PowerFeatArcanist:e6ac8ee4-7cc2-5b1e-a689-60f74c048d59", + "Definition:ProficiencyCraftyArcana:619274ef-feed-56b7-9ad5-6394333b3884" ], "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatAthleteDex.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatAthleteDex.json index 0f86324f58..0213290c87 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatAthleteDex.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatAthleteDex.json @@ -13,7 +13,8 @@ "knownFeatsPrerequisite": [], "features": [ "Definition:AttributeModifierCreed_Of_Misaye:74d55f601f8ad8246b18a19766524280", - "Definition:MovementAffinityAthlete:91ac75d7-4763-54d6-98f5-7554fc304f01" + "Definition:MovementAffinityAthlete:91ac75d7-4763-54d6-98f5-7554fc304f01", + "Definition:ProficiencyAthlete:241be27a-e339-5e2b-952c-ec4dd090b461" ], "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatAthleteStr.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatAthleteStr.json index 50f5918db7..aff7c34cd2 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatAthleteStr.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatAthleteStr.json @@ -13,7 +13,8 @@ "knownFeatsPrerequisite": [], "features": [ "Definition:AttributeModifierCreed_Of_Einar:38c2a545af534bb45ad92ffe7f30d62e", - "Definition:MovementAffinityAthlete:91ac75d7-4763-54d6-98f5-7554fc304f01" + "Definition:MovementAffinityAthlete:91ac75d7-4763-54d6-98f5-7554fc304f01", + "Definition:ProficiencyAthlete:241be27a-e339-5e2b-952c-ec4dd090b461" ], "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatCraftyScriber.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatCraftyScriber.json index 6cecb95d1a..9f11f337bc 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatCraftyScriber.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatCraftyScriber.json @@ -12,7 +12,9 @@ "familyTag": "", "knownFeatsPrerequisite": [], "features": [ - "Definition:AttributeModifierCreed_Of_Pakri:de9467691aafac34c890c3e25d2f306c" + "Definition:AttributeModifierCreed_Of_Pakri:de9467691aafac34c890c3e25d2f306c", + "Definition:ProficiencyCraftyArcana:619274ef-feed-56b7-9ad5-6394333b3884", + "Definition:ProficiencyCraftyScrollKit:fba8bc65-1229-51e6-810d-12206ec4cce9" ], "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatHealer.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatHealer.json index 3f477538cd..ee85dd3c91 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatHealer.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatHealer.json @@ -15,6 +15,7 @@ "Definition:PowerFeatHealerMedKit:26cb929d-2f43-5b24-be1c-7b7c2cde50b8", "Definition:PowerFeatHealerResuscitate:8e82c80d-e8c0-533c-ac8b-a5a5ee85b655", "Definition:PowerFeatHealerStabilize:456c154f-34d4-511a-a25e-f0ad93009839", + "Definition:ProficiencyFeatHealerMedicine:0f1b648b-e2fc-55e1-a1c7-7467d4db50e2", "Definition:ProficiencyFeatHealerMedicine:0f1b648b-e2fc-55e1-a1c7-7467d4db50e2" ], "guiPresentation": { diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatPickPocket.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatPickPocket.json index d536172857..636a0c9fc4 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatPickPocket.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatPickPocket.json @@ -12,7 +12,8 @@ "familyTag": "", "knownFeatsPrerequisite": [], "features": [ - "Definition:AbilityCheckAffinityFeatPickPocket:30c18aff-792b-5d16-9579-80acfb7fcd89" + "Definition:AbilityCheckAffinityFeatPickPocket:30c18aff-792b-5d16-9579-80acfb7fcd89", + "Definition:ProficiencyFeatPickPocket:3b9d1757-103e-57a0-bd7b-b9174e57400f" ], "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatStealthy.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatStealthy.json index 77cd1d3607..a79fde0e7b 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatStealthy.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatStealthy.json @@ -12,7 +12,8 @@ "familyTag": "", "knownFeatsPrerequisite": [], "features": [ - "Definition:AttributeModifierCreed_Of_Misaye:74d55f601f8ad8246b18a19766524280" + "Definition:AttributeModifierCreed_Of_Misaye:74d55f601f8ad8246b18a19766524280", + "Definition:ProficiencyFeatStealthy:dfb97213-b173-5c3c-910c-1b555599df79" ], "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatTheologian.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatTheologian.json index a21766b0e9..c99291186b 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatTheologian.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatTheologian.json @@ -13,7 +13,8 @@ "knownFeatsPrerequisite": [], "features": [ "Definition:AttributeModifierCreed_Of_Pakri:de9467691aafac34c890c3e25d2f306c", - "Definition:PowerFeatTheologian:1285becd-b2b5-5885-8f8f-b4d33fcea587" + "Definition:PowerFeatTheologian:1285becd-b2b5-5885-8f8f-b4d33fcea587", + "Definition:ProficiencyCraftyReligion:28a79077-c8ba-55af-9191-86fe0d9d6657" ], "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatToxicologistCha.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatToxicologistCha.json index f400168ed4..3524932fa9 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatToxicologistCha.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatToxicologistCha.json @@ -12,7 +12,9 @@ "familyTag": "Toxicologist", "knownFeatsPrerequisite": [], "features": [ - "Definition:AttributeModifierCreed_Of_Solasta:330246532ae609848887c37e44b7f7e4" + "Definition:AttributeModifierCreed_Of_Solasta:330246532ae609848887c37e44b7f7e4", + "Definition:ProficiencyCraftyNature:29c0f4f0-57c2-5a82-b5c1-88eaf4123d94", + "Definition:ProficiencyCraftyPoisonersKit:a6c63404-64c1-5af8-b9cf-3f6dd08709fb" ], "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatToxicologistInt.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatToxicologistInt.json index 65fda4b0fa..a6a532e02a 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatToxicologistInt.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatToxicologistInt.json @@ -12,7 +12,9 @@ "familyTag": "Toxicologist", "knownFeatsPrerequisite": [], "features": [ - "Definition:AttributeModifierCreed_Of_Pakri:de9467691aafac34c890c3e25d2f306c" + "Definition:AttributeModifierCreed_Of_Pakri:de9467691aafac34c890c3e25d2f306c", + "Definition:ProficiencyCraftyNature:29c0f4f0-57c2-5a82-b5c1-88eaf4123d94", + "Definition:ProficiencyCraftyPoisonersKit:a6c63404-64c1-5af8-b9cf-3f6dd08709fb" ], "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatToxicologistWis.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatToxicologistWis.json index 460ae65277..3b2a666843 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatToxicologistWis.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatToxicologistWis.json @@ -12,7 +12,9 @@ "familyTag": "Toxicologist", "knownFeatsPrerequisite": [], "features": [ - "Definition:AttributeModifierCreed_Of_Maraike:7fd526d5e743c6f48bad92aac9b1738d" + "Definition:AttributeModifierCreed_Of_Maraike:7fd526d5e743c6f48bad92aac9b1738d", + "Definition:ProficiencyCraftyNature:29c0f4f0-57c2-5a82-b5c1-88eaf4123d94", + "Definition:ProficiencyCraftyPoisonersKit:a6c63404-64c1-5af8-b9cf-3f6dd08709fb" ], "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatMenacing.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatMenacing.json index b4e1430ed3..34d4126474 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatMenacing.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatMenacing.json @@ -13,7 +13,8 @@ "knownFeatsPrerequisite": [], "features": [ "Definition:AttributeModifierCreed_Of_Solasta:330246532ae609848887c37e44b7f7e4", - "Definition:PowerFeatMenacing:2e3ca902-484d-53b9-9daf-97f99a6efc50" + "Definition:PowerFeatMenacing:2e3ca902-484d-53b9-9daf-97f99a6efc50", + "Definition:ProficiencyFeatMenacing:124a0eba-3658-5337-a675-1de95d55c6ad" ], "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatPoisoner.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatPoisoner.json index 0f2afec0a4..139ad1b38f 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatPoisoner.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatPoisoner.json @@ -12,7 +12,8 @@ "familyTag": "", "knownFeatsPrerequisite": [], "features": [ - "Definition:ActionAffinityFeatPoisoner:84210b8c-a6cd-53b7-acde-c0424a98a02d" + "Definition:ActionAffinityFeatPoisoner:84210b8c-a6cd-53b7-acde-c0424a98a02d", + "Definition:ProficiencyFeatPoisoner:9fcf9187-9d80-5363-b82e-e1f162565cab" ], "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyAthlete.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyAthlete.json index df67910578..d68834237b 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyAthlete.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyAthlete.json @@ -1,6 +1,6 @@ { "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Skill", + "proficiencyType": "SkillOrExpertise", "proficiencies": [ "Athletics" ], diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyAthleteExpertise.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyAthleteExpertise.json deleted file mode 100644 index 8c3a70e378..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyAthleteExpertise.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Expertise", - "proficiencies": [ - "Athletics" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "ca7b11ce-5a52-51c0-93a2-dc05d01d48f4", - "contentPack": 9999, - "name": "ProficiencyAthleteExpertise" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyAnimalHandling.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyAnimalHandling.json deleted file mode 100644 index 42b8c29180..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyAnimalHandling.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Skill", - "proficiencies": [ - "AnimalHandling" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "5c15f948-095c-5261-9555-4b10c0449d94", - "contentPack": 9999, - "name": "ProficiencyCraftyAnimalHandling" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyAnimalHandlingExpertise.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyAnimalHandlingExpertise.json deleted file mode 100644 index d25f614119..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyAnimalHandlingExpertise.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Expertise", - "proficiencies": [ - "AnimalHandling" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "86c4e783-8903-5a84-81bd-6d78354debd8", - "contentPack": 9999, - "name": "ProficiencyCraftyAnimalHandlingExpertise" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyArcana.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyArcana.json index fca1362b28..2ec003338a 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyArcana.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyArcana.json @@ -1,6 +1,6 @@ { "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Skill", + "proficiencyType": "SkillOrExpertise", "proficiencies": [ "Arcana" ], diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyArcanaExpertise.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyArcanaExpertise.json deleted file mode 100644 index 0bb81a0b98..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyArcanaExpertise.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Expertise", - "proficiencies": [ - "Arcana" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "4e14bc1a-260e-504a-9ba8-c5810992444d", - "contentPack": 9999, - "name": "ProficiencyCraftyArcanaExpertise" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyHerbalismKit.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyHerbalismKit.json index 01be6821d8..cb81df4435 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyHerbalismKit.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyHerbalismKit.json @@ -1,6 +1,6 @@ { "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Tool", + "proficiencyType": "ToolOrExpertise", "proficiencies": [ "HerbalismKitType" ], diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyHerbalismKitExpertise.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyHerbalismKitExpertise.json deleted file mode 100644 index eb5c952df8..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyHerbalismKitExpertise.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Expertise", - "proficiencies": [ - "HerbalismKitType" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "15abe948-9315-52c5-b8ce-6ef889734cbd", - "contentPack": 9999, - "name": "ProficiencyCraftyHerbalismKitExpertise" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyMedicine.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyMedicine.json index 622dd74da1..0d7b6f4419 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyMedicine.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyMedicine.json @@ -1,6 +1,6 @@ { "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Skill", + "proficiencyType": "SkillOrExpertise", "proficiencies": [ "Medecine" ], diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyMedicineExpertise.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyMedicineExpertise.json deleted file mode 100644 index 212c54c6ff..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyMedicineExpertise.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Expertise", - "proficiencies": [ - "Medecine" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "8572b8b9-05e9-56da-b3ee-484b1eaad169", - "contentPack": 9999, - "name": "ProficiencyCraftyMedicineExpertise" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyNature.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyNature.json index 21a6e627e3..46ff1e41f6 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyNature.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyNature.json @@ -1,6 +1,6 @@ { "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Skill", + "proficiencyType": "SkillOrExpertise", "proficiencies": [ "Nature" ], diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyNatureExpertise.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyNatureExpertise.json deleted file mode 100644 index f1693d4768..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyNatureExpertise.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Expertise", - "proficiencies": [ - "Nature" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "a13453f4-83c4-59ba-bfac-5eb32a46b5b0", - "contentPack": 9999, - "name": "ProficiencyCraftyNatureExpertise" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyPoisonersKit.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyPoisonersKit.json index 7d755ea4d6..25ae2734a6 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyPoisonersKit.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyPoisonersKit.json @@ -1,6 +1,6 @@ { "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Tool", + "proficiencyType": "ToolOrExpertise", "proficiencies": [ "PoisonersKitType" ], diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyPoisonersKitExpertise.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyPoisonersKitExpertise.json deleted file mode 100644 index e3cf5d7dda..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyPoisonersKitExpertise.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Expertise", - "proficiencies": [ - "PoisonersKitType" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "12d65d17-5f32-5ddc-baba-bafc705585e8", - "contentPack": 9999, - "name": "ProficiencyCraftyPoisonersKitExpertise" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyReligion.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyReligion.json index 090648b727..90335ecceb 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyReligion.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyReligion.json @@ -1,6 +1,6 @@ { "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Skill", + "proficiencyType": "SkillOrExpertise", "proficiencies": [ "Religion" ], diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyReligionExpertise.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyReligionExpertise.json deleted file mode 100644 index d2f4b3d306..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyReligionExpertise.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Expertise", - "proficiencies": [ - "Religion" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "f6913329-25eb-5c9d-b894-8132bbf924f1", - "contentPack": 9999, - "name": "ProficiencyCraftyReligionExpertise" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyScrollKit.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyScrollKit.json index 98fca99c9f..de37509415 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyScrollKit.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyScrollKit.json @@ -1,6 +1,6 @@ { "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Tool", + "proficiencyType": "ToolOrExpertise", "proficiencies": [ "ScrollKitType" ], diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyScrollKitExpertise.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyScrollKitExpertise.json deleted file mode 100644 index cee2eff5ea..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyCraftyScrollKitExpertise.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Expertise", - "proficiencies": [ - "ScrollKitType" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "cc2f090d-c23d-57af-bafc-68d7a923cac7", - "contentPack": 9999, - "name": "ProficiencyCraftyScrollKitExpertise" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatAcrobat.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatAcrobat.json index 3c2f9b8c35..e543992b4a 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatAcrobat.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatAcrobat.json @@ -1,6 +1,6 @@ { "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Skill", + "proficiencyType": "SkillOrExpertise", "proficiencies": [ "Acrobatics" ], diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatAcrobatExpertise.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatAcrobatExpertise.json deleted file mode 100644 index ac7d1ab55a..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatAcrobatExpertise.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Expertise", - "proficiencies": [ - "Acrobatics" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "8d12b938-988d-5632-b703-96f9406ad21d", - "contentPack": 9999, - "name": "ProficiencyFeatAcrobatExpertise" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatHealerMedicine.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatHealerMedicine.json index 39943d1f51..bed10d5d20 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatHealerMedicine.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatHealerMedicine.json @@ -1,6 +1,6 @@ { "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Skill", + "proficiencyType": "SkillOrExpertise", "proficiencies": [ "Medecine" ], diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatHealerMedicineExpertise.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatHealerMedicineExpertise.json deleted file mode 100644 index 9e77cb7d82..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatHealerMedicineExpertise.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Expertise", - "proficiencies": [ - "Medecine" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "5723788c-08b4-533f-83ec-087f9319843a", - "contentPack": 9999, - "name": "ProficiencyFeatHealerMedicineExpertise" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatMenacing.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatMenacing.json index 32d9b9a90d..ec71fdfc8e 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatMenacing.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatMenacing.json @@ -1,6 +1,6 @@ { "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Skill", + "proficiencyType": "SkillOrExpertise", "proficiencies": [ "Intimidation" ], diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatMenacingExpertise.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatMenacingExpertise.json deleted file mode 100644 index 39c0e65128..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatMenacingExpertise.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Expertise", - "proficiencies": [ - "Intimidation" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "e4e13686-5da6-59e3-be5b-8fd94bd0bf19", - "contentPack": 9999, - "name": "ProficiencyFeatMenacingExpertise" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPickPocket.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPickPocket.json index 445d5259a9..08162aa226 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPickPocket.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPickPocket.json @@ -1,6 +1,6 @@ { "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Skill", + "proficiencyType": "SkillOrExpertise", "proficiencies": [ "SleightOfHand" ], diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPickPocketExpertise.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPickPocketExpertise.json deleted file mode 100644 index 2625d54d83..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPickPocketExpertise.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Expertise", - "proficiencies": [ - "SleightOfHand" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": false, - "title": "Feat/&FeatPickPocketTitle", - "description": "Feat/&FeatPickPocketDescription", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "e9c713f9-aa65-516e-8acb-93758a247396", - "contentPack": 9999, - "name": "ProficiencyFeatPickPocketExpertise" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPoisoner.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPoisoner.json index f35c7063ea..6583119ad1 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPoisoner.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPoisoner.json @@ -1,6 +1,6 @@ { "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Tool", + "proficiencyType": "ToolOrExpertise", "proficiencies": [ "PoisonersKitType" ], diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPoisonerExpertise.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPoisonerExpertise.json deleted file mode 100644 index a9698f0f4d..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPoisonerExpertise.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Expertise", - "proficiencies": [ - "PoisonersKitType" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "e52f1da6-3c38-56f6-913f-7103504f7bf6", - "contentPack": 9999, - "name": "ProficiencyFeatPoisonerExpertise" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatStealthy.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatStealthy.json index 0c95c552fa..6dcbd630fb 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatStealthy.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatStealthy.json @@ -1,6 +1,6 @@ { "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Skill", + "proficiencyType": "SkillOrExpertise", "proficiencies": [ "Stealth" ], diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatStealthyExpertise.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatStealthyExpertise.json deleted file mode 100644 index 0471d46dba..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatStealthyExpertise.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Expertise", - "proficiencies": [ - "Stealth" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "45713873-04f5-5c9a-a9b2-e690eb7a43b4", - "contentPack": 9999, - "name": "ProficiencyFeatStealthyExpertise" -} \ No newline at end of file diff --git a/SolastaUnfinishedBusiness/Feats/ClassFeats.cs b/SolastaUnfinishedBusiness/Feats/ClassFeats.cs index bb51a045eb..4831f0b98d 100644 --- a/SolastaUnfinishedBusiness/Feats/ClassFeats.cs +++ b/SolastaUnfinishedBusiness/Feats/ClassFeats.cs @@ -247,30 +247,22 @@ private static FeatDefinitionWithPrerequisites BuildPoisoner() ToolTypeDefinitions.PoisonersKitType) .AddToDB(); - var tool = FeatureDefinitionProficiencyBuilder - .Create($"Proficiency{Name}") - .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Tool, PoisonersKitType) - .AddToDB(); - - var expertise = FeatureDefinitionProficiencyBuilder - .Create($"Proficiency{Name}Expertise") - .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Expertise, PoisonersKitType) - .AddToDB(); - return FeatDefinitionWithPrerequisitesBuilder .Create(Name) .SetGuiPresentation(Category.Feat) .SetFeatures( + FeatureDefinitionProficiencyBuilder + .Create($"Proficiency{Name}") + .SetGuiPresentationNoContent(true) + .SetProficiencies(ProficiencyType.ToolOrExpertise, PoisonersKitType) + .AddToDB(), FeatureDefinitionActionAffinityBuilder .Create($"ActionAffinity{Name}") .SetGuiPresentationNoContent(true) .AddCustomSubFeatures( new ValidateDeviceFunctionUse((_, device, _) => device.UsableDeviceDescription.UsableDeviceTags.Contains("Poison")), - new ModifyDamageResistancePoisoner(), - new FeatHelpers.ToolOrExpertise(ToolTypeDefinitions.PoisonersKitType, tool, expertise)) + new ModifyDamageResistancePoisoner()) .SetAuthorizedActions(ActionDefinitions.Id.UseItemBonus) .AddToDB()) .AddToDB(); diff --git a/SolastaUnfinishedBusiness/Feats/CraftyFeats.cs b/SolastaUnfinishedBusiness/Feats/CraftyFeats.cs index 3a2d077f55..524bc36f8c 100644 --- a/SolastaUnfinishedBusiness/Feats/CraftyFeats.cs +++ b/SolastaUnfinishedBusiness/Feats/CraftyFeats.cs @@ -1,6 +1,5 @@ using System.Collections.Generic; using JetBrains.Annotations; -using SolastaUnfinishedBusiness.Api; using SolastaUnfinishedBusiness.Api.LanguageExtensions; using SolastaUnfinishedBusiness.Builders; using SolastaUnfinishedBusiness.Builders.Features; @@ -19,99 +18,43 @@ internal static void CreateFeats([NotNull] List feats) var proficiencyCraftyArcana = FeatureDefinitionProficiencyBuilder .Create("ProficiencyCraftyArcana") .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Skill, SkillDefinitions.Arcana) - .AddToDB(); - - // kept for backward compatibility - _ = FeatureDefinitionProficiencyBuilder - .Create("ProficiencyCraftyAnimalHandling") - .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Skill, SkillDefinitions.AnimalHandling) + .SetProficiencies(ProficiencyType.SkillOrExpertise, SkillDefinitions.Arcana) .AddToDB(); var proficiencyCraftyMedicine = FeatureDefinitionProficiencyBuilder .Create("ProficiencyCraftyMedicine") .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Skill, SkillDefinitions.Medecine) + .SetProficiencies(ProficiencyType.SkillOrExpertise, SkillDefinitions.Medecine) .AddToDB(); var proficiencyCraftyNature = FeatureDefinitionProficiencyBuilder .Create("ProficiencyCraftyNature") .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Skill, SkillDefinitions.Nature) + .SetProficiencies(ProficiencyType.SkillOrExpertise, SkillDefinitions.Nature) .AddToDB(); var proficiencyCraftyReligion = FeatureDefinitionProficiencyBuilder .Create("ProficiencyCraftyReligion") .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Skill, SkillDefinitions.Religion) + .SetProficiencies(ProficiencyType.SkillOrExpertise, SkillDefinitions.Religion) .AddToDB(); var proficiencyCraftyHerbalismKit = FeatureDefinitionProficiencyBuilder .Create("ProficiencyCraftyHerbalismKit") .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Tool, ToolTypeDefinitions.HerbalismKitType.Name) + .SetProficiencies(ProficiencyType.ToolOrExpertise, ToolTypeDefinitions.HerbalismKitType.Name) .AddToDB(); var proficiencyCraftyPoisonersKit = FeatureDefinitionProficiencyBuilder .Create("ProficiencyCraftyPoisonersKit") .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Tool, ToolTypeDefinitions.PoisonersKitType.Name) + .SetProficiencies(ProficiencyType.ToolOrExpertise, ToolTypeDefinitions.PoisonersKitType.Name) .AddToDB(); var proficiencyCraftyScrollKit = FeatureDefinitionProficiencyBuilder .Create("ProficiencyCraftyScrollKit") .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Tool, ToolTypeDefinitions.ScrollKitType.Name) - .AddToDB(); - - var proficiencyCraftyArcanaExpertise = FeatureDefinitionProficiencyBuilder - .Create("ProficiencyCraftyArcanaExpertise") - .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Expertise, SkillDefinitions.Arcana) - .AddToDB(); - - // kept for backward compatibility - _ = FeatureDefinitionProficiencyBuilder - .Create("ProficiencyCraftyAnimalHandlingExpertise") - .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Expertise, SkillDefinitions.AnimalHandling) - .AddToDB(); - - var proficiencyCraftyMedicineExpertise = FeatureDefinitionProficiencyBuilder - .Create("ProficiencyCraftyMedicineExpertise") - .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Expertise, SkillDefinitions.Medecine) - .AddToDB(); - - var proficiencyCraftyNatureExpertise = FeatureDefinitionProficiencyBuilder - .Create("ProficiencyCraftyNatureExpertise") - .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Expertise, SkillDefinitions.Nature) - .AddToDB(); - - var proficiencyCraftyReligionExpertise = FeatureDefinitionProficiencyBuilder - .Create("ProficiencyCraftyReligionExpertise") - .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Expertise, SkillDefinitions.Religion) - .AddToDB(); - - var proficiencyCraftyHerbalismKitExpertise = FeatureDefinitionProficiencyBuilder - .Create("ProficiencyCraftyHerbalismKitExpertise") - .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Expertise, ToolTypeDefinitions.HerbalismKitType.Name) - .AddToDB(); - - var proficiencyCraftyPoisonersKitExpertise = FeatureDefinitionProficiencyBuilder - .Create("ProficiencyCraftyPoisonersKitExpertise") - .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Expertise, ToolTypeDefinitions.PoisonersKitType.Name) - .AddToDB(); - - var proficiencyCraftyScrollKitExpertise = FeatureDefinitionProficiencyBuilder - .Create("ProficiencyCraftyScrollKitExpertise") - .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Expertise, ToolTypeDefinitions.ScrollKitType.Name) + .SetProficiencies(ProficiencyType.ToolOrExpertise, ToolTypeDefinitions.ScrollKitType.Name) .AddToDB(); // @@ -121,36 +64,21 @@ internal static void CreateFeats([NotNull] List feats) var featApothecaryInt = FeatDefinitionBuilder .Create("FeatApothecaryInt") .SetGuiPresentation(Category.Feat) - .SetFeatures(AttributeModifierCreed_Of_Pakri) - .AddCustomSubFeatures( - new FeatHelpers.ToolOrExpertise(ToolTypeDefinitions.HerbalismKitType, - proficiencyCraftyHerbalismKit, proficiencyCraftyHerbalismKitExpertise), - new FeatHelpers.SkillOrExpertise(DatabaseHelper.SkillDefinitions.Medecine, - proficiencyCraftyMedicine, proficiencyCraftyMedicineExpertise)) + .SetFeatures(AttributeModifierCreed_Of_Pakri, proficiencyCraftyHerbalismKit, proficiencyCraftyMedicine) .SetFeatFamily("Apothecary") .AddToDB(); var featApothecaryWis = FeatDefinitionBuilder .Create("FeatApothecaryWis") .SetGuiPresentation(Category.Feat) - .SetFeatures(AttributeModifierCreed_Of_Maraike) - .AddCustomSubFeatures( - new FeatHelpers.ToolOrExpertise(ToolTypeDefinitions.HerbalismKitType, - proficiencyCraftyHerbalismKit, proficiencyCraftyHerbalismKitExpertise), - new FeatHelpers.SkillOrExpertise(DatabaseHelper.SkillDefinitions.Medecine, - proficiencyCraftyMedicine, proficiencyCraftyMedicineExpertise)) + .SetFeatures(AttributeModifierCreed_Of_Maraike, proficiencyCraftyHerbalismKit, proficiencyCraftyMedicine) .SetFeatFamily("Apothecary") .AddToDB(); var featApothecaryCha = FeatDefinitionBuilder .Create("FeatApothecaryCha") .SetGuiPresentation(Category.Feat) - .SetFeatures(AttributeModifierCreed_Of_Solasta) - .AddCustomSubFeatures( - new FeatHelpers.ToolOrExpertise(ToolTypeDefinitions.HerbalismKitType, - proficiencyCraftyHerbalismKit, proficiencyCraftyHerbalismKitExpertise), - new FeatHelpers.SkillOrExpertise(DatabaseHelper.SkillDefinitions.Medecine, - proficiencyCraftyMedicine, proficiencyCraftyMedicineExpertise)) + .SetFeatures(AttributeModifierCreed_Of_Solasta, proficiencyCraftyHerbalismKit, proficiencyCraftyMedicine) .SetFeatFamily("Apothecary") .AddToDB(); @@ -166,36 +94,21 @@ internal static void CreateFeats([NotNull] List feats) var featToxicologistInt = FeatDefinitionBuilder .Create("FeatToxicologistInt") .SetGuiPresentation(Category.Feat) - .SetFeatures(AttributeModifierCreed_Of_Pakri) - .AddCustomSubFeatures( - new FeatHelpers.ToolOrExpertise(ToolTypeDefinitions.PoisonersKitType, - proficiencyCraftyPoisonersKit, proficiencyCraftyPoisonersKitExpertise), - new FeatHelpers.SkillOrExpertise(DatabaseHelper.SkillDefinitions.Nature, - proficiencyCraftyNature, proficiencyCraftyNatureExpertise)) + .SetFeatures(AttributeModifierCreed_Of_Pakri, proficiencyCraftyPoisonersKit, proficiencyCraftyNature) .SetFeatFamily("Toxicologist") .AddToDB(); var featToxicologistWis = FeatDefinitionBuilder .Create("FeatToxicologistWis") .SetGuiPresentation(Category.Feat) - .SetFeatures(AttributeModifierCreed_Of_Maraike) - .AddCustomSubFeatures( - new FeatHelpers.ToolOrExpertise(ToolTypeDefinitions.PoisonersKitType, - proficiencyCraftyPoisonersKit, proficiencyCraftyPoisonersKitExpertise), - new FeatHelpers.SkillOrExpertise(DatabaseHelper.SkillDefinitions.Nature, - proficiencyCraftyNature, proficiencyCraftyNatureExpertise)) + .SetFeatures(AttributeModifierCreed_Of_Maraike, proficiencyCraftyPoisonersKit, proficiencyCraftyNature) .SetFeatFamily("Toxicologist") .AddToDB(); var featToxicologistCha = FeatDefinitionBuilder .Create("FeatToxicologistCha") .SetGuiPresentation(Category.Feat) - .SetFeatures(AttributeModifierCreed_Of_Solasta) - .AddCustomSubFeatures( - new FeatHelpers.ToolOrExpertise(ToolTypeDefinitions.PoisonersKitType, - proficiencyCraftyPoisonersKit, proficiencyCraftyPoisonersKitExpertise), - new FeatHelpers.SkillOrExpertise(DatabaseHelper.SkillDefinitions.Nature, - proficiencyCraftyNature, proficiencyCraftyNatureExpertise)) + .SetFeatures(AttributeModifierCreed_Of_Solasta, proficiencyCraftyPoisonersKit, proficiencyCraftyNature) .SetFeatFamily("Toxicologist") .AddToDB(); @@ -212,12 +125,7 @@ internal static void CreateFeats([NotNull] List feats) .Create("FeatCraftyScriber") .SetGuiPresentation(Category.Feat) .SetMustCastSpellsPrerequisite() - .SetFeatures(AttributeModifierCreed_Of_Pakri) - .AddCustomSubFeatures( - new FeatHelpers.ToolOrExpertise(ToolTypeDefinitions.ScrollKitType, - proficiencyCraftyScrollKit, proficiencyCraftyScrollKitExpertise), - new FeatHelpers.SkillOrExpertise(DatabaseHelper.SkillDefinitions.Arcana, - proficiencyCraftyArcana, proficiencyCraftyArcanaExpertise)) + .SetFeatures(AttributeModifierCreed_Of_Pakri, proficiencyCraftyScrollKit, proficiencyCraftyArcana) .AddToDB(); // @@ -229,6 +137,7 @@ internal static void CreateFeats([NotNull] List feats) .SetGuiPresentation(Category.Feat) .SetFeatures( AttributeModifierCreed_Of_Pakri, + proficiencyCraftyArcana, FeatureDefinitionPowerBuilder .Create("PowerFeatArcanist") .SetGuiPresentation(SpellDefinitions.DetectMagic.GuiPresentation) @@ -238,9 +147,6 @@ internal static void CreateFeats([NotNull] List feats) .Create(SpellDefinitions.DetectMagic) .Build()) .AddToDB()) - .AddCustomSubFeatures( - new FeatHelpers.SkillOrExpertise(DatabaseHelper.SkillDefinitions.Arcana, - proficiencyCraftyArcana, proficiencyCraftyArcanaExpertise)) .AddToDB(); // @@ -252,6 +158,7 @@ internal static void CreateFeats([NotNull] List feats) .SetGuiPresentation(Category.Feat) .SetFeatures( AttributeModifierCreed_Of_Pakri, + proficiencyCraftyReligion, FeatureDefinitionPowerBuilder .Create("PowerFeatTheologian") .SetGuiPresentation(SpellDefinitions.DetectEvilAndGood.GuiPresentation) @@ -261,9 +168,6 @@ internal static void CreateFeats([NotNull] List feats) .Create(SpellDefinitions.DetectEvilAndGood) .Build()) .AddToDB()) - .AddCustomSubFeatures( - new FeatHelpers.SkillOrExpertise(DatabaseHelper.SkillDefinitions.Religion, - proficiencyCraftyReligion, proficiencyCraftyReligionExpertise)) .AddToDB(); // diff --git a/SolastaUnfinishedBusiness/Feats/OtherFeats.cs b/SolastaUnfinishedBusiness/Feats/OtherFeats.cs index d16ccf6fe0..bc65bf41a9 100644 --- a/SolastaUnfinishedBusiness/Feats/OtherFeats.cs +++ b/SolastaUnfinishedBusiness/Feats/OtherFeats.cs @@ -452,23 +452,12 @@ private static FeatDefinition BuildPickPocket() .Create(FeatureDefinitionProficiencys.ProficiencyFeatLockbreaker, "ProficiencyFeatPickPocket") .SetGuiPresentation("FeatPickPocket", Category.Feat) - .SetProficiencies(ProficiencyType.Skill, SkillDefinitions.SleightOfHand) - .AddToDB(); - - var proficiencyFeatPickPocketExpertise = FeatureDefinitionProficiencyBuilder - .Create(FeatureDefinitionProficiencys.ProficiencyFeatLockbreaker, - "ProficiencyFeatPickPocketExpertise") - .SetGuiPresentation("FeatPickPocket", Category.Feat) - .SetProficiencies(ProficiencyType.Expertise, SkillDefinitions.SleightOfHand) + .SetProficiencies(ProficiencyType.SkillOrExpertise, SkillDefinitions.SleightOfHand) .AddToDB(); return FeatDefinitionBuilder .Create(FeatDefinitions.Lockbreaker, "FeatPickPocket") - .SetFeatures(abilityCheckAffinityFeatPickPocket) - .AddCustomSubFeatures( - new FeatHelpers.SkillOrExpertise( - DatabaseHelper.SkillDefinitions.SleightOfHand, - proficiencyFeatPickPocket, proficiencyFeatPickPocketExpertise)) + .SetFeatures(abilityCheckAffinityFeatPickPocket, proficiencyFeatPickPocket) .SetGuiPresentation(Category.Feat) .AddToDB(); } @@ -579,19 +568,13 @@ private static FeatDefinition BuildWeaponMaster(List feats) private static readonly FeatDefinition FeatStealthy = FeatDefinitionBuilder .Create(FeatStealthyName) .SetGuiPresentation(Category.Feat) - .SetFeatures(AttributeModifierCreed_Of_Misaye) - .AddCustomSubFeatures( - new FeatHelpers.SkillOrExpertise(DatabaseHelper.SkillDefinitions.Stealth, - FeatureDefinitionProficiencyBuilder - .Create($"Proficiency{FeatStealthyName}") - .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Skill, SkillDefinitions.Stealth) - .AddToDB(), - FeatureDefinitionProficiencyBuilder - .Create($"Proficiency{FeatStealthyName}Expertise") - .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Expertise, SkillDefinitions.Stealth) - .AddToDB())) + .SetFeatures( + AttributeModifierCreed_Of_Misaye, + FeatureDefinitionProficiencyBuilder + .Create($"Proficiency{FeatStealthyName}") + .SetGuiPresentationNoContent(true) + .SetProficiencies(ProficiencyType.SkillOrExpertise, SkillDefinitions.Stealth) + .AddToDB()) .AddToDB(); internal static readonly Dictionary> FeatStealthPositionsCache = []; @@ -635,13 +618,7 @@ private static FeatDefinitionWithPrerequisites BuildMenacing() var proficiencySkill = FeatureDefinitionProficiencyBuilder .Create($"Proficiency{NAME}") .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Skill, SkillDefinitions.Intimidation) - .AddToDB(); - - var proficiencyExpertise = FeatureDefinitionProficiencyBuilder - .Create($"Proficiency{NAME}Expertise") - .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Expertise, SkillDefinitions.Intimidation) + .SetProficiencies(ProficiencyType.SkillOrExpertise, SkillDefinitions.Intimidation) .AddToDB(); var condition = ConditionDefinitionBuilder @@ -665,14 +642,12 @@ private static FeatDefinitionWithPrerequisites BuildMenacing() power.AddCustomSubFeatures( ValidatorsValidatePowerUse.HasMainAttackAvailable, - new CustomBehaviorMenacing(condition), - new FeatHelpers.SkillOrExpertise(DatabaseHelper.SkillDefinitions.Intimidation, - proficiencySkill, proficiencyExpertise)); + new CustomBehaviorMenacing(condition)); var feat = FeatDefinitionWithPrerequisitesBuilder .Create(NAME) .SetGuiPresentation(Category.Feat) - .SetFeatures(AttributeModifierCreed_Of_Solasta, power) + .SetFeatures(AttributeModifierCreed_Of_Solasta, power, proficiencySkill) .AddToDB(); return feat; @@ -1193,22 +1168,13 @@ private static FeatDefinition BuildAcrobat() var skill = FeatureDefinitionProficiencyBuilder .Create($"Proficiency{Name}") .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Skill, SkillDefinitions.Acrobatics) - .AddToDB(); - - var expertise = FeatureDefinitionProficiencyBuilder - .Create($"Proficiency{Name}Expertise") - .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Expertise, SkillDefinitions.Acrobatics) + .SetProficiencies(ProficiencyType.SkillOrExpertise, SkillDefinitions.Acrobatics) .AddToDB(); return FeatDefinitionBuilder .Create(Name) .SetGuiPresentation(Category.Feat) - .SetFeatures(AttributeModifierCreed_Of_Misaye, power) - .AddCustomSubFeatures( - new FeatHelpers.SkillOrExpertise(DatabaseHelper.SkillDefinitions.Acrobatics, - skill, expertise)) + .SetFeatures(AttributeModifierCreed_Of_Misaye, power, skill) .AddToDB(); } @@ -1278,31 +1244,21 @@ private static FeatDefinition BuildAthlete(List feats) var skill = FeatureDefinitionProficiencyBuilder .Create($"Proficiency{Name}") .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Skill, SkillDefinitions.Athletics) + .SetProficiencies(ProficiencyType.SkillOrExpertise, SkillDefinitions.Athletics) .AddToDB(); - var expertise = FeatureDefinitionProficiencyBuilder - .Create($"Proficiency{Name}Expertise") - .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Expertise, SkillDefinitions.Athletics) - .AddToDB(); - - var customBehavior = new FeatHelpers.SkillOrExpertise(DatabaseHelper.SkillDefinitions.Athletics, - skill, expertise); FeatAthleteStr = FeatDefinitionBuilder .Create($"Feat{Name}Str") .SetGuiPresentation(Category.Feat) - .SetFeatures(AttributeModifierCreed_Of_Einar, movementAffinity) - .AddCustomSubFeatures(customBehavior) + .SetFeatures(AttributeModifierCreed_Of_Einar, movementAffinity, skill) .SetFeatFamily(Name) .AddToDB(); FeatAthleteDex = FeatDefinitionBuilder .Create($"Feat{Name}Dex") .SetGuiPresentation(Category.Feat) - .SetFeatures(AttributeModifierCreed_Of_Misaye, movementAffinity) - .AddCustomSubFeatures(customBehavior) + .SetFeatures(AttributeModifierCreed_Of_Misaye, movementAffinity, skill) .SetFeatFamily(Name) .AddToDB(); @@ -1961,27 +1917,18 @@ private static FeatDefinition BuildHealer() var proficiencyFeatHealerMedicine = FeatureDefinitionProficiencyBuilder .Create("ProficiencyFeatHealerMedicine") .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Skill, SkillDefinitions.Medecine) - .AddToDB(); - - var proficiencyFeatHealerMedicineExpertise = FeatureDefinitionProficiencyBuilder - .Create("ProficiencyFeatHealerMedicineExpertise") - .SetGuiPresentationNoContent(true) - .SetProficiencies(ProficiencyType.Expertise, SkillDefinitions.Medecine) + .SetProficiencies(ProficiencyType.SkillOrExpertise, SkillDefinitions.Medecine) .AddToDB(); return FeatDefinitionBuilder .Create("FeatHealer") .SetGuiPresentation(Category.Feat, PowerFunctionGoodberryHealingOther) .SetFeatures( + proficiencyFeatHealerMedicine, powerFeatHealerMedKit, powerFeatHealerResuscitate, powerFeatHealerStabilize, proficiencyFeatHealerMedicine) - .AddCustomSubFeatures( - new FeatHelpers.SkillOrExpertise( - DatabaseHelper.SkillDefinitions.Medecine, - proficiencyFeatHealerMedicine, proficiencyFeatHealerMedicineExpertise)) .AddToDB(); } diff --git a/SolastaUnfinishedBusiness/Feats/_FeatHelpers.cs b/SolastaUnfinishedBusiness/Feats/_FeatHelpers.cs index 5c8cff0093..aa23080c9f 100644 --- a/SolastaUnfinishedBusiness/Feats/_FeatHelpers.cs +++ b/SolastaUnfinishedBusiness/Feats/_FeatHelpers.cs @@ -1,5 +1,4 @@ using System.Collections.Generic; -using System.Linq; using JetBrains.Annotations; using SolastaUnfinishedBusiness.Interfaces; using static RuleDefinitions; @@ -34,64 +33,6 @@ public void ModifyAttackMode(RulesetCharacter character, [CanBeNull] RulesetAtta } } - internal sealed class SkillOrExpertise( - SkillDefinition skillDefinition, - FeatureDefinitionProficiency skill, - FeatureDefinitionProficiency expertise) : ICustomLevelUpLogic - { - public void ApplyFeature(RulesetCharacterHero hero, string tag) - { - var buildingData = hero.GetHeroBuildingData(); - var hasSkill = hero.TrainedSkills.Contains(skillDefinition) || - buildingData.LevelupTrainedSkills.Any(x => x.Value.Contains(skillDefinition)); - - if (hasSkill) - { - hero.ActiveFeatures[tag].TryAdd(expertise); - hero.TrainedExpertises.TryAdd(skillDefinition.Name); - } - else - { - hero.ActiveFeatures[tag].TryAdd(skill); - hero.TrainedSkills.TryAdd(skillDefinition); - } - } - - public void RemoveFeature(RulesetCharacterHero hero, string tag) - { - // empty - } - } - - internal sealed class ToolOrExpertise( - ToolTypeDefinition toolTypeDefinition, - FeatureDefinitionProficiency tool, - FeatureDefinitionProficiency expertise) : ICustomLevelUpLogic - { - public void ApplyFeature(RulesetCharacterHero hero, string tag) - { - var buildingData = hero.GetHeroBuildingData(); - var hasTool = hero.TrainedToolTypes.Contains(toolTypeDefinition) || - buildingData.LevelupTrainedToolTypes.Any(x => x.Value.Contains(toolTypeDefinition)); - - if (hasTool) - { - hero.ActiveFeatures[tag].TryAdd(expertise); - hero.TrainedExpertises.TryAdd(toolTypeDefinition.Name); - } - else - { - hero.ActiveFeatures[tag].TryAdd(tool); - hero.TrainedToolTypes.TryAdd(toolTypeDefinition); - } - } - - public void RemoveFeature(RulesetCharacterHero hero, string tag) - { - // empty - } - } - internal sealed class SpellTag { internal SpellTag(string spellTag, bool forceFixedList = false) From 5f384a7609c4b921339bfc8f6553f82f5875f6bf Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Mon, 27 May 2024 08:42:29 -0700 Subject: [PATCH 30/35] minor tweaks --- .../ChangelogHistory.txt | 31 ++++++------- .../GameLocationTargetingManagerPatcher.cs | 4 +- .../Subclasses/RangerFeyWanderer.cs | 43 +++++++++++++++++++ .../Translations/en/Feats/OtherFeats-en.txt | 2 +- 4 files changed, 61 insertions(+), 19 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 330b4afaef..7695bea1db 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,19 +1,26 @@ 1.5.97.11: -- fixed Apothecary feat to grant Medicine regardless of chosen attribute -- fixed Chain Lightning to not consider allies or unperceived enemies -- fixed Domain Forge blessed metal immunity and resistance logic +- fixed Chain Lighting to not consider allies +- fixed Domain Forge blessed metal feature immunity and resistance logic - fixed Earthquake spell interaction with Widened metamagic - fixed Gravity Sinkhole spell movement to effect origin - fixed Gray, Ironborn, and Obsidian Dwarf subclasses missing normal and darkvision senses -- fixed Martial Psi-Warrior force powered strike not triggering on ranged attacks -- fixed Ranger Fey Wanderer misty step to prevent a main levelled spell to be cast -- fixed skills, tools, and expertise when granted from feats +- fixed Martial Psi-Warrior force powered strike feature not triggering on ranged attacks +- fixed Ranger Fey Wanderer misty step feature to prevent a main levelled spell to be cast on use +- fixed Ranger Fey Wanderer misty step feature to only allow target allies within 5ft +- fixed Ranger Fey Wanderer to allow invite an optional ally on misty step spell cast from level 15 +- fixed skills, tools, and expertise when granted from feats [might need RESPEC on feats that grant skill or tools] - fixed Taunted condition to not enforce disadvantage against taunter - fixed Thunderstep spell interaction with Transmuted metamagic -- fixed Thunderstep spell to only allow optional allies within 5ft -- fixed Toxicologist feat to grant Nature regardless of chosen attribute -- fixed Wizard War Magic durable magic to add +2 on concentration checks +- fixed Thunderstep spell to only allow target allies within 5ft +- fixed Wizard War Magic durable magic feature to add +2 on concentration checks + +KNOWN ISSUES: + +- Artillerist Force Ballista tiny cannon doesn't force attack DIS within 5 ft [won't fix] +- Artillerist Fortified Position medium cannon doesn't grant buff to self [won't fix] +- Chaos Bolt damage will be of wrong type under multiplayer sessions if twinned and one bolt misses [won't fix] +- Domain Nature doesn't get a cantrip offered at level 4 1.5.97.10 - Os cães ladram e a caravana passa: @@ -32,12 +39,6 @@ - fixed Witch Bolt spell to remove concentration on teleport scenarios when target becomes outside range - fixed Wither and Bloom spell doubling damage under multiplayer sessions -KNOWN ISSUES: - -- Artillerist Force Ballista tiny cannon doesn't force attack DIS within 5 ft [probably won't fix] -- Artillerist Fortified Position medium cannon doesn't grant buff to self [probably won't fix] -- Chaos Bolt damage will be of wrong type under multiplayer sessions if twinned and bolt misses [won't fix] - 1.5.97.9: - converted Astral Reach feat to fighting style and removed +1 to WIS and opportunity attacks diff --git a/SolastaUnfinishedBusiness/Patches/GameLocationTargetingManagerPatcher.cs b/SolastaUnfinishedBusiness/Patches/GameLocationTargetingManagerPatcher.cs index 60f4a93da1..93ce1dd4ad 100644 --- a/SolastaUnfinishedBusiness/Patches/GameLocationTargetingManagerPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/GameLocationTargetingManagerPatcher.cs @@ -5,7 +5,6 @@ using System.Reflection.Emit; using HarmonyLib; using JetBrains.Annotations; -using SolastaUnfinishedBusiness.Api.GameExtensions; using SolastaUnfinishedBusiness.Api.Helpers; using SolastaUnfinishedBusiness.Models; using UnityEngine; @@ -165,7 +164,7 @@ public static void Postfix(CursorLocationGeometricShape __instance) } } - //BUGFIX: Chain Lightning allow targeting enemies that cannot be perceived creating soft lock situations + //BUGFIX: Chain Lightning allow targeting allies [HarmonyPatch(typeof(GameLocationTargetingManager), "IGameLocationTargetingService.ComputeAndSortSubtargets")] [SuppressMessage("Minor Code Smell", "S101:Types should be named in PascalCase", Justification = "Patch")] [UsedImplicitly] @@ -229,7 +228,6 @@ private static void ComputeAndSortSubtargets( if (validEntity != mainTarget && //BEGIN PATCH - caster.CanPerceiveTarget(validEntity) && caster.IsOppositeSide(validEntity.Side) && //END PATCH battleService.IsWithinXCells(mainTarget, validEntity, range)) diff --git a/SolastaUnfinishedBusiness/Subclasses/RangerFeyWanderer.cs b/SolastaUnfinishedBusiness/Subclasses/RangerFeyWanderer.cs index 093e5004e7..d79a1d53b9 100644 --- a/SolastaUnfinishedBusiness/Subclasses/RangerFeyWanderer.cs +++ b/SolastaUnfinishedBusiness/Subclasses/RangerFeyWanderer.cs @@ -196,6 +196,8 @@ public RangerFeyWanderer() .AddCustomSubFeatures(new CustomBehaviorMistyWanderer()) .AddToDB(); + MistyStep.AddCustomSubFeatures(new CustomBehaviorMistyStep()); + // // MAIN // @@ -348,6 +350,47 @@ private static bool HasCharmedOrFrightened(List effectForms) } } + private sealed class CustomBehaviorMistyStep : IModifyEffectDescription, IFilterTargetingCharacter + { + public bool EnforceFullSelection => false; + + public bool IsValid(CursorLocationSelectTarget __instance, GameLocationCharacter target) + { + if (target.RulesetCharacter == null) + { + return false; + } + + var isValid = + target.RulesetCharacter is not RulesetCharacterEffectProxy && + __instance.ActionParams.ActingCharacter.IsWithinRange(target, 1); + + if (!isValid) + { + __instance.actionModifier.FailureFlags.Add("Tooltip/&MustBeWithin5ft"); + } + + return isValid; + } + + public bool IsValid(BaseDefinition definition, RulesetCharacter character, EffectDescription effectDescription) + { + return definition == MistyStep && + character.GetSubclassLevel(CharacterClassDefinitions.Ranger, Name) >= 15; + } + + public EffectDescription GetEffectDescription( + BaseDefinition definition, + EffectDescription effectDescription, + RulesetCharacter character, + RulesetEffect rulesetEffect) + { + effectDescription.inviteOptionalAlly = true; + + return effectDescription; + } + } + private sealed class CustomBehaviorMistyWanderer : IMagicEffectInitiatedByMe, IFilterTargetingCharacter { public bool EnforceFullSelection => false; diff --git a/SolastaUnfinishedBusiness/Translations/en/Feats/OtherFeats-en.txt b/SolastaUnfinishedBusiness/Translations/en/Feats/OtherFeats-en.txt index ea2cce7008..7a8b782cfc 100644 --- a/SolastaUnfinishedBusiness/Translations/en/Feats/OtherFeats-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/Feats/OtherFeats-en.txt @@ -70,7 +70,7 @@ Feat/&FeatPoisonousSkinDescription=Any creature that hits you in melee or is hit Feat/&FeatPoisonousSkinTitle=Poisonous Skin Feat/&FeatSpellSniperDescription=You learn one cantrip of your choice from the {0} spell list. When you cast a spell that requires you to make an attack roll, the spell's range is doubled. Your ranged spell attacks ignore half cover and three-quarters cover. Feat/&FeatSpellSniperTitle=Spell Sniper [{0}] -Feat/&FeatStealthyDescription=You know how best to hide. You gain the following benefits:\n• Increase your Dexterity by 1, to a maximum of 20.\n• You gain proficiency with Stealthy skill or expertise if you are already proficient.\n• If you are hidden, you can move in the open without revealing yourself if you end the move in a position where you're not clearly visible. +Feat/&FeatStealthyDescription=You know how best to hide. You gain the following benefits:\n• Increase your Dexterity by 1, to a maximum of 20.\n• You gain proficiency with Stealth skill or expertise if you are already proficient.\n• If you are hidden, you can move in the open without revealing yourself if you end the move in a position where you're not clearly visible. Feat/&FeatStealthyTitle=Stealthy Feat/&FeatTacticianAdeptDescription=You have martial training that allows you to perform special combat techniques called maneuvers:\n• You learn two maneuvers of your choice from the Battle Master subclass. The Maneuver DC of these maneuvers is 8 + proficiency bonus + Strength or Dexterity modifier, whichever is higher.\n• You gain 1 Superiority Die. The die is a d6, and it doesn't increase in size if you are not a Battle Master. This die is used to fuel your maneuvers. It is expended when you use it, and is regained when you finish a short or long rest. Feat/&FeatTacticianAdeptTitle=Martial Adept From 75f0788bdb1bba07383783e605b3e64eb9684b1d Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Mon, 27 May 2024 08:46:32 -0700 Subject: [PATCH 31/35] fix RU translation --- SolastaUnfinishedBusiness/Translations/ru/Feats/Crafty-ru.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SolastaUnfinishedBusiness/Translations/ru/Feats/Crafty-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Feats/Crafty-ru.txt index 27e8b9f812..8b175f1de9 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Feats/Crafty-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Feats/Crafty-ru.txt @@ -10,9 +10,9 @@ Feat/&FeatCraftyScriberDescription=Увеличьте значение Инте Feat/&FeatCraftyScriberTitle=Писарь Feat/&FeatTheologianDescription=Ваши познания в религии дают вам следующие бонусы:\n• Увеличьте значение Интеллекта на 1, при максимуме 20.\n• Вы получаете владение навыком Религия или компетентность в нём, если уже владеете им.\n• Вы изучаете заклинание Обнаружение зла и добра. Вы можете один раз наложить это заклинание без траты ячеек. Вы должны закончить продолжительный отдых, прежде чем сможете наложить это заклинание ещё раз таким образом. Feat/&FeatTheologianTitle=Теолог -Feat/&FeatToxicologistChaDescription=Увеличьте значение Харизмы на 1 при максимуме 20.\nВы получаете владение Набором отравителя и навыком Дрессировки животных, либо компетентность, если уже владеете ими. +Feat/&FeatToxicologistChaDescription=Увеличьте значение Харизмы на 1 при максимуме 20.\nВы получаете владение Набором отравителя и навыком Природы, либо компетентность, если уже владеете ими. Feat/&FeatToxicologistChaTitle=Токсиколог [ХАР] Feat/&FeatToxicologistIntDescription=Увеличьте значение Интеллекта на 1 при максимуме 20.\nВы получаете владение Набором отравителя и навыком Природы, либо компетентность, если уже владеете ими. Feat/&FeatToxicologistIntTitle=Токсиколог [ИНТ] -Feat/&FeatToxicologistWisDescription=Увеличьте значение Мудрости на 1 при максимуме 20.\nВы получаете владение Набором отравителя и навыком Медицины, либо компетентность, если уже владеете ими. +Feat/&FeatToxicologistWisDescription=Увеличьте значение Мудрости на 1 при максимуме 20.\nВы получаете владение Набором отравителя и навыком Природы, либо компетентность, если уже владеете ими. Feat/&FeatToxicologistWisTitle=Токсиколог [МДР] From 4132300aa395e11cf71c602641d5d4f64f7d47e7 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Mon, 27 May 2024 08:53:17 -0700 Subject: [PATCH 32/35] minor tweaks --- .../UnfinishedBusinessBlueprints/Assets.txt | 3 -- .../CraftingAffinityFeatPoisoner.json | 46 ------------------- .../ChangelogHistory.txt | 2 +- SolastaUnfinishedBusiness/Feats/ClassFeats.cs | 8 ---- 4 files changed, 1 insertion(+), 58 deletions(-) delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCraftingAffinity/CraftingAffinityFeatPoisoner.json diff --git a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt index 02a0f76c21..9008c18776 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt +++ b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt @@ -2016,7 +2016,6 @@ ConditionAffinityPathOfTheSpiritsWolfLeadershipPack FeatureDefinitionConditionAf ConditionAffinityRangerSurvivalistDeafenedImmunity FeatureDefinitionConditionAffinity FeatureDefinition 7d3479ef-90c8-57a1-9650-fce705a9e7da ConditionAffinityRangerWildMasterBeastCompanion FeatureDefinitionConditionAffinity FeatureDefinition 2bd6cfd4-49bf-5687-9b68-4f3765984ce2 ConditionAffinityRiftWalkerRestrainedImmunity FeatureDefinitionConditionAffinity FeatureDefinition 92cb7a89-3554-567c-a62e-f72c78cd34f1 -CraftingAffinityFeatPoisoner FeatureDefinitionCraftingAffinity FeatureDefinition 389115d9-e9a4-5d8a-82df-04d55e000dde CraftingAffinityInventorMagicItemAdept FeatureDefinitionCraftingAffinity FeatureDefinition 26842e0a-9c1e-5740-ad4d-871da69932b1 CustomCodeBarbarianPrimalChampion FeatureDefinition FeatureDefinition 85dac7d1-5e2a-5f02-983b-65b1905810b3 CustomFeatBowMastery FeatureDefinitionAttackModifier FeatureDefinition 212038a4-5bbf-5f46-8cc9-f64d8c5a9470 @@ -4242,7 +4241,6 @@ ConditionAffinityPathOfTheSpiritsWolfLeadershipPack FeatureDefinitionConditionAf ConditionAffinityRangerSurvivalistDeafenedImmunity FeatureDefinitionConditionAffinity FeatureDefinitionAffinity 7d3479ef-90c8-57a1-9650-fce705a9e7da ConditionAffinityRangerWildMasterBeastCompanion FeatureDefinitionConditionAffinity FeatureDefinitionAffinity 2bd6cfd4-49bf-5687-9b68-4f3765984ce2 ConditionAffinityRiftWalkerRestrainedImmunity FeatureDefinitionConditionAffinity FeatureDefinitionAffinity 92cb7a89-3554-567c-a62e-f72c78cd34f1 -CraftingAffinityFeatPoisoner FeatureDefinitionCraftingAffinity FeatureDefinitionAffinity 389115d9-e9a4-5d8a-82df-04d55e000dde CraftingAffinityInventorMagicItemAdept FeatureDefinitionCraftingAffinity FeatureDefinitionAffinity 26842e0a-9c1e-5740-ad4d-871da69932b1 CustomFeatBowMastery FeatureDefinitionAttackModifier FeatureDefinitionAffinity 212038a4-5bbf-5f46-8cc9-f64d8c5a9470 CustomFeatCrossbowMastery FeatureDefinitionAttackModifier FeatureDefinitionAffinity a4ec8c17-b6fd-50b7-94db-fbc427328096 @@ -4848,7 +4846,6 @@ ConditionAffinityPathOfTheSpiritsWolfLeadershipPack FeatureDefinitionConditionAf ConditionAffinityRangerSurvivalistDeafenedImmunity FeatureDefinitionConditionAffinity FeatureDefinitionConditionAffinity 7d3479ef-90c8-57a1-9650-fce705a9e7da ConditionAffinityRangerWildMasterBeastCompanion FeatureDefinitionConditionAffinity FeatureDefinitionConditionAffinity 2bd6cfd4-49bf-5687-9b68-4f3765984ce2 ConditionAffinityRiftWalkerRestrainedImmunity FeatureDefinitionConditionAffinity FeatureDefinitionConditionAffinity 92cb7a89-3554-567c-a62e-f72c78cd34f1 -CraftingAffinityFeatPoisoner FeatureDefinitionCraftingAffinity FeatureDefinitionCraftingAffinity 389115d9-e9a4-5d8a-82df-04d55e000dde CraftingAffinityInventorMagicItemAdept FeatureDefinitionCraftingAffinity FeatureDefinitionCraftingAffinity 26842e0a-9c1e-5740-ad4d-871da69932b1 DamageAffinityCollegeOfLifeNecroticResistance FeatureDefinitionDamageAffinity FeatureDefinitionDamageAffinity 6905cb79-96ab-5ccd-8b13-3f772741a763 DamageAffinityCorruptingBoltDamageAcid FeatureDefinitionDamageAffinity FeatureDefinitionDamageAffinity 8b5ccfca-1d48-5ab5-853a-aa90ee381b99 diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCraftingAffinity/CraftingAffinityFeatPoisoner.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCraftingAffinity/CraftingAffinityFeatPoisoner.json deleted file mode 100644 index ef570a55bc..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCraftingAffinity/CraftingAffinityFeatPoisoner.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "$type": "FeatureDefinitionCraftingAffinity, Assembly-CSharp", - "affinityGroups": [ - { - "$type": "FeatureDefinitionCraftingAffinity+CraftingAffinityGroup, Assembly-CSharp", - "tooltype": "Definition:ThievesToolsType:e66aec4e31070654080430e82b532bf8", - "durationMultiplier": 0.5, - "doubleProficiencyBonus": true - }, - { - "$type": "FeatureDefinitionCraftingAffinity+CraftingAffinityGroup, Assembly-CSharp", - "tooltype": "Definition:PoisonersKitType:2dd58398fc1262f45942184f61a81dd9", - "durationMultiplier": 0.5, - "doubleProficiencyBonus": true - } - ], - "myselfFamilyRestrictions": [], - "otherCharacterFamilyRestrictions": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "389115d9-e9a4-5d8a-82df-04d55e000dde", - "contentPack": 9999, - "name": "CraftingAffinityFeatPoisoner" -} \ No newline at end of file diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 7695bea1db..080c3fc950 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -9,7 +9,7 @@ - fixed Ranger Fey Wanderer misty step feature to prevent a main levelled spell to be cast on use - fixed Ranger Fey Wanderer misty step feature to only allow target allies within 5ft - fixed Ranger Fey Wanderer to allow invite an optional ally on misty step spell cast from level 15 -- fixed skills, tools, and expertise when granted from feats [might need RESPEC on feats that grant skill or tools] +- fixed skills, tools, and expertise granted from feats [might need RESPEC on Arcanist, Poisoner, Toxicologist, etc.] - fixed Taunted condition to not enforce disadvantage against taunter - fixed Thunderstep spell interaction with Transmuted metamagic - fixed Thunderstep spell to only allow target allies within 5ft diff --git a/SolastaUnfinishedBusiness/Feats/ClassFeats.cs b/SolastaUnfinishedBusiness/Feats/ClassFeats.cs index 4831f0b98d..6afbe2089a 100644 --- a/SolastaUnfinishedBusiness/Feats/ClassFeats.cs +++ b/SolastaUnfinishedBusiness/Feats/ClassFeats.cs @@ -239,14 +239,6 @@ private static FeatDefinitionWithPrerequisites BuildPoisoner() { const string Name = "FeatPoisoner"; - // kept for backward compatibility - _ = FeatureDefinitionCraftingAffinityBuilder - .Create($"CraftingAffinity{Name}") - .SetGuiPresentationNoContent(true) - .SetAffinityGroups(0.5f, true, ToolTypeDefinitions.ThievesToolsType, - ToolTypeDefinitions.PoisonersKitType) - .AddToDB(); - return FeatDefinitionWithPrerequisitesBuilder .Create(Name) .SetGuiPresentation(Category.Feat) From 8e2ffe90943231fc01b2decd7cb4b68c1219a3d4 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Mon, 27 May 2024 10:41:22 -0700 Subject: [PATCH 33/35] fix Domain Nature not getting a cantrip offered at level 4 --- .../Subclasses/DomainNature.cs | 35 +++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/SolastaUnfinishedBusiness/Subclasses/DomainNature.cs b/SolastaUnfinishedBusiness/Subclasses/DomainNature.cs index 6f3d1031b5..1df51d95b8 100644 --- a/SolastaUnfinishedBusiness/Subclasses/DomainNature.cs +++ b/SolastaUnfinishedBusiness/Subclasses/DomainNature.cs @@ -10,6 +10,7 @@ using SolastaUnfinishedBusiness.Builders.Features; using SolastaUnfinishedBusiness.CustomUI; using SolastaUnfinishedBusiness.Interfaces; +using SolastaUnfinishedBusiness.Models; using SolastaUnfinishedBusiness.Properties; using static RuleDefinitions; using static SolastaUnfinishedBusiness.Api.DatabaseHelper; @@ -33,6 +34,9 @@ public sealed class DomainNature : AbstractSubclass DamageTypeThunder ]; + private static FeatureDefinitionCastSpell _castSpellDomainNature; + private static CharacterSubclassDefinition _domainNature; + public DomainNature() { var divinePowerPrefix = Gui.Localize("Feature/&ClericChannelDivinityTitle") + ": "; @@ -52,6 +56,22 @@ public DomainNature() // LEVEL 01 - Acolyte of Nature + var spellListDomainNature = SpellListDefinitionBuilder + .Create($"SpellList{Name}") + .SetGuiPresentationNoContent(true) + .FinalizeSpells() + .AddToDB(); + + //explicitly re-use druid spell list, so custom cantrips selected for druid will show here + spellListDomainNature.SpellsByLevel[0].Spells = SpellListDefinitions.SpellListDruid.SpellsByLevel[0].Spells; + + _castSpellDomainNature = FeatureDefinitionCastSpellBuilder + .Create(FeatureDefinitionCastSpells.CastSpellElfHigh, $"CastSpell{Name}") + .SetGuiPresentationNoContent(true) + .SetSpellCastingAbility(AttributeDefinitions.Wisdom) + .SetSpellList(spellListDomainNature) + .AddToDB(); + var pointPoolCantrip = FeatureDefinitionPointPoolBuilder .Create($"PointPool{Name}Cantrip") .SetGuiPresentationNoContent(true) @@ -82,6 +102,8 @@ public DomainNature() .AddFeatureSet(proficiencyHeavyArmor) .AddToDB(); + // cannot add cast spell here as for whatever reason game tries to offer cleric cantrips + // custom added later on GrantCantrip var featureSetAcolyteOfNature = FeatureDefinitionFeatureSetBuilder .Create($"FeatureSet{Name}AcolyteOfNature") .SetGuiPresentation(Category.Feature) @@ -231,7 +253,7 @@ public DomainNature() // MAIN - Subclass = CharacterSubclassDefinitionBuilder + _domainNature = CharacterSubclassDefinitionBuilder .Create(Name) .SetGuiPresentation(Category.Subclass, CharacterSubclassDefinitions.TraditionGreenmage) .AddFeaturesAtLevel(1, @@ -242,6 +264,8 @@ public DomainNature() .AddFeaturesAtLevel(10, PowerClericDivineInterventionWizard) .AddFeaturesAtLevel(17, featureSetMasterOfNature) .AddToDB(); + + Subclass = _domainNature; } internal override CharacterClassDefinition Klass => CharacterClassDefinitions.Cleric; @@ -263,9 +287,16 @@ internal static void GrantCantrip(RulesetCharacterHero hero) return; } + var selectedClass = LevelUpContext. GetSelectedClass(hero); + var selectedSubclass = LevelUpContext.GetSelectedSubclass(hero); + var subclassTag = AttributeDefinitions.GetSubclassTag(selectedClass, 1, selectedSubclass); + + hero.ActiveFeatures[subclassTag].Add(_castSpellDomainNature); + hero.GrantSpellRepertoire(_castSpellDomainNature, null, _domainNature, null); + foreach (var cantrip in cantrips) { - hero.GrantCantrip(cantrip, FeatureDefinitionCastSpells.CastSpellCleric); + hero.GrantCantrip(cantrip, _castSpellDomainNature); } } From a5236ab409be6fe8c0054c469e177194437f3bc1 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Mon, 27 May 2024 10:43:04 -0700 Subject: [PATCH 34/35] update collaterals --- .../UnfinishedBusinessBlueprints/Assets.txt | 3 + .../CastSpellDomainNature.json | 442 ++++++++++++++++++ .../SpellListDomainNature.json | 95 ++++ Documentation/Feats.md | 2 +- .../ChangelogHistory.txt | 9 +- 5 files changed, 546 insertions(+), 5 deletions(-) create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCastSpell/CastSpellDomainNature.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/SpellListDefinition/SpellListDomainNature.json diff --git a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt index 9008c18776..c598bfffca 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt +++ b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt @@ -1890,6 +1890,7 @@ CastSpellCelestialTouchedCharisma FeatureDefinitionCastSpell FeatureDefinition 5 CastSpellCelestialTouchedIntelligence FeatureDefinitionCastSpell FeatureDefinition 8b48d0b9-1d6d-5ba9-a69f-c10c461bb1ac CastSpellCelestialTouchedWisdom FeatureDefinitionCastSpell FeatureDefinition c30029d5-1f34-5a1a-baab-fb0e2d7ca24e CastSpellDarkelfMagic FeatureDefinitionCastSpell FeatureDefinition 6e220b82-738f-5b16-a85a-0b60414bf155 +CastSpellDomainNature FeatureDefinitionCastSpell FeatureDefinition 6c75c61f-8776-5dc3-9e94-37eeac872e07 CastSpellDraconicKoboldMagic FeatureDefinitionCastSpell FeatureDefinition b86bcf0e-1164-5b62-b1d0-6fe08be1dc4f CastSpellFairy FeatureDefinitionCastSpell FeatureDefinition 039073a8-0a8d-5cc1-bf62-8a7c816bafda CastSpellFeatDarkElfMagic FeatureDefinitionCastSpell FeatureDefinition 6fb3273c-08be-5009-975a-dfcf5384dfe5 @@ -4719,6 +4720,7 @@ CastSpellCelestialTouchedCharisma FeatureDefinitionCastSpell FeatureDefinitionCa CastSpellCelestialTouchedIntelligence FeatureDefinitionCastSpell FeatureDefinitionCastSpell 8b48d0b9-1d6d-5ba9-a69f-c10c461bb1ac CastSpellCelestialTouchedWisdom FeatureDefinitionCastSpell FeatureDefinitionCastSpell c30029d5-1f34-5a1a-baab-fb0e2d7ca24e CastSpellDarkelfMagic FeatureDefinitionCastSpell FeatureDefinitionCastSpell 6e220b82-738f-5b16-a85a-0b60414bf155 +CastSpellDomainNature FeatureDefinitionCastSpell FeatureDefinitionCastSpell 6c75c61f-8776-5dc3-9e94-37eeac872e07 CastSpellDraconicKoboldMagic FeatureDefinitionCastSpell FeatureDefinitionCastSpell b86bcf0e-1164-5b62-b1d0-6fe08be1dc4f CastSpellFairy FeatureDefinitionCastSpell FeatureDefinitionCastSpell 039073a8-0a8d-5cc1-bf62-8a7c816bafda CastSpellFeatDarkElfMagic FeatureDefinitionCastSpell FeatureDefinitionCastSpell 6fb3273c-08be-5009-975a-dfcf5384dfe5 @@ -11870,6 +11872,7 @@ SpellListBackgroundDevoted SpellListDefinition SpellListDefinition 7d820750-3307 SpellListBolgrif SpellListDefinition SpellListDefinition 3fc52c3c-e2e2-516e-8c9c-06ef13b2ffd9 SpellListCelestial SpellListDefinition SpellListDefinition e36b57f2-ed56-57b1-9525-de4da5517180 SpellListDarkelf SpellListDefinition SpellListDefinition 8145b021-dc93-598a-be91-978e71d0732f +SpellListDomainNature SpellListDefinition SpellListDefinition 7f7e1d16-393f-547d-af30-33ae65d39912 SpellListDraconicKobold SpellListDefinition SpellListDefinition 6d6fbcad-5330-5bb5-958e-a2b75ad198e1 SpellListElementalist SpellListDefinition SpellListDefinition 355a3a12-a0de-5347-9f15-7a0142365b14 SpellListEmpty SpellListDefinition SpellListDefinition 1c3a87f5-1edb-52ec-b63f-4fa05467a586 diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCastSpell/CastSpellDomainNature.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCastSpell/CastSpellDomainNature.json new file mode 100644 index 0000000000..a1b2c5fde6 --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCastSpell/CastSpellDomainNature.json @@ -0,0 +1,442 @@ +{ + "$type": "FeatureDefinitionCastSpell, Assembly-CSharp", + "spellCastingOrigin": "Race", + "spellcastingAbility": "Wisdom", + "spellcastingParametersComputation": "Dynamic", + "staticDCValue": 10, + "staticToHitValue": 4, + "spellListDefinition": "Definition:SpellListDomainNature:7f7e1d16-393f-547d-af30-33ae65d39912", + "restrictedSchools": [], + "spellKnowledge": "Selection", + "fixedSpellTag": "", + "spellReadyness": "AllKnown", + "spellPreparationCount": "AbilityBonusPlusLevel", + "slotsRecharge": "AtWill", + "uniqueLevelSlots": false, + "spellCastingLevel": -1, + "cantripsOnly": true, + "knownCantrips": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "knownSpells": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "scribedSpells": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "replacedSpells": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "slotsPerLevels": [ + { + "$type": "FeatureDefinitionCastSpell+SlotsByLevelDuplet, Assembly-CSharp", + "level": 1, + "slots": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "$type": "FeatureDefinitionCastSpell+SlotsByLevelDuplet, Assembly-CSharp", + "level": 2, + "slots": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "$type": "FeatureDefinitionCastSpell+SlotsByLevelDuplet, Assembly-CSharp", + "level": 3, + "slots": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "$type": "FeatureDefinitionCastSpell+SlotsByLevelDuplet, Assembly-CSharp", + "level": 4, + "slots": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "$type": "FeatureDefinitionCastSpell+SlotsByLevelDuplet, Assembly-CSharp", + "level": 5, + "slots": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "$type": "FeatureDefinitionCastSpell+SlotsByLevelDuplet, Assembly-CSharp", + "level": 6, + "slots": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "$type": "FeatureDefinitionCastSpell+SlotsByLevelDuplet, Assembly-CSharp", + "level": 7, + "slots": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "$type": "FeatureDefinitionCastSpell+SlotsByLevelDuplet, Assembly-CSharp", + "level": 8, + "slots": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "$type": "FeatureDefinitionCastSpell+SlotsByLevelDuplet, Assembly-CSharp", + "level": 9, + "slots": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "$type": "FeatureDefinitionCastSpell+SlotsByLevelDuplet, Assembly-CSharp", + "level": 10, + "slots": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "$type": "FeatureDefinitionCastSpell+SlotsByLevelDuplet, Assembly-CSharp", + "level": 11, + "slots": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "$type": "FeatureDefinitionCastSpell+SlotsByLevelDuplet, Assembly-CSharp", + "level": 12, + "slots": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "$type": "FeatureDefinitionCastSpell+SlotsByLevelDuplet, Assembly-CSharp", + "level": 13, + "slots": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "$type": "FeatureDefinitionCastSpell+SlotsByLevelDuplet, Assembly-CSharp", + "level": 14, + "slots": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "$type": "FeatureDefinitionCastSpell+SlotsByLevelDuplet, Assembly-CSharp", + "level": 15, + "slots": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "$type": "FeatureDefinitionCastSpell+SlotsByLevelDuplet, Assembly-CSharp", + "level": 16, + "slots": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "$type": "FeatureDefinitionCastSpell+SlotsByLevelDuplet, Assembly-CSharp", + "level": 17, + "slots": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "$type": "FeatureDefinitionCastSpell+SlotsByLevelDuplet, Assembly-CSharp", + "level": 18, + "slots": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "$type": "FeatureDefinitionCastSpell+SlotsByLevelDuplet, Assembly-CSharp", + "level": 19, + "slots": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "$type": "FeatureDefinitionCastSpell+SlotsByLevelDuplet, Assembly-CSharp", + "level": 20, + "slots": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + ], + "focusType": "Arcane", + "hasAccessToInvocations": false, + "cannotUpcast": false, + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": true, + "title": "Feature/&NoContentTitle", + "description": "Feature/&NoContentTitle", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "6c75c61f-8776-5dc3-9e94-37eeac872e07", + "contentPack": 9999, + "name": "CastSpellDomainNature" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/SpellListDefinition/SpellListDomainNature.json b/Diagnostics/UnfinishedBusinessBlueprints/SpellListDefinition/SpellListDomainNature.json new file mode 100644 index 0000000000..f1d0a83157 --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/SpellListDefinition/SpellListDomainNature.json @@ -0,0 +1,95 @@ +{ + "$type": "SpellListDefinition, Assembly-CSharp", + "hasCantrips": true, + "maxSpellLevel": 0, + "spellsByLevel": [ + { + "$type": "SpellListDefinition+SpellsByLevelDuplet, Assembly-CSharp", + "level": 0, + "spells": [ + "Definition:AnnoyingBee:d380ed36cd287394d8ddc88115fd8fa1", + "Definition:Guidance:94ed96edd24acbe4f87e72375221868a", + "Definition:PoisonSpray:d3aec91794deb6646b41c246e57a1f1e", + "Definition:ProduceFlame:99a59d41bc8a00a458199a4c2e7d9571", + "Definition:Resistance:384dce9da39ad4e4b82106fa7829c17c", + "Definition:Shillelagh:2143d3cd84db2c540b80fe022d0adf1d", + "Definition:Sparkle:ac43e07871656cd4db792bdbdc77ac44", + "Definition:VenomousSpike:804bffd98d2384c4b9c01ebb30f3cbee" + ] + }, + { + "$type": "SpellListDefinition+SpellsByLevelDuplet, Assembly-CSharp", + "level": 1, + "spells": [] + }, + { + "$type": "SpellListDefinition+SpellsByLevelDuplet, Assembly-CSharp", + "level": 2, + "spells": [] + }, + { + "$type": "SpellListDefinition+SpellsByLevelDuplet, Assembly-CSharp", + "level": 3, + "spells": [] + }, + { + "$type": "SpellListDefinition+SpellsByLevelDuplet, Assembly-CSharp", + "level": 4, + "spells": [] + }, + { + "$type": "SpellListDefinition+SpellsByLevelDuplet, Assembly-CSharp", + "level": 5, + "spells": [] + }, + { + "$type": "SpellListDefinition+SpellsByLevelDuplet, Assembly-CSharp", + "level": 6, + "spells": [] + }, + { + "$type": "SpellListDefinition+SpellsByLevelDuplet, Assembly-CSharp", + "level": 7, + "spells": [] + }, + { + "$type": "SpellListDefinition+SpellsByLevelDuplet, Assembly-CSharp", + "level": 8, + "spells": [] + }, + { + "$type": "SpellListDefinition+SpellsByLevelDuplet, Assembly-CSharp", + "level": 9, + "spells": [] + } + ], + "compositeSpellList": false, + "sourceSpellLists": [], + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": true, + "title": "Feature/&NoContentTitle", + "description": "Feature/&NoContentTitle", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "7f7e1d16-393f-547d-af30-33ae65d39912", + "contentPack": 9999, + "name": "SpellListDomainNature" +} \ No newline at end of file diff --git a/Documentation/Feats.md b/Documentation/Feats.md index 2251434000..3c802860eb 100644 --- a/Documentation/Feats.md +++ b/Documentation/Feats.md @@ -668,7 +668,7 @@ You are uncommonly nimble for your race. Increase your Strength or Dexterity by You know how best to hide. You gain the following benefits: • Increase your Dexterity by 1, to a maximum of 20. -• You gain proficiency with Stealthy skill or expertise if you are already proficient. +• You gain proficiency with Stealth skill or expertise if you are already proficient. • If you are hidden, you can move in the open without revealing yourself if you end the move in a position where you're not clearly visible. # 138. - Sturdiness of the Tundra [SOL] diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 080c3fc950..bf3778bd2d 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,15 +1,16 @@ 1.5.97.11: -- fixed Chain Lighting to not consider allies +- fixed Chain Lighting to not consider allies on bounce damage - fixed Domain Forge blessed metal feature immunity and resistance logic +- fixed Domain Nature not getting a cantrip offered at level 4 [RESPEC required] - fixed Earthquake spell interaction with Widened metamagic -- fixed Gravity Sinkhole spell movement to effect origin +- fixed Gravity Sinkhole spell push movement to effect center point - fixed Gray, Ironborn, and Obsidian Dwarf subclasses missing normal and darkvision senses - fixed Martial Psi-Warrior force powered strike feature not triggering on ranged attacks -- fixed Ranger Fey Wanderer misty step feature to prevent a main levelled spell to be cast on use - fixed Ranger Fey Wanderer misty step feature to only allow target allies within 5ft +- fixed Ranger Fey Wanderer misty step feature to prevent a main leveled spell to be cast on use - fixed Ranger Fey Wanderer to allow invite an optional ally on misty step spell cast from level 15 -- fixed skills, tools, and expertise granted from feats [might need RESPEC on Arcanist, Poisoner, Toxicologist, etc.] +- fixed skills, tools, and expertise granted from feats [RESPEC required on Arcanist, Poisoner, Toxicologist, etc.] - fixed Taunted condition to not enforce disadvantage against taunter - fixed Thunderstep spell interaction with Transmuted metamagic - fixed Thunderstep spell to only allow target allies within 5ft From 2b5b9edf7577963b56d71628cd7864e1f8a18766 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Mon, 27 May 2024 10:53:38 -0700 Subject: [PATCH 35/35] prepare for `1.5.97.11` release --- SolastaUnfinishedBusiness/ChangelogHistory.txt | 1 - SolastaUnfinishedBusiness/Info.json | 2 +- SolastaUnfinishedBusiness/SolastaUnfinishedBusiness.csproj | 2 +- SolastaUnfinishedBusiness/Subclasses/DomainNature.cs | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index bf3778bd2d..c0211ecf60 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -21,7 +21,6 @@ KNOWN ISSUES: - Artillerist Force Ballista tiny cannon doesn't force attack DIS within 5 ft [won't fix] - Artillerist Fortified Position medium cannon doesn't grant buff to self [won't fix] - Chaos Bolt damage will be of wrong type under multiplayer sessions if twinned and one bolt misses [won't fix] -- Domain Nature doesn't get a cantrip offered at level 4 1.5.97.10 - Os cães ladram e a caravana passa: diff --git a/SolastaUnfinishedBusiness/Info.json b/SolastaUnfinishedBusiness/Info.json index 45ece97cd9..daaf7e2483 100644 --- a/SolastaUnfinishedBusiness/Info.json +++ b/SolastaUnfinishedBusiness/Info.json @@ -1,7 +1,7 @@ { "Id": "SolastaUnfinishedBusiness", "DisplayName": "[Un] Finished Business", - "Version": "1.5.97.10", + "Version": "1.5.97.11", "GameVersion": "1.5.97", "ManagerVersion": "0.24.0", "AssemblyName": "SolastaUnfinishedBusiness.dll", diff --git a/SolastaUnfinishedBusiness/SolastaUnfinishedBusiness.csproj b/SolastaUnfinishedBusiness/SolastaUnfinishedBusiness.csproj index 93bc635f75..1fa99a59a5 100644 --- a/SolastaUnfinishedBusiness/SolastaUnfinishedBusiness.csproj +++ b/SolastaUnfinishedBusiness/SolastaUnfinishedBusiness.csproj @@ -3,7 +3,7 @@ 12 net48 - 1.5.97.10 + 1.5.97.11 https://github.com/SolastaMods/SolastaUnfinishedBusiness git Debug Install;Release Install diff --git a/SolastaUnfinishedBusiness/Subclasses/DomainNature.cs b/SolastaUnfinishedBusiness/Subclasses/DomainNature.cs index 1df51d95b8..b46dfca150 100644 --- a/SolastaUnfinishedBusiness/Subclasses/DomainNature.cs +++ b/SolastaUnfinishedBusiness/Subclasses/DomainNature.cs @@ -287,7 +287,7 @@ internal static void GrantCantrip(RulesetCharacterHero hero) return; } - var selectedClass = LevelUpContext. GetSelectedClass(hero); + var selectedClass = LevelUpContext.GetSelectedClass(hero); var selectedSubclass = LevelUpContext.GetSelectedSubclass(hero); var subclassTag = AttributeDefinitions.GetSubclassTag(selectedClass, 1, selectedSubclass);