[1.1] Misc. Robots++

Started by alaestor, September 16, 2016, 12:08:58 AM

Previous topic - Next topic

SpaceDorf

Before I use any strange Hacks I could use Dev-Mode .. but I rather take the loss, than getting used to cheating.
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

alaestor

Quote from: SpaceDorf on June 19, 2017, 01:12:19 PM
Before I use any strange Hacks I could use Dev-Mode .. but I rather take the loss, than getting used to cheating.

I've set it up so the cost of repair is 15 Plasteel and 1 Robotics Component. It just won't actually do anything until Haplo implements the repair functionality. If you're really that concerned about using dev mode, I'd recommend balancing your use via using the "destroy" tool and getting rid of the same amount of items it would cost to repair :D

Canute

hmm alestor,
robots are animals now, can't you just create operation like "a dog said" for robots.
When this is possible, why not overthink your upgrade strategy. To install tier 2-4 lets/arms to the robots to enhance thier speed and manipulation. Better CPU for better skills.
Ok, you would need prolly medcin to modify the robots except you find a way to change that.

SpaceDorf

#213
Stop trying to seduce me :)

It's not about fairness or cost.
For me it is about gaining something through other means than gameplay.
It doesn't matter if it's Vanilla or Modded, it is gameplay.
Reloading after a TCW ( total colony wipeout ) is a game feature.
Hell, a bug that enables me to build magma cannons, is a game feature, bring it on.
I can still screw up and kill everyone.

But using the Dev Console, patching savegames or disfiguring mods is something else.

I am weird like that ..

======

Quote from: Canute on June 19, 2017, 05:00:52 PM
robots are animals now, can't you just create operation like "a dog said" for robots.

Dead animals are still dead animals .. I don't think "a dog said"- has an operation to fix this.
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

Wafflerim

Hello ;D I'd like to ask how does one change the requirements for crafting robots? Iirc, the cleaner bot didn't require plasteel and you didn't need a special workshop to construct him.

wwWraith

#215
Wafflerim, you can edit RimWorld\Mods\Robots_PlusPlus_Misc_Robots_Xtension\Defs\RecipeDefs\RPP_Recipe_RoboticsWorkbench.xml or (better way) make yourself a patch as described in https://gist.github.com/Zhentar/4a1b71cea45b9337f70b30a21d868782

And I'd like to ask how to make robots not to make animal filth :) I think there was some tag for it, but can't find it anywhere now...
Think about it. Think around it. Perhaps you'll get some new good idea even if it would be completely different from my words.

Warforyou

I have a problem as my robots dont seem to do anything. They just wander and then die. I have Misc. Core, Misc Robots, Misc robots++ and Base mod loaded in the appropriate order. What may be the case?

Ashardalon411

make you sure you use the last version on all of them, maybe ?

Warforyou

Quote from: Ashardalon411 on June 21, 2017, 04:53:22 PM
make you sure you use the last version on all of them, maybe ?

I double checked that just to be sure and redownloaded all this mods. Nothing seems to have changed though.

alaestor

#219
@Warforyou by "Base mod" I'll assume you're talking about Base Robots ... if your talking about Misc. Core then just ignore me - i have no idea.

Base Robots compatibility isn't officially supported... It's rather hit and miss. Try loading base robots before misc robots, I've heard good things happen but I cant guarantee it.

Quotes from steam comments:
Quote from: OrlandoKev
Base Mod has to be loaded before the other robot mods else causes issues

Quote from: Arcane_Chill (Author of Base Robots)
That's unexpected, but good news! Other people said they were having issues with having Base Robots and Misc. Robots installed at the same time, so I've just been saying choose one or the other to avoid issues.


Canute

