PTR Changelog 2017-06-19
-
This post describes changes on the Public Test Realm. The estimated launch date is June 26.
- Refactored creep damage and heal apply logic in a more consistent fashion. The main part of its logic can be found here:
- All incoming damage and heal is counted first, but not applied.
- Total heal and damage are applied to the creep's hits.
-
hits <= 0
andhits > maxHits
checks are made. - The creep’s body is recalculated, including
CARRY
capacity.
- Market order prices now can be set with 0.001 precision. However, all real credits transactions still work with 0.01 precision, i.e. when you execute a deal, the resulting transaction (
amount * price
) is rounded up. You cannot execute a deal for a total amount less than 0.01 credits, theGame.market.deal
method will returnERR_INVALID_ARGS
.
This means you can sell/buy energy for 0.001 per unit, but with amounts not less than 10 energy units per transaction.
- Refactored creep damage and heal apply logic in a more consistent fashion. The main part of its logic can be found here:
-
+1
-
could this change have introduced a bug where:
FIND_DROPPED_ENERGY constant is considered deprecated and will be removed soon. Please use FIND_DROPPED_RESOURCES instead.
is spammed even when that constant is not in use?
I have searched my code and FIND_DROPPED_ENERGY is not present, yet the warning is printed to the console on every tick in PTR
Thanks!
-
Yes, constants file wasn't updated on the PTR. Fixed.
-
Dear Artem,
There seems to be a minor but important error in your description of the MR.
Damage is applied first.
Heal is then applied whilst capping at maxHits.
This distinction is important because it means tough parts only apply for the first damage received each tick. With the case originally presented, 1 tough part would have a disproportionate value.
-
Market order prices now can be set with 0.001 precision
Time to change the prices on energy! This is good news. I like that deprecated methods are starting to get phased-out. The older code which is now removed could always is quite confusing for new players.
The damage aspect is an amazing change as well. No more tick-cheating by delaying intents one tick, and firing them ASAP the next to get a double hit off.
Atavus brings up a good point. If a creep has 3 dead catalyzed-TOUGH parts, and he heals, would the catalyzed-TOUGH be counted towards the damage done? Currently it does not. But I'd personally say it should.
-
@Dissi, according to the code implementation no. Damage is applied first. Just the description of the implementation in this post is inaccurate.
-
TOUGH parts don’t depend on the order here. They don’t use
object.hits
, onlybodyPart.hits
which is affected only byrecalcBody
function in the end after both damage and heal are already applied. Points 2 and 3 in this algorithm are basically one single point, the order doesn’t matter. Changed the description to remove the confusion.
-
Understood, thank you for clearing that up.
I think the key point to understand is the following:
The tough parts you have "alive" in a tick only count towards modifying damage up to their maximum absoption. In simple terms, tough parts only count once.
Which is how it should be.
-
Yes, this is how it works currently. One fully alive TOUGH part with 100 hits will absorb not more than 100*boost hits regardless of heal amount received on the tick.