From a14cfe9d278efbcb0ed50441e316c1ea87ba01bf Mon Sep 17 00:00:00 2001 From: LingASDJ <2735951230@qq.com> Date: Sat, 23 Sep 2023 19:42:22 +0800 Subject: [PATCH] update 0.6.5.0-Alpha4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -1.电子斗蛐蛐v0.2更新 -2.改善一些界面 修复一些问题 -3.更多查阅游戏更新记录 --- build.gradle | 4 +- .../custom_tiles/lavecave_behind.png | Bin 52685 -> 52768 bytes core/src/main/assets/interfaces/badges.png | Bin 21560 -> 22058 bytes .../assets/messages/actors/actors.properties | 36 +- .../messages/actors/actors_ja.properties | 2 +- .../assets/messages/items/items.properties | 7 +- .../main/assets/messages/misc/misc.properties | 6 +- .../src/main/assets/messages/ui/ui.properties | 6 +- .../messages/windows/windows_ja.properties | 2 +- .../shatteredpixeldungeon/Badges.java | 10 +- .../actors/mobs/Salamander.java | 7 + .../actors/mobs/spical/GooMob.java | 247 ++++++++++++++ .../actors/mobs/spical/SlimeKingMob.java | 319 ++++++++++++++++++ .../custom/dict/DictSpriteSheet.java | 24 +- .../custom/testmode/MobPlacer.java | 78 +++-- .../items/bags/MagicalHolster.java | 3 +- .../items/wands/WandOfAnmy.java | 29 +- .../weapon/melee/legend/DiedCrossBow.java | 20 +- .../weapon/melee/legend/LegendWeapon.java | 3 +- .../levels/LaveCavesBossLevel.java | 15 +- .../shatteredpixeldungeon/levels/Terrain.java | 3 + .../scenes/NewsScene.java | 15 +- .../sprites/CharSprite.java | 17 +- .../sprites/SkullShamanSprite.java | 8 +- .../ui/OptionSlider.java | 6 +- .../shatteredpixeldungeon/ui/StatusPane.java | 6 + .../shatteredpixeldungeon/ui/Window.java | 2 +- .../ui/changelist/S_Changes.java | 8 +- .../ui/changelist/mlpd/vM0_6_7_X_Changes.java | 35 +- .../windows/WndHardNotification.java | 5 +- .../windows/WndTitledMessage.java | 113 ++++++- .../windows/WndTradeItem.java | 2 + 32 files changed, 909 insertions(+), 129 deletions(-) create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/spical/GooMob.java create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/spical/SlimeKingMob.java diff --git a/build.gradle b/build.gradle index a09bb8c13..356d3f4c8 100644 --- a/build.gradle +++ b/build.gradle @@ -18,8 +18,8 @@ allprojects { appName = 'Magic Ling Pixel Dungeon' appPackageName = 'com.ansdomagiclingpixeldungeon.ling' - appVersionCode =907400 - appVersionName = '0.6.5.0-Alpha3' + appVersionCode =907500 + appVersionName = '0.6.5.0-Alpha4' appJavaCompatibility = JavaVersion.VERSION_11 diff --git a/core/src/main/assets/environment/custom_tiles/lavecave_behind.png b/core/src/main/assets/environment/custom_tiles/lavecave_behind.png index e40a58de6f0ddaad5785dd799ce36a482e1cd98e..426d7caa52855226669e8194a4420b3925740953 100644 GIT binary patch literal 52768 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

Z55=YA& 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 diff --git a/core/src/main/assets/interfaces/badges.png b/core/src/main/assets/interfaces/badges.png index 62fc07ea5ffe8490649e2c634ee1ea98efb86bc6..a37796266c023c505d29c81a7cf3ccc019b02fbb 100644 GIT binary patch literal 22058 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%0ATaFVju~1y0Ap`Y!{)VDAA2yYK7VOyQ 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 M07*qoM6N<$f|-g@8~^|S literal 21560 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 0) { + pumpedUp = 0; + return Random.NormalIntRange( min*3, max*3 ); + } else { + return Random.NormalIntRange( min, max ); + } + } + + @Override + public int attackSkill( Char target ) { + int attack = 10; + if (HP*2 <= HT) attack = 15; + if (pumpedUp > 0) attack *= 2; + return attack; + } + + @Override + public int defenseSkill(Char enemy) { + return (int)(super.defenseSkill(enemy) * ((HP*2 <= HT)? 1.5 : 1)); + } + + @Override + public int drRoll() { + return Random.NormalIntRange(0, 2); + } + + @Override + public boolean act() { + + if (Dungeon.level.water[pos] && HP < HT) { + HP += healInc; + + LockedFloor lock = Dungeon.hero.buff(LockedFloor.class); + if (lock != null) lock.removeTime(healInc*2); + + if (Dungeon.level.heroFOV[pos] ){ + sprite.emitter().burst( Speck.factory( Speck.HEALING ), healInc ); + } + if (Dungeon.isChallenged(Challenges.STRONGER_BOSSES) && healInc < 3) { + healInc++; + } + if (HP*2 > HT) { + BossHealthBar.bleed(false); + ((GooSprite)sprite).spray(false); + HP = Math.min(HP, HT); + } + } else { + healInc = 1; + } + + return super.act(); + } + + @Override + protected boolean canAttack( Char enemy ) { + if (pumpedUp > 0){ + //we check both from and to in this case as projectile logic isn't always symmetrical. + //this helps trim out BS edge-cases + return Dungeon.level.distance(enemy.pos, pos) <= 2 + && new Ballistica( pos, enemy.pos, Ballistica.PROJECTILE).collisionPos == enemy.pos + && new Ballistica( enemy.pos, pos, Ballistica.PROJECTILE).collisionPos == pos; + } else { + return super.canAttack(enemy); + } + } + + @Override + public int attackProc( Char enemy, int damage ) { + damage = super.attackProc( enemy, damage ); + if (Random.Int( 3 ) == 0) { + Buff.affect( enemy, Ooze.class ).set( Ooze.DURATION ); + enemy.sprite.burst( 0x000000, 5 ); + } + + if (pumpedUp > 0) { + Camera.main.shake( 3, 0.2f ); + } + + return damage; + } + + @Override + public void updateSpriteState() { + super.updateSpriteState(); + + if (pumpedUp > 0){ + ((GooSprite)sprite).pumpUp( pumpedUp ); + } + } + + @Override + protected boolean doAttack( Char enemy ) { + if (pumpedUp == 1) { + pumpedUp++; + ((GooSprite)sprite).pumpUp( pumpedUp ); + + spend( attackDelay() ); + + return true; + } else if (pumpedUp >= 2 || Random.Int( (HP*2 <= HT) ? 2 : 5 ) > 0) { + + boolean visible = Dungeon.level.heroFOV[pos]; + + if (visible) { + if (pumpedUp >= 2) { + ((GooSprite) sprite).pumpAttack(); + } else { + sprite.attack(enemy.pos); + } + } else { + if (pumpedUp >= 2){ + ((GooSprite)sprite).triggerEmitters(); + } + attack( enemy ); + spend( attackDelay() ); + } + + return !visible; + + } else { + + pumpedUp++; + if (Dungeon.isChallenged(Challenges.STRONGER_BOSSES)){ + pumpedUp++; + } + + ((GooSprite)sprite).pumpUp( pumpedUp ); + + if (Dungeon.level.heroFOV[pos]) { + sprite.showStatus( CharSprite.NEGATIVE, Messages.get(Goo.class, "!!!") ); + GLog.n( Messages.get(Goo.class, "pumpup") ); + } + + spend( attackDelay() ); + + return true; + } + } + + @Override + public boolean attack( Char enemy, float dmgMulti, float dmgBonus, float accMulti ) { + boolean result = super.attack( enemy, dmgMulti, dmgBonus, accMulti ); + pumpedUp = 0; + return result; + } + + @Override + protected boolean getCloser( int target ) { + if (pumpedUp != 0) { + pumpedUp = 0; + sprite.idle(); + } + return super.getCloser( target ); + } + + @Override + public void damage(int dmg, Object src) { + boolean bleeding = (HP*2 <= HT); + super.damage(dmg, src); + if ((HP*2 <= HT) && !bleeding){ + sprite.showStatus(CharSprite.NEGATIVE, Messages.get(Goo.class, "enraged")); + ((GooSprite)sprite).spray(true); + yell(Messages.get(Goo.class, "gluuurp")); + } + LockedFloor lock = Dungeon.hero.buff(LockedFloor.class); + if (lock != null) lock.addTime(dmg*2); + } + + @Override + public void die( Object cause ) { + super.die( cause ); + } + + private final String PUMPEDUP = "pumpedup"; + private final String HEALINC = "healinc"; + + @Override + public void storeInBundle( Bundle bundle ) { + + super.storeInBundle( bundle ); + + bundle.put( PUMPEDUP , pumpedUp ); + bundle.put( HEALINC, healInc ); + } + + @Override + public void restoreFromBundle( Bundle bundle ) { + + super.restoreFromBundle( bundle ); + + pumpedUp = bundle.getInt( PUMPEDUP ); + if (state != SLEEPING) BossHealthBar.assignBoss(this); + if ((HP*2 <= HT)) BossHealthBar.bleed(true); + + //if check is for pre-0.9.3 saves + healInc = bundle.getInt(HEALINC); + + } + +} diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/spical/SlimeKingMob.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/spical/SlimeKingMob.java new file mode 100644 index 000000000..a4fc474e7 --- /dev/null +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/spical/SlimeKingMob.java @@ -0,0 +1,319 @@ +package com.shatteredpixel.shatteredpixeldungeon.actors.mobs.spical; + +import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.shatteredpixel.shatteredpixeldungeon.Conducts; +import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; +import com.shatteredpixel.shatteredpixeldungeon.actors.Char; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Blindness; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Degrade; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.CausticSlime; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.ColdMagicRat; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Crab; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Rat; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Slime; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.SlimeKing; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Swarm; +import com.shatteredpixel.shatteredpixeldungeon.effects.Chains; +import com.shatteredpixel.shatteredpixeldungeon.effects.Pushing; +import com.shatteredpixel.shatteredpixeldungeon.items.Item; +import com.shatteredpixel.shatteredpixeldungeon.levels.traps.SummoningTrap; +import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; +import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; +import com.shatteredpixel.shatteredpixeldungeon.sprites.SlimeKingSprite; +import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; +import com.watabou.noosa.audio.Sample; +import com.watabou.utils.Bundle; +import com.watabou.utils.Callback; +import com.watabou.utils.Random; + +import java.util.ArrayList; + +public class SlimeKingMob extends Mob { + + private final String[] attackCurse = {"雕虫小技", "班门弄斧", + "GAMEOVER"}; + private int combo = 0; + private static final float TIME_TO_ZAP = 0.5f; + + private boolean PartCold = false; + + + + + @Override + public int defenseProc(Char enemy, int damage ) { + + if (HP >= damage + 2) { + ArrayList candidates = new ArrayList<>(); + + int[] neighbours = {pos + 1, pos - 1, pos + Dungeon.level.width(), pos - Dungeon.level.width()}; + for (int n : neighbours) { + if (!Dungeon.level.solid[n] && Actor.findChar( n ) == null + && (!properties().contains(Property.LARGE) || Dungeon.level.openSpace[n])) { + candidates.add( n ); + } + } + + if (candidates.size() > 0 && HP < 60 && Random.Float() < 0.45f) { + CausticSlime mini = new CausticSlime(); + mini.pos = this.pos; + mini.state = mini.HUNTING; + mini.HP /= 4; + mini.maxLvl = -5; + Dungeon.level.occupyCell(mini); + GameScene.add( mini , 0f ); + Actor.addDelayed( new Pushing( mini, pos, mini.pos ), -1 ); + } + } + + return super.defenseProc(enemy, damage); + } + + + private static final String partcold = "partcold"; + private static final String chainsused = "chainsused"; + + @Override + public void storeInBundle(Bundle bundle) { + super.storeInBundle(bundle); + bundle.put(partcold, PartCold); + bundle.put(chainsused, chainsUsed); + } + + @Override + public void restoreFromBundle(Bundle bundle) { + super.restoreFromBundle(bundle); + PartCold = bundle.getBoolean(partcold); + chainsUsed = bundle.getBoolean(chainsused); + } + + { + if (Dungeon.isDLC(Conducts.Conduct.BOSSRUSH)) { + HP =190; + HT= 190; + + } else { + HP =140; + HT= 140; + } + + EXP = 20; + defenseSkill = 12; + spriteClass = SlimeKingSprite.class; + lootChance = 1; + HUNTING = new Hunting(); + properties.add(Property.BOSS); + baseSpeed = 0.4f; + } + + @Override + public boolean act() { + + if(HP < 70 && !PartCold){ + baseSpeed = 1f; + SummoningTrap var4 = new SummoningTrap(); + var4.pos = super.pos; + var4.activate(); + PartCold = true; + chainsUsed = true; + GLog.n(Messages.get(SlimeKing.class,"fuck")); + } else if (HP < 70) { + baseSpeed = 1f; + } + + return super.act(); + } + + private void zap() { + spend( TIME_TO_ZAP ); + + if (hit( this, enemy, true )) { + //TODO would be nice for this to work on ghost/statues too + if (Random.Int( 2 ) == 0) { + Buff.prolong( enemy, Blindness.class, Degrade.DURATION ); + Sample.INSTANCE.play( Assets.Sounds.DEBUFF ); + } + + int dmg = Random.NormalIntRange( 2, 4 ); + enemy.damage( dmg, new ColdMagicRat.DarkBolt() ); + + if (enemy == Dungeon.hero && !enemy.isAlive()) { + Dungeon.fail( getClass() ); + GLog.n( Messages.get(SlimeKing.class, "frost_kill") ); + } + } else { + enemy.sprite.showStatus( CharSprite.NEUTRAL, enemy.defenseVerb() ); + } + } + + protected boolean doAttack( Char enemy ) { + + if (Dungeon.level.adjacent( pos, enemy.pos )) { + + return super.doAttack( enemy ); + + } else { + + if (sprite != null && (sprite.visible || enemy.sprite.visible)) { + sprite.zap( enemy.pos ); + return false; + } else { + zap(); + return true; + } + } + } + + public void onZapComplete() { + zap(); + next(); + } + + @Override + public int damageRoll() { + if(HP < 70 && Random.Float() > 0.10f) { + return Random.NormalIntRange(8, 12); + } else { + return Random.NormalIntRange(4, 6); + } + } + + @Override + public int attackSkill( Char target ) { + return 12; + } + + @Override + public int attackProc(Char enemy, int damage) { + if (Random.Int(0, 10) > 7) { + this.sprite.showStatus(0x009999, this.attackCurse[Random.Int(this.attackCurse.length)]); + } + int damage2 = super.attackProc(enemy, this.combo + damage); + this.combo++; +// int effect = Random.Int(3); +//// if (enemy.buff(Poison.class) == null && Random.Float() <= 0.25f) { +//// Buff.affect( enemy, Poison.class).set((effect-2) ); +//// } + if (this.combo > 3) { + this.combo = 1; + } + return damage2; + } + + @Override + public int drRoll() { + if(HP < 70 && !PartCold) { + return 0; + } else { + return 5; + } + } + + private boolean chainsUsed = false; + private boolean chain(int target){ + if (chainsUsed || enemy.properties().contains(Property.IMMOVABLE)) + return false; + + Ballistica chain = new Ballistica(pos, target, Ballistica.PROJECTILE); + + if (chain.collisionPos != enemy.pos + || chain.path.size() < 2 + || Dungeon.level.pit[chain.path.get(1)]) + return false; + else { + int newPos; + newPos = -1; + for (int i : chain.subPath(1, chain.dist)){ + if (!Dungeon.level.solid[i] && Actor.findChar(i) == null){ + newPos = i; + break; + } + } + + if (newPos == 0){ + return false; + } else { + final int newPosFinal = newPos; + this.target = newPos; + + if (sprite.visible) { + yell(Messages.get(SlimeKing.class, "scorpion")); + new Item().throwSound(); + Sample.INSTANCE.play(Assets.Sounds.CHAINS); + sprite.parent.add(new Chains(sprite.center(), enemy.sprite.destinationCenter(), new Callback() { + public void call() { + Actor.addDelayed(new Pushing(enemy, enemy.pos, newPosFinal, new Callback() { + public void call() { + pullEnemy(enemy, newPosFinal); + } + }), -1); + next(); + } + })); + } else { + pullEnemy(enemy, newPos); + } + } + } + chainsUsed = true; + return true; + } + + private void pullEnemy( Char enemy, int pullPos ){ + enemy.pos = pullPos; + enemy.sprite.place(pullPos); + Dungeon.level.occupyCell(enemy); + Cripple.prolong(enemy, Cripple.class, 4f); + if (enemy == Dungeon.hero) { + Dungeon.hero.interrupt(); + Dungeon.observe(); + GameScene.updateFog(); + } + } + + + public void move( int step ) { + super.move( step ); + } + + @Override + public void die( Object cause ) { + super.die( cause ); + for (Mob mob : Dungeon.level.mobs.toArray(new Mob[0])){ + if ( mob instanceof Swarm || + mob instanceof Crab || + mob instanceof Rat || + mob instanceof Slime) { + mob.die( cause ); + } + } + } + + private class Hunting extends Mob.Hunting{ + @Override + public boolean act( boolean enemyInFOV, boolean justAlerted ) { + enemySeen = enemyInFOV; + + if (!chainsUsed + && enemyInFOV + && !isCharmedBy( enemy ) + && !canAttack( enemy ) + && Dungeon.level.distance( pos, enemy.pos ) < 5 + + + && chain(enemy.pos)){ + return !(sprite.visible || enemy.sprite.visible); + } else { + return super.act( enemyInFOV, justAlerted ); + } + + } + } +} + diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/custom/dict/DictSpriteSheet.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/custom/dict/DictSpriteSheet.java index 0872cafe0..66f3e0ad4 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/custom/dict/DictSpriteSheet.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/custom/dict/DictSpriteSheet.java @@ -1,12 +1,14 @@ package com.shatteredpixel.shatteredpixeldungeon.custom.dict; import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.shatteredpixel.shatteredpixeldungeon.sprites.BombGnollTricksterSprites; import com.shatteredpixel.shatteredpixeldungeon.sprites.BruteBotSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ClearElementalSprites; import com.shatteredpixel.shatteredpixeldungeon.sprites.ColdGuardSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ColdRatSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.FireAcidicSprite; -import com.shatteredpixel.shatteredpixeldungeon.sprites.FlameBoiSprite; +import com.shatteredpixel.shatteredpixeldungeon.sprites.FlameC01Sprite; +import com.shatteredpixel.shatteredpixeldungeon.sprites.GooSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.IceFireScorpioSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.IceGolemSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; @@ -24,6 +26,8 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.SRPDICLRTT; import com.shatteredpixel.shatteredpixeldungeon.sprites.STenguSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.SalamanderSprites; import com.shatteredpixel.shatteredpixeldungeon.sprites.ShieldHuntsmanSprite; +import com.shatteredpixel.shatteredpixeldungeon.sprites.SkullShamanSprite; +import com.shatteredpixel.shatteredpixeldungeon.sprites.SlimeKingSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.SpectralNecromancerSprite; import com.watabou.noosa.Image; @@ -80,7 +84,15 @@ public class DictSpriteSheet { case MOLO: return new MolotovHuntsmanSprite(); case FLAME: - return new FlameBoiSprite(); + return new SlimeKingSprite(); + case FLAMEC01: + return new FlameC01Sprite(); + case GnollK: + return new BombGnollTricksterSprites(); + case GnollF: + return new SkullShamanSprite(); + case Goo: + return new GooSprite(); case GNOLL: return new Image(Assets.Sprites.GNOLL, 0, 0, 12, 15); case STX: @@ -304,6 +316,14 @@ public class DictSpriteSheet { public static final int CAX = 228 + 10000; public static final int IAS = 229 + 10000; + public static final int FLAMEC01 = 330 + 10000; + + public static final int GnollK = 331 + 10000; + + public static final int GnollF = 332 + 10000; + + public static final int Goo = 333 + 10000; + public static final int BRTX = 230 + 10000; public static final int GOO = 231 + 10000; public static final int GKS = 232 + 10000; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/custom/testmode/MobPlacer.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/custom/testmode/MobPlacer.java index 6adc8f894..55101ad49 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/custom/testmode/MobPlacer.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/custom/testmode/MobPlacer.java @@ -28,9 +28,10 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Elemental; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Eye; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.FetidRat; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Fire_Scorpio; -import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.FlameB01; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.FlameC01; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Ghoul; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Gnoll; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.GnollShiled; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.GnollTrickster; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Golem; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.GreatCrab; @@ -60,6 +61,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Senior; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Shaman; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.ShieldHuntsman; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Skeleton; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.SkullShaman; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Slime; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Snake; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.SpectralNecromancer; @@ -71,6 +73,8 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Thief; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Warlock; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Wraith; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.XTG200; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.spical.GooMob; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.spical.SlimeKingMob; import com.shatteredpixel.shatteredpixeldungeon.custom.dict.DictSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.custom.messages.M; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportation; @@ -82,6 +86,7 @@ import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.ui.CheckBox; import com.shatteredpixel.shatteredpixeldungeon.ui.IconButton; +import com.shatteredpixel.shatteredpixeldungeon.ui.OptionSlider; import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton; import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextBlock; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; @@ -105,6 +110,9 @@ public class MobPlacer extends TestItem{ private int mobTier = 1; private int mobIndex = 0; private int elite = 0; + + private int HT = 1; + private int ST = 1; private int elite_op = 0; private final ArrayList> eliteBuffs = new ArrayList<>(); @@ -117,7 +125,7 @@ public class MobPlacer extends TestItem{ eliteBuffs.add(ChampionEnemy.Projecting.class); eliteBuffs.add(ChampionEnemy.Halo.class); eliteBuffs.add(ChampionEnemy.DelayMob.class); - eliteBuffs.add(WandOfAnmy.AllyToRestartOK.class); + eliteBuffs.add(ChampionEnemy.King.class); eliteBuffs.add(ChampionEnemy.Small.class); eliteBuffs.add(ChampionEnemy.Bomber.class); @@ -126,6 +134,7 @@ public class MobPlacer extends TestItem{ eliteBuffs.add(ChampionEnemy.Sider.class); eliteBuffs.add(ChampionEnemy.LongSider.class); + eliteBuffs.add(WandOfAnmy.AllyToRestartOK.class); } @Override @@ -148,9 +157,15 @@ public class MobPlacer extends TestItem{ try { Mob m = Reflection.newInstance(allData.get(dataThreshold(mobTier) + mobIndex).mobClass); m.pos = cell; + m.state = m.HUNTING; GameScene.add(m); + + if(HT>1){ + m.HT = m.HP = (m.HT*HT); + } + if(elite_op>0){ - for(int i=0;i<15;++i){ + for(int i=0;i<16;++i){ if((elite_op & (1<0){ Buff.affect(m, eliteBuffs.get(i)); } @@ -222,6 +237,8 @@ public class MobPlacer extends TestItem{ b.put("mobTier", mobTier); b.put("mobIndex", mobIndex); b.put("eliteTags", elite); + b.put("htTags", HT); + b.put("stTags", ST); b.put("elite_ops", elite_op); } @@ -231,6 +248,8 @@ public class MobPlacer extends TestItem{ mobTier = b.getInt("mobTier"); mobIndex = b.getInt("mobIndex"); elite = b.getInt("eliteTags"); + HT = b.getInt("htTags"); + ST = b.getInt("stTags"); elite_op = b.getInt("elite_ops"); } @@ -238,14 +257,14 @@ public class MobPlacer extends TestItem{ private class WndSetMob extends Window{ private static final int WIDTH = 150; - private static final int HEIGHT = 150; + private static final int HEIGHT = 180; private static final int BTN_SIZE = 18; private static final int GAP = 2; private RenderedTextBlock selectedPage; private ArrayList mobButtons = new ArrayList<>(); private RenderedTextBlock selectedMob; - private ArrayList eliteOptions = new ArrayList<>(15); + private ArrayList eliteOptions = new ArrayList<>(16); public WndSetMob(){ super(); @@ -290,22 +309,10 @@ public class MobPlacer extends TestItem{ selectedMob.hardlight(0xFFFF44); PixelScene.align(selectedMob); add(selectedMob); -/* - OptionSlider op = new OptionSlider - (M.L(MobPlacer.class, "elite"), "0", String.valueOf(MAX_ELITE), 0, MAX_ELITE) { - @Override - protected void onChange() { - elite = getSelectedValue(); - } - }; - op.setRect(GAP, 92, WIDTH - 2*GAP, 24); - op.setSelectedValue(elite); - add(op); - */ - float pos = 92; + float pos = 96; int column = 0; - for (int i = 0; i < 15 && column < 3; ++i) { + for (int i = 0; i < 16 && column < 3; ++i) { CheckBox cb = new CheckBox(M.L(MobPlacer.class, "elite_name" + i)); cb.active = true; cb.checked((elite_op & (1<0); @@ -322,10 +329,31 @@ public class MobPlacer extends TestItem{ pos += 16 + GAP; // 换行 } + if(i==15){ + cb.setRect(WIDTH/2f+GAP, 78, (WIDTH/2f - GAP), 16); + } + + OptionSlider op = new OptionSlider + ("_修改血量_","1x","6x",1,6) { + @Override + public int getTitleTextSize(){ + return 6; + } + @Override + protected void onChange() { + HT = getSelectedValue(); + } + }; + op.setRect((WIDTH/3f)/6f-8, 78, (WIDTH/2f - GAP), 16); + op.setSelectedValue(HT); + add(op); + column++; } + + createMobImage(); updateSelectedMob(); @@ -334,7 +362,7 @@ public class MobPlacer extends TestItem{ private void updateEliteSettings(){ int el = 0; - for(int i=0;i<15;++i){ + for(int i=0;i<16;++i){ el += eliteOptions.get(i).checked() ? (1< buffCls){ - boolean droppingLoot = enemy.alignment != Char.Alignment.ALLY; - Buff.affect(enemy, buffCls); - if (enemy.buff(buffCls) != null){ - if (droppingLoot) enemy.rollToDropLoot(); - Statistics.enemiesSlain++; - Badges.validateMonstersSlain(); - Statistics.qualifiedForNoKilling = false; - if (enemy.EXP > 0 && hero.lvl <= enemy.maxLvl) { - hero.sprite.showStatus(CharSprite.POSITIVE, Messages.get(enemy, "exp", enemy.EXP)); - hero.earnExp(enemy.EXP, enemy.getClass()); - } else { - hero.earnExp(0, enemy.getClass()); - } - } - } @Override public String toString() { return Messages.get(AllyToRestart.class, "name"); @@ -101,11 +80,11 @@ public class WandOfAnmy extends DamageWand { @Override public void fx(boolean on) { if (on) { - target.sprite.add(CharSprite.State.SHIELDED); + target.sprite.add(CharSprite.State.HEARTS); //Statistics.TryUsedAnmy = true; } else - target.sprite.remove(CharSprite.State.SHIELDED); + target.sprite.remove(CharSprite.State.HEARTS); } @Override @@ -133,11 +112,11 @@ public class WandOfAnmy extends DamageWand { @Override public void fx(boolean on) { if (on) { - target.sprite.add(CharSprite.State.SHIELDED); + target.sprite.add(CharSprite.State.HEARTS); //Statistics.TryUsedAnmy = true; } else - target.sprite.remove(CharSprite.State.SHIELDED); + target.sprite.remove(CharSprite.State.HEARTS); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/legend/DiedCrossBow.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/legend/DiedCrossBow.java index 0a9d869b2..6219c5eb0 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/legend/DiedCrossBow.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/legend/DiedCrossBow.java @@ -1,6 +1,9 @@ package com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.legend; +import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero; + import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.shatteredpixel.shatteredpixeldungeon.Badges; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; @@ -9,7 +12,6 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; import com.shatteredpixel.shatteredpixeldungeon.effects.Splash; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.BlastParticle; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.SmokeParticle; -import com.shatteredpixel.shatteredpixeldungeon.items.bombs.Bomb; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.SpiritBow; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts.TippedDart; import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; @@ -38,7 +40,7 @@ public class DiedCrossBow extends LegendWeapon { baseMax = 20; min = Lmin(); max = Lmax(); - usesTargeting = true; + usesTargeting = cooldown == 0; } @Override @@ -46,6 +48,10 @@ public class DiedCrossBow extends LegendWeapon { return new DiedCrossBow.Recharge(); } + /** + * + */ + public class Recharge extends LegendWeapon.LegendWeaponBuff { @Override public boolean act() { @@ -142,7 +148,7 @@ public class DiedCrossBow extends LegendWeapon { @Override public int proc(Char attacker, Char defender, int damage) { - DiedCrossBow dartGun = Dungeon.hero.belongings.getItem(DiedCrossBow.class); + DiedCrossBow dartGun = hero.belongings.getItem(DiedCrossBow.class); damage = Random.NormalIntRange(dartGun.Lmin(), dartGun.Lmax()); this.explodeBomb(defender.pos); @@ -207,7 +213,7 @@ public class DiedCrossBow extends LegendWeapon { continue; } - DiedCrossBow diedCrossBow = Dungeon.hero.belongings.getItem(DiedCrossBow.class); + DiedCrossBow diedCrossBow = hero.belongings.getItem(DiedCrossBow.class); int dmg = Random.NormalIntRange(diedCrossBow.Lmin(),diedCrossBow.Lmin()); //those not at the center of the blast take less damage @@ -221,8 +227,10 @@ public class DiedCrossBow extends LegendWeapon { ch.damage(dmg, this); } - if (ch == Dungeon.hero && !ch.isAlive()) { - Dungeon.fail(Bomb.class); + if (ch == hero && !ch.isAlive()) { + Badges.BOMB(); + Dungeon.fail( getClass() ); + GLog.n( Messages.get(DiedCrossBow.class, "ondeath") ); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/legend/LegendWeapon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/legend/LegendWeapon.java index b4f784158..e0d6c988c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/legend/LegendWeapon.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/legend/LegendWeapon.java @@ -117,7 +117,8 @@ public abstract class LegendWeapon extends MeleeWeapon { return Messages.get(LegendWeapon.class, "stats_desc", legend, Messages.get(this, "king_desc"), Lmin(), Lmax()); } else { - return Messages.get(LegendWeapon.class, "typical_stats_desc", 9); + return Messages.get(LegendWeapon.class, "typical_stats_desc",legend, 9,Lmin(), + Lmax()); } } else { return ""; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/LaveCavesBossLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/LaveCavesBossLevel.java index 94b28338f..328733815 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/LaveCavesBossLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/LaveCavesBossLevel.java @@ -3,6 +3,7 @@ package com.shatteredpixel.shatteredpixeldungeon.levels; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.tiles.CustomTilemap; import com.watabou.noosa.Tilemap; + /*** * TODO LIST * 熔岩地块-【5层-EX子层】-火龙巢穴 @@ -74,6 +75,8 @@ public class LaveCavesBossLevel extends Level{ private static final short Y = Terrain.EMPTY; + private static final short V = Terrain.EMPTY_SP; + private static final short X = Terrain.ENTRANCE; private static final short G = Terrain.HIGH_GRASS; @@ -83,16 +86,16 @@ public class LaveCavesBossLevel extends Level{ private static final short L= Terrain.PEDESTAL; private static final int[] codedMap = { W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W, - W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,Y,Y,W,W,W,W,W,W,W, - W,W,W,W,W,W,W,W,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,Y,Y,W,W,W,W,W,W,W, + W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,Y,W,W,W,W,W,W,W, + W,W,W,W,W,W,W,W,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,W,W,W,W,W,W,W,W,W, W,W,W,W,W,W,R,R,R,R,R,R,R,R,R,R,R,R,R,R,Y,R,R,R,R,W,W,W,W,W,W,W, W,W,W,W,R,R,R,R,R,R,R,R,R,R,Y,Y,R,R,Y,R,R,R,R,R,Y,W,W,W,W,W,W,W, W,W,W,R,R,R,R,R,R,R,R,R,R,Y,G,Y,Y,Y,Y,R,R,R,R,Y,R,W,W,W,W,W,W,W, W,W,W,R,R,R,R,R,R,R,R,R,Y,Y,Y,Y,Y,Y,Y,Y,R,R,R,R,R,W,W,W,W,W,W,W, W,W,R,R,R,R,R,R,R,R,R,R,Y,Y,Y,Y,Y,R,R,Y,Y,R,R,R,Y,R,W,W,W,W,W,W, W,W,R,R,R,R,R,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,R,R,R,Y,Y,Y,Y,Y,Y,R,R,W,W,W,W, - W,W,R,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,R,R,R,Y,Y,Y,Y,Y,R,R,R,Y,Y,W,W, - W,R,Y,Y,Y,Y,R,R,Y,Y,Y,Y,Y,Y,L,Y,Y,Y,R,R,Y,Y,Y,Y,Y,R,R,R,Y,Y,W,W, + W,W,R,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,R,R,R,Y,Y,Y,Y,Y,R,R,R,W,W,W,W, + W,R,Y,Y,Y,Y,R,R,Y,Y,Y,Y,Y,Y,L,Y,Y,Y,R,R,Y,Y,Y,Y,Y,R,R,R,W,W,W,W, W,R,Y,R,R,R,R,R,R,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,R,R,R,W,W, W,Y,Y,R,R,R,R,R,R,R,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,R,R,Y,R,R,Y,Y,R,R,W,W, W,Y,Y,R,R,R,R,R,R,R,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,R,R,R,R,R,R,Y,Y,R,R,W,W, @@ -132,7 +135,9 @@ public class LaveCavesBossLevel extends Level{ vis.pos(0, 0); customTiles.add(vis); //((GameScene) RPD.scene()).addCustomTile(vis); - + CustomTilemap via = new townAbove(); + via.pos(0, 0); + customTiles.add(via); buildFlagMaps(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/Terrain.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/Terrain.java index 69b8aa429..10eca99ba 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/Terrain.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/Terrain.java @@ -58,6 +58,8 @@ public class Terrain { public static final int ALCHEMY = 28; public static final int WATER = 29; + + public static final int LAVA = 30; public static final int PASSABLE = 0x01; public static final int LOS_BLOCKING = 0x02; @@ -75,6 +77,7 @@ public class Terrain { flags[GRASS] = PASSABLE | FLAMABLE; flags[EMPTY_WELL] = PASSABLE; flags[WATER] = PASSABLE | LIQUID; + flags[LAVA] = AVOID | PIT | LIQUID; flags[WALL] = LOS_BLOCKING | SOLID; flags[DOOR] = PASSABLE | LOS_BLOCKING | FLAMABLE | SOLID; flags[OPEN_DOOR] = PASSABLE | FLAMABLE; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/NewsScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/NewsScene.java index 8da6e9d11..f8bb0f30f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/NewsScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/NewsScene.java @@ -183,13 +183,13 @@ public class NewsScene extends PixelScene { protected void createChildren() { bg = Chrome.get(Chrome.Type.GREY_BUTTON_TR); add(bg); - + String message = ""; if (Messages.lang() != Languages.CHINESE){ message += Messages.get(this, "english_warn"); } - + if (!News.articlesAvailable()){ if (SPDSettings.news()) { if (SPDSettings.WiFi() && !Game.platform.connectedToUnmeteredNetwork()) { @@ -225,7 +225,7 @@ public class NewsScene extends PixelScene { } if (message.startsWith("\n\n")) message = message.replaceFirst("\n\n", ""); - + text = PixelScene.renderTextBlock(message, 6); text.hardlight(CharSprite.WARNING); add(text); @@ -270,7 +270,7 @@ public class NewsScene extends PixelScene { icon(News.parseArticleIcon(article)); long lastRead = SPDSettings.newsLastRead(); if (lastRead > 0 && article.date.getTime() > lastRead) { - textColor(Window.TITLE_COLOR); + textColor(Window.SHPX_COLOR); } Calendar cal = Calendar.getInstance(); @@ -325,12 +325,11 @@ public class NewsScene extends PixelScene { ShatteredPixelDungeon.platform.openURI(link); } }; - link.setRect(0, height + 2, width, BTN_HEIGHT); - add(link); - resize(width, (int) link.bottom()); + link.setHeight(BTN_HEIGHT); + addToBottom(link); } } -} +} \ No newline at end of file diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/CharSprite.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/CharSprite.java index 6e62efb43..f7e377165 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/CharSprite.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/CharSprite.java @@ -92,7 +92,7 @@ public class CharSprite extends MovieClip implements Tweener.Listener, MovieClip public enum State { BURNING, LEVITATING, INVISIBLE, PARALYSED, FROZEN, ILLUMINATED, CHILLED, DARKENED, MARKED, HEALING, SHIELDED, - ROSESHIELDED,HALOMETHANEBURNING,FROSTBURNING,BUTTER,SPINVISIBLE,SMOKER + ROSESHIELDED,HALOMETHANEBURNING,FROSTBURNING,BUTTER,SPINVISIBLE,SMOKER,HEARTS } private int stunStates = 0; @@ -133,7 +133,7 @@ public class CharSprite extends MovieClip implements Tweener.Listener, MovieClip protected Emitter marked; protected Emitter levitation; protected Emitter healing; - + protected Emitter hearts; protected IceBlock iceBlock; protected DarkBlock darkBlock; protected TorchHalo light; @@ -469,6 +469,10 @@ public class CharSprite extends MovieClip implements Tweener.Listener, MovieClip case ROSESHIELDED: GameScene.effect( roseshield = new RoseHalo( this )); break; + case HEARTS: + hearts = emitter(); + hearts.pour(Speck.factory(Speck.HEART), 0.5f); + break; } } @@ -567,6 +571,11 @@ public class CharSprite extends MovieClip implements Tweener.Listener, MovieClip roseshield.putOut(); } break; + case HEARTS: + if (hearts != null){ + hearts.on = false; + hearts = null; + } } } @@ -600,7 +609,9 @@ public class CharSprite extends MovieClip implements Tweener.Listener, MovieClip if (flashTime > 0 && (flashTime -= Game.elapsed) <= 0) { resetColor(); } - + if (hearts != null){ + hearts.visible = visible; + } if (burning != null) { burning.visible = visible; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/SkullShamanSprite.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/SkullShamanSprite.java index c28b8b9f5..ecb20d77b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/SkullShamanSprite.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/SkullShamanSprite.java @@ -9,14 +9,14 @@ public class SkullShamanSprite extends MobSprite { this.texture("SRPD/SkullShaman.png"); TextureFilm var1 = new TextureFilm(this.texture, 12, 15); this.idle = new Animation(2, true); - this.idle.frames(var1, new Object[]{0, 0, 0, 1, 0, 0, 1, 1}); + this.idle.frames(var1, 0, 0, 0, 1, 0, 0, 1, 1); this.run = new Animation(12, true); - this.run.frames(var1, new Object[]{4, 5, 6, 7}); + this.run.frames(var1, 4, 5, 6, 7); this.attack = new Animation(12, false); - this.attack.frames(var1, new Object[]{2, 3, 0}); + this.attack.frames(var1, 2, 3, 0); this.zap = this.attack.clone(); this.die = new Animation(12, false); - this.die.frames(var1, new Object[]{8, 9, 10}); + this.die.frames(var1, 8, 9, 10); this.play(this.idle); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/OptionSlider.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/OptionSlider.java index b28fafa37..e55a2d5bc 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/OptionSlider.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/OptionSlider.java @@ -49,7 +49,9 @@ public abstract class OptionSlider extends Component { private ColorBlock sliderBG; private ColorBlock[] sliderTicks; private float tickDist; - + public int getTitleTextSize(){ + return 9; + } public OptionSlider(String title, String minTxt, String maxTxt, int minVal, int maxVal){ super(); @@ -93,7 +95,7 @@ public abstract class OptionSlider extends Component { add( BG = Chrome.get(Chrome.Type.RED_BUTTON)); BG.alpha(0.5f); - add(title = PixelScene.renderTextBlock(9)); + add(title = PixelScene.renderTextBlock(getTitleTextSize())); add(this.minTxt = PixelScene.renderTextBlock(6)); add(this.maxTxt = PixelScene.renderTextBlock(6)); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/StatusPane.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/StatusPane.java index 2a0e2e426..604d1fd06 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/StatusPane.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/StatusPane.java @@ -116,6 +116,12 @@ public class StatusPane extends Component { this.large = large; + if (SPDSettings.ClassUI()) { + asset = Assets.Interfaces.STATUS; + } else { + asset = Assets.Interfaces.STATUS_DARK; + } + if (large) bg = new NinePatch( asset, 0, 64, 41, 39, 33, 0, 4, 0 ); else bg = new NinePatch( asset, 0, 0, 128, 36, 85, 0, 45, 0 ); add( bg ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Window.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Window.java index cea558968..bdf9cd0b0 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Window.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Window.java @@ -74,7 +74,7 @@ public class Window extends Group implements Signal.Listener { public static final int BLUE_COLOR = 0x0000FF; public static final int CBLACK = 0x808080; - + public final void setHeight(int height) { resize(width, height); } public Window() { this( 0, 0, Chrome.get( Chrome.Type.WINDOW ) ); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/S_Changes.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/S_Changes.java index 47af09af5..e62ce5190 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/S_Changes.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/S_Changes.java @@ -346,7 +346,7 @@ public class S_Changes { changes.addButton( new ChangeButton(new Image(new RatSprite()), "老鼠加强", "老鼠的_攻击和生存能力_都得到了提升")); - changes.addButton( new ChangeButton(new Image(new SnakeSprite()), "下水道巨蛇加强", + changes.addButton( new ChangeButton(new Image(new SnakeSprite()), "密林巨蛇加强", "巨蛇的_攻击和生存能力_都得到了提升")); } @@ -492,7 +492,7 @@ public class S_Changes { changeInfo14.hardlight(16736000); arrayList.add(changeInfo14); changeInfo14.addButton(new ChangeButton(new Image("sprites/spinner.png", 144, 0, 16, 16), "BUG修复", "1.修复_酸蚀法杖_崩溃闪退问题\n\n2.修复_钥匙剑_变量问题[修复者:_Ren_]\n\n3.修复楼层_重置闪退_问题,理论上得到解决")); - changeInfo14.addButton(new ChangeButton(new Image("sprites/snake.png", 0, 0, 14, 16), "新怪物", "_下水道巨蛇_\n\n_下水道3层开始刷新_")); + changeInfo14.addButton(new ChangeButton(new Image("sprites/snake.png", 0, 0, 14, 16), "新怪物", "_密林巨蛇_\n\n_密林3层开始刷新_")); changeInfo14.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.DG6), "新法杖", "幻蓝_焰浪_神杖\n\n这根法杖由_蓝磷元素_制成,饰以_魔紫树叶_这使它看起来相当霸气。它的顶端噼啪作响嘶嘶而鸣,渴望着释放其_强大的魔法。_")); ChangeInfo changeInfo15 = new ChangeInfo("V0.2.5-6", true, ""); changeInfo15.hardlight(65535); @@ -530,7 +530,7 @@ public class S_Changes { changeInfos.add(changes); changes.addButton( new ChangeButton(new Image("SRPD/TorchHuntsman.png", 0, 0, 16, 16), "怪物新改动", "新怪物!!!\n" + - "-下水道层:\n-_棕色老鼠_,\n-_灰黑老鼠_,\n-_老年老鼠_,\n(来自OGPD)" + + "-密林层:\n-_棕色老鼠_,\n-_灰黑老鼠_,\n-_老年老鼠_,\n(来自OGPD)" + "\n-监狱层:_赏金猎人_\n(来自SRPD)"+ "\n-矿洞层:_Flame-B01_\n(来自OGPD)"+ "\n后续层数正在开发,敬请期待\n\n"+ @@ -556,7 +556,7 @@ public class S_Changes { changes.addButton( new ChangeButton(new Image(Assets.Environment.TILES_SEWERS, 48, 48, 16 , 16), "房间改动", "房间数量得到了调整,具体改动如下表\n" + - "-下水道层:房间数量_9个_,默认刷怪数量_20个_,额外刷怪_7个_\n" + + "-密林层:房间数量_9个_,默认刷怪数量_20个_,额外刷怪_7个_\n" + "-监狱层:房间数量_8个_,默认刷怪数量_26个_,额外刷怪_11个_\n"+ "-矿洞层:房间数量_10个_,默认刷怪数量_30个_,额外刷怪_16个_\n"+ "-矮人层:房间数量_12个_,默认刷怪数量_21个_,额外刷怪_6个_\n"+ 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 425955975..252b90a2e 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 @@ -142,6 +142,39 @@ public class vM0_6_7_X_Changes { changes.addButton(new ChangeButton(i, ("熔岩火龙"), ("丛林暴乱的真相"))); + changes = new ChangeInfo("v0.6.5.0-Alpha4", 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), ("电子斗蛐蛐v0.2"), + ("开发者模式怪物放置器拥有更多功能,欢迎尝试!另追加黏咕,史莱姆王,豺狼炼药长老,豺狼萨满长老,Flame-C01"))); + + changes.addButton(new ChangeButton(Icons.get(Icons.DISPLAY), ("信息栏滚动"), + ("在游戏缩放较大或者拥有较多词条时,该项会很有用。"))); + + changes.addButton(new ChangeButton(Icons.get(Icons.BADGES), ("新徽章:碎片飞溅"), + ("又是一个死亡徽章,新人:悲鸣 因为意味着另类死亡爱好者多了一个新徽章(未解锁该徽章的就更麻烦了)"))); + + changes = new ChangeInfo("改动", false, null); + changes.hardlight(Window.CYELLOW); + changeInfos.add(changes); + + changes.addButton(new ChangeButton(new SalamanderSprites(), ("深蓝蝾螈"), + ("修复被深蓝蝾螈击败不会记录在排行榜的问题。"))); + + changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.DIEDCROSSBOW), ("重型弩炮"), + ("修复使用还会扣减飞镖的问题。"))); + + changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.WAND_KCX), ("共生法杖"), + ("修复共生法杖可能能被永续的问题。"))); + + 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_06X85"))); + changes = new ChangeInfo("v0.6.5.0-Alpha3", true, ""); changes.hardlight(Window.TITLE_COLOR); changeInfos.add(changes); @@ -1233,7 +1266,7 @@ public class vM0_6_7_X_Changes { changes.addButton(new ChangeButton(new OGPDNQHZTT(), ("OGPD老鼠组"), ("曾经的魔绫代表怪物,如今也正式退出魔绫的舞台。2021.2.21--2023.3.24(R.I.P.)"))); - changes.addButton(new ChangeButton(new SnakeSprite(), ("下水道巨蛇"), + changes.addButton(new ChangeButton(new SnakeSprite(), ("密林巨蛇"), ("破碎的代表怪物,由于不符合魔绫的世界观,故而被移除。"))); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndHardNotification.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndHardNotification.java index 7770bc1ec..17556963c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndHardNotification.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndHardNotification.java @@ -53,8 +53,7 @@ public class WndHardNotification extends WndTitledMessage{ }; btnOkay.setRect(0, height + GAP, width, 16); btnOkay.enable(false); - add(btnOkay); - + addToBottom(btnOkay); resize(width, (int) btnOkay.bottom()); } @@ -80,4 +79,4 @@ public class WndHardNotification extends WndTitledMessage{ public void onBackPressed() { if (timeLeft <= 0 ) super.onBackPressed(); } -} +} \ No newline at end of file diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndTitledMessage.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndTitledMessage.java index 9debd52f9..a189fb222 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndTitledMessage.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndTitledMessage.java @@ -23,47 +23,126 @@ package com.shatteredpixel.shatteredpixeldungeon.windows; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextBlock; +import com.shatteredpixel.shatteredpixeldungeon.ui.ScrollPane; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.watabou.noosa.Image; import com.watabou.noosa.ui.Component; public class WndTitledMessage extends Window { - protected static final int WIDTH_MIN = 120; - protected static final int WIDTH_MAX = 220; - protected static final int GAP = 2; + protected static int maxHeight() { + return (int) (PixelScene.uiCamera.height * 0.9); + } - public WndTitledMessage( Image icon, String title, String message ) { - - this( new IconTitle( icon, title ), message ); + protected static final int WIDTH_MIN = 120; + protected static final int WIDTH_MAX = 220; + protected static final int GAP = 2; + + public WndTitledMessage(Image icon, String title, String message) { + + this(icon, title, message, WIDTH_MAX); } - - public WndTitledMessage( Component titlebar, String message ) { + + public WndTitledMessage(Image icon, String title, String message, int maxWidth) { + + this(new IconTitle(icon, title), message, maxWidth); + + } + + ScrollPane sp; + + public WndTitledMessage(Component titlebar, String message) { + this(titlebar, message, WIDTH_MAX); + } + + public WndTitledMessage(Component titlebar, String message, int maxWidth) { super(); int width = WIDTH_MIN; - titlebar.setRect( 0, 0, width, 0 ); + titlebar.setRect(0, 0, width, 0); add(titlebar); - RenderedTextBlock text = PixelScene.renderTextBlock( 6 ); - text.text( message, width ); - text.setPos( titlebar.left(), titlebar.bottom() + 2*GAP ); - add( text ); + RenderedTextBlock text = PixelScene.renderTextBlock(6); + text.text(message, width); + text.setPos(titlebar.left(), titlebar.bottom() + 2 * GAP); while (PixelScene.landscape() && text.bottom() > (PixelScene.MIN_HEIGHT_L - 10) - && width < WIDTH_MAX){ + && width < maxWidth) { width += 20; titlebar.setRect(0, 0, width, 0); text.setPos( titlebar.left(), titlebar.bottom() + 2*GAP ); text.maxWidth(width); + + titlebar.setWidth(width); + text.setPos(titlebar.left(), titlebar.bottom() + 2 * GAP); } + Component comp = new Component(); + comp.add(text); + text.setPos(0, GAP); + comp.setSize(text.width(), text.height() + GAP * 2); + resize(width, (int) Math.min((int) comp.bottom() + 2 + titlebar.height() + GAP, maxHeight())); + + add(sp = new ScrollPane(comp)); + sp.setRect(titlebar.left(), titlebar.bottom() + GAP, comp.width(), Math.min((int) comp.bottom() + 2, maxHeight() - titlebar.bottom() - GAP)); bringToFront(titlebar); - - resize( width, (int)text.bottom() + 2 ); } -} + + @Override + public void offset(int xOffset, int yOffset) { + super.offset(xOffset, yOffset); + // refresh the scrollbar pane + sp.setPos(sp.left(), sp.top()); + } + + // adds to the bottom of a titled message, below the message itself. + // this only works ONCE currently. + public final void addToBottom(Component c) { + addToBottom(c, GAP); + } + + public final void addToBottom(Component c, int gap) { + addToBottom(c, gap, 0); + } + + public void addToBottom(Component c, int gapBefore, int gapAfter) { + // attempt to place normally. + c.setRect(0, height + gapBefore, width, c.height() + gapAfter); // assumes there is space at the bottom first. note that I'm baking in the bottom spacing into the component itself + add(c); + // in order to make things fit, we need to change the size of the scrollbar to make the component fit properly. + // fixme even though it *feels* like I should be able to stop here if everything fits, I can't. why? + setHeight((int) Math.min(c.bottom(), maxHeight())); + float y; c.setY(y = height - c.height()); // put the component into its final position. + // scrollbar height is reduced to respect top spacing + sp.setRect(0, sp.top(), width, y - sp.top() - gapBefore); + } + + // fixme this wrapper component is very unable to moved after it's placed. If I need to move it again, I won't be able to. + // should be able to simulate the previous behavior... + public Component addToBottom(int gapBefore, int gapAfter, Component... components) { + // this ensures that things are formatted correctly vertically. + Component wrapper = new Component(); + if(components.length == 0) return wrapper; + float top=Float.MAX_VALUE, bottom=Float.MIN_VALUE; + for(Component c : components) { + top = Math.min(top, c.top()); + bottom = Math.max(bottom, c.bottom()); + wrapper.add(c); + } + wrapper.setRect(0, top, width, bottom-top); + addToBottom(wrapper, gapBefore, gapAfter); + + top -= wrapper.top(); + + for(Component c : components) c.setY(c.top() - top); + + return wrapper; + } + // yes the order is different. deal with it. + public Component addToBottom(int gap, Component... components) { return addToBottom(gap, 0, components); } + public Component addToBottom(Component... components) { return addToBottom(GAP, components); } +} \ No newline at end of file diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndTradeItem.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndTradeItem.java index 5c345de9f..fe4b9ec86 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndTradeItem.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndTradeItem.java @@ -80,6 +80,7 @@ public class WndTradeItem extends WndInfoItem { hide(); } }; + btnSell.setHeight( BTN_HEIGHT ); btnSell.setRect( 0, pos + GAP, width, BTN_HEIGHT ); btnSell.icon(new ItemSprite(ItemSpriteSheet.GOLD)); add( btnSell ); @@ -163,6 +164,7 @@ public class WndTradeItem extends WndInfoItem { btnStole.alpha(0.3f); btnStole.active=false; } + btnStole.setRect( 0, pos + GAP, width, BTN_HEIGHT ); btnStole.icon(Statistics.fireGirlnoshopping && !Statistics.deadshoppingdied ? new FireMagicGirlSprite() : new ShopGuardDead.ShopGuardianRedSprite());