I have a little problem with the kitchen bot.
Butchering animals works fine, but when he don't manage it to butcher human/aliens.
Exception in Verse.AI.ThinkNode_PrioritySorter TryIssueJobPackage: System.Exception: Smarter_Food_Selection: Exception when fetching. (getter=Squirt eater=Squirt)
System.NullReferenceException: Object reference not set to an instance of an object
  at Verse.HediffSet.PartOrAnyAncestorHasDirectlyAddedParts (Verse.BodyPartRecord part) [0x00000] in <filename unknown>:0
  at Verse.HediffSet.GetCoverageOfNotMissingNaturalParts (Verse.BodyPartRecord part) [0x00000] in <filename unknown>:0
  at RimWorld.FoodUtility.GetBodyPartNutrition (Verse.Pawn pawn, Verse.BodyPartRecord part) [0x00000] in <filename unknown>:0
  at WM.SmarterFoodSelection.FoodScoreUtils.FoodScoreFor (WM.SmarterFoodSelection.Policy policy, Verse.Pawn eater, Verse.Pawn getter, Verse.Thing food, Boolean noDistanceFactor, Boolean quickScore) [0x00000] in <filename unknown>:0
  at WM.SmarterFoodSelection.FoodUtils.MakeRatedFoodListFromThingList (IEnumerable`1 list, Verse.Pawn eater, Verse.Pawn getter, WM.SmarterFoodSelection.Policy policy, Boolean doScoreSort) [0x00000] in <filename unknown>:0
  at WM.SmarterFoodSelection.FoodUtils.MakeRatedFoodListForPawn (Verse.Map map, Verse.Pawn eater, Verse.Pawn getter, WM.SmarterFoodSelection.Policy policy, System.Collections.Generic.List`1& foodList, Boolean canUseInventory, Boolean allowForbidden) [0x00000] in <filename unknown>:0
  at WM.SmarterFoodSelection.Detours.FoodUtility.TryFindBestFoodSourceFor.Internal (Verse.Pawn getter, Verse.Pawn eater, Boolean desperate, Verse.Thing& foodSource, Verse.ThingDef& foodDef, Boolean canRefillDispenser, Boolean canUseInventory, Boolean allowForbidden, Boolean allowCorpse, WM.SmarterFoodSelection.Policy forcedPolicy) [0x00000] in <filename unknown>:0
  at WM.SmarterFoodSelection.Detours.FoodUtility.TryFindBestFoodSourceFor._Postfix (System.Boolean& __state, System.Boolean& __result, Verse.Pawn getter, Verse.Pawn eater, Boolean desperate, Verse.Thing& foodSource, Verse.ThingDef& foodDef, Boolean canRefillDispenser, Boolean canUseInventory, Boolean allowForbidden, Boolean allowCorpse) [0x00000] in <filename unknown>:0
  at Verse.HediffSet.PartOrAnyAncestorHasDirectlyAddedParts (Verse.BodyPartRecord part) [0x00000] in <filename unknown>:0
  at Verse.HediffSet.GetCoverageOfNotMissingNaturalParts (Verse.BodyPartRecord part) [0x00000] in <filename unknown>:0
  at RimWorld.FoodUtility.GetBodyPartNutrition (Verse.Pawn pawn, Verse.BodyPartRecord part) [0x00000] in <filename unknown>:0
  at WM.SmarterFoodSelection.FoodScoreUtils.FoodScoreFor (WM.SmarterFoodSelection.Policy policy, Verse.Pawn eater, Verse.Pawn getter, Verse.Thing food, Boolean noDistanceFactor, Boolean quickScore) [0x00000] in <filename unknown>:0
  at WM.SmarterFoodSelection.FoodUtils.MakeRatedFoodListFromThingList (IEnumerable`1 list, Verse.Pawn eater, Verse.Pawn getter, WM.SmarterFoodSelection.Policy policy, Boolean doScoreSort) [0x00000] in <filename unknown>:0
  at WM.SmarterFoodSelection.FoodUtils.MakeRatedFoodListForPawn (Verse.Map map, Verse.Pawn eater, Verse.Pawn getter, WM.SmarterFoodSelection.Policy policy, System.Collections.Generic.List`1& foodList, Boolean canUseInventory, Boolean allowForbidden) [0x00000] in <filename unknown>:0
  at WM.SmarterFoodSelection.Detours.FoodUtility.TryFindBestFoodSourceFor.Internal (Verse.Pawn getter, Verse.Pawn eater, Boolean desperate, Verse.Thing& foodSource, Verse.ThingDef& foodDef, Boolean canRefillDispenser, Boolean canUseInventory, Boolean allowForbidden, Boolean allowCorpse, WM.SmarterFoodSelection.Policy forcedPolicy) [0x00000] in <filename unknown>:0
  at WM.SmarterFoodSelection.Detours.FoodUtility.TryFindBestFoodSourceFor._Postfix (System.Boolean& __state, System.Boolean& __result, Verse.Pawn getter, Verse.Pawn eater, Boolean desperate, Verse.Thing& foodSource, Verse.ThingDef& foodDef, Boolean canRefillDispenser, Boolean canUseInventory, Boolean allowForbidden, Boolean allowCorpse) [0x00000] in <filename unknown>:0  ---> System.NullReferenceException: Object reference not set to an instance of an object
  at Verse.HediffSet.PartOrAnyAncestorHasDirectlyAddedParts (Verse.BodyPartRecord part) [0x00000] in <filename unknown>:0
  at Verse.HediffSet.GetCoverageOfNotMissingNaturalParts (Verse.BodyPartRecord part) [0x00000] in <filename unknown>:0
  at RimWorld.FoodUtility.GetBodyPartNutrition (Verse.Pawn pawn, Verse.BodyPartRecord part) [0x00000] in <filename unknown>:0
  at WM.SmarterFoodSelection.FoodScoreUtils.FoodScoreFor (WM.SmarterFoodSelection.Policy policy, Verse.Pawn eater, Verse.Pawn getter, Verse.Thing food, Boolean noDistanceFactor, Boolean quickScore) [0x00000] in <filename unknown>:0
  at WM.SmarterFoodSelection.FoodUtils.MakeRatedFoodListFromThingList (IEnumerable`1 list, Verse.Pawn eater, Verse.Pawn getter, WM.SmarterFoodSelection.Policy policy, Boolean doScoreSort) [0x00000] in <filename unknown>:0
  at WM.SmarterFoodSelection.FoodUtils.MakeRatedFoodListForPawn (Verse.Map map, Verse.Pawn eater, Verse.Pawn getter, WM.SmarterFoodSelection.Policy policy, System.Collections.Generic.List`1& foodList, Boolean canUseInventory, Boolean allowForbidden) [0x00000] in <filename unknown>:0
  at WM.SmarterFoodSelection.Detours.FoodUtility.TryFindBestFoodSourceFor.Internal (Verse.Pawn getter, Verse.Pawn eater, Boolean desperate, Verse.Thing& foodSource, Verse.ThingDef& foodDef, Boolean canRefillDispenser, Boolean canUseInventory, Boolean allowForbidden, Boolean allowCorpse, WM.SmarterFoodSelection.Policy forcedPolicy) [0x00000] in <filename unknown>:0
  at WM.SmarterFoodSelection.Detours.FoodUtility.TryFindBestFoodSourceFor._Postfix (System.Boolean& __state, System.Boolean& __result, Verse.Pawn getter, Verse.Pawn eater, Boolean desperate, Verse.Thing& foodSource, Verse.ThingDef& foodDef, Boolean canRefillDispenser, Boolean canUseInventory, Boolean allowForbidden, Boolean allowCorpse) [0x00000] in <filename unknown>:0
  --- End of inner exception stack trace ---
