[1.1] Avoid Friendly Fire (stop shooting when friendlies are in the way)

Started by falconne, September 10, 2017, 06:16:37 AM

Previous topic - Next topic

warcin

I overwritten that save sadly, the check seems to work only while drafted, or it's my luck that shooter missed a bit more than red zone would predict, but when I was trying to reproduce that back when I had that save, friendly fire happened like 2 times per ~15 loads. Shooter was not that bad, it might just be situation where colonist walked in red zone just in moment when arrow was shot + pure luck.

Canute

I think the mod only check at the beginning of the aiming phase if some friendly in the way, not when the projectile got launched.
Ofcouse a second check would reduce the friendly fire too, same count for the user not to let other pawn walk in the shooting, and would force to interrupt the shooting (if a second check would added).

Mst

Sometimes get this report. Anyone knows what it is?
Exception while generating item collection: System.NullReferenceException: Object reference not set to an instance of an object
at AvoidFriendlyFire.Pawn_Kill_Patch.Postfix (Verse.Pawn&) <0x00055>
at (wrapper dynamic-method) Verse.Pawn.Kill_Patch1 (object,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x01ce6>
at (wrapper dynamic-method) Verse.Pawn_HealthTracker.CheckForStateChange_Patch1 (object,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x000cb>
at Verse.Pawn_HealthTracker.AddHediff (Verse.Hediff,Verse.BodyPartRecord,System.Nullable`1<Verse.DamageInfo>) <0x0007c>
at (wrapper dynamic-method) Verse.DamageWorker_AddInjury.FinalizeAndAddInjury_Patch1 (object,Verse.Pawn,Verse.Hediff_Injury,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x000ab>
at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn,single,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x001c6>
at Verse.DamageWorker_Scratch.ApplySpecialEffectsToPart (Verse.Pawn,single,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x00454>
at Verse.DamageWorker_AddInjury.ApplyDamageToPart (Verse.DamageInfo,Verse.Pawn,Verse.DamageWorker/DamageResult&) <0x00297>
at Verse.DamageWorker_AddInjury.ApplyToPawn (Verse.DamageInfo,Verse.Pawn) <0x00505>
at Verse.DamageWorker_AddInjury.Apply (Verse.DamageInfo,Verse.Thing) <0x000ae>
at (wrapper dynamic-method) Verse.Thing.TakeDamage_Patch1 (object,Verse.DamageInfo) <0x00275>
at Verse.HealthUtility.DamageUntilDead (Verse.Pawn) <0x00155>
at RimWorld.ItemCollectionGenerator_AncientPodContents.GenerateSlave () <0x00177>
at RimWorld.ItemCollectionGenerator_AncientPodContents.Generate (RimWorld.ItemCollectionGeneratorParams,System.Collections.Generic.List`1<Verse.Thing>) <0x000ea>
at RimWorld.ItemCollectionGenerator.Generate (RimWorld.ItemCollectionGeneratorParams) <0x0007b>

Verse.Log:Error(String)
RimWorld.ItemCollectionGenerator:Generate(ItemCollectionGeneratorParams)
RimWorld.BaseGen.SymbolResolver_AncientCryptosleepCasket:Resolve(ResolveParams)
RimWorld.BaseGen.BaseGen:Resolve(Pair`2)
RimWorld.BaseGen.BaseGen:Generate()
RimWorld.GenStep_ScatterShrines:ScatterAt(IntVec3, Map, Int32)
Verse.GenStep_Scatterer:Generate(Map)
Verse.MapGenerator:GenerateContentsIntoMap(IEnumerable`1, Map)
Verse.MapGenerator:GenerateMap(IntVec3, MapParent, MapGeneratorDef, IEnumerable`1, Action`1)
Verse.Game:InitNewGame()
Verse.Root_Play:<Start>m__1()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__1()

Vlad0mi3r

Mods I would recommend:
Mending, Fertile Fields, Smokeleaf Industries and the Giddy Up series.

The Mod you must have:
https://ludeon.com/forums/index.php?topic=40545.msg403503#msg403503

TryB4Buy

Although I get 4 errors on map load, this worked okay until I added rimfire. Now whenever the friendly fire is checked (even without the overlay), right clicking a target drops the frps to around 1.  :o

I'm not exaggerating the 1 fps. Sometimes the game hangs for 4 seconds until the overlay goes away. All I want to do is tell my pawn to fire at the target!  :-\

falconne

Quote from: TryB4Buy on December 24, 2017, 02:25:38 AM
Although I get 4 errors on map load, this worked okay until I added rimfire. Now whenever the friendly fire is checked (even without the overlay), right clicking a target drops the frps to around 1.  :o

I'm not exaggerating the 1 fps. Sometimes the game hangs for 4 seconds until the overlay goes away. All I want to do is tell my pawn to fire at the target!  :-\

Getting any errors probably indicates a problem, likely due to the use of incompatible mods. I did a quick test adding Rimfire and using a new weapon with FF turned on and it worked fine, so I don't see any obvious problem there.

Maybe you can post your logfile with the errors in it and someone might be able to help. The reason it slows down when there's a problem is because whatever is going wrong is happening during the UI draw phase, causing the game to log an exception with stack trace on every frame of the game.

TryB4Buy

Just so you know, its reproducible. I can run just fine if I ignore those four errors and don't use friendly fire since it is toggle-able in-game. However, you should know that the slowdown occurs while the game is PAUSED, and only upon right clicking a target with a drafted pause selected (before you select shoot). The crippling lag causes no errors, though.

Shared logs, eh?

Initializing new game with mods Core, HugsLib, UniversalFermenter, AllowDeadMansApparel, AnimalTab, AllowTool, AntiAutoUnload, AreaUnlocker, BillysCaravanFormation, BillysLoadTransportPod, Blueprints, CameraPlus-master, Cheaper Components, CleaningArea, CrashLanding, DD WorkTab, DefensivePositions, Dodging Rebalanced, DryLeaves_b18.1.0, ED-SafeTraps, EdBPrepareCarefully, ExpandedContextMenu, FluffyBreakdowns, FollowMe, Hand Me That Brick, FreshStockpileFilter-master, ICanFixIt, IdleFix, ImpassableMapMaker, Hunting Alert, LongRangePodLauncher, MapReroll, MarvsUghYouGotMe, Mending_easy, Moody, Nandonalt - Set-up Camp, Passive-Coolers-Refuelable-0.18.1.2, PathAvoid, PlantSaver, PowerSwitch, PrepareLanding, QualityBuilder, ReplaceWalls, RF - Configurable Maps, RF - Consolidated Traits, RF - More Trait Slots, RF - Smooth Stone Walls, RotTickFix, RT_Fuse-B18-1.1.1, RuntimeGC, RW_RefugeeStats, static_quality_plus_B18, Super Soil, TableDiner_Simple, TechAdvancing, VGP_Tools, WanderingCaravans [B18], WheresTheGravel, zombieland-master, PetMute, ImprovedWorkbenches, QualityCooldown-1.0, ReverseCommands, RimSearch, TradingSpot, Achtung-Mod-master, Autopsy-master, CustomDeathRandomness, DESurgeries, ED-ReverseCycleCooler, ED-TurretControl, Firefoam Belt, IndustrialRoller, JustIgnoreMePassing-master, Miniaturisation-0.18.0, SameSpot-master, WhileYoureUp, BetterPawnControl, Rimfire Custom Charge Deadeye, HaulToStack, MiningCo. MiningHelmet, MiningCo. MMS, StackXXL, OmniLocator, RT_SolarFlareShield-B18-1.2.2, TickMultiThread, and AvoidFriendlyFire

(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

Unsupported encoding: 'iso-8859-1,text/plain'

(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

Exception while generating item collection: System.NullReferenceException: Object reference not set to an instance of an object
at AvoidFriendlyFire.Pawn_Kill_Patch.Postfix (Verse.Pawn&) <0x00055>
at (wrapper dynamic-method) Verse.Pawn.Kill_Patch3 (object,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x01d51>
at CustomDeathRandomness.CheckForStateChangePatch.Prefix (Verse.Pawn_HealthTracker,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x001ea>
at (wrapper dynamic-method) Verse.Pawn_HealthTracker.CheckForStateChange_Patch1 (object,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x00075>
at Verse.Pawn_HealthTracker.AddHediff (Verse.Hediff,Verse.BodyPartRecord,System.Nullable`1<Verse.DamageInfo>) <0x0007c>
at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn,Verse.Hediff_Injury,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x00098>
at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn,single,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x001c6>
at Verse.DamageWorker_Blunt.ApplySpecialEffectsToPart (Verse.Pawn,single,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x00140>
at Verse.DamageWorker_AddInjury.ApplyDamageToPart (Verse.DamageInfo,Verse.Pawn,Verse.DamageWorker/DamageResult&) <0x00297>
at Verse.DamageWorker_AddInjury.ApplyToPawn (Verse.DamageInfo,Verse.Pawn) <0x00505>
at Verse.DamageWorker_AddInjury.Apply (Verse.DamageInfo,Verse.Thing) <0x000ae>
at Verse.Thing.TakeDamage (Verse.DamageInfo) <0x002b1>
at Verse.HealthUtility.DamageUntilDead (Verse.Pawn) <0x00155>
at RimWorld.ItemCollectionGenerator_AncientPodContents.GenerateSlave () <0x00177>
at RimWorld.ItemCollectionGenerator_AncientPodContents.Generate (RimWorld.ItemCollectionGeneratorParams,System.Collections.Generic.List`1<Verse.Thing>) <0x000ea>
at RimWorld.ItemCollectionGenerator.Generate (RimWorld.ItemCollectionGeneratorParams) <0x0007b>

TryB4Buy

(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

Exception while generating item collection: System.NullReferenceException: Object reference not set to an instance of an object
at AvoidFriendlyFire.Pawn_Kill_Patch.Postfix (Verse.Pawn&) <0x00055>
at (wrapper dynamic-method) Verse.Pawn.Kill_Patch3 (object,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x01d51>
at CustomDeathRandomness.CheckForStateChangePatch.Prefix (Verse.Pawn_HealthTracker,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x001ea>
at (wrapper dynamic-method) Verse.Pawn_HealthTracker.CheckForStateChange_Patch1 (object,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x00075>
at Verse.Pawn_HealthTracker.AddHediff (Verse.Hediff,Verse.BodyPartRecord,System.Nullable`1<Verse.DamageInfo>) <0x0007c>
at Verse.HediffSet.AddDirect (Verse.Hediff,System.Nullable`1<Verse.DamageInfo>) <0x003b4>
at Verse.Pawn_HealthTracker.AddHediff (Verse.Hediff,Verse.BodyPartRecord,System.Nullable`1<Verse.DamageInfo>) <0x00051>
at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn,Verse.Hediff_Injury,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x00098>
at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn,single,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x001c6>
at Verse.DamageWorker_Stab.ApplySpecialEffectsToPart (Verse.Pawn,single,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x0018c>
at Verse.DamageWorker_AddInjury.ApplyDamageToPart (Verse.DamageInfo,Verse.Pawn,Verse.DamageWorker/DamageResult&) <0x00297>
at Verse.DamageWorker_AddInjury.ApplyToPawn (Verse.DamageInfo,Verse.Pawn) <0x00505>
at Verse.DamageWorker_AddInjury.Apply (Verse.DamageInfo,Verse.Thing) <0x000ae>
at Verse.Thing.TakeDamage (Verse.DamageInfo) <0x002b1>
at Verse.HealthUtility.DamageUntilDead (Verse.Pawn) <0x00155>
at RimWorld.ItemCollectionGenerator_AncientPodContents.GenerateSlave () <0x00177>
at RimWorld.ItemCollectionGenerator_AncientPodContents.Generate (RimWorld.ItemCollectionGeneratorParams,System.Collections.Generic.List`1<Verse.Thing>) <0x000ea>
at RimWorld.ItemCollectionGenerator.Generate (RimWorld.ItemCollectionGeneratorParams) <0x0007b>


(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

Exception while generating item collection: System.NullReferenceException: Object reference not set to an instance of an object
at AvoidFriendlyFire.Pawn_Kill_Patch.Postfix (Verse.Pawn&) <0x00055>
at (wrapper dynamic-method) Verse.Pawn.Kill_Patch3 (object,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x01d51>
at CustomDeathRandomness.CheckForStateChangePatch.Prefix (Verse.Pawn_HealthTracker,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x001ea>
at (wrapper dynamic-method) Verse.Pawn_HealthTracker.CheckForStateChange_Patch1 (object,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x00075>
at Verse.Pawn_HealthTracker.AddHediff (Verse.Hediff,Verse.BodyPartRecord,System.Nullable`1<Verse.DamageInfo>) <0x0007c>
at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn,Verse.Hediff_Injury,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x00098>
at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn,single,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x001c6>
at Verse.DamageWorker_Blunt.ApplySpecialEffectsToPart (Verse.Pawn,single,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x00140>
at Verse.DamageWorker_AddInjury.ApplyDamageToPart (Verse.DamageInfo,Verse.Pawn,Verse.DamageWorker/DamageResult&) <0x00297>
at Verse.DamageWorker_AddInjury.ApplyToPawn (Verse.DamageInfo,Verse.Pawn) <0x00505>
at Verse.DamageWorker_AddInjury.Apply (Verse.DamageInfo,Verse.Thing) <0x000ae>
at Verse.Thing.TakeDamage (Verse.DamageInfo) <0x002b1>
at Verse.HealthUtility.DamageUntilDead (Verse.Pawn) <0x00155>
at RimWorld.ItemCollectionGenerator_AncientPodContents.GenerateSlave () <0x00177>
at RimWorld.ItemCollectionGenerator_AncientPodContents.Generate (RimWorld.ItemCollectionGeneratorParams,System.Collections.Generic.List`1<Verse.Thing>) <0x000ea>
at RimWorld.ItemCollectionGenerator.Generate (RimWorld.ItemCollectionGeneratorParams) <0x0007b>


(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

Exception while generating item collection: System.NullReferenceException: Object reference not set to an instance of an object
at AvoidFriendlyFire.Pawn_Kill_Patch.Postfix (Verse.Pawn&) <0x00055>
at (wrapper dynamic-method) Verse.Pawn.Kill_Patch3 (object,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x01d51>
at CustomDeathRandomness.CheckForStateChangePatch.Prefix (Verse.Pawn_HealthTracker,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x001ea>
at (wrapper dynamic-method) Verse.Pawn_HealthTracker.CheckForStateChange_Patch1 (object,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x00075>
at Verse.Pawn_HealthTracker.AddHediff (Verse.Hediff,Verse.BodyPartRecord,System.Nullable`1<Verse.DamageInfo>) <0x0007c>
at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn,Verse.Hediff_Injury,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x00098>
at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn,single,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x001c6>
at Verse.DamageWorker_Blunt.ApplySpecialEffectsToPart (Verse.Pawn,single,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x00140>
at Verse.DamageWorker_AddInjury.ApplyDamageToPart (Verse.DamageInfo,Verse.Pawn,Verse.DamageWorker/DamageResult&) <0x00297>
at Verse.DamageWorker_AddInjury.ApplyToPawn (Verse.DamageInfo,Verse.Pawn) <0x00505>
at Verse.DamageWorker_AddInjury.Apply (Verse.DamageInfo,Verse.Thing) <0x000ae>
at Verse.Thing.TakeDamage (Verse.DamageInfo) <0x002b1>
at Verse.HealthUtility.DamageUntilDead (Verse.Pawn) <0x00155>
at RimWorld.ItemCollectionGenerator_AncientPodContents.GenerateSlave () <0x00177>
at RimWorld.ItemCollectionGenerator_AncientPodContents.Generate (RimWorld.ItemCollectionGeneratorParams,System.Collections.Generic.List`1<Verse.Thing>) <0x000ea>
at RimWorld.ItemCollectionGenerator.Generate (RimWorld.ItemCollectionGeneratorParams) <0x0007b>


(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

Exception while generating item collection: System.NullReferenceException: Object reference not set to an instance of an object
at AvoidFriendlyFire.Pawn_Kill_Patch.Postfix (Verse.Pawn&) <0x00055>
at (wrapper dynamic-method) Verse.Pawn.Kill_Patch3 (object,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x01d51>
at CustomDeathRandomness.CheckForStateChangePatch.Prefix (Verse.Pawn_HealthTracker,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x001ea>
at (wrapper dynamic-method) Verse.Pawn_HealthTracker.CheckForStateChange_Patch1 (object,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x00075>
at Verse.Pawn_HealthTracker.AddHediff (Verse.Hediff,Verse.BodyPartRecord,System.Nullable`1<Verse.DamageInfo>) <0x0007c>
at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn,Verse.Hediff_Injury,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x00098>
at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn,single,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x001c6>
at Verse.DamageWorker_Cut.ApplySpecialEffectsToPart (Verse.Pawn,single,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x004bc>
at Verse.DamageWorker_AddInjury.ApplyDamageToPart (Verse.DamageInfo,Verse.Pawn,Verse.DamageWorker/DamageResult&) <0x00297>
at Verse.DamageWorker_AddInjury.ApplyToPawn (Verse.DamageInfo,Verse.Pawn) <0x00505>
at Verse.DamageWorker_AddInjury.Apply (Verse.DamageInfo,Verse.Thing) <0x000ae>
at Verse.Thing.TakeDamage (Verse.DamageInfo) <0x002b1>
at Verse.HealthUtility.DamageUntilDead (Verse.Pawn) <0x00155>
at RimWorld.ItemCollectionGenerator_AncientPodContents.GenerateSlave () <0x00177>
at RimWorld.ItemCollectionGenerator_AncientPodContents.Generate (RimWorld.ItemCollectionGeneratorParams,System.Collections.Generic.List`1<Verse.Thing>) <0x000ea>
at RimWorld.ItemCollectionGenerator.Generate (RimWorld.ItemCollectionGeneratorParams) <0x0007b>


(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

Exception while generating item collection: System.NullReferenceException: Object reference not set to an instance of an object
at AvoidFriendlyFire.Pawn_Kill_Patch.Postfix (Verse.Pawn&) <0x00055>
at (wrapper dynamic-method) Verse.Pawn.Kill_Patch3 (object,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x01d51>
at CustomDeathRandomness.CheckForStateChangePatch.Prefix (Verse.Pawn_HealthTracker,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x001ea>
at (wrapper dynamic-method) Verse.Pawn_HealthTracker.CheckForStateChange_Patch1 (object,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x00075>
at Verse.Pawn_HealthTracker.AddHediff (Verse.Hediff,Verse.BodyPartRecord,System.Nullable`1<Verse.DamageInfo>) <0x0007c>
at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn,Verse.Hediff_Injury,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x00098>
at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn,single,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x001c6>
at Verse.DamageWorker_Scratch.ApplySpecialEffectsToPart (Verse.Pawn,single,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x00454>
at Verse.DamageWorker_AddInjury.ApplyDamageToPart (Verse.DamageInfo,Verse.Pawn,Verse.DamageWorker/DamageResult&) <0x00297>
at Verse.DamageWorker_AddInjury.ApplyToPawn (Verse.DamageInfo,Verse.Pawn) <0x00505>
at Verse.DamageWorker_AddInjury.Apply (Verse.DamageInfo,Verse.Thing) <0x000ae>
at Verse.Thing.TakeDamage (Verse.DamageInfo) <0x002b1>
at Verse.HealthUtility.DamageUntilDead (Verse.Pawn) <0x00155>
at RimWorld.ItemCollectionGenerator_AncientPodContents.GenerateSlave () <0x00177>
at RimWorld.ItemCollectionGenerator_AncientPodContents.Generate (RimWorld.ItemCollectionGeneratorParams,System.Collections.Generic.List`1<Verse.Thing>) <0x000ea>
at RimWorld.ItemCollectionGenerator.Generate (RimWorld.ItemCollectionGeneratorParams) <0x0007b>


(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

Exception while generating item collection: System.NullReferenceException: Object reference not set to an instance of an object
at AvoidFriendlyFire.Pawn_Kill_Patch.Postfix (Verse.Pawn&) <0x00055>
at (wrapper dynamic-method) Verse.Pawn.Kill_Patch3 (object,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x01d51>
at CustomDeathRandomness.CheckForStateChangePatch.Prefix (Verse.Pawn_HealthTracker,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x001ea>
at (wrapper dynamic-method) Verse.Pawn_HealthTracker.CheckForStateChange_Patch1 (object,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x00075>
at Verse.Pawn_HealthTracker.AddHediff (Verse.Hediff,Verse.BodyPartRecord,System.Nullable`1<Verse.DamageInfo>) <0x0007c>
at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn,Verse.Hediff_Injury,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x00098>
at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn,single,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x001c6>
at Verse.DamageWorker_Scratch.ApplySpecialEffectsToPart (Verse.Pawn,single,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x00454>
at Verse.DamageWorker_AddInjury.ApplyDamageToPart (Verse.DamageInfo,Verse.Pawn,Verse.DamageWorker/DamageResult&) <0x00297>
at Verse.DamageWorker_AddInjury.ApplyToPawn (Verse.DamageInfo,Verse.Pawn) <0x00505>
at Verse.DamageWorker_AddInjury.Apply (Verse.DamageInfo,Verse.Thing) <0x000ae>
at Verse.Thing.TakeDamage (Verse.DamageInfo) <0x002b1>
at Verse.HealthUtility.DamageUntilDead (Verse.Pawn) <0x00155>
at RimWorld.ItemCollectionGenerator_AncientPodContents.GenerateSlave () <0x00177>
at RimWorld.ItemCollectionGenerator_AncientPodContents.Generate (RimWorld.ItemCollectionGeneratorParams,System.Collections.Generic.List`1<Verse.Thing>) <0x000ea>
at RimWorld.ItemCollectionGenerator.Generate (RimWorld.ItemCollectionGeneratorParams) <0x0007b>


(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

Exception while generating item collection: System.NullReferenceException: Object reference not set to an instance of an object
at AvoidFriendlyFire.Pawn_Kill_Patch.Postfix (Verse.Pawn&) <0x00055>
at (wrapper dynamic-method) Verse.Pawn.Kill_Patch3 (object,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x01d51>
at CustomDeathRandomness.CheckForStateChangePatch.Prefix (Verse.Pawn_HealthTracker,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x001ea>
at (wrapper dynamic-method) Verse.Pawn_HealthTracker.CheckForStateChange_Patch1 (object,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x00075>
at Verse.Pawn_HealthTracker.AddHediff (Verse.Hediff,Verse.BodyPartRecord,System.Nullable`1<Verse.DamageInfo>) <0x0007c>
at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn,Verse.Hediff_Injury,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x00098>
at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn,single,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x001c6>
at Verse.DamageWorker_Blunt.ApplySpecialEffectsToPart (Verse.Pawn,single,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x00140>
at Verse.DamageWorker_AddInjury.ApplyDamageToPart (Verse.DamageInfo,Verse.Pawn,Verse.DamageWorker/DamageResult&) <0x00297>
at Verse.DamageWorker_AddInjury.ApplyToPawn (Verse.DamageInfo,Verse.Pawn) <0x00505>
at Verse.DamageWorker_AddInjury.Apply (Verse.DamageInfo,Verse.Thing) <0x000ae>
at Verse.Thing.TakeDamage (Verse.DamageInfo) <0x002b1>
at Verse.HealthUtility.DamageUntilDead (Verse.Pawn) <0x00155>
at RimWorld.ItemCollectionGenerator_AncientPodContents.GenerateSlave () <0x00177>
at RimWorld.ItemCollectionGenerator_AncientPodContents.Generate (RimWorld.ItemCollectionGeneratorParams,System.Collections.Generic.List`1<Verse.Thing>) <0x000ea>
at RimWorld.ItemCollectionGenerator.Generate (RimWorld.ItemCollectionGeneratorParams) <0x0007b>


(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

Exception while generating item collection: System.NullReferenceException: Object reference not set to an instance of an object
at AvoidFriendlyFire.Pawn_Kill_Patch.Postfix (Verse.Pawn&) <0x00055>
at (wrapper dynamic-method) Verse.Pawn.Kill_Patch3 (object,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x01d51>
at CustomDeathRandomness.CheckForStateChangePatch.Prefix (Verse.Pawn_HealthTracker,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x001ea>
at (wrapper dynamic-method) Verse.Pawn_HealthTracker.CheckForStateChange_Patch1 (object,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff) <0x00075>
at Verse.Pawn_HealthTracker.AddHediff (Verse.Hediff,Verse.BodyPartRecord,System.Nullable`1<Verse.DamageInfo>) <0x0007c>
at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn,Verse.Hediff_Injury,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x00098>
at Verse.DamageWorker_AddInjury.FinalizeAndAddInjury (Verse.Pawn,single,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x001c6>
at Verse.DamageWorker_Blunt.ApplySpecialEffectsToPart (Verse.Pawn,single,Verse.DamageInfo,Verse.DamageWorker/DamageResult&) <0x00140>
at Verse.DamageWorker_AddInjury.ApplyDamageToPart (Verse.DamageInfo,Verse.Pawn,Verse.DamageWorker/DamageResult&) <0x00297>
at Verse.DamageWorker_AddInjury.ApplyToPawn (Verse.DamageInfo,Verse.Pawn) <0x00505>
at Verse.DamageWorker_AddInjury.Apply (Verse.DamageInfo,Verse.Thing) <0x000ae>
at Verse.Thing.TakeDamage (Verse.DamageInfo) <0x002b1>
at Verse.HealthUtility.DamageUntilDead (Verse.Pawn) <0x00155>
at RimWorld.ItemCollectionGenerator_AncientPodContents.GenerateSlave () <0x00177>
at RimWorld.ItemCollectionGenerator_AncientPodContents.Generate (RimWorld.ItemCollectionGeneratorParams,System.Collections.Generic.List`1<Verse.Thing>) <0x000ea>
at RimWorld.ItemCollectionGenerator.Generate (RimWorld.ItemCollectionGeneratorParams) <0x0007b>

Canute

Geeeeshhhh TryB4Buy,
Didn't you saw the "shared log" button at the error window, at the down left corner ?
Or don't you know how to post an error log ?
Point 6 at
https://ludeon.com/forums/index.php?topic=513.0

Or at last you could put all these errors into a tag, the "#" icon when you repley.

falconne

Just posted a new update.

I've added a setting in Mod Options to always enable 'Avoid FF' status on a pawn when it's undrafted. If you tend to disable the 'Avoid FF' setting on pawns during combat, using this option will ensure it is always turned back on again before the next combat. This new option is off by default.

@TryB4Buy in this update I have added a guard around the area where you're getting a problem. I don't know why it's happening; your stack trace implies the game is generating an ancient danger, but you say you were just right clicking a target, so something weird is going on. Regardless, with this update the problem should go away.

TryB4Buy

@Canute Sorry about the text dump, but it faster than a pastebin link.

Quote from: falconne on December 29, 2017, 04:12:58 AM@TryB4Buy in this update I have added a guard around the area where you're getting a problem. I don't know why it's happening; your stack trace implies the game is generating an ancient danger, but you say you were just right clicking a target, so something weird is going on. Regardless, with this update the problem should go away.
Sweet. Now that's turn around time! I'm using pretty much every QoL mod that is B18 compatible, so if AFF works for me then it will work for anyone.

I still have a slight frame drop (from another mod) but it could be the other mods like Defense Positions or something. Not sure. I did manage to recreate the massive (sometimes) frame drop, but it throws no errors so I don't know how to troubleshoot it.

falconne

Did you check the output log after your remaining freeze? There should be a repeated stack trace in there.

TryB4Buy

I don't have any freezes, just lag. And its only upon right clicking. I made sure to come back here after my current campaign ended (Rimworld ran out of pawns to generate, so no raids even via dev menu).

I just went through my whole mod list adding groups of mods at a time to try to isolate it, but I can't. Frustratingly, I think the load order matters in the reproducibility. Of course, this means that after I shook up the order, the lag went away. So, yay.

falconne

If you ever get the lag again after right clicking, that's a good time to save and exit, then grab the output log at that time. I can check if there's anything at the end of the log that might be relevant.

Vlad0mi3r

Ok this feels like it has changed recently, why can I not have animals with a master fired near/at. If I send a boomrat out to fight with a sapper I don't want the home team standing there cheering on the rat I want them to open up and shoot the sapper. If the rat go's BOOM then yay thats the idea.

I think an extra tab needs to be added in order to differentiate or give more options. maybe protect all animals and then an option to protect animals with a master. 

So in short let me shoot the walking IED please I want to be able to set my enemy's on fire again. I can't release an animal without it having a master.

As a side note this is making this mod really hard to use with giddy up. My powered armoured, shield belt wearing, Sword wielding maniacs mounted on their robotic attack bears keep getting in the way of the snipers trying to take their shots. Trust me the bear can take it.
Mods I would recommend:
Mending, Fertile Fields, Smokeleaf Industries and the Giddy Up series.

The Mod you must have:
https://ludeon.com/forums/index.php?topic=40545.msg403503#msg403503