[B18] RIMSLAVES 4.2 : DAENERYS’ ARMY – Game of Thrones mod!

Started by WalkingProblem, May 09, 2017, 05:54:15 PM

Previous topic - Next topic

postm00v

Work slaves only seem to haul, which is fine, but as I understand they should also do specific work like mining. Do I need to train them?

SpaceDorf

No, but their first priority is hauling.

You can restrict them to workareas like anybody else, if you want to get something done.
Just don't forget to feed them :)


@WalkingProblem - would you mind adding the jobtypes and priorities of the slaves to the description ?
Just so it becomes clearer what they are able to do and how we can convince them to do it.
Maxim 1   : Pillage, then burn
Maxim 37 : There is no overkill. There is only open fire and reload.
Rule 34 of Rimworld :There is a mod for that.
Avatar Made by Chickenplucker

WalkingProblem

Quote from: SpaceDorf on August 13, 2017, 11:43:43 AM
No, but their first priority is hauling.

You can restrict them to workareas like anybody else, if you want to get something done.
Just don't forget to feed them :)


@WalkingProblem - would you mind adding the jobtypes and priorities of the slaves to the description ?
Just so it becomes clearer what they are able to do and how we can convince them to do it.

Quote from: postm00v on August 13, 2017, 07:17:21 AM
Work slaves only seem to haul, which is fine, but as I understand they should also do specific work like mining. Do I need to train them?

The next update, the behaviors and "priorities" will be very different from the current version.

So its hard to tell for now.

SpaceDorf

I can wait for that :)

And the priorities are not as important as the actual jobs you implemented.
If I know what they are able to do, I can at least try to do what they should.
Maxim 1   : Pillage, then burn
Maxim 37 : There is no overkill. There is only open fire and reload.
Rule 34 of Rimworld :There is a mod for that.
Avatar Made by Chickenplucker

WalkingProblem

Latest progress on the Dothraki:



The Dothraki will run on the same "rank concept" as the Unsullieds. They will have 3 ranks: Dothrak (Rider), Ko (Leader/Lieutenant) and Khal (King).

The 3 ranks will be distinguished by their hair length and how much clothing is on them. The higher the rank, the less "cover" there is on their upper torso. Hair length is a display of their prowess and power in Dothraki society, losers will have their hair cut off, thus only the longest hair of the Dothraks can become Khal.

I also made the effort to have more variety in them of their individual looks and clothing (as well as horse color) - this is to recreate the effect in the Game of Thrones series, in which the Dothraki do not have "standard uniforms".

faltonico

Hello Walking Problem!
You probably already know this, but as i haven't seen it post it here i'll say it anyway.
Regarding the incompatibility with Hospitality, commenting out the node <li Class="StockGenerator_Animals"> from <defName>Visitor_Walkblem_Slavers</defName> is a dirty workaround for that incompatibility. I tried to make a patch that detected a def from hospitality for then delete the node, but apparently the game doesn't recognize that yet, instead a dll patch is needed for that to make it work (fancy way to patch between mods here).
Just in case you want to improve compatibility with hospitality.

WalkingProblem

Quote from: faltonico on August 25, 2017, 10:29:00 PM
Hello Walking Problem!
You probably already know this, but as i haven't seen it post it here i'll say it anyway.
Regarding the incompatibility with Hospitality, commenting out the node <li Class="StockGenerator_Animals"> from <defName>Visitor_Walkblem_Slavers</defName> is a dirty workaround for that incompatibility. I tried to make a patch that detected a def from hospitality for then delete the node, but apparently the game doesn't recognize that yet, instead a dll patch is needed for that to make it work (fancy way to patch between mods here).
Just in case you want to improve compatibility with hospitality.

Hi faltonico, I would definitely want to create that compatibility, especially since Hospitality is such a popular mod.

But i dun exactly understand the dll workaround that you quoted. Do you understand it to explain it a bit more how I gonna use it?

As for the "dirty workaround" - apparently in my test just 2 days ago, I was not able to spawn a visitor group with the slaves(animals) when I enabled Hospitality in my current work on the next update. The only visitor that was able to spawn are the individual humans only. I'm not sure if Hospitality mod actually updated to prevent animals from spawning for visitors.

Before that, when I did not enable the Hospitality mod, visitors with slaves appears.

I will test more later once I'm fully done with the Dothrakis. I MIGHT have a workaround through the thinknodes of the slaves. I found a difference between Humans and Animals, and that MIGHT solve the problem. But because I wasnt able to spawn the visitors with slaves, i cant verify it.

faltonico

I still got the spammy error and the visitor going bezerk/starving to death, slaves not leaving the map and when they do they actually don't leave and cause a notification spam with the new Hospitality update:

Matt doing ThinkNode_Duty with no duty.
Verse.Log:Error(String)
RimWorld.ThinkNode_Duty: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.ThinkNode_Tagger:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Subtree:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
RimWorld.ThinkNode_JoinVoluntarilyJoinableLord: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()

