Hey everyone, after a bit longer of a wait that I initially planned, Shattered Pixel Dungeon v2.5.0 is now ready for beta! In this post I’m going to share some more of the new things coming in this update!

Read the Full Post Here

    • CrayonRosary@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      3 months ago

      Does salt cube completely invalidate chalice of blood?

      Patch notes say:

      The salt cube extends the duration that food keeps you full, but also reduces HP regeneration.

      How would that invalidate Chalice? Chalice provides its own separate healing so long as you’re not starving. Salt Cube lowers the natural healing you get from being fed, but makes satiety drop slower. This makes Chalice much better because you get it’s extra healing for a longer period of time without needing as much food.

      • Mr. Semi@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        3 months ago

        Chalice does NOT provide its own separate healing, except under artifact recharging buff.

        What it does is reduce the interval between natural regeneration that occurs when not starving.

        The salt cube acts in the opposite manner, increasing the delay or eliminating it entirely. Unless there’s new code to change the function of the chalice of blood, the artifact and trinket act in opposition to each other, and the question is if one overrides the other.

        Here’s the relevant code for how health passive non-starving regeneration works:

        private static final float
        REGENERATION_DELAY = 10;
        
        @Override
        public boolean act() {
        	if (target.isAlive()) {
        
        		if (target.HP < regencap() && !((Hero)target).isStarving()) {
        			if (regenOn()) {
        				target.HP += 1;
        

        Further down is where the chalice takes effect:

        ChaliceOfBlood.chaliceRegen regenBuff = Dungeon.hero.buff( ChaliceOfBlood.chaliceRegen.class);
        
        		float delay = REGENERATION_DELAY;
        		if (regenBuff != null && target.buff(MagicImmune.class) == null) {
        			if (regenBuff.isCursed()) {
        				delay *= 1.5f;
        			} else {
        				//15% boost at +0, scaling to a 500% boost at +10
        				delay -= 1.33f + regenBuff.itemLevel()*0.667f;
        

        You can see the chalice just modifies the passive regen delay directly. The code for extra healing from recharging is separate.