From 90923af5cef0c581c21638be345503588073c81f Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sat, 25 Oct 2025 14:40:14 -0400 Subject: [PATCH] v3.3.0: hostile champions now gets slightly harsher as depth increases --- core/src/main/assets/messages/misc/misc.properties | 2 +- .../com/shatteredpixel/shatteredpixeldungeon/Dungeon.java | 4 ++-- .../shatteredpixeldungeon/actors/buffs/ChampionEnemy.java | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/core/src/main/assets/messages/misc/misc.properties b/core/src/main/assets/messages/misc/misc.properties index 5e07392b8..3f20567bb 100644 --- a/core/src/main/assets/messages/misc/misc.properties +++ b/core/src/main/assets/messages/misc/misc.properties @@ -226,7 +226,7 @@ challenges.darkness_desc=It is a dungeon after all!\n\n- Regular visible distanc challenges.no_scrolls=Forbidden runes challenges.no_scrolls_desc=A certain rune is harder to find. Unfortunately, it's always the most useful one.\n\n- Half of the dungeon's upgrade scrolls are removed challenges.champion_enemies=Hostile champions -challenges.champion_enemies_desc=You're not the only one who can level up!\n\n- Regular enemies have a 1/8 chance to spawn with a special champion buff\n- Champions wake up if they spawn asleep\n- The hero knows when a champion spawns\n- Champions are immune to corruption\n\nThere are six types of champion enemy:\n_Blazing (orange):_ +25% melee damage, ignites on hit, spreads flames on death, can't ignite water tiles\n_Projecting (purple):_ +25% melee damage, +3 melee range\n_Antimagic (green):_ -50% damage taken, immune to magical effects\n_Giant (blue):_ -80% damage taken, +1 melee range, cannot move into tunnels\n_Blessed (yellow):_ 4x accuracy and evasion\n_Growing (red):_ +20% accuracy, evasion, damage, and effective HP. Increases by 1% every 4 turns. +challenges.champion_enemies_desc=You're not the only one who can level up!\n\nRegular enemies have a 1/8 chance to spawn with a special champion buff on floor 1, scaling up to 1/6 on floor 21.\n\n- Champions wake up if they spawn asleep\n- The hero knows when a champion spawns\n- Champions cannot be turned into allies\n\nThere are six types of champion enemy:\n_Blazing (orange):_ +25% melee damage, ignites on hit, spreads flames on death, can't ignite water tiles\n_Projecting (purple):_ +25% melee damage, +3 melee range\n_Antimagic (green):_ -50% damage taken, immune to magical effects\n_Giant (blue):_ -80% damage taken, +1 melee range, cannot move into tunnels\n_Blessed (yellow):_ 4x accuracy and evasion\n_Growing (red):_ +20% accuracy, evasion, damage, and effective HP. Increases by 1% every 4 turns. challenges.stronger_bosses=Badder bosses challenges.stronger_bosses_desc=Bosses are much tougher with this challenge!\n\n_Goo:_ +20% health\n_-_ Healing in water ramps up, to 3/turn\n_-_ Pumps up in 1 turn instead of 2\n_Tengu:_ +25% health\n_-_ Phase 1: traps are much deadlier\n_-_ Phase 2: abilities are more frequent\n_DM-300:_ +33% health\n_-_ Pylons are tougher and 3 activate\n_-_ Abilities are more powerful and frequent\n_-_ DM-300 is faster when supercharged\n_-_ Exposed wires are twice as common\n_Dwarf King:_ +50% health\n_-_ Minions are stronger in all phases\n_-_ Phase 1: faster abilities and summons\n_-_ Phase 2: 2 more minions per round\n_-_ Phase 3: 2x health, faster summons\n_Yog-Dzewa:_\n_-_ Two fists are summoned at a time!\n_-_ +60% laser damage\n_-_ Stronger minions diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Dungeon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Dungeon.java index 6c072b59d..48a36c0ea 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Dungeon.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Dungeon.java @@ -179,7 +179,7 @@ public class Dungeon { } public static int challenges; - public static int mobsToChampion; + public static float mobsToChampion; public static Hero hero; public static Level level; @@ -733,7 +733,7 @@ public class Dungeon { Toolbar.swappedQuickslots = false; Dungeon.challenges = bundle.getInt( CHALLENGES ); - Dungeon.mobsToChampion = bundle.getInt( MOBS_TO_CHAMPION ); + Dungeon.mobsToChampion = bundle.getFloat( MOBS_TO_CHAMPION ); Dungeon.level = null; Dungeon.depth = -1; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ChampionEnemy.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ChampionEnemy.java index e4ecf3625..578bea59f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ChampionEnemy.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ChampionEnemy.java @@ -115,7 +115,8 @@ public abstract class ChampionEnemy extends Buff { if (m instanceof Bat && Dungeon.scalingDepth() <= 9) return; Buff.affect(m, buffCls); - Dungeon.mobsToChampion += 8; + //numbers of mobs until a champion scales from 1/8 to 1/6 as depths increases + Dungeon.mobsToChampion += 8 - Math.min(20, Dungeon.depth-1)/10f; if (m.state != m.PASSIVE) { m.state = m.WANDERING; }