[SPOILERS] Your Base

Wait… you mean like disabling some of the recipes so they don’t appear in the menu? You’ll rarely have 30+ missions in a tab and then probably only the main one. Or do you mean like forbidding items so they won’t be consumed/checked for in recipes because you want to save them?

Yes. That. My assumption is that there are going to be some recipes that you are more likely to want to use.

My assumption is that there are going to be some recipes that you are more likely to want to use.

Certainly an option for UI improvement. It isn’t too bad at the moment, at high levels it does still highlight what you can craft so your eyes certainly get drawn to what you are looking for.

Also,

Hide sites are done. They give you a bit of power projection from your camp so that the player can reach new locations. You have the NPC construct an improvised shelter about half a day’s travel (90 OM tiles) in any direction your want, you have to be able to see the location, it will reveal a tiny bit of area around it when built (radius 3?). You then give the NPC any equipment you want staged at the location like 2-3 days worth of food and water / sleeping bag / pot / fire drill. Construction is handled on assignment of the mission, not completion (it assumes the NPC heads straight there, probably beating you) which means you don’t have to return the mission before you depart for the hide site.

The long term plan is to use it as a forward staging point so that you can drop all your local loot in the improvised shelter, then when you get back to the camp you will be able to tell an NPC to get all items from the hide site. Being able to bounce off existing hide sites so that you can build new ones even further would be nice. No logpac’s or dedicated personnel so NPCs can only transport the lesser of (2/3) their max carry weight or (2/3) of their max volume + the volume of a simulated makeshift sling (they are on logistics, not combat, missions so they can holster weapons and carry a bag). That’s per trip transport capacity, it says in the trip info screen how many trips (it lists each way as one) they need to move all of the gear. You are paying kcal for companion time so being conservative with trips/gear/loot will be at the player’s discretion.

3 Likes

Is there any interaction at all with existing monsters? i.e. do dispached NPCs ever get in trouble when they’re out and about? Totally fine if not, we can add it later.

Approaching that point, just added tripoint vectors to store/save/load NPC destinations and patrol points during combat missions but I’m not sure if there is an easier way to generate overmap/submap tiles that the player has never visited so that NPCs would know what they should encounter. I have a way of doing it but its rather slow and if I have 5-6 NPCs all going to different corner of the OM it might become VERY noticeable generating all the new maps so that encounters can happen. I ran into the issue as I was…


Adding missions to construct OM scaling walls and barriers. There are a couple of constraints in that it only accepts walls that are a straight line since it is actually building the wall from the center of one OM tile to the next. Level 0 walls are just shallow pits but it is still nice to be able to have NPCs dig a trench on the outskirts of a city to use as a front so stage guards at or surround your fort. I had the above issue generating the wall through forests that I had never visited… since the first time I went to visit it was already a “picket wall” no trees generated in the wall OM. So I have to generate a forest in the OM then replace the forest with a wall (keeping all but the pits transparent to prevent writing over the treees).


I also went ahead and threw up a rather ugly UI to allow players to re-designate the auto sorting points for menial labor. You only have to designate the points once, then every time we add a “new” item group it’ll force you to re-designate or go to defaults to guarantee save compatibility.

Wanted to push everything I had out tonight due to moving locations tomorrow, PR on github has been updated (I haven’t gotten a chance to update the translation strings yet) so anyone who wants to can play with everything I’ve mentioned in the thread so far and give me feedback.

3 Likes

Gotta say, this is amazing. I’m so hyped for all this.

I’m having issues with a codeblocks win64 tiles+sound build, getting undefined references to everything even though all of the dependence are there, would anyone mind throwing me their build?

I’m excited to test!

Why is acidia so cool

Indeed. This functionality has been top of my want list by some margin for ages. Thanks acidia for tackling the NPC side of things, which doesnt look easy at all.
Because of this excitement, I too am itching to test this, I saw the latest commits - still doesnt compile on Visual Studio 2015.
I’m actually checking this thread every day to see if someone else has managed to compile it lol

I’ve compiled your factions branch on linux and have a few NPCs following me but i cant find anything related to the outpost things, is there something else im supposed to do?

Talk to the lowest level one (he’ll be less useful on missions) and in the options you’ll see, “start a camp here” or something along those lines.

I’m gonna remake it just to be sure i didnt build the wrong version, but i spoke to all of them and never had that option. will check again when its compiled

It’s about middle of the chat options, I don’t remember the exact wording but I’ve never had a problem with it showing up. The chat options aren’t saved (just the group title) so it won’t be a save compatibility option.

yeah i saw that in the GIF, i think i might have built the wrong version, pretty sure i have it now just need to compile again, my first build was giving me the same errors as dpwb

Error Log

src/mission_companion.cpp: In function ‘bool talk_function::outpost_missions(npc&, std::__cxx11::string, std::__cxx11::string)’:
src/mission_companion.cpp:340:13: error: cannot convert ‘std::__cxx11::basic_string’ to ‘const char*’ for argument ‘1’ to ‘const char* _(const char*)’
);
^
src/mission_companion.cpp: In function ‘std::__cxx11::string talk_function::om_upgrade_description(std::__cxx11::string)’:
src/mission_companion.cpp:2408:84: error: cannot convert ‘std::__cxx11::basic_string’ to ‘const char*’ for argument ‘1’ to ‘const char* _(const char*)’
“Time: “+ to_string( time_duration::from_turns( making->time / 100 ) )+”\n”);
^
src/mission_companion.cpp: In function ‘std::__cxx11::string talk_function::om_craft_description(std::__cxx11::string)’:
src/mission_companion.cpp:2433:85: error: cannot convert ‘std::__cxx11::basic_string’ to ‘const char*’ for argument ‘1’ to ‘const char* _(const char*)’
“\nTime: “+ to_string( time_duration::from_turns( making.time / 100 ) )+”\n”);
EDIT: The arrows were pointing at the ‘)’ next to the new line characters.

I’m not 100% certain whats preventing it, im still learning C++

I’ll give it a look when I get home, looks like a simple fix.

I think i might have fixed it, i removed a couple of _ and its not giving me the errors anymore… and i got it to compile and its working as intended :smiley:
EDIT, are the missions supposed to finish automatically or is it normal that I have to call them back when the job is finished (shows 4/3 hours on most jobs except log cutting.

So the jobs are about 50/50 split between missions that run on repeat (like gather as much firewood as you can) and fixed time missions (craft x). Just about all missions have a min time though, which means even if the firewood mission is repeated it will only be available to stop after x time. When you see 4/3 the time spent is 4 hours and the min time is 3 hours. Fixed time missions will say time left until it says [DONE]. Didn’t want to have to worry about all these people returning before you wanted because they deliver the things they produce to the player tile.

1 Like

I wasn’t getting the [DONE] for the upgrade camp, was that intended?

Probably just an oversight, it was one of the last things I was working on. I also updated the file with what I hope are the corrections needed to allow everyone not using code blocks to compile.

I managed to compile it fine with your changes without codeblocks so it should work for everyone else.