Coder Social home page Coder Social logo

pawnmorpher's People

Contributors

aerosatar avatar brennencramer avatar diakon5 avatar fxwolfxe avatar grahammertek avatar juijote avatar lelodu87 avatar lucastherrien avatar martinlyra avatar michael-s-crouch avatar nillicon avatar notfood avatar petetimessix avatar radhazard avatar tachyonite avatar tachyonnz avatar theman83554 avatar zebreva avatar zeracronius avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

pawnmorpher's Issues

Pawns being added to prison breaks multiple times.

Describe the bug
Whenever you fully tf/feralize a prisoner, it does not seem to get removed from the list of prisoners so then when a prison break event spawns, non-tf'd prisoners get added to the prison break multiple times, spawning the error.

To Reproduce
Steps to reproduce the behavior:

  1. Have multiple prisoners (may have to all be from the same faction)
  2. Fully TF one.
  3. Spawn a prison break
  4. See error

Error Log

Verse.Log:Error(String, Boolean)
Verse.AI.Group.Lord:AddPawn(Pawn)
Verse.AI.Group.LordMaker:MakeNewLord(Faction, LordJob, Map, IEnumerable`1)
RimWorld.PrisonBreakUtility:StartPrisonBreakIn(Room, List`1, Int32, HashSet`1)
RimWorld.PrisonBreakUtility:StartPrisonBreak(Pawn, String&, String&, LetterDef&)
RimWorld.PrisonBreakUtility:StartPrisonBreak(Pawn)
RimWorld.Pawn_GuestTracker:GuestTrackerTick()
Verse.Pawn:Tick()
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()

Expected behavior
Prisoners should be properly removed from the map's prisoner list.

Screenshots
Capture

Additional context
In this instance, I had turned one of my prisoners into a chaocow.

Generated morphs lack certain mutations

Describe the bug
Morphs generated by the free morph start don't get all the mutations they are supposed to.

To Reproduce
Steps to reproduce the behavior:

  1. Start up a new game with the free morphs start.
  2. Check the hediffs that the generated morphs have (most noticeable on the monkey, who just get fur and their jaw)

Expected behavior
Morphs should be fully fleshed out and have more than one hediff per body slot.

Screenshots
image

Just loaded with required framework mods. No additional feature or QOL mods.

Chaomorphs don't show up in options in mutagenic chamber modulator

Bug
the chaomorphs do not show up in the set animal option for either of the modulators

To Reproduce
Steps to reproduce the behavior:

  1. build a mutagenic chamber with linked modulator
  2. select "Set Animal"
  3. only tagged animals show up

Expected behavior
the chaormorphs should always be listed as an option in the "Set Animal" menu on the modulator

Patch operation fails if a tail is already added

Describe the bug
If a tail is aleady added to the HumanBody BodyDef by another mod, the patch operation to add a tail fails.

To Reproduce

  1. Put a mod that adds a tail part to the HumanBody BodyDef above Pawnmorpher in the mod load order
  2. reload game

Error Log
[Pawnmorpher] Patch operation Verse.PatchOperationSequence(count=2, lastFailedOperation=Verse.PatchOperationTest(Defs/BodyDef[defName="Human"]/corePart/parts/li/def[text()="Tail"])) failed file: C:\Program Files (x86)\Steam\steamapps\workshop\content\294100\1786466855\Patches\Core\Core_HumanTailAdder.xml Verse.Log:Error(String, Boolean) Verse.PatchOperation:Complete(String) Verse.PatchOperationSequence:Complete(String) Verse.LoadedModManager:ClearCachedPatches() Verse.LoadedModManager:LoadAllActiveMods() Verse.PlayDataLoader:DoPlayLoad() Verse.PlayDataLoader:LoadAllPlayData(Boolean) Verse.Root:<Start>m1() Verse.LongEventHandler:RunEventFromAnotherThread(Action) Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m1()

Expected behavior
If a tail part (with defName 'Tail') is added by a preivous mod, the patch operation should not fail and should not add a second tail

Animals TF'ing throws an error.

Describe the bug
Animals can be force to tf, but due to how the process works it fails spectacularly, duplicating the pawn.

To Reproduce
Steps to reproduce the behavior:

  1. Use an injector on an animal
  2. Set the full tf chance to 100%
  3. Wait four days
  4. See error

Error Log
Exception ticking hediff (FullRandomTFAnyOutcome ticksSinceCreation=240143) for pawn Husky85410. Removing hediff... Exception: System.NullReferenceException: Object reference not set to an instance of an object
at Pawnmorph.TransformerUtility.CleanUpHumanPawnPostTf (Verse.Pawn originalPawn, Verse.Hediff cause) [0x00000] in :0
at Pawnmorph.TfSys.SimpleMechaniteMutagen.TransformImpl (TransformationRequest request) [0x00000] in :0
at Pawnmorph.TfSys.Mutagen`1[T].Transform (TransformationRequest request) [0x00000] in :0
at Pawnmorph.HediffGiver_TF.TryTf (Verse.Pawn pawn, Verse.Hediff cause) [0x00000] in :0
at Pawnmorph.Hediff_Morph.TryGiveTransformations () [0x00000] in :0
at Pawnmorph.Hediff_Morph.EnterNextStage () [0x00000] in :0
at Pawnmorph.Hediff_Morph.PostTick () [0x00000] in :0
at Verse.Pawn_HealthTracker.HealthTick () [0x00000] in :0
Verse.Log:Error(String, Boolean)
Verse.Pawn_HealthTracker:HealthTick()
Verse.Pawn:Tick_Patch1(Object)
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()

Expected behavior
Animals should probably not even be able to get the tf hediffs

Screenshots
image

Additional context
In this particular case, Earl the husky ate some mechanite slurry.

Former Humans with addictions throw an error and disappear on load

Describe the bug
Loading my most recent 1.0 save gives me an error and one of my former humans disappears. The other former humans are unaffected. If I load the most recent autosave the same thing happens, but an older autosave from the same colony loads without error.

EDIT: The bug is related to addictions. If a former human is addicted to something, they will fail to load.

To Reproduce

  1. Transform a human into an animal
  2. Feed them flake until they get addicted
  3. Save and then reload the game
  4. The log throws an error and the addicted former human does not get spawned

Error Log
https://gist.github.com/51b2409dae03753b5d37e59aa35780a3

Expected behavior
The save loads without error and no pawns disappear

Additional context
Using the 1.0 branch + the workshop version of Pawnmorpher

Zip of the broken save and a working one

Add all Morph Specific Mutations on Full Transformation

Description
Currently, getting all morph specific mutations is very labor, resource and time intensive with no clear way of how to guarantee a pawn gets all mutations specific to a particular animal

Solution
When a pawn fully transforms into an animal the original pawn is given all mutations specific to that animal so that when/if they are reverted, they have all possible, morph specific, mutations

Benefits

  • relatively easy to implement
  • provides a guaranteed way of getting all animal specific mutations
  • mutations are still risky and not entirely predictable

Hybrid Race Change event does not always fire correctly

Describe the bug
sometimes pawn have less then 50% human influence yet do not change races

To Reproduce
Steps to reproduce the behavior:

  1. Add mutations untill pawn has less then 50% human influence
  2. Wait for "transforming" stage to begin
  3. Race does not change

Expected behavior
a pawn's race should change when they get below 50% human influence

Morph products are marked for prisoner again

Describe the bug
TFEggs and TFMilk are marked for prisoner like other food items and will not be hauled.

To Reproduce
Steps to reproduce the behavior:

  1. Put a stockpile of morph products in a prisoner bedroom.
  2. Delete the stockpile.
  3. ...?
  4. Profit.

Expected behavior
Egg-laying and milk-producing prisoner's products shouldn't be forbidden.

Mutagenic chambers without modulators always produce the same animal

Describe the bug
Mutagenic chambers always seem to produce the same animal when not given a modulator. The animal is different for every chamber but each chamber consistently produces the same animal (e.g. I had one chamber that transformed everyone placed into it into a snowhare, and another that transformed everyone into yaks)

To Reproduce
Steps to reproduce the behavior:

  1. Build a mutagenic chamber
  2. Mutate several totally voluntary test subjects in said chamber
  3. Observe all test subjects come out as the same species

Expected behavior
Unmodulated chambers produce random animals rather than the same one every time.

Tf'd Pawn's causing caravans not to show up

Describe the bug
Hadn't had a caravan in a while, so used the comms console, a week later, still none. Decided to use the dev tools to force spawn one, nothing, and no error in the log. After playing around a bit, including settling a 2nd colony and regenerating the map, found that both those actions started caravans spawning again. Assumption, stuck people on my map blocking new caravans? Tried killing a former human I'd tamed, no result, tried reverting them then killing, aha, caravans are back. The problem seems to be a slow to develop one and may be a conflict with another mod, but as there's no issues for the first few years it's hard to test.

To Reproduce
No reliable method found. Occurs during long playthroughs over time.

Expected behavior
Caravan masters being transformed should not lock out further caravans.

Wild Former Humans throw an error upon administering reversion serum

Describe the bug
If you attempt to give reversion serum to a wild animal, upon reverting an error is logged. The reverted pawn is spawned correctly but the animal does not disappear

To Reproduce

  1. Find or make a wild animal with the Former Human status
  2. Down the animal
  3. Rescue the animal without taming it first
  4. Administer reversion serum

Error Log
https://gist.github.com/72e020206f507c5e22f6409583619e95

Expected behavior
The pawn is reverted without error

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
Reproducible with just Pawnmorpher and the minimum dependencies installed

Colonies Don't Load Right/Aren't Created

(1.1) After updating to the latest dev build of Pawnmorpher, I set my modlist to Hugslib -> HAL2(Latest Steam Version) -> PW. I then tried to load an existing colony, which loaded without any pawns or animal pawns on the map. Strange.
I then tried to make a new colony, but after pulling up devmode, I ended up with errors like these:
20200223152752_1
It seems that Harmony and HAL2 are having issues with something. I'm going to post a portion of an error log that should contain these errors, excluding the mountain of "missing defs" and "null descriptions".
https://pastebin.com/jgJfMUps

Here is the entirety of an error log from one of these sessions:
https://gist.github.com/323edf2fd897e26931511d640630279b

Will update when necessary.

Thrumboears lack a north-facing texture.

Description
The ThrumboMorph's ears hediff lack a north-facing graphic.

To Reproduce
Steps to reproduce the behavior:

  1. Add Thrumbic hediff to either of a pawn's ears.
  2. Make them walk north or operate a north-facing object (such as artillery)
  3. ...?
  4. Profit.

Expected behavior
There should be a unique texture. They currently use the south texture

Pawns cannot feralize while not on a map.

Describe the bug
As the mod stands right now, we do not have a method to handle pawns doing the feralization check whilst in a caravan in transit. In fact, the code specifically ignores this possibility with a check.

To Reproduce
Steps to reproduce the behavior:

  1. Inject a pawn
  2. Set tf chance to 100%
  3. Send the pawn on a caravan to nowhere when they are about to tf
  4. See error

Expected behavior
We should have it so that pawns who feralize in a caravan do a full tf, adding them to the caravan's animals and deepsaving then removing their pawn.

Only three types of heads useable

My game uses only three types of heads for creating colonists. The average normal, average pointy and the average wide head. If i remove pawnmorpher the game uses all types of heads to create new colonists. I have a big mod list but i tested it without any other mods too.

To Reproduce
I don't know how to reproduce the bug on other devices if it is working just fine on other Computers because its always showing up when i have the mod activated. But i get an error log when i load a colonist via EdB Prepare carefully who had one of the head types for example the narrow pointy head.

Error Log
[Prepare Carefully] Could not find a head type the graphic path: Things/Pawn/Humanlike/Heads/Male/Male_Narrow_Wide
Verse.Log:Warning(String, Boolean)
EdB.PrepareCarefully.Logger:Warning(String)
EdB.PrepareCarefully.CustomPawn:set_HeadGraphicPath(String)
EdB.PrepareCarefully.PawnLoaderV5:ConvertSaveRecordToPawn(SaveRecordPawnV5)
EdB.PrepareCarefully.PresetLoaderV5:Load(PrepareCarefully, String)
EdB.PrepareCarefully.PresetLoader:LoadFromFile(PrepareCarefully, String)
EdB.PrepareCarefully.Controller:LoadPreset(String)
EdB.PrepareCarefully.Page_PrepareCarefully:b__32_0(String)
EdB.PrepareCarefully.Dialog_LoadPreset:DoMapEntryInteraction(String)
EdB.PrepareCarefully.Dialog_Preset:DoWindowContents(Rect)
Verse.Window:InnerWindowOnGUI(Int32)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle)

