v3.2.0: sacrificial fire now applies exactly as a char moves onto it

This commit is contained in:
Evan Debenham
2025-07-30 13:57:10 -04:00
parent 4bbd803d8b
commit 7df01e672c

View File

@@ -29,6 +29,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Statistics;
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.SacrificialFire;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.SmokeScreen;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Web;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.WellWater;
@@ -61,7 +62,9 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Piranha;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.YogFist;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Blacksmith;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Sheep;
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.FlowParticle;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.SacrificialParticle;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.WindParticle;
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
import com.shatteredpixel.shatteredpixeldungeon.items.Heap;
@@ -1119,6 +1122,13 @@ public abstract class Level implements Bundlable {
Web.affectChar( ch );
}
if (Blob.volumeAt(ch.pos, SacrificialFire.class) > 0 && ch.buff( SacrificialFire.Marked.class ) == null){
if (Dungeon.level.heroFOV[ch.pos]) {
CellEmitter.get(ch.pos).burst( SacrificialParticle.FACTORY, 5 );
}
Buff.prolong( ch, SacrificialFire.Marked.class, SacrificialFire.Marked.DURATION );
}
if (!ch.flying){
//we call act here instead of detach in case the debuffs haven't managed to deal dmg once yet