Update Beta2.940 END Update

This is p2 End Update,P3 Go to Make is Soon!
This commit is contained in:
LingASDJ 2023-01-23 23:22:59 +08:00
parent 27349df73c
commit 9fe4988b7f
36 changed files with 243 additions and 133 deletions

View File

@ -17,7 +17,7 @@ allprojects {
appPackageName = 'com.ansdomagiclingpixeldungeon.ling'
appVersionCode =700925
appVersionName = '0.6.0.0-Beta21-p2.925-INDEV'
appVersionName = '0.6.0.0-Beta21-p2.940-INDEV'
appJavaCompatibility = JavaVersion.VERSION_1_8

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -576,7 +576,8 @@ actors.mobs.npcs.slyl.name=冷群
actors.mobs.npcs.slyl.message1=我叫冷群,这是我的真名。
actors.mobs.npcs.slyl.message2=地牢最深处的黑暗……似乎有点忘记了。但据说最近有冒险者在地牢新发现了一批特别的书籍,它们或多或少都沾染过魔法。
actors.mobs.npcs.slyl.message3=地牢已经有成千上万的冒险者为了“水晶之心”而前往,但没有一个人回来……我不清楚他的做法是否正确,但风暴就要到来了……我们别无选择,我们只能继续这样……
actors.mobs.npcs.slyl.tips=温馨提示:若要选择其他Boss,请打开染血金币终端。否则请忽略此消息。
actors.mobs.npcs.slyl.tips=温馨提示:Boss终端暂时被禁用敬请期待后续版本。
actors.mobs.npcs.slyl.readbooks=温馨提示:教程书籍正在翻修,敬请期待后续版本。
actors.mobs.npcs.slyl.def_verb=风暴将临
actors.mobs.npcs.slyl.desc=_冷群_是一位掌握冰系力量的魔女是300年前_寒冰圣都_的管理者。\n由于地下异常的不断出现她来到这里调查异常的原因。\n看起来她似乎正在摸鱼。
@ -1233,10 +1234,10 @@ actors.hero.heroclass.warrior_desc_item=蕾零安洁初始携带一枚可以贴
actors.hero.heroclass.warrior_desc_loadout=蕾零安洁初始携带一把_破损的短剑。_这把武器的直接近战伤害是所有初始武器中最高的。\n\n蕾零安洁初始携带_三块石子。_石子可以扔出攻击远处造成一定的少量伤害。\n\n蕾零安洁初始携带一个可以收纳各种药水并保护药水瓶不被冻碎的_药水架。_
actors.hero.heroclass.warrior_desc_misc=蕾零安洁每次食用食物时都能恢复少量生命值。\n\n蕾零安洁开局鉴定的物品有\n- 鉴定卷轴\n- 治疗药水\n- 盛怒卷轴
actors.hero.heroclass.warrior_desc_subclasses=在击杀第二个Boss后可以选择一种专精。蕾零安洁可以在两种专精中二选一
actors.hero.heroclass.warrior_story=人物背景:\n\n在_寒冰圣都_长大的她从小就知道_狂欢节一事_,她精通_近战搏斗_和_武器使用_。\n\n-同时她还是寒冰圣都中少有的不会_魔法_的家族。但是这根本不能让她失去信心。反而她和一个叫“_LunRes_”的人苦学技术。\n\n-时间长了后她也和他有了_默契_。当女帝在发布_悬赏_进入地牢调查_真相_的时候他对她说“去吧孩子。是时候直面我们的创始人了。”\n\n-于是她来到_王都签下协定_前往了_寻找真相的旅程_。然而……一切才_刚刚开始_。
actors.hero.heroclass.huntress_story=人物背景:\n\n来自深渊魔都的她一直明白一场大的灾难就要来临。她从小就是和她的姑妈学占卜。\n\n也因为这个她被人嘲笑但是她并没有把他们的嘲笑当作成一回事。不过一切的都还是在她姑妈离世的那天发生了改变。姑妈在知道自己时日不多后将她带到_丛林_并赋予她一把“有灵的弓”并告诉她_“有人掩埋了真相但并不意味着真相无法再次找到。\n\n_前往极地之境那里才会有_真正的答案。”_说完姑妈便断了气而她也一直铭记姑妈的遗言。\n\n时至今日她来到了_极地之境_的入口并且女帝尚未知情……
actors.hero.heroclass.rogue_story=人物背景:\n\n她是谁。她来自哪里没有人知道但她是人们知道的“皇家盗贼”每当月圆之夜12点的钟声敲响之时。人们就会看见一个盗贼进入富人的家中总是很快的就能拿到一些食物。她偷东西只会偷_食物和水_\n\n并且总是能得手。她将偷来的食物交给那些穷人让穷人他们获得救赎。大家都很赞赏她甚至在有一些富人还专门就把东西放在那里了。有一些富人还放了金钱但总是会看见她留的一张字条“_我不需要金银财宝那东西不能救命”_\n\n因此她被人们叫做“皇家盗贼”面对女帝的悬赏进入地牢调查真相的时候她只问了一句_“找到真相能改善穷人的现状吗”_。\n\n说完便前往地牢的入口而女帝也在后面对她微微一笑。
actors.hero.heroclass.mage_story=人物背景:\n\n来自于_绿林圣域_的她一直明白一个道理真相往往是残酷且无法接受的。\n她从小就是在贵族家里面长大学习了各种元素魔法于是她也知道向那个地方发送微弱的魔力信号。\n\n然而正是这一举动引起了她家人的注意。\n家人明令禁止她发送_魔力信号_给那个令人畏惧的存在但茉莉伊洛怎么可能会听她天生就是好奇心型。于是家人只好流放她不让她回来了。\n\n而走投无路的她却得到了_她的帮助_从此成为了一个_寒冰系魔茉莉伊洛_。\n当女帝在发布悬赏进入地牢调查真相的时候她心中一紧莫非是_她_
actors.hero.heroclass.warrior_story=剧情故事待补充
actors.hero.heroclass.huntress_story=剧情故事待补充
actors.hero.heroclass.rogue_story=剧情故事待补充
actors.hero.heroclass.mage_story=剧情故事待补充
actors.hero.heroclass.mage=茉莉伊洛
actors.hero.heroclass.mage_unlock=茉莉伊洛精通各类法杖并在开局时持有一根_独特的魔杖_。\n\n_在一局游戏中使用两张升级卷轴_以解锁茉莉伊洛。

View File

@ -11,6 +11,7 @@ items.lightblack.oillantern.ac_refill = 加油
items.lightblack.oillantern.ac_burn = 点燃
items.lightblack.oillantern.lanterneedsx=你的提灯需要新的油瓶来加油。
items.lightblack.oillantern.lanterneedsxs=你的油瓶还未加入提灯中,请点击"加油"按钮
items.lightblack.oillantern.lanterdied=你的提灯忽隐忽现地熄灭了!
items.lightblack.oillantern.lanteroff=你吹灭了提灯。
items.lightblack.oillantern.lanteron=你点亮了提灯。

View File

@ -113,7 +113,7 @@ challenges.no_scrolls_desc=其中一种卷轴符文会变得更稀有。只不
rankings$record.something=在黑暗中被击杀
challenges.aquaphobia=_污泥浊水_
challenges.aquaphobia_desc=你已经尝试了被水神祝福后的逍遥自在。\n\n而接下来当水神被亵渎后诅咒也随之即将到来。\n\n圣境层到矮人层踩水将会获得DeBuff,玩家在开局获得4瓶水灵药水饮用可获得100回合的踩水不获得Debuff时间并获得祝福。
challenges.aquaphobia_desc=地牢的水也被污染了\n\n圣境层到矮人层踩水将会获得DeBuff,玩家在开局获得4瓶水灵药水饮用可获得100回合的踩水不获得Debuff时间并获得祝福。\n注意矮人层饮用漂浮药剂或者水灵药剂都会获得极速Buff且每大层会额外产生食人鱼房间。
challenges.champion_enemies=_精英战场_
challenges.champion_enemies_desc=会升级的不止你一个!\n\n・普通敌人刷出时有 1/8 \
的机率拥有特殊的精英属性。\n・精英敌人刷出时会立即醒来。\n・精英敌人免疫腐化效果。\n\n精英敌人有七种\n_烈焰橙色_ 近战伤害 \

View File

@ -487,5 +487,7 @@ ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x38=-P2.920\n1.修复水晶钥匙可
ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x39=-P2.925\n1.修复红龙之王的极端情况下的崩溃\n2.修复火魔女的三阶段极端情况下的减伤错误导致出现不可预料的更恐怖的突发第四阶段。
ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x40=-P2.940\n1.修复史莱姆王的崩溃\n2.修复污泥浊水的漂浮仍然可以吃到Debuff的问题\n3.修复寒冰魔女的Bug\n4.重写部分代码,并加以优化\n5.提灯功能部分小改进和Bug修复\n6.修复楼层的越界问题\n7.修复极度恐慌卷轴可以秒杀Boss的问题\n8.PC端现在是共存包了不会出现存档冲突的情况
//ui.changelist.mlpd.vm0_5_x_changes.xxx//

View File

@ -90,7 +90,7 @@ windows.wndreddragon.flamec02_title=击败火焰机器人
windows.wndreddragon.gnollshied=不戳!那个成天炸我的屑豺狼崽子终于爬了!
windows.wndreddragon.skullgnoll=不戳!那个成天放电的屑豺狼崽子终于爬了!
windows.wndreddragon.flamec02=不戳!那个成天噼里啪啦的屑机器人终于爬了!
windows.wndreddragon.give_item=那本龙王就勉为其难的给你点东西,你看看需要哪个,这些都是从他们的尸体上那边借过来的,老强了。顺带一提,我会给你核子可乐,这东西你想怎么用就怎么用!\n\n另外如果想要本王和你并肩作战你必须找到我的祀环祭坛。祝你好运
windows.wndreddragon.give_item=那本龙王就勉为其难的给你点东西,你看看需要哪个,这些都是从他们的尸体上那边借过来的,老强了。
windows.wndreddragon.confirm=确定
windows.wndreddragon.cancel=取消
windows.wndreddragon$rewardwindow$1.why=你为什么想多拿你的奖励?贪心是一种病,让本龙王给你治治!
@ -386,7 +386,7 @@ windows.wndstory.new=在击败了Yog古神后似乎一切变得平静下来
\nMLPD\
--\n\n-
windows.wndstory.forest=地牢入口前的海报:\n广大的冒险家们你们好。众所周知地牢里面的环境是不可预料的但“水晶之心”在这个危险而又未知的地牢中谁能拿到这个被怪物保护的宝物谁就能终身荣华富贵。但是进入地牢前需要签署一份"死亡预证明"。\n这是一场试炼更是对失去一切的你们的一次救赎。正如以前她在的时候所说:“一些问题之所以难以解决,是因为我们根本还没有抓住重点。一些人可能失去太多,因此早已疲惫,但要知道,他们都是不想失去某物才会想继续去活着!\n\n冒险者们如果你们已经做好准备。那就前往这里吧\n\n ---By 深渊魔都管理者:血魔伯爵
windows.wndstory.forest=剧情待补充……
windows.wndtradeitem.stole=抢劫商店
windows.wndtradeitem.oks=进行对话
windows.wndstory.dm920=Yog-Dzewa的陨落其实背后有太多的秘密。\nYog的后面是一个连Yog都害怕的一个DM终极实验品\n它是造成矮人国度堕落的元凶它是灾难的象征\n它是曾经的死灵军团的杀手锏它是死亡的代言词\n它是连Yog-Dzewa都要敬畏它三分的DM920,\n你需直面你不可逃避你的路途就是为此而来。\n已经没有退路唯有放手一搏无论它是真是假\n但你明白不击败他死的就只能是自己

View File

@ -97,6 +97,10 @@ public class Assets {
public static final String LANTERLING = "interfaces/LanterLing.png";
public static final String BANNERS = "interfaces/banners.png";
//圣诞节
public static final String BANNERSSD = "interfaces/banners_sd.png";
public static final String BADGES = "interfaces/badges.png";
public static final String LOCKED = "interfaces/locked_badge.png";

View File

@ -27,12 +27,10 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Amok;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Awareness;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Light;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicalSight;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MindVision;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.RevealedArea;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.TestDwarfMasterLock;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.huntress.SpiritHawk;
@ -55,13 +53,9 @@ import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.Scroll;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfRegrowth;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfWarding;
import com.shatteredpixel.shatteredpixeldungeon.journal.Notes;
import com.shatteredpixel.shatteredpixeldungeon.levels.CaveTwoBossLevel;
import com.shatteredpixel.shatteredpixeldungeon.levels.CavesGirlDeadLevel;
import com.shatteredpixel.shatteredpixeldungeon.levels.CavesLevel;
import com.shatteredpixel.shatteredpixeldungeon.levels.CityLevel;
import com.shatteredpixel.shatteredpixeldungeon.levels.DeadEndLevel;
import com.shatteredpixel.shatteredpixeldungeon.levels.DimandKingLevel;
import com.shatteredpixel.shatteredpixeldungeon.levels.DwarfMasterBossLevel;
import com.shatteredpixel.shatteredpixeldungeon.levels.HallsLevel;
import com.shatteredpixel.shatteredpixeldungeon.levels.LastLevel;
import com.shatteredpixel.shatteredpixeldungeon.levels.Level;
@ -75,7 +69,6 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.SLMKingLevel;
import com.shatteredpixel.shatteredpixeldungeon.levels.SewerBossLevel;
import com.shatteredpixel.shatteredpixeldungeon.levels.SewerLevel;
import com.shatteredpixel.shatteredpixeldungeon.levels.ShopBossLevel;
import com.shatteredpixel.shatteredpixeldungeon.levels.YogGodHardBossLevel;
import com.shatteredpixel.shatteredpixeldungeon.levels.ZeroLevel;
import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.secret.SecretRoom;
import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.special.SpecialRoom;
@ -407,8 +400,10 @@ public class Dungeon {
level = new PrisonLevel();
break;
case 10:
if((Statistics.boss_enhance & 0x2) != 0) level = new DimandKingLevel();
else level = new PrisonBossLevel();
// if((Statistics.boss_enhance & 0x2) != 0) level = new DimandKingLevel();
// else
level = new PrisonBossLevel();
break;
case 11:
case 12:
@ -417,13 +412,13 @@ public class Dungeon {
level = new CavesLevel();
break;
case 15:
if (SPDSettings.level3boss()==3){
level = new CavesGirlDeadLevel();
} else if (SPDSettings.level3boss()==2){
level = new CaveTwoBossLevel();
} else {
// if (SPDSettings.level3boss()==3){
// level = new CavesGirlDeadLevel();
// } else if (SPDSettings.level3boss()==2){
// level = new CaveTwoBossLevel();
// } else {
level = new NewCavesBossLevel();
}
// }
break;
case 16:
case 17:
@ -432,12 +427,13 @@ public class Dungeon {
level = new CityLevel();
break;
case 20:
if((Statistics.boss_enhance & 0x8) != 0) {
Buff.affect(hero, TestDwarfMasterLock.class).set((1), 1);
level = new DwarfMasterBossLevel();
break;
}
else level = new NewCityBossLevel();
// if((Statistics.boss_enhance & 0x8) != 0) {
// Buff.affect(hero, TestDwarfMasterLock.class).set((1), 1);
// level = new DwarfMasterBossLevel();
// break;
// }
// else
level = new NewCityBossLevel();
break;
case 21:
case 22:
@ -446,8 +442,9 @@ public class Dungeon {
level = new HallsLevel();
break;
case 25:
if((Statistics.boss_enhance & 0x10) != 0) level = new YogGodHardBossLevel();
else level = new NewHallsBossLevel();
// if((Statistics.boss_enhance & 0x10) != 0) level = new YogGodHardBossLevel();
// else
level = new NewHallsBossLevel();
break;
case 26:
level = new LastLevel();

View File

@ -28,8 +28,7 @@ public class LighS extends FlavourBuff {
public boolean act() {
OilLantern lantern = Dungeon.hero.belongings.getItem(OilLantern.class);
if (lantern == null || !lantern.isActivated() || lantern.getCharge() <= 0) {
assert lantern != null;
if ( !lantern.isActivated() || lantern.getCharge() <= 0) {
lantern.deactivate(Dungeon.hero, false);
detach();
return true;

View File

@ -1905,7 +1905,7 @@ public class Hero extends Char {
ankh = i;
}
}
//灯火值低于30死亡生成自己的邪恶面并清空金币将金币保存到json文件灵感空洞骑士
if(lanterfireactive && hero.lanterfire <= 30) {
BlackSoul s = new BlackSoul();
s.pos = Dungeon.hero.pos;
@ -2060,7 +2060,13 @@ public class Hero extends Char {
boolean wasHighGrass = Dungeon.level.map[step] == Terrain.HIGH_GRASS;
super.move( step, travelling);
if (Dungeon.isChallenged(AQUAPHOBIA) && Dungeon.hero.buff(WaterSoulX.class) == null && Dungeon.level.water[pos] && Dungeon.GodWaterLevel()){
if(Dungeon.GodWaterLevel() && Dungeon.level.water[pos] && flying && Dungeon.isChallenged(AQUAPHOBIA)) {
for (Buff buff : hero.buffs()) {
if (buff instanceof InvisibilityRing||buff instanceof HasteLing) {
buff.detach();
}
}
} else if (Dungeon.isChallenged(AQUAPHOBIA) && Dungeon.hero.buff(WaterSoulX.class) == null && Dungeon.level.water[pos] && Dungeon.GodWaterLevel()){
Buff.prolong( hero, Cripple.class, Cripple.DURATION/5f );
} else if (Dungeon.GodWaterLevel()&& Dungeon.level.water[pos]){
Buff.affect(hero, Barkskin.class).set( 2 + hero.lvl/4, 10 );
@ -2069,7 +2075,13 @@ public class Hero extends Char {
//监狱之水 祝福效果
//如果是污泥浊水则触发Debuff
if (Dungeon.PrisonWaterLevel()&& Dungeon.level.water[pos] && Dungeon.isChallenged(AQUAPHOBIA) && Dungeon.hero.buff(WaterSoulX.class)== null){
if(Dungeon.PrisonWaterLevel() && Dungeon.level.water[pos] && flying && Dungeon.isChallenged(AQUAPHOBIA)) {
for (Buff buff : hero.buffs()) {
if (buff instanceof InvisibilityRing||buff instanceof HasteLing) {
buff.detach();
}
}
} else if (Dungeon.PrisonWaterLevel()&& Dungeon.level.water[pos] && Dungeon.isChallenged(AQUAPHOBIA) && Dungeon.hero.buff(WaterSoulX.class)== null){
Buff.prolong(hero, Blindness.class, Blindness.DURATION/5f);
} else if (Dungeon.PrisonWaterLevel()&& Dungeon.level.water[pos]){
Buff.affect(hero, Barkskin.class).set( 2 + hero.lvl/4, 10 );
@ -2085,7 +2097,13 @@ public class Hero extends Char {
//矿洞之水 祝福效果
//如果是污泥浊水则触发Debuff
if (Dungeon.ColdWaterLevel()&& Dungeon.level.water[pos] && Dungeon.hero.buff(WaterSoulX.class)== null && Dungeon.isChallenged(AQUAPHOBIA)){
if(Dungeon.ColdWaterLevel() && Dungeon.level.water[pos] && flying && Dungeon.isChallenged(AQUAPHOBIA)) {
for (Buff buff : hero.buffs()) {
if (buff instanceof FrostImbueEX) {
buff.detach();
}
}
} else if (Dungeon.ColdWaterLevel()&& Dungeon.level.water[pos] && Dungeon.hero.buff(WaterSoulX.class)== null && Dungeon.isChallenged(AQUAPHOBIA)){
Buff.affect(hero, Chill.class, 2f);
} else if (Dungeon.ColdWaterLevel()&& Dungeon.level.water[pos]){
Buff.affect(this, FrostImbueEX.class, FrostImbueEX.DURATION*0.3f);
@ -2097,12 +2115,21 @@ public class Hero extends Char {
}
//矮人层
if (Dungeon.DiedWaterLevel()&& Dungeon.level.water[pos] && Dungeon.hero.buff(WaterSoulX.class)== null && Dungeon.isChallenged(AQUAPHOBIA)){
if(Dungeon.DiedWaterLevel() && Dungeon.level.water[pos] && flying && Dungeon.isChallenged(AQUAPHOBIA)) {
Buff.affect(this, HasteLing.class, Haste.DURATION/20);
} else if (Dungeon.DiedWaterLevel()&& Dungeon.level.water[pos] && Dungeon.hero.buff(WaterSoulX.class)== null && Dungeon.isChallenged(AQUAPHOBIA)){
Buff.prolong(hero, Chill.class, 2f);
Buff.prolong(hero, Blindness.class, Blindness.DURATION/5f);
Buff.prolong( hero, Cripple.class, Cripple.DURATION/5f );
Buff.prolong( hero, Hex.class, Hex.DURATION/10f );
}
} else if (Dungeon.DiedWaterLevel()&& Dungeon.level.water[pos] && Dungeon.isChallenged(AQUAPHOBIA)){
Buff.affect(this, HasteLing.class, Haste.DURATION/20);
} else if(Dungeon.DiedWaterLevel()&& !Dungeon.level.water[pos] && Dungeon.isChallenged(AQUAPHOBIA))
for (Buff buff : hero.buffs()) {
if (buff instanceof HasteLing) {
buff.detach();
}
}
if (!flying && travelling) {
if (Dungeon.level.water[pos]) {

View File

@ -56,6 +56,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.ChaliceOfBlood;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.CloakOfShadows;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.MasterThievesArmband;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.SandalsOfNature;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.TalismanOfForesight;
import com.shatteredpixel.shatteredpixeldungeon.items.bags.BookBag;
import com.shatteredpixel.shatteredpixeldungeon.items.bags.HerbBag;
@ -76,6 +77,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.food.PotionOfLightningShil
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfExperience;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHealing;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfInvisibility;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLevitation;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLightningShiledX;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLiquidFlame;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLiquidFlameX;
@ -117,7 +119,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Gauntlet;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Gloves;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.GreenSword;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.IceFishSword;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.LockSword;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.RedBloodMoon;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.SkyShield;
@ -171,7 +172,7 @@ public enum HeroClass {
new FrozenCarpaccio().quantity(11).identify().collect();
new FireFishSword().quantity(1).identify().collect();
new PotionOfInvisibility().quantity(45).identify().collect();
new LockSword().quantity(1).identify().collect();
new PotionOfLevitation().quantity(100).identify().collect();
Buff.affect(hero, ChampionHero.AntiMagic.class, 50000f);
// Buff.affect(hero, ChampionHero.Blazing.class, ChampionHero.DURATION);
// Buff.affect(hero, ChampionHero.Halo.class, ChampionHero.DURATION);
@ -216,7 +217,7 @@ public enum HeroClass {
new GreenSword().quantity(1).identify().collect();
new SkyShield().quantity(1).identify().collect();
//new IceSan().quantity(1).identify().collect();
new SandalsOfNature().quantity(1).identify().collect();
new GoldBAo().quantity(9999).identify().collect();
new WandOfScale().quantity(1).identify().collect();
new WandOfGodIce().quantity(1).identify().collect();

View File

@ -272,7 +272,7 @@ public class MagicGirlDead extends Boss {
//if target is locked, fire, target = -1
if(lastTargeting != -1){
//no spend, execute next act
sprite.attack( enemy.pos );
//sprite.attack( enemy.pos );
spend( attackDelay()*5f );
shoot(this, enemy.pos);

View File

@ -48,6 +48,7 @@ import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.noosa.audio.Music;
import com.watabou.noosa.audio.Sample;
import com.watabou.utils.Bundle;
import com.watabou.utils.Callback;
import com.watabou.utils.PathFinder;
import com.watabou.utils.Random;
@ -255,16 +256,22 @@ public class SlimeKing extends Mob {
yell(Messages.get(this, "scorpion"));
new Item().throwSound();
Sample.INSTANCE.play(Assets.Sounds.CHAINS);
sprite.parent.add(new Chains(sprite.center(), enemy.sprite.center(), () -> {
Actor.addDelayed(new Pushing(enemy, enemy.pos, newPosFinal, () -> pullEnemy(enemy, newPosFinal)), -1);
next();
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;
chainsUsed = true;
return true;
}

View File

@ -45,10 +45,11 @@ import com.shatteredpixel.shatteredpixeldungeon.items.potions.brews.InfernalBrew
import com.shatteredpixel.shatteredpixeldungeon.items.potions.brews.ShockingBrew;
import com.shatteredpixel.shatteredpixeldungeon.items.rings.Ring;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ExoticScroll;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfAffection;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfAntiMagic;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfConfusion;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfChallenge;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfMetamorphosis;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfPsionicBlast;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfSirensSong;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.Wand;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
import com.shatteredpixel.shatteredpixeldungeon.journal.Notes;
@ -374,12 +375,13 @@ public class RedDragon extends NPC {
}
RingT = (Wand) Generator.random(Generator.Category.WAND);
switch (Random.chances(new float[]{0, 0, 10, 6, 3, 1})){
switch (Random.Int(5)){
default:
case 2: scrolls = new ScrollOfAffection(); break;
case 0: scrolls = new ScrollOfSirensSong(); break;
case 1: scrolls = new ScrollOfChallenge(); break;
case 2: scrolls = new ScrollOfMetamorphosis(); break;
case 3: scrolls = new ScrollOfAntiMagic(); break;
case 4: scrolls = new ScrollOfConfusion(); break;
case 5: scrolls = new ScrollOfPsionicBlast(); break;
case 4: scrolls = new ScrollOfPsionicBlast(); break;
}
//50%:tier2, 30%:tier3, 15%:tier4, 5%:tier5

View File

@ -21,6 +21,9 @@
package com.shatteredpixel.shatteredpixeldungeon.effects;
import static com.shatteredpixel.shatteredpixeldungeon.levels.RegularLevel.Holiday.XMAS;
import static com.shatteredpixel.shatteredpixeldungeon.levels.RegularLevel.holiday;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.watabou.noosa.Image;
@ -36,7 +39,7 @@ public class BannerSprites {
};
public static Image get( Type type ) {
Image icon = new Image( Assets.Interfaces.BANNERS );
Image icon = new Image( holiday == XMAS ? Assets.Interfaces.BANNERSSD : Assets.Interfaces.BANNERS );
switch (type) {
case PIXEL_DUNGEON:
icon.frame( icon.texture.uvRect( 0, 0, 132, 90 ) );

View File

@ -44,7 +44,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfTo
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.WaterSoul;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.ExoticPotion;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.Scroll;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfFlameCursed;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ExoticScroll;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfRoseShiled;
import com.shatteredpixel.shatteredpixeldungeon.items.spells.Alchemize;
@ -228,7 +227,8 @@ public abstract class Recipe {
new WandOfBlueFuck.Recipe(),
new IceFishSword.Recipe(),
new LightFood.Recipe(),
new ScrollOfFlameCursed.Recipe(),
//TODO 未来加入
//new ScrollOfFlameCursed.Recipe(),
};
public static ArrayList<Recipe> findRecipes(ArrayList<Item> ingredients){

View File

@ -44,7 +44,7 @@ public class Entanglement extends Glyph {
if (Random.Int( 4 ) == 0) {
Buff.affect( defender, Earthroot.Armor.class ).level( 5 + 2 * level );
Buff.affect( defender, Earthroot.Armor.class ).level( 5 + 2 * level,defender );
CellEmitter.bottom( defender.pos ).start( EarthParticle.FACTORY, 0.05f, 8 );
Camera.main.shake( 1, 0.4f );

View File

@ -23,6 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.artifacts;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.RoseShiled;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ShadowParticle;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
@ -52,7 +53,7 @@ public class ChaliceOfBlood extends Artifact {
@Override
public ArrayList<String> actions( Hero hero ) {
ArrayList<String> actions = super.actions( hero );
if (isEquipped( hero ) && level() < levelCap && !cursed && !hero.isInvulnerable(getClass()))
if (isEquipped( hero ) && level() < levelCap && !cursed && !hero.isInvulnerable(getClass())&& hero.buff(RoseShiled.class) == null)
actions.add(AC_PRICK);
return actions;
}

View File

@ -56,7 +56,7 @@ public class SandalsOfNature extends Artifact {
charge = 0;
defaultAction = AC_ROOT;
defaultAction = this.level() == 10 ? AC_ROOT : AC_FEED;
}
public static final String AC_FEED = "FEED";
@ -88,7 +88,8 @@ public class SandalsOfNature extends Artifact {
else if (charge == 0) GLog.i( Messages.get(this, "no_charge") );
else {
Buff.prolong(hero, Roots.class, Roots.DURATION);
Buff.affect(hero, Earthroot.Armor.class).level(charge);
//TODO NEED FIXED
Buff.affect(hero, Earthroot.Armor.class).level(charge,hero);
CellEmitter.bottom(hero.pos).start(EarthParticle.FACTORY, 0.05f, 8);
Camera.main.shake(1, 0.4f);
charge = 0;

View File

@ -92,6 +92,8 @@ public class OilLantern extends Item {
if (action.equals(AC_LIGHT)) {
if (this.charge > 0) {
activate(hero, true);
} else if(this.flasks > 0) {
GLog.w(Messages.get(OilLantern.class,"lanterneedsxs"));
} else {
GLog.w(Messages.get(OilLantern.class,"lanterneedsx"));
}

View File

@ -15,6 +15,10 @@ public class OilPotion extends Item {
stackable = true;
}
public boolean isIdentified() {
return true;
}
public ArrayList<String> actions(Hero hero) {
ArrayList<String> actions = OilPotion.super.actions(hero);
actions.add(AC_REFILL);

View File

@ -12,6 +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 {
{

View File

@ -45,7 +45,7 @@ public class ScrollOfRoseShiled extends Scroll {
inputs = new Class[]{PotionOfPurity.class, AlchemicalCatalyst.class, StoneOfBlink.class};
inQuantity = new int[]{1, 1, 1};
cost = 20;
cost = 14;
output = ScrollOfRoseShiled.class;
outQuantity = 3;
@ -62,7 +62,7 @@ public class ScrollOfRoseShiled extends Scroll {
@Override
public void doRead() {
Buff.prolong(hero, RoseShiled.class, RoseShiled.DURATION/2f);
Buff.prolong(hero, RoseShiled.class, 5f);
setKnown();
new Flare( 5, 32 ).color( 0xFF00FF, true ).show( curUser.sprite, 2f );

View File

@ -18,6 +18,7 @@ import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.watabou.utils.Callback;
import com.watabou.utils.Random;
public class IceFishSword extends Weapon {
@ -129,18 +130,20 @@ public class IceFishSword extends Weapon {
@Override
public int min(int lvl) {
return 2*(Dungeon.depth/5+tier+1) + //8 base, down from 10
lvl*(Dungeon.depth/5+tier+1); //scaling unchanged
return (Dungeon.depth / 5 + tier + 1)+ + //10 base, down from 20
lvl*Math.round(1.0f*(tier+1)); //scaling unchanged
}
@Override
public int max(int lvl) {
return 3*(Dungeon.depth/5+tier+1) + //8 base, down from 10
lvl*(Dungeon.depth/5+tier+1); //scaling unchanged
return 2*(Dungeon.depth/5+tier+1) + //10 base, down from 20
lvl*Math.round(1.0f*(tier+1)); //scaling unchanged
}
public int proc(Char attacker, Char defender, int damage) {
if(attacker instanceof Hero){
if(attacker instanceof Hero && Random.Float()<0.2f){
for(Mob mob : ((Hero) attacker).visibleEnemiesList()){
bolt(mob.pos, mob);
}
@ -151,6 +154,6 @@ public class IceFishSword extends Weapon {
@Override
public int STRReq(int lvl) {
return Dungeon.depth/5+16;
return Dungeon.depth/10+20;
}
}

View File

@ -88,7 +88,7 @@ import java.util.Iterator;
public abstract class RegularLevel extends Level {
private static Holiday holiday;
public static Holiday holiday;
public enum Holiday{
NONE,

View File

@ -35,7 +35,7 @@ import com.watabou.noosa.Camera;
import com.watabou.utils.Bundle;
public class Earthroot extends Plant {
{
image = 8;
seedClass = Seed.class;
@ -48,7 +48,7 @@ public class Earthroot extends Plant {
if (Dungeon.hero.subClass == HeroSubClass.WARDEN){
Buff.affect(ch, Barkskin.class).set(Dungeon.hero.lvl + 5, 5);
} else {
Buff.affect(ch, Armor.class).level(ch.HT);
Buff.affect(ch, Armor.class).level(ch.HT,ch);
}
}
@ -109,12 +109,12 @@ public class Earthroot extends Plant {
return damage - block;
}
}
public void level( int value ) {
public void level( int value,Char enemy ) {
if (level < value) {
level = value;
}
pos = target.pos;
pos = enemy.pos;
}
@Override

View File

@ -447,9 +447,9 @@ public class GameScene extends PixelScene {
case 1:
WndStory.showChapter( WndStory.ID_SEWERS );
break;
case 5:
WndStory.showChapter( WndStory.ID_SEWERSBOSS );
break;
// case 5:
// WndStory.showChapter( WndStory.ID_SEWERSBOSS );
// break;
case 6:
WndStory.showChapter( WndStory.ID_PRISON );
break;
@ -459,16 +459,16 @@ public class GameScene extends PixelScene {
case 16:
WndStory.showChapter( WndStory.ID_CITY );
break;
case 20:
if((Statistics.boss_enhance & 0x8) != 0) WndStory.showChapter( WndStory.ID_DWADA );
else WndStory.showChapter( WndStory.ID_CITYSBOSS );
break;
//// case 20:
//// if((Statistics.boss_enhance & 0x8) != 0) WndStory.showChapter( WndStory.ID_DWADA );
//// else WndStory.showChapter( WndStory.ID_CITYSBOSS );
// break;
case 21:
WndStory.showChapter( WndStory.ID_HALLS );
break;
case 25:
WndStory.showChapter( WndStory.ID_HALLSBOOS );
break;
// case 25:
// WndStory.showChapter( WndStory.ID_HALLSBOOS );
// break;
case 26:
WndStory.showChapter( WndStory.ID_CHAPTONEEND );
break;
@ -553,9 +553,10 @@ public class GameScene extends PixelScene {
}
Sample.INSTANCE.play(Assets.Sounds.DESCEND);
if(Dungeon.sbbossLevel()){
tell(Messages.get(Slyl.class, "tips"));
}
// TODO P3
// if(Dungeon.sbbossLevel()){
// tell(Messages.get(Slyl.class, "tips"));
// }
for (Char ch : Actor.chars()){
if (ch instanceof DriedRose.GhostHero){
((DriedRose.GhostHero) ch).sayAppeared();

View File

@ -3,12 +3,15 @@ package com.shatteredpixel.shatteredpixeldungeon.ui;
import com.shatteredpixel.shatteredpixeldungeon.Chrome;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Slyl;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.windows.BossSettingWindows;
import com.shatteredpixel.shatteredpixeldungeon.windows.WndQuest;
import com.watabou.noosa.Game;
import com.watabou.noosa.Image;
import com.watabou.noosa.NinePatch;
import com.watabou.utils.Callback;
public class BossSelectIndicator extends Button {
@ -70,13 +73,24 @@ public class BossSelectIndicator extends Button {
@Override
protected void onClick() {
super.onClick();
GameScene.show(new BossSettingWindows());
//
tell(Messages.get(Slyl.class, "tips"));
}
});
}
private void tell(String text) {
Game.runOnRenderThread(new Callback() {
@Override
public void call() {
GameScene.show(new WndQuest(new Slyl(), text));
}
}
);
}
@Override
protected void layout() {
super.layout();

View File

@ -2,15 +2,16 @@ package com.shatteredpixel.shatteredpixeldungeon.ui;
import com.shatteredpixel.shatteredpixeldungeon.Chrome;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Slyl;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GuideScene;
import com.shatteredpixel.shatteredpixeldungeon.windows.WndOptions;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.windows.WndQuest;
import com.watabou.noosa.Game;
import com.watabou.noosa.Image;
import com.watabou.noosa.NinePatch;
import com.watabou.utils.Callback;
public class MainHandIndicator extends Button {
@ -58,6 +59,16 @@ public class MainHandIndicator extends Button {
visible=false;
}
private void tell(String text) {
Game.runOnRenderThread(new Callback() {
@Override
public void call() {
GameScene.show(new WndQuest(new Slyl(), text));
}
}
);
}
@Override
protected void createChildren() {
@ -72,18 +83,19 @@ public class MainHandIndicator extends Button {
@Override
protected void onClick() {
super.onClick();
ShatteredPixelDungeon.scene().add(new WndOptions(
Messages.get(this, "saver"),
Messages.get(this, "saver_desc"),
Messages.get(this, "okay"),
Messages.get(this, "cancel")) {
@Override
protected void onSelect(int index) {
if (index == 0) {
ShatteredPixelDungeon.switchNoFade(GuideScene.class);
}
}
});
// ShatteredPixelDungeon.scene().add(new WndOptions(
// Messages.get(this, "saver"),
// Messages.get(this, "saver_desc"),
// Messages.get(this, "okay"),
// Messages.get(this, "cancel")) {
// @Override
// protected void onSelect(int index) {
// if (index == 0) {
// ShatteredPixelDungeon.switchNoFade(GuideScene.class);
// }
// }
// });
tell(Messages.get(Slyl.class, "readbooks"));
}
});

View File

@ -40,9 +40,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.food.Pasty;
import com.shatteredpixel.shatteredpixeldungeon.items.food.StewedMeat;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.AlchemicalCatalyst;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfFrost;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHealing;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLiquidFlame;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLiquidFlameX;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfNoWater;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfPurity;
@ -61,7 +59,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.WaterSoul;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.ExoticPotion;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.Scroll;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfFlameCursed;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTerror;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ExoticScroll;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfRoseShiled;
import com.shatteredpixel.shatteredpixeldungeon.items.spells.Alchemize;
@ -347,10 +344,11 @@ public class QuickRecipe extends Component {
ArrayList<Item> in = new ArrayList<>(Arrays.asList(pot));
result.add(new QuickRecipe( r, in, r.sampleOutput(in)));
}
result.add(new QuickRecipe( new ScrollOfFlameCursed.Recipe(),
new ArrayList<Item>(Arrays.asList(new PotionOfLiquidFlame(), new ScrollOfTerror(),
new PotionOfFrost())),
new ScrollOfFlameCursed().quantity(3)));
//TODO 未来加入
// result.add(new QuickRecipe( new ScrollOfFlameCursed.Recipe(),
// new ArrayList<Item>(Arrays.asList(new PotionOfLiquidFlame(), new ScrollOfTerror(),
// new PotionOfFrost())),
// new ScrollOfFlameCursed().quantity(3)));
result.add(new QuickRecipe( new ScrollOfRoseShiled.Recipe(),
new ArrayList<Item>(Arrays.asList(new PotionOfPurity(), new AlchemicalCatalyst(),
new StoneOfBlink())),

View File

@ -63,27 +63,58 @@ public class vM0_6_7_X_Changes {
}
public static void add_v0_6_20_Changes( ArrayList<ChangeInfo> changeInfos ) {
ChangeInfo changes = new ChangeInfo("Coming Soon-Beta21--P3", true, "");
ChangeInfo changes = new ChangeInfo("v0.6.0.0-Beta21-p2.940", true, "");
changes.hardlight(Window.TITLE_COLOR);
changeInfos.add(changes);
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.AMULET), ("MLPD上半段-试炼与水晶之心"),
("我们成功的拿到了水晶之心然而我们在最终调查中得知YOG不是真正的罪魁祸首……" )));
changes = new ChangeInfo("新内容", false, null);
changes.hardlight(Window.GREEN_COLOR);
changeInfos.add(changes);
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.DG20), ("BossRush"),
("常规的开局你可能已经有所厌倦,地牢中的首领也是如此。这一次,不为成败,只为实力而战" )));
changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_ON), ("污泥浊水"),
("1.矮人层饮用漂浮药剂或者水灵药剂都会获得极速Buff且每大层会额外产生食人鱼房间。" +
"\n-2.修复漂浮效果存在时还能获得Debuff的问题" )));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.ICEBOOK), ("新年活动"),
("新年的钟声即将敲响,你接到了一份神秘的邀请……")));
changes.addButton(new ChangeButton(Icons.get(Icons.INFO), ("圣诞与常规两个主界面Logo"),
("现在圣诞和常规有两个主界面logo未来还会有更多。" )));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.FIREDVS), ("重构世界观"),
("魔绫的像素地牢已经陪你走过一个春秋了,然而,魔绫的剧情,你是否清楚呢?")));
changes = new ChangeInfo("修复", false, null);
changes.hardlight(Window.CYELLOW);
changeInfos.add(changes);
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.SKELETONGOLD), ("部分Boss重做"),
("为了让魔绫和底层破碎更能区分部分boss会进行改进或者重做。敬请期待")));
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_06X40")));
changes = new ChangeInfo("重制", false, null);
changes.hardlight(Window.ANSDO_COLOR);
changeInfos.add(changes);
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.SKELETONGOLD), ("Boss重制计划"),
("冰雪魔女钻石宝箱王矮人大师Yog-Zot,史莱姆王将在完全重制后重新加入并且可能会改名。且弃用注解版的Boss。并且现在Boss终端暂时暂停使用。" )));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.DG20), ("教程重制计划"),
("教程文档正在返修,敬请期待" )));
changes = new ChangeInfo("调整", false, null);
changes.hardlight(Window.CBLACK);
changeInfos.add(changes);
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.REDDRAGON), ("核子可乐"),
("核子可乐现在不能在红龙之王处被获得,但会在未来的娱乐模式中加入。" )));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.DG26), ("玫瑰秘卷"),
("玫瑰秘卷无敌时间从35回合改为5回合且不能在此期间使用吸血圣杯。制造配方能量消耗从20改为14" )));
changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_OFF), ("挑战重制计划"),
("药水癔症基因突变暴力Boss将会在未来重新加入现在暂时禁用" )));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.DG24), ("极度秘卷"),
("暂时移除,将在未来加入。" )));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.ICEFISHSWORD), ("尚方宝剑"),
("初始力量变为20每10大层进行+1力量成长面板调整攻击特效从100%改为20%有几率触发。" )));
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.ICEDVS), ("不止于此"),
("P3的更新远远不止这些而且这次我们会将一些想法和建议交给玩家让我们一起制作P3吧完善上半段旅程吧。")));
}
public static void add_v0_6_19_Changes( ArrayList<ChangeInfo> changeInfos ) {

View File

@ -139,7 +139,7 @@ public class WndChallenges extends Window {
cb.active = editable;
//Disable
if(Challenges.NAME_IDS[i].equals("light&black")||Challenges.NAME_IDS[i].equals("boss")){
if(Challenges.NAME_IDS[i].equals("stronger_bosses")||Challenges.NAME_IDS[i].equals("sbsg")||Challenges.NAME_IDS[i].equals("exsg")){
cb.active = false;
cb.checked(false);
cb.alpha(0.5f);

View File

@ -36,7 +36,6 @@ 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;
@ -135,7 +134,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(5).identify().collect();
rewardObtained = true;
} else {
Dungeon.level.drop( reward, reddragon.pos ).sprite.drop();

View File

@ -77,21 +77,20 @@ public class DesktopLauncher {
//shorten/simplify exception message to make it easier to fit into a message box
exceptionMsg = exceptionMsg.replaceAll("\\(.*:([0-9]*)\\)", "($1)");
exceptionMsg = exceptionMsg.replace("com.shatteredpixel.shatteredpixeldungeon.", "");
exceptionMsg = exceptionMsg.replace("com.magiclingpc.cn", "");
exceptionMsg = exceptionMsg.replace("com.watabou.", "");
exceptionMsg = exceptionMsg.replace("com.badlogic.gdx.", "");
exceptionMsg = exceptionMsg.replace("\t", " ");
if (exceptionMsg.contains("Couldn't create window")){
if (exceptionMsg.contains("无法打开窗口!")){
TinyFileDialogs.tinyfd_messageBox(title + " Has Crashed!",
title + " wasn't able to initialize it's graphics display, sorry about that!\n\n" +
"This usually happens when a computer's graphics card does not support OpenGL 2.0+, or has misconfigured graphics drivers.\n\n" +
"If you're certain the game should be working on your computer, feel free to message the developer (Evan@ShatteredPixel.com)\n\n" +
"version: " + Game.version, "ok", "error", false);
} else {
TinyFileDialogs.tinyfd_messageBox(title + " Has Crashed!",
title + " has run into an error it can't recover from and has crashed, sorry about that!\n\n" +
"If you could, please email this error message to the developer (Evan@ShatteredPixel.com):\n\n" +
TinyFileDialogs.tinyfd_messageBox(title + "魔绫像素地牢发生了意外的崩溃!",
title + "请将此处的代码截图发送给作者QQ2735951230" +
"version: " + Game.version + "\n" +
exceptionMsg,
"ok", "error", false);