Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Anvil_Pants

#16
Bugs / Re: Make stone blocks skill restrictions
July 08, 2017, 11:35:35 AM
Quote from: BlackSmokeDMax on July 08, 2017, 10:46:24 AM
Not really sure why crafting is involved with the skill at all at this point...

Crafting is the job type. Construction is the job skill. Importance of that becomes more clear if you run that thought through Better Workbench Management and WorkTab, when Fluffy finishes WorkTab's A17 update.

It's happened a lot over the years. Medicine crafting using medicine skill, for example.
#17
RimWorld 0.17.1557 rev1146

Exception in RimWorld.ThinkNode_Priority_GetJoy TryIssueJobPackage: System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.JoyGiver_TakeDrug.BestIngestItem (Verse.Pawn pawn, System.Predicate`1 extraValidator) [0x00000] in <filename unknown>:0
  at RimWorld.JoyGiver_Ingest.TryGiveJobInternal (Verse.Pawn pawn, System.Predicate`1 extraValidator) [0x00000] in <filename unknown>:0
  at RimWorld.JoyGiver_Ingest.TryGiveJob (Verse.Pawn pawn) [0x00000] in <filename unknown>:0
  at RimWorld.JobGiver_GetJoy.TryGiveJobFromJoyGiverDefDirect (RimWorld.JoyGiverDef def, Verse.Pawn pawn) [0x00000] in <filename unknown>:0
  at RimWorld.JobGiver_GetJoy.TryGiveJob (Verse.Pawn pawn) [0x00000] in <filename unknown>:0
  at Verse.AI.ThinkNode_JobGiver.TryIssueJobPackage (Verse.Pawn pawn, JobIssueParams jobParams) [0x00000] in <filename unknown>:0
  at Verse.AI.ThinkNode_Priority.TryIssueJobPackage (Verse.Pawn pawn, JobIssueParams jobParams) [0x00000] in <filename unknown>:0
Verse.Log:Error(String)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_PrioritySorter:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Tagger:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
RimWorld.ThinkNode_Conditional:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.Pawn_JobTracker:DetermineNextJob(ThinkTreeDef&)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.Pawn_JobTracker:JobTrackerTick()
Verse.Pawn:Tick()
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()


I'm causing this in vanilla, with this patch:

<?xml version="1.0" encoding="utf-8" ?>
<Patch>
  <Operation Class="PatchOperationSequence">
    <success>Always</success>
    <operations>
      <li Class="PatchOperationTest">
        <xpath>*/NeedDef[defName = "Joy"]/colonistAndPrisonersOnly</xpath>
      </li>
      <li Class="PatchOperationRemove">
         <xpath>*/NeedDef[defName = "Joy"]/colonistAndPrisonersOnly</xpath>
      </li>
    </operations>
  </Operation>

  <Operation Class="PatchOperationSequence">
    <success>Always</success>
    <operations>
      <li Class="PatchOperationTest">
        <xpath>*/NeedDef[defName = "Joy"]/neverOnPrisoner</xpath>
      </li>
      <li Class="PatchOperationRemove">
         <xpath>*/NeedDef[defName = "Joy"]/neverOnPrisoner</xpath>
      </li>
    </operations>
  </Operation>

  <Operation Class="PatchOperationAdd">
    <xpath>*/NeedDef[defName = "Joy"]</xpath>
    <value>
      <neverOnPrisoner>false</neverOnPrisoner>
    </value>
  </Operation>

  <Operation Class="PatchOperationSequence">
    <success>Always</success>
    <operations>
      <li Class="PatchOperationTest">
        <xpath>*/NeedDef[defName = "Joy"]/colonistsOnly</xpath>
      </li>
      <li Class="PatchOperationRemove">
         <xpath>*/NeedDef[defName = "Joy"]/colonistsOnly</xpath>
      </li>
    </operations>
  </Operation>

  <Operation Class="PatchOperationAdd">
    <xpath>*/NeedDef[defName = "Joy"]</xpath>
    <value>
      <colonistsOnly>false</colonistsOnly>
    </value>
  </Operation>

