[A16] Psychology (2017-5-14)

Started by System.Linq, August 19, 2016, 07:16:38 AM

Previous topic - Next topic

System.Linq

A justice system like DF might be cool, yeah, but outside the scope of this mod. Sabotage is more like DF's vampires.

fledermaus

So that's why my doors were open...
lol That's awesome!

123nick

how does this mod interacts with several puffins mods? like romance diversified,  rumors and deception, etc?

System.Linq

They are redundant, but compatible. Load Psychology last and it will disable some of its features to prevent errors.

primustan

Oh, maybe I should have done a little more testing before complaining about the clothes lol

Don't get me wrong, I like the additional difficulty your mod adds. You're doing a great job so far and I'll definitely be keeping an eye on your work. :)

sidfu

wanted to see if the mod worked with the hardcore mod pack but seems psycology causes naked pawns to be prevented from generateing.
Could not cast Pawn to PsychologyPawn.
Verse.Log:Error(String)
Psychology.Detour._PawnGenerator:_GenerateTraits(Pawn, Boolean)
Verse.PawnGenerator:DoGenerateNewNakedPawn(PawnGenerationRequest&, String&, Boolean)
Verse.PawnGenerator:GenerateNewNakedPawn(PawnGenerationRequest&)
Verse.PawnGenerator:GeneratePawn(PawnGenerationRequest)
RimWorld.Faction:GenerateNewLeader()
RimWorld.FactionGenerator:NewGeneratedFaction(FactionDef)
RimWorld.FactionGenerator:GenerateFactionsIntoWorld(String)
RimWorld.Planet.WorldGenerator:GenerateWorld(Single, String, OverallRainfall, OverallTemperature)
RimWorld.Page_CreateWorldParams:<CanDoNext>m__527()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__733()

Exception from asynchronous event: System.NullReferenceException: Object reference not set to an instance of an object
  at Verse.HediffMaker.MakeHediff (Verse.HediffDef def, Verse.Pawn pawn, Verse.BodyPartRecord partRecord) [0x00000] in <filename unknown>:0
  at Verse.Pawn_HealthTracker.AddHediff (Verse.HediffDef def, Verse.BodyPartRecord part, Nullable`1 dinfo) [0x00000] in <filename unknown>:0
  at Psychology.Detour._Recipe_InstallArtificialBodyPart._ApplyOnPawn (RimWorld.Recipe_InstallArtificialBodyPart r, Verse.Pawn pawn, Verse.BodyPartRecord part, Verse.Pawn billDoer, System.Collections.Generic.List`1 ingredients) [0x00000] in <filename unknown>:0
  at RimWorld.PawnTechHediffsGenerator.GeneratePartsAndImplantsFor (Verse.Pawn pawn) [0x00000] in <filename unknown>:0
  at Verse.PawnGenerator.GenerateInitialHediffs (Verse.Pawn pawn, PawnGenerationRequest request) [0x00000] in <filename unknown>:0
  at Verse.PawnGenerator.DoGenerateNewNakedPawn (Verse.PawnGenerationRequest& request, System.String& error, Boolean ignoreScenarioRequirements) [0x00000] in <filename unknown>:0
  at Verse.PawnGenerator.GenerateNewNakedPawn (Verse.PawnGenerationRequest& request) [0x00000] in <filename unknown>:0
  at Verse.PawnGenerator.GeneratePawn (PawnGenerationRequest request) [0x00000] in <filename unknown>:0
  at RimWorld.Faction.GenerateNewLeader () [0x00000] in <filename unknown>:0
  at RimWorld.FactionGenerator.NewGeneratedFaction (RimWorld.FactionDef facDef) [0x00000] in <filename unknown>:0
  at RimWorld.FactionGenerator.GenerateFactionsIntoWorld (System.String seedString) [0x00000] in <filename unknown>:0
  at RimWorld.Planet.WorldGenerator.GenerateWorld (Single planetCoverage, System.String seedString, OverallRainfall overallRainfall, OverallTemperature overallTemperature) [0x00000] in <filename unknown>:0
  at RimWorld.Page_CreateWorldParams.<CanDoNext>m__527 () [0x00000] in <filename unknown>:0
  at Verse.LongEventHandler.RunEventFromAnotherThread (System.Action action) [0x00000] in <filename unknown>:0
Verse.Log:Error(String)
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__733()


tried differnt spots in load order but all same thing. realy wanted to get it to work.

System.Linq

It doesn't look like an error in Psychology. It looks like Hardcore SK adds a faction that's supposed to generate with artificial body parts, and that's causing a null pointer exception when creating the part for them. All Psychology does there is add a thought to pawns with the Bleeding Heart trait when artificial parts are added, but since the billDoer is null, that code is skipped entirely.

It's possible that a mod in Hardcore SK detours InstallArtificialBodyPart.ApplyOnPawn in a way that's incompatible with Psychology.

System.Linq

Updated to 2017-1-6.