Additional context
I only get an error log from Prepare carefully when i load a colonist with a head type that isn't one of the tree i mentioned at the beginning. when i Play without any other mod exept Pawnmorpher the game is simply not using the other head types and i never get any error logs.
Hope you can understand it. My english skills are not the best.

Melds & Fusions have multiple former human hediffs and revert to a different, single pawn

Describe the bug
After melding two pawns in a chamber (either into a chaomeld or chaofusion), the resulting meld/fusion has both a Former Human hediff and a 2xFormer Human hediff. Giving reversion serum to the animal reverts it into a single pawn that is not either of the original pawns

To Reproduce

  1. Create a meld from two pawns using mutagenic chambers
  2. Observe the meld has two "Former human" hediffs
  3. Apply reversion serum to the meld
  4. Observe only a single pawn is spawned which is neither of the original pawns used to make the meld

Error Log
No errors are thrown

Expected behavior
Melds have a single 2xFormer Human hediff and reverting them returns the original pawns used to make the meld

Primal Wish pawns get negitive thoughts about mutations

Describe the bug
Pawns with the Primal Wish aspect but not Mutagen Affinity will gain the negative thoughts from mutating (e.g. "Fur -1: People aren't supposed to have fur")

To Reproduce
Steps to reproduce the behavior:

  1. Give a pawn primal wish
  2. Apply mutaserum
  3. Obvserve that they get upset about turning into an animal