</Patch>


Edit: With patch, lock up a prisoner with a joy item and hit the prisoner with -20% joy until they try to play.

It's similar to this closed issue on Mantis.

Here's the full log. In that test I had Hospitality loaded as well, just to be thorough in my own testing. I discovered the exception because Prisoner Joy's author tried to use colonistAndPrisonersOnly=true on Joy NeedDef, and that stopped Hospitality's guests from doing joy things. I think that the patch above is the right way to do it.
#18
Orange 'Orange' Bascullo wasn't being tracked by HoldTracker and tried to forget a ThingDef RawRice.
Verse.Log:Error(String)
CombatExtended.Utility_HoldTracker:HoldTrackerForget(Pawn, Thing)
CombatExtended.Harmony.Harmony_JobGiver_DropUnusedInventory_Drop:Prefix(JobGiver_DropUnusedInventory, Pawn, Thing)
RimWorld.JobGiver_DropUnusedInventory:Drop_Patch1(Object, Pawn, Thing)
RimWorld.JobGiver_DropUnusedInventory:TryGiveJob(Pawn)
Verse.AI.ThinkNode_JobGiver:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
RimWorld.ThinkNode_Conditional:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.Pawn_JobTracker:DetermineNextJob(ThinkTreeDef&)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob_Patch1(Object, JobCondition, Boolean)
Verse.AI.Pawn_JobTracker:JobTrackerTick()
Verse.Pawn:Tick()
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()


Loading game from file Debuggers with mods Core, DeCore A17, Anvil Patch - Core, Large Map Save Game Fix, Butcher Mood Fix, HugsLib, Miscellaneous 'CORE', Fluffy Breakdowns, Misc. Incidents, Misc. MapGenerator, Misc. MapGen FactionBase, Misc. Bees'n'Honey, Misc. Objects, Misc. Training, Misc. MAI, Misc. Robots, Misc. Robots++, Blueprints, Colony Manager, Follow Me, Medical Tab, Relations Tab, Work Tab, AllowDeadMansApparel, Allow Tool, Better Workbench Management, CleaningArea, HelpTab, Heat Map, JTMoreAreas, MJ - MiniMap (A17), JTZoneButtons, MineItAll, [FSF] No Default Shelf Storage, ResearchPal, Storage Search A17, EdB Prepare Carefully, Billy's Improved Caravan Formation, Billy's Improved Load Transport Pods, JTBetterHauling, Hand Me That Brick, Haul to Stack, Xeva's Rimhair (A15, A16, A17), [T] MoreFloors, MT - Silent Doors, Where's the gravel? - Grayscale Edition, Additional Traits v2.2 [A17 Update], Extended traits, Genetically Engineered Trait, L-Traits, Pawns Are Capable!, Prisoner Harvesting, TAG Trait, Temperature Tolerant, Psychology, Brainwashing, Cold Desert Nights, Combat Readiness Check, Dubs Hygiene and Central Heating, ED-Laser Drill, Enlighten, Expanded Power, Faction Discovery, Force Do Job, Glitter Tech (No Surgery), Hospitality, I Can Fix It!, Infused, Limited Blight, Matching Embrasures, Mending, Miniaturisation, No Death Randomness, QualityBuilder, Quality Cooldown, QualitySurgeon, RedistHeat, GHXX Tech Advancing, Vanilla-Friendly Weapon Expansion, Combat Extended, Combat Extended Guns, Anvil - Vampire, and Anvil Patch - Workshop
Verse.Log:Message(String)
Verse.SavedGameLoader:LoadGameFromSaveFile(String)
Verse.Root_Play:<Start>m__84F()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__84C()
#19
Quote from: Canute on June 27, 2017, 01:17:32 PM
how much do you miss it ?
So nuch that you learn how to mod and update it ? :)

Well, someone did.

https://github.com/ZpmFred/RimWorld-RedistHeat

