MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / sum

Method sum

source/game/StarTileDamage.cpp:110–134  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

108}
109
110TileDamageParameters TileDamageParameters::sum(TileDamageParameters const& other) const {
111 TileDamageParameters result;
112
113 result.m_damageRecoveryPerSecond = m_damageRecoveryPerSecond + other.m_damageRecoveryPerSecond;
114 result.m_totalHealth = m_totalHealth + other.m_totalHealth;
115
116 result.m_requiredHarvestLevel = max(m_requiredHarvestLevel, other.m_requiredHarvestLevel);
117 result.m_maximumEffectTime = max(m_maximumEffectTime, other.m_maximumEffectTime);
118
119 for (auto key : m_damages.keys()) {
120 if (other.m_damages.contains(key))
121 result.m_damages[key] = result.m_totalHealth / ((m_totalHealth / m_damages.value(key, 0)) + (other.m_totalHealth / other.m_damages.value(key, 0)));
122 else
123 result.m_damages[key] = m_damages.value(key, 0);
124 }
125
126 for (auto key : m_damages.keys()) {
127 if (m_damages.contains(key))
128 result.m_damages[key] = result.m_totalHealth / ((m_totalHealth / m_damages.value(key, 0)) + (other.m_totalHealth / other.m_damages.value(key, 0)));
129 else
130 result.m_damages[key] = other.m_damages.value(key, 0);
131 }
132
133 return result;
134}
135
136Json TileDamageParameters::toJson() const {
137 return JsonObject{

Callers 5

damageSourcesMethod · 0.45
buildLayerMethod · 0.45
tileDamageParametersFunction · 0.45
lightLevelFunction · 0.45
updateDamagedBlocksMethod · 0.45

Calls 3

keysMethod · 0.45
containsMethod · 0.45
valueMethod · 0.45

Tested by

no test coverage detected