[1.0](WIP) What The Hack?! - Mechanoid hacking

Started by Roolo, May 31, 2018, 04:03:57 PM

Previous topic - Next topic

Roolo

I found some more bugs and they were serious enough  to justify another quick update:

- Added new sprite for hacking table. Thanks a bunch malistaticy for drawing it!
- Fixed sieges with mechanoids not working properly (errors were thrown and raiders wouldn't start building)
- Fixed error popping when enemy pawns are downed.
- Adjusted spawn rate of mechanoid parts.

ChJees


Roolo

Quote from: ChJees on August 06, 2018, 04:18:58 PM
It seems like someone put the mod up on Steam Workshop.
Were they given permission?

https://steamcommunity.com/sharedfiles/filedetails/?id=1468270839

Not at all. I just requested him to remove this immediately.

rawrfisher

#168
Quote from: Roolo on August 06, 2018, 02:28:16 PM
I found some more bugs and they were serious enough  to justify another quick update:

- Added new sprite for hacking table. Thanks a bunch malistaticy for drawing it!
- Fixed sieges with mechanoids not working properly (errors were thrown and raiders wouldn't start building)
- Fixed error popping when enemy pawns are downed.
- Adjusted spawn rate of mechanoid parts.


I was wondering about that bug with the sieges.  as for your question it says days of fuel 100

Latest update was a full version change gonna see if anything still works

Seems your mod isnt affected by the latest update.  On a different note would it be possible to have haulers automaticlly haul mechs to a hacking table?
Professional jerk
Want something broken let me know

Roolo

#169
Quote from: rawrfisher on August 06, 2018, 04:35:32 PM
Quote from: Roolo on August 06, 2018, 02:28:16 PM
I found some more bugs and they were serious enough  to justify another quick update:

- Added new sprite for hacking table. Thanks a bunch malistaticy for drawing it!
- Fixed sieges with mechanoids not working properly (errors were thrown and raiders wouldn't start building)
- Fixed error popping when enemy pawns are downed.
- Adjusted spawn rate of mechanoid parts.


I was wondering about that bug with the sieges.  as for your question it says days of fuel 100

Latest update was a full version change gonna see if anything still works

Seems your mod isnt affected by the latest update.  On a different note would it be possible to have haulers automaticlly haul mechs to a hacking table?

Ok, so if I understand you correctly, when you hover over the needs/power in your caravan you can see it going down (pretty rapidly) instead of up, right? The bar moves pretty slowly and that tab doesn't have green arrows representing increase, so it's good if you really look at the numbers. My questions may seem too obvious, but I have to be 100% sure it's really not working before I'm going to spend time on fixing things. Looking at your mod list, there are no obvious suspects.

QuoteOn a different note would it be possible to have haulers automaticlly haul mechs to a hacking table?
Yes, this is high on my todo list. I'm going to fix this while I'm implementing that all hacks take place on the hacking table (as opposed to on the platforms).

rawrfisher

I dont know about rapidly but yes it goes down not up.  Fuel is not consumed at all.  Dont worry about it.  If other people encounter this problem they might be able to help out more then me on this. 
Professional jerk
Want something broken let me know

Roolo

#171
Update:

- Changed version from 1.0 to 0.19
- When you add a hack/modification bill to a mechanoid, pawns will automatically haul the mechs to the nearest hacking table.
- Platforms can no longer be used to perform modifications on, instead the hacking table is used.
- Renamed: remove from hacking table -> clear hacking table and clear hacking table now also clears the queued bills from the mechanoid (to prevent pawns from hauling them to the table again immediately)
- Possible fix for 10 jobs in tick error that can happen when using the mech controller belt.
- Fixed error popping op when you right click things when having a mechanoid selected that is directly controllable.
- When you select a pawn with an activated mechanoid controller belt, its radius is now shown, also when you select the controlled mechanoid.
- edit, forgot to mention: removed right click option "carry to hacking table" since the same can be achieved by adding a bill.

Madman666

You might wanna review AI core use for mechanoid control - it seems psychic ships no longer drop those cores. Its now annoyingly enough - quest only. So if you're unlucky, you might not get more than 1.

Roolo

Quote from: Madman666 on August 09, 2018, 11:55:12 AM
You might wanna review AI core use for mechanoid control - it seems psychic ships no longer drop those cores. Its now annoyingly enough - quest only. So if you're unlucky, you might not get more than 1.

You can call friendly factions now to ask them for a quest to retrieve such a core. Before you're able to do that, the controller belts are a good option. I want to keep direct control something exclusive.

rawrfisher

#174
Great to see you posting again. 
May have an error report to send your way later once I determine if its an edge case mod conflict or just bad luck on my part

__result.Job.defGotoWander
Verse.Log:Message(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:49)
WhatTheHack.Harmony.Pawn_JobTracker_DetermineNextJob:Postfix(Pawn_JobTracker&, ThinkResult&)
Verse.AI.Pawn_JobTracker:DetermineNextJob_Patch1(Object, ThinkTreeDef&)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob() (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\Pawn_JobTracker.cs:515)
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\Pawn_JobTracker.cs:393)
Verse.AI.Pawn_JobTracker:JobTrackerTick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\Pawn_JobTracker.cs:120)
Verse.Pawn:Tick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Pawn\Pawn.cs:559)
AIRobot.X2_AIRobot:Tick()
Verse.TickList:Tick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickList.cs:125)
Verse.TickManager:DoSingleTick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickManager.cs:303)
Verse.TickManager:TickManagerUpdate() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickManager.cs:267)
Verse.Game:UpdatePlay() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Game.cs:512)
Verse.Root_Play:Update() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Play.cs:99)
  I think you missed some debug logs  8)