Two someones.

https://github.com/Morgloz/RimWorld-RedistHeat/pulls

Edit: lperkins2 found a third someone.

Beside which Morgloz is also that sort of someone. He took over Redist when its original author needed to leave.  :-*
#20
Personal shield is a technologically advanced device, and should have either a manual on/off toggle switch or a weapon-dependent on/off mode, either of which would detour and replace the well known game message that a ranged user has a shield equipped. It could make good sense to have both manual and automatic modes coded, and then let game difficulty setting determine which one is in play and whether or not the warning message is given.
#21
Mods / Re: Steam updating mods to A15
August 30, 2016, 11:46:53 AM

Ludeon can solve this thread by enforcing minVersion and maxVersion fields in About.xml, and adding dependency graphing to the mods portion of the game launcher.

Mod authors can follow that with choosing to break up their code blocks with conditionals, when new code demands a newer game client than the whole package does.

MDN solved the versioning problem in their install manifests for Mozilla extensions. It's very common for Mozilla extensions to receive only a manifest (XML file) update to modify the wildcard version number after the extension author verified that their code was unaffected by its parent software (generally Firefox or Thunderbird).

It goes both ways. Sometimes the maxVersion field is incremented, and other times the minVersion goes up. It's on the author to commit to supporting a release range, or only the newest stable. That's generally a practical decision. Code doesn't change, or new code doesn't interfere with old clients, then minVersion doesn't increment.

Same goes in code. The author isn't required to go either way. They choose to either do version number checks as if() conditions, or overwrite known good code because the foundation (client) shifted.

Arma 3 game launcher went in a similar direction as where Ludeon needs to go for Steam Workshop mod handling. They're using the launcher to handle mod dependency resolution and download directory.
#23
Quote from: Renzo471 on April 09, 2016, 10:04:19 AM
Quote from: Grogfeld on April 09, 2016, 05:17:50 AM
You said that the other version could be control via Xml, it's great idea but as an improvement I would suggest an in game tab where you could set prioritization. Fluffy made excellent mod, enhanced tabs, where there is option to adjust work priority. You could make your own for stuff categories. Fluffy is a Master in Prioritization you should both talk ;)
that's a great idea I never even thought about it I will look into both when I get home

Essentially what was proposed is this screenshot from here:



Aside from using a like-kind UI, I think that the gist of it would be to inject your haul priorities at the subset of actions that Fluffy defined as "Haul -> Haul" in that. Maybe it's working that way already.

To get your UI in with the existing one there, you'd need a third scrollable list box; "Haul -> Haul -> Haul what".
#24
Quote from: Negocromn on April 08, 2016, 10:23:16 PMI think there are way too many special snowflake backgrounds now, every other background seems to have some incapables and so on

Yes. I noticed toward the end of A12 (the past two months) that ModVarietyPack's use of BackstoriesCore is even starting to duplicate some of the A12 backstories to include workDisables versions. Apparently some of us players really like that as a gameplay element.

The "special snowflake" aspect of it is just specificity and the author trying to strongly type a character from the back story. That's the correct RPG thing to do.

It's just the all-or-nothing disabling of activity categories that I disagree with strongly. I'd rather see more fluid/flexible characters who can, over time, defy their pasts through necessity, growth, and repetition. That's the more compelling gameplay element to me in this game.

To get what workDisables is trying to do, but without actually disabling the work, we only need to use negative values on the skill fields.

You can already find this being done by one of the backstory authors who got included into ModVarietyPack:


