The faction camp and companion mission code has a host of issues. I'm opening this issue as a tracker.
JSON issues
Mission descriptions should move to JSON
Danger/random encounter descriptions should move to JSON
The Tacoma Commune east field farming missions aren't companion missions and should move into dialogue. They can be entirely implemented in dialogue now.
faction camps shouldn't have a parallel set of crafting recipes. Select crafting recipes should be marked as craftable in faction camps. Fixed in #30508
Code reuse
There needs to be one calculation of a companion or threat's offense and defense values.
Hunting, patrolling, raiding, and escorting caravans all need to use the same code to resolve off-screen combat.
Foraging, patrolling, and raiding all need to use the same code to get results for faction camps and companion missions.
faction camp crafting needs to use the same batch calculation time as the rest of CDDA Fixed in #30508
upgrade/crafting times are calculated by hand, and will get out of sync with CDDA as CDDA recipes change. Fixed in #31209 for non-primitive basecamps.
Code quality
A lot of the code is very oddly coded or outside standard-ish CDDA idiom. Pretty much fixed.
Faction camp and base camp integration (see #26358)
Faction camp upgrade status is tracked by changing overmap tile ids. This is bad and needs to get changed fixed but these bugs remain: since it means the vehicles can't be on a camp tile when the camp gets upgraded, and that players can deconstruct buildings to get the resources to upgrade and have the buildings be replaced. Fixed by #29523
Faction camps should store all their status in the existing base_camp structure. Fixed
ter_set/furn_set should register the creation/destruction of terrain and furniture with the local faction camp, and then the faction camp should check what actual resources are available to determine what upgrades/crafting options are available.
The camp manager NPC is redundant, and should be replaced by dialogue options to tell people what to do and/or a bulletin board to recover NPC allies. Fixed.
Problem
The faction camp and companion mission code has a host of issues. I'm opening this issue as a tracker.
JSON issues
faction camps shouldn't have a parallel set of crafting recipes. Select crafting recipes should be marked as craftable in faction camps.Fixed in #30508Code reuse
faction camp crafting needs to use the same batch calculation time as the rest of CDDAFixed in #30508upgrade/crafting times are calculated by hand, and will get out of sync with CDDA as CDDA recipes change.Fixed in #31209 for non-primitive basecamps.Code quality
A lot of the code is very oddly coded or outside standard-ish CDDA idiom.Pretty much fixed.Faction camp and base camp integration (see #26358)
Faction camp upgrade status is tracked by changing overmap tile ids. This is bad and needs to get changed fixed but these bugs remain: since it means the vehicles can't be on a camp tile when the camp gets upgraded, and that players can deconstruct buildings to get the resources to upgrade and have the buildings be replaced.Fixed by #29523Faction camps should store all their status in the existing base_camp structure.FixedThe camp manager NPC is redundant, and should be replaced by dialogue options to tell people what to do and/or a bulletin board to recover NPC allies.Fixed.Other issues
As I think of them.