diff --git a/1.1/Assemblies/ReviaRace.dll b/1.1/Assemblies/ReviaRace.dll index f2fd8f1..d5a300a 100644 Binary files a/1.1/Assemblies/ReviaRace.dll and b/1.1/Assemblies/ReviaRace.dll differ diff --git a/1.2/Assemblies/ReviaRace.dll b/1.2/Assemblies/ReviaRace.dll index 8e3db63..3d65303 100644 Binary files a/1.2/Assemblies/ReviaRace.dll and b/1.2/Assemblies/ReviaRace.dll differ diff --git a/1.2/Assemblies/ReviaRace.pdb b/1.2/Assemblies/ReviaRace.pdb index 87d138c..6fc7584 100644 Binary files a/1.2/Assemblies/ReviaRace.pdb and b/1.2/Assemblies/ReviaRace.pdb differ diff --git a/Defs/FactionDefs/ReviaMarauders.xml b/Defs/FactionDefs/ReviaMarauders.xml index beb34d8..8a1c57f 100644 --- a/Defs/FactionDefs/ReviaMarauders.xml +++ b/Defs/FactionDefs/ReviaMarauders.xml @@ -44,33 +44,43 @@
  • - + Combat - 30 + 60 - 20 - 5 + 5 + 1
  • - + Combat 30 5 - 5 - 5 + 2
  • - + Combat - 30 + 15 10 5 - 3 - 3 + 2 + 1 + +
  • +
  • + + Combat + 5 + + 15 + 10 + 5 + 1
  • @@ -80,7 +90,7 @@ 15 15 5 - 5 + 1
  • diff --git a/Defs/FactionDefs/ReviaTemplars.xml b/Defs/FactionDefs/ReviaTemplars.xml index 43e598e..471b273 100644 --- a/Defs/FactionDefs/ReviaTemplars.xml +++ b/Defs/FactionDefs/ReviaTemplars.xml @@ -58,9 +58,19 @@
  • Combat + 15 - 25 - 3 + 7 + 1 + +
  • +
  • + + Combat + 60 + + 5 + 2
  • @@ -93,9 +103,9 @@
  • Settlement - 50 - 30 - 5 + 20 + 20 + 3
  • diff --git a/Defs/NeedDefs/RedHazeNeed.xml b/Defs/NeedDefs/RedHazeNeed.xml index 0e1e9f5..aad49b9 100644 --- a/Defs/NeedDefs/RedHazeNeed.xml +++ b/Defs/NeedDefs/RedHazeNeed.xml @@ -6,6 +6,6 @@ A strange, almost rabid bloodthirst grips this person. \n\nBloodstone powder appears to keep this almost uncontrollable fury away. Without it, however, this person degenerates into a berserk fury, attacking anyone and everyone around. 44 - 0.195 + 0.240 \ No newline at end of file diff --git a/Defs/PawnKindDefs/ReviaMarauder/ReviaBerserker.xml b/Defs/PawnKindDefs/ReviaMarauder/ReviaBerserker.xml index 45cb4a7..fa6a781 100644 --- a/Defs/PawnKindDefs/ReviaMarauder/ReviaBerserker.xml +++ b/Defs/PawnKindDefs/ReviaMarauder/ReviaBerserker.xml @@ -5,9 +5,10 @@ ReviaRaceAlien ReviaMarauderFaction - 75 + 95 1.00 Excellent + 0.6~1.5
  • Neolithic
  • Medieval
  • diff --git a/Defs/PawnKindDefs/ReviaMarauder/ReviaMarauder.xml b/Defs/PawnKindDefs/ReviaMarauder/ReviaMarauder.xml index 9c2781e..eedcd73 100644 --- a/Defs/PawnKindDefs/ReviaMarauder/ReviaMarauder.xml +++ b/Defs/PawnKindDefs/ReviaMarauder/ReviaMarauder.xml @@ -5,10 +5,11 @@ ReviaRaceAlien ReviaMarauderFaction - 55 + 75 true 0.95 Good + 0.4~1.1
  • Neolithic
  • Medieval
  • diff --git a/Defs/PawnKindDefs/ReviaMarauder/ReviaRaider.xml b/Defs/PawnKindDefs/ReviaMarauder/ReviaRaider.xml index 67f28a3..b6d280e 100644 --- a/Defs/PawnKindDefs/ReviaMarauder/ReviaRaider.xml +++ b/Defs/PawnKindDefs/ReviaMarauder/ReviaRaider.xml @@ -5,7 +5,7 @@ ReviaRaceAlien ReviaMarauderFaction - 35 + 55 0.65 Poor diff --git a/Defs/PawnKindDefs/ReviaMarauder/ReviaSkullshatterer.xml b/Defs/PawnKindDefs/ReviaMarauder/ReviaSkullshatterer.xml index d5decdd..81fef23 100644 --- a/Defs/PawnKindDefs/ReviaMarauder/ReviaSkullshatterer.xml +++ b/Defs/PawnKindDefs/ReviaMarauder/ReviaSkullshatterer.xml @@ -5,7 +5,7 @@ ReviaRaceAlien ReviaMarauderFaction - 100 + 350 true true 1.00 diff --git a/Defs/PawnKindDefs/ReviaTemplar/ReviaHighTemplar.xml b/Defs/PawnKindDefs/ReviaTemplar/ReviaHighTemplar.xml index 43f7de0..22553a4 100644 --- a/Defs/PawnKindDefs/ReviaTemplar/ReviaHighTemplar.xml +++ b/Defs/PawnKindDefs/ReviaTemplar/ReviaHighTemplar.xml @@ -5,7 +5,7 @@ ReviaTemplarFaction ReviaRaceAlien - 100 + 350 true 30 1.0 diff --git a/Defs/PawnKindDefs/ReviaTemplar/ReviaInitiate.xml b/Defs/PawnKindDefs/ReviaTemplar/ReviaInitiate.xml index 07860ea..0361dff 100644 --- a/Defs/PawnKindDefs/ReviaTemplar/ReviaInitiate.xml +++ b/Defs/PawnKindDefs/ReviaTemplar/ReviaInitiate.xml @@ -5,7 +5,7 @@ ReviaTemplarFaction ReviaRaceAlien - 50 + 55 1.0 Excellent diff --git a/Defs/PawnKindDefs/ReviaTemplar/ReviaQuartermaster.xml b/Defs/PawnKindDefs/ReviaTemplar/ReviaQuartermaster.xml index 6011314..961d3fe 100644 --- a/Defs/PawnKindDefs/ReviaTemplar/ReviaQuartermaster.xml +++ b/Defs/PawnKindDefs/ReviaTemplar/ReviaQuartermaster.xml @@ -5,7 +5,7 @@ ReviaTemplarFaction ReviaRaceAlien - 55 + 80 1.0 Excellent diff --git a/Defs/PawnKindDefs/ReviaTemplar/ReviaTemplar.xml b/Defs/PawnKindDefs/ReviaTemplar/ReviaTemplar.xml index 96c05e4..8e00b6c 100644 --- a/Defs/PawnKindDefs/ReviaTemplar/ReviaTemplar.xml +++ b/Defs/PawnKindDefs/ReviaTemplar/ReviaTemplar.xml @@ -5,7 +5,7 @@ ReviaTemplarFaction ReviaRaceAlien - 75 + 125 1.0 Excellent diff --git a/Defs/RecipeDefs/HumanlikeSacrifice.xml b/Defs/RecipeDefs/HumanlikeSacrifice.xml index 986600e..411d125 100644 --- a/Defs/RecipeDefs/HumanlikeSacrifice.xml +++ b/Defs/RecipeDefs/HumanlikeSacrifice.xml @@ -1,6 +1,7 @@  + ReviaRace.Workers.SacrificeWorker ReviaRaceSacrificeCorpse Sacrifice a humanlike corpse to honour the bloody gods of the Revian pantheon. diff --git a/Languages/English/Keyed/Comps.xml b/Languages/English/Keyed/Comps.xml index 20389b7..ab2a31c 100644 --- a/Languages/English/Keyed/Comps.xml +++ b/Languages/English/Keyed/Comps.xml @@ -16,6 +16,7 @@ Cost growth start tier Cost growth mode Assign random Soul Reap tier on spawn + Strip corpses on sacrifice Bloodstone costs with current settings: {0}, {1}, {2}, {3}, {4}, {5}, {6}, {7} Palestone costs with current settings: {0}, {1}, {2}, {3}, {4}, {5}, {6}, {7} Linear diff --git a/Source/Helpers/Strings.cs b/Source/Helpers/Strings.cs index 11e9043..bf929a5 100644 --- a/Source/Helpers/Strings.cs +++ b/Source/Helpers/Strings.cs @@ -26,6 +26,7 @@ internal static class Strings internal static string SettingsSacrificeCostGrowthStartTier => "ReviaRaceSettingsSacrificeCostGrowthStartTier"; internal static string SettingsSacrificeCostGrowthMode => "ReviaRaceSettingsSacrificeCostGrowthMode"; internal static string SettingsSacrificeEnableRandomSoulReapTier => "ReviaRaceSettingsEnableRandomSoulReapTier"; + internal static string SettingsSacrificeEnableStripOnSacrifice => "ReviaRaceSettingsEnableStripOnSacrifice"; internal static string SettingsSacrificeCostGreater => "ReviaRaceSettingsSacrificeCostGreater"; internal static string SettingsSacrificeCostLesser => "ReviaRaceSettingsSacrificeCostLesser"; internal static string SettingsSacrificeCostHeader => "ReviaRaceSettingsSacrificeCostHeader"; diff --git a/Source/JobDrivers/SacrificePrisonerJobDriver.cs b/Source/JobDrivers/SacrificePrisonerJobDriver.cs index 9b3ff6a..0e15027 100644 --- a/Source/JobDrivers/SacrificePrisonerJobDriver.cs +++ b/Source/JobDrivers/SacrificePrisonerJobDriver.cs @@ -127,7 +127,7 @@ protected override IEnumerable MakeNewToils() mapPawn.needs.mood.thoughts.memories.TryGainMemory(Defs.SacrificedPositive); } else if (mapPawn.IsColonist && - mapPawn.IsCannibal() || mapPawn.IsPsychopath() || mapPawn.IsBloodlust()) + !(mapPawn.IsCannibal() || mapPawn.IsPsychopath() || mapPawn.IsBloodlust())) { mapPawn.needs.mood.thoughts.memories.TryGainMemory(Defs.SacrificedNegative); } diff --git a/Source/PersistentData/ReviaSettings.cs b/Source/PersistentData/ReviaSettings.cs index 82e50d3..2cb5d01 100644 --- a/Source/PersistentData/ReviaSettings.cs +++ b/Source/PersistentData/ReviaSettings.cs @@ -1,4 +1,5 @@ using ReviaRace.Comps; +using ReviaRace.Workers; using System; using System.Collections.Generic; using System.Linq; @@ -27,6 +28,7 @@ public void ApplySettings() InvokeBlessing.CostGrowthMode = CostGrowthMode; InvokeBlessing.CostGrowthStartTier = CostGrowthStartTier; SoulReaper.EnableRandomSoulReapTier = EnableRandomSoulReapTier; + SacrificeWorker.EnableCorpseStripOnSacrifice = EnableCorpseStripOnSacrifice; } public float CostBase @@ -62,6 +64,13 @@ public bool EnableRandomSoulReapTier } internal bool _enableRandomSoulReapTier; + public bool EnableCorpseStripOnSacrifice + { + get => _enableCorpseStripOnSacrifice; + set => _enableCorpseStripOnSacrifice = value; + } + internal bool _enableCorpseStripOnSacrifice; + public override void ExposeData() { Scribe_Values.Look(ref _costBase, GetLabel(nameof(CostBase)), 1); @@ -69,6 +78,7 @@ public override void ExposeData() Scribe_Values.Look(ref _costGrowthStartTier, GetLabel(nameof(CostGrowthStartTier)), 1); Scribe_Values.Look(ref _costGrowthMode, GetLabel(nameof(CostGrowthMode)), SacrificeCostGrowth.Exponential); Scribe_Values.Look(ref _enableRandomSoulReapTier, GetLabel(nameof(EnableRandomSoulReapTier)), false); + Scribe_Values.Look(ref _enableCorpseStripOnSacrifice, GetLabel(nameof(EnableCorpseStripOnSacrifice)), true); ApplySettings(); } diff --git a/Source/ReviaRace.csproj b/Source/ReviaRace.csproj index 1edb4b7..c414eb3 100644 --- a/Source/ReviaRace.csproj +++ b/Source/ReviaRace.csproj @@ -92,6 +92,7 @@ + diff --git a/Source/ReviaRaceMod.cs b/Source/ReviaRaceMod.cs index 5665463..b1924f4 100644 --- a/Source/ReviaRaceMod.cs +++ b/Source/ReviaRaceMod.cs @@ -49,7 +49,7 @@ public override void DoSettingsWindowContents(Rect inRect) var sacrificeList = new Listing_Standard(); var height = 3 * 10 - + (bodyStyle.lineHeight + 8) * 6 + + (bodyStyle.lineHeight + 8) * 10 + (headerStyle.lineHeight); var sacrificeGroupRect = new Rect(inRect.x + 10, inRect.y + 10, inRect.width - 20, height); @@ -69,6 +69,7 @@ var height DrawTextFieldWithLabel(sacrificeList.GetRect(lineHeight), Strings.SettingsSacrificeCostGrowthFactor, ref Settings._costGrowthFactor, ref _growthFactorBuf, 0, 10); DrawTextFieldWithLabel(sacrificeList.GetRect(lineHeight), Strings.SettingsSacrificeCostGrowthStartTier, ref Settings._costGrowthStartTier, ref _growthStartTierBuf, 1, 8); DrawCheckBoxWithLabel(sacrificeList.GetRect(lineHeight), Strings.SettingsSacrificeEnableRandomSoulReapTier, ref Settings._enableRandomSoulReapTier); + DrawCheckBoxWithLabel(sacrificeList.GetRect(lineHeight), Strings.SettingsSacrificeEnableStripOnSacrifice, ref Settings._enableCorpseStripOnSacrifice); sacrificeList.Gap(10); DrawCostCalculationLabel(sacrificeList.GetRect(lineHeight), typeof(InvokeGreaterBlessing)); diff --git a/Source/Workers/SacrificeWorker.cs b/Source/Workers/SacrificeWorker.cs new file mode 100644 index 0000000..8df9395 --- /dev/null +++ b/Source/Workers/SacrificeWorker.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; + +namespace ReviaRace.Workers +{ + public class SacrificeWorker : RecipeWorker + { + public static bool EnableCorpseStripOnSacrifice { get; set; } + + public override void ConsumeIngredient(Thing ingredient, RecipeDef recipe, Map map) + { + if (EnableCorpseStripOnSacrifice) + { + var corpse = ingredient as Corpse; + corpse.Strip(); + } + + base.ConsumeIngredient(ingredient, recipe, map); + } + } +}