<BackstoryDef>
    <defName>BackstoryVatGrownSlave</defName>
    <title>Vat grown slave</title>
    <titleShort>Vat slave</titleShort>
    <baseDescription>NAME was bred in a vat to be the perfect slave. HECAP can do many things much better than anyone else, but HE was 'born' without compassion or feelings for others.</baseDescription>
    <bodytypeMale>Hulk</bodytypeMale>
    <bodyTypeFemale>Hulk</bodyTypeFemale>
    <slot>Childhood</slot>
    <workDisables>
      <li>None</li>
    </workDisables>
    <skillGains>
      <li>
        <defName>Crafting</defName>
        <amount>3</amount>
      </li>
      <li>
        <defName>Cooking</defName>
        <amount>1</amount>
      </li>
      <li>
        <defName>Growing</defName>
        <amount>-2</amount>
      </li>
      <li>
        <defName>Construction</defName>
        <amount>2</amount>
      </li>
      <li>
        <defName>Mining</defName>
        <amount>4</amount>
      </li>
    </skillGains>
    <spawnCategories>
      <li>Slave</li>
    </spawnCategories>
  </BackstoryDef>


If I had more granular access to skillGains, I could complete that character by debuffing "compassion and feeling" types of "social", but I can't, and right now "social" is too broad for that. The granularity is currently (I think) misplaced in workDisables.

I'm sure it's a base game design thing, and nothing to do with the mentioned mods. Those mods are just examples of digging around in that base system.

workDisables doesn't need to go away, though. There are use cases for it. Any Psychopath back story, for example, really does need to turn off "caring". Maybe it's also true, for comedy, that a Medieval Lordling would die sooner than properly care for himself as benefiting mere peasants.

It's just flatly untrue that any given intellectual character type is irredeemably incapable of stumbling through planting some potatoes, when otherwise they'll starve. Same for first aid, carrying big rocks, or pointing and shooting firearms that are specifically designed to be so easy that a complete novice can kill -something- with them.
#25
That's "foggy rain"; you can see the rain around the edges. I didn't reproduce at 1080p with developer mode. MagnAxiom might try loading the save file after (in Options at main menu) enabling developer mode and verbose logging, then use the debug actions menu (http://i.imgur.com/KVCoprP.png) to change weather. Should show if the "foggy rain" layer is always broken, and will dump the log file ison wants.
#26
In playing A12 with ModVarietyPack, I made edits to BackstoryDefs.xml to include childhood and adulthood backstories that exclude any work-type refusals, through:


    <workDisables>
      <li>None</li>
    </workDisables>


It's for the same reasons as above. The rest of a pawn's character sheet should show how reasonable it is for the player to assign a task, therefore influencing the outcome of the player choice, but people (and thus pawns) change and do things they would otherwise refuse to do when life demands it.

workDisables does more harm than good. Setting 0, or even negative values, in place of workDisables seems more appropriate.
#27
Bugs / Re: [A13] Audio outages
April 08, 2016, 06:56:57 PM
True. I've also hit this in A12, on a Realtek device. If it's found to be reproducible, a possible test could be installing the Razer driver without removing the manufacturer one. They should live happily together and allow switching between the two soft devices through Windows "Playback devices" GUI on the taskbar.

Name   Realtek High Definition Audio
Manufacturer   Realtek
Status   OK
PNP Device ID   HDAUDIO\FUNC_01&VEN_10EC&DEV_0892&SUBSYS_1043841B&REV_1003\4&2FFDAC18&0&0001
Driver   c:\windows\system32\drivers\rtkvhd64.sys (6.0.1.7572, 4.37 MB (4,585,728 bytes), 9/25/2015 10:21 PM)
   
Name   High Definition Audio Device
Manufacturer   Microsoft
Status   OK
PNP Device ID   HDAUDIO\FUNC_01&VEN_10DE&DEV_0072&SUBSYS_38423969&REV_1001\5&1208074A&0&0001
Driver   c:\windows\system32\drivers\hdaudio.sys (10.0.10240.16384, 370.50 KB (379,392 bytes), 7/9/2015 10:22 PM)
   
Name   Razer Surround Audio Controller
Manufacturer   Razer Inc
Status   OK
PNP Device ID   ROOT\MEDIA\0000
Driver   c:\windows\system32\drivers\rzsurroundvad.sys (6.1.7600.16385, 39.69 KB (40,640 bytes), 7/28/2015 8:09 PM)