diff --git a/core/src/main/assets/interfaces/icons.png b/core/src/main/assets/interfaces/icons.png index faa2047e2..a6b276b5b 100644 Binary files a/core/src/main/assets/interfaces/icons.png and b/core/src/main/assets/interfaces/icons.png differ diff --git a/core/src/main/assets/messages/actors/actors.properties b/core/src/main/assets/messages/actors/actors.properties index 3bb75f4ce..30ed27d5a 100644 --- a/core/src/main/assets/messages/actors/actors.properties +++ b/core/src/main/assets/messages/actors/actors.properties @@ -1249,7 +1249,7 @@ actors.mobs.slime.desc=Slimes are strange, slightly magical creatures with a rub actors.mobs.snake.name=sewer snake actors.mobs.snake.hint=Try using the examine button on a snake to learn how to counter them. -actors.mobs.snake.desc=These oversized serpents are capable of quickly slithering around blows, making them quite hard to hit. Magical attacks or surprise attacks are capable of catching them off-guard however.\n\nYou can perform a surprise attack by attacking while out of the snake's vision. One way is to let a snake chase you through a doorway and then _strike just as it moves into the door._ +actors.mobs.snake.desc=These oversized serpents are capable of quickly slithering around blows, making them quite hard to hit. Magical attacks or surprise attacks are capable of catching them off-guard however.\n\nYou can perform a surprise attack by attacking while out of the snake's vision. One way is to let a snake chase you through a doorway and then _strike just after it moves into the door._ actors.mobs.spectralnecromancer.name=spectral necromancer actors.mobs.spectralnecromancer.desc=While Skeletons are a necromancer’s bread and butter, some prefer to look into other less corporeal minions. Spectral necromancers have chosen wraiths as their minion of choice!\n\nIndividual wraiths aren't as strong as skeletons, but these necromancers aren't afraid to summon a bunch of them! diff --git a/core/src/main/assets/messages/journal/journal.properties b/core/src/main/assets/messages/journal/journal.properties index 5132c2252..8463d859c 100644 --- a/core/src/main/assets/messages/journal/journal.properties +++ b/core/src/main/assets/messages/journal/journal.properties @@ -4,7 +4,7 @@ journal.document.adventurers_guide.intro.body=Greetings Adventurer, you are read journal.document.adventurers_guide.examining.title=Examining journal.document.adventurers_guide.examining.body=Rushing into enemies is almost never the best way to deal with them. It's important to study your opponents and surroundings to learn how to defeat them!\n\nExamining things also takes no time, so get in the habit of doing it to everything new you encounter.\n\n(You can examine something by using the magnifying glass button, and selecting the thing you want to examine. You can also examine buffs or debuffs by selecting their icons.) journal.document.adventurers_guide.surprise_attacks.title=Surprise Attacks -journal.document.adventurers_guide.surprise_attacks.body=You're guaranteed to hit an enemy if you surprise them by attacking from outside of their view, or right as you enter their view.\n\nEven the most evasive enemies can't dodge a surprise attack, which makes them very useful against enemies like wraiths and snakes.\n\nOne of the most common parts of the environment you can use to surprise enemies is a door. If an enemy chases you through a door you can attack them right after they enter it and catch them by surprise! +journal.document.adventurers_guide.surprise_attacks.body=Rather than leaving combat up to chance, you can guarantee a hit on an enemy by using a surprise attack! This is especially useful against evasive enemies like snakes and wraiths.\n\nYou can surprise enemies by attacking them when they haven't seen you, or by using a door. If an enemy chases you through a door you can attack them right after they enter it and catch them by surprise! journal.document.adventurers_guide.identifying.title=Identifying Items journal.document.adventurers_guide.identifying.body=You won't know all of the properties of some items when you first find them.\n\nThe colors of potions and symbols on scrolls are different in each dungeon. Unidentified equipment can be upgraded or enchanted if you're lucky, or it might be cursed!\n\nScrolls of identify, upgrade, or remove curse are very useful if you want to reduce the risk of using unidentified equipment.\n\n(You can find a list of all the items you've identified in the items tab of your journal) journal.document.adventurers_guide.food.title=Dealing with Hunger diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Snake.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Snake.java index 7982c79b9..fe4e30939 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Snake.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Snake.java @@ -21,6 +21,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.mobs; +import com.shatteredpixel.shatteredpixeldungeon.Badges; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.items.Generator; import com.shatteredpixel.shatteredpixeldungeon.items.journal.Guidebook; @@ -61,7 +62,8 @@ public class Snake extends Mob { @Override public String defenseVerb() { dodges++; - if (dodges >= 2 && !Document.ADVENTURERS_GUIDE.isPageRead(Document.GUIDE_SURPRISE_ATKS)){ + if ((dodges >= 2 && !Document.ADVENTURERS_GUIDE.isPageRead(Document.GUIDE_SURPRISE_ATKS)) + || (dodges >= 4 && !Badges.isUnlocked(Badges.Badge.BOSS_SLAIN_1))){ GLog.p(Messages.get(Guidebook.class, "hint")); GameScene.flashForDocument(Document.ADVENTURERS_GUIDE, Document.GUIDE_SURPRISE_ATKS); dodges = 0; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/journal/Document.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/journal/Document.java index 31cd29f82..f4781f458 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/journal/Document.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/journal/Document.java @@ -171,7 +171,7 @@ public enum Document { case "Examining": return Icons.get(Icons.MAGNIFY); case "Surprise_Attacks": - return new ItemSprite( ItemSpriteSheet.ASSASSINS_BLADE ); + return Icons.get(Icons.SNAKE); case "Identifying": return new ItemSprite( new ScrollOfIdentify() ); case "Food": diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Icons.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Icons.java index d20a5e2c0..93bd86a6a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Icons.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Icons.java @@ -79,6 +79,7 @@ public enum Icons { BACKPACK_LRG, TALENT, MAGNIFY, + SNAKE, BUFFS, ENERGY, COPY, @@ -259,14 +260,17 @@ public enum Icons { case MAGNIFY: icon.frame( icon.texture.uvRectBySize( 144, 48, 14, 14 ) ); break; + case SNAKE: + icon.frame( icon.texture.uvRectBySize( 160, 48, 9, 13 ) ); + break; case BUFFS: - icon.frame( icon.texture.uvRectBySize( 160, 48, 16, 15 ) ); + icon.frame( icon.texture.uvRectBySize( 176, 48, 16, 15 ) ); break; case ENERGY: - icon.frame( icon.texture.uvRectBySize( 176, 48, 16, 16 ) ); + icon.frame( icon.texture.uvRectBySize( 192, 48, 16, 16 ) ); break; case COPY: - icon.frame( icon.texture.uvRectBySize( 192, 48, 13, 13 ) ); + icon.frame( icon.texture.uvRectBySize( 224, 48, 13, 13 ) ); break; case PASTE: icon.frame( icon.texture.uvRectBySize( 208, 48, 13, 13 ) );