Skip to content

Commit

Permalink
Fix PartCapacity and HullStructure to return unscaled values if defau…
Browse files Browse the repository at this point in the history
  • Loading branch information
agrrr3 committed Feb 2, 2023
1 parent 42c2152 commit 509683a
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 10 deletions.
13 changes: 8 additions & 5 deletions universe/ShipHull.cpp
Expand Up @@ -259,11 +259,14 @@ void ShipHull::Init(std::vector<std::unique_ptr<Effect::EffectsGroup>>&& effects
m_effects.push_back(IncreaseMeter(MeterType::METER_MAX_FUEL, m_fuel));
if (default_stealth_effects && m_stealth != 0)
m_effects.push_back(IncreaseMeter(MeterType::METER_STEALTH, m_stealth));
if (default_structure_effects && m_structure != 0)
if (default_structure_effects && m_structure != 0) {
m_default_structure_effects = default_structure_effects;
m_effects.push_back(IncreaseMeter(MeterType::METER_MAX_STRUCTURE, m_structure, "RULE_SHIP_STRUCTURE_FACTOR"));
if (default_speed_effects && m_speed != 0)
}
if (default_speed_effects && m_speed != 0) {
m_default_speed_effects = default_speed_effects;
m_effects.push_back(IncreaseMeter(MeterType::METER_SPEED, m_speed, "RULE_SHIP_SPEED_FACTOR"));

}
if (m_production_cost)
m_production_cost->SetTopLevelContent(m_name);
if (m_production_time)
Expand All @@ -277,10 +280,10 @@ void ShipHull::Init(std::vector<std::unique_ptr<Effect::EffectsGroup>>&& effects
}

float ShipHull::Speed() const
{ return m_speed * GetGameRules().Get<double>("RULE_SHIP_SPEED_FACTOR"); }
{ return m_speed * (m_default_speed_effects ? GetGameRules().Get<double>("RULE_SHIP_SPEED_FACTOR") : 1.0f); }

float ShipHull::Structure() const
{ return m_structure * GetGameRules().Get<double>("RULE_SHIP_STRUCTURE_FACTOR"); }
{ return m_structure * (m_default_structure_effects ? GetGameRules().Get<double>("RULE_SHIP_STRUCTURE_FACTOR") : 1.0f); }

uint32_t ShipHull::NumSlots(ShipSlotType slot_type) const noexcept {
uint32_t count = 0;
Expand Down
6 changes: 5 additions & 1 deletion universe/ShipHull.h
Expand Up @@ -161,10 +161,13 @@ class FO_COMMON_API ShipHull {
float m_fuel = 0.0f;
float m_stealth = 0.0f;
float m_structure = 0.0f;
bool m_default_speed_effects = false;
bool m_default_structure_effects = false;

bool m_producible = false;
std::unique_ptr<ValueRef::ValueRef<double>> m_production_cost;
std::unique_ptr<ValueRef::ValueRef<int>> m_production_time;
bool m_producible = false;

std::vector<Slot> m_slots;
const std::string m_tags_concatenated;
const std::vector<std::string_view> m_tags;
Expand All @@ -175,6 +178,7 @@ class FO_COMMON_API ShipHull {
std::vector<std::shared_ptr<Effect::EffectsGroup>> m_effects;
std::string m_graphic;
std::string m_icon;

};


Expand Down
8 changes: 4 additions & 4 deletions universe/ShipPart.cpp
Expand Up @@ -408,14 +408,14 @@ bool ShipPart::operator==(const ShipPart& rhs) const {
float ShipPart::Capacity() const {
switch (m_class) {
case ShipPartClass::PC_ARMOUR:
return m_capacity * GetGameRules().Get<double>("RULE_SHIP_STRUCTURE_FACTOR");
return m_capacity * (m_add_standard_capacity_effect ? GetGameRules().Get<double>("RULE_SHIP_STRUCTURE_FACTOR") : 1.0f);
break;
case ShipPartClass::PC_DIRECT_WEAPON:
case ShipPartClass::PC_SHIELD:
return m_capacity * GetGameRules().Get<double>("RULE_SHIP_WEAPON_DAMAGE_FACTOR");
return m_capacity * (m_add_standard_capacity_effect ? GetGameRules().Get<double>("RULE_SHIP_WEAPON_DAMAGE_FACTOR") : 1.0f);
break;
case ShipPartClass::PC_SPEED:
return m_capacity * GetGameRules().Get<double>("RULE_SHIP_SPEED_FACTOR");
return m_capacity * (m_add_standard_capacity_effect ? GetGameRules().Get<double>("RULE_SHIP_SPEED_FACTOR") : 1.0f);
break;
default:
return m_capacity;
Expand All @@ -425,7 +425,7 @@ float ShipPart::Capacity() const {
float ShipPart::SecondaryStat() const {
switch (m_class) {
case ShipPartClass::PC_FIGHTER_HANGAR:
return m_secondary_stat * GetGameRules().Get<double>("RULE_FIGHTER_DAMAGE_FACTOR");
return m_secondary_stat * (m_add_standard_capacity_effect ? GetGameRules().Get<double>("RULE_FIGHTER_DAMAGE_FACTOR") : 1.0f);
break;
default:
return m_secondary_stat;
Expand Down

0 comments on commit 509683a

Please sign in to comment.