(A16 unstable) Mechanoids try to wear clothes in very cold weather

Started by ReZpawner, December 13, 2016, 04:29:05 PM

Previous topic - Next topic

ReZpawner

15x:
Could not execute post-long-event action. Exception: System.NullReferenceException: Object reference not set to an instance of an object at Verse.PawnGraphicSet.ResolveApparelGraphics() 0x000331 in C:\Dev\Rimworld\Assets\Scripts\Verse\Pawn\Drawer\Renderer\ParnGraphicSet.cs:176

5 Scythers attacking the base - The scythers are for some reason wearing winterclothes. (Toque and parka). Also, if they are comfortable in -170C, why are they wearing clothes?

Bug can be recreated by executing a raid with mechanoids (scythers).


Illusion Distort

Something must be wrong with the pawn creator. Could be that a parameter has slipped into the pawn defs?

To Tynan: look into the Mechanoid attack defs and pawn creation

Tynan

ReZ, I need the whole log. Can you please post it? You can find it according to the last lines here: https://ludeon.com/forums/index.php?topic=513.0
Tynan Sylvester - @TynanSylvester - Tynan's Blog

Tynan

I'm unable to reproduce this. How do you make this bug occur?

I tried generating a very cold map (-35C) and force-executing a mechanoid raid. No bug.
Tynan Sylvester - @TynanSylvester - Tynan's Blog

Tynan

Tynan Sylvester - @TynanSylvester - Tynan's Blog

ReZpawner

Sorry about that, didn't notice that you had replied (didn't think anyone would tbh).

The map I'm on is much - MUCH colder than that. Icesheet, -95C on average. I've noticed that every mechanoid is wearing clothing, which is odd, but would be perfectly logical if they fell under the same category as other pawns being spawned in extreme cold circumstances. (Since they automatically get parka\toque when it's below a certain threshold).

I've had to change the def for the attacks so that there's a 0 % chance of them attacking, as they seem to have a much higher probability to attack than any other faction. That being said, they still spawn, and still have the same error message when I destroy a poison or a psychic ship. The same error is present in the updated version also.

The savegame I'm playing on is the same that I've had since the beginning of a16. I'll start a new one and edit the post just to make sure that's not the problem.

The error message that I keep receiving (24 times upon attacking a ship) is the following:


(Filename: C:/Dev/RimWorld/Assets/Scripts/Verse/Utility/Debug/Log/Log.cs Line: 46)

Could not execute post-long-event action. Exception: System.NullReferenceException: Object reference not set to an instance of an object
  at Verse.PawnGraphicSet.ResolveApparelGraphics () [0x00033] in C:\Dev\RimWorld\Assets\Scripts\Verse\Pawn\Drawer\Renderer\PawnGraphicSet.cs:176
  at RimWorld.Pawn_ApparelTracker.<ApparelChanged>m__2AD () [0x00000] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\Pawn\Trackers\Pawn_ApparelTracker.cs:373
  at Verse.LongEventHandler.ExecuteToExecuteWhenFinished () [0x00022] in C:\Dev\RimWorld\Assets\Scripts\Verse\Global\LongEventHandler.cs:348
UnityEngine.DebugLogHandler:Internal_Log(LogType, String, Object)
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:LogError(Object)
Verse.Log:Error(String) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:46)
Verse.LongEventHandler:ExecuteToExecuteWhenFinished() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\LongEventHandler.cs:352)
Verse.LongEventHandler:ExecuteWhenFinished(Action) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\LongEventHandler.cs:211)
RimWorld.Pawn_ApparelTracker:ApparelChanged() (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\Pawn\Trackers\Pawn_ApparelTracker.cs:371)
RimWorld.Pawn_ApparelTracker:Wear(Apparel, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\Pawn\Trackers\Pawn_ApparelTracker.cs:204)
RimWorld.PossibleApparelSet:GiveToPawn(Pawn) (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\Pawn\PawnGenerator\ApparelGenerator\PossibleApparelSet.cs:227)
RimWorld.PawnApparelGenerator:GenerateStartingApparelFor(Pawn, PawnGenerationRequest) (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\Pawn\PawnGenerator\ApparelGenerator\PawnApparelGenerator.cs:167)
Verse.PawnGenerator:GenerateGearFor(Pawn, PawnGenerationRequest) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Pawn\PawnGenerator\PawnGenerators.cs:366)
Verse.PawnGenerator:GeneratePawn(PawnGenerationRequest) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Pawn\PawnGenerator\PawnGenerators.cs:81)
Verse.PawnGenerator:GeneratePawn(PawnKindDef, Faction) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Pawn\PawnGenerator\PawnGenerators.cs:42)
RimWorld.Building_CrashedShipPart:TrySpawnMechanoids() (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\Thing\Building\Various\Building_CrashedShipPart.cs:123)
RimWorld.Building_CrashedShipPart:PreApplyDamage(DamageInfo, Boolean&) (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\Thing\Building\Various\Building_CrashedShipPart.cs:82)
Verse.Thing:TakeDamage(DamageInfo) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Thing\Thing.cs:799)
Verse.Dialog_DebugActionsMenu:<DoListingItems_MapTools>m__8DC() (at C:\Dev\RimWorld\Assets\Scripts\Verse\UI\DevTools\Dialogs\Dialog_DebugActionsMenu.cs:539)
Verse.DebugTool:DebugToolOnGUI() (at C:\Dev\RimWorld\Assets\Scripts\Verse\UI\DevTools\DebugTool.cs:88)
Verse.DebugTools:DebugToolsOnGUI() (at C:\Dev\RimWorld\Assets\Scripts\Verse\UI\DevTools\DebugTool.cs:16)
RimWorld.UIRoot_Play:UIRootOnGUI() (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\UIRoot_Play.cs:102)
Verse.Root:OnGUI() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root.cs:148)

(Filename: C:/Dev/RimWorld/Assets/Scripts/Verse/Utility/Debug/Log/Log.cs Line: 46)



ReZpawner

First update: Nothing seems to happen at -61C, going to try again for a lower temperature, as I suspect that this isn't cold enough. The scyther that spawned did NOT have winter-clothes.

Second update: New game at -135C, the bug is back and confirmed. Scyther wearing clothes.

Same error as before, and now we know how to reproduce it. So, set the slider to the lowest setting on temperature, set up your base next to Santa's workshop during the winter season, and either start a raid, or do it the easy way with less random chance; drop down a poison ship. I'm guessing you know a lot more about what the temperature threshold is than I do, seeing as you made it, so I won't do too much guessing there.

Just for the record, even the big ones wear parkas and toques.

Illusion Distort

Mechs are not supposed to wear apparel, but the game forces them, causing this bug. The reason they have higher chances of attacking you than any other faction is because a raid will not be executed if the raiders are unable to survive. (-95C will kill any humans, no apparel will save them)

Illusion Distort

Reproducible by forcing a poison ship crash on a map with temp -128C.

Tynan

Tynan Sylvester - @TynanSylvester - Tynan's Blog