Expected behavior
Primal wish pawns should get the same/similar positive thoughts as Mutagen Affinity pawns, or at the very least shouldn't gain the negative ones.

Mutagenic chambers not creating chaofusions

Describe the bug
Whenever using the chambers (both big and small) to create a 2xmergedhuman chaocreature, the chaber throws all sorts of errors

To Reproduce
Steps to reproduce the behavior:

  1. Place in two chambers connected to the associated modulator.
  2. Have two pawns get in without setting anything on the modulator.
  3. Have the modulator fuse the two chambers.
  4. Wait till the fusing chamber reaches 100%.
  5. See error.

Error Log
Unfortunately nothing in the error log is all that helpful, just some null GUI element stuff:

System.NullReferenceException: Object reference not set to an instance of an object
at Pawnmorph.Building_MutagenChamber.GetInspectString () <0x00337>
at (wrapper dynamic-method) RimWorld.InspectPaneFiller.DrawInspectStringFor_Patch2 (Verse.ISelectable,UnityEngine.Rect) <0x00054>

Verse.Log:Error(String, Boolean)
RimWorld.InspectPaneFiller:DrawInspectStringFor_Patch2(ISelectable, Rect)
RimWorld.InspectPaneFiller:DoPaneContentsFor(ISelectable, Rect)
RimWorld.MainTabWindow_Inspect:DoPaneContents(Rect)
RimWorld.InspectPaneUtility:InspectPaneOnGUI(Rect, IInspectPane)
RimWorld.MainTabWindow_Inspect:DoWindowContents_Patch2(Object, Rect)
Verse.<WindowOnGUI>c__AnonStorey0:<>m__0(Int32)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle)