Matt doing ThinkNode_DutyConstant with no duty.
Verse.Log:Error(String)
RimWorld.ThinkNode_DutyConstant: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.ThinkNode_Tagger:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Subtree: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:DetermineNextConstantThinkTreeJob()
Verse.AI.Pawn_JobTracker:JobTrackerTick()
Verse.Pawn:Tick()
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()

System.NullReferenceException: Object reference not set to an instance of an object
  at Hospitality.LordToil_VisitPoint.Leave () [0x00000] in <filename unknown>:0
  at Hospitality.LordToil_VisitPoint.Cleanup () [0x00000] in <filename unknown>:0
  at Verse.AI.Group.Lord.GotoToil (Verse.AI.Group.LordToil newLordToil) [0x00000] in <filename unknown>:0
  at Verse.AI.Group.Transition.Execute (Verse.AI.Group.Lord lord) [0x00000] in <filename unknown>:0
  at Verse.AI.Group.Transition.CheckSignal (Verse.AI.Group.Lord lord, TriggerSignal signal) [0x00000] in <filename unknown>:0
  at Verse.AI.Group.Lord.CheckTransitionOnSignal (TriggerSignal signal) [0x00000] in <filename unknown>:0
  at Verse.AI.Group.Lord.LordTick () [0x00000] in <filename unknown>:0
  at Verse.AI.Group.LordManager.LordManagerTick () [0x00000] in <filename unknown>:0
  at Verse.Map.MapPostTick () [0x00000] in <filename unknown>:0
Verse.Log:Error(String)
Verse.Map:MapPostTick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()


But only with visitor who bring slaves.

To spawn visitors with slaves i just spammed the event with the developer mode (execute incident > VisitorGroup) until they brought some.

Regarding the dll, what it does is look for a installed mod and if it finds it, it patches the def you tell them to. The def you would have to patch in your mod is the visitor that is also a trader (Visitor_Walkblem_Slavers inside Walkblem_Slavers_Corporation.xml) for it not to bring slaves (<li Class="StockGenerator_Animals">). I don't know if there is a more elegant/easier way to do that, but this is what occurred to me xD

I still haven't made a working version of it for one of my mods (yet), but in that link (https://github.com/cuproPanda/Cupros-Stones/issues/1) you can see how they used it. CuproPanda and Dismar used it a lot with their mods, you have plenty of examples in there.

You could also just prevent the visitor from bringing slaves by just deleting the lines and updating your mod, but it would reduce the functionality of your mod for those who don't use hospitality.

WalkingProblem

Quote from: faltonico on August 29, 2017, 08:58:52 AM
I still got the spammy error and the visitor going bezerk/starving to death, slaves not leaving the map and when they do they actually don't leave and cause a notification spam with the new Hospitality update:

Matt doing ThinkNode_Duty with no duty.
Verse.Log:Error(String)
RimWorld.ThinkNode_Duty: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.ThinkNode_Tagger:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Subtree:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
RimWorld.ThinkNode_JoinVoluntarilyJoinableLord: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()

Matt doing ThinkNode_DutyConstant with no duty.
Verse.Log:Error(String)
RimWorld.ThinkNode_DutyConstant: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.ThinkNode_Tagger:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Subtree: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:DetermineNextConstantThinkTreeJob()
Verse.AI.Pawn_JobTracker:JobTrackerTick()
Verse.Pawn:Tick()
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()

System.NullReferenceException: Object reference not set to an instance of an object
  at Hospitality.LordToil_VisitPoint.Leave () [0x00000] in <filename unknown>:0
  at Hospitality.LordToil_VisitPoint.Cleanup () [0x00000] in <filename unknown>:0
  at Verse.AI.Group.Lord.GotoToil (Verse.AI.Group.LordToil newLordToil) [0x00000] in <filename unknown>:0
  at Verse.AI.Group.Transition.Execute (Verse.AI.Group.Lord lord) [0x00000] in <filename unknown>:0
  at Verse.AI.Group.Transition.CheckSignal (Verse.AI.Group.Lord lord, TriggerSignal signal) [0x00000] in <filename unknown>:0
  at Verse.AI.Group.Lord.CheckTransitionOnSignal (TriggerSignal signal) [0x00000] in <filename unknown>:0
  at Verse.AI.Group.Lord.LordTick () [0x00000] in <filename unknown>:0
  at Verse.AI.Group.LordManager.LordManagerTick () [0x00000] in <filename unknown>:0
  at Verse.Map.MapPostTick () [0x00000] in <filename unknown>:0
Verse.Log:Error(String)
Verse.Map:MapPostTick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()


But only with visitor who bring slaves.

To spawn visitors with slaves i just spammed the event with the developer mode (execute incident > VisitorGroup) until they brought some.

Regarding the dll, what it does is look for a installed mod and if it finds it, it patches the def you tell them to. The def you would have to patch in your mod is the visitor that is also a trader (Visitor_Walkblem_Slavers inside Walkblem_Slavers_Corporation.xml) for it not to bring slaves (<li Class="StockGenerator_Animals">). I don't know if there is a more elegant/easier way to do that, but this is what occurred to me xD

I still haven't made a working version of it for one of my mods (yet), but in that link (https://github.com/cuproPanda/Cupros-Stones/issues/1) you can see how they used it. CuproPanda and Dismar used it a lot with their mods, you have plenty of examples in there.

