Update V0.6.1.0 Beta7.2

This commit is contained in:
LingASDJ 2023-05-15 00:01:27 +08:00
parent a2da7d46d7
commit f585001067
24 changed files with 103 additions and 34 deletions

View File

@ -47,7 +47,7 @@ import com.watabou.utils.FileUtils;
public class AndroidGame extends AndroidApplication { public class AndroidGame extends AndroidApplication {
public static AndroidApplication instance; public static AndroidApplication instance;
private FirebaseAnalytics mFirebaseAnalytics;
private static AndroidPlatformSupport support; private static AndroidPlatformSupport support;
@Override @Override

View File

@ -31,9 +31,10 @@ import android.widget.TextView;
import com.badlogic.gdx.graphics.g2d.freetype.FreeType; import com.badlogic.gdx.graphics.g2d.freetype.FreeType;
import com.badlogic.gdx.utils.GdxNativesLoader; import com.badlogic.gdx.utils.GdxNativesLoader;
import com.google.firebase.analytics.FirebaseAnalytics;
public class AndroidLauncher extends Activity { public class AndroidLauncher extends Activity {
public FirebaseAnalytics mFirebaseAnalytics;
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {

View File

@ -17,8 +17,8 @@ allprojects {
appName = 'Magic Ling Pixel Dungeon' appName = 'Magic Ling Pixel Dungeon'
appPackageName = 'com.ansdomagiclingpixeldungeon.ling' appPackageName = 'com.ansdomagiclingpixeldungeon.ling'
appVersionCode =800865 appVersionCode =800866
appVersionName = '0.6.1.0-Beta7(P3)' appVersionName = '0.6.1.0-Beta7.2(P3)'
appJavaCompatibility = JavaVersion.VERSION_11 appJavaCompatibility = JavaVersion.VERSION_11

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 827 B

After

Width:  |  Height:  |  Size: 959 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 621 B

After

Width:  |  Height:  |  Size: 825 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -100,7 +100,7 @@ actors.buffs.puresoul.desc=灯火前行,光芒前路。没有什么东西可
### Magic Say debuffs ### Magic Say debuffs
actors.buffs.magicgirldebuff.magicgirlsaynostr.name=魔女的低语-无力 actors.buffs.magicgirldebuff.magicgirlsaynostr.name=魔女的低语-无力
actors.buffs.magicgirldebuff.magicgirlsaynostr.desc=无力将会吞噬你自己,而幕后黑手仍然在背后暗暗发笑。\n\n本大层力量将会-3点,下一大层恢复。 actors.buffs.magicgirldebuff.magicgirlsaynostr.desc=无力将会吞噬你自己,而幕后黑手仍然在背后暗暗发笑。\n\n本大层力量将会-1点,下一大层恢复。
actors.buffs.magicgirldebuff.magicgirlsaycursed.name=魔女的低语-束缚 actors.buffs.magicgirldebuff.magicgirlsaycursed.name=魔女的低语-束缚
actors.buffs.magicgirldebuff.magicgirlsaycursed.desc=束缚只是我的一个考验,而失去信心的你。想必比我这个考验更可怕吧。\n\n本大层装备会被诅咒下一大层失效 actors.buffs.magicgirldebuff.magicgirlsaycursed.desc=束缚只是我的一个考验,而失去信心的你。想必比我这个考验更可怕吧。\n\n本大层装备会被诅咒下一大层失效
@ -128,10 +128,10 @@ actors.buffs.clearbleesdgoodbuff.blessnomoney.name=纯洁的祝福-富饶
actors.buffs.clearbleesdgoodbuff.blessnomoney.desc=魔女的气息在我们身旁徘徊,商人们一定会对你毕恭毕敬。\n\n本大层商店全场打3折 actors.buffs.clearbleesdgoodbuff.blessnomoney.desc=魔女的气息在我们身旁徘徊,商人们一定会对你毕恭毕敬。\n\n本大层商店全场打3折
actors.buffs.clearbleesdgoodbuff.blessmobdied.name=纯洁的祝福-安息 actors.buffs.clearbleesdgoodbuff.blessmobdied.name=纯洁的祝福-安息
actors.buffs.clearbleesdgoodbuff.blessmobdied.desc=安息吧!怪物们!!!\n\n本大层英雄物理伤害x2! actors.buffs.clearbleesdgoodbuff.blessmobdied.desc=安息吧!怪物们!!!\n\n本大层英雄物理伤害x1.5!
actors.buffs.clearbleesdgoodbuff.blessmixshiled.name=纯洁的祝福-守护 actors.buffs.clearbleesdgoodbuff.blessmixshiled.name=纯洁的祝福-守护
actors.buffs.clearbleesdgoodbuff.blessmixshiled.desc=守护我们最后的种子!\n\n本大层英雄在血满的情况下每100回合获得一些护盾。 actors.buffs.clearbleesdgoodbuff.blessmixshiled.desc=守护我们最后的种子!\n\n本大层英雄在血满的情况下每150回合获得一些护盾。
actors.buffs.clearbleesdgoodbuff.blessimmune.name=纯洁的祝福-隐没 actors.buffs.clearbleesdgoodbuff.blessimmune.name=纯洁的祝福-隐没
actors.buffs.clearbleesdgoodbuff.blessimmune.desc=隐没在这人群之中,我们便是超凡脱俗的个体\n\n本大层英雄免疫诅咒效果和减少40%的物理伤害。 actors.buffs.clearbleesdgoodbuff.blessimmune.desc=隐没在这人群之中,我们便是超凡脱俗的个体\n\n本大层英雄免疫诅咒效果和减少40%的物理伤害。

View File

@ -513,5 +513,6 @@ ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x62=-V0.6.1-Beta6\n1.修复一些错
ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x63=-V0.6.1-Beta7\n1.修复染血金币控制终端的一些小错误\n2.修复魔法坐标房间重复生成的问题 ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x63=-V0.6.1-Beta7\n1.修复染血金币控制终端的一些小错误\n2.修复魔法坐标房间重复生成的问题
ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x64=-V0.6.1-Beta7.2\n1.修复一些小错误\n2.少量UI迭代优化
//ui.changelist.mlpd.vm0_5_x_changes.xxx// //ui.changelist.mlpd.vm0_5_x_changes.xxx//

View File

@ -573,9 +573,9 @@ public abstract class Char extends Actor {
//TODO 审判 削弱10%伤害 //TODO 审判 削弱10%伤害
if ( buff(MagicGirlSayKill.class) != null ){ if ( buff(MagicGirlSayKill.class) != null ){
damage *= 0.90f; damage *= 0.90f;
//TODO 安息 x2伤害 //TODO 安息 x1.5伤害
} else if ( buff(BlessMobDied.class) != null ) { } else if ( buff(BlessMobDied.class) != null ) {
damage *= 2f; damage *= 1.5f;
} }
if ( buff(AnkhInvulnerability.GodDied.class) != null ) { if ( buff(AnkhInvulnerability.GodDied.class) != null ) {
damage *= 2.25f; damage *= 2.25f;

View File

@ -30,7 +30,7 @@ public class BlessGoRead extends Buff {
} }
if(hero.lanterfire > 60 ) { if(hero.lanterfire > 60 ) {
float healDelay = 10f - 10*0.9f; float healDelay = 10f - 10*0.5f;
healDelay /= 0.1f; healDelay /= 0.1f;
//effectively 1HP at lvl 0-5, 2HP lvl 6-8, 3HP lvl 9, and 5HP lvl 10. //effectively 1HP at lvl 0-5, 2HP lvl 6-8, 3HP lvl 9, and 5HP lvl 10.
target.HP = Math.min( target.HT, target.HP + (int)Math.ceil(5/healDelay)); target.HP = Math.min( target.HT, target.HP + (int)Math.ceil(5/healDelay));

View File

@ -27,12 +27,12 @@ public class BlessMixShiled extends Buff {
if(Dungeon.hero.buff(BlessMixShiled.class) != null && hero.HT == hero.HP){ if(Dungeon.hero.buff(BlessMixShiled.class) != null && hero.HT == hero.HP){
if(Dungeon.depth <= 5) { if(Dungeon.depth <= 5) {
Buff.affect(hero, Barrier.class).setShield(((60))); Buff.affect(hero, Barrier.class).setShield(((30)));
} else { } else {
Buff.affect(hero, Barrier.class).setShield(((60) * Dungeon.depth / 5)); Buff.affect(hero, Barrier.class).setShield(((20) * Dungeon.depth / 5));
} }
spend(100f); spend(150f);
GLog.w("你的血量已满,奖励你一些护盾值。"); GLog.w("你的血量已满,奖励你"+(Dungeon.depth<=5 ? 20 : (20) * Dungeon.depth / 5)+"护盾值。");
} }
spend(interval); spend(interval);

View File

@ -320,7 +320,7 @@ public class Hero extends Char {
//无力 本大层-3力量 : 坚毅 本大层力量+2 //无力 本大层-3力量 : 坚毅 本大层力量+2
if(Dungeon.hero.buff(MagicGirlSayNoSTR.class) != null){ if(Dungeon.hero.buff(MagicGirlSayNoSTR.class) != null){
strBonus -= 3; strBonus -= 1;
} else if(Dungeon.hero.buff(BlessGoodSTR.class) != null) { } else if(Dungeon.hero.buff(BlessGoodSTR.class) != null) {
strBonus += 2; strBonus += 2;
} }

View File

@ -212,7 +212,8 @@ public class Bestiary {
return new ArrayList<>(Arrays.asList( return new ArrayList<>(Arrays.asList(
Bat.class, Bat.class,
Brute.class,Spinner.class, Brute.class,Spinner.class,
DM100.class,RedSwarm.class)); DM100.class,RedSwarm.class,MolotovHuntsman.class,
MolotovHuntsman.class));
case 14: case 14:
return new ArrayList<>(Arrays.asList( return new ArrayList<>(Arrays.asList(
@ -248,15 +249,15 @@ public class Bestiary {
case 19: case 19:
//1x elemental, 1x warlock, 2x monk, 3x golem //1x elemental, 1x warlock, 2x monk, 3x golem
return new ArrayList<>(Arrays.asList( return new ArrayList<>(Arrays.asList(
Monk.class,IceGolem.class, Monk.class,
Golem.class,ShieldHuntsman.class)); Golem.class,ShieldHuntsman.class));
case 20: case 20:
//1x elemental, 1x warlock, 2x monk, 3x golem //1x elemental, 1x warlock, 2x monk, 3x golem
return new ArrayList<>(Arrays.asList( return new ArrayList<>(Arrays.asList(
Elemental.random(), Elemental.random(),
Warlock.class, Warlock.class, Warlock.class, Warlock.class,
Monk.class, IceGolem.class, Monk.class,
Golem.class, IceGolem.class, Golem.class,Ice_Scorpio.class)); Golem.class, Golem.class,Ice_Scorpio.class));
case 21: case 21:
//3x succubus, 3x evil eye //3x succubus, 3x evil eye
@ -299,22 +300,22 @@ public class Bestiary {
// Sewers // Sewers
default: default:
return; return;
case 9: case 4:
if (Random.Float() < 0.025f) rotation.add(Thief.class); if (Random.Float() < 0.025f) rotation.add(Thief.class);
return; return;
// Prison // Prison
case 19: case 9:
if (Random.Float() < 0.025f) rotation.add(Bat.class); if (Random.Float() < 0.025f) rotation.add(Bat.class);
return; return;
// Caves // Caves
case 29: case 14:
if (Random.Float() < 0.025f) rotation.add(Ghoul.class); if (Random.Float() < 0.025f) rotation.add(Ghoul.class);
return; return;
// City // City
case 39: case 19:
if (Random.Float() < 0.025f) rotation.add(Succubus.class); if (Random.Float() < 0.025f) rotation.add(Succubus.class);
return; return;
} }
@ -327,8 +328,8 @@ public class Bestiary {
Class<? extends Mob> cl = rotation.get(i); Class<? extends Mob> cl = rotation.get(i);
if (cl == Rat.class) { if (cl == Rat.class) {
cl = Albino.class; cl = Albino.class;
} else if (cl == Slime.class) { } else if (cl == Guard.class) {
cl = CausticSlime.class; cl = SRPDHBLR.class;
} else if (cl == Thief.class) { } else if (cl == Thief.class) {
cl = Bandit.class; cl = Bandit.class;
} else if (cl == Brute.class) { } else if (cl == Brute.class) {
@ -337,8 +338,14 @@ public class Bestiary {
cl = DM201.class; cl = DM201.class;
} else if (cl == Monk.class) { } else if (cl == Monk.class) {
cl = Senior.class; cl = Senior.class;
} else if (cl == Golem.class) {
cl = IceGolem.class;
} else if (cl == Scorpio.class) { } else if (cl == Scorpio.class) {
cl = Acidic.class; cl = Acidic.class;
} else if (cl == Spinner.class) {
cl = GnollShiled.class;
} else if (cl == FireGhost.class) {
cl = MolotovHuntsman.class;
} }
rotation.set(i, cl); rotation.set(i, cl);
} }

View File

@ -24,7 +24,7 @@ public class GnollShiled extends Gnoll {
public GnollShiled() { public GnollShiled() {
this.spriteClass = BombGnollTricksterSprites.class; this.spriteClass = BombGnollTricksterSprites.class;
this.HT = HP = Random.Int(50,210); this.HT = HP = Random.Int(80,120);
this.defenseSkill = 5; this.defenseSkill = 5;
this.EXP = 8; this.EXP = 8;
this.state = this.WANDERING; this.state = this.WANDERING;
@ -114,8 +114,14 @@ public class GnollShiled extends Gnoll {
public void die(Object cause) { public void die(Object cause) {
GnollShiled.super.die(cause); GnollShiled.super.die(cause);
RedDragon.Quest.process();
//赋予红龙权限 //赋予红龙权限
for (Mob mob : Dungeon.level.mobs.toArray(new Mob[0])) {
if (mob instanceof RedDragon && mob.isAlive()) {
RedDragon.Quest.process();
}
}
} }
public void storeInBundle(Bundle bundle) { public void storeInBundle(Bundle bundle) {

View File

@ -378,7 +378,7 @@ public class Generator {
GreenSword.class, GreenSword.class,
}; };
WEP_T3.probs = new float[]{ 1, 5, 5, 4, 0, 4 ,3,5,3,6,0}; WEP_T3.probs = new float[]{ 1, 5, 5, 4, 4, 4 ,3,5,3,6,0};
WEP_T4.classes = new Class<?>[]{ WEP_T4.classes = new Class<?>[]{
Longsword.class, Longsword.class,

View File

@ -12,7 +12,7 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.particles.FlameParticle;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.watabou.noosa.audio.Sample; import com.watabou.noosa.audio.Sample;
//TODO 娱乐模式加入
public class ElixirOfNukeCole extends Elixir { public class ElixirOfNukeCole extends Elixir {
{ {
@ -24,7 +24,7 @@ public class ElixirOfNukeCole extends Elixir {
Buff.affect(hero, HaloFireImBlue.class).set(HaloFireImBlue.DURATION); Buff.affect(hero, HaloFireImBlue.class).set(HaloFireImBlue.DURATION);
Buff.affect(hero, Haste.class, 10f); Buff.affect(hero, Haste.class, 10f);
Buff.affect(hero, WellFed.class).resetload(); Buff.affect(hero, WellFed.class).resetload();
Buff.affect(hero, Barrier.class).setShield((int) (0.6f * hero.HT + 10)); Buff.affect(hero, Barrier.class).setShield((int) (0.3f * hero.HT + 10));
Buff.affect(hero, Healing.class).setHeal((int) (0.4f * hero.HT + 5), 0.2f, 0); Buff.affect(hero, Healing.class).setHeal((int) (0.4f * hero.HT + 5), 0.2f, 0);
Sample.INSTANCE.play( Assets.Sounds.BURNING ); Sample.INSTANCE.play( Assets.Sounds.BURNING );
hero.sprite.emitter().burst(FlameParticle.FACTORY, 10); hero.sprite.emitter().burst(FlameParticle.FACTORY, 10);

View File

@ -49,6 +49,7 @@ import java.util.ArrayList;
public class vM0_6_7_X_Changes { public class vM0_6_7_X_Changes {
public static void addAllChanges(ArrayList<ChangeInfo> changeInfos) { public static void addAllChanges(ArrayList<ChangeInfo> changeInfos) {
add_v0_6_35_Changes(changeInfos);
add_v0_6_34_Changes(changeInfos); add_v0_6_34_Changes(changeInfos);
add_v0_6_33_Changes(changeInfos); add_v0_6_33_Changes(changeInfos);
add_v0_6_32_Changes(changeInfos); add_v0_6_32_Changes(changeInfos);
@ -86,6 +87,47 @@ public class vM0_6_7_X_Changes {
add_v0_6_0_Changes(changeInfos); add_v0_6_0_Changes(changeInfos);
} }
public static void add_v0_6_35_Changes( ArrayList<ChangeInfo> changeInfos ) {
ChangeInfo changes = new ChangeInfo("v0.6.1.0-Beta7.2(P3)", true, "");
changes.hardlight(Window.TITLE_COLOR);
changeInfos.add(changes);
changes = new ChangeInfo("新内容", false, null);
changes.hardlight(Window.GREEN_COLOR);
changeInfos.add(changes);
Image issxsaxs =new MolotovHuntsmanSprite();
issxsaxs.scale.set(PixelScene.align(0.8f));
changes.addButton(new ChangeButton(issxsaxs, ("精英刷怪机制调整"),
("在原有基础上修改以下精英怪:\n" +
"魔像---》冰魔像 精英\n" +
"监狱守卫---》赏金猎人 精英\n"+
"洞穴蜘蛛---》豺狼炼药长老 精英\n" +
"红色怨灵---》血月火把猎人 精英\n\n" +
"同时现阶段有关于上面的正常刷怪被移除,也就是说冰魔像他们不再是常规刷新了。")));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.REDDRAGON), "核子可乐回归",
"核子可乐现在回归正常模式,且仅在困难难度前获得,并且效果有所减弱。"));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.LANTERNB), "部分灯火Buff调整",
"部分灯火buff都进行了一定的调整\n" +
"1.纯洁的祝福--前路\n调整回血效果减半\n\n" +
"2.魔女的低语--无力\n调整效果持续期间力量从-3调整至-1\n\n" +
"3.纯洁的祝福--安息\n调整物理伤害从x2调整至x1.5\n\n" +
"4.纯洁的祝福--守护\n调整效果持续期间每150回合获得一些护盾"));
changes = new ChangeInfo("改动", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
changes.addButton(new ChangeButton(new Image(Assets.Interfaces.HAICONS, 32, 0, 16, 16), "难度系统",
"难度系统现在困难模式暂时去除,数值的困难太敷衍,难度系统需要更多时间制作,敬请期待。"));
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_06X64")));
}
public static void add_v0_6_34_Changes( ArrayList<ChangeInfo> changeInfos ) { public static void add_v0_6_34_Changes( ArrayList<ChangeInfo> changeInfos ) {
ChangeInfo changes = new ChangeInfo("v0.6.1.0-Beta7(P3)", true, ""); ChangeInfo changes = new ChangeInfo("v0.6.1.0-Beta7(P3)", true, "");
changes.hardlight(Window.TITLE_COLOR); changes.hardlight(Window.TITLE_COLOR);

View File

@ -100,8 +100,7 @@ public class WndDLCX extends Window {
cb.checked(false); cb.checked(false);
cb.visible=false; cb.visible=false;
} }
cb.active = editable;
cb.difficultyConduct = i;
pos += GAP; pos += GAP;
cb.setRect(0, pos, WIDTH - 16, BTN_HEIGHT); cb.setRect(0, pos, WIDTH - 16, BTN_HEIGHT);
@ -109,6 +108,15 @@ public class WndDLCX extends Window {
cb.setSize(WIDTH, BTN_HEIGHT); cb.setSize(WIDTH, BTN_HEIGHT);
} }
if (i == Difficulty.DifficultyConduct.HARD){
cb.alpha(0.7f);
cb.active=false;
cb.setPos(0,9000);
} else {
cb.active = editable;
cb.difficultyConduct = i;
}
content.add(cb); content.add(cb);
boxes.add(cb); boxes.add(cb);
if (i != Difficulty.DifficultyConduct.NULL) { if (i != Difficulty.DifficultyConduct.NULL) {
@ -124,7 +132,10 @@ public class WndDLCX extends Window {
infos.add(info); infos.add(info);
Image icon = new Image(Assets.Interfaces.HAICONS, (i.ordinal() - 1) * 16, 0, 16, 16); Image icon = new Image(Assets.Interfaces.HAICONS, (i.ordinal() - 1) * 16, 0, 16, 16);
icon.x = cb.left()+1; icon.x = cb.left()+1;
icon.y = cb.top()+1; if (i == Difficulty.DifficultyConduct.HARD) {
info.setPos(0,9000);
}
icon.y = cb.top() + 1;
content.add(icon); content.add(icon);
} }

View File

@ -36,6 +36,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Degrade;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.RedDragon; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.RedDragon;
import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor; import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfNukeCole;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
@ -134,7 +135,7 @@ public class WndRedDragon extends Window {
reward.identify(); reward.identify();
if (reward.doPickUp( hero )) { if (reward.doPickUp( hero )) {
GLog.i( Messages.get(hero, "you_now_have", reward.name()) ); GLog.i( Messages.get(hero, "you_now_have", reward.name()) );
//new ElixirOfNukeCole().quantity(5).identify().collect(); new ElixirOfNukeCole().quantity(2).identify().collect();
rewardObtained = true; rewardObtained = true;
} else { } else {
Dungeon.level.drop( reward, reddragon.pos ).sprite.drop(); Dungeon.level.drop( reward, reddragon.pos ).sprite.drop();