Professional jerk
Want something broken let me know

Madman666

Quote from: Roolo on August 09, 2018, 12:01:20 PM
You can call friendly factions now to ask them for a quest to retrieve such a core. Before you're able to do that, the controller belts are a good option. I want to keep direct control something exclusive.

And if you don't like caravanning, you're out of luck? Oh, well.

Roolo

#176
Quote from: rawrfisher on August 09, 2018, 01:02:30 PM
Great to see you posting again. 
May have an error report to send your way later once I determine if its an edge case mod conflict or just bad luck on my part

__result.Job.defGotoWander
Verse.Log:Message(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:49)
WhatTheHack.Harmony.Pawn_JobTracker_DetermineNextJob:Postfix(Pawn_JobTracker&, ThinkResult&)
Verse.AI.Pawn_JobTracker:DetermineNextJob_Patch1(Object, ThinkTreeDef&)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob() (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\Pawn_JobTracker.cs:515)
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\Pawn_JobTracker.cs:393)
Verse.AI.Pawn_JobTracker:JobTrackerTick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\Pawn_JobTracker.cs:120)
Verse.Pawn:Tick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Pawn\Pawn.cs:559)
AIRobot.X2_AIRobot:Tick()
Verse.TickList:Tick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickList.cs:125)
Verse.TickManager:DoSingleTick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickManager.cs:303)
Verse.TickManager:TickManagerUpdate() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickManager.cs:267)
Verse.Game:UpdatePlay() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Game.cs:512)
Verse.Root_Play:Update() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Play.cs:99)
  I think you missed some debug logs  8)

Ok thanks for your post, no need to worry about those debug messages, as long as they don't spam your log multiple times per second (slowing down your game). I'll probably miss them a few times more while the mod is still in the WIP stage. When I'm releasing the mod I'll make sure that I won't forget any of them.

Quote from: Madman666 on August 09, 2018, 06:12:49 PM
Quote from: Roolo on August 09, 2018, 12:01:20 PM
You can call friendly factions now to ask them for a quest to retrieve such a core. Before you're able to do that, the controller belts are a good option. I want to keep direct control something exclusive.

And if you don't like caravanning, you're out of luck? Oh, well.

Yes indeed. If players choose to ignore a large part of the game, they'll have to accept they cannot get all content. I actually like that it's possible to get the cores with caravan quests. This way it's risk and reward. The alternatives are "grind and reward" (being able to craft it with an expensive recipe with easily obtainable ingredients) or "RNG and reward" (making it a very rare drop on your map, or making it craftable with rare ingredients).

Edit: There is one alternative, also Risk and Reward, but on your own map, which I would also consider a fine solution. That is being able to summon a threat (for instance a special mech ship) to your map, and get the core as a reward. However, such an event would be a huge implementation and balancing effort, while I already like the current solution, so I'm not going to do that.

Madman666