Expected behavior
When the chambers finish, a chao creature should pop out.

Screenshots
image

Additional context
This test was done on the latest steam version.

Mutagenic Stone casues desyncs in multiplayer

Describe the bug
mutagenic stones causes desyncs in multiplayer

To Reproduce
Steps to reproduce the behavior:

  1. spawn in mutanite in multiplayer

Additional context
only happens in multiplayer

Experimental

Describe the bug
Deletes all the morphs I had in the previous build. The other stuff I had from PM, like mutagens, stayed though.

To Reproduce
Steps to reproduce the behavior:

  1. Install latest test build
  2. Launch a game with morphs
  3. See error

Error Log
Could not resolve reference to object with loadID Thing_HuskyMorphRace_Implied903357 of type Verse.Pawn. Was it compressed away, destroyed, had no ID number, or not saved/loaded right? curParent=chitchat: Espresso->null curPathRelToParent=
Verse.Log:Warning(String, Boolean)
Verse.LoadedObjectDirectory:ObjectWithLoadID(String)
Verse.CrossRefHandler:TakeResolvedRef(String, IExposable)
Verse.CrossRefHandler:TakeResolvedRef(String)
Verse.Scribe_References:Look(Pawn&, String, Boolean)
Verse.PlayLogEntry_Interaction:ExposeData()
Verse.CrossRefHandler:ResolveAllCrossReferences()
Verse.ScribeLoader:FinalizeLoading()
Verse.Game:LoadGame()
Verse.SavedGameLoaderNow:LoadGameFromSaveFileNow(String)
Verse.<>c:b__1_1()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.<>c:b__27_0()
System.Threading.ThreadHelper:ThreadStart_Context(Object)
System.Threading.ExecutionContext:RunInternal(ExecutionContext, ContextCallback, Object, Boolean)
System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object, Boolean)
System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object)
System.Threading.ThreadHelper:ThreadStart()

Expected behavior
Load the game, and still have my morphs.

Screenshots
image

