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]