You could also just prevent the visitor from bringing slaves by just deleting the lines and updating your mod, but it would reduce the functionality of your mod for those who don't use hospitality.

Actually I did tried.

There is no way to "turn off" the visitor function even if you deleted it.

As for spamming that dev mode button... i did try endless times.... nvm. i try again in a while.

faltonico

nonono it is not about disabling the visitor, it is just deleting their stock for animals.
If visitors show up without slaves, no erros pop up.

WalkingProblem

Quote from: faltonico on August 29, 2017, 03:07:46 PM
nonono it is not about disabling the visitor, it is just deleting their stock for animals.
If visitors show up without slaves, no erros pop up.

Yeah that could be the other way to fix it.

WalkingProblem

[A17] RIMSLAVES 3.0 : DAENERYS' ARMY – Game of Thrones mod released!



OFFICIAL WEBSITE: http://walkingproblem.com/
FORUM LINK: https://ludeon.com/forums/index.php?topic=32265.0
STEAM DOWNLOAD: https://steamcommunity.com/sharedfiles/filedetails/?id=922660930
NON-STEAM DOWNLOAD: http://walkingproblem.com/2017/09/04/rimslaves-3-0-daenerys-army-game-of-thrones-mod-released/
DEVELOPER'S DISCORD: https://discord.gg/W2Vb27T
FACEBOOK PAGE: http://fb.com/walkingproblem
FACEBOOK DISCUSSION GROUP: http://fb.com/groups/walkingproblemstudios/

----------

Version 3.0 Developer Note:

It had been a long time coming, for this update to the wildly popular Game of Thrones inspired RimSlaves mod. Due to the popularity the mod, we will be creating more Game of Thrones related mods in the future – White Walkers mod (will be done first) and Targaryen mod are currently being planned.

This Ver3.0 is a massive massive update for RimSlaves. Other than implementing the new work abilities that had been introduced in Minions 4.2 into RimSlaves, we have added a totally new unit: The Dothraki. The Dothraki is an extremely time consuming addition, we have created more than 117 individual texture; the dothraki comes with 6 texture variants, and each variant have its own unique texture for the rank of Ko and the rank of Khal. Not only that, the mounted dothraki will turn into a unmounted dothraki after it is killed in battle, in which, means another 18 variant of dothraki texture. The Dothraki thus is a very different sort of combat unit as opposed to the Unsullied. Dothraki is unarmored, but it moves very quickly and hits very hard. It essentially have 2 lives, in which it will revive as a unmounted Dothraki after it is killed. It can only do one work ability – rescue wounded (Unsullieds can rearm traps, Dothraki can't).

Other than the new unit, we have also caved in to popular demand, to add more "racial diversity" to the slaves. We have added numerous new skin variations to the various type of slaves, all in accordance to what we see in the Game of Thrones series. Other than that, we decided to test the players moral compass, by adding Child and Teenage age slaves for Maiden, Sally and Work Slaves: the child and teenage slaves are cheaper, good for colonies that are short of cash, however, are you ready to face the moral challenge of owning a child Sally or a teenage Work Slaves? We shall see.

And of course, we have added A Dog Said support, as per in the Minions 4.2 update – another of the highly demanded update to RimSlaves, so that the players can keep their slaves around longer. I would highly recommend you guys to turn your slaves into cyborgs – you will surprise how powerful they will become – especially the fighting slaves.

What's next for RimSlaves? We may be looking to adding slave clothings which you can buy for your colonists to wear. Or maybe allowing you to buy Unsullied spears or the Dothraki arakhs? Or even let your colonists have hair like a Dothraki. Stay tuned!

—–

VER 3.0 CHANGELOG:
– added child and teenage version of work slaves, maiden and sallys
– added "racial diversity" or different skin tones for work slaves, maiden and sallys
– added dothraki as a new type of slave for purchase
– there are 36 different texture made for the dothrakis
– added dothrak horse (not for sale though)
– added sound effects for dothraki
– improved efficiency in cleaning, mining, harvesting and chopping ability with ChJees' codes
– fixed work slave no pants texture issue
– added delivery resource to construction site/frame to work slave
– added deconstruct ability to work slave
– added repair ability to work slave
– added A Dog Said support via "LBE's A Dog Said Easy Patcher" mod (the slaves uses animal parts)

SpaceDorf

Maxim 1   : Pillage, then burn
Maxim 37 : There is no overkill. There is only open fire and reload.
Rule 34 of Rimworld :There is a mod for that.
Avatar Made by Chickenplucker

Apposl


WalkingProblem

Quote from: SpaceDorf on September 03, 2017, 06:12:20 PM
Dothraki .. now that would be one fearsome Manhunter Pack.

The Dothrakis are 6 times more likely to spawn as a generic manhunter pack (because there are 6 variants of dothraki).

However, I am already pondering adding custom Dothraki raid events, either as a manhunters, or they behave somewhat like a faction raid, where you can probably appease them by putting some valuable shit out there for them to feel satisfied without killing anyone (or they might just kill for the fun of it)