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 @@
Red Haze
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 @@
revia berserker
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 @@
revia marauder
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 @@
revia raider
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 @@
revia skullshatterer
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 @@
Revia High Templar
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 @@
Revia Initiate
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 @@
Revia quartermaster
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 @@
Revia Templar
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 humanlike
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);
+ }
+ }
+}