[A17][WIP] Macrocosm

Started by PeteTimesSix, August 19, 2017, 05:18:48 AM

Previous topic - Next topic

PeteTimesSix

So I'm sick, the kind of sick that makes staring at monitors for extended periods of time inadvisable. This is rather inconvenient since I'm sitting on a mostly-ready for first release mod. I'll get better in a few days, but unfortunately, I'm already past my self-imposed deadline that I really can't afford to ignore for boring and sensible reasons. Oh well, I might as well put up what I've got now and call it a beta test or something...

I'm actually not gonna go into detail about what the mod does either, since an issue I had with SimpleSidearms was a lot of people were simply not aware of certain features (I've lost track of how many people have complained about pawns dropping their weapons), so this time around I'd like to collect some data on what is obvious and what needs to be made obvious. Same with what kind of mod settings and options people will want. Also, you know, sick.

Mods you should not expect to play well with this: basically anything that either relies on or alters vanilla raid/visit/caravan arrival incidents. Probably a whole bunch of others. Should work fine when dropped into an existing save. All sorts of things will explode when removed from one.


Scouting is a thing now. Raids, visitors and traders travel on the world map.

So does toxic fallout and volcano ash.

For some reason I ended up making a Rimworld minigame inside Rimworld? I don't know why or how that happened, but there it is. At least it gives you early warnings on approaching raids, I guess.

Here it is. Use at your own risk.

No seriously. If you're one of those (sensible) people who don't like their save ruined, you might want to give this a pass for now.

Mods: SimpleSidearms | QOLTweaksPack
Check them out, feedback and suggestions are welcome.

faltonico

You are in luck!
I have no active colonies at the moment, I'm glad to have an excuse to play a new one!
I'll focus on compatibility, cause i would like to keep most of the 222 mods i'll play with xD

Good luck to you too, hopefully you'll get better soon!

Techgenius

Knowing the code-script god you are I suppose this mod is the next big thing. From what I understand it allows you to select certain pawns to create outposts and let them "manage" said outposts?  that is quite interesting. Hopefully, it will allow us to have more, mini-bases. I'll gladly join the beta-test version. I hope my game doesnt die because right now I'm dealing with several game bugs, unlogged crashes, corrupt save-files, broken game starts. The usual cobbled together. I'm sure I'll find a way to make Macrocosm fit in.  Lets see how it behaves with Hospitality and a few other mods.

faltonico

I played it last night for a long time, i got some errors and what seems to be an incompatibility, but no game breaking stuff so far, but i have no way to tell because i don't know what the mod is supposed to do exactly xD
Having to figure it out by myself is making things move a little more slowly.
Anyways, i have completed the research is normal mode, i could see the caravans about to enter my colony be it raids or traders without research, and now i can see caravans coming and going nearby on the world, but, but i'm not sure what the items are supposed to do, or how to use them, i built them all already.
I don't find the need to do another colony so early in the game, so i haven't get got out from my tile.

All the following errors and seemingly random, i didn't mange to relate them to anything happening on my map.

This error is related to No Death Randomness:
Tried to remove world object Caravan_Macrocosm Caravan 4 (tile=461935) from world, but it's not here.
Verse.Log:Error(String)
RimWorld.Planet.WorldObjectsHolder:Remove(WorldObject)
RimWorld.Planet.Caravan:Notify_MemberDied(Pawn)
Verse.Pawn:Kill_Patch2(Object, Nullable`1)
M_No_Death_Randomness.Main:CheckForStateChange(Pawn_HealthTracker, Nullable`1, Hediff)
Verse.Pawn_HealthTracker:Notify_HediffChanged(Hediff)
Verse.Hediff:set_Severity(Single)
Verse.HealthUtility:AdjustSeverity(Pawn, HediffDef, Single)
RimWorld.Need_Food:NeedInterval()
RimWorld.Pawn_NeedsTracker:NeedsTrackerTick()
Verse.Pawn:Tick()
RimWorld.Planet.WorldPawns:WorldPawnsTick()
RimWorld.Planet.World:WorldTick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()


