Skip to content

.Run logs would be better! enhancement label #5

@Eneitilyn

Description

@Eneitilyn

Most of the Logging algorithm is kind of redundant with the Run History to be honest! I propose a new way to verbose Log information inside the Already present .run files of the game. Wouldn't this be more practical to load save files and make extra entries inside the .run files in order to store your Card choices/relics/paths/events and even Shop and Ancient Rewards are reflected inside of these .run files everything except Pathing is inside .save file I think 🤔 💬

"map_point_history": [
[
{
"map_point_type": "ancient",
"player_stats": [
{
"ancient_choice": [
{
"TextKey": "LEAD_PAPERWEIGHT",
"title": {
"key": "LEAD_PAPERWEIGHT.title",
"table": "relics"
},
"was_chosen": true
},
{
"TextKey": "NUTRITIOUS_OYSTER",
"title": {
"key": "NUTRITIOUS_OYSTER.title",
"table": "relics"
},
"was_chosen": false
},
{
"TextKey": "SCROLL_BOXES",
"title": {
"key": "SCROLL_BOXES.title",
"table": "relics"
},
"was_chosen": false
}
],
"card_choices": [
{
"card": {
"id": "CARD.THINKING_AHEAD"
},
"was_picked": false
}
],
"cards_gained": [
{
"id": "CARD.THE_BOMB"
}
],
"current_gold": 99,
"current_hp": 60,
"damage_taken": 0,
"event_choices": [
{
"title": {
"key": "LEAD_PAPERWEIGHT.title",
"table": "relics"
}
}
],
"gold_gained": 0,
"gold_lost": 0,
"gold_spent": 0,
"gold_stolen": 0,
"hp_healed": 60,
"max_hp": 75,
"max_hp_gained": 0,
"max_hp_lost": 0,
"player_id": 1,
"relic_choices": [
{
"choice": "RELIC.LEAD_PAPERWEIGHT",
"was_picked": true
}
]
}
],
"rooms": [
{
"model_id": "EVENT.NEOW",
"room_type": "event",
"turns_taken": 0
}
]
}

As for the recorded Card plays! You can add a extra field to the .run file

rooms": [
{
"model_id": "ENCOUNTER.SEAPUNK_WEAK",
"monster_ids": [
"MONSTER.SEAPUNK"
],
"room_type": "monster",
"turns_taken": 4
~~you add extra field here with Card Log information per turn which can only be read by the mod and is ignored by the game it could be like a serial number for each Card played heck it could literally be the Commands inside a Paragraph of "{" and "}" in here each time 1 is read the card is played and each time 0 is read the card is skipped this would make it as simple as for loop through the entire array to play the hand! the zeroes and ones are as big as the hand size(not sure how to handle card draw,discard)
{1=01011,2=011001,3=11001,4=11000}
}
]
}
<\code>

Most events are logged loosely here too!! This is the Chosen cheese Event inside .run file

map_point_type": "unknown",
"player_stats": [
{
"current_gold": 108,
"current_hp": 43,
"damage_taken": 14,
"event_choices": [
{
"title": {
"key": "ROOM_FULL_OF_CHEESE.pages.INITIAL.options.SEARCH.title",
"table": "events"
}
}
],
"gold_gained": 0,
"gold_lost": 0,
"gold_spent": 0,
"gold_stolen": 0,
"hp_healed": 0,
"max_hp": 75,
"max_hp_gained": 0,
"max_hp_lost": 0,
"player_id": 1,
"relic_choices": [
{
"choice": "RELIC.CHOSEN_CHEESE",
"was_picked": true
}
]
}
],
"rooms": [
{
"model_id": "EVENT.ROOM_FULL_OF_CHEESE",
"room_type": "event",
"turns_taken": 0
}
]
}

This is a field for a Shop

"rooms": [
{
"room_type": "shop",
"turns_taken": 0
}
]
},
{
"map_point_type": "monster",
"player_stats": [
{
"card_choices": [
{
"card": {
"floor_added_to_deck": 6,
"id": "CARD.BULWARK"
},
"was_picked": true
},
{
"card": {
"id": "CARD.GUIDING_STAR"
},
"was_picked": false
},
{
"card": {
"id": "CARD.COLLISION_COURSE"
},
"was_picked": false
}
],
"cards_gained": [
{
"id": "CARD.BULWARK"
}
],
"current_gold": 44,
"current_hp": 31,
"damage_taken": 13,
"gold_gained": 11,
"gold_lost": 0,
"gold_spent": 0,
"gold_stolen": 0,
"hp_healed": 1,
"max_hp": 76,
"max_hp_gained": 1,
"max_hp_lost": 0,
"player_id": 1,
"potion_choices": [
{
"choice": "POTION.VULNERABLE_POTION",
"was_picked": true
}
]
}
]

This is Ancient's field

"map_point_type": "ancient",
"player_stats": [
{
"ancient_choice": [
{
"TextKey": "YUMMY_COOKIE",
"title": {
"key": "YUMMY_COOKIE.title",
"table": "relics"
},
"was_chosen": false
},
{
"TextKey": "TOASTY_MITTENS",
"title": {
"key": "TOASTY_MITTENS.title",
"table": "relics"
},
"was_chosen": false
},
{
"TextKey": "GOLDEN_COMPASS",
"title": {
"key": "GOLDEN_COMPASS.title",
"table": "relics"
},
"was_chosen": true
}
],
"current_gold": 87,
"current_hp": 64,
"damage_taken": 0,
"event_choices": [
{
"title": {
"key": "GOLDEN_COMPASS.title",
"table": "relics"
}
}
],
"gold_gained": 0,
"gold_lost": 0,
"gold_spent": 0,
"gold_stolen": 0,
"hp_healed": 61,
"max_hp": 80,
"max_hp_gained": 0,
"max_hp_lost": 0,
"player_id": 1,
"relic_choices": [
{
"choice": "RELIC.GOLDEN_COMPASS",
"was_picked": true
}
]
}
],
"rooms": [
{
"model_id": "EVENT.TEZCATARA",
"room_type": "event",
"turns_taken": 0
}
]
}

Etc it goes on. I know keeping it simple is easier but I wish the mod could make use of the game files

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions