v2.1.0: adjusted surprise attack tutorialization a bit

This commit is contained in:
Evan Debenham
2023-05-01 12:43:44 -04:00
parent b5b2c64def
commit bb49b01a65
6 changed files with 13 additions and 7 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -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.name=sewer snake
actors.mobs.snake.hint=Try using the examine button on a snake to learn how to counter them. 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.name=spectral necromancer
actors.mobs.spectralnecromancer.desc=While Skeletons are a necromancers 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! actors.mobs.spectralnecromancer.desc=While Skeletons are a necromancers 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!

View File

@@ -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.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.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.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.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.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 journal.document.adventurers_guide.food.title=Dealing with Hunger

View File

@@ -21,6 +21,7 @@
package com.shatteredpixel.shatteredpixeldungeon.actors.mobs; package com.shatteredpixel.shatteredpixeldungeon.actors.mobs;
import com.shatteredpixel.shatteredpixeldungeon.Badges;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.items.Generator; import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
import com.shatteredpixel.shatteredpixeldungeon.items.journal.Guidebook; import com.shatteredpixel.shatteredpixeldungeon.items.journal.Guidebook;
@@ -61,7 +62,8 @@ public class Snake extends Mob {
@Override @Override
public String defenseVerb() { public String defenseVerb() {
dodges++; 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")); GLog.p(Messages.get(Guidebook.class, "hint"));
GameScene.flashForDocument(Document.ADVENTURERS_GUIDE, Document.GUIDE_SURPRISE_ATKS); GameScene.flashForDocument(Document.ADVENTURERS_GUIDE, Document.GUIDE_SURPRISE_ATKS);
dodges = 0; dodges = 0;

View File

@@ -171,7 +171,7 @@ public enum Document {
case "Examining": case "Examining":
return Icons.get(Icons.MAGNIFY); return Icons.get(Icons.MAGNIFY);
case "Surprise_Attacks": case "Surprise_Attacks":
return new ItemSprite( ItemSpriteSheet.ASSASSINS_BLADE ); return Icons.get(Icons.SNAKE);
case "Identifying": case "Identifying":
return new ItemSprite( new ScrollOfIdentify() ); return new ItemSprite( new ScrollOfIdentify() );
case "Food": case "Food":

View File

@@ -79,6 +79,7 @@ public enum Icons {
BACKPACK_LRG, BACKPACK_LRG,
TALENT, TALENT,
MAGNIFY, MAGNIFY,
SNAKE,
BUFFS, BUFFS,
ENERGY, ENERGY,
COPY, COPY,
@@ -259,14 +260,17 @@ public enum Icons {
case MAGNIFY: case MAGNIFY:
icon.frame( icon.texture.uvRectBySize( 144, 48, 14, 14 ) ); icon.frame( icon.texture.uvRectBySize( 144, 48, 14, 14 ) );
break; break;
case SNAKE:
icon.frame( icon.texture.uvRectBySize( 160, 48, 9, 13 ) );
break;
case BUFFS: case BUFFS:
icon.frame( icon.texture.uvRectBySize( 160, 48, 16, 15 ) ); icon.frame( icon.texture.uvRectBySize( 176, 48, 16, 15 ) );
break; break;
case ENERGY: case ENERGY:
icon.frame( icon.texture.uvRectBySize( 176, 48, 16, 16 ) ); icon.frame( icon.texture.uvRectBySize( 192, 48, 16, 16 ) );
break; break;
case COPY: case COPY:
icon.frame( icon.texture.uvRectBySize( 192, 48, 13, 13 ) ); icon.frame( icon.texture.uvRectBySize( 224, 48, 13, 13 ) );
break; break;
case PASTE: case PASTE:
icon.frame( icon.texture.uvRectBySize( 208, 48, 13, 13 ) ); icon.frame( icon.texture.uvRectBySize( 208, 48, 13, 13 ) );