Additional context
malteschulze.rimmsassemble
brrainz.harmony
ludeon.rimworld
ludeon.rimworld.royalty
unlimitedhugs.hugslib
jecrell.jecstools
erdelf.humanoidalienraces
walkingproblem.aaf
haplo.miscellaneous.core
arandomkiwi.rimsaves
neptimus7.progressrenderer
madeline.modmismatchformatter
sarg.smartspeed
cabbage.rimcities
loconeko73.roadsoftherim
nilchei.powerfulfactionbases
woolstrand.realruins.mod
vanya.tools.blightedalert
tammybee.predatorhuntalert
zylle.extraalerts
krafs.levelup
sandy.rpgstyleinventory
notfood.researchpal
erdelf.showmoddesignators
pelador.brrrandphew
mlie.wehadatrader
voult.betterpawncontrol
dubwise.dubsbreakmod
uuugggg.replacestuff
saakra.factioncolonies
frozensnowfox.filthvanisheswithrainandtime
ogliss.ykara.harvesteverything
smuffle.harvestorganspostmortem
jaxe.boommod
jkluch.haultostack
agentblac.makepawnsprisoners
jaxe.bubbles
paradies.invisiblehats
hatti.qualitybuilder
crlsniper.metaldoesntburn
hobtook.mortaraccuracy
ebonjaeger.repowerreborn
frozensnowfox.nodefaultshelfstorage
supes.selectedreconnector
ogre.ogrestack
extracting.organs
tradingspot.kv.rw
slaves.rules
falconne.heatmap
brrainz.achtung
roolo.giddyupcore
roolo.giddyupcaravan
mehni.pickupandhaul
petetimessix.simplesidearms
tammybee.whereismyweapon
avilmask.commonsense
pathavoid.kv.rw
falconne.aff
hoodie.whileyoureup
vanya.tools.bulkcarrier
uuugggg.sharetheload
uuugggg.miningpriority
uuugggg.smartmedicine
uuugggg.usebedrolls
brrainz.justignoremepassing
lf.nomorecatatonia
ryflamer.misc.drawabead
ryder.satisfiedstorage
tammybee.cutplantsbeforebuilding
devdisigdu.bulk.components
murmur.enemyselfpreservation
murmur.factionresources
vanillaexpanded.vee
frozensnowfox.moreworldquests
albion.goexplore
solaris.bioreactor
elstrages.cyberneticstorm
jaxxa.ed.embrasures
cocaine.electricstonecuttingtable
ykara.epoe
abraxas.mserevived
rah.rbse
com.rimworld.nales.expandedrims
ratys.madskills
gt.sam.glittertech
teok25.archotechexpanded
biscuit.archotechplus.10
frozensnowfox.advancedbionicsexpansion
spoonshortage.adogsaidanimalprosthetics
chjees.androids
fluffy.pharmacist
oblitus.animalslogic
sineswiper.factionblender
sineswiper.xenobionicpatcher
arandomkiwi.raidsforme
diddily.portalgun
ogliss.thewhitecrayon.quarry
joethetech.marinearmormaterials
lingluo.maidproject
dninemfive.advancedshieldbelts
automatic.rimlaser
adarafirecaster.buyablequestrewards
proxyer.makeableartifacts
knight.medicalivs
itchyflea.medicaltraining
haplo.miscellaneous.training
bichang.moresculpture
gt.sam.tilledsoil
vanillaexpanded.vfecore
vanillaexpanded.vfesecurity
dismarzero.vgp.vgpvegetablegarden
dismarzero.vgp.vgpgardentools
dismarzero.vgp.vgpgardenresources
dismarzero.vgp.vgpgardenmedicine
dismarzero.vgp.vgpgardengourmet
dismarzero.vgp.vgpgardenfabrics
dismarzero.vgp.vgpgardendrinks
ratys.rtsolarflareshield
neceros.fuseplus
pelador.fireextinguisher
pelador.firewarden
murmur.walllight
pelador.ssfetempfix
rimfridge.kv.rw
stolij.morebatteries
doctorvangogh.miningshaft
ling.thelowcooler
siscos.adv.power
albion.aiuplift
neceros.tiertwotemp
hanabishi.inwallcoolersandvents
wemd.barbedwire
owlchemist.undergroundpowerconduits
neceros.mud
proxyer.tinytable
gguake.ui.simplesearchbar
savestoragesettings.kv.rw
falconne.bwm
phomor.craftingqualityrebalanced
tammybee.selectablesculpturegraphic
erdelf.minifyeverything
fluffy.fluffybreakdowns
lingluo.lovelyhairstyle
rimsenal.hair
won.hair
won2.hair
vanillaexpanded.vhe
nackbladinc.rimhair
lf.frenzytime
consolidatedtraits.kv.rw
moretraitslots.kv.rw
gewen.additionaltraits
wemd.handsarenotoutside
newsofpe.noresearch
walkingproblem.noinfestation
eagle0600.painscalesanity
com.yayo.unlockworkingemperor
pinochemicali.skilledstonecutting
pinochemicali.moretradeships
canicvs.turtlefriendlyraids
bdew.romancetweaks
fluffy.relationstab
chjees.suprememelee
grimm.unlimited
fluffy.areaunlocker
com.rimworld.nales.overcappedaccuracy
paragon.hanul.utility
etrt.cannibaltweaks
jaxxa.ed.enhancedoptions
tachyonite.pawnmorpher
neronix17.fr.race.elves
roskii.astoriel
kikohi.forsakens
sargoskar.witcherhunt
vanillaexpanded.vaecd
vanillaexpanded.vaets
vanillaexpanded.vaetr
vanillaexpanded.vaeis
vanillaexpanded.vaebf
vanillaexpanded.vaeed
vanillaexpanded.vaeas
vanillaexpanded.vaed
vanillaexpanded.vaeau
vanillaexpanded.vaet
forsakens.fauna
killface.colonistbarkf
fluffy.thebirdsandthebees
walkingproblem.wildanimalsex
cucumpear.azrael.varietycoats
neronix17.fr.faction.elves
orion.factiondiscovery
void.charactereditor
edb.preparecarefully
fluffy.blueprints
fluffy.worktab

Mutagenic Diseases throw errors when triggered

Describe the bug
mutagenic diseases cause an error when the game tries to trigger them

To Reproduce
Steps to reproduce the behavior:

  1. wait for one of the mutagenic diseases to trigger

Expected behavior
mutagenic diseases trigger normally without an error

Screenshots
error

generated Pawn body part hediffs vanishing on save/load

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'new game, create a gam'
  2. Click on 'save game, exit to main menu, load game'

Error Log
https://gist.github.com/HugsLibRecordKeeper/11e87cd80625d1f9ba359f5abb33e51a

Expected behavior
Morphed pawns should retain body parts, instead morph hediffs randomly vanish, apparently not saved correctly.

Additional context
Was observed on a pawn generated using Prepare Carefully.

Opening Mutagenic chamber before it's complete throws errors

Describe the bug
Opening a mutagenic chamber before it's complete throws InvalidOperationException

To Reproduce

  1. build chamber
  2. Have pawn enter the chamber
  3. open the chamber before it's finished
  4. See error

Error Log