at WM.SmarterFoodSelection.Detours.FoodUtility.TryFindBestFoodSourceFor._Postfix (bool&,bool&,Verse.Pawn,Verse.Pawn,bool,Verse.Thing&,Verse.ThingDef&,bool,bool,bool,bool) <0x0016c>
at (wrapper dynamic-method) RimWorld.FoodUtility.TryFindBestFoodSourceFor_Patch2 (Verse.Pawn,Verse.Pawn,bool,Verse.Thing&,Verse.ThingDef&,bool,bool,bool,bool,bool) <0x0049d>
at RimWorld.JobGiver_GetFood.TryGiveJob (Verse.Pawn) <0x00117>
at Verse.AI.ThinkNode_JobGiver.TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) <0x00078>
at Verse.AI.ThinkNode_PrioritySorter.TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) <0x00381>

Verse.Log:Error(String)
Verse.AI.ThinkNode_PrioritySorter:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Hospitality.ThinkNode_FilterGuestRooms:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
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()



leeadriancatfox

Did I miss something or I cannot dismantle disabled bots... there just there... dead.

Canute

No you didn't miss anything.
Currently you can't repair/dismantle robots.
You can use the dev. tool destroy to remove the corpse and sell/deconstr. the station.


Danielgomez

Quote from: alaestor on September 16, 2016, 12:08:58 AM
Misc. Robots++