I think i have seen this error happening in another testing colony i had, but this one clearly points to your mod:
Could not get new name.
Verse.Log:Error(String)
RimWorld.NameGenerator:GenerateName(RulePackDef, Predicate`1, Boolean)
RimWorld.PawnBioAndNameGenerator:GeneratePawnName_Patch1(Pawn, NameStyle, String)
RimWorld.PawnBioAndNameGenerator:GiveShuffledBioTo(Pawn, FactionDef, String)
RimWorld.PawnBioAndNameGenerator:GiveAppropriateBioAndNameTo_Patch1(Pawn, String)
Verse.PawnGenerator:TryGenerateNewNakedPawn(PawnGenerationRequest&, String&, Boolean)
Verse.PawnGenerator:GenerateNewNakedPawn(PawnGenerationRequest&)
Verse.PawnGenerator:GeneratePawn_Patch1(PawnGenerationRequest)
RimWorld.PawnGroupKindWorker_Normal:GeneratePawns(PawnGroupMakerParms, PawnGroupMaker, List`1, Boolean)
RimWorld.PawnGroupKindWorker:GeneratePawns(PawnGroupMakerParms, PawnGroupMaker, Boolean)
RimWorld.PawnGroupMaker:GeneratePawns(PawnGroupMakerParms, Boolean)
RimWorld.<GeneratePawns>c__IteratorC9:MoveNext()
System.Collections.Generic.List`1:AddEnumerable(IEnumerable`1)
System.Collections.Generic.List`1:.ctor(IEnumerable`1)
System.Linq.Enumerable:ToList(IEnumerable`1)
Macrocosm.patches.IncidentWorker_Raid_TryExecute_Prefix:DoDetouredRaid(IncidentWorker_Raid&, IncidentParms, Object[], Boolean&)
Macrocosm.patches.IncidentWorker_Raid_TryExecute_Prefix:TryExecute(IncidentWorker_Raid, IncidentParms&, Boolean&)
RimWorld.IncidentWorker_Raid:TryExecute_Patch1(Object, IncidentParms)
RimWorld.IncidentWorker_RaidEnemy:TryExecute(IncidentParms)
RimWorld.Storyteller:TryFire(FiringIncident)
RimWorld.Storyteller:StorytellerTick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()


And this one i have no freaking idea why, it was very, very spammy, to keep playing i had to disable the auto open notification, so i didn't know when it stopped:
System.NullReferenceException: Object reference not set to an instance of an object
  at Macrocosm.extensions.Caravan_Macrocosm.Tick () [0x00000] in <filename unknown>:0
  at RimWorld.Planet.WorldObjectsHolder.WorldObjectsHolderTick () [0x00000] in <filename unknown>:0
  at RimWorld.Planet.World.WorldTick () [0x00000] in <filename unknown>:0
  at Verse.TickManager.DoSingleTick () [0x00000] in <filename unknown>:0
Verse.Log:Error(String)
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()


I got several notifications that some of the caravans ran out of food as well, and a huge amount of warning saying that a lot of pawns were not deep saved.

I'm really satisfied so far with the mod, an early warning for raids is always appreciated, though it doesn't warn you about drop pod raids (i had 2 of them), or i'm doing it wrong.

If you need any more info just ask, i'll keep playing that colony for a while more, and i'l keep adding all of the mods i'm using little by little to try to pick up incompatibilities.

sirskips

OMFG as soon as I get corruption working I too will hop on this test wagon, cause this is seriously the greatest mod next to corruption, alien frame work, simple side arms, and mega fauna!

PeteTimesSix

Oh hey, my eyes no longer look like I've recently attempted to summon Dormammu, the master of the dark dimension. Neat.

Anyway, in the interest of fostering discussion (and because future me is probably reading this post to see what needs to go in the tutorial) I'll go into my thought processes when they come up:

Raids that drop in from orbit indeed don't get an early warning. In vanilla Rimworld you get the occasional raid that uses drop pods but spawns on the edge of the map anyway (so it's functionally identical to regular raids), I figured it'd make things interesting if there was some gameplay difference for those raids.
As you research techs you unlock better versions of the scouting buildings (I think the first one, the camera console, is unlocked with microelectronic basics) and scouting outpost buildings, though at some point it switches to new Macrocosm techs. Scouting buildings have a stat in their stat block that tells you the scouting range of that building, and pawns will automatically only use the best building available.
Even a colony with no scouting buildings has a vision range of 1. Unless everyone is dead.
Raids, visitors, traders etc. all spawn at settlements and head out from there. This means that with a nearby outpost you can get raid warnings days in advance.

Some things you can't do or don't happen, but I might get around to doing eventually:
Intercepting caravans
Storing items at outposts
Making the "refugee chased" incident make sense (right now a refugee shows up and then a raid spawns somewhere days of walking away)
Scouting outposts actually being in any danger whatsoever ever
NPC caravans actually needing food? But probably not
Toxic fallout origin being a visitable location that you can go to to stop the damn thing early
...probably not for the volcanic winter's volcano, though
"Others will take it if you don't" for item stashes not being a dirty lie

Again, this is *not* a list of planned features. It's things I'd *like* to do, assuming I had infinite time to work with. So, you know, if you have particularly strong feelings about something on that list, voice it: I am bad at saying no to people  ;)

Anyway, onto the bug reports that I will not be trying to fix right now because I am a Responsible Adult and really, really should Study for my Finals. Hopefully typing that out will guilt-trip me to actually do it
Tried to remove world object Caravan_Macrocosm Caravan 4 (tile=461935) from the world, but it's not here.
I've occasionally had that happen during testing but I haven't tracked it down yet. It happens when all pawns in a caravan die - for some reason sometimes the game tries to remove the caravan twice?

Could not get new name.
Huh. That's in vanilla code. I guess the game ran out of pawn names? There does tend to be a lot of caravans wandering about in the fog later in the game, which means that all those pawns continue existing (and presumably hogging their name, inconsiderabe bastards), so maybe that has something to do with it...

System.NullReferenceException: Object reference not set to an instance of an object
  at Macrocosm.extensions.Caravan_Macrocosm.Tick () [0x00000] in <filename unknown>:0

One day, I will write a method and I'll actually null-check everything. Infact... *quick check*
three different things that could be null here. I guess I'll push a super-quick update for that.

QuoteI got several notifications that some of the caravans ran out of food as well
Presumably since you never left the colony that means NPC caravans. Makes sense - I've put in a little hack that makes NPC caravans never actually go hungry, but if the food pawns spawn with rots away or something the game will still notice the caravan doesnt have food anymore. I'll have to track down where that notification comes from and intercept it for non-player caravans.

Quotehuge amount of warning saying that a lot of pawns were not deep saved.
Yeah I don't *really* understand the Rimworld saving system quite yet. Paste me the warning just in case, but I'm pretty sure I've been getting them too. I'll figure it out eventually.
Mods: SimpleSidearms | QOLTweaksPack
Check them out, feedback and suggestions are welcome.

faltonico

Object with load ID Thing_Human2797 is referenced (xml node name: li) but is not deep-saved. This will cause errors during loading.

Object with load ID Thing_Human2797 is referenced (xml node name: Pawn) but is not deep-saved. This will cause errors during loading.

Warnings are not saved completely in the log, and i didn't care to save them separately, so these are truncated, I had so many of those errors before that i thought they were unimportant really.
Next time i'll clear world pawns with RuntimeGC and see if the "could not get new name" error keeps happening. I had it installed but i thought it was not necessary to use it yet.

Regarding the buildings, what difference do they make? i only have 1 hex highlighted around my base that i presume is the perimeter i can get warnings from, does that perimeter gets bigger when someone is using a scouting building?

PeteTimesSix

#7
Quote from: faltonico on August 21, 2017, 07:43:55 AM
Object with load ID Thing_Human2797 is referenced (xml node name: li) but is not deep-saved. This will cause errors during loading.

Object with load ID Thing_Human2797 is referenced (xml node name: Pawn) but is not deep-saved. This will cause errors during loading.

Warnings are not saved completely in the log, and i didn't care to save them separately, so these are truncated, I had so many of those errors before that i thought they were unimportant really.
Next time i'll clear world pawns with RuntimeGC and see if the "could not get new name" error keeps happening. I had it installed but i thought it was not necessary to use it yet.

Regarding the buildings, what difference do they make? i only have 1 hex highlighted around my base that i presume is the perimeter i can get warnings from, does that perimeter gets bigger when someone is using a scouting building?

There's a new work assignment in the work tab (scouting). Your colonists should all be assigned to it by default. Pawns with that assignment will seek out scouting building and ...scout at them. When the progress bar is finished, the game updates that colony's ticks for that particular radius to that building's hidden value(I think I set it to last about a day) and while theres more than zero ticks in a radius (they keep ticking down), that colony's scouting range is going to be at least that big. Each building also has a tick threshold at which pawns will use it to scout which is greater than the time it takes to scout, so assuming there is someone free to do it you will always have full coverage.

For example, here is the relevant data for the scouting tower:

     
      <ScoutingTileRange>2</ScoutingTileRange>

...

<li Class="Macrocosm.macrocosm.buildings.CompProperties_ScoutLocationManned">
        <ticksCapacity>20000</ticksCapacity>
        <ticksForJob>5000</ticksForJob>
<scoutingTimeTicks>3000</scoutingTimeTicks>
<allowsRoof>false</allowsRoof>
      </li>


Effectively, colonists scout at a building for a while, then for a while after that you have that building's scouting range. The hill and the tower have a range of 2, the camera console is range 3 and the drone system is range 4.
Mods: SimpleSidearms | QOLTweaksPack
Check them out, feedback and suggestions are welcome.

faltonico

Nice.
I had that job set to 3 (default -_-') so that is probably why i didn't see it in action.
I'll try to build an outpost next time and see what happens.

ChaoticTabris

This looks really interesting and ambitious. I'll be keeping an eye on that for sure.


Don231

So with this mod, if I have a main base in the middle with 6 mini bases forming a "wall" immediately around it, would it make my main base impossible to get to by land? If so I would finally be able to make a "city" with multiple "districts" on different tiles.
Also wouldn't orbital drop pods be even easier to spot given how they a in the sky and not covered by foliage and terrain when compared to traditional land based raiding convoys?
What about manhunter packs and other roaming dangers?
Would terrain and elevation affect the visibility range?

Devon_v

Quote from: Don231 on November 07, 2017, 09:35:16 AM
So with this mod, if I have a main base in the middle with 6 mini bases forming a "wall" immediately around it, would it make my main base impossible to get to by land? If so I would finally be able to make a "city" with multiple "districts" on different tiles.
Also wouldn't orbital drop pods be even easier to spot given how they a in the sky and not covered by foliage and terrain when compared to traditional land based raiding convoys?
What about manhunter packs and other roaming dangers?
Would terrain and elevation affect the visibility range?
Sure they're easy to spot as they approach at several hundred miles per hour. Then they're in ur base, killin' ur dudes. It's not that you can't see them coming, it's that they come in so fast it doesn't matter.

fong

I've been use SimpleSidearms | QOLTweaksPack recently, and yea, it's very impressive!
and I also have highly confident anticipate it'll be another hit mod in RW.
I'm just saying good job! and thank you 'PeteTimesSix' for these great mod.
you're the man!
I'll still testing it, and looking forward it's stable version.
thanks again!

getfreur

For what i have understood this mod make you see events that happen on the colony coming in the world map, a very good idea that should be on the main game if possible and for that i congratulate you and thank you for the effort, but those events like raiders and caravans can be intercepted by colony caravans? like a response force that way the colony would not be damaged during combat and it only possible to spot the events using the tower or you can have other constructions like a video link with a satelite?