Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Character's notebook [feature] [request for comments] #40395

Closed
matt32106 opened this issue May 9, 2020 · 10 comments
Closed

Character's notebook [feature] [request for comments] #40395

matt32106 opened this issue May 9, 2020 · 10 comments
Labels
<Enhancement / Feature> New features, or enhancements on existing stale Closed for lack of activity, but still valid. <Suggestion / Discussion> Talk it out before implementing

Comments

@matt32106
Copy link
Contributor

I like this feature but unfortunately I don't know enough of the game to write it myself. So, I have noted down here how I think this feature could be implemented without disturbing players who don't want to use it while also opening the way to different ways to use the new feature. If you like this, please vote for it and if you have comments, improvements please contribute. If a dev is ready to make the c++ part I volunteer for testing of course.

Describe the solution you'd like

Add the capability for the character to use a notebook for registering notes in-game. Example of (future) uses:

  • RPG oriented players can record their adventures during the game
  • This kind of book could be made a requirement of advanced research (capping your skill if you lose your notes for instance)
  • Players can take notes on quests, list of things to do...
  • The logbook can be found by a succeeding character when a new game is started in the same world
  • The best logbooks could be published somewhere someday
  • Character logbooks could be uploaded and later found as survivor books items in other players games

Proposed implementation

The text below is focused on the first usage of the list above.

Rules

The content of a char_notebook will be saved in a file that will NOT be deleted if the character dies even if his save is removed. This is for RPG oriented players who want to publish/keep their stories.

Items & recipes

Add a "char_notebook" recipe and item (see below).
Add a "makeshift_pen" recipe and item (see below).

UI

Add a line at the end of the sleep ($) menu "Add an entry in my logbook"
- Check if character has a pen or makeshift_pen and a "char_notebook"
- if N, "you need a notebook and some kind of pen", exit
- Go to edit_my_logbook
- After exiting edit_my_logbook show again the sleep menu

Activating the "char_notebook" object will also call edit_my_logbook

Reading the "char_notebook" displays the content of the "char_notebook"

LOGIC

edit_my_logbook
- opens a subwindow where the player can enter free text (I think I read somewhere that some computers allowed this kind of thing) -> txt
- the program uses the current day string displayed in the UI -> dat
- the program appends dat + txt in the existing char notebook file (or creates it if it does not exist yet) and saves it

VARIANTS

The char_notebook could probably be also made within a smartphone or computer. I have no in-game knowledge of these objects yet so I cannot elaborate but the dev should take this into account.

CODE SAMPLES (json only sorry)

json/recipes/recipe_others.json

{
   "type": "recipe",
   "result": "char_notebook",
   "category": "CC_OTHER",
   "subcategory": "CSC_OTHER_TOOLS",
   "skill_used": "fabrication",
   "difficulty": 1,
   "time": "10 m",
   "using": [ [ "sewing_standard", 5 ] ],
   "reversible": true,
   "autolearn": true,
   "components": [ [ [ "paper", 10 ] ] ]
 },
 {
   "type": "recipe",
   "result": "makeshift_pen",
   "category": "CC_OTHER",
   "subcategory": "CSC_OTHER_TOOLS",
   "skill_used": "fabrication",
   "difficulty": 1,
   "time": "10 m",
   "reversible": true,
   "autolearn": true,
   "components": [ [ [ "charcoal", 1 ] ] , [ [ "splinter", 1 ] ], [ [ "thread", 1 ] ] ]
 }

json/items/book/misc.json

  {
    "id": "char_notebook",
    "type": "BOOK",
    "name": { "str": "My notebook"},
    "description": "This is a notebook I made to record various things, maybe I'll document the end of my life here...",
    "weight": "227 g",
    "volume": "1 L",
    "price": 1,
    "price_postapoc": 1,
    "material": [ "paper" ],
    "symbol": "?",
    "color": "light_blue",
    "intelligence": 4,
    "time": "5 m",
    "chapters": 10,
    "fun": -2
  },

json/items/tool/stationery.json

{
   "id": "makeshift_pen",
   "type": "GENERIC",
   "name": { "str": "makeshift pen"},
   "description": "A crude pen made with a bit of charcoal attached to a piece of wood.",
   "weight": "10 g",
   "volume": "10 ml",
   "price": 1,
   "price_postapoc": 1,
   "material": "wood",
   "symbol": "!",
   "color": "light_gray"
 }
@CrankyUnicorn
Copy link

A diary would be cool specially if you could point locations as links to the map

@CoroNaut
Copy link

This made me think of a story log similar to the regular game logs but records the adventures and encounters. Also, a diary may be a place to put all those newspapers and scientific notes to make sense of them all and so you don't gotta carry them back to base. :D

@ZhilkinSerg
Copy link
Contributor

Related to #39526

@jbytheway
Copy link
Contributor

There does exist the memorial log already, which most people don't know about (look in the memorial directory in your CDDA directory). I'm working slowly towards improving that, and making something analogous available in-game.

@Night-Pryanik Night-Pryanik added <Enhancement / Feature> New features, or enhancements on existing <Suggestion / Discussion> Talk it out before implementing labels May 11, 2020
@matt32106
Copy link
Contributor Author

@jbytheway I have no 'memorial' directory in my CDDA dir, am I supposed to have one before my character dying? And does it contain data provided by the player which is the point of this feature?

@jbytheway
Copy link
Contributor

@jbytheway I have no 'memorial' directory in my CDDA dir, am I supposed to have one before my character dying?

It should be in the same place as your savegames, wherever that is. I believe it won't exist until you've had a character die.

And does it contain data provided by the player which is the point of this feature?

A little bit; it contains the last words you provide upon death. But mostly no. I mentioned it mostly in response to @CoroNaut's comment about a story log. I agree that adding more player-provided notes would be a good thing to consider.

@matt32106
Copy link
Contributor Author

matt32106 commented May 11, 2020

If the information in stored in the memorial file when the character dies, do you know where it is stored in the meantime and what is the content (only zombies killed or more data)? I don't want to imply that this can replace user provided text but maybe the first can help the second ("forgot to mention how I trashed this shocker zombie with a single arrow in the head from the roof of the book store"...)

@jbytheway
Copy link
Contributor

jbytheway commented May 11, 2020

It's in save/$world/*.log (where $world is your world name). You can also see the code that generates these messages to see all the things that can currently be written there (spoiler warning for some obscure game content).

@stale
Copy link

stale bot commented Jun 10, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Please do not 'bump' or comment on this issue unless you are actively working on it. Stale issues, and stale issues that are closed are still considered.

@stale stale bot added the stale Closed for lack of activity, but still valid. label Jun 10, 2020
@stale
Copy link

stale bot commented Jul 11, 2020

This issue has been automatically closed due to lack of activity. This does not mean that we do not value the issue. Feel free to request that it be re-opened if you are going to actively work on it

@stale stale bot closed this as completed Jul 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
<Enhancement / Feature> New features, or enhancements on existing stale Closed for lack of activity, but still valid. <Suggestion / Discussion> Talk it out before implementing
Projects
None yet
Development

No branches or pull requests

6 participants