diff --git a/About/About.xml b/About/About.xml
index 4345dd32..c9bd81b4 100644
--- a/About/About.xml
+++ b/About/About.xml
@@ -3,8 +3,8 @@
JecsTools
jecrell
https://discord.gg/AaVFA7V
- 0.19.0
- 1.1.0.7 (10-02-2018)
+ 1.0.2059
+ 1.1.0.8 (10-18-2018)
Adds modding components to RimWorld: vehicles, spell casting, weapon slots, oversized weapons, and more!
@@ -58,11 +58,15 @@ Extensive hours of testing, debugging, and fixes by Xen.
Thank you to my Patrons for supporting me in my efforts. Without you, none of this would be possible.
These are the most excellent rim dwellers who support me:
-Brachiaraidos, Cory Bonifay, CrankyPeanut, E_T, Finwej, Jan Koutsky, Jonathan, K. Bolden, Kiya Nicoll, Matt Harris, Paul Fenwick, Toc Anastar, Grendalloffen, Martin K. Bonde, Harvey Mclellan, Shane M. aka ShotgunFace, Bentley Alsup, Eric Idema, MasterScootie, GoSu, Josh McCabe, spook, Clifford Campbell, J, Michael Paugh, John Kanady, Luis Figueroa, Midgeman, Nate Haug, Richard Paul, SilentWeirdo, Audrin Navarro, Calhoun Cattell, Михаил Юрченко, Nemuri Hime, Calum, Keith Thoma, Dick Jones, Patrick, Tim Stillson, Nathan Getman, Sharp Spook, Emily Shaw, Populous25, Steven James, Zalson, Mark, Marcus Sireanu, Drachken, Nicholas Bateman, Baron Xot, Justin Andres, Luis Salvatierra, Christopher, TinyFloatingTurtle, George Chong Chuang Ming, John Boehr, Oliver White, roxxploxx, Robin Hager, That Guy, Allic, Karol Rybak, Austin Harbert, Yewty, Evan Hwang, Ryan Brock, Jonathan Holzinger, MC, Alexander, Alex Mederer, Kevin Reagan, Toss Antilles, Chelsea Archambeau, Aron Glasser, Dan Winn, Fredric Sundberg, Sarah Banks, ted stevens
+Lumberjack, Shibby Says, TheJagermeister, Cory Bonifay, Kiya Nicoll, Matt Harris, Paul Fenwick, Grendalloffen, Martin K. Bonde, Bentley Alsup, Eric Idema, MasterScootie, GoSu, Josh McCabe, spook, Clifford Campbell, J, CrankyPeanut, E_T, Finwej, Jonathan, Audrin Navarro, Михаил Юрченко, John Kanady, Luis Figueroa, Midgeman, Nate Haug, Nemuri Hime, Richard Paul, SilentWeirdo, Calum, Calhoun Cattell, Keith Thoma, Tim Stillson, Dick Jones, Patrick, Nathan Getman, Populous25, Sharp Spook, Steven James, Marcus Sireanu, Mark, Emily Shaw, Drachken, Zalson, Baron Xot, Nicholas Bateman, Christopher, Justin Andres, Luis Salvatierra, TinyFloatingTurtle, George Chong Chuang Ming, John Boehr, Oliver White, roxxploxx, Robin Hager, Brachiaraidos, That Guy, Toc Anastar, Karol Rybak, Allic, Austin Harbert, Yewty, Evan Hwang, Ryan Brock, Jonathan Holzinger, MC, Alexander, Kevin Reagan, Alex Mederer, Toss Antilles, Chelsea Archambeau, Aron Glasser, Dan Winn, Fredric Sundberg, Sarah Banks, ted stevens
========================
Changelog
========================
+1.1.0.8 (10-18-2018)
+========================
+Changed very few issues to allow for the update for RimWorld 1.0.
+
1.1.0.7 (10-02-2018)
========================
The wall placeworker now also allows other types of walls.
diff --git a/About/Changelog.txt b/About/Changelog.txt
index 5ceb53aa..08d42cf0 100644
--- a/About/Changelog.txt
+++ b/About/Changelog.txt
@@ -1,3 +1,7 @@
+1.1.0.8 (10-18-2018)
+========================
+Changed very few issues to allow for the update for RimWorld 1.0.
+
1.1.0.7 (10-02-2018)
========================
The wall placeworker now also allows other types of walls.
diff --git a/About/Manifest.xml b/About/Manifest.xml
new file mode 100644
index 00000000..9f99b2b0
--- /dev/null
+++ b/About/Manifest.xml
@@ -0,0 +1,35 @@
+
+
+ JecsTools
+ 1.1.0.7
+
+
+
+ DoorsExpanded
+ CoC-Factions
+ CoC-Cults
+ CoC-ElderThings
+ HPLovecraftStoryteller
+ IA-ObjectsAndFurniture
+ IA-SteamCorp
+ LotR-Dwarves
+ LotR-Elves
+ LotR-Hobbits
+ LotR-MenAndBeasts
+ LotR-OrcsAndGoblins
+ LotR-TheThirdAge
+ RoM-Arachnophobia
+ RoM-Vampires
+ RoM-Werewolves
+ RimQuest
+ RimWriter
+ SW-Factions
+ SW-Lightsabers
+ SW-TheForce
+
+
+ HugsLib
+
+ https://raw.githubusercontent.com/jecrell/JecsTools/master/About/Manifest.xml
+ https://github.com/jecrell/JecsTools/releases
+
\ No newline at end of file
diff --git a/About/PatreonURL.txt b/About/PatreonURL.txt
index 56468c65..0bb3a197 100644
--- a/About/PatreonURL.txt
+++ b/About/PatreonURL.txt
@@ -1 +1 @@
-https://www.patreon.com/posts/jecstools-for-0-21059900
+https://www.patreon.com/posts/22139730
diff --git a/About/Preview.png b/About/Preview.png
index e3524569..38102e14 100755
Binary files a/About/Preview.png and b/About/Preview.png differ
diff --git a/About/Version.txt b/About/Version.txt
index 11910f6a..8ad45019 100644
--- a/About/Version.txt
+++ b/About/Version.txt
@@ -1 +1 @@
-1.1.0.7
+1.1.0.8
diff --git a/Assemblies/0JecsTools.dll b/Assemblies/0JecsTools.dll
index fa28aaed..55077f87 100644
Binary files a/Assemblies/0JecsTools.dll and b/Assemblies/0JecsTools.dll differ
diff --git a/Assemblies/AbilityUserAI.dll b/Assemblies/AbilityUserAI.dll
index 79adab65..e3e43cac 100644
Binary files a/Assemblies/AbilityUserAI.dll and b/Assemblies/AbilityUserAI.dll differ
diff --git a/Assemblies/CompDeflector.dll b/Assemblies/CompDeflector.dll
index d17f6acf..297a7efd 100644
Binary files a/Assemblies/CompDeflector.dll and b/Assemblies/CompDeflector.dll differ
diff --git a/Assemblies/CompInstalledPart.dll b/Assemblies/CompInstalledPart.dll
index 635b098d..720d983d 100644
Binary files a/Assemblies/CompInstalledPart.dll and b/Assemblies/CompInstalledPart.dll differ
diff --git a/Assemblies/CompSlotLoadable.dll b/Assemblies/CompSlotLoadable.dll
index 159c7fa2..e0ec89e4 100644
Binary files a/Assemblies/CompSlotLoadable.dll and b/Assemblies/CompSlotLoadable.dll differ
diff --git a/Assemblies/CompVehicle.dll b/Assemblies/CompVehicle.dll
index 276ff3e7..a70fd4a0 100644
Binary files a/Assemblies/CompVehicle.dll and b/Assemblies/CompVehicle.dll differ
diff --git a/Source/.idea/.idea.JecsTools/.idea/contentModel.xml b/Source/.idea/.idea.JecsTools/.idea/contentModel.xml
index d890a795..477cf66f 100644
--- a/Source/.idea/.idea.JecsTools/.idea/contentModel.xml
+++ b/Source/.idea/.idea.JecsTools/.idea/contentModel.xml
@@ -320,6 +320,7 @@
+
diff --git a/Source/.vs/JecsTools/v15/.suo b/Source/.vs/JecsTools/v15/.suo
index 903bc479..3124effb 100644
Binary files a/Source/.vs/JecsTools/v15/.suo and b/Source/.vs/JecsTools/v15/.suo differ
diff --git a/Source/.vs/JecsTools/v15/Server/sqlite3/db.lock b/Source/.vs/JecsTools/v15/Server/sqlite3/db.lock
new file mode 100644
index 00000000..e69de29b
diff --git a/Source/.vs/JecsTools/v15/Server/sqlite3/storage.ide b/Source/.vs/JecsTools/v15/Server/sqlite3/storage.ide
new file mode 100644
index 00000000..56758a88
Binary files /dev/null and b/Source/.vs/JecsTools/v15/Server/sqlite3/storage.ide differ
diff --git a/Source/.vs/JecsTools/v15/Server/sqlite3/storage.ide-shm b/Source/.vs/JecsTools/v15/Server/sqlite3/storage.ide-shm
new file mode 100644
index 00000000..ae38d6f6
Binary files /dev/null and b/Source/.vs/JecsTools/v15/Server/sqlite3/storage.ide-shm differ
diff --git a/Source/.vs/JecsTools/v15/Server/sqlite3/storage.ide-wal b/Source/.vs/JecsTools/v15/Server/sqlite3/storage.ide-wal
new file mode 100644
index 00000000..1fd80390
Binary files /dev/null and b/Source/.vs/JecsTools/v15/Server/sqlite3/storage.ide-wal differ
diff --git a/Source/AllModdingComponents/CompDeflector/CompProperties_Deflector.cs b/Source/AllModdingComponents/CompDeflector/CompProperties_Deflector.cs
index e81fc9fc..fe51511f 100644
--- a/Source/AllModdingComponents/CompDeflector/CompProperties_Deflector.cs
+++ b/Source/AllModdingComponents/CompDeflector/CompProperties_Deflector.cs
@@ -35,9 +35,8 @@ public virtual IEnumerable PostSpecialDisplayStats()
yield break;
}
-
[DebuggerHidden]
- public override IEnumerable SpecialDisplayStats()
+ public override IEnumerable SpecialDisplayStats(StatRequest req)
{
if (!useSkillInCalc)
{
diff --git a/Source/AllModdingComponents/CompVehicle/HarmonyCompVehicle.cs b/Source/AllModdingComponents/CompVehicle/HarmonyCompVehicle.cs
index 6788d2c8..f7a18d1e 100644
--- a/Source/AllModdingComponents/CompVehicle/HarmonyCompVehicle.cs
+++ b/Source/AllModdingComponents/CompVehicle/HarmonyCompVehicle.cs
@@ -1037,8 +1037,10 @@ public static void GiveVehiclesLoadSlaveDuties(LordToil_PrepareCaravan_GatherSla
{
if (Find.TickManager.TicksGame % 100 == 0)
{
+
+ List ownedPawns = __instance.lord.ownedPawns;
var meetingPoint = Traverse.Create(__instance).Field("meetingPoint").GetValue();
- GatherAnimalsAndSlavesForCaravanUtility.CheckArrived(__instance.lord, meetingPoint, "AllSlavesGathered",
+ GatherAnimalsAndSlavesForCaravanUtility.CheckArrived(__instance.lord, ownedPawns, meetingPoint, "AllSlavesGathered",
x => !x.IsColonist &&
!(x.GetComp() is CompVehicle compVehicle && compVehicle.CanMove) &&
!x.RaceProps.Animal, x => GatherAnimalsAndSlavesForCaravanUtility.IsFollowingAnyone(x));
diff --git a/Source/AllModdingComponents/JecsTools/HarmonyPatches.cs b/Source/AllModdingComponents/JecsTools/HarmonyPatches.cs
index c303c557..1921f971 100644
--- a/Source/AllModdingComponents/JecsTools/HarmonyPatches.cs
+++ b/Source/AllModdingComponents/JecsTools/HarmonyPatches.cs
@@ -37,37 +37,37 @@ static HarmonyPatches()
// nameof(PawnGroupKindWorker_Normal.MinPointsToGenerateAnything)),
// new HarmonyMethod(type, nameof(MinPointsTest)), null);
//------------
-
+
//Adds HediffCompProperties_DamageSoak checks to damage
harmony.Patch(AccessTools.Method(typeof(Pawn_HealthTracker), nameof(Pawn_HealthTracker.PreApplyDamage)),
new HarmonyMethod(type, nameof(PreApplyDamage_PrePatch)), null);
-
+
//Applies cached armor damage and absorption
harmony.Patch(AccessTools.Method(typeof(ArmorUtility), "ApplyArmor"),
new HarmonyMethod(type, nameof(ApplyProperDamage)), null);
-
+
//Applies damage soak motes
harmony.Patch(AccessTools.Method(typeof(ArmorUtility), nameof(ArmorUtility.GetPostArmorDamage)), null,
new HarmonyMethod(type, nameof(Post_GetPostArmorDamage)));
-
+
//Allows for adding additional HediffSets when characters spawn using the StartWithHediff class.
harmony.Patch(
AccessTools.Method(typeof(PawnGenerator), "GeneratePawn", new[] {typeof(PawnGenerationRequest)}), null,
new HarmonyMethod(type, nameof(Post_GeneratePawn)));
-
+
//Checks apparel that uses the ApparelExtension
harmony.Patch(AccessTools.Method(typeof(ApparelUtility), nameof(ApparelUtility.CanWearTogether)), null,
new HarmonyMethod(type, nameof(Post_CanWearTogether)));
-
+
//Handles special cases of faction disturbances
harmony.Patch(AccessTools.Method(typeof(Faction), nameof(Faction.Notify_MemberDied)),
new HarmonyMethod(type, nameof(Notify_MemberDied)), null);
-
+
//Handles FactionSettings extension to allow for fun effects when factions arrive.
harmony.Patch(
AccessTools.Method(typeof(PawnGroupMakerUtility), nameof(PawnGroupMakerUtility.GeneratePawns)), null,
new HarmonyMethod(type, nameof(GeneratePawns)), null);
-
+
//Handles cases where gendered apparel swaps out for individual genders.
harmony.Patch(
AccessTools.Method(typeof(PawnApparelGenerator),
@@ -79,14 +79,61 @@ static HarmonyPatches()
AccessTools.Method(typeof(GenSpawn),
nameof(GenSpawn.SpawningWipes)), null,
new HarmonyMethod(type, nameof(SpawningWipes_PostFix)), null);
-// harmony.Patch(
-// AccessTools.Method(typeof(GenConstruct),
-// nameof(GenConstruct.HandleBlockingThingJob)), null,
-// new HarmonyMethod(type, nameof(HandleBlockingThingJob_PostFix)), null);
+ //BuildingExtension is also checked here to make sure things do not block construction.
harmony.Patch(
AccessTools.Method(typeof(GenConstruct),
nameof(GenConstruct.BlocksConstruction)), null,
new HarmonyMethod(type, nameof(BlocksConstruction_PostFix)), null);
+ //
+ harmony.Patch(
+ AccessTools.Method(typeof(Projectile),
+ "CanHit"), null,
+ new HarmonyMethod(type, nameof(CanHit_PostFix)), null);
+ harmony.Patch(
+ AccessTools.Method(typeof(Verb),
+ "CanHitCellFromCellIgnoringRange"),
+ new HarmonyMethod(type, nameof(CanHitCellFromCellIgnoringRange_Prefix)), null);
+ }
+
+ //Added B19, Oct 2019
+ //ProjectileExtension check
+ //Allows a bullet to pass through walls when fired.
+ public static bool CanHitCellFromCellIgnoringRange_Prefix(Verb __instance, IntVec3 sourceSq, IntVec3 targetLoc, bool includeCorners, ref bool __result)
+ {
+ if (__instance?.EquipmentCompSource?.PrimaryVerb?.verbProps?.defaultProjectile is ThingDef proj &&
+ proj?.HasModExtension() == true &&
+ proj.GetModExtension() is ProjectileExtension ext)
+ {
+ if (ext.passesWalls)
+ __result = true;
+ return false;
+ }
+
+ return true;
+ }
+
+ //Added B19, Oct 2019
+ //ProjectileExtension check
+ //Ignores all structures as part of objects that disallow being fired through.
+ public static void CanHit_PostFix(Projectile __instance, Thing thing, ref bool __result)
+ {
+ if (!__result && __instance?.def?.HasModExtension() == true &&
+ __instance.def.GetModExtension() is ProjectileExtension ext)
+ {
+ //Mods will often have their own walls, so we cannot do a def check for
+ //ThingDefOf.Wall
+ //Most "walls" should either be in the structure category or be able to hold walls.
+ if (thing?.def?.designationCategory == DesignationCategoryDefOf.Structure ||
+ thing?.def?.holdsRoof == true)
+ {
+ if (ext.passesWalls)
+ {
+ __result = false;
+ return;
+ }
+ }
+
+ }
}
public static void BlocksConstruction_PostFix(Thing constructible, Thing t, ref bool __result)
@@ -99,7 +146,7 @@ public static void BlocksConstruction_PostFix(Thing constructible, Thing t, ref
{
BuildableDef buildableDef = GenConstruct.BuiltDefOf(thingDef);
BuildableDef buildableDef2 = GenConstruct.BuiltDefOf(thingDef2);
- __result = ShouldWipe(buildableDef, buildableDef2, t.PositionHeld, t.MapHeld);
+ __result = ShouldWipe(buildableDef, buildableDef2, t.PositionHeld, t.MapHeld);
}
}
@@ -113,7 +160,7 @@ public static void SpawningWipes_PostFix(BuildableDef newEntDef, BuildableDef ol
{
BuildableDef buildableDef = GenConstruct.BuiltDefOf(thingDef);
BuildableDef buildableDef2 = GenConstruct.BuiltDefOf(thingDef2);
- __result = ShouldWipe(buildableDef, buildableDef2, IntVec3.Invalid, null);
+ __result = ShouldWipe(buildableDef, buildableDef2, IntVec3.Invalid, null);
}
}
@@ -161,13 +208,16 @@ private static bool ShouldWipe(BuildableDef newEntDef, BuildableDef oldEntDef, I
return true;
}
}
+
return true;
}
+
var locThings = loc.GetThingList(map);
for (var index = 0; index < locThings.Count; index++)
{
var thing = locThings[index];
- if (thing.def is ThingDef thingDef && ShouldWipe(newEntDef, GenConstruct.BuiltDefOf(thingDef), IntVec3.Invalid, null))
+ if (thing.def is ThingDef thingDef &&
+ ShouldWipe(newEntDef, GenConstruct.BuiltDefOf(thingDef), IntVec3.Invalid, null))
return true;
}
diff --git a/Source/AllModdingComponents/JecsTools/JecsTools.csproj b/Source/AllModdingComponents/JecsTools/JecsTools.csproj
index e080af79..0fe0349a 100644
--- a/Source/AllModdingComponents/JecsTools/JecsTools.csproj
+++ b/Source/AllModdingComponents/JecsTools/JecsTools.csproj
@@ -109,6 +109,7 @@
+
diff --git a/Source/AllModdingComponents/JecsTools/ProjectileExtension.cs b/Source/AllModdingComponents/JecsTools/ProjectileExtension.cs
new file mode 100644
index 00000000..a42e8ee9
--- /dev/null
+++ b/Source/AllModdingComponents/JecsTools/ProjectileExtension.cs
@@ -0,0 +1,18 @@
+using System.Collections.Generic;
+using Verse;
+using Verse.AI;
+
+namespace JecsTools
+{
+ ///
+ /// Projectile Extension allows extra control over
+ /// damage
+ ///
+ public class ProjectileExtension : DefModExtension
+ {
+ public bool passesWalls = false;
+ public bool passesRoofs = false;
+ public bool damagesTargetsBetween = false;
+ public float damageMultiplierPerTarget = 1.0f;
+ }
+}
\ No newline at end of file
diff --git a/updateinfo b/updateinfo
index ff0e85dd..fe4e1699 100644
--- a/updateinfo
+++ b/updateinfo
@@ -4,9 +4,9 @@
JecsTools Update
====================
-Version: 1.1.0.6
-Updated: 09-30-2018
-Description: Adds new BuildingExtension class to allow for bypasses to SpawningWipes. Perfect for adding furniture on top of existing tables.
+Version: 1.1.0.7
+Updated: 10-02-2018
+Description: The wall placeworker now also allows other types of walls.
====================
Download now on...
@@ -25,9 +25,9 @@ Discuss the mod on...
[img width=260]https://raw.githubusercontent.com/jecrell/JecsTools/master/About/Preview.png[/img]
[hr]
[b]JecsTools
-Version: 1.1.0.6
-Updated: 09-30-2018
-Description: [color=orange]Adds new BuildingExtension class to allow for bypasses to SpawningWipes. Perfect for adding furniture on top of existing tables.[/color]
+Version: 1.1.0.7
+Updated: 10-02-2018
+Description: [color=orange]The wall placeworker now also allows other types of walls.[/color]
[hr]
[b]Download now on...[/b]
[url=https://www.patreon.com/posts/jecstools-for-0-21059900]Patreon[/url]