Cataclysm-dda: No way to recover faction camp after camp manager is dead

Created on 24 Aug 2018  路  3Comments  路  Source: CleverRaven/Cataclysm-DDA

Describe the bug
We have underlying infrastructure to mark a basecamp in src/basecamp.cpp.
But the currently implement use the NPC pointer to store Faction Camp info.
When the camp manager is dead, there is no way to recover the Faction Camp.

To Reproduce
Steps to reproduce the behavior:

  1. Make a camp
  2. Kill that camp manager.
  3. Enjoy the dead camp and lost all your companions who are doing missions.

Expected behavior

  1. Camp manager is dead.
  2. Talk to one of your minions.
  3. Setup the Camp via talk_function::become_overseer.
  4. Choose the old camp on the map.
  5. Old camp is reclaimed.

or

  1. Camp manager is dead.
  2. But we have a bulletin_board in the camp.
  3. iexamine::bulletin_board then choose a minion.
  4. Camp is reclaimed, the minion is now the new camp manager .

Screenshots

Versions and configuration(please complete the following information):

  • OS: Any
  • Game Version: master
  • Graphics version: Any
  • Mods loaded: Any

Additional context
the basecamp.cpp and basecamp.h is dead code, let it have some new use.

NPC / Factions Player Faction Base / Camp

Most helpful comment

Is a NPC base manager actually necessary component of the game? I keep thinking that the camp menu could be accessible from a bulletin board built in the camp and easily replaced.

All 3 comments

I think a new conversation option is probably easiest to code. Add a variant of become_overseer() that instead of quitting if the omt_ref.id() != "field", quits if !om_min_level( "faction_base_camp_1", omt_ref.id() ) and skips the field/water/swamp checks.

It should also be possible to recover the NPCs on missions - they're still in the companion_list() which is in the overmap buffer as far as I can tell.

Is a NPC base manager actually necessary component of the game? I keep thinking that the camp menu could be accessible from a bulletin board built in the camp and easily replaced.

Unfortunately, acidia didn't implement it that way. In the short term, I intend to work with the framework that exists before replacing more of it.

Medium term, I agree, faction camp data should be stored in the existing basecamp structure and accessed through a bulletin board that can be readily replaced should it get damaged.

Was this page helpful?
0 / 5 - 0 ratings