Changelog 2017-09-19


  • Dev Team



  • Changelog 2017-09-19:

    • While the controller is downgrading, it doesn’t upgrade its level even when it has enough progress (progress is not lost, but accumulated without triggering the level up).

    I don't understand this. ??



  • @daffie I have the same problem with ambiguity in the docs as well.

    http://docs.screeps.com/api/#StructureController.upgradeBlocked states the controller cannot be upgraded. But I believe(tm) this means a creep can still apply .upgradeController(). a) for the new effects against ticksToDowngrade, and b) to still increment the controller.progress

    The changes mean controller.progress() still increments, but won't LEVEL UP while upgradeBlocked is in place. (eg from RC7 to RC8 )

    The ambiguity in functions such as creep.upgradeController() and use of "cannot be upgraded" causes confusion.


  • Dev Team

    @mashee

    http://docs.screeps.com/api/#StructureController.upgradeBlocked states the controller cannot be upgraded. But I believe(tm) this means a creep can still apply .upgradeController(). a) for the new effects against ticksToDowngrade, and b) to still increment the controller.progress

    When upgradeBlocked is active, upgradeController can't be called at all, it will return ERR_INVALID_TARGET.

    The changelog is now rephrased to:

    • While the controller is downgrading, new level cannot be triggered even when the controller has enough progress (progress is not lost but accumulated).


  • @artch

    When upgradeBlocked is active, upgradeController can't be called at all, it will return ERR_INVALID_TARGET.

    This leads me to believe that while upgradeBlocked is active you can not increase the progress.

    • While the controller is downgrading, new level cannot be triggered even when the controller has enough progress (progress is not lost but accumulated).

    But this makes it sound like progress could still be accumulated.

    Is it worded this way to say that attackController does not remove any progress, but also blocks the RCL change if the upgradeController preformed on the same tick as attackController would have triggered it?

    Also, some more general questions that are not very clear in the documentation, what happens to the progress level after a controller downgrades, is it set back down to 0?

    Upgrading the controller raises its ticksToDowngrade timer by 100. The timer must be full in order for controller to be levelled up.

    Does this mean that while the timer is not full upgradeController actions are applied to both the controller's progress and 'ticksToDowngrade'? If so, is the 'ticksToDowngrade' increased by 100 per creep preforming upgradeController or does it scale with WORK body parts or the progress points that would be added (boost vs non-boost)?


  • Dev Team

    @sonoftheflame said in Changelog 2017-09-19:

    This leads me to believe that while upgradeBlocked is active you can not increase the progress.

    This is correct.

    But this makes it sound like progress could still be accumulated.

    No, since this is about "controller is downgrading", which is about ticksToDowngrade rather than upgradeBlocked.

    Is it worded this way to say that attackController does not remove any progress, but also blocks the RCL change if the upgradeController preformed on the same tick as attackController would have triggered it?

    I don't understand your question here. attackController doesn't remove any progress for sure, it decreases ticksToDowngrade.

    Also, some more general questions that are not very clear in the documentation, what happens to the progress level after a controller downgrades, is it set back down to 0?

    It remains, but loses 10% of the current level progress.

    Does this mean that while the timer is not full upgradeController actions are applied to both the controller's progress and 'ticksToDowngrade'?

    This is correct.

    If so, is the 'ticksToDowngrade' increased by 100 per creep preforming upgradeController or does it scale with WORK body parts or the progress points that would be added (boost vs non-boost)?

    I've already answered to this question above. 100 ticks to ticksToDowngrade is per tick globally, regardless of creeps and their parts. Progress is per each WORK part as usual.


  • fsoc

    @artch said in Changelog 2017-09-19:

    It remains, but loses 10% of the current level progress.

    Does this mean that while the timer is not full upgradeController actions are applied to both the controller's progress and 'ticksToDowngrade'?

    This is what is confusing people.

    So if a RCL is level 6 and downgrades to RCl 5, it loses 10%. If that 10% lost is still above the RCL energy requirement to level to lv 6 from level 5, it will remain at level 5 because it is still frozen by upgradeBlocked?


  • Dev Team

    @shylo132 Either frozen by upgradeBlocked or the controller is downgraded for 5000 ticks or more. Either way, the level up will happen only when any creep performs upgradeController action, not automatically just because it has enough progress.


  • fsoc

    @artch Got it. Thanks!



  • i just noticed that documentation at http://docs.screeps.com/api/#Creep still has outdated description of CLAIM part.

    Also, what is the best way to report documentation errors? I've created an issue in github about other thing, but it seems that nobody noticed for a week now (https://github.com/screeps/docs/issues/72)