Errr... It was risk and reward on your own map, when psychic ship was dropping it, but for some reason Tynan decided to kill last remaining threat type, that still dropped some worthwhile rewards aside from manhunters (i expect that one to be nerfed into oblivion as well soon). Can't comprehend, why fix break whats not broken.

I like those ways you mentioned. Plenty of mods offer a way to craft those cores and that is somewhat boring, so i see no need to implement that yet again. It would be extremely nice to have it be ultra rare drop from end game enemy raids with special hacked mechanoids for one (i mean if they get so many people, they might have brought a mech with advanced control hack, which drops ai cores on death) and as alternative - that option to somehow trigger a mech battleship to drop would be a really interesting way to try and get the core.

I am not against having caravan option for getting AI cores, but i really dislike the fact, that now its the only option. Variety is the key to interesting and unrepetitive gameplay. I understand your reasons for not wanting to implement those things, so i'll just rely on Sparkling Worlds mod or something for AI crafting recipe then.

Roolo

Quote from: Madman666 on August 10, 2018, 05:10:22 AM
Errr... It was risk and reward on your own map, when psychic ship was dropping it, but for some reason Tynan decided to kill last remaining threat type, that still dropped some worthwhile rewards aside from manhunters (i expect that one to be nerfed into oblivion as well soon). Can't comprehend, why fix break whats not broken.

I like those ways you mentioned. Plenty of mods offer a way to craft those cores and that is somewhat boring, so i see no need to implement that yet again. It would be extremely nice to have it be ultra rare drop from end game enemy raids with special hacked mechanoids for one (i mean if they get so many people, they might have brought a mech with advanced control hack, which drops ai cores on death) and as alternative - that option to somehow trigger a mech battleship to drop would be a really interesting way to try and get the core.

I am not against having caravan option for getting AI cores, but i really dislike the fact, that now its the only option. Variety is the key to interesting and unrepetitive gameplay. I understand your reasons for not wanting to implement those things, so i'll just rely on Sparkling Worlds mod or something for AI crafting recipe then.

Yeah, I could add it back to the fallen ships, but I won't do that because I think adding a 4k wealth buff to psychic ship parts would make my mod way too intrusive, and I want to make it vanilla friendly, even if vanilla has its limitations. Whether raids give enough rewards is an interesting discussion, but it's not my mod's task to fix that (I'm not implying you said I should add it back, I'm just explaining why that's not a solution).

And sure, variety is always a good thing. But if I were to cater for every situation where more variety would improve the mod, I'd never finish it. Therefore it's good you realise there's always the alternative option to install another mod that lets you craft the AI core, or lets you attain it in a different way. This is a perfectly fine solution IMO.

Roolo

#179
I began implementing a mechanoid upgrade system. I think I'll add a new bench on which parts can be created which can be used to upgrade mechs, but I still need a sprite for that (any volunteers? :) ). Right now, just raw resources are used (like plasteel, mechanoid parts, etc). Some upgrades will just give static buffs (an example would be extra plasteel plating (more armour at cost of movement speed)). However, I'll definitely also add "active upgrades" which add abilities, and have in fact implemented the first one already:

Update:

- Added repair module (WIP version). See description below
- Did a lot of coding to support an upgrade system for mechanoids. From now on, additional mech upgrades can be added pretty quickly.
- Fixed mechanoid on which an operation just took place not being hauled automatically to a platform.
- Rebalanced mechanoid. Buffed repair rate but it no longer scales with healthfactor. Mechs that take a lot of damage (centipedes) are more costly to maintain now, while cost for the lighter mechs is lowered.

The repair module can be loaded with mechanoid parts, and is capable of very rapidly drawing a large amount of power from the internal battery, and redirecting it the the mech's internal mechanites. This activates the mechanites, which can repair damage consuming the parts, while slowing down the mechanoid temporarily.

So with this module you can load mechanoid parts into mechs, and the mechs with the module get an ability "self repair", which can be activated if the mechanoid is activated, has enough power, and enough parts. Activating it instantly consumes a large amount of power. Repairing using this is quicker than on the platforms, but also more expensive in terms of mechanoid parts. The module still needs some more polishing, but the basic principles work. I'll add another thing called "repairing arm", which can replace a mechanoid's arm, and gives mechs with a repair module the ability to repair other mechs using the same principle.

Expect more possible mechanoid upgrades in the near future.