Skip to content

Commit

Permalink
Jsonized map memory capacity multiplier
Browse files Browse the repository at this point in the history
  • Loading branch information
ZhilkinSerg committed Jul 12, 2019
1 parent bf89376 commit b3ef2a4
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 10 deletions.
2 changes: 2 additions & 0 deletions data/json/mutations/mutations.json
Original file line number Diff line number Diff line change
Expand Up @@ -328,6 +328,7 @@
"name": "Good Memory",
"points": 3,
"description": "You have an exceptional memory, and find it easy to remember things. Your skills will erode slightly slower than usual, and you can remember more terrain.",
"map_memory_capacity_multiplier": 2,
"starting_trait": true,
"valid": false,
"cancels": [ "FORGETFUL" ]
Expand Down Expand Up @@ -1018,6 +1019,7 @@
"points": -3,
"description": "You have a hard time remembering things. Your skills will erode slightly faster than usual, and you can remember less terrain.",
"social_modifiers": { "lie": -5 },
"map_memory_capacity_multiplier": 0.5,
"starting_trait": true,
"category": [ "BEAST", "MEDICAL", "CHIMERA", "MOUSE", "INSECT" ],
"cancels": [ "GOODMEMORY" ]
Expand Down
13 changes: 4 additions & 9 deletions src/avatar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,6 @@ static const trait_id trait_CHITIN2( "CHITIN2" );
static const trait_id trait_CHITIN3( "CHITIN3" );
static const trait_id trait_CHITIN_FUR3( "CHITIN_FUR3" );
static const trait_id trait_COMPOUND_EYES( "COMPOUND_EYES" );
static const trait_id trait_FORGETFUL( "FORGETFUL" );
static const trait_id trait_GOODMEMORY( "GOODMEMORY" );
static const trait_id trait_HYPEROPIC( "HYPEROPIC" );
static const trait_id trait_INSECT_ARMS( "INSECT_ARMS" );
static const trait_id trait_INSECT_ARMS_OK( "INSECT_ARMS_OK" );
Expand Down Expand Up @@ -378,15 +376,12 @@ size_t avatar::max_memorized_tiles() const
// Only check traits once a turn since this is called a huge number of times.
if( current_map_memory_turn != calendar::turn ) {
current_map_memory_turn = calendar::turn;
float map_memory_capacity_multiplier =
mutation_value( "map_memory_capacity_multiplier" );
if( has_active_bionic( bio_memory ) ) {
current_map_memory_capacity = SEEX * SEEY * 20000; // 5000 overmap tiles
} else if( has_trait( trait_FORGETFUL ) ) {
current_map_memory_capacity = SEEX * SEEY * 200; // 50 overmap tiles
} else if( has_trait( trait_GOODMEMORY ) ) {
current_map_memory_capacity = SEEX * SEEY * 800; // 200 overmap tiles
} else {
current_map_memory_capacity = SEEX * SEEY * 400; // 100 overmap tiles
map_memory_capacity_multiplier = 50;
}
current_map_memory_capacity = 2 * SEEX * 2 * SEEY * 100 * map_memory_capacity_multiplier;
}
return current_map_memory_capacity;
}
Expand Down
3 changes: 2 additions & 1 deletion src/character.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3136,7 +3136,8 @@ mutation_value_map = {
{ "hearing_modifier", calc_mutation_value_multiplicative<&mutation_branch::hearing_modifier> },
{ "noise_modifier", calc_mutation_value_multiplicative<&mutation_branch::noise_modifier> },
{ "overmap_sight", calc_mutation_value_multiplicative<&mutation_branch::overmap_sight> },
{ "overmap_multiplier", calc_mutation_value_multiplicative<&mutation_branch::overmap_multiplier> }
{ "overmap_multiplier", calc_mutation_value_multiplicative<&mutation_branch::overmap_multiplier> },
{ "map_memory_capacity_multiplier", calc_mutation_value_multiplicative<&mutation_branch::map_memory_capacity_multiplier> },
};

float Character::mutation_value( const std::string &val ) const
Expand Down
3 changes: 3 additions & 0 deletions src/mutation.h
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,9 @@ struct mutation_branch {
// Multiplier for sight range, defaulting to 1.
float overmap_multiplier = 1.0f;

// Multiplier for map memory capacity, defaulting to 1.
float map_memory_capacity_multiplier = 1.0f;

// Bonus or penalty to social checks (additive). 50 adds 50% to success, -25 subtracts 25%
social_modifiers social_mods;

Expand Down
1 change: 1 addition & 0 deletions src/mutation_data.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -350,6 +350,7 @@ void mutation_branch::load( JsonObject &jo, const std::string & )
optional( jo, was_loaded, "stamina_regen_modifier", stamina_regen_modifier, 0.0f );
optional( jo, was_loaded, "overmap_sight", overmap_sight, 0.0f );
optional( jo, was_loaded, "overmap_multiplier", overmap_multiplier, 1.0f );
optional( jo, was_loaded, "map_memory_capacity_multiplier", map_memory_capacity_multiplier, 1.0f );

optional( jo, was_loaded, "mana_modifier", mana_modifier, 0 );
optional( jo, was_loaded, "mana_multiplier", mana_multiplier, 1.0f );
Expand Down

0 comments on commit b3ef2a4

Please sign in to comment.