Exception during ticking MapAsyncTimeComp_(Map-0-PlayerHome): System.InvalidOperationException: Operation is not valid due to the current state of the object
  at System.Collections.Generic.Stack`1[System.UInt64].Pop () [0x00000] in <filename unknown>:0 
  at Verse.Rand.PopState () [0x00000] in <filename unknown>:0 
  at Multiplayer.Client.MapAsyncTimeComp.PostContext () [0x00000] in <filename unknown>:0 
  at Multiplayer.Client.MapAsyncTimeComp.Tick () [0x00000] in <filename unknown>:0 
  at Multiplayer.Client.TickPatch.TickTickable (ITickable tickable) [0x00000] in <filename unknown>:0 
Verse.Log:Error(String, Boolean)
Multiplayer.Client.TickPatch:TickTickable(ITickable)
Multiplayer.Client.TickPatch:Tick()
Multiplayer.Client.TickPatch:Prefix()
Verse.TickManager:TickManagerUpdate_Patch2(Object)
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()

Expected behavior
pawn should exit the chamber with the chaomorph hediff

Mutation Log is only written by Chaomorph changes

Describe the bug
When a pawn is mutating, it seems only Chaomorph mutation results in a mutation log. Both "partial" and "changing" produce the log.
Any other morph type, e.g. Alpacamorph (changing), doesn't write into the log about recently changed parts.

To Reproduce
Steps to reproduce the behavior:

  1. Let a pawn that is not mutatagenic stabilised consume mutaserum, mutasyringe, chookmorph eggs or cowmorph milk
  2. Open the pawns "Health" tab and wait for the first mutation to appear
  3. Switch to the "Mutation" tab and open the log
  4. Log is empty

Error Log

Expected behavior
Every mutation should write an entry into the mutation log

Screenshots
Screenshots of 5 pawns with the mutation method. Screenshots taken after all five pawns mutated at least once.
Kaori - Mutanite
Kaori - Mutanite
Thomas - Chookmorph Eggs
Thomas - Chookmorph Eggs
Fabio - Cowmorph milk
Fabio - Cowmorph milk
Kezel - Chaobulb seedpod
Kezel - Chaobulb seedpod
Ian - Mutasyringe, Alpaca
Ian - Mutasyringe, Alpaca
Walls - Mutaserum
Walls - Mutaserum

Additional context
Mods loaded were: Core, Humanoid Alien Races, PawnMorpher (in this order).

Attached savegames: Spawned five pawns, enclosed them with a wall and exposed them to mutation.
Savegame before just needs to be unpaused, consider letting the chook- and cowmorph and chaobulb pawns consume more to speed up the process.
Savegame after is the state displayed in the screenshots above.

PawnMorpher Log Bug.zip

Lopsided Morphs

I've got a pawn that I morphed purely with cowmorph milk. She's got every part except for a left hand hoof, right foot hoof, and both horns. As she drinks more milk, she gains more partials, but the partials haven't added anything else, they just go away. I've had this issue for a while now, and she just hasn't changed from this point.
Here's a screenshot of some of the hediffs:
20200221221133_1

Update: It seems that this isn't the only case. I have another morph who I only used chookmorph eggs on. Same story, but different parts.

Exception Ticking

I'm getting a rapid amount of errors like this:
20200221202521_1

Here's a few examples of constant "Could not do PostLoadInit on"s, and the first few "Exception ticking"s from the log.
https://hastebin.com/texiseniko.sql

It seems that all of the exception ticking errors apply to seemingly all pawns and animal pawns on the map.
Also, no mutations are taking place. None whatsoever. Pawns gain (Xmorph) hediffs, though never gain any mutations to speak of. The mutation log feature is also absent. The tab appears, though its contents do not.
Screenshot:
20200221195633_1

I am sad to say that I am completely unsure as to what caused this. Will update when I replicate the issue.

UPDATE: I am no longer experiencing this issue in the save. I updated Rimworld to the latest patch, and with it the errors ceased to apply. Will update if it surfaces again, but for now it seems to be solved.

[1.0] Return of the Anti-Fox

Describe the bug
Morphs with at display an influence of -2147483648% for all their influences instead of the correct value in the mutation tracker. The Human influence is entirely absent.

The various thoughts like "Morph Pleased" and "Body purist squeamish" also show the lowest level rather than the one appropriate to their level of mutation.

Syringes and serums no longer appear to work, nor does the "apply random mutations" dev tool. Both simply do nothing at all, though the syringes and serums can still fully transform a pawn in the transforming stage. Chaopods and slurry still function as expected.

Finally, when using the "List All Mutations Per Morph" dev tool, every morph shows a blank list rather than the expected list of mutations

To Reproduce
The problem randomly happens on starting up the game. It persists between different saves but reloading the game entirely usually fixes it.

Error Log
https://gist.github.com/HugsLibRecordKeeper/758fe4e020223d0dedeb637d7c53b511

Expected behavior
A clear and concise description of what you expected to happen.

Additional context
Using Rimworld 1.0. Last seen with Pawnmorpher version 1.7.2, but no reason to assume it's gone away since then.

100% Human to 100% Animal

X-Aspect pills were used to negate negative aspects but other than that nothing out of the ordinary was done with the pawn. No mutations formed throughout the whole process and the pawn progressed from completely human to completely animal after a certain amount of time. This change was not reflected in the mutations tab, as the pawn was labeled as 100% human until the transformation.

https://gist.github.com/80085c19fd437fc0772a0120b750635b

Could not resolve cross-reference to[...]

On game load, and on opening the mod menu, several errors appear.

Could not resolve cross-reference to Pawnmorph.MorphCategoryDef named bovine (wanter=categories)
Could not resolve cross-reference to Pawnmorph.MorphCategoryDef named farm (wanter=categories)
Cannot call ItemFromXmlFile with resolveCrossRefs=true while loading is already in progress.

These errors repeat three times on load, lots of times on opening the mod menu.

Does not happen with just HUGs lib, HAF and pawnmorpher DEV.
Does happen with HUGs lib, HAF, Pawnmorpher DEV, and horses 1.0.

Mutagen Chamber throwing errors with non human pawns

Describe the bug
Whenever a non-human pawn enters the mutagenic chamber and reaches the 100% point, the machine starts throwing nullReferanceExceptions.

To Reproduce
Steps to reproduce the behavior:

  1. Have a non-human colonist enter a mutagenic chamber (an android for example).
  2. Wait for the error.
  3. ...?
  4. Profit.

Error Log
Exception ticking BigMutagenicChamber4463856 (at (128, 0, 132)): System.NullReferenceException: Object reference not set to an instance of an object
at Pawnmorph.Building_MutagenChamber.EjectContents () [0x00000] in :0
at Pawnmorph.Building_MutagenChamber.Tick () [0x00000] in :0
at Verse.TickList.Tick () [0x00000] in :0
Verse.Log:Error(String, Boolean)
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()

Expected behavior
Pawns should be kicked out of the chamber fully tf'd.

Reverter Serums not reverting hybrid pawns to human

Describe the bug
Reverter Serums not reverting hybrid pawns to human

To Reproduce

  1. use a reverter serum on a hybrid pawn
  2. pawn loses mutations but remains a hybrid

Expected behavior
Pawn turns back into a human

Overflow on % Morph

Attempting to inject a pawn with a mutaserum seems to cause no mutations to the pawn (pawn still transforms into the animal if not given stabilizer). Giving that pawn a chaobulb seedpod causes them to gain a mutated part, but under mutations tab it shows that pawn is -2147483648% of creature that part if from. Issue seems to only occur after playing a save for an amount of time (if I start a new save and give a pawn a mutaserum, they mutate like normal). Issue with pawn not mutating from the serum, and having the -2147483648% of creature likely linked?

Steps to reproduce the behavior:
Have some time pass in a colony, give a pawn a chaobulb seedpod or inject them with a mutaserum. Observe results

Error Log
https://gist.github.com/HugsLibRecordKeeper/f62ad51db22de76bebd380c200feba11

Expected behavior
Besides the mutaserum slowly mutating a pawn, a pawns % of being a morph shouldn't overflow like it does in my case.

Screenshots
https://imgur.com/a/IAz4r3A

Additional context
No error log pop up when the issue occurs.
Should also mention this started to happen in 1.0 as well when the 1.7 update for pawnmorpher released

Stabilized pawns throw an error in mutagenic chambers

Describe the bug
If you place a pawn with an active Mutagen Stabilized hediff in a mutagenic chamber, the progress will tick to 100%, then throw an error and reset to 0. The pawn remains in the chamber but can be ejected manually.

To Reproduce
Steps to reproduce the behavior:

  1. Give a pawn stabilizer pills
  2. Place the pawn in a mutagenic chamber
  3. Observe that an error is logged when progress reaches 100%

Error Log
https://gist.github.com/c24b6db0257ce2b089a5b85ee4d211a5

Expected behavior
Stabilized pawns are either ejected untransformed or transformed, depending on what you all think is the correct behavior. No error is thrown.

Poissble start of hugslib incompat at fd492f8b55de446104e8335c8fd45183b3df76ef

Describe the bug
Prior to commit fd492f8
Pawnmorpher compiles and works fine with even the current steam versions of hugslib and HAR
Commit fd492f8 semi-breaks the ability to generate pawns with mutations
Commits afterwards completely fail on world generation

To Reproduce
Steps to reproduce the behavior:

  1. Use current versions of hugslib HAR and pawnmorpher on 1.0
  2. try to generate a default morph faction start
  3. World generation fails
  4. Git reset to fd492f8, compile and use it as a local mod
  5. World generation succeeds, but a number of your generated colonists lack mutations while a select few don't
  6. git reset pawnmorpher hard to a commit before (example: d3f3730 ), compile it and use it as a local mod.
  7. You can get into character setup fine and everyone gets mutations.

Error Log
EtherMuzzle is a mutation but does not use MutationDef!
and a bunch of variations thereof.

Expected behavior
Being able to start a morph colony and people get mutations.

Cannot run mod

Cannot generate a new world, errors at start, and existing save's pawns are missing (Error in debug log, same applies with attempting to spawn pawns in dev mode)

Steps to reproduce the behavior:

  1. Start game
  2. Load existing save or;
  3. Attempt to generate new world

Expected behavior
The mod to actually work

Don't know if it's because of royalty, or some version of a mod i have is wrong, if so, direct me to what i need.
debugLog.txt

[Dev Build] Sapient animals can be forced to wear clothing

Describe the bug
Sapient animals can be forced to wear clothing, same as human pawns. An error is thrown in the log and the clothing renders as if they were still human. They still complain that they're naked

To Reproduce

  1. Turn a pawn into an animal
  2. Order the now-animal pawn to wear the clothing they just dropped
  3. Wonder how a dog wears pants

Expected behavior
Either former humans shouldn't be able to wear clothing, or it shouldn't throw an error or render weird and should remove the "naked" thought.

Screenshots
image

Additional context
Using just Pawnmorpher and it's dependencies, plus several mods for debugging. Nothing that should be affecting animal's abilities to wear clothing.

Chaomorphs don't revert to the original pawn

Describe the bug
Chaomorphs of all kinds created through both serums and chambers, when reverted, become a random pawn rather than the original

To Reproduce
Steps to reproduce the behavior:

  1. Use a chamber to transform a pawn into any of the chaomorph species
  2. Revert the chaomorph
  3. Observe the reverted pawn is not the original

Error Log
https://gist.github.com/0c9a4a5ac677a57df468bfbedbe6cb02

Expected behavior
Reverted chaomorphs should transform back into the original pawn

[Feature] Mutagenic defenses

A collection of ideas for possible mutagenic defenses

Mutarifle turret
A stationary turret like the miniturret that fires the same projectiles as the mutarifle. Refuelled with slurry

Mutagrenade turret
A turret that launches grenades similar to the mutagrenades. Short ranged and with a forced miss chance. Refuelled with slurry

Slurry mister
Short range turret that sprays a fine mist of mutagenic slurry. Larger AOE and faster fire rate than the mutagrenade turret, but gives less buildup and has an even shorter range.

Could be implemented as a turret that fires projectiles that merely look and sound like gas puffs, or possibly through integration with another gas field mod.

Adding Sapient Animals to Caravans Prevents them from Leaving

Description
creating a caravan with sapient animals prevents the caravan from leaving, instead the pawns get stuck in the 'waiting for pawns' stage

To Reproduce

  1. create a caravan
  2. add at least one sapient animal to the caravan
  3. send caravan to destination
  4. observe pawns never leave the map, instead continue to wait forever

Expected behavior
Sapient animals are able to join/form caravans without errors

Upon reloading a save, previously reverted pawns fail to revert correctly

Describe the bug
If you revert a pawn then later reload a save from before their reversion, attempting to revert them again will instead produce a random pawn. Restarting the game allows you to revert them to the correct pawn again (once, and then it once again starts producing random pawns).

To Reproduce
Steps to reproduce the behavior:

  1. Transform a pawn into an animal
  2. Make a save
  3. Apply reversion serum to the animal
  4. Observe that the original pawn is restored
  5. Reload the save you just made
  6. Apply reversion serum again
  7. Observe that the reverted pawn is now a randomly-generated pawn

Error Log
https://gist.github.com/4dc7750b0ad024773b9824819ea8ec9e
(Note: No error was shown in the log, but including for completeness)

Expected behavior
The original pawn is restored under all conditions

Additional context
The error seems to be related to the pawn being reverted multiple times in a single game session. Reloading the save alone does not cause the issue to occur, the pawn must have been reverted prior to reloading.

Siege's can be air dropped mutagenic mortar shells.

Describe the bug
When a siege spawns, they can be air-dropped more ammo of any kind of shell except anti-grain, including the tf shells.

To Reproduce
Steps to reproduce the behavior:

  1. Spawn a seige.
  2. Repeat untill you see them spawn with the TF shells.

Expected behavior
Really don't want my pawns to have mutagen raining from the skies,

Morph Transformations cause desyncs

Describe the bug
morph transformation hediffs cause a session to desync

To Reproduce
Steps to reproduce the behavior:

  1. Join a multiplayer game
  2. give pawn a tf item
  3. wait for mutation to cause a desync

Expected behavior
pawn is given a mutation and no desync occurs

Left West Hare Ear has missing/incorrect Mask

Describe the bug
west facing texture for the Left Har Ear is missing it's associated masking texture

Expected behavior
the west facing texture should have a mask that allows it to blend similar to the other textures
Screenshots
Incorrect
Incorrect

Expected
Expected

An exception is thrown if the same attack that transforms a pawn also kills them

Describe the bug
When using mutagenic weapons, if an attack happens to kill a pawn while also triggering a full transformation, an error is thrown and both things happen. A transformed animal is spawned yet the original body remains and is dead.

To Reproduce

  1. Give a pawn extremely high mutagenic buildup
  2. Give them significant body damage
  3. Stab 'em with a mutagenic spear

Error Log
https://gist.github.com/97d5bbc357623d1929278c98594c5765

Expected behavior
No exception is thrown. The pawn either dies or is transformed, not both.

Additional context
Using the latest hotfix build Iron posted on 1.0

Sapien animals get more sapient after a mental break

Describe the bug
Sapient animal sapience can increase to >100% after a mental break

To Reproduce
Steps to reproduce the behavior:

  1. Have a sapient animal, note their sapience level.
  2. Wait for the eventual mental break.
  3. Check for initial decrease on sanity restoration.
  4. Watch as the sapience increases over time.
  5. Click on the pawn after some time passes.
  6. See error.

Error Log
SapientAnimalControl drawing bar percent > 1 : 1.701216
Verse.Log:Error(String, Boolean)
Verse.Log:ErrorOnce(String, Int32, Boolean)
RimWorld.Need:DrawBarInstantMarkerAt(Rect, Single)
RimWorld.Need:DrawOnGUI(Rect, Int32, Single, Boolean, Boolean)
Pawnmorph.Need_Control:DrawOnGUI(Rect, Int32, Single, Boolean, Boolean)
RimWorld.NeedsCardUtility:DoNeeds(Rect, Pawn)
RimWorld.NeedsCardUtility:DoNeedsMoodAndThoughts(Rect, Pawn, Vector2&)
RimWorld.ITab_Pawn_Needs:FillTab()
Verse.<>c__DisplayClass14_0:b__0()
Verse.ImmediateWindow:DoWindowContents(Rect)
Verse.Window:InnerWindowOnGUI(Int32)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle)

Expected behavior
Sapience should decrease after a mental break. I believe there is an initial decrease but it ticks back up.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.