Update V0.6.1.0 Beta7.2
|
@ -47,7 +47,7 @@ import com.watabou.utils.FileUtils;
|
|||
public class AndroidGame extends AndroidApplication {
|
||||
|
||||
public static AndroidApplication instance;
|
||||
private FirebaseAnalytics mFirebaseAnalytics;
|
||||
|
||||
private static AndroidPlatformSupport support;
|
||||
|
||||
@Override
|
||||
|
|
|
@ -31,9 +31,10 @@ import android.widget.TextView;
|
|||
|
||||
import com.badlogic.gdx.graphics.g2d.freetype.FreeType;
|
||||
import com.badlogic.gdx.utils.GdxNativesLoader;
|
||||
import com.google.firebase.analytics.FirebaseAnalytics;
|
||||
|
||||
public class AndroidLauncher extends Activity {
|
||||
|
||||
public FirebaseAnalytics mFirebaseAnalytics;
|
||||
@SuppressLint("SetTextI18n")
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
|
|
|
@ -17,8 +17,8 @@ allprojects {
|
|||
appName = 'Magic Ling Pixel Dungeon'
|
||||
appPackageName = 'com.ansdomagiclingpixeldungeon.ling'
|
||||
|
||||
appVersionCode =800865
|
||||
appVersionName = '0.6.1.0-Beta7(P3)'
|
||||
appVersionCode =800866
|
||||
appVersionName = '0.6.1.0-Beta7.2(P3)'
|
||||
|
||||
appJavaCompatibility = JavaVersion.VERSION_11
|
||||
|
||||
|
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 827 B After Width: | Height: | Size: 959 B |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 621 B After Width: | Height: | Size: 825 B |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.1 KiB |
|
@ -100,7 +100,7 @@ actors.buffs.puresoul.desc=灯火前行,光芒前路。没有什么东西可
|
|||
|
||||
### Magic Say debuffs
|
||||
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.desc=束缚只是我的一个考验,而失去信心的你。想必比我这个考验更可怕吧。\n\n本大层装备会被诅咒,下一大层失效
|
||||
|
@ -128,10 +128,10 @@ actors.buffs.clearbleesdgoodbuff.blessnomoney.name=纯洁的祝福-富饶
|
|||
actors.buffs.clearbleesdgoodbuff.blessnomoney.desc=魔女的气息在我们身旁徘徊,商人们一定会对你毕恭毕敬。\n\n本大层商店全场打3折
|
||||
|
||||
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.desc=守护我们最后的种子!\n\n本大层英雄在血满的情况下每100回合获得一些护盾。
|
||||
actors.buffs.clearbleesdgoodbuff.blessmixshiled.desc=守护我们最后的种子!\n\n本大层英雄在血满的情况下每150回合获得一些护盾。
|
||||
|
||||
actors.buffs.clearbleesdgoodbuff.blessimmune.name=纯洁的祝福-隐没
|
||||
actors.buffs.clearbleesdgoodbuff.blessimmune.desc=隐没在这人群之中,我们便是超凡脱俗的个体\n\n本大层英雄免疫诅咒效果和减少40%的物理伤害。
|
||||
|
|
|
@ -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_06x64=-V0.6.1-Beta7.2\n1.修复一些小错误\n2.少量UI迭代优化
|
||||
|
||||
//ui.changelist.mlpd.vm0_5_x_changes.xxx//
|
|
@ -573,9 +573,9 @@ public abstract class Char extends Actor {
|
|||
//TODO 审判 削弱10%伤害
|
||||
if ( buff(MagicGirlSayKill.class) != null ){
|
||||
damage *= 0.90f;
|
||||
//TODO 安息 x2伤害
|
||||
//TODO 安息 x1.5伤害
|
||||
} else if ( buff(BlessMobDied.class) != null ) {
|
||||
damage *= 2f;
|
||||
damage *= 1.5f;
|
||||
}
|
||||
if ( buff(AnkhInvulnerability.GodDied.class) != null ) {
|
||||
damage *= 2.25f;
|
||||
|
|
|
@ -30,7 +30,7 @@ public class BlessGoRead extends Buff {
|
|||
}
|
||||
|
||||
if(hero.lanterfire > 60 ) {
|
||||
float healDelay = 10f - 10*0.9f;
|
||||
float healDelay = 10f - 10*0.5f;
|
||||
healDelay /= 0.1f;
|
||||
//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));
|
||||
|
|
|
@ -27,12 +27,12 @@ public class BlessMixShiled extends Buff {
|
|||
|
||||
if(Dungeon.hero.buff(BlessMixShiled.class) != null && hero.HT == hero.HP){
|
||||
if(Dungeon.depth <= 5) {
|
||||
Buff.affect(hero, Barrier.class).setShield(((60)));
|
||||
Buff.affect(hero, Barrier.class).setShield(((30)));
|
||||
} else {
|
||||
Buff.affect(hero, Barrier.class).setShield(((60) * Dungeon.depth / 5));
|
||||
Buff.affect(hero, Barrier.class).setShield(((20) * Dungeon.depth / 5));
|
||||
}
|
||||
spend(100f);
|
||||
GLog.w("你的血量已满,奖励你一些护盾值。");
|
||||
spend(150f);
|
||||
GLog.w("你的血量已满,奖励你"+(Dungeon.depth<=5 ? 20 : (20) * Dungeon.depth / 5)+"点护盾值。");
|
||||
}
|
||||
|
||||
spend(interval);
|
||||
|
|
|
@ -320,7 +320,7 @@ public class Hero extends Char {
|
|||
|
||||
//无力 本大层-3力量 : 坚毅 本大层力量+2
|
||||
if(Dungeon.hero.buff(MagicGirlSayNoSTR.class) != null){
|
||||
strBonus -= 3;
|
||||
strBonus -= 1;
|
||||
} else if(Dungeon.hero.buff(BlessGoodSTR.class) != null) {
|
||||
strBonus += 2;
|
||||
}
|
||||
|
|
|
@ -212,7 +212,8 @@ public class Bestiary {
|
|||
return new ArrayList<>(Arrays.asList(
|
||||
Bat.class,
|
||||
Brute.class,Spinner.class,
|
||||
DM100.class,RedSwarm.class));
|
||||
DM100.class,RedSwarm.class,MolotovHuntsman.class,
|
||||
MolotovHuntsman.class));
|
||||
|
||||
case 14:
|
||||
return new ArrayList<>(Arrays.asList(
|
||||
|
@ -248,15 +249,15 @@ public class Bestiary {
|
|||
case 19:
|
||||
//1x elemental, 1x warlock, 2x monk, 3x golem
|
||||
return new ArrayList<>(Arrays.asList(
|
||||
Monk.class,IceGolem.class,
|
||||
Monk.class,
|
||||
Golem.class,ShieldHuntsman.class));
|
||||
case 20:
|
||||
//1x elemental, 1x warlock, 2x monk, 3x golem
|
||||
return new ArrayList<>(Arrays.asList(
|
||||
Elemental.random(),
|
||||
Warlock.class, Warlock.class,
|
||||
Monk.class, IceGolem.class,
|
||||
Golem.class, IceGolem.class, Golem.class,Ice_Scorpio.class));
|
||||
Monk.class,
|
||||
Golem.class, Golem.class,Ice_Scorpio.class));
|
||||
|
||||
case 21:
|
||||
//3x succubus, 3x evil eye
|
||||
|
@ -299,22 +300,22 @@ public class Bestiary {
|
|||
// Sewers
|
||||
default:
|
||||
return;
|
||||
case 9:
|
||||
case 4:
|
||||
if (Random.Float() < 0.025f) rotation.add(Thief.class);
|
||||
return;
|
||||
|
||||
// Prison
|
||||
case 19:
|
||||
case 9:
|
||||
if (Random.Float() < 0.025f) rotation.add(Bat.class);
|
||||
return;
|
||||
|
||||
// Caves
|
||||
case 29:
|
||||
case 14:
|
||||
if (Random.Float() < 0.025f) rotation.add(Ghoul.class);
|
||||
return;
|
||||
|
||||
// City
|
||||
case 39:
|
||||
case 19:
|
||||
if (Random.Float() < 0.025f) rotation.add(Succubus.class);
|
||||
return;
|
||||
}
|
||||
|
@ -327,8 +328,8 @@ public class Bestiary {
|
|||
Class<? extends Mob> cl = rotation.get(i);
|
||||
if (cl == Rat.class) {
|
||||
cl = Albino.class;
|
||||
} else if (cl == Slime.class) {
|
||||
cl = CausticSlime.class;
|
||||
} else if (cl == Guard.class) {
|
||||
cl = SRPDHBLR.class;
|
||||
} else if (cl == Thief.class) {
|
||||
cl = Bandit.class;
|
||||
} else if (cl == Brute.class) {
|
||||
|
@ -337,8 +338,14 @@ public class Bestiary {
|
|||
cl = DM201.class;
|
||||
} else if (cl == Monk.class) {
|
||||
cl = Senior.class;
|
||||
} else if (cl == Golem.class) {
|
||||
cl = IceGolem.class;
|
||||
} else if (cl == Scorpio.class) {
|
||||
cl = Acidic.class;
|
||||
} else if (cl == Spinner.class) {
|
||||
cl = GnollShiled.class;
|
||||
} else if (cl == FireGhost.class) {
|
||||
cl = MolotovHuntsman.class;
|
||||
}
|
||||
rotation.set(i, cl);
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ public class GnollShiled extends Gnoll {
|
|||
|
||||
public GnollShiled() {
|
||||
this.spriteClass = BombGnollTricksterSprites.class;
|
||||
this.HT = HP = Random.Int(50,210);
|
||||
this.HT = HP = Random.Int(80,120);
|
||||
this.defenseSkill = 5;
|
||||
this.EXP = 8;
|
||||
this.state = this.WANDERING;
|
||||
|
@ -114,8 +114,14 @@ public class GnollShiled extends Gnoll {
|
|||
|
||||
public void die(Object 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) {
|
||||
|
|
|
@ -378,7 +378,7 @@ public class Generator {
|
|||
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<?>[]{
|
||||
Longsword.class,
|
||||
|
|
|
@ -12,7 +12,7 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.particles.FlameParticle;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
import com.watabou.noosa.audio.Sample;
|
||||
|
||||
//TODO 娱乐模式加入
|
||||
|
||||
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, Haste.class, 10f);
|
||||
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);
|
||||
Sample.INSTANCE.play( Assets.Sounds.BURNING );
|
||||
hero.sprite.emitter().burst(FlameParticle.FACTORY, 10);
|
||||
|
|
|
@ -49,6 +49,7 @@ import java.util.ArrayList;
|
|||
public class vM0_6_7_X_Changes {
|
||||
|
||||
public static void addAllChanges(ArrayList<ChangeInfo> changeInfos) {
|
||||
add_v0_6_35_Changes(changeInfos);
|
||||
add_v0_6_34_Changes(changeInfos);
|
||||
add_v0_6_33_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);
|
||||
}
|
||||
|
||||
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 ) {
|
||||
ChangeInfo changes = new ChangeInfo("v0.6.1.0-Beta7(P3)", true, "");
|
||||
changes.hardlight(Window.TITLE_COLOR);
|
||||
|
|
|
@ -100,8 +100,7 @@ public class WndDLCX extends Window {
|
|||
cb.checked(false);
|
||||
cb.visible=false;
|
||||
}
|
||||
cb.active = editable;
|
||||
cb.difficultyConduct = i;
|
||||
|
||||
|
||||
pos += GAP;
|
||||
cb.setRect(0, pos, WIDTH - 16, BTN_HEIGHT);
|
||||
|
@ -109,6 +108,15 @@ public class WndDLCX extends Window {
|
|||
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);
|
||||
boxes.add(cb);
|
||||
if (i != Difficulty.DifficultyConduct.NULL) {
|
||||
|
@ -124,7 +132,10 @@ public class WndDLCX extends Window {
|
|||
infos.add(info);
|
||||
Image icon = new Image(Assets.Interfaces.HAICONS, (i.ordinal() - 1) * 16, 0, 16, 16);
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
|
@ -36,6 +36,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Degrade;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.RedDragon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||
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.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
||||
|
@ -134,7 +135,7 @@ public class WndRedDragon extends Window {
|
|||
reward.identify();
|
||||
if (reward.doPickUp( hero )) {
|
||||
GLog.i( Messages.get(hero, "you_now_have", reward.name()) );
|
||||
//new ElixirOfNukeCole().quantity(5).identify().collect();
|
||||
new ElixirOfNukeCole().quantity(2).identify().collect();
|
||||
rewardObtained = true;
|
||||
} else {
|
||||
Dungeon.level.drop( reward, reddragon.pos ).sprite.drop();
|
||||
|
|