New Mental Breaks
- Berserk (extreme): The same mental break you know and love, but its frequency is greatly reduced. Bloodlust pawns now have the greatest chance to go berserk, followed by psychopaths, then brawlers. (idea credit twoski)
- Sadism (extreme): The pawn will go after the colony's prisoners and pets, as well as wild animals, and brutalize them. Psychopaths have the greatest chance to become sadistic, followed by bloodlust pawns, then brawlers. (idea credit twoski)
- Self-harm (extreme): The pawn will cut their hands and arms and hide in their room. Masochists have the greatest chance to self-harm. (idea credit twoski)
- Tantrum (extreme): The pawn will destroy nearby furniture and buildings. (idea credit twoski)
- Abuse (extreme): The pawn will wander around the colony, finding people to harass and insult. Abrasive pawns have the greatest chance to break this way, followed by unstable pawns. (idea credit twoski)
- Compulsion (major): The pawn relentlessly cleans and organizes their surroundings, usually until they pass out from exhaustion. (idea credit twoski)
- Antisocial (minor): The pawn will wander out into the wilderness, avoiding their fellow colonists. (idea credit twoski)
- Apathy (minor): The pawn becomes lethargic and will frequently wander around instead of working. They cannot be manually assigned to tasks or drafted while apathetic. (idea credit twoski)
- Histrionic (minor): The pawn desperately seeks attention and validation, wandering around the colony trying to talk to people. Occasionally, they will flirt with someone or propose to their partner. Socialite pawns have the greatest chance to break this way, followed by Lechers.

Miscellaneous
- Arresting: Pawns now have a "peaceful arrest chance" stat based on their Social skill, which is used when determining whether someone refuses arrest.
- Pyromaniacs: Pyromaniacs can now be treated by assigning them a bill through the Operations screen. If successful, they will gain the "recovering pyromaniac" status effect, during which they will not go on fire-starting sprees, at the cost of being a little more on edge. It must be maintained through use of good medicine, or they may lapse.

The feature list is now too long to fit in Steam's mod description box.

Kyna Tiona


Fafn1r

I take back what I said earlier about moods being higher with psychology on - they're alright. I'm not even using the option to set empathy to default (which is a nice touch). :D

Though I don't like the new saboteur thing. The idea sounds good, but not so much when one of original crashed survivors, who has good relationships with everyone, turns to be one. And he's not even a threat, just a real annoyance, another thing to micromanage.

mrm8029

Quote from: Fafn1r on January 06, 2017, 12:26:32 PM
I take back what I said earlier about moods being higher with psychology on - they're alright. I'm not even using the option to set empathy to default (which is a nice touch). :D

Though I don't like the new saboteur thing. The idea sounds good, but not so much when one of original crashed survivors, who has good relationships with everyone, turns to be one. And he's not even a threat, just a real annoyance, another thing to micromanage.

The saboteur event was disabled by default and is toggle-able in the options menu now.

@Psychology: Thanks for the mod and continued work (:

Kyna Tiona

Oh, question. Given that the Kinsey scale has a rating for asexuality in addition to straight/bi/gay, does saying that you're using the scale imply that ase pawns exist now? Or is that part of the scale currently omitted?

System.Linq

Quote from: Fafn1r on January 06, 2017, 12:26:32 PM
Though I don't like the new saboteur thing. The idea sounds good, but not so much when one of original crashed survivors, who has good relationships with everyone, turns to be one. And he's not even a threat, just a real annoyance, another thing to micromanage.

There's no way to tell whether or not a colonist is part of your original crash group, AFAIK, or I would have disabled it for them. And everyone's base and circumstances are different, so whether or not a saboteur is a threat depends entirely on the colony and how good you are at catching them. Few things are a "threat" to you, the player, but saboteurs are definitely a threat to your colony and its colonists, especially if you don't catch them in time.

Quote from: Caraise Link on January 06, 2017, 07:56:52 PM
Oh, question. Given that the Kinsey scale has a rating for asexuality in addition to straight/bi/gay, does saying that you're using the scale imply that ase pawns exist now? Or is that part of the scale currently omitted?

The Kinsey scale rating is not for asexuality, it's for people who haven't had any sexual contacts or reactions and thus can't be rated. Asexuals still commonly identify as straight, gay, or bi. If and when I add asexuality, it will be separate from the Kinsey scale.

Kyna Tiona

Quote from: Psychology on January 06, 2017, 08:52:49 PM
Quote from: Caraise Link on January 06, 2017, 07:56:52 PM
Oh, question. Given that the Kinsey scale has a rating for asexuality in addition to straight/bi/gay, does saying that you're using the scale imply that ase pawns exist now? Or is that part of the scale currently omitted?

The Kinsey scale rating is not for asexuality, it's for people who haven't had any sexual contacts or reactions and thus can't be rated. Asexuals still commonly identify as straight, gay, or bi. If and when I add asexuality, it will be separate from the Kinsey scale.

Eh? [Rereads the wiki article more thoroughly] Ohhhhhh, I get it. The wording "no socio-sexual contacts or reactions" was actually just meant to say that hadn't happened yet for them, but in a modern context it reads like a description of asexuality. So it essentially got hijacked by accident, I guess? Even Wikipedia's description of it is linking to the asexuality page without properly explaining the connection, and that makes me a little sad...

System.Linq

More importantly, it's just not an accurate representation of asexuality, so I won't be implementing it that way.