Update Beta p2.6
This commit is contained in:
parent
667cce55f2
commit
0349f1674e
BIN
core/src/main/assets/environment/tiles_caves.png
Normal file
BIN
core/src/main/assets/environment/tiles_caves.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
|
@ -55,7 +55,7 @@ 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本大层英雄物理伤害x2!
|
||||||
|
|
||||||
actors.buffs.clearbleesdgoodbuff.blessmixshiled.name=纯洁的祝福-守护
|
actors.buffs.clearbleesdgoodbuff.blessmixshiled.name=纯洁的祝福-守护
|
||||||
actors.buffs.clearbleesdgoodbuff.blessmixshiled.desc=守护我们最后的种子!\n\n本大层英雄在血满的情况下每300回合获得一些护盾。
|
actors.buffs.clearbleesdgoodbuff.blessmixshiled.desc=守护我们最后的种子!\n\n本大层英雄在血满的情况下每300回合获得一些护盾。
|
||||||
|
|
|
@ -136,10 +136,14 @@ challenges.exsg_desc=药水癔症详细规则:\n力量药水 力量-1\n灵视
|
||||||
challenges.light&black = Π空洞旅程Π
|
challenges.light&black = Π空洞旅程Π
|
||||||
challenges.light&black_desc=\n_一次次的踏入地牢只会使自己更加的被恶毒的魔法侵蚀。_这一次,你已不知道是何时再来到这个地牢,但邪恶的诡异气氛扑面而来。一个神秘人给了你一个提灯。你却不知道何时会被这里的魔法吞噬。\n\n开启本挑战,将会获得在开局获得特殊理智Buff,并且追加一个新道具_提灯_,提灯的精神力量需要玩家击败敌人获得。\n\n_只有光芒中,你才能活下去。否则,你会被黑暗蚕食,一点点的丧失理智,成为怪物。_\n\n详情请看更新记录
|
challenges.light&black_desc=\n_一次次的踏入地牢只会使自己更加的被恶毒的魔法侵蚀。_这一次,你已不知道是何时再来到这个地牢,但邪恶的诡异气氛扑面而来。一个神秘人给了你一个提灯。你却不知道何时会被这里的魔法吞噬。\n\n开启本挑战,将会获得在开局获得特殊理智Buff,并且追加一个新道具_提灯_,提灯的精神力量需要玩家击败敌人获得。\n\n_只有光芒中,你才能活下去。否则,你会被黑暗蚕食,一点点的丧失理智,成为怪物。_\n\n详情请看更新记录
|
||||||
|
|
||||||
challenges.custom = 额外玩法
|
challenges.custom = 自定义功能
|
||||||
challenges.dhxd =_灯火前路_
|
challenges.dhxd =_灯火前路_
|
||||||
challenges.dhxd_desc= 灯火指引着前进的道路,提灯引路,灯火前行![此为三挑以上的特殊机制,但你也可以直接开启它!]
|
challenges.dhxd_desc= 灯火指引着前进的道路,提灯引路,灯火前行![此为三挑以上的特殊机制,但你也可以直接开启它!]
|
||||||
|
|
||||||
|
challenges.fixed = 游戏维护
|
||||||
|
challenges.bug =_BUG修复(实验功能)_
|
||||||
|
challenges.bug_desc= 实验性功能,每次游戏更新后如果有旧存档需要同步的可修复型Bug将会自我修复(让英雄行走一回合即可)。
|
||||||
|
|
||||||
dlc.bossrush=首领对决
|
dlc.bossrush=首领对决
|
||||||
dlc.bossrush_desc=被你击败过多次的首领们熟识了英雄的技能,并掌握了一定的对策。它们盘踞在地牢中,等待复仇的时机。\n你不知道这次又会有怎样的危机需要应对。\n但你感觉到这次的冒险绝对与其他时期有所不同。\n开启本挑战时支离破碎和缩餐节食将无法生成与使用。
|
dlc.bossrush_desc=被你击败过多次的首领们熟识了英雄的技能,并掌握了一定的对策。它们盘踞在地牢中,等待复仇的时机。\n你不知道这次又会有怎样的危机需要应对。\n但你感觉到这次的冒险绝对与其他时期有所不同。\n开启本挑战时支离破碎和缩餐节食将无法生成与使用。
|
||||||
|
|
||||||
|
|
|
@ -472,4 +472,6 @@ ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x31=-P1.5\n1.修复了终焉的掉率
|
||||||
|
|
||||||
ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x32=-P2.0\n1.修复了种子在部分挑战内完全不一样的问题\n2.修复了一些意外的闪退Bug\n3.修复了火元素的活死人问题
|
ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x32=-P2.0\n1.修复了种子在部分挑战内完全不一样的问题\n2.修复了一些意外的闪退Bug\n3.修复了火元素的活死人问题
|
||||||
|
|
||||||
|
ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x33=-P2.6\n1.修复了感知符石鉴定秘药可能崩溃的问题\n2.修复了回溯之书的错误问题
|
||||||
|
|
||||||
//ui.changelist.mlpd.vm0_5_x_changes.xxx//
|
//ui.changelist.mlpd.vm0_5_x_changes.xxx//
|
|
@ -67,7 +67,7 @@ windows.wndinfomob.itm = 常规掉落:
|
||||||
windows.wndinfomob.shield= 护甲属性:
|
windows.wndinfomob.shield= 护甲属性:
|
||||||
|
|
||||||
windows.wndnyzshop.nayazi=奈亚子
|
windows.wndnyzshop.nayazi=奈亚子
|
||||||
windows.wndnyzshop.nayaziwelcome=你好,冒险家。欢迎来到我的商店。和其他商店不同的是,我这里是一个智能终端的结合体!\n\n需要什么请进行选择,但是,智能终端通常会出现问题!一旦终端出现问题将无法再次购买。\n\n书籍一本起价300金币,炸弹一套起价270金币,欢迎你的挑选!\n\n有一些时候因为机器的缺陷性质可能实际费用会比预想的高!
|
windows.wndnyzshop.nayaziwelcome=你好,冒险家。欢迎来到我的商店。和其他商店不同的是,我这里是一个智能终端的结合体!\n\n需要什么请进行选择,但是,智能终端通常会出现问题!一旦终端出现问题将无法再次购买。\n\n书籍一本起价720金币,炸弹一套起价270金币,欢迎你的挑选!\n\n有一些时候因为机器的缺陷性质可能实际费用会比预想的高!
|
||||||
windows.wndnyzshop.buy=购买物品
|
windows.wndnyzshop.buy=购买物品
|
||||||
windows.wndnyzshop.sellmod=出售物品
|
windows.wndnyzshop.sellmod=出售物品
|
||||||
windows.wndnyzshop.cancel=取消购买
|
windows.wndnyzshop.cancel=取消购买
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
@ -52,11 +52,14 @@ public class Challenges {
|
||||||
public static final int SBSG = 1024;
|
public static final int SBSG = 1024;
|
||||||
public static final int EXSG = 2048;
|
public static final int EXSG = 2048;
|
||||||
public static final int STRONGER_BOSSES = 4096;
|
public static final int STRONGER_BOSSES = 4096;
|
||||||
|
|
||||||
public static final int DHXD = 8192;
|
public static final int DHXD = 8192;
|
||||||
|
|
||||||
public static final int PRO = 16384;
|
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 = {
|
public static final String[] NAME_IDS = {
|
||||||
"no_food",
|
"no_food",
|
||||||
|
@ -74,11 +77,12 @@ public class Challenges {
|
||||||
"stronger_bosses",
|
"stronger_bosses",
|
||||||
"dhxd",
|
"dhxd",
|
||||||
"pro",
|
"pro",
|
||||||
|
"bug",
|
||||||
};
|
};
|
||||||
|
|
||||||
public static final int[] MASKS = {
|
public static final int[] MASKS = {
|
||||||
NO_FOOD, NO_ARMOR, NO_HEALING, NO_HERBALISM, SWARM_INTELLIGENCE, DARKNESS, NO_SCROLLS
|
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;
|
public String name;
|
||||||
|
|
||||||
|
@ -127,7 +131,7 @@ public class Challenges {
|
||||||
public static int activeChallenges(){
|
public static int activeChallenges(){
|
||||||
int chCount = 0;
|
int chCount = 0;
|
||||||
for (int ch : Challenges.MASKS){
|
for (int ch : Challenges.MASKS){
|
||||||
if ((Dungeon.challenges & ch) != 0) chCount++;
|
if ((Dungeon.challenges & ch) != 0 && ch <= STRONGER_BOSSES) chCount++;
|
||||||
}
|
}
|
||||||
return chCount;
|
return chCount;
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,6 +62,10 @@ public class Statistics {
|
||||||
//TODO 灯火前行
|
//TODO 灯火前行
|
||||||
public static boolean lanterfireactive = false;
|
public static boolean lanterfireactive = false;
|
||||||
|
|
||||||
|
|
||||||
|
//TODO BUG修复同步
|
||||||
|
public static boolean bugsyncfixed = false;
|
||||||
|
|
||||||
public static int dageCollected;
|
public static int dageCollected;
|
||||||
|
|
||||||
//Directly add float time will cause accuracy lose and stop timing if time is long enough
|
//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;
|
endingbald = false;
|
||||||
|
|
||||||
lanterfireactive = false;
|
lanterfireactive = false;
|
||||||
|
bugsyncfixed = false;
|
||||||
|
|
||||||
second_elapsed = 0f;
|
second_elapsed = 0f;
|
||||||
real_seconds = 0;
|
real_seconds = 0;
|
||||||
|
@ -145,9 +150,16 @@ public class Statistics {
|
||||||
//TODO 灯火前行
|
//TODO 灯火前行
|
||||||
private static final String LANTERACTIVE = "lanterfireactive";
|
private static final String LANTERACTIVE = "lanterfireactive";
|
||||||
|
|
||||||
|
//TODO BUG修复的机制
|
||||||
|
private static final String BUG_SYNC_FIXED = "bugsyncfixed";
|
||||||
|
|
||||||
public static void storeInBundle( Bundle bundle ) {
|
public static void storeInBundle( Bundle bundle ) {
|
||||||
bundle.put( LANTERACTIVE, lanterfireactive );
|
bundle.put( LANTERACTIVE, lanterfireactive );
|
||||||
|
|
||||||
|
|
||||||
|
//TODO BUG修复的机制
|
||||||
|
bundle.put( BUG_SYNC_FIXED, bugsyncfixed );
|
||||||
|
|
||||||
bundle.put( GOLD, goldCollected );
|
bundle.put( GOLD, goldCollected );
|
||||||
bundle.put( DEEPEST, deepestFloor );
|
bundle.put( DEEPEST, deepestFloor );
|
||||||
bundle.put( SLAIN, enemiesSlain );
|
bundle.put( SLAIN, enemiesSlain );
|
||||||
|
@ -212,6 +224,8 @@ public class Statistics {
|
||||||
|
|
||||||
lanterfireactive = bundle.getBoolean( LANTERACTIVE );
|
lanterfireactive = bundle.getBoolean( LANTERACTIVE );
|
||||||
|
|
||||||
|
bugsyncfixed = bundle.getBoolean( BUG_SYNC_FIXED );
|
||||||
|
|
||||||
//SPD
|
//SPD
|
||||||
second_elapsed = bundle.getFloat("real_time_passed");
|
second_elapsed = bundle.getFloat("real_time_passed");
|
||||||
real_seconds = bundle.getLong("real_seconds_passed");
|
real_seconds = bundle.getLong("real_seconds_passed");
|
||||||
|
|
|
@ -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 );
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,10 +22,12 @@
|
||||||
package com.shatteredpixel.shatteredpixeldungeon.actors.hero;
|
package com.shatteredpixel.shatteredpixeldungeon.actors.hero;
|
||||||
|
|
||||||
import static com.shatteredpixel.shatteredpixeldungeon.Challenges.AQUAPHOBIA;
|
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.DHXD;
|
||||||
import static com.shatteredpixel.shatteredpixeldungeon.Challenges.PRO;
|
import static com.shatteredpixel.shatteredpixeldungeon.Challenges.PRO;
|
||||||
import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero;
|
import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero;
|
||||||
import static com.shatteredpixel.shatteredpixeldungeon.SPDSettings.HelpSettings;
|
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.Statistics.lanterfireactive;
|
||||||
import static com.shatteredpixel.shatteredpixeldungeon.levels.Level.set;
|
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.Potion;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfExperience;
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfExperience;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHealing;
|
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.elixirs.ElixirOfMight;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.PotionOfDivineInspiration;
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.PotionOfDivineInspiration;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfAccuracy;
|
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfAccuracy;
|
||||||
|
@ -531,6 +534,7 @@ public class Hero extends Char {
|
||||||
for (Buff b : buffs()){
|
for (Buff b : buffs()){
|
||||||
if (!b.revivePersists) b.detach();
|
if (!b.revivePersists) b.detach();
|
||||||
}
|
}
|
||||||
|
|
||||||
Buff.affect( this, Regeneration.class );
|
Buff.affect( this, Regeneration.class );
|
||||||
Buff.affect( this, Hunger.class );
|
Buff.affect( this, Hunger.class );
|
||||||
|
|
||||||
|
@ -925,6 +929,13 @@ public class Hero extends Char {
|
||||||
|
|
||||||
//TODO 获取三个挑战的枚举后,则超过或等于3挑战以激活挑战,在英雄移动的时候
|
//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){
|
if(chCount >= 3 && !lanterfireactive && !Dungeon.isChallenged(PRO) || Dungeon.isChallenged(DHXD) && !lanterfireactive){
|
||||||
//TODO 灯火前行
|
//TODO 灯火前行
|
||||||
lanterfire = 100;
|
lanterfire = 100;
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
|
|
||||||
package com.shatteredpixel.shatteredpixeldungeon.actors.hero;
|
package com.shatteredpixel.shatteredpixeldungeon.actors.hero;
|
||||||
|
|
||||||
|
import static com.shatteredpixel.shatteredpixeldungeon.Challenges.BUG;
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Badges;
|
import com.shatteredpixel.shatteredpixeldungeon.Badges;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Challenges;
|
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.Gloves;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.GreenSword;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.GreenSword;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.IceFishSword;
|
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.LockSword;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.RedBloodMoon;
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.RedBloodMoon;
|
||||||
|
@ -205,11 +206,11 @@ public enum HeroClass {
|
||||||
|
|
||||||
new GreenSword().quantity(1).identify().collect();
|
new GreenSword().quantity(1).identify().collect();
|
||||||
new SkyShield().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 GoldBAo().quantity(9999).identify().collect();
|
||||||
new WandOfScale().quantity(1).identify().collect();
|
new WandOfScale().quantity(1).identify().collect();
|
||||||
new WandOfGodIce().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 LevelTeleporter().quantity(1).identify().collect();
|
||||||
new MobPlacer().quantity(1).identify().collect();
|
new MobPlacer().quantity(1).identify().collect();
|
||||||
new BlackDog().quantity(1).identify().collect();
|
new BlackDog().quantity(1).identify().collect();
|
||||||
|
@ -236,6 +237,7 @@ public enum HeroClass {
|
||||||
new ScrollOfRoseShiled().quantity(45).identify().collect();
|
new ScrollOfRoseShiled().quantity(45).identify().collect();
|
||||||
new ScrollOfTerror().quantity(45).identify().collect();
|
new ScrollOfTerror().quantity(45).identify().collect();
|
||||||
new DriedRose().quantity(1).identify().collect();
|
new DriedRose().quantity(1).identify().collect();
|
||||||
|
|
||||||
Dungeon.gold = 600000000;
|
Dungeon.gold = 600000000;
|
||||||
hero.STR = 27;
|
hero.STR = 27;
|
||||||
hero.lvl = 30;
|
hero.lvl = 30;
|
||||||
|
@ -252,8 +254,10 @@ public enum HeroClass {
|
||||||
|
|
||||||
i = new Food();
|
i = new Food();
|
||||||
|
|
||||||
//new EndingBlade().quantity(1).identify().collect();
|
//todo 不存在BUG挑战才给予
|
||||||
//new ChaliceOfBlood().quantity(1).identify().collect();
|
if(!Dungeon.isChallenged(BUG)) {
|
||||||
|
new PotionOfLightningShiledX().quantity(3).identify().collect();
|
||||||
|
}
|
||||||
|
|
||||||
new HerbBag().quantity(1).identify().collect();
|
new HerbBag().quantity(1).identify().collect();
|
||||||
new PotionOfHealing().quantity(3).identify().collect();
|
new PotionOfHealing().quantity(3).identify().collect();
|
||||||
|
|
|
@ -75,8 +75,7 @@ public class Bestiary {
|
||||||
case 10:
|
case 10:
|
||||||
switch (Random.Int(3)) {
|
switch (Random.Int(3)) {
|
||||||
case 0:
|
case 0:
|
||||||
return new ArrayList<>(Arrays.asList(Skeleton.class,
|
return new ArrayList<>(Arrays.asList(Skeleton.class, BlackHost.class,
|
||||||
KagenoNusujin.class, BlackHost.class,
|
|
||||||
Thief.class,DM100.class,Necromancer.class));
|
Thief.class,DM100.class,Necromancer.class));
|
||||||
case 1:
|
case 1:
|
||||||
return new ArrayList<>(Arrays.asList(Skeleton.class, Skeleton.class, Skeleton.class,
|
return new ArrayList<>(Arrays.asList(Skeleton.class, Skeleton.class, Skeleton.class,
|
||||||
|
@ -100,8 +99,7 @@ public class Bestiary {
|
||||||
case 15:
|
case 15:
|
||||||
switch (Random.Int(4)) {
|
switch (Random.Int(4)) {
|
||||||
case 0:
|
case 0:
|
||||||
return new ArrayList<>(Arrays.asList(Skeleton.class,
|
return new ArrayList<>(Arrays.asList(Skeleton.class, BlackHost.class,
|
||||||
KagenoNusujin.class, BlackHost.class,
|
|
||||||
Thief.class,DM100.class,Necromancer.class));
|
Thief.class,DM100.class,Necromancer.class));
|
||||||
case 1:
|
case 1:
|
||||||
return new ArrayList<>(Arrays.asList(Skeleton.class, Skeleton.class, Skeleton.class,
|
return new ArrayList<>(Arrays.asList(Skeleton.class, Skeleton.class, Skeleton.class,
|
||||||
|
@ -131,14 +129,13 @@ public class Bestiary {
|
||||||
case 25:
|
case 25:
|
||||||
switch (Random.Int(6)) {
|
switch (Random.Int(6)) {
|
||||||
case 0:
|
case 0:
|
||||||
return new ArrayList<>(Arrays.asList(Skeleton.class,
|
return new ArrayList<>(Arrays.asList(Skeleton.class, BlackHost.class,
|
||||||
KagenoNusujin.class, BlackHost.class,
|
|
||||||
Thief.class,DM100.class,Necromancer.class));
|
Thief.class,DM100.class,Necromancer.class));
|
||||||
case 1:
|
case 1:
|
||||||
return new ArrayList<>(Arrays.asList(Skeleton.class, Skeleton.class, Skeleton.class,
|
return new ArrayList<>(Arrays.asList(Skeleton.class, Skeleton.class, Skeleton.class,
|
||||||
Thief.class,Thief.class,Fire_Scorpio.class,
|
Thief.class,Thief.class,Fire_Scorpio.class,
|
||||||
DM201.class,SkullShaman.class,MolotovHuntsman.class,
|
DM200.class,SkullShaman.class,MolotovHuntsman.class,
|
||||||
DM201.class,SRPDHBLR.class, Ice_Scorpio.class));
|
DM100.class,SRPDHBLR.class, Ice_Scorpio.class));
|
||||||
case 2:
|
case 2:
|
||||||
return new ArrayList<>(Arrays.asList(
|
return new ArrayList<>(Arrays.asList(
|
||||||
Succubus.class, Succubus.class, Succubus.class,
|
Succubus.class, Succubus.class, Succubus.class,
|
||||||
|
@ -176,24 +173,18 @@ public class Bestiary {
|
||||||
//3x rat, 1x snake
|
//3x rat, 1x snake
|
||||||
return new ArrayList<>(Arrays.asList(
|
return new ArrayList<>(Arrays.asList(
|
||||||
Rat.class, Rat.class,
|
Rat.class, Rat.class,
|
||||||
Rat.class, OGPDZSLS.class, Rat.class,
|
Rat.class));
|
||||||
Snake.class));
|
|
||||||
case 2:
|
case 2:
|
||||||
return new ArrayList<>(Arrays.asList(Rat.class,
|
return new ArrayList<>(Arrays.asList(Rat.class,
|
||||||
Rat.class, Rat.class, Gnoll.class, Gnoll.class,
|
Rat.class, Rat.class, Gnoll.class, Gnoll.class,
|
||||||
Gnoll.class, OGPDLLS.class, OGPDNQHZ.class));
|
Gnoll.class, OGPDLLS.class, OGPDNQHZ.class));
|
||||||
case 3:
|
case 3:
|
||||||
return new ArrayList<>(Arrays.asList(Rat.class,
|
return new ArrayList<>(Arrays.asList(Rat.class,
|
||||||
Rat.class, Rat.class, Gnoll.class, Gnoll.class,
|
Rat.class, OGPDNQHZ.class,
|
||||||
Gnoll.class, OGPDLLS.class, OGPDNQHZ.class,
|
|
||||||
OGPDZSLS.class, Rat.class, Rat.class,
|
OGPDZSLS.class, Rat.class, Rat.class,
|
||||||
Snake.class,Crab.class,Crab.class,Swarm.class));
|
Snake.class,Crab.class,Swarm.class));
|
||||||
case 4:
|
case 4:
|
||||||
return new ArrayList<>(Arrays.asList(Rat.class,
|
return new ArrayList<>(Arrays.asList(OGPDZSLS.class,
|
||||||
Gnoll.class, Gnoll.class
|
|
||||||
, OGPDLLS.class,
|
|
||||||
Snake.class,
|
|
||||||
OGPDNQHZ.class, OGPDZSLS.class,
|
|
||||||
OGPDLLS.class, Snake.class,
|
OGPDLLS.class, Snake.class,
|
||||||
Slime_Orange.class, Swarm.class,Crab.class));
|
Slime_Orange.class, Swarm.class,Crab.class));
|
||||||
case 5:
|
case 5:
|
||||||
|
@ -204,20 +195,16 @@ public class Bestiary {
|
||||||
Snake.class));
|
Snake.class));
|
||||||
|
|
||||||
case 7:
|
case 7:
|
||||||
return new ArrayList<>(Arrays.asList(Skeleton.class,
|
return new ArrayList<>(Arrays.asList(Skeleton.class, BlackHost.class,
|
||||||
KagenoNusujin.class, BlackHost.class,
|
|
||||||
Thief.class,DM100.class,Necromancer.class));
|
Thief.class,DM100.class,Necromancer.class));
|
||||||
case 8:
|
case 8:
|
||||||
return new ArrayList<>(Arrays.asList(Skeleton.class,
|
return new ArrayList<>(Arrays.asList(Skeleton.class,
|
||||||
Skeleton.class,
|
Skeleton.class,
|
||||||
Thief.class, Shaman.random(),BrownBat.class,KagenoNusujin.class,
|
Thief.class,BrownBat.class, Guard.class, SRPDHBLR.class,Necromancer.class, BrownBat.class));
|
||||||
Shaman.random(), Guard.class, SRPDHBLR.class,Necromancer.class,
|
|
||||||
KagenoNusujin.class,BrownBat.class));
|
|
||||||
case 9:
|
case 9:
|
||||||
return new ArrayList<>(Arrays.asList(Skeleton.class, Skeleton.class, Skeleton.class,
|
return new ArrayList<>(Arrays.asList(Skeleton.class, Skeleton.class, Skeleton.class,
|
||||||
Thief.class,Thief.class,BrownBat.class,
|
Thief.class,Thief.class,BrownBat.class,
|
||||||
BrownBat.class,SpectralNecromancer.class,SpectralNecromancer.class,
|
BrownBat.class, DM100.class,BrownBat.class, BlackHost.class));
|
||||||
DM100.class,BrownBat.class, BlackHost.class,KagenoNusujin.class));
|
|
||||||
|
|
||||||
case 10:
|
case 10:
|
||||||
return new ArrayList<>(Arrays.asList(Bat.class,
|
return new ArrayList<>(Arrays.asList(Bat.class,
|
||||||
|
@ -236,7 +223,7 @@ 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,
|
||||||
DM201.class,RedSwarm.class));
|
DM100.class,RedSwarm.class));
|
||||||
|
|
||||||
case 14:
|
case 14:
|
||||||
return new ArrayList<>(Arrays.asList(
|
return new ArrayList<>(Arrays.asList(
|
||||||
|
@ -257,28 +244,25 @@ public class Bestiary {
|
||||||
case 16:
|
case 16:
|
||||||
//5x elemental, 5x warlock, 1x monk, 2x silvercrab
|
//5x elemental, 5x warlock, 1x monk, 2x silvercrab
|
||||||
return new ArrayList<>(Arrays.asList(
|
return new ArrayList<>(Arrays.asList(
|
||||||
Elemental.random(), Elemental.random(), Elemental.random(),
|
|
||||||
Monk.class,
|
Monk.class,
|
||||||
Shaman.random()));
|
Shaman.random()));
|
||||||
case 17:
|
case 17:
|
||||||
//2x elemental, 2x warlock, 2x monk, 1x silvercrab
|
//2x elemental, 2x warlock, 2x monk, 1x silvercrab
|
||||||
return new ArrayList<>(Arrays.asList(
|
return new ArrayList<>(Arrays.asList(
|
||||||
Elemental.random(), Elemental.random(), Elemental.random(), Elemental.random(),
|
Elemental.random(),
|
||||||
Monk.class,RedMurderer.class,FireGhost.class,MolotovHuntsman.class));
|
Monk.class,FireGhost.class));
|
||||||
case 18:
|
case 18:
|
||||||
//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(),RedMurderer.class,
|
Elemental.random(),
|
||||||
Warlock.class, Warlock.class,
|
Warlock.class,
|
||||||
Monk.class, Monk.class,
|
Monk.class,
|
||||||
IceGolem.class, Golem.class, Golem.class,MolotovHuntsman.class,FireGhost.class));
|
Golem.class,MolotovHuntsman.class,FireGhost.class));
|
||||||
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(
|
||||||
Elemental.random(),RedMurderer.class,RedMurderer.class,
|
Monk.class,IceGolem.class,
|
||||||
ShieldHuntsman.class, Warlock.class,
|
Golem.class,ShieldHuntsman.class));
|
||||||
Monk.class, IceGolem.class,IceGolem.class,
|
|
||||||
Golem.class, Golem.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(
|
||||||
|
@ -290,25 +274,20 @@ public class Bestiary {
|
||||||
case 21:case 22:
|
case 21:case 22:
|
||||||
//3x succubus, 3x evil eye
|
//3x succubus, 3x evil eye
|
||||||
return new ArrayList<>(Arrays.asList(
|
return new ArrayList<>(Arrays.asList(
|
||||||
Succubus.class, Succubus.class, Succubus.class,
|
|
||||||
Succubus.class, Succubus.class,
|
|
||||||
Eye.class,ShieldHuntsman.class,Ice_Scorpio.class));
|
Eye.class,ShieldHuntsman.class,Ice_Scorpio.class));
|
||||||
case 23:
|
case 23:
|
||||||
//1x: succubus, 2x evil eye, 3x scorpio
|
//1x: succubus, 2x evil eye, 3x scorpio
|
||||||
return new ArrayList<>(Arrays.asList(
|
return new ArrayList<>(Arrays.asList(
|
||||||
Succubus.class,
|
Succubus.class,
|
||||||
Eye.class, Eye.class,
|
Eye.class,
|
||||||
Scorpio.class, Eye.class, Eye.class,Succubus.class, Succubus.class,
|
Scorpio.class, Succubus.class,ShieldHuntsman.class));
|
||||||
Scorpio.class, Scorpio.class, Scorpio.class,Fire_Scorpio.class,Ice_Scorpio.class));
|
|
||||||
//前半段决战
|
//前半段决战
|
||||||
case 24:
|
case 24:
|
||||||
//1x succubus, 2x evil eye, 3x scorpio
|
//1x succubus, 2x evil eye, 3x scorpio
|
||||||
return new ArrayList<>(Arrays.asList(
|
return new ArrayList<>(Arrays.asList(
|
||||||
Succubus.class,
|
Succubus.class,
|
||||||
Eye.class, Eye.class,
|
Eye.class,
|
||||||
Scorpio.class, Eye.class, Eye.class,Succubus.class, Succubus.class,
|
Scorpio.class, Succubus.class,Fire_Scorpio.class,Ice_Scorpio.class,ShieldHuntsman.class));
|
||||||
Scorpio.class, Scorpio.class,Fire_Scorpio.class,Scorpio.class,ShieldHuntsman.class,
|
|
||||||
Ice_Scorpio.class,Fire_Scorpio.class));
|
|
||||||
default:
|
default:
|
||||||
return new ArrayList<>(Arrays.asList(Rat.class, Rat.class,
|
return new ArrayList<>(Arrays.asList(Rat.class, Rat.class,
|
||||||
Rat.class,
|
Rat.class,
|
||||||
|
|
|
@ -32,7 +32,7 @@ public class ColdGurad extends Mob implements Callback {
|
||||||
{
|
{
|
||||||
spriteClass = ColdGuardSprite.class;
|
spriteClass = ColdGuardSprite.class;
|
||||||
|
|
||||||
HP = HT = 80;
|
HP = HT = 40;
|
||||||
defenseSkill = 10;
|
defenseSkill = 10;
|
||||||
|
|
||||||
EXP = 0;
|
EXP = 0;
|
||||||
|
@ -140,12 +140,12 @@ public class ColdGurad extends Mob implements Callback {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int attackSkill( Char target ) {
|
public int attackSkill( Char target ) {
|
||||||
return 12;
|
return 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int drRoll() {
|
public int drRoll() {
|
||||||
return Random.NormalIntRange(0, 7);
|
return Random.NormalIntRange(0, 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -206,7 +206,7 @@ public class ColdGurad extends Mob implements Callback {
|
||||||
Sample.INSTANCE.play( Assets.Sounds.DEBUFF );
|
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] )) {
|
for (Mob mob : Dungeon.level.mobs.toArray( new Mob[0] )) {
|
||||||
if(Random.NormalIntRange(0,9)<4) {
|
if(Random.NormalIntRange(0,9)<4) {
|
||||||
|
|
|
@ -17,7 +17,7 @@ public class KagenoNusujin extends Thief {
|
||||||
public KagenoNusujin() {
|
public KagenoNusujin() {
|
||||||
this.spriteClass = KagenoNusujinSprite.class;
|
this.spriteClass = KagenoNusujinSprite.class;
|
||||||
this.HT = this.HP =50;
|
this.HT = this.HP =50;
|
||||||
this.defenseSkill = 16;
|
this.defenseSkill = -1;
|
||||||
this.maxLvl = 34;
|
this.maxLvl = 34;
|
||||||
this.properties.add(Property.UNDEAD);
|
this.properties.add(Property.UNDEAD);
|
||||||
WANDERING = new Wandering();
|
WANDERING = new Wandering();
|
||||||
|
|
|
@ -38,6 +38,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Chill;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.FlavourBuff;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.FlavourBuff;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Frost;
|
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.LockedFloor;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MindVision;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MindVision;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Paralysis;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Paralysis;
|
||||||
|
@ -480,7 +481,8 @@ public class NewDM300 extends Mob {
|
||||||
|
|
||||||
spend(Dungeon.isChallenged(Challenges.STRONGER_BOSSES) ? 2f : 3f);
|
spend(Dungeon.isChallenged(Challenges.STRONGER_BOSSES) ? 2f : 3f);
|
||||||
yell(Messages.get(this, "charging"));
|
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"));
|
sprite.showStatus(CharSprite.POSITIVE, Messages.get(this, "invulnerable"));
|
||||||
((DM300Sprite)sprite).updateChargeState(true);
|
((DM300Sprite)sprite).updateChargeState(true);
|
||||||
((DM300Sprite)sprite).charge();
|
((DM300Sprite)sprite).charge();
|
||||||
|
|
|
@ -27,18 +27,18 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Fire;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Fire;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning;
|
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.scenes.GameScene;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.OrangeSprites;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.OrangeSprites;
|
||||||
import com.watabou.utils.PathFinder;
|
|
||||||
import com.watabou.utils.Random;
|
import com.watabou.utils.Random;
|
||||||
/*史莱姆烈焰审判现在移除*/
|
/*史莱姆烈焰审判现在移除*/
|
||||||
public class Slime_Orange extends Slime {
|
public class Slime_Orange extends Slime {
|
||||||
{
|
{
|
||||||
spriteClass = OrangeSprites.class;
|
spriteClass = OrangeSprites.class;
|
||||||
lootChance = 0f; //by default, see rollToDropLoot()
|
lootChance = 0.25f; //by default, see rollToDropLoot()
|
||||||
|
loot = PotionOfLiquidFlame.class;
|
||||||
properties.add(Property.ACIDIC);
|
properties.add(Property.ACIDIC);
|
||||||
maxLvl = -200;
|
maxLvl = 12;
|
||||||
EXP=3;
|
EXP=3;
|
||||||
}
|
}
|
||||||
private int combo = 0;
|
private int combo = 0;
|
||||||
|
@ -55,17 +55,4 @@ public class Slime_Orange extends Slime {
|
||||||
}
|
}
|
||||||
return damage2;
|
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 );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.RoseShiled;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.RoseShiled;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.TestDwarfMasterLock;
|
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.buffs.Vulnerable;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.BlackHost;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.BlackHost;
|
||||||
|
@ -1500,7 +1499,7 @@ public class DwarfMaster extends Boss {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int defenseProc(Char enemy, int damage){
|
public int defenseProc(Char enemy, int damage){
|
||||||
if(damage > 3) summonMiniGoo();
|
// if(damage > 3) summonMiniGoo();
|
||||||
return super.defenseProc(enemy, damage);
|
return super.defenseProc(enemy, damage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1515,17 +1514,17 @@ public class DwarfMaster extends Boss {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (candidates.size() > 0) {
|
// if (candidates.size() > 0) {
|
||||||
RedMurderer mini = new RedMurderer();
|
// RedMurderer mini = new RedMurderer();
|
||||||
Buff.affect(mini, Timer.class, berserk()? 5f:7f);
|
// Buff.affect(mini, Timer.class, berserk()? 5f:7f);
|
||||||
mini.pos = Random.element( candidates );
|
// mini.pos = Random.element( candidates );
|
||||||
mini.state = mini.HUNTING;
|
// mini.state = mini.HUNTING;
|
||||||
|
//
|
||||||
Dungeon.level.occupyCell(mini);
|
// Dungeon.level.occupyCell(mini);
|
||||||
|
//
|
||||||
GameScene.add( mini , 0f );
|
// GameScene.add( mini , 0f );
|
||||||
Actor.addDelayed( new Pushing( mini, pos, mini.pos ), -1 );
|
// Actor.addDelayed( new Pushing( mini, pos, mini.pos ), -1 );
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -176,6 +176,7 @@ public class Shopkeeper extends NPC {
|
||||||
price *= 0.1;
|
price *= 0.1;
|
||||||
}
|
}
|
||||||
price *= 1.5;
|
price *= 1.5;
|
||||||
|
//todo 3折
|
||||||
} else if (Dungeon.hero.buff(BlessNoMoney.class) != null) {
|
} else if (Dungeon.hero.buff(BlessNoMoney.class) != null) {
|
||||||
price *= 0.3;
|
price *= 0.3;
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,7 +54,9 @@ public class BackGoKey extends TestItem {
|
||||||
@Override
|
@Override
|
||||||
public ArrayList<String> actions(Hero hero ) {
|
public ArrayList<String> actions(Hero hero ) {
|
||||||
ArrayList<String> actions = super.actions( hero );
|
ArrayList<String> actions = super.actions( hero );
|
||||||
|
if(Dungeon.hero.buff(ShopLimitLock.class) != null || Dungeon.depth == -5) {
|
||||||
actions.add(AC_INTER_TP);
|
actions.add(AC_INTER_TP);
|
||||||
|
}
|
||||||
return actions;
|
return actions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,7 +144,7 @@ public class BackGoKey extends TestItem {
|
||||||
InterlevelScene.returnDepth = selectedLevel;
|
InterlevelScene.returnDepth = selectedLevel;
|
||||||
InterlevelScene.returnPos = -1;
|
InterlevelScene.returnPos = -1;
|
||||||
Game.switchScene( InterlevelScene.class );
|
Game.switchScene( InterlevelScene.class );
|
||||||
//detach( hero.belongings.backpack );
|
|
||||||
if(Dungeon.hero.buff(ShopLimitLock.class) != null) {
|
if(Dungeon.hero.buff(ShopLimitLock.class) != null) {
|
||||||
for (Buff buffx : hero.buffs()) {
|
for (Buff buffx : hero.buffs()) {
|
||||||
if (buffx instanceof ShopLimitLock) {
|
if (buffx instanceof ShopLimitLock) {
|
||||||
|
|
|
@ -10,7 +10,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.AllyBuff;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Barrier;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Barrier;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Corruption;
|
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.Hunger;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicImmune;
|
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) {
|
public void fxs(Ballistica beam, Callback callback) {
|
||||||
MagicMissile.boltFromChar( curUser.sprite.parent,
|
MagicMissile.boltFromChar( curUser.sprite.parent,
|
||||||
MagicMissile.SHADOW,
|
MagicMissile.SHADOW,
|
||||||
|
@ -401,8 +384,7 @@ public class EndingBlade extends Weapon {
|
||||||
if(TIME_TO_DIED != 0){
|
if(TIME_TO_DIED != 0){
|
||||||
TIME_TO_DIED--;
|
TIME_TO_DIED--;
|
||||||
}
|
}
|
||||||
//fixme
|
|
||||||
//todo
|
|
||||||
if(level >= 10){
|
if(level >= 10){
|
||||||
fireenergy += 0;
|
fireenergy += 0;
|
||||||
//武器最高级
|
//武器最高级
|
||||||
|
|
|
@ -79,6 +79,7 @@ public class IceFishSword extends Weapon {
|
||||||
bolt.collisionPos,
|
bolt.collisionPos,
|
||||||
callback);
|
callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int tier;
|
public int tier;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -182,7 +182,7 @@ public class InterlevelScene extends PixelScene {
|
||||||
fadeTime += 0.9f; //adds 1 second total
|
fadeTime += 0.9f; //adds 1 second total
|
||||||
//speed up transition when debugging
|
//speed up transition when debugging
|
||||||
} else if (DeviceCompat.isDebug()){
|
} else if (DeviceCompat.isDebug()){
|
||||||
fadeTime = 0.9f;
|
fadeTime = 0.1f;
|
||||||
}
|
}
|
||||||
|
|
||||||
SkinnedBlock bg = new SkinnedBlock(Camera.main.width, Camera.main.height, loadingAsset ){
|
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 );
|
Level level = Dungeon.loadLevel( GamesInProgress.curSlot );
|
||||||
Dungeon.switchLevel( level, Dungeon.hero.pos );
|
Dungeon.switchLevel( level, Dungeon.hero.pos );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void resurrect() {
|
private void resurrect() {
|
||||||
|
|
|
@ -957,7 +957,7 @@ public class ItemSpriteSheet {
|
||||||
assignIconRect( POTION_CLEANSE, 7, 7 );
|
assignIconRect( POTION_CLEANSE, 7, 7 );
|
||||||
assignIconRect( POTION_DIVINE, 7, 7 );
|
assignIconRect( POTION_DIVINE, 7, 7 );
|
||||||
assignIconRect( POTION_DRAGONKING, 7, 7 );
|
assignIconRect( POTION_DRAGONKING, 7, 7 );
|
||||||
assignIconRect( POTION_DRAGONKING, 5, 7 );
|
assignIconRect( POTION_HOLYFUROR, 5, 7 );
|
||||||
}
|
}
|
||||||
|
|
||||||
//16 free slots
|
//16 free slots
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.shatteredpixel.shatteredpixeldungeon.ui.changelist.mlpd;
|
package com.shatteredpixel.shatteredpixeldungeon.ui.changelist.mlpd;
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.NewDM300;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.ChangesScene;
|
import com.shatteredpixel.shatteredpixeldungeon.scenes.ChangesScene;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
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.ItemSpriteSheet;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.KagenoNusujinSprite;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.KagenoNusujinSprite;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.MimicSprite;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.MimicSprite;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.MurdererSprite;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.SRPDHBLRTT;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.SRPDHBLRTT;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ShopkKingSprite;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ShopkKingSprite;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.WFSprite;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.WFSprite;
|
||||||
|
@ -31,6 +33,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_13_Changes(changeInfos);
|
||||||
add_v0_6_12_Changes(changeInfos);
|
add_v0_6_12_Changes(changeInfos);
|
||||||
add_v0_6_11_Changes(changeInfos);
|
add_v0_6_11_Changes(changeInfos);
|
||||||
add_v0_6_10_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);
|
add_v0_6_0_Changes(changeInfos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void add_v0_6_13_Changes( ArrayList<ChangeInfo> 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<ChangeInfo> changeInfos ) {
|
public static void add_v0_6_12_Changes( ArrayList<ChangeInfo> changeInfos ) {
|
||||||
ChangeInfo changes = new ChangeInfo("v0.6.0.0-Beta21-p2", true, "");
|
ChangeInfo changes = new ChangeInfo("v0.6.0.0-Beta21-p2", true, "");
|
||||||
changes.hardlight(Window.TITLE_COLOR);
|
changes.hardlight(Window.TITLE_COLOR);
|
||||||
|
|
|
@ -95,6 +95,7 @@ public class WndChallenges extends Window {
|
||||||
final int warning_mode =9;
|
final int warning_mode =9;
|
||||||
final int custom_mode = 13;
|
final int custom_mode = 13;
|
||||||
final int Test_Debug = 14;
|
final int Test_Debug = 14;
|
||||||
|
final int fixed_mode = 15;
|
||||||
boolean isCustom = false;
|
boolean isCustom = false;
|
||||||
float pos = 0;
|
float pos = 0;
|
||||||
|
|
||||||
|
@ -102,7 +103,7 @@ public class WndChallenges extends Window {
|
||||||
|
|
||||||
final String challenge = Challenges.NAME_IDS[i];
|
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);
|
RenderedTextBlock block = PixelScene.renderTextBlock(10);
|
||||||
switch (i){
|
switch (i){
|
||||||
case normal_mode:
|
case normal_mode:
|
||||||
|
@ -125,6 +126,10 @@ public class WndChallenges extends Window {
|
||||||
block.text(Messages.get(Challenges.class, "test"));
|
block.text(Messages.get(Challenges.class, "test"));
|
||||||
block.hardlight(0xFFFF00);
|
block.hardlight(0xFFFF00);
|
||||||
break;
|
break;
|
||||||
|
case fixed_mode:
|
||||||
|
block.text(Messages.get(Challenges.class, "fixed"));
|
||||||
|
block.hardlight(Window.CBLACK);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
block.setPos((WIDTH - block.width()) / 2,
|
block.setPos((WIDTH - block.width()) / 2,
|
||||||
pos + GAP *4);
|
pos + GAP *4);
|
||||||
|
|
|
@ -187,8 +187,8 @@ public class WndNyzShop extends Window {
|
||||||
buff.detach();
|
buff.detach();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if(Dungeon.gold > 300) {
|
} else if(Dungeon.gold > 720) {
|
||||||
Dungeon.gold-=300*Random.Int(2)+hero.lvl/5+10;
|
Dungeon.gold-=720*Random.Int(2)+hero.lvl/5+10;
|
||||||
WndNyzShop.this.selectReward( item );
|
WndNyzShop.this.selectReward( item );
|
||||||
if (RandomBuff.level-- >= 0) {
|
if (RandomBuff.level-- >= 0) {
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,6 +77,8 @@ public class WndStory extends Window {
|
||||||
public static final int ID_CHAPTONEEND = 10;
|
public static final int ID_CHAPTONEEND = 10;
|
||||||
public static final int ID_ICEBOSS = 11;
|
public static final int ID_ICEBOSS = 11;
|
||||||
public static final int ID_GAME = 12;
|
public static final int ID_GAME = 12;
|
||||||
|
|
||||||
|
//
|
||||||
public static final int ID_DWADA = 13;
|
public static final int ID_DWADA = 13;
|
||||||
|
|
||||||
private static final SparseArray<String> CHAPTERS = new SparseArray<>();
|
private static final SparseArray<String> CHAPTERS = new SparseArray<>();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user