Skip to content

Commit

Permalink
MenuCharacter: Reorder resource stat steal (and resist)
Browse files Browse the repository at this point in the history
Resource steal stats (including HP/MP) have been moved to the Offensive
Stats category. Likewise, the resistances to resource stealing are shown
in the Defensive Stats category.

Lastly, this commit makes all resource stats visible by default in the
character menu. This way, modders don't need to explicitly make them
visible.
  • Loading branch information
dorkster committed Dec 28, 2024
1 parent 401482c commit 130ccb7
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 22 deletions.
48 changes: 29 additions & 19 deletions src/MenuCharacter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -82,13 +82,14 @@ MenuCharacter::MenuCharacter()
}

show_stat.resize(Stats::COUNT + eset->damage_types.count + eset->elements.list.size() + eset->resource_stats.stat_count);
for (size_t i = 0; i < Stats::COUNT + eset->damage_types.count + eset->elements.list.size(); i++) {
show_stat[i] = true;
}

// some stats are hidden by default
for (int i = Stats::RESIST_DAMAGE_OVER_TIME; i < Stats::COUNT; ++i) {
show_stat[i] = false;
for (size_t i = 0; i < show_stat.size(); i++) {
if (i >= Stats::RESIST_DAMAGE_OVER_TIME && i < Stats::COUNT) {
// some stats are hidden by default
show_stat[i] = false;
}
else {
show_stat[i] = true;
}
}

// Upgrade buttons
Expand Down Expand Up @@ -368,6 +369,16 @@ void MenuCharacter::refreshStats() {
stat_index++;
}

// insert resource stealing stats after HP/MP steal
for (size_t j = 0; j < eset->resource_stats.list.size(); ++j) {
if (show_stat[resource_offset_index + (j * EngineSettings::ResourceStats::STAT_COUNT) + EngineSettings::ResourceStats::STAT_STEAL]) {
ss.str("");
ss << " " << eset->resource_stats.list[j].text[EngineSettings::ResourceStats::STAT_STEAL] << ": " << Utils::floatToString(pc->stats.getResourceStat(j, EngineSettings::ResourceStats::STAT_STEAL), eset->number_format.character_menu) << "%";
statList->set(stat_index, ss.str(), resourceStatTooltip(j, EngineSettings::ResourceStats::STAT_STEAL));
stat_index++;
}
}

ss.str("");
ss << msg->get("Defensive Stats");
statList->set(stat_index, ss.str(), "");
Expand Down Expand Up @@ -407,6 +418,17 @@ void MenuCharacter::refreshStats() {
}
}

// insert resource stealing stats after HP/MP steal
for (size_t j = 0; j < eset->resource_stats.list.size(); ++j) {
if (show_stat[resource_offset_index + (j * EngineSettings::ResourceStats::STAT_COUNT) + EngineSettings::ResourceStats::STAT_RESIST_STEAL]) {
ss.str("");
ss << " " << eset->resource_stats.list[j].text[EngineSettings::ResourceStats::STAT_RESIST_STEAL] << ": " << Utils::floatToString(pc->stats.getResourceStat(j, EngineSettings::ResourceStats::STAT_RESIST_STEAL), eset->number_format.character_menu) << "%";
statList->set(stat_index, ss.str(), resourceStatTooltip(j, EngineSettings::ResourceStats::STAT_RESIST_STEAL));
stat_index++;
}
}


ss.str("");
ss << msg->get("Miscellaneous Stats");
statList->set(stat_index, ss.str(), "");
Expand All @@ -426,18 +448,6 @@ void MenuCharacter::refreshStats() {
stat_index++;
}

// insert resource stealing stats after HP/MP steal
for (size_t j = 0; j < eset->resource_stats.list.size(); ++j) {
for (size_t k = EngineSettings::ResourceStats::STAT_STEAL; k < EngineSettings::ResourceStats::STAT_COUNT; ++k) {
if (show_stat[resource_offset_index + (j * EngineSettings::ResourceStats::STAT_COUNT) + k]) {
ss.str("");
ss << " " << eset->resource_stats.list[j].text[k] << ": " << Utils::floatToString(pc->stats.getResourceStat(j, k), eset->number_format.character_menu) << "%";
statList->set(stat_index, ss.str(), resourceStatTooltip(j, k));
stat_index++;
}
}
}

// update tool tips
cstat[CSTAT_NAME].tip.clear();
cstat[CSTAT_NAME].tip.addText(pc->stats.name);
Expand Down
4 changes: 2 additions & 2 deletions src/Stats.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -151,14 +151,14 @@ namespace Stats {
NAME[HP_STEAL] = msg->get("HP Steal");
DESC[HP_STEAL] = msg->get("Percentage of HP stolen per hit.");
PERCENT[HP_STEAL] = true;
CATEGORY[HP_STEAL] = CATEGORY_MISC;
CATEGORY[HP_STEAL] = CATEGORY_OFFENSE;

// @TYPE mp_steal|Percentage of MP stolen when damaging a target
KEY[MP_STEAL] = "mp_steal";
NAME[MP_STEAL] = msg->get("MP Steal");
DESC[MP_STEAL] = msg->get("Percentage of MP stolen per hit.");
PERCENT[MP_STEAL] = true;
CATEGORY[MP_STEAL] = CATEGORY_MISC;
CATEGORY[MP_STEAL] = CATEGORY_OFFENSE;

// @TYPE resist_damage_over_time|Percentage chance that damage-over-time effects will be negated
KEY[RESIST_DAMAGE_OVER_TIME] = "resist_damage_over_time";
Expand Down
2 changes: 1 addition & 1 deletion src/Version.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ FLARE. If not, see http://www.gnu.org/licenses/

#include <SDL.h>

Version VersionInfo::ENGINE(1, 14, 78);
Version VersionInfo::ENGINE(1, 14, 79);
Version VersionInfo::MIN(0, 0, 0);
Version VersionInfo::MAX(USHRT_MAX, USHRT_MAX, USHRT_MAX);

Expand Down

0 comments on commit 130ccb7

Please sign in to comment.