From 0349f1674ea74a2732591b78b90d460c562c8815 Mon Sep 17 00:00:00 2001 From: LingASDJ <2735951230@qq.com> Date: Sun, 23 Oct 2022 01:09:25 +0800 Subject: [PATCH] Update Beta p2.6 --- .../main/assets/environment/tiles_caves.png | Bin 0 -> 18166 bytes .../assets/messages/actors/actors.properties | 2 +- .../main/assets/messages/misc/misc.properties | 6 +- .../src/main/assets/messages/ui/ui.properties | 2 + .../messages/windows/windows.properties | 2 +- core/src/main/assets/sprites/item_icons.png | Bin 1801 -> 1822 bytes .../shatteredpixeldungeon/Challenges.java | 10 ++- .../shatteredpixeldungeon/Statistics.java | 16 +++- .../actors/buffs/BugFixed.java | 81 ++++++++++++++++++ .../actors/hero/Hero.java | 11 +++ .../actors/hero/HeroClass.java | 14 +-- .../actors/mobs/Bestiary.java | 71 ++++++--------- .../actors/mobs/ColdGurad.java | 8 +- .../actors/mobs/KagenoNusujin.java | 2 +- .../actors/mobs/NewDM300.java | 4 +- .../actors/mobs/Slime_Orange.java | 21 +---- .../actors/mobs/bosses/DwarfMaster.java | 25 +++--- .../actors/mobs/npcs/Shopkeeper.java | 1 + .../items/quest/BackGoKey.java | 6 +- .../items/weapon/melee/EndingBlade.java | 20 +---- .../items/weapon/melee/IceFishSword.java | 1 + .../scenes/InterlevelScene.java | 5 +- .../sprites/ItemSpriteSheet.java | 2 +- .../ui/changelist/mlpd/vM0_6_7_X_Changes.java | 44 ++++++++++ .../windows/WndChallenges.java | 7 +- .../windows/WndNyzShop.java | 4 +- .../windows/WndStory.java | 2 + 27 files changed, 247 insertions(+), 120 deletions(-) create mode 100644 core/src/main/assets/environment/tiles_caves.png create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/BugFixed.java diff --git a/core/src/main/assets/environment/tiles_caves.png b/core/src/main/assets/environment/tiles_caves.png new file mode 100644 index 0000000000000000000000000000000000000000..1a9189d8059e423ce3fb56d6ba50a0660dcf6fe4 GIT binary patch literal 18166 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 bFe&PPjbiCV*@<%Q-MVfZQ6D zc>)v!^jDqYi^XD*YtQqja$QsWn*Tj1h?~FO5_p(>0s3}a%OQP^1#m840?sK`;CaIA z6)`cl%Q+N3D^LL+pyZXvgDh}10+2g5BA`Gb=v75;E6;z$6sX;Gq+bsqfao_iHt1z0 zZ!>+AQ3uEZ>VkZJQw4xJ-~de+JbZ9Zzt5LkH=F?^VS}plUl4R4tI5VdZjDXY+}val z1@!>^=NLeGkApxA5Cx(5jQ|6UfidJH3yzmKho{eS z=$Kjjc36I%#m6<-xuFrTyv!5-+|JHUj`<0nk$-o07Zo^VY%DuA=>2uX_Lp!9>^ed$ zFtg)qRuoJVfc!2hKmj-mNPvTh1keHV@9pn}QNVx8h?NxyLdv>6m?i*(Kj450a8qt@ z7QOvte}8>Fln1ZZ5n~Q$3|Ilc{C*6m0Hk+02-E=BL;k%m{6>Irz{UXo8C&=Q;B&Cu z!~p0Y5-O2;dw(yS0kE+0dL>~-!D|6_6pX+Ll!BDj+o6X+ga{EL{C4PG*TDf-het<8 zhkSo@EbS-$ou}aM6ILn}Z7u0E6yOZ=`T4n=Two&Pxf~9Mh2d~AzwWk)fWsp=1XO_R z9&5PN+p5)5IgowA%GK3XCCFc^5k2vXf@_Fj2Aw_w^G_6@`+WxtfFtwqjxo^pUg zs8*}MCTJH}e(8X-TCIkCU>%6XJetnukvIRVE}-46a{1t(Tn0Y|)BzGu7YnNRvHOI^ z0X2XusNu)PfN>zNbLR~4Pu@|}4M!7%3KIj?0a8!}yHAJ)uz)}Wq6buK3~CG*2T*^( z6n?Yc2mJga8W1NZ!e1S^S^?<-b6(SWbQI81nvwZ)cNBT`Z}K9z3Ihe5>0c3%tR=Y_yE?CzDCL-)|g%8Tn}5dRCdKN0Bpi4heDKN=8=O|>9NmD%q%F`$1AkOgfT z2joDbgE7#QAozCY_U>>g^8LQszekQ2;kOPvBjaRkQZ*j(*LIf(ID} j`SCj|4Cal`?+Z}oxbmzS5B zpNcf`r@<(A1OK=K8Uxbqq*9LK^P&?82?7*ARc6urPulR4f;aJx#z3H*V}L9W{)FlX z3dk&GjbiCV*@<%Q-MVfZPg| zc>)v+=uw^Glf`0@YtQqja$PMZ^S>traeefbz{BhdkhkMX4(W3&fO7#8a89uT&oj(k z5fgK}oI~-m0uk^5N?wUP$O2~-fZVwe0R<94uPS<5c`kpZK<%y~{b~pSM8CGSMlUn- zHj`T!b$~3OF39KCMF5Bc4$y?b!yEVH_k7BA!x=yl)~HJV13?F}l57m*R@j8~^>r3e z5D(CQjsc|iI0%dZMnNck6`+t97(>p40f9vLF(5O>BA6g7x~4||!}I_NSYrV?osdy5 zhLzltuXcYFjKS~&2Vp1yzaM4}9ha;#BZ@$vDK`NRFb4U$k00p+@M&XXk88_SLjdVd|U`6ZkJyN)mx z=-5V!#Rj=J#Vj1R%Z3K_CXe4)X7W;a36bfQFKHY@-HSrp3C8ISQrkU=a=0!BVhjk_5l?j zyT=;Nc)a9e(XM> zIv@s+1vUKG7*GfDGI!1p|MNR)vf-#fD9{+N4v>N>*nL7YfCU615Ivw;Vo+j09YB8t zFYxPrAMpK;Xh0kt8UE_X*$S90(C;;=M@IoIr5Tw&cSn&||8~E>WPA0}oUYgFdSwHk z*=)A#FR!G&2KdULFW)dRZn*6AdXxBh?WqDvv@%2m$lhiR^-iZl3cB5fxxUo`lHj`E zh2RHOR=_RXVJ3c$6|~#!iTtEM1$ck@XZph8{FRAk_R{U5BI1b-|n?vwSef8$)w%yR|nt{rBf&TU+>g^V%_L=yTB%xF6h%r zs1Gn8j|cEb{EygvN1*$Ec!&=0Dr%qVPgO-_{l9u-!=DdEI6~zam0}2oe4$`~uiBx+GuUFTnr+ N002ovPDHLkV1lPJn9~3N diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Challenges.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Challenges.java index fd2fffc2a..8d926629b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Challenges.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Challenges.java @@ -52,11 +52,14 @@ public class Challenges { public static final int SBSG = 1024; public static final int EXSG = 2048; public static final int STRONGER_BOSSES = 4096; + public static final int DHXD = 8192; public static final int PRO = 16384; - public static final int MAX_VALUE = 32768; + public static final int BUG = 32768; + + public static final int MAX_VALUE = 65536; public static final String[] NAME_IDS = { "no_food", @@ -74,11 +77,12 @@ public class Challenges { "stronger_bosses", "dhxd", "pro", + "bug", }; public static final int[] MASKS = { NO_FOOD, NO_ARMOR, NO_HEALING, NO_HERBALISM, SWARM_INTELLIGENCE, DARKNESS, NO_SCROLLS - , AQUAPHOBIA, CHAMPION_ENEMIES,RLPT,SBSG,EXSG,STRONGER_BOSSES,DHXD,PRO, + , AQUAPHOBIA, CHAMPION_ENEMIES,RLPT,SBSG,EXSG,STRONGER_BOSSES,DHXD,PRO,BUG, }; public String name; @@ -127,7 +131,7 @@ public class Challenges { public static int activeChallenges(){ int chCount = 0; for (int ch : Challenges.MASKS){ - if ((Dungeon.challenges & ch) != 0) chCount++; + if ((Dungeon.challenges & ch) != 0 && ch <= STRONGER_BOSSES) chCount++; } return chCount; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Statistics.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Statistics.java index 3bdb024d1..20cf12383 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Statistics.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Statistics.java @@ -62,6 +62,10 @@ public class Statistics { //TODO 灯火前行 public static boolean lanterfireactive = false; + + //TODO BUG修复同步 + public static boolean bugsyncfixed = false; + public static int dageCollected; //Directly add float time will cause accuracy lose and stop timing if time is long enough @@ -102,6 +106,7 @@ public class Statistics { endingbald = false; lanterfireactive = false; + bugsyncfixed = false; second_elapsed = 0f; real_seconds = 0; @@ -145,9 +150,16 @@ public class Statistics { //TODO 灯火前行 private static final String LANTERACTIVE = "lanterfireactive"; + //TODO BUG修复的机制 + private static final String BUG_SYNC_FIXED = "bugsyncfixed"; + public static void storeInBundle( Bundle bundle ) { bundle.put( LANTERACTIVE, lanterfireactive ); + + //TODO BUG修复的机制 + bundle.put( BUG_SYNC_FIXED, bugsyncfixed ); + bundle.put( GOLD, goldCollected ); bundle.put( DEEPEST, deepestFloor ); bundle.put( SLAIN, enemiesSlain ); @@ -155,7 +167,7 @@ public class Statistics { bundle.put( ALCHEMY, itemsCrafted ); bundle.put( PIRANHAS, piranhasKilled ); bundle.put( ANKHS, ankhsUsed ); - bundle.put(EXLEVEL, realdeepestFloor); + bundle.put( EXLEVEL, realdeepestFloor); bundle.put( UPGRADES, upgradesUsed ); bundle.put( SNEAKS, sneakAttacks ); bundle.put( THROWN, thrownAssists ); @@ -212,6 +224,8 @@ public class Statistics { lanterfireactive = bundle.getBoolean( LANTERACTIVE ); + bugsyncfixed = bundle.getBoolean( BUG_SYNC_FIXED ); + //SPD second_elapsed = bundle.getFloat("real_time_passed"); real_seconds = bundle.getLong("real_seconds_passed"); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/BugFixed.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/BugFixed.java new file mode 100644 index 000000000..1b908e731 --- /dev/null +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/BugFixed.java @@ -0,0 +1,81 @@ +package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; + +import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.watabou.utils.Bundle; + +public class BugFixed extends Buff { + + { + type = buffType.POSITIVE; + } + + public static int level = 0; + private int interval = 1; + + @Override + public boolean act() { + if (target.isAlive()) { + + spend(interval); + if (level == 0) { + detach(); + } + + } + + return true; + } + + public int level() { + return level; + } + + public void set( int value, int time ) { + //decide whether to override, preferring high value + low interval + if (Math.sqrt(interval)*level <= Math.sqrt(time)*value) { + level = value; + interval = time; + spend(time - cooldown() - 1); + } + } + + @Override + public float iconFadePercent() { + if (target instanceof Hero){ + float max = ((Hero) target).lvl; + return Math.max(0, (max-level)/max); + } + return 0; + } + + @Override + public String toString() { + return Messages.get(this, "name"); + } + + @Override + public String desc() { + return Messages.get(this, "desc", level, dispTurns(visualcooldown())); + } + + private static final String LEVEL = "level"; + private static final String INTERVAL = "interval"; + + @Override + public void storeInBundle( Bundle bundle ) { + super.storeInBundle( bundle ); + bundle.put( INTERVAL, interval ); + bundle.put( LEVEL, level ); + } + + @Override + public void restoreFromBundle( Bundle bundle ) { + super.restoreFromBundle( bundle ); + interval = bundle.getInt( INTERVAL ); + level = bundle.getInt( LEVEL ); + } + +} + + diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java index 03b132bb4..8ebf32167 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java @@ -22,10 +22,12 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.hero; import static com.shatteredpixel.shatteredpixeldungeon.Challenges.AQUAPHOBIA; +import static com.shatteredpixel.shatteredpixeldungeon.Challenges.BUG; import static com.shatteredpixel.shatteredpixeldungeon.Challenges.DHXD; import static com.shatteredpixel.shatteredpixeldungeon.Challenges.PRO; import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero; import static com.shatteredpixel.shatteredpixeldungeon.SPDSettings.HelpSettings; +import static com.shatteredpixel.shatteredpixeldungeon.Statistics.bugsyncfixed; import static com.shatteredpixel.shatteredpixeldungeon.Statistics.lanterfireactive; import static com.shatteredpixel.shatteredpixeldungeon.levels.Level.set; @@ -135,6 +137,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.lightblack.OilLantern; import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion; import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfExperience; import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHealing; +import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLightningShiledX; import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfMight; import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.PotionOfDivineInspiration; import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfAccuracy; @@ -531,6 +534,7 @@ public class Hero extends Char { for (Buff b : buffs()){ if (!b.revivePersists) b.detach(); } + Buff.affect( this, Regeneration.class ); Buff.affect( this, Hunger.class ); @@ -925,6 +929,13 @@ public class Hero extends Char { //TODO 获取三个挑战的枚举后,则超过或等于3挑战以激活挑战,在英雄移动的时候 // + + //todo 移动时修复了BUG + if(Dungeon.isChallenged(BUG) && !bugsyncfixed){ + new PotionOfLightningShiledX().quantity(3).identify().collect(); + bugsyncfixed = true; + } + if(chCount >= 3 && !lanterfireactive && !Dungeon.isChallenged(PRO) || Dungeon.isChallenged(DHXD) && !lanterfireactive){ //TODO 灯火前行 lanterfire = 100; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroClass.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroClass.java index d5bc53b2a..fae54ac40 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroClass.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroClass.java @@ -21,6 +21,8 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.hero; +import static com.shatteredpixel.shatteredpixeldungeon.Challenges.BUG; + import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Badges; import com.shatteredpixel.shatteredpixeldungeon.Challenges; @@ -114,7 +116,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Gauntlet; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Gloves; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.GreenSword; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.IceFishSword; -import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.IceSan; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.LockSword; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.RedBloodMoon; @@ -205,11 +206,11 @@ public enum HeroClass { new GreenSword().quantity(1).identify().collect(); new SkyShield().quantity(1).identify().collect(); - new IceSan().quantity(1).identify().collect(); + //new IceSan().quantity(1).identify().collect(); new GoldBAo().quantity(9999).identify().collect(); new WandOfScale().quantity(1).identify().collect(); new WandOfGodIce().quantity(1).identify().collect(); - new PotionOfLightningShiledX().quantity(50).identify().collect(); + new PotionOfLightningShiledX().quantity(1).identify().collect(); new LevelTeleporter().quantity(1).identify().collect(); new MobPlacer().quantity(1).identify().collect(); new BlackDog().quantity(1).identify().collect(); @@ -236,6 +237,7 @@ public enum HeroClass { new ScrollOfRoseShiled().quantity(45).identify().collect(); new ScrollOfTerror().quantity(45).identify().collect(); new DriedRose().quantity(1).identify().collect(); + Dungeon.gold = 600000000; hero.STR = 27; hero.lvl = 30; @@ -252,8 +254,10 @@ public enum HeroClass { i = new Food(); - //new EndingBlade().quantity(1).identify().collect(); - //new ChaliceOfBlood().quantity(1).identify().collect(); + //todo 不存在BUG挑战才给予 + if(!Dungeon.isChallenged(BUG)) { + new PotionOfLightningShiledX().quantity(3).identify().collect(); + } new HerbBag().quantity(1).identify().collect(); new PotionOfHealing().quantity(3).identify().collect(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bestiary.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bestiary.java index 3f3077afb..0bdc98f51 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bestiary.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bestiary.java @@ -75,8 +75,7 @@ public class Bestiary { case 10: switch (Random.Int(3)) { case 0: - return new ArrayList<>(Arrays.asList(Skeleton.class, - KagenoNusujin.class, BlackHost.class, + return new ArrayList<>(Arrays.asList(Skeleton.class, BlackHost.class, Thief.class,DM100.class,Necromancer.class)); case 1: return new ArrayList<>(Arrays.asList(Skeleton.class, Skeleton.class, Skeleton.class, @@ -100,8 +99,7 @@ public class Bestiary { case 15: switch (Random.Int(4)) { case 0: - return new ArrayList<>(Arrays.asList(Skeleton.class, - KagenoNusujin.class, BlackHost.class, + return new ArrayList<>(Arrays.asList(Skeleton.class, BlackHost.class, Thief.class,DM100.class,Necromancer.class)); case 1: return new ArrayList<>(Arrays.asList(Skeleton.class, Skeleton.class, Skeleton.class, @@ -131,14 +129,13 @@ public class Bestiary { case 25: switch (Random.Int(6)) { case 0: - return new ArrayList<>(Arrays.asList(Skeleton.class, - KagenoNusujin.class, BlackHost.class, + return new ArrayList<>(Arrays.asList(Skeleton.class, BlackHost.class, Thief.class,DM100.class,Necromancer.class)); case 1: return new ArrayList<>(Arrays.asList(Skeleton.class, Skeleton.class, Skeleton.class, Thief.class,Thief.class,Fire_Scorpio.class, - DM201.class,SkullShaman.class,MolotovHuntsman.class, - DM201.class,SRPDHBLR.class, Ice_Scorpio.class)); + DM200.class,SkullShaman.class,MolotovHuntsman.class, + DM100.class,SRPDHBLR.class, Ice_Scorpio.class)); case 2: return new ArrayList<>(Arrays.asList( Succubus.class, Succubus.class, Succubus.class, @@ -176,24 +173,18 @@ public class Bestiary { //3x rat, 1x snake return new ArrayList<>(Arrays.asList( Rat.class, Rat.class, - Rat.class, OGPDZSLS.class, Rat.class, - Snake.class)); + Rat.class)); case 2: return new ArrayList<>(Arrays.asList(Rat.class, Rat.class, Rat.class, Gnoll.class, Gnoll.class, Gnoll.class, OGPDLLS.class, OGPDNQHZ.class)); case 3: return new ArrayList<>(Arrays.asList(Rat.class, - Rat.class, Rat.class, Gnoll.class, Gnoll.class, - Gnoll.class, OGPDLLS.class, OGPDNQHZ.class, + Rat.class, OGPDNQHZ.class, OGPDZSLS.class, Rat.class, Rat.class, - Snake.class,Crab.class,Crab.class,Swarm.class)); + Snake.class,Crab.class,Swarm.class)); case 4: - return new ArrayList<>(Arrays.asList(Rat.class, - Gnoll.class, Gnoll.class - , OGPDLLS.class, - Snake.class, - OGPDNQHZ.class, OGPDZSLS.class, + return new ArrayList<>(Arrays.asList(OGPDZSLS.class, OGPDLLS.class, Snake.class, Slime_Orange.class, Swarm.class,Crab.class)); case 5: @@ -204,20 +195,16 @@ public class Bestiary { Snake.class)); case 7: - return new ArrayList<>(Arrays.asList(Skeleton.class, - KagenoNusujin.class, BlackHost.class, + return new ArrayList<>(Arrays.asList(Skeleton.class, BlackHost.class, Thief.class,DM100.class,Necromancer.class)); case 8: return new ArrayList<>(Arrays.asList(Skeleton.class, Skeleton.class, - Thief.class, Shaman.random(),BrownBat.class,KagenoNusujin.class, - Shaman.random(), Guard.class, SRPDHBLR.class,Necromancer.class, - KagenoNusujin.class,BrownBat.class)); + Thief.class,BrownBat.class, Guard.class, SRPDHBLR.class,Necromancer.class, BrownBat.class)); case 9: return new ArrayList<>(Arrays.asList(Skeleton.class, Skeleton.class, Skeleton.class, Thief.class,Thief.class,BrownBat.class, - BrownBat.class,SpectralNecromancer.class,SpectralNecromancer.class, - DM100.class,BrownBat.class, BlackHost.class,KagenoNusujin.class)); + BrownBat.class, DM100.class,BrownBat.class, BlackHost.class)); case 10: return new ArrayList<>(Arrays.asList(Bat.class, @@ -236,7 +223,7 @@ public class Bestiary { return new ArrayList<>(Arrays.asList( Bat.class, Brute.class,Spinner.class, - DM201.class,RedSwarm.class)); + DM100.class,RedSwarm.class)); case 14: return new ArrayList<>(Arrays.asList( @@ -257,28 +244,25 @@ public class Bestiary { case 16: //5x elemental, 5x warlock, 1x monk, 2x silvercrab return new ArrayList<>(Arrays.asList( - Elemental.random(), Elemental.random(), Elemental.random(), Monk.class, Shaman.random())); case 17: //2x elemental, 2x warlock, 2x monk, 1x silvercrab return new ArrayList<>(Arrays.asList( - Elemental.random(), Elemental.random(), Elemental.random(), Elemental.random(), - Monk.class,RedMurderer.class,FireGhost.class,MolotovHuntsman.class)); + Elemental.random(), + Monk.class,FireGhost.class)); case 18: //1x elemental, 1x warlock, 2x monk, 3x golem return new ArrayList<>(Arrays.asList( - Elemental.random(),RedMurderer.class, - Warlock.class, Warlock.class, - Monk.class, Monk.class, - IceGolem.class, Golem.class, Golem.class,MolotovHuntsman.class,FireGhost.class)); + Elemental.random(), + Warlock.class, + Monk.class, + Golem.class,MolotovHuntsman.class,FireGhost.class)); case 19: //1x elemental, 1x warlock, 2x monk, 3x golem return new ArrayList<>(Arrays.asList( - Elemental.random(),RedMurderer.class,RedMurderer.class, - ShieldHuntsman.class, Warlock.class, - Monk.class, IceGolem.class,IceGolem.class, - Golem.class, Golem.class, Golem.class,ShieldHuntsman.class)); + Monk.class,IceGolem.class, + Golem.class,ShieldHuntsman.class)); case 20: //1x elemental, 1x warlock, 2x monk, 3x golem return new ArrayList<>(Arrays.asList( @@ -290,25 +274,20 @@ public class Bestiary { case 21:case 22: //3x succubus, 3x evil eye return new ArrayList<>(Arrays.asList( - Succubus.class, Succubus.class, Succubus.class, - Succubus.class, Succubus.class, Eye.class,ShieldHuntsman.class,Ice_Scorpio.class)); case 23: //1x: succubus, 2x evil eye, 3x scorpio return new ArrayList<>(Arrays.asList( Succubus.class, - Eye.class, Eye.class, - Scorpio.class, Eye.class, Eye.class,Succubus.class, Succubus.class, - Scorpio.class, Scorpio.class, Scorpio.class,Fire_Scorpio.class,Ice_Scorpio.class)); + Eye.class, + Scorpio.class, Succubus.class,ShieldHuntsman.class)); //前半段决战 case 24: //1x succubus, 2x evil eye, 3x scorpio return new ArrayList<>(Arrays.asList( Succubus.class, - Eye.class, Eye.class, - Scorpio.class, Eye.class, Eye.class,Succubus.class, Succubus.class, - Scorpio.class, Scorpio.class,Fire_Scorpio.class,Scorpio.class,ShieldHuntsman.class, - Ice_Scorpio.class,Fire_Scorpio.class)); + Eye.class, + Scorpio.class, Succubus.class,Fire_Scorpio.class,Ice_Scorpio.class,ShieldHuntsman.class)); default: return new ArrayList<>(Arrays.asList(Rat.class, Rat.class, Rat.class, diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/ColdGurad.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/ColdGurad.java index 342f10426..1d21572ea 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/ColdGurad.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/ColdGurad.java @@ -32,7 +32,7 @@ public class ColdGurad extends Mob implements Callback { { spriteClass = ColdGuardSprite.class; - HP = HT = 80; + HP = HT = 40; defenseSkill = 10; EXP = 0; @@ -140,12 +140,12 @@ public class ColdGurad extends Mob implements Callback { @Override public int attackSkill( Char target ) { - return 12; + return 5; } @Override public int drRoll() { - return Random.NormalIntRange(0, 7); + return Random.NormalIntRange(0, 5); } @Override @@ -206,7 +206,7 @@ public class ColdGurad extends Mob implements Callback { Sample.INSTANCE.play( Assets.Sounds.DEBUFF ); } - int dmg = Random.NormalIntRange( 12, 18 ); + int dmg = Random.NormalIntRange( 3,6 ); for (Mob mob : Dungeon.level.mobs.toArray( new Mob[0] )) { if(Random.NormalIntRange(0,9)<4) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/KagenoNusujin.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/KagenoNusujin.java index ec68ca8e3..99e829bbb 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/KagenoNusujin.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/KagenoNusujin.java @@ -17,7 +17,7 @@ public class KagenoNusujin extends Thief { public KagenoNusujin() { this.spriteClass = KagenoNusujinSprite.class; this.HT = this.HP =50; - this.defenseSkill = 16; + this.defenseSkill = -1; this.maxLvl = 34; this.properties.add(Property.UNDEAD); WANDERING = new Wandering(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewDM300.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewDM300.java index b77a46371..a15672efe 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewDM300.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewDM300.java @@ -38,6 +38,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Chill; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.FlavourBuff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Frost; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Haste; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MindVision; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Paralysis; @@ -480,7 +481,8 @@ public class NewDM300 extends Mob { spend(Dungeon.isChallenged(Challenges.STRONGER_BOSSES) ? 2f : 3f); yell(Messages.get(this, "charging")); - Buff.affect( hero, MindVision.class, 7f ); + Buff.affect( hero, MindVision.class, 20f ); + Buff.affect( hero, Haste.class, 7f ); sprite.showStatus(CharSprite.POSITIVE, Messages.get(this, "invulnerable")); ((DM300Sprite)sprite).updateChargeState(true); ((DM300Sprite)sprite).charge(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Slime_Orange.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Slime_Orange.java index c8e598bca..dc1b64e44 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Slime_Orange.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Slime_Orange.java @@ -27,18 +27,18 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Fire; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning; -import com.shatteredpixel.shatteredpixeldungeon.items.quest.GooBlob; +import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLiquidFlame; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.OrangeSprites; -import com.watabou.utils.PathFinder; import com.watabou.utils.Random; /*史莱姆烈焰审判现在移除*/ public class Slime_Orange extends Slime { { spriteClass = OrangeSprites.class; - lootChance = 0f; //by default, see rollToDropLoot() + lootChance = 0.25f; //by default, see rollToDropLoot() + loot = PotionOfLiquidFlame.class; properties.add(Property.ACIDIC); - maxLvl = -200; + maxLvl = 12; EXP=3; } private int combo = 0; @@ -55,17 +55,4 @@ public class Slime_Orange extends Slime { } return damage2; } - - @Override - public void rollToDropLoot() { - if (Dungeon.hero.lvl > maxLvl + 2) return; - - super.rollToDropLoot(); - - int ofs; - do { - ofs = PathFinder.NEIGHBOURS8[Random.Int(8)]; - } while (!Dungeon.level.passable[pos + ofs]); - Dungeon.level.drop( new GooBlob(), pos + ofs ).sprite.drop( pos ); - } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/bosses/DwarfMaster.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/bosses/DwarfMaster.java index 59e54c14c..5353421b2 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/bosses/DwarfMaster.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/bosses/DwarfMaster.java @@ -26,7 +26,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.RoseShiled; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.TestDwarfMasterLock; -import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Timer; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vulnerable; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.BlackHost; @@ -1500,7 +1499,7 @@ public class DwarfMaster extends Boss { @Override public int defenseProc(Char enemy, int damage){ - if(damage > 3) summonMiniGoo(); +// if(damage > 3) summonMiniGoo(); return super.defenseProc(enemy, damage); } @@ -1515,17 +1514,17 @@ public class DwarfMaster extends Boss { } } - if (candidates.size() > 0) { - RedMurderer mini = new RedMurderer(); - Buff.affect(mini, Timer.class, berserk()? 5f:7f); - mini.pos = Random.element( candidates ); - mini.state = mini.HUNTING; - - Dungeon.level.occupyCell(mini); - - GameScene.add( mini , 0f ); - Actor.addDelayed( new Pushing( mini, pos, mini.pos ), -1 ); - } +// if (candidates.size() > 0) { +// RedMurderer mini = new RedMurderer(); +// Buff.affect(mini, Timer.class, berserk()? 5f:7f); +// mini.pos = Random.element( candidates ); +// mini.state = mini.HUNTING; +// +// Dungeon.level.occupyCell(mini); +// +// GameScene.add( mini , 0f ); +// Actor.addDelayed( new Pushing( mini, pos, mini.pos ), -1 ); +// } } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Shopkeeper.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Shopkeeper.java index 71a16dd7f..ad65ac0ec 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Shopkeeper.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Shopkeeper.java @@ -176,6 +176,7 @@ public class Shopkeeper extends NPC { price *= 0.1; } price *= 1.5; + //todo 3折 } else if (Dungeon.hero.buff(BlessNoMoney.class) != null) { price *= 0.3; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/quest/BackGoKey.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/quest/BackGoKey.java index 90c3c66c1..038177f26 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/quest/BackGoKey.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/quest/BackGoKey.java @@ -54,7 +54,9 @@ public class BackGoKey extends TestItem { @Override public ArrayList actions(Hero hero ) { ArrayList actions = super.actions( hero ); - actions.add(AC_INTER_TP); + if(Dungeon.hero.buff(ShopLimitLock.class) != null || Dungeon.depth == -5) { + actions.add(AC_INTER_TP); + } return actions; } @@ -142,7 +144,7 @@ public class BackGoKey extends TestItem { InterlevelScene.returnDepth = selectedLevel; InterlevelScene.returnPos = -1; Game.switchScene( InterlevelScene.class ); - //detach( hero.belongings.backpack ); + if(Dungeon.hero.buff(ShopLimitLock.class) != null) { for (Buff buffx : hero.buffs()) { if (buffx instanceof ShopLimitLock) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/EndingBlade.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/EndingBlade.java index 95d7a0079..0fb81e472 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/EndingBlade.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/EndingBlade.java @@ -10,7 +10,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.AllyBuff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Barrier; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Corruption; -import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Doom; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hunger; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicImmune; @@ -356,22 +355,6 @@ public class EndingBlade extends Weapon { } } - private void corruptEnemy( Mob enemy ){ - //cannot re-corrupt or doom an enemy, so give them a major debuff instead - if(enemy.buff(Corruption.class) != null || enemy.buff(Doom.class) != null){ - GLog.w( Messages.get(this, "already_corrupted") ); - return; - } - - if (!enemy.isImmune(Corruption.class)){ - Corruption.corruptionHeal(enemy); - - AllyBuff.affectAndLoot(enemy, curUser, Corruption.class); - } else { - Buff.affect(enemy, Doom.class); - } - } - public void fxs(Ballistica beam, Callback callback) { MagicMissile.boltFromChar( curUser.sprite.parent, MagicMissile.SHADOW, @@ -401,8 +384,7 @@ public class EndingBlade extends Weapon { if(TIME_TO_DIED != 0){ TIME_TO_DIED--; } - //fixme - //todo + if(level >= 10){ fireenergy += 0; //武器最高级 diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/IceFishSword.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/IceFishSword.java index 867b76e6f..097e5ccee 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/IceFishSword.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/IceFishSword.java @@ -79,6 +79,7 @@ public class IceFishSword extends Weapon { bolt.collisionPos, callback); } + public int tier; @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java index 0dcded653..4c1e544d9 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java @@ -182,7 +182,7 @@ public class InterlevelScene extends PixelScene { fadeTime += 0.9f; //adds 1 second total //speed up transition when debugging } else if (DeviceCompat.isDebug()){ - fadeTime = 0.9f; + fadeTime = 0.1f; } SkinnedBlock bg = new SkinnedBlock(Camera.main.width, Camera.main.height, loadingAsset ){ @@ -465,6 +465,9 @@ public class InterlevelScene extends PixelScene { Level level = Dungeon.loadLevel( GamesInProgress.curSlot ); Dungeon.switchLevel( level, Dungeon.hero.pos ); } + + + } private void resurrect() { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java index 5335f8beb..2031ed7ca 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java @@ -957,7 +957,7 @@ public class ItemSpriteSheet { assignIconRect( POTION_CLEANSE, 7, 7 ); assignIconRect( POTION_DIVINE, 7, 7 ); assignIconRect( POTION_DRAGONKING, 7, 7 ); - assignIconRect( POTION_DRAGONKING, 5, 7 ); + assignIconRect( POTION_HOLYFUROR, 5, 7 ); } //16 free slots diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/mlpd/vM0_6_7_X_Changes.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/mlpd/vM0_6_7_X_Changes.java index f8383a5db..2f4775229 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/mlpd/vM0_6_7_X_Changes.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/mlpd/vM0_6_7_X_Changes.java @@ -1,6 +1,7 @@ package com.shatteredpixel.shatteredpixeldungeon.ui.changelist.mlpd; import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.NewDM300; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.ChangesScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; @@ -15,6 +16,7 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.sprites.KagenoNusujinSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.MimicSprite; +import com.shatteredpixel.shatteredpixeldungeon.sprites.MurdererSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.SRPDHBLRTT; import com.shatteredpixel.shatteredpixeldungeon.sprites.ShopkKingSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.WFSprite; @@ -31,6 +33,7 @@ import java.util.ArrayList; public class vM0_6_7_X_Changes { public static void addAllChanges(ArrayList changeInfos) { + add_v0_6_13_Changes(changeInfos); add_v0_6_12_Changes(changeInfos); add_v0_6_11_Changes(changeInfos); add_v0_6_10_Changes(changeInfos); @@ -46,6 +49,47 @@ public class vM0_6_7_X_Changes { add_v0_6_0_Changes(changeInfos); } + public static void add_v0_6_13_Changes( ArrayList changeInfos ) { + ChangeInfo changes = new ChangeInfo("v0.6.0.0-Beta21-p2.6", true, ""); + changes.hardlight(Window.TITLE_COLOR); + changeInfos.add(changes); + + changes = new ChangeInfo("新内容", false, null); + changes.hardlight(Window.GREEN_COLOR); + changeInfos.add(changes); + + changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_ON), ("BUG同步修复-实验功能"), + ("实验性功能,将在每次更新游戏的时候对无法通过代码直接同步的数据进行自动同步。"))); + + changes = new ChangeInfo("改动", false, null); + changes.hardlight(Window.CYELLOW); + changeInfos.add(changes); + + changes.addButton(new ChangeButton(Icons.get(Icons.INFO), ("杂项改动"), + ("1.总体刷怪体系调整\n2.书籍改为720金币起一本。\n3.矮人大师不再召唤猩红大盗"))); + + changes.addButton(new ChangeButton(new Image("sprites/spinner.png", 144, 0, 16, 16), (Messages.get(ChangesScene.class, "bugfixes")), + Messages.get(vM0_6_7_X_Changes.class, "bug_06X33"))); + + Image i = new Image(new DM300Sprite()); + i.scale.set(PixelScene.align(0.74f)); + changes.addButton( new ChangeButton(i, Messages.get(NewDM300.class, "name"), + "DM300每次激活能量塔玩家获得20回合灵视和7回合极速")); + + changes.addButton(new ChangeButton(new ColdGuardSprite(), ("雪凛守卫"), + ("调整雪凛峡谷守卫的总体难度"))); + + changes = new ChangeInfo("移除", false, null); + changes.hardlight(Window.RED_COLOR); + changeInfos.add(changes); + + changes.addButton(new ChangeButton(new KagenoNusujinSprite(), ("影子盗贼"), + ("移除此怪物,将在未来版本调整后加入,但不再是普通怪物类型"))); + + changes.addButton(new ChangeButton(new MurdererSprite.RedMuderer(), ("猩红大盗"), + ("移除此怪物,将在未来版本调整后加入,但不再是普通怪物类型"))); + } + public static void add_v0_6_12_Changes( ArrayList changeInfos ) { ChangeInfo changes = new ChangeInfo("v0.6.0.0-Beta21-p2", true, ""); changes.hardlight(Window.TITLE_COLOR); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndChallenges.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndChallenges.java index 73f1468b7..c6a1bc434 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndChallenges.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndChallenges.java @@ -95,6 +95,7 @@ public class WndChallenges extends Window { final int warning_mode =9; final int custom_mode = 13; final int Test_Debug = 14; + final int fixed_mode = 15; boolean isCustom = false; float pos = 0; @@ -102,7 +103,7 @@ public class WndChallenges extends Window { final String challenge = Challenges.NAME_IDS[i]; - if(i==normal_mode || i==hard_mode || i==warning_mode|| i==custom_mode || i==Test_Debug){ + if(i==normal_mode || i==hard_mode || i==warning_mode|| i==custom_mode || i==fixed_mode || i==Test_Debug){ RenderedTextBlock block = PixelScene.renderTextBlock(10); switch (i){ case normal_mode: @@ -125,6 +126,10 @@ public class WndChallenges extends Window { block.text(Messages.get(Challenges.class, "test")); block.hardlight(0xFFFF00); break; + case fixed_mode: + block.text(Messages.get(Challenges.class, "fixed")); + block.hardlight(Window.CBLACK); + break; } block.setPos((WIDTH - block.width()) / 2, pos + GAP *4); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndNyzShop.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndNyzShop.java index f866de3fc..bd4247b75 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndNyzShop.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndNyzShop.java @@ -187,8 +187,8 @@ public class WndNyzShop extends Window { buff.detach(); } } - } else if(Dungeon.gold > 300) { - Dungeon.gold-=300*Random.Int(2)+hero.lvl/5+10; + } else if(Dungeon.gold > 720) { + Dungeon.gold-=720*Random.Int(2)+hero.lvl/5+10; WndNyzShop.this.selectReward( item ); if (RandomBuff.level-- >= 0) { } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndStory.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndStory.java index 5dfccfb8d..0163f058f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndStory.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndStory.java @@ -77,6 +77,8 @@ public class WndStory extends Window { public static final int ID_CHAPTONEEND = 10; public static final int ID_ICEBOSS = 11; public static final int ID_GAME = 12; + + // public static final int ID_DWADA = 13; private static final SparseArray CHAPTERS = new SparseArray<>();