Update Beta2.940 END Update
This is p2 End Update,P3 Go to Make is Soon!
This commit is contained in:
parent
27349df73c
commit
9fe4988b7f
|
@ -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 |
BIN
core/src/main/assets/interfaces/banners_sd.png
Normal file
BIN
core/src/main/assets/interfaces/banners_sd.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 25 KiB |
|
@ -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_在一局游戏中使用两张升级卷轴_以解锁茉莉伊洛。
|
||||
|
|
|
@ -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=你点亮了提灯。
|
||||
|
|
|
@ -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_烈焰(橙色):_ 近战伤害 \
|
||||
|
|
|
@ -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//
|
|
@ -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但你明白,不击败他,死的就只能是自己!!!
|
||||
|
|
|
@ -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";
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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]) {
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ) );
|
||||
|
|
|
@ -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){
|
||||
|
|
|
@ -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 );
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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"));
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 {
|
||||
|
||||
{
|
||||
|
|
|
@ -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 );
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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"));
|
||||
}
|
||||
|
||||
});
|
||||
|
|
|
@ -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())),
|
||||
|
|
|
@ -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 ) {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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 + "请将此处的代码截图发送给作者,QQ:2735951230" +
|
||||
"version: " + Game.version + "\n" +
|
||||
exceptionMsg,
|
||||
"ok", "error", false);
|
||||
|
|
Loading…
Reference in New Issue
Block a user