Robots? Y u no Robots++ also!?
More Robots!!! More Better!!!

Contains multiple tiers of a couple multi-talented robots to serve your colony. It also adds research, materials, and a new Robotics workbench for crafting the Misc. Robots and Robots++.  Made using the "Misc. Robots Xtension" provided by Haplo.
Big shout-out to Haplo for the awesome misc mods, eh!

Robots++ Contains The Following Bots
These four bots combine multiple abilities to perform common colony tasks

  • Kitchen Bot
    A unit capable of cooking, as well as sowing and cutting plants.
    A useful robot both in the kitchen, and on the farm.

  • Crafter Bot
    A unit capable of smithing, tailoring, and crafting.
    The perfect slaves for an automated assembly line!

  • Builder Bot
    A Builder unit capable of constructing, deconstructing, repairing, and mining.
    It will also cut plants that are in the way, but may not be used for farming.

  • ER Bot
    An Emergency Response unit capable of treating patients and fighting fires.
    Don't be scared of the needle; it wont hurt (much).

  • OmniBot
    The OmniBot is at the end of the techtree
    and requires you to research all of the other robots first.
    The OmniBot can do the jobs of all the other robots.


Research, Crafting, and Tiers
You will need to do the required robotic research in order to build a specific robot (tech-tree research chart bellow). Each tier of robot is slightly faster and less flammable than the previous. Higher tier robots require that tier of logic, along with the previous tier of that robot. For example; the Basic Crafter robot requires Basic logic research, and the Simple Crafter research. Each tier of robot has it's own robotic matrix which is crafted from robotic components and various resources. Each robotic matrix requires the matrix in the previous tier.

It's important to note that it's quite cheaper to craft robots and their materials than to buy them from the Robotic and Exotic traders. So much so that you can craft and sell them to turn a profit!

As for restricting the free movement of robots;
Quote from: Haplo on October 09, 2016, 05:10:58 AM
you can area restrict the bots. Just not in the area menu, but in the robot info field. Click on the active area and select the restricted area he should use instead. I know, It's not perfect as you have to set every robot by itself, but at least it is doable this way :)

There are five tiers of robots:
  Tier 1 Simple robots have Amateur skills (4),
  Tier 2 Basic robots have Professional skills (8),
  Tier 3 Intermediate robots have Master skills (13),
  Tier 4 Advanced robots have System-Class Master skills (16),
  Tier 5 Anti-Logic robots like the OmniBot have GodLike skills (20).

Each tier has a faster movement speed and more fire resistance than the previous.



R++ Mod Conflicts (you're good to go!)
No known conflicts

R++ Mod Dependencies
Robots++ requires [Misc. Core] and [Misc. Robots] and must be loaded in that order.
Download from the Miscellaneous Mods thread by Haplo.

Translations
Translations are included. If you would like to translate for R++,
please use the /Languages/English/ folder as a template.
When you've finished, message me (preferably via discord) and I'll include it in the mod.

R++ Downloads
Latest Mod Version is 2.0.5 made for Game Version 0.17.1557
For compatibility reasons, there will also be archives of older versions available for download via Mega.nz
Download: Mega.nz, files.fm, or the Steam Workshop

Mod Load Order
[Core] >> [Misc. Core] >> [Misc. Robots] >> [Misc. Robots++]
[Misc. Core] doesn't need to be at the very top - but the closer to [Core] you make it, the fewer problems you'll have. It's advised to only keep large collections of mods, like the Misc. Mods, close together and near the top. Single-file mods and other mods should be loaded after them. (Not a rule set in stone, but it can fix a lot of headaches)


R++ Change Log
Can be found in this Pastebin or the Steam Workshop

License, Mod Details, Suggestions, and Bug Reports
Specific values with regards to balance and bot specs can be found in this Pastebin which is a small console program I wrote to make it easier to calculate the values.

I would prefer if people were to submit suggestions and bug reports in the Steam Workshop discussion, though I understand that this isn't always possible. I will likely be slow to respond to posts in this thread. If something is urgent; feel free to join my discord or E-Mail me (which can be found in the changelog paste bin).

For license information, see Miscellaneous Mods thread by Haplo.

int misc_core(int misc_robots){ return misc_robots++; } // lawl :D

MRizqonT

I Think this robots can easily take over a whole colony without any colonist  ;D