Update 0.6.00 BetaX
Continue to commit and debug
|
@ -14,8 +14,8 @@ allprojects {
|
|||
appName = 'Magic Ling Pixel Dungeon'
|
||||
appPackageName = 'com.ansdomagiclingpixeldungeon.ling'
|
||||
|
||||
appVersionCode =13030
|
||||
appVersionName = '0.6.0.0-Beta9'
|
||||
appVersionCode =14030
|
||||
appVersionName = '0.6.0.0-BetaX'
|
||||
|
||||
appJavaCompatibility = JavaVersion.VERSION_1_8
|
||||
|
||||
|
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 8.4 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 3.4 KiB |
|
@ -1,4 +1,24 @@
|
|||
###MLPD
|
||||
custom.testmode.levelteleporter.name = 升降器
|
||||
custom.testmode.levelteleporter.desc = 测试专用的升降器,用于在楼层之间快速移动。注意,锁层状态下无法移动。
|
||||
custom.testmode.levelteleporter.ac_descend = 下一层
|
||||
custom.testmode.levelteleporter.ac_ascend = 上一层
|
||||
custom.testmode.levelteleporter.ac_view = 探查
|
||||
custom.testmode.levelteleporter.ac_teleport = 传送
|
||||
custom.testmode.levelteleporter.cannot_send= 无法移动。不能在楼层封锁时移动,以及不能移动出这个地牢。
|
||||
custom.testmode.levelteleporter.ac_interlevel_tp = 返回
|
||||
custom.testmode.levelteleporter.interlevel_teleport_title = 选择传送楼层
|
||||
custom.testmode.levelteleporter.interlevel_teleport_go = 前往_%d_层
|
||||
|
||||
custom.testmode.mobplacer.name = 怪物放置器
|
||||
custom.testmode.mobplacer.desc = 生成指定怪物。
|
||||
custom.testmode.mobplacer.ac_set= 设置
|
||||
custom.testmode.mobplacer.ac_place=放置
|
||||
custom.testmode.mobplacer.forbidden=你不能在这里放置怪物。
|
||||
custom.testmode.mobplacer.prompt=选择目标地点
|
||||
custom.testmode.mobplacer.elite=精英词缀数量
|
||||
|
||||
|
||||
actors.buffs.sanity.bad=我感觉我不太好……
|
||||
actors.buffs.sanity.tobad=理智过低了会死吗?
|
||||
actors.buffs.sanity.diedsoul=希望不在……绝望永存……
|
||||
|
@ -18,6 +38,484 @@ actors.buffs.sanity.crazy_desc=_由于没有光芒的照耀或因为怪物的精
|
|||
|
||||
actors.buffs.sanity.died_desc=Π理智已经离你而去,臆想的怪物,残破的信念,堕落的灵魂,你的恐惧已经成为了了现实Π\n\nΠ目前理智为:%s点Π\n\nΠ你已经快要完全丧失理智了,你能感受到自己的灵魂正在被蚕食,如果还不想办法恢复自己的理智,那么自己将会变成下一个怪物!
|
||||
|
||||
#
|
||||
actors.hero.heroclass.slime_unlock= 从史莱姆王身上迸裂的原浆所聚合成的新个体,也许是为了模仿击败它的强者,这团小生命有着一定的智能。\n\n_上半段暂无法解锁,敬请期待。_
|
||||
|
||||
actors.buffs.reloadshop.heromsg=购买成功!欢迎你再次来奈亚子小商店购买物品。
|
||||
actors.buffs.reloadshop.name=购买成功!
|
||||
|
||||
actors.mobs.bosses.dwarfmaster.name=矮人大师领主
|
||||
actors.mobs.bosses.dwarfmaster.desc=前矮人王国正规军首领,如今已经被邪恶魔法腐蚀同化。\n\n他仍然记得矮人王国曾经的辉煌,也记得矮人王国最后的灭亡。你的到来他明显认为是入侵者,小心行事,他作为前矮人王国的正规军首领,作风往往比现阶段的矮人国王更加残暴。\n\n失败不代表一切,死亡不代表结束。
|
||||
actors.mobs.bosses.dwarfmaster.death_rattle=矮人王国……最终还是失败了吗……
|
||||
actors.mobs.bosses.dwarfmaster.notice=你 是 谁 ?! 为 什 么 踏 入 了 这 里 ?
|
||||
actors.mobs.bosses.dwarfmaster.sacrifice=我辜负了矮人王国……
|
||||
actors.mobs.bosses.dwarfmaster.pumpup=我属于矮人王国的亡灵,而你必须死!
|
||||
actors.mobs.bosses.dwarfmaster.more_summon=我居然也是亡灵了吗?
|
||||
actors.mobs.bosses.dwarfmaster.!!!=入侵者,告诉我,你的目的是什么!!!
|
||||
actors.mobs.bosses.dwarfmaster.buff_all=矮人军队,速速捉拿此人!
|
||||
actors.mobs.bosses.dwarfmaster.wave_1=现任矮人国王?那就是一个冒牌货!!!
|
||||
actors.mobs.bosses.dwarfmaster.wave_2=你感觉你自己现在是救世主吗?
|
||||
actors.mobs.bosses.dwarfmaster.wave_3=你究竟是谁?
|
||||
actors.mobs.bosses.dwarfmaster.enraged=或许,你是那个勇者。接受我最后的洗礼吧!
|
||||
actors.mobs.bosses.dwarfmaster.losing=你究竟是谁,你很强,但要面对她,还远远不够!
|
||||
actors.mobs.bosses.dwarfmaster.defeated=看来,并不是所有人都疯了!勇者,这是你的奖励!我不会就此沉睡,我要继续调查王国灭亡的真相……
|
||||
actors.mobs.bosses.dwarfmaster.life=生命源头
|
||||
actors.mobs.bosses.dwarfmaster.dead=死亡终焉
|
||||
actors.mobs.bosses.dwarfmaster.teleport_2=你,去那边支援!
|
||||
actors.mobs.bosses.dwarfmaster.teleport_1=我可是曾经的矮人大将,你算什么东西!
|
||||
levels.dwarfmasterbosslevel.dead_go=就在你移动的一瞬间,大厅发出了诡异的笑声,裂缝变成了地板。这和石碑上面的记载完全一致,你可能有大麻烦了!
|
||||
actors.mobs.bosses.dwarfmaster.lifelink_2=矮人军队,把你们的生命链接给我吧
|
||||
actors.mobs.bosses.dwarfmaster.lifelink_1=生命链接,为矮人王国清扫障碍
|
||||
actors.mobs.bosses.dwarfmaster$dkghoul.rankings_desc=被大师说服加入了矮人亡灵军队
|
||||
actors.mobs.bosses.dwarfmaster$dkmonk.rankings_desc=被大师说服加入了矮人亡灵军队
|
||||
actors.mobs.bosses.dwarfmaster$dkwarlock.rankings_desc=被大师说服加入了矮人亡灵军队
|
||||
actors.mobs.bosses.dwarfmaster.rankings_desc=被大师说服加入了矮人亡灵军队
|
||||
actors.mobs.bosses.dwarfmaster.no_rose=矮人大师领主:她的力量不能在这里帮助你!
|
||||
actors.mobs.bosses.dwarfmaster.no_fire=矮人大师领主:免疫火焰?这里不允许你这样!
|
||||
actors.mobs.bosses.dwarfmaster.no_inst=矮人大师领主:直面我,不要躲在暗处!
|
||||
|
||||
actors.mobs.dimandmimic.name=钻石宝箱怪
|
||||
actors.mobs.dimandmimic.desc=长得几乎和钻石宝箱王一模一样,但是远比宝箱王弱的多!
|
||||
|
||||
actors.mobs.bosses.dm920.name=DM920
|
||||
actors.mobs.bosses.dm920.desc=DM920是曾经死灵巫师为了夺取前矮人国王的政权而用黑暗魔法结合起来的恐怖产物,时至今日,DM920仍然是地牢中的一个巨大的威胁。\n\n但由于她魔力的影响,DM920在另一个异次元空间内,如果没有她的允许,DM920将无法出现在地牢之中。\n\n有人曾经说过,DM920是死灵巫师夺取矮人政权的导火索和转折点!!!\n\nΓ战斗回合过长将会释放湮灭审判,直接秒杀玩家!
|
||||
actors.mobs.bosses.dm920.notice=侦查到未授权单位……
|
||||
actors.mobs.bosses.dm920.defeated=哦,我开始享受这场战斗了!!!
|
||||
|
||||
actors.mobs.bosses.dm920$dm300attackmode.name=DM920-突袭者形态
|
||||
actors.mobs.bosses.dm920$dm300attackmode.desc=DM920是曾经死灵巫师为了夺取前矮人国王的政权而用黑暗魔法结合起来的恐怖产物,时至今日,DM920仍然是地牢中的一个巨大的威胁。\n\n但由于她魔力的影响,DM920在另一个异次元空间内,如果没有她的允许,DM920将无法出现在地牢之中。\n\n_攻击形态_下DM920拥有更加强大的_腐蚀毒雾_效果,并且能发射超级冲击波震飞敌人,打人也会更加的痛。\n\n_突袭者形态下DM920将更加危险,同时会投掷炸弹,并主动远离玩家,若玩家靠得太近将可能会被麻痹。_\n\n有人曾经说过,DM920是死灵巫师夺取矮人政权的导火索和转折点!!!\n\nΓ战斗回合过长将会释放湮灭审判,直接秒杀玩家!
|
||||
actors.mobs.bosses.dm920$dm300attackmode.notice=侦查到未授权单位……
|
||||
actors.mobs.bosses.dm920$dm300attackmode.defeated=那么,你在被诅咒缠绕的世界里能活下来吗?
|
||||
|
||||
actors.mobs.bosses.dm920$dm300spidermode.name=DM920-猩蛛的诅咒
|
||||
actors.mobs.bosses.dm920$dm300spidermode.desc=DM920是曾经死灵巫师为了夺取前矮人国王的政权而用黑暗魔法结合起来的恐怖产物,时至今日,DM920仍然是地牢中的一个巨大的威胁。\n\n但由于她魔力的影响,DM920在另一个异次元空间内,如果没有她的允许,DM920将无法出现在地牢之中。\n\n_大猩猩蜘蛛形态_下DM920拥有更加强大的_酸蚀毒雾_效果,并且能发射蜘蛛丝困住敌人,主动离开玩家,打人也会更加的痛,同时,DM920的普通攻击造成极大的伤害。猩蛛状态下,DM920将完全免疫魔法伤害\n\n有人曾经说过,DM920是死灵巫师夺取矮人政权的导火索和转折点!!!\n\nΓ战斗回合过长将会释放湮灭审判,直接秒杀玩家!
|
||||
actors.mobs.bosses.dm920$dm300spidermode.notice=侦查到未授权单位……
|
||||
actors.mobs.bosses.dm920$dm300spidermode.defeated=无论你是谁,都不能打败我!现在,游戏才刚刚开始!!!
|
||||
|
||||
actors.mobs.bosses.dm920$dm300deathball.name=DM920-利刃突刺
|
||||
actors.mobs.bosses.dm920$dm300deathball.desc=DM920是曾经死灵巫师为了夺取前矮人国王的政权而用黑暗魔法结合起来的恐怖产物,时至今日,DM920仍然是地牢中的一个巨大的威胁。\n\n但由于她魔力的影响,DM920在另一个异次元空间内,如果没有她的允许,DM920将无法出现在地牢之中。\n\n_最终形态下的_下DM920拥有更加强大的_酸蚀毒雾+中毒毒雾_效果,并且本身完全免疫酸和毒。它还会在每次血量低于一定的情况下释放_死亡黑雾_来使敌人残废和流血,同时也会召唤_DM275_和_DM100精英组长形态前来支援_。\n\n-并且周期性发射_魔法球_对敌人造成随机负面Buff影响。\n\n_DM920最终形态,将会缓慢的自我修复,并且在经过水的敌方额外召唤DM275进行作战_,并且免疫魔法伤害和拥有更高的精准度,以及自身会不断成长,如果不迅速击败将会无法阻挡!!!。\n\n有人曾经说过,DM920是死灵巫师夺取矮人政权的导火索和转折点!!!
|
||||
actors.mobs.bosses.dm920$dm300deathball.notice=侦查到未授权单位……
|
||||
actors.mobs.bosses.dm920$dm300deathball.defeated=杀 戮 任 务 失 败 …… 系 统 关 闭 !!!
|
||||
#觉醒天赋
|
||||
actors.hero.talent.died_god.title=狂暴战神
|
||||
actors.hero.talent.died_god.desc=-_+1_伤害提升5伤害\n\n-_+2_有护甲的时候自带奥术护盾和树肤\n\n-_+3_满血的时候行动更加迅速\n\n-_+4_血量低于50的时候自带10回合荆棘,和一个弱型治疗效果\n\n-_+5_短暂拒绝死亡后 将获得25的奥术护盾 并且力竭恢复速度减半
|
||||
|
||||
|
||||
|
||||
actors.buffs.randombuff$diedbuff.name=湮灭审判
|
||||
actors.buffs.randombuff$diedbuff.desc=DM920会在过程中渐渐对你失去耐心,如果战斗时间过长。DM920将进入第五形态-该形态几乎不可能被打败……\n\nDM920对你失去耐心的时间还有:%s回合。
|
||||
|
||||
actors.mobs.npcs.whitenpc.name=???
|
||||
|
||||
actors.mobs.npcs.whitenpc.ok=很好,直面自己的错误。面对自己,才能成为将来的救世主!
|
||||
|
||||
actors.mobs.npcs.whitenpc.nonono=你处于娱乐模式,这是最后一层了!
|
||||
|
||||
actors.buffs.championhero.warn=你感受到了无尽的力量。
|
||||
actors.buffs.championhero$light.name=雷霆祝福
|
||||
actors.buffs.championhero$light.desc=雷霆祝福使玩家完全免疫闪电类元素伤害。
|
||||
actors.buffs.championhero$halo.name=鬼磷祝福
|
||||
actors.buffs.championhero$halo.desc=鬼磷祝福造成 35% 额外近战伤害,会使用更强大的磷火点燃攻击目标,免疫火焰,免疫磷火。
|
||||
actors.buffs.championhero$blazing.name=烈焰祝福
|
||||
actors.buffs.championhero$blazing.desc=烈焰祝福造成 25% 额外近战伤害,会点燃攻击目标,免疫火焰,且会在死亡时引燃周遭。
|
||||
actors.buffs.championhero$projecting.name=索敌祝福
|
||||
actors.buffs.championhero$projecting.desc=索敌祝福拥有 25% 额外近战伤害。
|
||||
actors.buffs.championhero$antimagic.name=敌法祝福
|
||||
actors.buffs.championhero$antimagic.desc=敌法祝福拥有 25% 的伤害减免,且完全免疫所有魔法效果。
|
||||
actors.buffs.championhero$giant.name=无畏祝福
|
||||
actors.buffs.championhero$giant.desc=无畏祝福拥有 75% 的伤害减免。
|
||||
actors.buffs.championhero$blessed.name=天佑祝福
|
||||
actors.buffs.championhero$blessed.desc=天佑祝福拥有 200% 额外精准与躲避。
|
||||
actors.buffs.championhero$growing.name=成长祝福
|
||||
actors.buffs.championhero$growing.desc=成长祝福拥有额外精准、躲避、近战伤害与伤害减免。\n\n当前精准、躲避、近战伤害加成:%1$d%%\n当前伤害减免:%2$d%%
|
||||
|
||||
actors.mobs.dimandking.name=钻石宝箱王
|
||||
actors.mobs.dimandking.notice=翼绫?是你?不,你不是翼绫!你为何前来?
|
||||
actors.mobs.dimandking.lifelink_1=快快出来鲨死这个祸害。
|
||||
actors.mobs.dimandking.lifelink_2=翼绫没有死,她只是对你们太失望了!
|
||||
actors.mobs.dimandking.teleport_1=立刻,驱赶此人!
|
||||
actors.mobs.dimandking.teleport_2=立即,拖住此人!
|
||||
actors.mobs.dimandking.buff_all=立刻解决此人!
|
||||
actors.mobs.dimandking.sacrifice=光荣的自爆吧!
|
||||
actors.mobs.dimandking.death_rattle=伙伴们,守住这里!
|
||||
actors.mobs.dimandking.more_summon=伙伴们,一起上!
|
||||
actors.mobs.dimandking.wave_1=伙伴们,想想你们的价值!
|
||||
actors.mobs.dimandking.wave_2=为宝箱王而战!
|
||||
actors.mobs.dimandking.wave_3=不要让此人拿到我的东西。
|
||||
actors.mobs.dimandking.enraged=你以为你很幽默?我不会让你活下去的!
|
||||
actors.mobs.dimandking.losing=不,你不能这样。你不知道前方是骗局!
|
||||
actors.mobs.dimandking.defeated=该死的蠢货,你会毁了世界的!
|
||||
actors.mobs.dimandking.rankings_desc=被钻石宝箱王说教至死
|
||||
actors.mobs.dimandking.desc=钻石宝箱王\n\n翼绫的杰出产物,可因为灵力输送过度,他有了自我意识。\n\n他和翼绫失踪肯定有一定的关联。\n他应该看见你了,小心一点,他不是善良的!
|
||||
actors.mobs.dimandking$dkghoul.rankings_desc=被钻石宝箱王说教至死
|
||||
actors.mobs.dimandking$dkmonk.rankings_desc=被钻石宝箱王说教至死
|
||||
actors.mobs.dimandking$dkwarlock.rankings_desc=被钻石宝箱王说教至死
|
||||
actors.mobs.dimandking.str_empower=认真模式开启!
|
||||
|
||||
actors.mobs.redlunar.name=死灵大师
|
||||
actors.mobs.redlunar.desc=那些回忆花重金雇的保镖,你看来已经引起了他的注意。
|
||||
actors.mobs.redlunar.notice=0元购?
|
||||
actors.mobs.redlunar.defeated=不……这不可能……
|
||||
actors.mobs.redlunar.arise=起来,你们这群废物!
|
||||
actors.mobs.redlunar.rankings_desc=被死灵大师超度
|
||||
actors.mobs.redlunar.scorpion=给我回来!
|
||||
|
||||
actors.mobs.ice_scorpio.name=寒冰蝎子
|
||||
actors.mobs.ice_scorpio.desc=这些巨大的节肢类恶魔生物会尽可能避免一切近距离接触,并且会在远处射出能够致残的尖刺。\n\n_对你造成冻伤效果_
|
||||
|
||||
actors.mobs.fire_scorpio.name=烈焰蝎子
|
||||
actors.mobs.fire_scorpio.desc=这些巨大的节肢类恶魔生物会尽可能避免一切近距离接触,并且会在远处射出能够致残的尖刺。\n\n_对你造成火焰效果_
|
||||
|
||||
actors.mobs.icecrystal.name=冰雪结晶
|
||||
actors.mobs.icecrystal.on_death=你感受到了这里的魔力相对减弱了一些,同时你感觉远方某处的神秘力量减弱了。
|
||||
actors.mobs.icecrystal.desc=冰雪结晶与一个神秘的存在相连,结晶正在产生各种冰雪怪物.\n\n如果不加以阻止,将会产生很严重的后果。
|
||||
|
||||
actors.mobs.srpdiclr.name = 寒冰猎人
|
||||
actors.mobs.srpdiclr.desc = 这些寒冰猎人是冰雪结晶的保卫者,如果你敢靠近冰雪结晶,绝对会被他们热情饱满的打上一顿。
|
||||
|
||||
actors.mobs.srpdiclrpro.name = 寒冰猎人
|
||||
actors.mobs.srpdiclrpro.desc = 这些寒冰猎人是冰雪魔女的保卫者,如果你敢靠近他的主人,绝对会被他们热情饱满的打上一顿。
|
||||
|
||||
actors.mobs.yogreal.name=Yog-Zot
|
||||
actors.mobs.yogreal.notice=我 看 见 你 了
|
||||
actors.mobs.yogreal.darkness=黑暗正在逼近……
|
||||
actors.mobs.yogreal.hope=汝・之・希・望・皆・为・虚・妄
|
||||
actors.mobs.yogreal.defeated=……
|
||||
actors.mobs.yogreal.rankings_desc=被Yog-Zot吞噬
|
||||
actors.mobs.yogreal.desc=Yog-Zot是一个古老的神;一个将自己的力量延伸向凡间世界并吞噬它们、以为自身无尽的成长提供养分的巨大怪物。矮人一定是在玩弄黑暗魔法的时候引起了这个巨大恐怖的注意,并且从那以后就一直试图控制他,使之无法侵吞外界。\n\n这位古神起源于一个原始的、充满魔法与混沌的维度,且无法将他的真实形态带入这个世界。因此,他创造了自己的化身并召唤了恶魔们作为他的仆从来完成它的命令。\n\n这只巨眼是古神在这个世界上力量的焦点。虽然这只眼睛本身是不可移动的,但它能够射出强大的魔能光束,并召唤各种恶魔仆从来帮助它。
|
||||
actors.mobs.yogreal.desc_spawners=你感觉到恶魔能量正从上层涌向古神之眼。你在上面活着留下的什么东西正在给古神回馈着能量。_古神会使用这股能量召唤更强大的手下!_
|
||||
actors.mobs.yogreal.destroy_tile=附近似乎发生了一些变化!
|
||||
actors.mobs.yogreal$larva.name=古神幼虫
|
||||
actors.mobs.yogreal$larva.rankings_desc=被Yog-Zot阻挡,无路可退
|
||||
actors.mobs.yogreal$larva.desc=这些古神的小小造物是一种易于制造的简陋生物。虽然单个幼虫十分脆弱,但它们能够被迅速地制造出来,并会在形成一个大数目后变得难以抵挡。\n\n_在古神周围时极大降低受到伤害_。
|
||||
actors.mobs.yogreal$yogrealripper.desc = 这种恐怖的生物是恶魔利用这里残留的众多矮人尸骸而组成的。恶魔撕裂者外观类似苍白瘦弱的矮人,具有残缺不全的躯干与尖利修长的骨爪。\n\n恶魔撕裂者难以承受沉重的打击,但它们行动迅捷并十分危险。它们能够瞬间扑过极远的距离,再用自己的骨爪刺穿目标。\n\n_在古神周围时极大降低受到伤害_。
|
||||
actors.mobs.yogreal$yogrealripper.rankings_desc=被Yog-Zot阻挡,无路可退
|
||||
actors.mobs.yogreal$yogrealscorpio.rankings_desc=被Yog-Zot阻挡,无路可退
|
||||
actors.mobs.yogreal$yogrealsuccubus.rankings_desc=被Yog-Zot阻挡,无路可退
|
||||
actors.mobs.yogreal$yogscanround.rankings_desc=被Yog-Zot阻挡,无路可退
|
||||
actors.mobs.yogreal$yogcontinuousbeam.rankings_desc=被Yog-Zot阻挡,无路可退
|
||||
actors.mobs.yogrealfirst.invuln_warn=拳头邻接古神之眼时无法受到伤害!
|
||||
actors.mobs.yogrealfirst.rankings_desc=被Yog-Zot吞噬
|
||||
actors.mobs.yogrealfirst.desc=这个拳头是古神力量的部分体现。这些拳头与古神的力量相互联系,并且当它们靠近古神之眼时会免疫所有受到的伤害。
|
||||
actors.mobs.yogrealfirst$burningfist.name=燃烧之拳
|
||||
actors.mobs.yogrealfirst$burningfist.desc=燃烧之拳是由混沌的炽热魔法形成的。它在移动时会不断地引燃周围的环境。它还可以发射火焰能量形成魔法冲击,使目标地陷入一片熊熊烈火。\n\n燃烧之拳引燃环境的能力在靠近水的时候会被抑制,但是其热量实在太大,以至于周围的水很快就会蒸发掉!
|
||||
actors.mobs.yogrealfirst$soiledfist.name=大地之拳
|
||||
actors.mobs.yogrealfirst$soiledfist.desc=大地之拳是由混沌的大地魔法形成的。当它移动时,它会不断地使周围生出植物。它还可以发射精准的大地冲击,将它的目标困在迅速生长的藤蔓和根系间!\n\n大地之拳能从植物的生命中获得力量,并能根据其周围的植被数量来抵挡伤害!
|
||||
actors.mobs.yogrealfirst$rottingfist.name=腐烂之拳
|
||||
actors.mobs.yogrealfirst$rottingfist.desc=腐烂之拳是由活生生的腐败组成的。它是一团高塔般庞大的腐肉,可以在近战中喷溅腐蚀淤泥,并喷射毒气作为远程攻击。更糟糕的是,腐烂之拳的巨大质量导致它受到攻击时只会进入流血状态,而不会直接受到伤害。\n\n腐蚀淤泥可以被水洗去,但腐烂之拳也可以通过吸收水来治愈自己!此外,在其流血时对腐烂之拳造成伤害只会刷新其流血状态而不会加重效果!
|
||||
actors.mobs.yogrealfirst$rustedfist.name=锈蚀之拳
|
||||
actors.mobs.yogrealfirst$rustedfist.desc=锈蚀之拳是由一块活的金属形成的。它是一个高塔般庞大的移动金属块,具有强大的近战能力,并有在远距离外使目标残废的远程攻击能力。由于其巨大的质量,锈蚀之拳所受到的伤害都会被延缓,而非立即作用在其身上。\n\n尽管如此,锈蚀之拳那并不灵活的特性使得它无法通过较窄的走道。另外,虽然锈蚀之拳只会缓慢地受到伤害,但是延缓伤害还会在它受到多次攻击时继续叠加。
|
||||
actors.mobs.yogrealfirst$brightfist.name=辉耀之拳
|
||||
actors.mobs.yogrealfirst$brightfist.teleport=辉耀之拳在一道使你重度盲目的爆闪中传送到了别处!
|
||||
actors.mobs.yogrealfirst$brightfist.desc=辉耀之拳是由纯粹的光能量形成的。它能在每回合射出一道强烈的灼目光束!这些光束除了造成大量伤害外,还会暂时使你失明。辉耀之拳为了逃脱还能发出覆盖全场的刺眼爆闪!\n辉耀之拳在近战中并没有特殊能力。
|
||||
actors.mobs.yogrealfirst$darkfist.name=暗影之拳
|
||||
actors.mobs.yogrealfirst$darkfist.teleport=暗影之拳在一片使你光源熄灭的漆黑中传送到了别处!
|
||||
actors.mobs.yogrealfirst$darkfist.desc=暗影之拳是由纯粹的暗能量形成的。它能在每回合射出强大的暗黑法术!这些法术除了造成大量伤害外,还会削弱你的光源。暗影之拳为了逃脱还能瞬间使全场陷入一片漆黑!\n\n暗影之拳在近战中并没有特殊能力。
|
||||
|
||||
levels.yoggodhardbosslevel.well_name = 空间之井
|
||||
levels.yoggodhardbosslevel.well_desc = 井中涌动着空间的魔力。也许它指向某个地方?
|
||||
|
||||
|
||||
actors.mobs.magicgirldead.name =冰雪魔女
|
||||
actors.mobs.magicgirldead.desc =冰雪魔女曾经是翼绫的护法,因为地牢事变而被黑魔法腐蚀成了魔女\n\n现在她极度憎恨一切,你很不幸的踏入了她的领地.\n\n要么你死,要么我活.\n\n她非常难缠,并且已经毫无理智,如果你没有准备好,势必会被她暴打。
|
||||
actors.mobs.magicgirldead.arise=出来吧,我的傀儡!
|
||||
actors.mobs.magicgirldead.damaged =水晶结界,审判这个无知之徒!
|
||||
actors.mobs.magicgirldead.arise2=出来吧,我的傀儡!
|
||||
actors.mobs.magicgirldead.shield2 =水源啊,你是否知道,翼绫不再是翼绫,家园不再是家园!
|
||||
actors.mobs.magicgirldead.shield =迷幻的水源啊,请赐予我力量吧!
|
||||
actors.mobs.magicgirldead.notice =人类!你不应该来到这里!
|
||||
actors.mobs.magicgirldead.die =我 终 于 能 再 次 看 见 了 你 了!!!
|
||||
actors.mobs.magicgirldead.def_verb =魔力结界
|
||||
actors.mobs.magicgirldead.ranking_desc =被冰雪魔女永久审判
|
||||
spellcaster$frostcaster.name =幻想结界水晶-傲慢
|
||||
spellcaster$frostcaster.desc =冰雪魔女召唤的远程法术结界平台,会每隔一段时间对目标发动远程攻击。\n\n攻击模式:向目标地点发射一条射线,下回合目标地点向正四个方向发射飞弹。造成_寒冷_。\n\n-水晶无视远程伤害,且只有被激活后才能受到伤害!
|
||||
spellcaster$explosioncaster.name =幻想结界水晶-妒忌
|
||||
spellcaster$explosioncaster.desc =冰雪魔女召唤的远程法术结界平台,会每隔一段时间对目标发动远程攻击。\n\n攻击模式:向目标地点发射一条射线,波及目标地点为中心的十字区域,下回合目标地点向斜四个方向发射射线。第一段攻击造成_标记_。\n\n标记效果会使目标受到所有来自法术炮台的伤害大幅增加。
|
||||
spellcaster$lightcaster.name =幻想结界水晶-暴怒
|
||||
spellcaster$lightcaster.desc =冰雪魔女召唤的远程法术结界平台,会每隔一段时间对目标发动远程攻击。\n\n攻击模式:向目标地点发射一条光束,下回合更新目标地点,从炮台发射三条散射光束。造成_失明_。\n\n该炮台受标记的增益更高。
|
||||
spellcaster$bouncecaster.name =幻想结界水晶-懒惰
|
||||
spellcaster$bouncecaster.desc =冰雪魔女召唤的远程法术结界平台,会每隔一段时间对目标发动远程攻击。\n\n攻击模式:向目标地点发射一条射线,下回合更新目标地点,从上次命中地点发射一条射线。造成_标记_。\n\n标记效果会使目标受到所有来自法术炮台的伤害大幅增加。
|
||||
spellcaster$halofirecaster.name =幻想结界水晶-暴食
|
||||
spellcaster$halofirecaster.desc =冰雪魔女召唤的远程法术结界平台,会每隔一段时间对目标发动远程攻击。\n\n攻击模式:向目标地点发射一条射线,下回合更新目标地点,从上次命中地点发射一条射线。造成_磷火_。\n\n标记效果会使目标受到所有来自法术炮台的伤害大幅增加。
|
||||
spellcaster.marked = 标记
|
||||
|
||||
|
||||
actors.mobs.npcs.reddragon.name=红龙之王
|
||||
actors.mobs.npcs.reddragon.gnollshiled_1=喂,那边的人。对就是你,看见那个豺狼崽子了吗,他这几天老是在用炼药瓶炸我,我想让你帮我鲨了它。\n当然,如果事成了,我会给你些好东西。
|
||||
actors.mobs.npcs.reddragon.gnollshiled_2=它的炼药瓶很危险?不用担心,这是对你的试炼!我把他们叫过来了,你好好干,不用感谢我!
|
||||
actors.mobs.npcs.reddragon.skullshaman_1=喂,那边的那个!\n对,就是你!你有没有发现这洞里总是一闪一闪的,太瞎眼了,就是那个拿着破面具到处吓人和放电的那个小豺狼崽子,你快点给我把他鲨了!
|
||||
actors.mobs.npcs.reddragon.skullshaman_2=它的面具很危险?不用担心,这是对你的试炼!我把他们叫过来了,你好好干,不用感谢我!
|
||||
actors.mobs.npcs.reddragon.flamec01_1=喂,那边的那个!对,就是你!\n你有没有听见那种滋擦的金属声吗?就是那个破铜烂铁,整天噼里啪啦的,还让不让龙睡觉了?我想要你帮我把它拆了,快点去!
|
||||
actors.mobs.npcs.reddragon.flamec01_2=它的喷火器很危险?不用担心,这是对你的试炼!我把他们叫过来了,你好好干,不用感谢我!
|
||||
actors.mobs.npcs.reddragon.find_me=感谢你的帮助,我马上来找你。
|
||||
actors.mobs.npcs.reddragon.desc=凛然的外表,被一层无敌的玫瑰结界和令人生畏的磷火环绕包围着,正在四处巡查。看起来它正在寻找谁,或许,就是正在寻找你!
|
||||
|
||||
actors.mobs.redmurderer.name=猩红大盗
|
||||
actors.mobs.redmurderer.stole=猩红大盗偷走了你的%s!并立刻产生魔法阵瞬移走了。
|
||||
actors.mobs.redmurderer.carries=\n\n这个猩红大盗携带着一个_%s_。明显是偷来的。
|
||||
actors.mobs.redmurderer.escapes=猩红大盗带着你的%s卖了个好价钱,她意犹未尽,你还会再次遇见她。
|
||||
actors.mobs.redmurderer.desc=猩红大盗是监狱中逃出来的危险怪物,因为地牢的魔力影响而被误导到矮人王国。\n\n矮人国王给了他们可怕的能力。\n-无论如何,他们绝对不是善茬,尽量别和他们正面交锋!\n\nΓ 有一点必须记住,她们偷盗的欲望是无底线的 Γ。
|
||||
|
||||
actors.mobs.brownbat.name=棕色蝙蝠
|
||||
actors.mobs.brownbat.desc=这些脆弱的蝙蝠似乎并不希望你来打扰他们。\n\n由于他们身手敏捷,因此必须使用_偷袭_才能攻击到他们。你很有可能被他们的_利刃的爪牙_刺伤眼睛\n\n他们死亡前都会发出警报,务必小心。
|
||||
actors.mobs.brownbat.warning=蝙蝠死亡前发出了嘶鸣的声音,附近的怪物都注意到了!
|
||||
|
||||
actors.mobs.icegolem.name=霜冻魔像
|
||||
actors.mobs.icegolem.frost_kill=魔像的寒冰力量将你禁锢,你永久被困。
|
||||
actors.mobs.icegolem.desc=霜冻魔像是矮人精英们试图利用魔法的新应用弥补机械设备长久以来的缺陷的产物。它们虽不似DM-300那样庞大笨重,但仍具有不可小觑的破坏力。\n\n霜冻魔像和普通魔像不同,它因为更加灵活且矮小,能通过门,并能通过寒冰的力量让每个冒险者防不胜防。
|
||||
|
||||
actors.mobs.icegolem$darkbolt.rankings_desc=寒冰魔力将你永久冻结!
|
||||
|
||||
actors.mobs.gnollshiled.name=豺狼炼药长老
|
||||
actors.mobs.gnollshiled.desc=豺狼是鬣狗状的类人生物。它们在地牢里游荡,不时向上行动试图向地表发起进攻。豺狼炼药长老是豺狼中的精英,他们善于使用炼金催化剂来让入侵者随机获得DeBuff。
|
||||
|
||||
actors.mobs.shopguarddead.name=商店守卫-重力者
|
||||
actors.mobs.shopguarddead.desc=当你试图在_商店0元购_的时候,这个Γ不速之客Γ来到你的面前。你深知,你遇到了Γ大麻烦Γ了。\n\n雕像装备着精良的护甲,看上去相当坚硬很难对付。\n\n尽管雕像本身是用石头做的,但它装备着的_%1$s_和_%2$s_。\n\n_重力者是掌握重力的力量,他们有着操控重力的能力,他们势必要将试图在商店0元购的人全部杀死。_
|
||||
actors.mobs.shopguarddead.kil=没有用的,不要试图使用漂浮能力。重力由我控制,你切勿再动一分一毫!
|
||||
|
||||
actors.mobs.shopguard.name=商店守卫-制裁者
|
||||
actors.mobs.shopguard.desc=当你试图在_商店0元购_的时候,这个Γ不速之客Γ来到你的面前。你深知,你遇到了Γ大麻烦Γ了。\n\n雕像装备着精良的护甲,看上去相当坚硬很难对付。\n\n尽管雕像本身是用石头做的,但它装备着的_%1$s_和_%2$s_。\n\n_制裁者是最基础的守卫,他们有着最基础抑制治疗的能力,他们势必要将试图在商店0元购的人全部杀死。_
|
||||
actors.mobs.shopguard.noha=没有用的,不要试图使用治疗能力。你已经违反地牢商店法则,你的治疗能力将被剥夺!
|
||||
|
||||
actors.mobs.shopguardeye.name=商店守卫-真眼者
|
||||
actors.mobs.shopguardeye.desc=当你试图在_商店0元购_的时候,这个Γ不速之客Γ来到你的面前。你深知,你遇到了Γ大麻烦Γ了。\n\n雕像装备着精良的护甲,看上去相当坚硬很难对付。\n\n尽管雕像本身是用石头做的,但它装备着的_%1$s_和_%2$s_。\n\n_真眼者将无视任何隐形的玩家,他们势必要将试图在商店0元购的人全部杀死。_
|
||||
actors.mobs.shopguardeye.nois=没有用的,不要试图使用隐形能力。我们能看见你!
|
||||
|
||||
actors.buffs.roseshiled.name=玫瑰结界
|
||||
actors.buffs.roseshiled.heromsg=玫瑰的魔力保护着你!
|
||||
actors.buffs.roseshiled.desc=在玫瑰结界中,你不会受到任何直接伤害。\n\n玫瑰结界的能量还剩余: %s.
|
||||
|
||||
actors.hero.hero.waring1=警告,支离破碎的免费复活次数已经结束。下一次将是最终死亡。
|
||||
actors.hero.hero.waring2=注意,支离破碎的免费复活次数还有1次。\n
|
||||
actors.hero.hero.waring3=通知,支离破碎的免费复活次数还有2次。\n
|
||||
|
||||
actors.mobs.skullshaman.name=豺狼萨满长老
|
||||
actors.mobs.skullshaman.desc=生活在矿洞层的年长豺狼,你光看着这个骷髅头就知道这东西并不好惹。所幸它似乎因为太过于年长而陷入了沉睡。也许,你可以溜之大吉。
|
||||
|
||||
actors.buffs.hunger.warning=你感到了无比的饥饿,这可不是好兆头。
|
||||
actors.mobs.pyloncs.name=能量塔-EX
|
||||
actors.mobs.pyloncs.desc_inactive=这是一座用于分配区域内机械用电的能量塔。\n\n这座能量塔未被激活,目前无法受到任何伤害。
|
||||
actors.mobs.pyloncs.desc_active=这是一座用于分配区域内机械用电的能量塔。此刻能量塔电能涌动,定是它正在为DM-720充能!
|
||||
actors.mobs.pyloncs.crazy=模 块 发 生 损 坏 ,紧 急 模 式 启 动 。请不要攻击能量塔!
|
||||
|
||||
actors.mobs.newdm720.name=DM-720
|
||||
actors.mobs.newdm720.notice=侦测到未授权单位!
|
||||
actors.mobs.newdm720.shield=DM-720从外露的管线中抽取能量,用护罩裹住自身!
|
||||
actors.mobs.newdm720.vent=DM-720从喷气装置中喷出了剧毒的废气!
|
||||
actors.mobs.newdm720.rocks=DM-720重砸地面,使洞窟穹顶的岩石松脱了!
|
||||
actors.mobs.newdm720.charging=受到伤害!正在启动能源塔!
|
||||
actors.mobs.newdm720.charging_hint=DM-720 在接受能源塔供电时无法受到伤害!
|
||||
actors.mobs.newdm720.supercharged=歼击!歼击!歼击!
|
||||
actors.mobs.newdm720.charge_lost=能源塔损毁!正在切回自身电源!
|
||||
actors.mobs.newdm720.pylons_destroyed=警告!检测到电网故障!
|
||||
actors.mobs.newdm720.rankings_desc=被DM-720处决!
|
||||
actors.mobs.newdm720.def_verb=虚晃一枪!
|
||||
actors.mobs.newdm720.defeated=致命伤害!正在启动自爆程序!将在3回合后自爆!
|
||||
actors.mobs.newdm720.desc=DM-720是这个世纪有史以来发明的最强大的“防御机器”。这样一台令人生畏的机器是极难制造的,所以制作者们仅仅造出了几台来守护他们地下大都会的入口。(据说最好的DM-EX-750。在地牢更深处。但目前没人发现这台守卫机器)\n\n它配备了可以喷出剧毒废气的通风口和一个可以用来攻击和破坏大地的高功率钻头。DM-720还可以连接到能源电网,进一步增强它的力量。\n\n_DM720_是矮人工匠设置的一个_超级兵器_,它_不仅会喷火_,而且相比于_DM300_,它更加强大。而且工匠还利用_水导电的特性_,让每一个冒险者几乎是有去无回。\n\n正因为这个原因,_300年_前,_她封印了这里_,但仍然有极少数人会因为地牢的_魔力紊乱_而误打误撞的和_DM720_正面交锋!
|
||||
actors.mobs.newdm720.desc_supercharged=DM-720现在已被完全充能。这种状态下DM-720会免疫外界的伤害并以双倍的速度移动!并且,它的电钻在此状态下能以很慢的速度_钻透墙壁_。\n\n在这种状态下直接攻击DM-720完全没有意义,但摧毁_附近为其提供能量的装置_也许能解除这种状态。
|
||||
actors.mobs.newdm720$fallingrocks.desc=松动的岩块正从层顶滚滚而下,似乎要塌方了!
|
||||
actors.mobs.newdm720.repair=启动备用能源!DM-720修复了自己。
|
||||
actors.mobs.newdm720.explo_kill=DM720的自毁你没有及时躲开,你被炸的稀碎!
|
||||
|
||||
|
||||
actors.mobs.rednecromancer.name=死灵领主
|
||||
actors.mobs.rednecromancer.desc=死灵领主可以召唤最强大的骷髅进行作战,据说监狱的死灵法师就是它培养的。\n\n_他无法被直接打死,请击败骷髅王才能打败他。_
|
||||
actors.mobs.rednecromancer$necroskeleton.name=虚幻的骷髅王
|
||||
actors.mobs.rednecromancer$necroskeleton.desc=这个骷髅王是被死灵领主召唤出来的。它的能力与习性和普通的骷髅完全不同,只是会在召唤者被击杀时会反噬召唤者并一起跟着消逝。
|
||||
|
||||
actors.mobs.coldmagicrat.name=寒冰魔鼠
|
||||
actors.mobs.coldmagicrat.frost_kill=寒冰魔力将你冻成了冰棍……
|
||||
actors.mobs.coldmagicrat.desc=被极地和_未知魔力_造就的生物。对冒险者极其仇视,并且体内因为长期被_未知魔力熏_陶,体内已经充满了魔力。它们将使用自己的方式阻止_冒险者_继续前进。这些老鼠常年都在极地这里而发生了变异,它们会使用远程寒冰魔弹来使敌人措手不及。
|
||||
actors.mobs.coldmagicrat$darkbolt.rankings_desc=寒冰魔力将你永久冻结!
|
||||
|
||||
actors.mobs.fireghostdead.name=烈焰幽灵
|
||||
actors.mobs.fireghostdead.frost_kill=焰浪过后,一片虚无!
|
||||
actors.mobs.fireghostdead.desc=这只全身赤色的怨灵由地牢深处的死灵学家们从烈焰之中唤醒,虽然它们没有火元素强大,但也已可无限毗近。\n\n这个怪物会点燃你。
|
||||
actors.mobs.fireghostdead$darkbolt.rankings_desc=焰浪过后,一片虚无!
|
||||
|
||||
actors.hero.waterondeath=你被水的力量诅咒至死
|
||||
actors.hero.ondeath=你死了……
|
||||
|
||||
actors.mobs.redswarm.name=血红巨蝇
|
||||
actors.mobs.redswarm.desc=被_冻得通红_的_巨型苍蝇_,加上被地牢的_黑魔法_影响。已经变得_极度危险_。必须_小心行事_。\n他们会用_行动证明_这里谁才是老大。
|
||||
actors.mobs.redswarm.fire_kill=冰火两重天的攻击下,你"幸福的"上天了。
|
||||
actors.mobs.redswarm$darkbolt.rankings_desc=冰火魔力,助你上天!
|
||||
|
||||
actors.mobs.npcs.ren.name=REN-33
|
||||
actors.mobs.npcs.ren.desc=由那无法知晓的远方渡来的旅人,口中流传着骆越与暹罗的洽语、手捧着莲穗的清香,向你问候了。
|
||||
actors.mobs.npcs.ren.message1=一直以来,我知道更多的灾难正在发生。你是否也是失去的那一位?
|
||||
actors.mobs.npcs.ren.message2=你好,我是REN-33!我是唯一的个体……,有一些时候,你是否在想这个世界发生了什么吗?那就是你最好的方式!
|
||||
actors.mobs.npcs.ren.message3=猎枪击毙了穹顶天上的椋鸟群落,此时即可眺望繁星、即可观测天津星肆、即可瞭望海之灯塔,为之祈祷。
|
||||
actors.mobs.npcs.ren.def_verb=随机应变
|
||||
|
||||
actors.mobs.npcs.goonpc.name=粘咕-天痕座
|
||||
|
||||
actors.mobs.npcs.slyl.name=冷群
|
||||
actors.mobs.npcs.slyl.message1=我叫冷群,这是我的真名。
|
||||
actors.mobs.npcs.slyl.message2=地牢最深处的黑暗……似乎有点忘记了。但据说最近有冒险者在地牢新发现了一批特别的书籍,它们或多或少都沾染过魔法。
|
||||
|
||||
actors.mobs.npcs.slyl.def_verb=风暴将临
|
||||
actors.mobs.npcs.slyl.desc=_冷群_是一位掌握冰系力量的魔人族,是300年前_寒冰圣都_的管理者。\n由于地下异常的不断出现,她来到这里调查异常的原因。\n看起来她似乎摸鱼。
|
||||
actors.mobs.npcs.slyl.howuse=你好,我是冷群。\n\n欢迎使用我们_寒冰圣都_的可以扰乱_魔力流_的_魔法金币_,通过它我们可以看见_特定的首领_。\n\n其中_抛动一次_会出现_天痕粘咕(5层),天狗(10层),DM300(15层),矮人国王(20层),Yog(25层)_\nΠ抛动两次Π是_史莱姆王(5层),钻石宝箱王(10层),DM720(15层),矮人大师领主(20层),Yog-Zot(25层)_\nΞ抛动三次Ξ是_(15层 寒冰魔女)_(抛动三次次仅在_特定楼层显示_)\n\n同时,仅在Boss前一楼层显示,每一次的最后的一次抛动将会决定下一层Boss的生成。\n\n好的,以上就是_使用方法和介绍了_,祝你_地牢冒险愉快_。
|
||||
|
||||
actors.mobs.npcs.nxhy.guards=看来你需要更加艰难的试炼了。
|
||||
actors.mobs.npcs.nxhy.thief=看来你需要更加艰难的试炼了。
|
||||
actors.mobs.npcs.nxhy.why=抢劫商店?你可真有趣!
|
||||
|
||||
actors.mobs.npcs.nxhy.sell=选择一件要出售的物品
|
||||
actors.mobs.npcs.nxhy.name=那些回忆
|
||||
actors.mobs.npcs.nxhy.desc=这是一个拥有很多东西的商人,他的名字叫那些回忆。据说他知道300年前这地牢究竟发生了什么事情的,他在这里等着每一位冒险者的前来。他会给予冒险者相应的补给,但是他从来不告诉冒险者这个地牢的危险程度是多么的高。传言说,他曾经是一个侠客,只不过现在他已经成为了一个商人了。\n\nΓ 请不要攻击他!!!否则他会让你痛不欲生!!! Γ
|
||||
actors.mobs.npcs.nxhy.greetings=你好,%s。欢迎来到我的大商店。
|
||||
|
||||
actors.mobs.npcs.renshop.guards=看来你并不是好人。
|
||||
actors.mobs.npcs.renshop.thief=看来你的命运多舛。
|
||||
actors.mobs.npcs.renshop.sell=选择一件要出售的物品
|
||||
actors.mobs.npcs.renshop.name=REN-33
|
||||
actors.mobs.npcs.renshop.desc=你以为她神志不清?其实她是整个翼绫事件目击者。现在她在这里开设法杖商店就是最好的证明。不过她不会轻而易举告诉你线索的。
|
||||
actors.mobs.npcs.renshop.greetings=你好,%s!我们又见面了!
|
||||
|
||||
actors.mobs.npcs.nyz.guards=你居然攻击我,我不会让你得到一分一毫。
|
||||
actors.mobs.npcs.nyz.thief=偷东西?你看起来并不是好人!
|
||||
actors.mobs.npcs.nyz.sell=选择一件要出售的物品
|
||||
actors.mobs.npcs.nyz.name=奈亚子
|
||||
actors.mobs.npcs.nyz.desc=自翼绫事件后就一直在地牢调查的商人。主要售卖炸弹产品和一些神秘的书。
|
||||
actors.mobs.npcs.nyz.greetings=奈亚子:早上好,中午好,晚上好,冒险者。欢迎来到这个危险且神秘的地牢。
|
||||
|
||||
actors.mobs.npcs.nxhynpc.name=那些回忆
|
||||
actors.mobs.npcs.nxhynpc.message1=新的一年,调查继续进行!
|
||||
actors.mobs.npcs.nxhynpc.message2=如果你在地牢里面缺少物资,来找我。我的大商店在地牢的各个楼层,随时欢迎您的到来。\n\n但是,你如果想图谋不轨,将会万劫不复!
|
||||
actors.mobs.npcs.nxhynpc.def_verb=……
|
||||
actors.mobs.npcs.nxhynpc.desc=这是一个拥有很多东西的商人,他的名字叫那些回忆。据说他知道300年前这地牢究竟发生了什么事情的,他在这里等着每一位冒险者的前来。他会给予冒险者相应的补给,但是他从来不告诉冒险者这个地牢的危险程度是多么的高。传言说,他曾经是一个侠客,只不过现在他已经成为了一个商人了。
|
||||
|
||||
|
||||
actors.mobs.npcs.obsir.name=ZIOM_Observe-sir
|
||||
actors.mobs.npcs.obsir.message1=黑骑士正在派人前来调查,我需要你帮我剿灭他们
|
||||
actors.mobs.npcs.obsir.message2=好的,你准备好迎接战斗了吗?
|
||||
actors.mobs.npcs.obsir.def_verb=哦!有趣!!!
|
||||
actors.mobs.npcs.obsir.desc=穿着黑西装的神秘人,头上戴着有各种颜色的帽子,而且他的样子的皮肤根本不像人类。\n据说他跟"奸商"有一些有趣的事情。\n这人本身就不存在这个世界,但究竟为什么会在这里始终是个谜。\n——死亡不是终点
|
||||
|
||||
actors.mobs.jdsdz.name=丛林守卫
|
||||
actors.mobs.jdsdz.desc="枫林"的丛林守卫,据说DM200就是他们制作的。\n\n他们偶尔会给敌人一次剧毒效果!\n\n地牢楼层越深,丛林守卫越强大。
|
||||
|
||||
actors.mobs.slime_red.name=史莱姆-血红守护者
|
||||
actors.mobs.slime_red.desc=史莱姆七大守护者中的_血红使者_\n它发出的攻击有几率让入侵者受到_流血伤害_!
|
||||
|
||||
actors.mobs.slime_orange.name=史莱姆-黄昏守护者
|
||||
actors.mobs.slime_orange.desc=史莱姆七大守护者中的_黄昏使者_\n它发出的攻击有几率让入侵者受到_燃烧伤害_!
|
||||
|
||||
actors.mobs.slime_lt.name=史莱姆-雷霆守护者
|
||||
actors.mobs.slime_lt.desc=史莱姆七大守护者中的_雷霆使者_\n它发出的攻击有几率让入侵者受到_麻痹效果_!
|
||||
|
||||
actors.mobs.slime_qs.name=史莱姆-青蛇守护者
|
||||
actors.mobs.slime_qs.desc=史莱姆七大守护者中的_青蛇使者_\n它发出的攻击有几率让入侵者受到_剧毒效果_!
|
||||
|
||||
actors.mobs.slime_lg.name=史莱姆-蓝鸽守护者
|
||||
actors.mobs.slime_lg.desc=史莱姆七大守护者中的_蓝鸽使者_\n它发出的攻击有几率让入侵者受到_虚弱效果_!
|
||||
|
||||
actors.mobs.slime_sn.name=史莱姆-深蓝守护者
|
||||
actors.mobs.slime_sn.desc=史莱姆七大守护者中的_深蓝使者_\n它发出的攻击有几率让入侵者受到_缠绕效果_!
|
||||
|
||||
actors.mobs.slime_sz.name=史莱姆-圣紫守护者
|
||||
actors.mobs.slime_sz.desc=史莱姆七大守护者中的_圣紫使者_\n它发出的攻击有几率让入侵者受到_迟缓效果_!
|
||||
|
||||
actors.mobs.slimeking.name=史莱姆王子
|
||||
actors.mobs.slimeking.desc=\n\n\n\n史莱姆中最大的一只史莱姆个体,现在它仍然还在统治着圣境密林层\n别看它样貌可爱,它鲨起人来毫不手软!\n\
|
||||
如果你靠的太近,它就会发怒召唤_史莱姆七大守护者_来让你知道什么叫 身 心 愉 悦
|
||||
actors.mobs.slimeking.notice=你将会死在圣境密林!
|
||||
actors.mobs.slimeking.defeated=不……这不可能……
|
||||
actors.mobs.slimeking.arise=我的史莱姆守卫们,快点出来支援本王!
|
||||
actors.mobs.slimeking.rankings_desc=在史莱姆王子面前屈服
|
||||
actors.mobs.slimeking.scorpion=朕叫你走了吗?
|
||||
actors.mobs.slimeking$hunting.cus=不自量力的小鬼,让你见识下绝对审判!
|
||||
|
||||
actors.mobs.xykl.name =红魔守卫
|
||||
actors.mobs.xykl.desc =这些若隐若现的傀儡是曾经的水晶之城的守卫,因为你的执着,他们现在与你并肩作战。\n现在你是他们的新主人,他们将誓死守卫你到消亡!
|
||||
|
||||
actors.mobs.shieldhuntsman.name = 血月魔盾赏金猎人
|
||||
actors.mobs.shieldhuntsman.desc = 曾经去过_水晶之城_的他们,现在已经完全疯掉。\n\n他们的唯一愿望就是:阻止任何一个前进的_冒险者_
|
||||
|
||||
actors.mobs.murderer.name=邪魔小偷
|
||||
actors.mobs.murderer.desc=穿着橘色的盗贼礼服的危险怪物,他们已经丧失了偷东西的本领,他们的黑魔法会让每一个冒险者有去无回。
|
||||
actors.mobs.murderer.bolt_kill=暗影能量使你的生命衰竭了……
|
||||
|
||||
actors.blobs.halomethanefire.desc=一团磷火正在这里肆虐。
|
||||
actors.blobs.superfire.desc=一团磷火正在这里肆虐。
|
||||
actors.buffs.superfire.name=磷火燃烧
|
||||
actors.buffs.superfire.heromsg=你着火了!
|
||||
actors.buffs.superfire.ondeath=你被燃烧至死…...
|
||||
actors.buffs.superfire.rankings_desc=燃烧殆尽
|
||||
actors.buffs.superfire.desc=没什么比被火焰吞没更痛苦了。 \n\n更何况这是更加令人难受的px磷火。 \n\n剩余的燃烧时长:%s回合
|
||||
|
||||
actors.mobs.molotovhuntsman.name = 血月火焰赏金猎人
|
||||
actors.mobs.molotovhuntsman.desc = 这是被地牢深处的魔绫的怒火感染的极其扭曲的赏金猎人,他们已经失去了理智,他们都有一把猩红血月剑来杀死每一个入侵者。
|
||||
|
||||
actors.mobs.molohr.name = 血月火焰赏金猎人长老
|
||||
actors.mobs.molohr.desc = 总之,就是,近战打!
|
||||
actors.mobs.molohr.notice = 就你TM想0元购?
|
||||
|
||||
actors.mobs.ogpdzsls.name=棕色老鼠
|
||||
actors.mobs.ogpdzsls.desc=它们会咬人,但只有大量出现才会危及生命。这个老鼠看起来比普通的更强!
|
||||
|
||||
actors.mobs.srpdhblr.name = 赏金猎人
|
||||
actors.mobs.srpdhblr.desc = 这些赏金猎人曾经想来到这个地牢终结最终的黑暗,没想到现在却被地牢暗处的黑暗魔力给腐蚀。现在他们毫无一点神志,他们游荡在监狱附近,等待下一个来到这个地牢的可怜人。
|
||||
|
||||
actors.mobs.randombluefirede.fuck=你很烦人!我要鲨了你!
|
||||
actors.mobs.randombluefire.name = 诡异磷魂(狂暴)
|
||||
actors.mobs.randombluefire.desc = 矮人王国的亡魂和地牢深处溢出的魔力诞生出的诡异生物。他们拥有恐怖的能力,并且半血会进入狂暴状态。但是它们没有视力,你只要不惊扰它们就好。不过,地牢的警报同样会让他们警觉起来。请小心行事!\n\n他们的幻影可能存在这里,必须在你离开后才会消失。
|
||||
|
||||
actors.mobs.randombluefirede.name = 诡异磷魂
|
||||
actors.mobs.randombluefirede.desc = 矮人王国的亡魂和地牢深处溢出的魔力诞生出的诡异生物。他们拥有恐怖的能力,并且半血会进入狂暴状态。但是它们没有视力,你只要不惊扰它们就好。不过,地牢的警报同样会让他们警觉起来。请小心行事!
|
||||
|
||||
|
||||
actors.mobs.ogpdnqhz.name = 健壮的老鼠
|
||||
actors.mobs.ogpdnqhz.desc = 这个老鼠很健壮,某些时刻可能给你致命一击
|
||||
|
||||
actors.mobs.kagenonusujin.name=影子盗贼
|
||||
actors.mobs.kagenonusujin.desc=这个邪魔外道的小偷为了偷取什么宝贵之物而在此处游荡着。学习了来自深渊的黑暗法术的他,能够化作黑暗中的影子潜藏其间,又立刻消逝。\n\n这个怪物会尝试造成一次大伤害,之后将瞬移到地图上另一个地方。\n\n如果失败,则会召唤爆炎陷阱!
|
||||
|
||||
actors.mobs.fireghost.name=红色怨灵
|
||||
actors.mobs.fireghost.desc=这只全身赤色的怨灵由地牢深处的死灵学家们从烈焰之中唤醒,虽然它们没有火元素强大,但也已可无限毗近。\n\n这个怪物会点燃你。
|
||||
|
||||
actors.mobs.blackhost.name=黑色怨灵
|
||||
actors.mobs.blackhost.desc=这只全身黑色的怨灵是地牢深处的瘴气影响怨灵后形成的,虽然它们很脆弱,但却可以让你中毒&流血&燃烧。但是他们的视力非常差。\n\n这个怪物十分危险。
|
||||
|
||||
actors.mobs.ogpdlls.name = 老年老鼠
|
||||
actors.mobs.ogpdlls.desc = 这个老鼠已经步入中老年,因此它的精准程度很高!
|
||||
|
||||
actors.mobs.flameb01.name = Flame-B01
|
||||
actors.mobs.flameb01.desc = 曾经是异端神教为了阻止_地下的黑暗_而创建的火焰机器人,现在异端神教已经无处可寻,但是他们留下的罪恶依然在这里。\n\其喷火器压力为%s 度.
|
||||
|
||||
actors.mobs.flamec01.name = Flame-C01
|
||||
actors.mobs.flamec01.desc = 曾经是异端神教为了阻止_地下的黑暗_而创建的火焰机器人,现在异端神教已经无处可寻,但是他们留下的罪恶依然在这里。\n\其喷火器压力为%s 度.\n\nC01很少见到,通常是商人雇的杀手或者是召唤的!
|
||||
|
||||
actors.mobs.flamec02.name = Flame-C02
|
||||
actors.mobs.flamec02.desc = 曾经是异端神教为了阻止_地下的黑暗_而创建的火焰机器人,现在异端神教已经无处可寻,但是他们留下的罪恶依然在这里。\n\其喷火器压力为%s 度.\n\nC01很少见到,通常是商人雇的杀手或者是召唤的!
|
||||
|
||||
actors.mobs.rgoo100.name = 小粘咕-100实验体
|
||||
actors.mobs.rgoo100.desc = 这是她曾经亲手制作的小粘咕,他们和大粘咕一起维持着地下都市的秩序。然而就在300年前,因为那场变化,小粘咕从此变成一个杀戮工具。但是,小粘咕一直希望有真正的冒险者来解放这个地牢!
|
||||
actors.mobs.rgoo100.notice=咕-咕!
|
||||
actors.mobs.rgoo100.defeated=咕……咕……
|
||||
actors.mobs.rgoo100.!!!=!!!
|
||||
actors.mobs.rgoo100.pumpup=小粘咕正在不断地抽动!
|
||||
actors.mobs.rgoo100.enraged=激怒
|
||||
actors.mobs.rgoo100.gluuurp=咕——————!
|
||||
actors.mobs.rgoo100.rankings_desc=被小粘咕消化
|
||||
|
||||
actors.mobs.xtg100.name=小天狗-100实验体-狂暴
|
||||
actors.mobs.xtg100.desc=和大天狗长得差不多的幻影,但血量只有大天狗的四分之一。你已经彻底激怒他们,他们仍然能使用喷火器,但弹药不是无限的。\n\当前弹药总共还有_%s发_.
|
||||
|
||||
actors.mobs.xtg200.name=小天狗-100实验体
|
||||
actors.mobs.xtg200.desc=和大天狗长得差不多的幻影,但血量只有大天狗的四分之一。
|
||||
|
||||
actors.mobs.sb.name=矮人国亡
|
||||
actors.mobs.sb.notice=雕虫小技竟敢班门弄斧
|
||||
actors.mobs.sb.defeated=你不可能杀掉我,%s…我是…不朽的…
|
||||
actors.mobs.sb.def_verb=招架
|
||||
actors.mobs.sb.arise=以我之名,复苏吧!奴隶们!
|
||||
actors.mobs.sb.rankings_desc=在矮人国亡面前倒下
|
||||
actors.mobs.shaman.zap_kill=闪电球将你彻底击杀…
|
||||
actors.mobs.sb.desc=这是矮人国王的亡魂,现在它已经在24层等待下一个冒险者的到来
|
||||
|
||||
###blobs
|
||||
actors.blobs.blizzard.desc=这里刮起了一阵暴风雪。
|
||||
|
||||
|
|
|
@ -1,10 +1,243 @@
|
|||
###MLPD
|
||||
items.wands.wandofbluefuck.name=磷焰法杖
|
||||
items.wands.wandofbluefuck.staff_name=鬼磷之杖
|
||||
items.wands.wandofbluefuck.desc=这根法杖由欧松木制成,饰以紫色宝石,这使它看起来相当庄严。它的顶端噼啪作响嘶嘶而鸣,渴望着释放其强大的魔法。
|
||||
items.wands.wandofbluefuck.stats_desc=该法杖在使用时会产生一股强大的磷焰,延伸出一个锥形区域。下一次使用它将消耗_%1$d发充能_并造成_%2$d~%3$d点伤害_。法杖消耗的充能数越多,其范围与威力就越大或越强。
|
||||
items.wands.wandofbluefuck.bmage_desc=当_战斗法师_以焰浪法杖近战攻击目标时,能像拥有烈焰附魔一样有概率将其点燃。
|
||||
|
||||
items.weapon.enchantments.haloblazing.name=鬼磷%s
|
||||
items.weapon.enchantments.haloblazing.desc=这个附魔会使磷火从武器中喷薄而出,能够使用点燃敌人并对正在燃烧的敌人造成中毒的额外伤害。
|
||||
items.potions.exotic.potionofdragonkingbreath.name=龙王吐息合剂
|
||||
items.potions.exotic.potionofdragonkingbreath.prompt=选择要灼烧的位置
|
||||
items.potions.exotic.potionofdragonkingbreath.desc=瓶子内奇特的化合物来自于_龙王-磷邬_,会在接触口腔后爆燃。迅速吐出液体就能让使用者从口中喷射磷火烈焰!
|
||||
items.potions.elixirs.elixirofdragonking.name=龙王之怒
|
||||
items.potions.elixirs.elixirofdragonking.desc=饮用后,这瓶秘药会使饮用者的血管里充斥着磷火的力量。这个效果能让引用者对全部火焰完全免疫,并且还能通过物理攻击使用磷火点燃敌人。
|
||||
items.potions.potionofliquidflamex.name=磷火药剂
|
||||
items.potions.potionofliquidflamex.desc=该药瓶里装着一种超级不稳定的化合物,一旦暴露在空气中就会猛烈地燃烧起来。\n\n_相比于一般的液火药剂,这个更加危险且更加致命!
|
||||
items.food.blandfruit.halofruit=磷火果
|
||||
|
||||
items.potions.potionoflightningshiledx.name=闪电药剂
|
||||
items.potions.potionoflightningshiledx.desc=该药剂融合了闪电花和电的综合化学效应,能在一段时间内。为玩家完全免疫电击伤害。
|
||||
|
||||
items.lightblack.oillantern.name = 油灯
|
||||
items.lightblack.oillantern.ac_light = 点亮
|
||||
items.lightblack.oillantern.ac_snuff = 熄灭
|
||||
items.lightblack.oillantern.ac_refill = 加油
|
||||
items.lightblack.oillantern.ac_burn = 点燃
|
||||
|
||||
#MLPDSHOPREADYGO!!!
|
||||
items.food.potionoflightningshiled.name=闪电护盾药剂
|
||||
items.food.potionoflightningshiled.desc=喝下这甜到掉牙的奇怪液体后,体内会爆发一股巨大的能量,让你可以持续一段时间无视电击伤害。
|
||||
items.food.potionoflightningshiled.ac_oat=饮用药剂
|
||||
items.food.potionoflightningshiled.look_msg=你感受到了电流在你体内融合……你暂时中和了电击反应。
|
||||
|
||||
items.quest.shopdiedbook.name=诅咒之书
|
||||
items.quest.shopdiedbook.chill=这层的警报已经拉响,离开这里,快!
|
||||
items.quest.shopdiedbook.desc=当你准备抢劫的时候,商人向你丢了一本书,这本书蕴含了Γ诅咒的力量Γ的魔力,你无力将其扔掉,源源不断的Γ商人守卫军队Γ正在前来。你只能战斗!!!\n\n诅咒之书在身上时,英雄将受到Γ移速减缓一半,同时商店守卫军队将源源不断的出兵Γ来阻止你,你也无法离开本层。唯有击败Γ本层商店守卫首领Γ之后,才能解除诅咒之书的力量,获得店主的认可。\n\n_但同时,店主会因为缺货问题在下一大层无法开设商店,将在下下一大层重新恢复商店交易。_
|
||||
|
||||
items.quest.skeletongold.name=染血骷髅金币
|
||||
items.quest.skeletongold.desc=在寒冰圣域发现的一枚刻有骷髅头的金币,沾染的血渍让这枚金币附着了能改变时空的魔力。抛动金币以扰动地牢的魔力流。
|
||||
items.quest.skeletongold.ac_select_one=Δ抛动一次金币Δ
|
||||
items.quest.skeletongold.ac_select_two=Π抛动两次金币Π
|
||||
items.quest.skeletongold.ac_select_three=Ξ抛动三次金币Ξ
|
||||
items.quest.skeletongold.ac_select_how=使用方法和介绍
|
||||
items.quest.skeletongold.preventing=这里还没有寻找到强大的魔力流……
|
||||
items.quest.skeletongold.wow=染血金币发出诡异的光芒,你感到下层正在分崩离析……
|
||||
|
||||
items.weapon.melee.endingblade.name=终焉
|
||||
items.weapon.melee.endingblade.desc=不知道从哪来的一个拆开的场记板,貌似沾染了焰之诅咒,有着强大的侵蚀能力。\n\n这个武器在攻击敌人的时候有概率造成_即死_效果,在汲取一定魔力后会产生新的能力。
|
||||
|
||||
#MLPDSTOREYBOOKS
|
||||
|
||||
items.books.bookslist.hellfirebooks.name=《浊焰事件》
|
||||
items.books.bookslist.hellfirebooks.desc=燃尽了一切,真理在何处显存。300年前的地牢大火事件让如今这个地牢变成了怎样的地狱?\n\n你已经见过我妹妹了吧?冒险者。那么,你为此前来的目的,是准备拯救这一切吗。如果是的话,有一点我不得不承认。大火事件确实由我而起,我辜负了她对我的信任。但其实,我们本来就不是真正意义上存在的。我知道,总会有冒险者来到这里,我在这里留下了这本用我力量做成的书。你还想了解大火的真相。那就勇敢的面对我吧!翻开书页,聚精会神,我会在浊焰地狱等着你!
|
||||
items.books.bookslist.hellfirebooks.author=--浊焰魔女
|
||||
items.books.bookslist.hellfirebooks.ac_read=尚未完成
|
||||
|
||||
items.weapon.melee.icefishsword.name=尚方宝剑
|
||||
items.weapon.melee.icefishsword.desc=神秘的鱼类,来源未知。\n\n对可视敌人造成冻伤和流血效果,但是似乎有些腥。
|
||||
|
||||
items.weapon.melee.firefishsword.name=煮熟的尚方宝剑
|
||||
items.weapon.melee.firefishsword.desc=神秘的鱼类,来源未知。\n\n对可视敌人造成燃烧和幻惑效果,闻起来挺好吃的。
|
||||
|
||||
items.scrolls.scroll.agesx=你不能在抢劫时阅读任何卷轴!击败守卫首领以获得解除!
|
||||
items.spells.beaconofreturning.zerobuy=你企图使用返回晶柱逃离本层!!!
|
||||
|
||||
items.potions.elixirs.elixirofnukecole.name=核子可乐
|
||||
items.potions.elixirs.elixirofnukecole.desc=核子可乐,买到就是赚到。大家用了都说好!
|
||||
|
||||
items.books.bookslist.indexbooks.name=《地牢探险指南第三版》
|
||||
items.books.bookslist.indexbooks.desc=如果你是第一次游玩魔绫的像素地牢,这个指南也许能帮到你。\n\n一意咕行!!!
|
||||
items.books.bookslist.indexbooks.author=--作者:_JDSA-Ling_
|
||||
items.books.bookslist.indexbooks.ac_read=打开看看
|
||||
|
||||
items.books.bookslist.yellowsunbooks.name=《朝阳教团史-Dr.BloodMoon纪年326年卷二》
|
||||
items.books.bookslist.yellowsunbooks.desc=此册编撰者以鲜血与性命示忠于原_地表势力_的领头者_朝阳教团_并承诺绝无欺骗 \n\n……但是在300年前的_那件事_发生后,_朝阳教团_因管理不利而渐渐衰落,从此便销声匿迹了,它原有的地位与名誉被_深渊魔都_和_极地圣境_两方势力所分食。\n\n两方的_管理者_携手封印了地牢的最深处的入口,并且对她进行了_水晶力量抑制_,于Dr.BloodMoon纪年17年她封印在了金城水晶实验室。\n\n……距封印之日已过去三百余年,随着她_力量的增强_,_水晶_已经开始_极不稳定_……\n\n……Dr.BloodMoon纪年326年四月中旬,一名_朝阳教团的残支_要求接见管理者……并且声称,朝阳教团可以帮助他们彻底_杀死她_……\n\n_若要记录在书架里面,请先鉴定!
|
||||
items.books.bookslist.yellowsunbooks.author=--作者:_Kiley-Alien_
|
||||
items.books.bookslist.yellowsunbooks.ac_read=阅读书籍
|
||||
items.books.bookslist.yellowsunbooks.blees=你阅读了书籍,一股力量油然而生!
|
||||
items.books.bookslist.yellowsunbooks.anmazing=你解读书中的奥秘,你领悟到了敌法的力量!
|
||||
|
||||
items.books.bookslist.icecitybooks.name=《寒冰圣域游记》
|
||||
items.books.bookslist.icecitybooks.desc=这是坐拥于曾经的寒冰地带的一座大型城市,似乎已经驱走了严寒的危机,而我现在就站在这里。\n现在由"冷群"进行着管理。\n\n这里的人们都生活的悠哉游哉,似乎工作都是以享受的姿态去迎接的。在冬季的十二月月末下雪的日子,居民们还会举办大型的盛典来庆祝。\n\n似乎所有人都忘记了三百年前的那件事了……\n\n_若要记录在书架里面,请先鉴定!
|
||||
items.books.bookslist.icecitybooks.author=--作者:_LunRes_
|
||||
items.books.bookslist.icecitybooks.ac_read=阅读书籍
|
||||
items.books.bookslist.icecitybooks.blees=你阅读了书籍,一股力量油然而生!
|
||||
items.books.bookslist.icecitybooks.anmazing=你解读书中的奥秘,你领悟到了烈焰的力量!
|
||||
|
||||
items.books.bookslist.deepbloodbooks.name=《深渊魔都纪事录》
|
||||
items.books.bookslist.deepbloodbooks.desc=本传仅作参考,可能包含大量个人想法。\n\n……魔都来了一位少女,她成功地将魔都再次复兴。……三天后,地牢调查团发来一则关于地牢深处强烈魔力流的报告。\n\n地牢第???层:\n魔力强度:DEAD\n采取措施:无\n危险评估:DEADNOBACK\n……以上评估报告仅供参考。\n\n_若要记录在书架里面,请先鉴定!
|
||||
items.books.bookslist.deepbloodbooks.author=--作者:_Dr.BloodMoon_
|
||||
items.books.bookslist.deepbloodbooks.ac_read=阅读书籍
|
||||
items.books.bookslist.deepbloodbooks.blees=你阅读了书籍,一股力量油然而生!
|
||||
items.books.bookslist.deepbloodbooks.anmazing=你解读书中的奥秘,你领悟到了索敌的力量!
|
||||
|
||||
items.books.bookslist.grasskingbooks.name=《绿林圣境守则》
|
||||
items.books.bookslist.grasskingbooks.desc=1.无论是天灾还是人祸,请不要感到害怕。我们有着足够的实力保护你们。\n\n2.请居民不要靠近_森色之庭_,那里是_地表势力_最高层的会议室\n\n……5.请带领刚出生的婴儿到_源色之泉_处进行洗礼,以获取魔力。\n\n……7.外来旅者或是移民请自觉忽略一切你所认为的_高傲、自大、冷酷、无情、自私、不平等_,在这里发生的一切都是正常的,不要试图去做出改变,学会融入我们。\n\n8.其他条例请等待_第十三次高层会议_的补充。\n\n_若要记录在书架里面,请先鉴定!
|
||||
items.books.bookslist.grasskingbooks.author=--作者:_牡丹洛华_
|
||||
items.books.bookslist.grasskingbooks.ac_read=阅读书籍
|
||||
items.books.bookslist.grasskingbooks.blees=你阅读了书籍,一股力量油然而生!
|
||||
items.books.bookslist.grasskingbooks.anmazing=你解读书中的奥秘,你领悟到了无畏的力量!
|
||||
|
||||
items.books.bookslist.brokenbooks.name=《奇怪的档案袋》
|
||||
items.books.bookslist.brokenbooks.desc=上面沾染了水渍与污垢,鲜红的“火灾案”几个大字以及标注着调查人员的表格也似乎是有点褪色了。\n\n幸存者:“火焰肆虐过这个地牢,吞噬了一切能被吞噬的东西……包括人类。这只有可能是魔法,是魔法引起的!”\n\n……我们的调查结果表面确实如此,焦黑的地板,卷轴残页,以及熔化的玻璃药瓶,基本排除了过失起火的可能。\n\n……α队员搜查到一枚熔融的金属袖章,里面似乎残存过火焰魔法。\n\n_若要记录在书架里面,请先鉴定!
|
||||
items.books.bookslist.brokenbooks.author=--作者:_不详_
|
||||
items.books.bookslist.brokenbooks.ac_read=阅读书籍
|
||||
items.books.bookslist.brokenbooks.blees=你阅读了书籍,一股力量油然而生!
|
||||
items.books.bookslist.brokenbooks.anmazing=你解读书中的奥秘,你领悟到了成长的力量!
|
||||
|
||||
items.books.bookslist.magicgirlbooks.name=《镶着金边的魔女手记》
|
||||
items.books.bookslist.magicgirlbooks.desc=(前面的几页似乎是被撕掉了)……这是大火后的第三天,我像往常一样推开了窗户。\n\n瘴气似的魔力涌入房间,没办法……我无法对抗它……\n\n在我被这股魔力吞噬殆尽之前,在它占据我的身体之前,我得准备好一些能与之抗衡的东西……\n\n仇恨,密谋,计划,灾厄正在降临。(最后这几个字的笔迹似乎变成了另一个人的)\n\n_若要记录在书架里面,请先鉴定!
|
||||
items.books.bookslist.magicgirlbooks.author=--作者:_凛_
|
||||
items.books.bookslist.magicgirlbooks.ac_read=阅读书籍
|
||||
items.books.bookslist.magicgirlbooks.blees=你阅读了书籍,一股力量油然而生!
|
||||
items.books.bookslist.magicgirlbooks.anmazing=你解读书中的奥秘,你领悟到了天佑的力量!
|
||||
|
||||
items.books.bookslist.nokingmobbooks.name=《异变调查》
|
||||
items.books.bookslist.nokingmobbooks.desc=地表最近总是能感到一股力量正在从地下涌动,我奉命前往地下进行调查。\n\n没想到,这一次前来,我发现了一个一些惊奇的事情。\n\n老鼠能说话,新的未知生物更多,还有一些高智能怪物。似乎一切,就和那场大火毫无关系。\n\n谁在幕后策划着一切?异变的真凶究竟是谁?\n\n_若要记录在书架里面,请先鉴定!
|
||||
items.books.bookslist.nokingmobbooks.author=--作者:_Demain-Pixel_
|
||||
items.books.bookslist.nokingmobbooks.ac_read=阅读书籍
|
||||
items.books.bookslist.nokingmobbooks.blees=你阅读了书籍,一股力量油然而生!
|
||||
items.books.bookslist.nokingmobbooks.anmazing=你解读书中的奥秘,你领悟到了鬼磷的力量!
|
||||
|
||||
#MLPDPLAYBOOKS
|
||||
items.books.playbookslist.moneymorebooks.name=《财富神教教典》
|
||||
items.books.playbookslist.moneymorebooks.desc=_财富戒指_是最好的功能性戒指,它拥有无限可能,你想要的,它都可以给你!快来加入吧!\n\n切记:新教徒能力不足,无法掌控_财富流派_,不可将Γ升级全部给Γ财富戒指。否则届时你将无法在探索地牢之中走下去。\n\n试试让幽灵穿上Γ分身诅咒Γ甲,让她在Γ鱼群中Γ玩耍。
|
||||
items.books.playbookslist.moneymorebooks.author=--作者:_迷茫_
|
||||
|
||||
items.books.playbookslist.pinkrandombooks.name=《闲天随笔》
|
||||
items.books.playbookslist.pinkrandombooks.desc=九月九日菊映山,登高远望思凤钗。\n季秋凄风何且哀?茱萸插罢悲自来。
|
||||
items.books.playbookslist.pinkrandombooks.author=--作者:_Goo东西_
|
||||
|
||||
items.books.playbookslist.deyizibooks.name=《我们是柏林联合》
|
||||
items.books.playbookslist.deyizibooks.desc=:在山的那边,海的那边,有一座小球场。\n球场里有一群纯粹到不敢相信的踢球的人,他们就是柏林联合,即使我们刚刚进去甲级联赛,但是我们有一往无前的气势。\n旅行者,愿柏林联合的钢铁意志保佑你。
|
||||
items.books.playbookslist.deyizibooks.author=--作者:_Pedro_
|
||||
|
||||
|
||||
#MLPD
|
||||
items.scrolls.exotic.scrollofroseshiled.null=玫瑰秘卷
|
||||
items.scrolls.exotic.scrollofroseshiled.name=玫瑰秘卷
|
||||
items.scrolls.exotic.scrollofroseshiled.desc=_玫瑰女神的魔力_注入在这个秘卷之中,阅读会为阅读者带来一个暂时可以_坚不可摧的结界_。 \n\n由于这个秘卷有专属标识,所以无需被鉴定。
|
||||
|
||||
items.food.alldrink.name=全能治疗饮料
|
||||
items.food.alldrink.eat_msg=你感觉你又满血复活了。
|
||||
items.food.alldrink.desc=由三个治疗药水通过回忆的技术造就了这个全能治疗饮料。\n使用者可以有一段时间的治疗,且处于饱腹阶段。
|
||||
|
||||
items.weapon.melee.magicbluesword.name=符文之刃
|
||||
items.weapon.melee.magicbluesword.stats_desc=这把武器从升级中获得更多伤害。
|
||||
items.weapon.melee.magicbluesword.desc=来自失落之地的神秘武器,有着明亮的蓝色刀刃。
|
||||
|
||||
items.wands.wandofscale.name=恐惧暴风法杖
|
||||
items.wands.wandofscale.staff_name=暴风之杖
|
||||
items.wands.wandofscale.desc=这根法杖的紫色主干顶端镶嵌着一颗明亮的黑色宝石。
|
||||
items.wands.wandofscale.stats_desc=这根法杖能射出恐惧声波,附近的敌人都会四处逃窜。\n并且可以产生暴风,使周围陷阱全部失效且成为水地面。\n会造成_%1$d~%2$d点伤害_。
|
||||
|
||||
items.wands.wandofgodice.name=霜殇法杖
|
||||
items.wands.wandofgodice.staff_name=冰雪悲歌之杖
|
||||
items.wands.wandofgodice.desc=这根法杖的蔚蓝色色主干顶端镶嵌着一颗明亮的金色宝石。
|
||||
items.wands.wandofgodice.stats_desc=这根法杖能射出冰冻冲击波,\n会造成_%1$d~%2$d点伤害_。\n对首领的可以造成双倍伤害!\n-翼绫,我很抱歉,我只能这样杀死你吗?
|
||||
|
||||
items.quest.goldbao.name=黄金珍宝
|
||||
items.quest.goldbao.desc=由钻石宝箱王守护的东西,据说是商人的喜爱产品。\n\n无论怎么样,现在珍宝已经在你手中,你已经打败了钻石宝箱王。\n提示:如果资金不够可以重新给商人展示,或许能让他心动!
|
||||
|
||||
items.quest.red.name=死灵精华十字架
|
||||
items.quest.red.desc=死灵领主的好东西,如果交给想要的人必然会有好运。
|
||||
|
||||
items.weapon.melee.skyshield.name=风筝盾牌
|
||||
items.weapon.melee.skyshield.typical_stats_desc=这件武器通常能格挡0~%d点伤害。通过升级可以使格挡量增长。
|
||||
items.weapon.melee.skyshield.stats_desc=这件武器能格挡0~%d点伤害。通过升级可以使格挡量增长。
|
||||
items.weapon.melee.skyshield.desc=这是"霜落帝国"的产物,由"霜落女帝"亲自监督研发。
|
||||
|
||||
items.weapon.melee.greensword.name=丛林毒刺
|
||||
items.weapon.melee.greensword.desc=来自“枫林”的自然产物\n\n吸收了天地之精华\n\n可以在打人的过程中召唤出强大的丛林守卫
|
||||
|
||||
items.weapon.pistol.name=皇帝的手枪
|
||||
items.weapon.pistol.ac_shoot=开火
|
||||
items.weapon.pistol.ac_reload=装弹
|
||||
items.weapon.pistol.reloading=你重新装填了你的手枪。
|
||||
items.weapon.pistol.prompt=选择一个目标。
|
||||
items.weapon.pistol.stats=每次射击会造成_%1$d-%2$d_点伤害,子弹能够穿过植物与门。每射击_%3$d/%4$d_次,你就需要消耗_%5$s_ 回合来为它装弹。它的精准度不会因距离而变化。
|
||||
items.weapon.pistol.desc=皇帝的新手枪,很少有人发现它,因为它根本就不存在。
|
||||
items.weapon.pistol.no_ring=因为这把武器的机械结构相当复杂,它无法从狂怒之戒或神射之戒中得到增益,也不会因你的力量而提升伤害。
|
||||
|
||||
items.weapon.melee.icesan.name=寒冰神扇
|
||||
items.weapon.melee.icesan.desc=此时此刻,正是_冰冻之时_!\n无知的人类,你们未来已经早已消失!\n这是你在这个扇子上面_看到的文字_,这个神扇究竟有多强?\n\
|
||||
你不得而知,但你知道,这东西一定不是一个凡物!
|
||||
|
||||
items.weapon.missiles.klin.name=回旋镖(伊莲梅尔专属版)
|
||||
items.weapon.missiles.klin.desc=被投向敌人后,这具扁平的曲状木制投掷物能够自动回到投掷者手中。
|
||||
items.weapon.missiles.klin.durability=这个回旋镖造得非常结实,使用后不会产生损耗。
|
||||
|
||||
items.weapon.melee.blackdog.name=黑狗爪
|
||||
items.weapon.melee.blackdog.desc=看我疯狂乱抓!
|
||||
|
||||
items.potions.potionofnowater.name=生石灰固体理想试剂
|
||||
items.potions.potionofnowater.desc=与水反应,可将_水_除去。能够与_3*3_范围内的水完全反应而除去。\n反应为极其理想的完全反应,不能用常识理解。\n\n_缺点_ _产生大量热_,足以_点燃周围_,扔在生物脸上有_致盲效果_。\n帕秋莉提出配方,中国制造。\nΔ源码来自:古明地觉地牢Δ
|
||||
|
||||
items.superdewvial.name=荧光露珠瓶
|
||||
items.superdewvial.desc=这个发出荧光的露珠瓶可以带200滴露珠\n同时它的最大容量是_200滴_露珠。\n可以祝福十字架十次好东西!
|
||||
items.superdewvial.ac_drink=饮用
|
||||
items.superdewvial.value=%+d点生命
|
||||
items.superdewvial.collected=你将一滴露珠收集到了荧光露珠瓶里。
|
||||
items.superdewvial.full=你的荧光露珠瓶满了!
|
||||
items.superdewvial.empty=你的荧光露珠瓶空空如也!
|
||||
|
||||
items.bags.bookbag.name=牛皮书袋
|
||||
items.bags.bookbag.desc=积累了不少灰尘的牛皮书袋,可以装纳不少书籍在里面。
|
||||
items.bags.lingbag.name=魔绫口袋
|
||||
items.bags.lingbag.desc=携带一些特殊物品
|
||||
items.bags.herbbag.name=食物袋
|
||||
items.bags.herbbag.desc=一个小袋子装你的食物。
|
||||
items.bags.kingbag.name=红宝石魔袋
|
||||
items.bags.kingbag.desc=矮人国王的€定制背包€,好东西,就要齐分享!
|
||||
items.scrolls.scrollofupgrade.ac_upgrade=使用所有升级
|
||||
|
||||
items.weapon.melee.runicblade.name=贤者之剑
|
||||
items.weapon.melee.runicblade.stats_desc=这把武器可以在战斗中获得更多的伤害!
|
||||
items.weapon.melee.runicblade.cooldown=贤者之剑正在重新聚集魔力。在充能过程中其近战伤害将提高。\n贤者之剑将在%s回合后充能完毕。
|
||||
items.weapon.melee.runicblade.ac_zap=释放
|
||||
items.weapon.melee.runicblade.fizzles=你的贤者之剑滋滋作响;一定是没有足够的能量。
|
||||
items.weapon.melee.runicblade.no_magic=你的贤者之剑滋滋作响;你无法在魔法免疫状态下施法。
|
||||
items.weapon.melee.runicblade.prompt=选择施法目标
|
||||
items.weapon.melee.runicblade.no_equip=你需要装备贤者之剑以施法。
|
||||
items.weapon.melee.runicblade.desc=这把武器据说曾经是300年前贤者使用的武器\n你光是看着这把剑就感觉它不一般\n\
|
||||
据说这把武器的主人现在早已销声匿迹\n那么,你能被它认可吗?
|
||||
|
||||
items.weapon.melee.locksword.name=钥匙剑
|
||||
items.weapon.melee.locksword.desc=来自遥远童话国度的一把失落神剑,形态像是巨大化的钥匙。据说这把剑能够通过战斗的积累而改变外貌,不知道是否真实。
|
||||
items.weapon.melee.locksword.stats_desc=这把武器会在攻击时不断积累经验,到达一定阶段时会变化造型,并赋予或加强紊乱附魔的效果与增加固定伤害值。
|
||||
|
||||
items.weapon.melee.boomsword.name=炸弹匕首
|
||||
items.weapon.melee.boomsword.desc=这种神奇的魔法匕首被将炸弹结合...\n\n我有一把匕首,我有一颗炸弹,啊~\n_"炸弹匕首"_
|
||||
items.weapon.melee.boomsword.stats_desc=这件武器会在攻击时掉落点燃的炸弹。\n这件武器这偷袭时更有效。
|
||||
|
||||
items.weapon.melee.dairikyan.name=蛮人战斧
|
||||
items.weapon.melee.dairikyan.stats_desc=这对武器很快。
|
||||
items.weapon.melee.dairikyan.desc=一对结实有力的等大小战斧,可以进行更快的劈斩。
|
||||
|
||||
items.weapon.melee.redbloodmoon.name=红魔之剑
|
||||
items.weapon.melee.redbloodmoon.desc=你感受到这把剑里面有一些奇怪的嘶鸣声\n根据古书记载,这很可能是红魔之剑!\n此剑可以召唤出红魔傀儡,他们以烧尽一切而出名!
|
||||
|
||||
###armor curses
|
||||
items.armor.curses.antientropy.name=反熵%s
|
||||
items.armor.curses.antientropy.desc=反熵诅咒与宇宙法则背道而驰,将热能从攻击者转移到穿戴者身上。这会导致攻击方短时间内被冰冻,并使穿戴者燃烧起来。
|
||||
|
@ -1525,10 +1758,6 @@ items.weapon.melee.roundshield.typical_stats_desc=这件武器通常能格挡0~%
|
|||
items.weapon.melee.roundshield.stats_desc=这件武器能格挡0~%d点伤害。通过升级可以使格挡量增长。
|
||||
items.weapon.melee.roundshield.desc=这个大盾可以有效格挡攻击,在危机时刻也可以作为不错的武器使用。
|
||||
|
||||
items.weapon.melee.runicblade.name=符文之刃
|
||||
items.weapon.melee.runicblade.stats_desc=这把武器从升级中获得更多伤害。
|
||||
items.weapon.melee.runicblade.desc=来自失落之地的神秘武器,有着明亮的蓝色刀刃。
|
||||
|
||||
items.weapon.melee.sai.name=双钗
|
||||
items.weapon.melee.sai.stats_desc=这是一套非常快的武器。
|
||||
items.weapon.melee.sai.desc=一对轻薄的铁刃,刚好一手一把。在快速斩击方面十分出色。
|
||||
|
|
|
@ -1,155 +1,91 @@
|
|||
badges.endorsed=取得徽章:%s
|
||||
badges.new=徽章解锁:%s
|
||||
badges$badge.monsters_slain_1.title=新晋怪物猎人
|
||||
badges$badge.monsters_slain_1.desc=在一场游戏中击败 10 个敌人
|
||||
badges$badge.monsters_slain_2.title=进阶怪物猎人
|
||||
badges$badge.monsters_slain_2.desc=在一场游戏中击败 50 个敌人
|
||||
badges$badge.monsters_slain_3.title=专业怪物猎人
|
||||
badges$badge.monsters_slain_3.desc=在一场游戏中击败 100 个敌人
|
||||
badges$badge.monsters_slain_4.title=大师怪物猎人
|
||||
badges$badge.monsters_slain_4.desc=在一场游戏中击败 200 个敌人
|
||||
badges$badge.monsters_slain_5.title=宗师怪物猎人
|
||||
badges$badge.monsters_slain_5.desc=在一场游戏中击败 300 个敌人
|
||||
badges$badge.gold_collected_1.title=新晋财宝猎人
|
||||
badges$badge.gold_collected_1.desc=在一场游戏中收集 250 金币
|
||||
badges$badge.gold_collected_2.title=进阶财宝猎人
|
||||
badges$badge.gold_collected_2.desc=在一场游戏中收集 1000 金币
|
||||
badges$badge.gold_collected_3.title=专业财宝猎人
|
||||
badges$badge.gold_collected_3.desc=在一场游戏中收集 2500 金币
|
||||
badges$badge.gold_collected_4.title=大师财宝猎人
|
||||
badges$badge.gold_collected_4.desc=在一场游戏中收集 5000 金币
|
||||
badges$badge.gold_collected_5.title=宗师财宝猎人
|
||||
badges$badge.gold_collected_5.desc=在一场游戏中收集 10000 金币
|
||||
badges$badge.level_reached_1.title=新晋冒险者
|
||||
badges$badge.level_reached_1.desc=升到6级
|
||||
badges$badge.level_reached_2.title=进阶冒险者
|
||||
badges$badge.level_reached_2.desc=升到12级
|
||||
badges$badge.level_reached_3.title=专业冒险者
|
||||
badges$badge.level_reached_3.desc=升到18级
|
||||
badges$badge.level_reached_4.title=大师冒险者
|
||||
badges$badge.level_reached_4.desc=升到24级
|
||||
badges$badge.level_reached_5.title=宗师冒险者
|
||||
badges$badge.level_reached_5.desc=升到30级
|
||||
badges$badge.all_weapons_identified.title=武器研究员
|
||||
badges$badge.all_weapons_identified.desc=鉴定手册中所有类型的武器
|
||||
badges$badge.all_armor_identified.title=护甲研究员
|
||||
badges$badge.all_armor_identified.desc=鉴定手册中所有类型的护甲
|
||||
badges$badge.all_wands_identified.title=法杖研究员
|
||||
badges$badge.all_wands_identified.desc=鉴定手册中所有类型的法杖
|
||||
badges$badge.all_rings_identified.title=戒指研究员
|
||||
badges$badge.all_rings_identified.desc=鉴定手册中所有类型的戒指
|
||||
badges$badge.all_artifacts_identified.title=神器研究员
|
||||
badges$badge.all_artifacts_identified.desc=鉴定手册中所有类型的神器
|
||||
badges$badge.all_potions_identified.title=药剂研究员
|
||||
badges$badge.all_potions_identified.desc=鉴定手册中所有类型的药剂
|
||||
badges$badge.all_scrolls_identified.title=卷轴研究员
|
||||
badges$badge.all_scrolls_identified.desc=鉴定手册中所有类型的卷轴
|
||||
badges$badge.all_items_identified.title=硕 士
|
||||
badges$badge.all_items_identified.desc=鉴定手册中所有的物品
|
||||
badges$badge.all_bags_bought.title=赛驮骡
|
||||
badges$badge.all_bags_bought.desc=完全扩充你的背包
|
||||
badges$badge.death_from_fire.title=燃尽
|
||||
badges$badge.death_from_fire.desc=死于火焰
|
||||
badges$badge.death_from_poison.title=中毒
|
||||
badges$badge.death_from_poison.desc=死于中毒
|
||||
badges$badge.death_from_gas.title=窒息
|
||||
badges$badge.death_from_gas.desc=死于毒气
|
||||
badges$badge.death_from_hunger.title=饥荒
|
||||
badges$badge.death_from_hunger.desc=死于饥饿
|
||||
badges$badge.death_from_glyph.title=难免
|
||||
badges$badge.death_from_glyph.desc=死于延迟伤害
|
||||
badges$badge.death_from_falling.title=变成薄饼
|
||||
badges$badge.death_from_falling.desc=死于坠落
|
||||
badges$badge.yasd.title=又一次悲惨去世
|
||||
badges$badge.yasd.desc=体验过死于火焰、中毒、毒气、饥饿、延迟伤害还有坠落的感觉。
|
||||
badges$badge.boss_slain_1.title=粘液清洁工
|
||||
badges$badge.boss_slain_1.desc=击败下水道尽头的Boss
|
||||
badges$badge.boss_slain_2.title=典狱长
|
||||
badges$badge.boss_slain_2.desc=击败监狱尽头的Boss
|
||||
badges$badge.boss_slain_3.title=金属报废专家
|
||||
badges$badge.boss_slain_3.desc=击败洞穴尽头的Boss
|
||||
badges$badge.boss_slain_4.title=国王征服者
|
||||
badges$badge.boss_slain_4.desc=击败矮人王国尽头的Boss
|
||||
badges$badge.boss_slain_1_all_classes.title=多面手
|
||||
badges$badge.boss_slain_1_all_classes.desc=使用战士、法师、盗贼与女猎手各击败一次第一个Boss
|
||||
badges$badge.boss_slain_3_all_subclasses.title=全面手
|
||||
badges$badge.boss_slain_3_all_subclasses.desc=使用角斗士、狂战士、术士、战斗法师、疾行者、刺客、狙击手、守望者各击败一次第三个Boss。
|
||||
badges$badge.strength_attained_1.title=健身新手
|
||||
badges$badge.strength_attained_1.desc=达到12点力量
|
||||
badges$badge.strength_attained_2.title=健身爱好者
|
||||
badges$badge.strength_attained_2.desc=达到14点力量
|
||||
badges$badge.strength_attained_3.title=健身专家
|
||||
badges$badge.strength_attained_3.desc=达到16点力量
|
||||
badges$badge.strength_attained_4.title=健身大佬
|
||||
badges$badge.strength_attained_4.desc=达到18点力量
|
||||
badges$badge.strength_attained_5.title=健身巨佬
|
||||
badges$badge.strength_attained_5.desc=达到20点力量
|
||||
badges$badge.food_eaten_1.title=新晋美食家
|
||||
badges$badge.food_eaten_1.desc=在一场游戏中进食 10 次
|
||||
badges$badge.food_eaten_2.title=进阶美食家
|
||||
badges$badge.food_eaten_2.desc=在一场游戏中进食 20 次
|
||||
badges$badge.food_eaten_3.title=专业美食家
|
||||
badges$badge.food_eaten_3.desc=在一场游戏中进食 30 次
|
||||
badges$badge.food_eaten_4.title=大师美食家
|
||||
badges$badge.food_eaten_4.desc=在一场游戏中进食 40 次
|
||||
badges$badge.food_eaten_5.title=宗师美食家
|
||||
badges$badge.food_eaten_5.desc=在一场游戏中进食 50 次
|
||||
badges$badge.item_level_1.title=新晋附魔师
|
||||
badges$badge.item_level_1.desc=获得一件等级大于等于 3 的物品
|
||||
badges$badge.item_level_2.title=进阶附魔师
|
||||
badges$badge.item_level_2.desc=获得一件等级大于等于 6 的物品
|
||||
badges$badge.item_level_3.title=专业附魔师
|
||||
badges$badge.item_level_3.desc=获得一件等级大于等于 9 的物品
|
||||
badges$badge.item_level_4.title=大师附魔师
|
||||
badges$badge.item_level_4.desc=获得一件等级大于等于 12 的物品
|
||||
badges$badge.item_level_5.title=宗师附魔师
|
||||
badges$badge.item_level_5.desc=获得一件等级大于等于 15 的物品
|
||||
badges$badge.victory.title=通关!
|
||||
badges$badge.victory.desc=获得 Yendor 护符
|
||||
badges$badge.victory_all_classes.title=全能大师
|
||||
badges$badge.victory_all_classes.desc=使用战士、法师、盗贼、女猎手各获得一次 Yendor 护符
|
||||
badges$badge.mastery_combo.title=角斗士之怒
|
||||
badges$badge.mastery_combo.desc=达成十连击
|
||||
badges$badge.items_crafted_1.title=炼金学徒
|
||||
badges$badge.items_crafted_1.desc=在一场游戏中通过炼金术合成 5 个物品
|
||||
badges$badge.items_crafted_2.title=炼金熟手
|
||||
badges$badge.items_crafted_2.desc=在一场游戏中通过炼金术合成 10 个物品
|
||||
badges$badge.items_crafted_3.title=炼金专家
|
||||
badges$badge.items_crafted_3.desc=在一场游戏中通过炼金术合成 15 个物品
|
||||
badges$badge.items_crafted_4.title=炼金大师
|
||||
badges$badge.items_crafted_4.desc=在一场游戏中通过炼金术合成 20 个物品
|
||||
badges$badge.items_crafted_5.title=炼金宗师
|
||||
badges$badge.items_crafted_5.desc=在一场游戏中通过炼金术合成 25 个物品
|
||||
badges$badge.no_monsters_slain.title=和平主义者
|
||||
badges$badge.no_monsters_slain.desc=在不击败任何敌人的情况下通过一层楼
|
||||
badges$badge.grim_weapon.title=死神来了
|
||||
badges$badge.grim_weapon.desc=使用死神附魔击败一个敌人
|
||||
badges$badge.piranhas.title=非主流钓鱼人
|
||||
badges$badge.piranhas.desc=在一场游戏中杀死 6 只食人鱼
|
||||
badges$badge.games_played_1.title=新晋地牢人
|
||||
badges$badge.games_played_1.desc=进行 10 场游戏或通关 1 场游戏
|
||||
badges$badge.games_played_2.title=进阶地牢人
|
||||
badges$badge.games_played_2.desc=进行 50 场游戏或通关 5 场游戏
|
||||
badges$badge.games_played_3.title=资深地牢人
|
||||
badges$badge.games_played_3.desc=进行 100 场游戏或通关 10 场游戏
|
||||
badges$badge.games_played_4.title=大师地牢人
|
||||
badges$badge.games_played_4.desc=进行 250 场游戏或通关 25 场游戏
|
||||
badges$badge.games_played_5.title=究极地牢人
|
||||
badges$badge.games_played_5.desc=进行 1000 场游戏或通关 100 场游戏
|
||||
badges$badge.happy_end.title=幸福结局
|
||||
badges$badge.happy_end.desc=将 Yendor 护符带出地牢
|
||||
badges$badge.champion_1.title=青铜斗士
|
||||
badges$badge.champion_1.desc=在启用一个或更多挑战的情况下通关
|
||||
badges$badge.champion_2.title=白银斗士
|
||||
badges$badge.champion_2.desc=在启用三个或更多挑战的情况下通关
|
||||
badges$badge.champion_3.title=黄金斗士
|
||||
badges$badge.champion_3.desc=在启用六个或更多挑战的情况下通关
|
||||
badges$badge.unlock_mage.title=解锁法师!
|
||||
badges$badge.unlock_mage.desc=使用一个升级卷轴以解锁法师
|
||||
badges$badge.unlock_rogue.title=解锁盗贼!
|
||||
badges$badge.unlock_rogue.desc=在一场游戏中进行十次伏击以解锁盗贼
|
||||
badges$badge.unlock_huntress.title=解锁女猎手!
|
||||
badges$badge.unlock_huntress.desc=在一场游戏中使用投掷武器命中十个敌人以解锁女猎手
|
||||
badges.new_super=新的超级徽章:%s
|
||||
badges.new=新的徽章:%s
|
||||
badges$badge.monsters_slain_1=击杀10名敌人
|
||||
badges$badge.monsters_slain_2=击杀50名敌人
|
||||
badges$badge.monsters_slain_3=击杀150名敌人
|
||||
badges$badge.monsters_slain_4=击杀250名敌人
|
||||
badges$badge.gold_collected_1=收集100金币
|
||||
badges$badge.gold_collected_2=收集500金币
|
||||
badges$badge.gold_collected_3=收集2500金币
|
||||
badges$badge.gold_collected_4=收集7500金币
|
||||
badges$badge.level_reached_1=达到6级
|
||||
badges$badge.level_reached_2=达到12级
|
||||
badges$badge.level_reached_3=达到18级
|
||||
badges$badge.level_reached_4=达到24级
|
||||
badges$badge.all_weapons_identified=全武器鉴定
|
||||
badges$badge.all_armor_identified=全护甲鉴定
|
||||
badges$badge.all_wands_identified=全部法杖鉴定
|
||||
badges$badge.all_rings_identified=全部戒指鉴定
|
||||
badges$badge.all_artifacts_identified=全神器鉴定
|
||||
badges$badge.all_potions_identified=全部药水鉴定
|
||||
badges$badge.all_scrolls_identified=全部卷轴鉴定
|
||||
badges$badge.all_items_identified=全道具鉴定
|
||||
badges$badge.all_bags_bought=买下所有包裹
|
||||
badges$badge.death_from_fire=死于火焰
|
||||
badges$badge.death_from_poison=死于剧毒
|
||||
badges$badge.death_from_gas=死于毒气
|
||||
badges$badge.death_from_hunger=死于饥饿
|
||||
badges$badge.death_from_glyph=死于延缓伤害
|
||||
badges$badge.death_from_falling=死于坠落楼层
|
||||
badges$badge.kill_red=击败死灵领主
|
||||
badges$badge.kill_rotheart=根除腐莓之心
|
||||
badges$badge.kill_coldele=新生火元素之殇
|
||||
badges$badge.yasd=死于火焰,毒,毒气,饥饿,护甲刻印和坠落
|
||||
badges$badge.boss_slain_1=斩杀第1个Boss
|
||||
badges$badge.boss_slain_2=斩杀第2个Boss
|
||||
badges$badge.boss_slain_3=斩杀第3个Boss
|
||||
badges$badge.boss_slain_4=斩杀第4个Boss
|
||||
badges$badge.boss_slain_1_all_classes=分别使用战士、法师、盗贼和女猎手斩杀第1个Boss
|
||||
badges$badge.boss_slain_3_all_subclasses=分别使用角斗士、狂战士、术士、战斗法师、疾行者、刺客、狙击手和守望者斩杀第3个Boss
|
||||
badges$badge.strength_attained_1=达到13点力量
|
||||
badges$badge.strength_attained_2=达到15点力量
|
||||
badges$badge.strength_attained_3=达到17点力量
|
||||
badges$badge.strength_attained_4=达到19点力量
|
||||
badges$badge.food_eaten_1=吃掉10个食物
|
||||
badges$badge.food_eaten_2=吃掉20个食物
|
||||
badges$badge.food_eaten_3=吃掉30个食物
|
||||
badges$badge.food_eaten_4=吃掉40个食物
|
||||
badges$badge.item_level_1=获得3级物品
|
||||
badges$badge.item_level_2=获得6级物品
|
||||
badges$badge.item_level_3=获得9级物品
|
||||
badges$badge.item_level_4=获得12级物品
|
||||
badges$badge.victory=取得Yendor护符
|
||||
badges$badge.get_sc=净化怨灵根源\n将尸尘交给老杖匠
|
||||
badges$badge.victory_all_classes=分别使用战士,法师,盗贼和女猎手取得Yendor护符
|
||||
badges$badge.mastery_combo=达成10连击
|
||||
badges$badge.potions_cooked_1=一场游戏中酿造3瓶药水
|
||||
badges$badge.potions_cooked_2=一场游戏中酿造6瓶药水
|
||||
badges$badge.potions_cooked_3=一场游戏中酿造9瓶药水
|
||||
badges$badge.potions_cooked_4=一场游戏中酿造12瓶药水
|
||||
badges$badge.no_monsters_slain=在不击杀怪物的情况下通过楼层
|
||||
badges$badge.grim_weapon=通过"残酷"武器附魔秒杀一个怪物
|
||||
badges$badge.piranhas=消灭6只食人鱼
|
||||
badges$badge.games_played_1=进行10场游戏
|
||||
badges$badge.games_played_2=进行50场游戏
|
||||
badges$badge.games_played_3=进行250场游戏
|
||||
badges$badge.games_played_4=进行1000场游戏
|
||||
badges$badge.godd_make=老人与海\n累计完成老杖匠的全部任务
|
||||
badges$badge.death_good=作死小能手-支离破碎中免费复活次数用完
|
||||
badges$badge.halofire_died=死于磷火烈焰
|
||||
badges$badge.happy_end=幸福结局
|
||||
badges$badge.champion_1=开启1项挑战通关
|
||||
badges$badge.kill_slmking=击杀史莱姆王子
|
||||
badges$badge.big_x=巨人之殇\n\n突变巨兽开启通关!你已克服许多困难!!!
|
||||
badges$badge.exsg=大症若愚\n\n癔症只是一个假象,你仍然坚持过来了!
|
||||
badges$badge.kill_dm720=击杀DM720\n\n矿洞的终极兵器
|
||||
badges$badge.champion_2=开启3项挑战通关
|
||||
badges$badge.champion_3=开启6项挑战通关
|
||||
badges$badge.unlock_mage=解锁法师
|
||||
badges$badge.unlock_rogue=解锁盗贼
|
||||
badges$badge.unlock_huntress=解锁女猎手
|
||||
badges$badge.rlpt=_支离破碎征服者_\n\n开启挑战并击败古神
|
||||
badges$badge.sbdjs=风暴袭来,未完待续\n\n你通过它成功离开,却不知,外面风暴袭来\n\n水晶之心仍然在你手中闪闪发光,或许,这事还没完!
|
||||
badges$badge.kill_mg=击败冰雪魔女
|
||||
badges$badge.firegirl=击败浊焰魔女\n\n浊焰地狱的恶灵
|
||||
badges$badge.slimepr=击败史莱姆公主\n\n妥协的结果
|
||||
badges$badge.drawf_head=击败矮人大师领主\n\n矮人王国的正规军残党
|
||||
badges$badge.spicealboss=累计击败全部特殊BOSS\n\n风暴正在降临
|
||||
|
||||
challenges.no_food=缩餐节食
|
||||
challenges.no_food_desc=食物本就稀缺,但你还需要注意节食!\n\n・使用各类食物与丰饶之角的饱腹效果为原本的三分之一。\n・其他恢复饥饿的机制不受影响。
|
||||
|
@ -191,8 +127,8 @@ challenges.exsg_desc=药水癔症详细规则:\n力量药水 力量-1\n灵视
|
|||
challenges.light&black = Π空洞旅程Π
|
||||
challenges.light&black_desc=\n_一次次的踏入地牢只会使自己更加的被恶毒的魔法侵蚀。_这一次,你已不知道是何时再来到这个地牢,但邪恶的诡异气氛扑面而来。一个神秘人给了你一个提灯。你却不知道何时会被这里的魔法吞噬。\n\n开启本挑战,将会获得在开局获得特殊理智Buff,并且追加一个新道具_提灯_,提灯的精神力量需要玩家击败敌人获得。\n\n_只有光芒中,你才能活下去。否则,你会被黑暗蚕食,一点点的丧失理智,成为怪物。_\n\n一旦你理智过低将会出现特殊怪物和Debuff。理智为0将立刻死亡并成为怪物,如果有十字架将会复活并回复100理智,但你上次的东西将全部在上一次你理智变为0的怪物身上。\n\n_它是你前世的回响。打败它,夺回它的力量,让自己重归完整。_\n\n_完成光与影挑战将会在0层追加神秘人物……以及解锁全新物品和武器!_\n\n开启本挑战将会在开局获得240点理智,在_没有光芒下_和_部分怪物的近战_将会使你理智降低。详情查看下表:\n\n-棕色老鼠:20%概率(-1理智/每回合)\n-黑色怨灵:10%概率(-3理智/每回合)\n-火把猎人:40%概率(-1理智/每回合)\n-矮人术士:15%概率(-5理智/每回合)\n-寒冰老鼠:25%概率(-2理智/每回合)\n-DM200:10%概率(-7理智/每回合)\n-矮人武僧:30%的概率(-3理智/每回合)\n\n_环境理智扣除_:\n-没有光芒Buff的情况下\n:\n\n_理智回复策略_:\n-_1_:存在光芒的情况下以:[(+1理智+楼层深度/10)/每回合](举例:20层没有光芒的情况下,1+20/10=3(+3智/每回合)\n-_2_.商人售卖信仰药水,喝下去追加40回合理智\n-_3_.击败敌人可以获得敌人的灵魂,灵魂到一定数量可以使提灯可以再次点亮道路。灵魂也可以缓慢回复理智。(50灵魂=1理智回复)
|
||||
|
||||
challenges.happy = 深度调查
|
||||
challenges.boss = Ξ首领对决Ξ
|
||||
challenges.happy = 追加内容
|
||||
challenges.boss = _[BossRush]_
|
||||
challenges.boss_desc=在一次又一次的冒险中,首领越来越熟悉你了,这一次,首领将会全方面对你实行进攻。\n\n但地牢里面将没有常规作战楼层,但是会对战8个首领。每个首领前都会有一个补给层!\n\n_据说还有第9个首领,它是曾经直接导致矮人王国堕落的元凶。_\n\n未完成
|
||||
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ plants.blindweed$seed.name=致盲草之种
|
|||
|
||||
plants.dreamfoil.name=梦夜花
|
||||
plants.dreamfoil.refreshed=你感觉浑身清爽。
|
||||
plants.dreamfoil.desc=梦夜花带刺的花瓣含有一种中和能力极强的化学物质。任何生物踏入其花丛中都会使身上的大部分负面效果得到净化。
|
||||
plants.dreamfoil.desc=梦夜花带刺的花瓣含有一种净化性极强的化学物质。这种花也因其能够致使多数接触它的生物立刻昏迷而得名。
|
||||
plants.dreamfoil.warden_desc=_守望者_不仅可以获得净化效果,在踩踏梦夜花后的短时间内还能免疫环境的负面效果。
|
||||
plants.dreamfoil$seed.name=梦夜花之种
|
||||
|
||||
|
@ -30,6 +30,17 @@ plants.firebloom.desc=烈焰花被任何物品触碰到时,都会化为一团
|
|||
plants.firebloom.warden_desc=_守望者_能将有害的火焰转化为短时的火焰之力。
|
||||
plants.firebloom$seed.name=烈焰花之种
|
||||
|
||||
plants.skybluefirebloom.name=灵焰花
|
||||
plants.skybluefirebloom.desc=灵焰花被任何物品触碰到时,都会化为一团磷火火焰。
|
||||
plants.skybluefirebloom.warden_desc=_守望者_能将有害的磷火转化为短时的火焰之力。
|
||||
plants.skybluefirebloom$seed.name=灵焰花之种
|
||||
|
||||
plants.aikelaier.name=闪电花
|
||||
plants.aikelaier.desc=这种橙黄色的花带有微弱的电能,能通过轻微的电击使生物获得祝福。\n\n如果是英雄,则使英雄获得治疗并拥有短暂的雷霆祝福;如果是怪物,使怪物受到随机的精英效果。\n\n据说这种花又名埃克莱尔,但来源已经无从考证。
|
||||
plants.aikelaier.refreshed=你感觉电能从你体内涌动……
|
||||
plants.aikelaier.warden_desc=_守望者_能将有益的闪电花转化为长时间的雷霆祝福。
|
||||
plants.aikelaier$seed.name=闪电花之种
|
||||
|
||||
plants.icecap.name=冰冠花
|
||||
plants.icecap.desc=冰冠花在被接触到时会喷射出一团能冰冻周遭的花粉。潮湿环境下花粉的冰冻能力会大幅增强。
|
||||
plants.icecap.warden_desc=_守望者_能将有害的冰冻转化为短时的霜冻之力。
|
||||
|
@ -47,7 +58,7 @@ plants.rotberry.warden_desc=腐梅丛本身没有任何特殊效果,但_守望
|
|||
plants.rotberry$seed.name=腐败果之种
|
||||
|
||||
plants.sorrowmoss.name=断肠苔
|
||||
plants.sorrowmoss.desc=断肠苔并不是一种苔藓,而是一种有含有剧毒,花瓣利如刀片的花。
|
||||
plants.sorrowmoss.desc=断肠苔并不是一种苔藓,而是一种有极强毒性,花瓣利如刀片的花。
|
||||
plants.sorrowmoss.warden_desc=_守望者_能将有害的毒素转化为短时的毒性之力。
|
||||
plants.sorrowmoss$seed.name=断肠苔之种
|
||||
|
||||
|
@ -58,7 +69,7 @@ plants.starflower$seed.name=星陨花之种
|
|||
|
||||
plants.stormvine.name=风暴藤
|
||||
plants.stormvine.desc=引力似乎并不能正常地作用在风暴藤上,它蓝色的藤蔓能够"挂"在空中。任何被风暴藤缠到的生物也被这种奇怪的引力影响,并失去方向感。
|
||||
plants.stormvine.warden_desc=守望者能够操纵风暴藤的魔力,因而在踩踏之后可以获得短暂漂浮的能力。
|
||||
plants.stormvine.warden_desc=_守望者_能掌控风暴藤中的重力魔法,踩踏后能获得短时间的浮空能力。
|
||||
plants.stormvine$seed.name=风暴藤之种
|
||||
|
||||
plants.sungrass.name=阳春草
|
||||
|
|
|
@ -60,12 +60,12 @@ scenes.interlevelscene.dialog_30=荨麻心绪:\n\nBOSS太肉无法解决?为
|
|||
scenes.interlevelscene.dialog_31=荨麻心绪:\n\n半路暴毙也不用灰心,毕竟作者也会翻车()\n\n绫:听我说,谢谢你,温暖了四季。
|
||||
scenes.interlevelscene.dialog_32=荨麻心绪:\n\n萌新路线:王子-宝箱王-魔女-领主-EX古神()
|
||||
|
||||
scenes.mlpdaboutscene.txt_mlpd=基于 _破碎的像素地牢v0.9.2b_ \n\n 采用了_注解版;生存地牢;疯长地牢;经验地牢_的部分源代码。
|
||||
scenes.mlpdaboutscene.txt_mlpd=基于 _破碎的像素地牢v1.2.3_ \n\n 采用了_注解版;生存地牢;疯长地牢;经验地牢_的部分源代码。
|
||||
scenes.mlpdaboutscene.ttl_ansdo=制作:答舟工作室
|
||||
scenes.mlpdaboutscene.txt_ansdo=_策划:_ JDSA Ling\n\n\
|
||||
_程序:_ JDSA Ling & 碳酸天剑\n\n\
|
||||
_程序:_ JDSA Ling & Tianscar\n\n\
|
||||
_音乐:_ Prohonor\n\n\
|
||||
_美工:_ JDSA Ling、碳酸天剑\n\
|
||||
_美工:_ JDSA Ling、Tianscar\n\
|
||||
Daniel Clan、REN、
|
||||
scenes.mlpdaboutscene.join=加入官方QQ群
|
||||
scenes.mlpdaboutscene.github=源码仓库地址
|
||||
|
|
|
@ -27,4 +27,425 @@ ui.pageindicator$1.cancel=不,再等等
|
|||
ui.joinindicator$1.saver=欢迎加入开发总群
|
||||
ui.joinindicator$1.saver_desc=MLPD开发总群诚邀你的到来,你可以在这里获得最新情报,还能和群内大佬分享交流。
|
||||
ui.joinindicator$1.okay=加入
|
||||
ui.joinindicator$1.cancel=不,再等等
|
||||
ui.joinindicator$1.cancel=不,再等等
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newnpc1=新NPC-—REN-33
|
||||
ui.changelist.mlpd.vm0_5_x_changes.renlogs=由那无法知晓的远方渡来的旅人,口中流传着骆越与暹罗的洽语、手捧着莲穗的清香,向你问候了。\n-这个人总是神志不清,一直都在0层的入口那里自言自语。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.kotlinsi=KotLin
|
||||
ui.changelist.mlpd.vm0_5_x_changes.kotlinlogs=首次加入_KotLin_,目前主要用于游戏运行稳定性。\n-未来版本会更加利用好_KotLin_语言。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dev5=开发日志
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dev5logs=这是大学前的最后一次更新\n-我知道自己Java技术力不够,不过我仍然为大家带来0.5版本\n希望大家玩的高兴。\n\n-2021-9-10-Release
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.jq1=影子盗贼加强
|
||||
ui.changelist.mlpd.vm0_5_x_changes.jq1logs=_血量_和_攻击_提升。逃跑速度_更快_。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.xr1=能源塔
|
||||
ui.changelist.mlpd.vm0_5_x_changes.xr1logs=血量从_400_削弱到_150_。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.jq2=红色怨灵回归
|
||||
ui.changelist.mlpd.vm0_5_x_changes.jq2logs=在矿洞层刷新!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newnpc2=ZIOM_Observe-sir
|
||||
ui.changelist.mlpd.vm0_5_x_changes.obsirlogs=穿着黑西装的神秘人,头上戴着有各种颜色的帽子,而且他的样子的皮肤根本不像人类。\n据说他跟"奸商"有一些有趣的事情。\n这人本身就不存在这个世界,但究竟为什么会在这里始终是个谜。\n——死亡不是终点
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newnpc3=霜落雨凉
|
||||
ui.changelist.mlpd.vm0_5_x_changes.slyllogs=极地的女帝,目前在调查地牢的魔力异变。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newnpc5=奈亚子
|
||||
ui.changelist.mlpd.vm0_5_x_changes.nyzlogs=从事地牢异变调查工作,同时也是一个喜欢售卖炸弹的商人。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newnpc4=那些回忆
|
||||
ui.changelist.mlpd.vm0_5_x_changes.nxhylogs=来路不明,但是大家都知道他是一个大老板。他的商店在监狱层开设,如果遇见了他,务必买一点东西再走。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newmimic=钻石宝箱王
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newmimiclogs=据说它是宝箱怪之王。\n它的栖息地_重兵把守_,如果你惊扰了他们,必定是_死路一条_。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newwand=恐惧暴风法杖
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newwandlogs=这根法杖能射出_恐惧声波_,附近的敌人都会四处逃窜。\n并且可以产生_暴风_,使周围陷阱全部失效且成为_水地面_。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newfood=全能治疗饮料
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newfoodlogs=回忆出品,必属精品。\n在回忆的大商店有卖!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newsp=细节优化
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newsplogs=1.优化了_主界面_【感谢Tianscar】\n-2.怪物现在可以看见血量数值【放大镜查看】\n-3.移除了_快捷攻击栏_\n-4.Boss的血量条可以看见_数字_。\n-5.基本_底层_优化
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bug_0505=1.修复了_ShortBuff_空方法导致_安卓10_以下崩溃问题\n-2.修复幽灵生成问题。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.challengegd=挑战改动
|
||||
ui.changelist.mlpd.vm0_5_x_changes.challengegdlogs=€饥荒合约€现在是以_20%_扣血,而不是_50%_。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newmisc=杂项优化
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newmisclogs=1.优化了部分界面\n-2.校正了部分屏幕比例问题。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newitem=新物品:黄金珍宝
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newitemlogs=试试交给商人,说不定有惊喜哦。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newstory=人物背景
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newstorylogs=人物背景已添加,为0.6做准备。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.cau1=天痕粘咕
|
||||
ui.changelist.mlpd.vm0_5_x_changes.caulogs=为了约定,我已等候_300年_!\n\n但你究竟在哪里?\n\n粘咕改动如下:\n\n1.血量提升到$240$\n2.攻击方式改变,具体自行试水。\n3._掉落物_改动\n4.优化BOSS_对话模式_。\n5.粘咕进入_水中_不会$自我回血$了。\n6.血量低于_20%_会有_30%_的概率触发$生命治疗$\n7.可能召唤$本层援军$帮忙打。\n8.可能触发$爆炎诅咒$\n9.本层将会刷新特定怪物\n10.天痕针对于放风筝的玩家进行加强针对性\n11.其他修复\n\n杂项改动:\n1.去掉矮人国王的_钥匙_\n2.第五层固定刷新一个_花园_和_食人鱼房_。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.kage1=影子盗贼
|
||||
ui.changelist.mlpd.vm0_5_x_changes.kagelogs=如果在$施法失败$时有可能释放€爆炎诅咒€。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.cold=冰雪极地层
|
||||
ui.changelist.mlpd.vm0_5_x_changes.coldlogs=下水道层现在改成冰雪层,未来将会加入更多_地形怪物_\n冰雪层_特殊房间_和_普通房间_会生成更多。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bug_0507=1.修复了矿洞层巨魔二次生成问题\n2.修复地牢_生成混乱_问题\n3.彻底移除_快捷攻击栏_
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.coldrat=新怪物:寒冰魔鼠
|
||||
ui.changelist.mlpd.vm0_5_x_changes.coldratlogs=被极地和_未知魔力_造就的生物。对冒险者极其仇视,并且体内因为长期被_未知魔力熏_陶,体内已经充满了魔力。它们将使用自己的方式阻止_冒险者_继续前进。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.redswarm=新怪物:血红巨蝇
|
||||
ui.changelist.mlpd.vm0_5_x_changes.redswarmlogs=地冻天寒的_恶劣天气_与_黑暗魔力_的造就了这种生物,它们将使用_冰火两重天_让_冒险者_知道谁才是老大。\n小心行事。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dm300=DM720改动
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dm300logs=改动如下:\n\n1.能源塔血量调回_400_,并去除_电属性_。\n2._DM200_加入。\n_DM720_血量提升
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.goo3=粘咕改动
|
||||
ui.changelist.mlpd.vm0_5_x_changes.goo3logs=改动如下:\n\n1.回血逻辑错误修正\n2.移除中毒buff
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dev6=开发日志
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dev6logs=2021-10-6\n\n就如我之前承诺的那样,我会继续为大家带来更多的东西。本次更新完毕后将暂停开发一段时间。\n\n我需要更多的时间去打发我的学业问题,不用担心,待我再次回归后。我会带来更多惊喜。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.j1=0-520版本更新纪念
|
||||
ui.changelist.mlpd.vm0_5_x_changes.j1logs=不知不觉,开发地牢已经有半年以上了。\n\n中途有过迷茫,有过放弃。但最终还是坚持了下来。人生苦短,人生眨眼而过。\n\n每个人都会在未来回归大自然,因此我们必须趁年轻,放胆拼。\n\n0520版本纪念。0=绫。感谢大家的一路支持,我会继续加油的。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.new1cs=新增挑战2个
|
||||
ui.changelist.mlpd.vm0_5_x_changes.new1cslogs=无稽之谈\n\n当你失去了_升级_和_金钱_和_十字架_,你还能继续冒险吗?\n\n血量为120滴血,无法升级,无法获得金币。\n\n第二个挑战:军团合约!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.new2cs=底层迁移 && 杂项改动
|
||||
ui.changelist.mlpd.vm0_5_x_changes.new2cslogs=底层已经迁移至0.9.2b\n\n现在开局生成两个随机药水,一个固定十字架,一个固定刻印,两个随机卷轴,一个肉馅饼固定,以及一个随机石头。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.kotlinss=KotLin移除
|
||||
ui.changelist.mlpd.vm0_5_x_changes.kotlinsslogs=因为已经优化了地牢底层,因此KT不再继续使用。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.sss=BOSS层
|
||||
ui.changelist.mlpd.vm0_5_x_changes.ssslogs=BOSS层现在会生成陷阱,部分boss层还会有额外房间以及怪物。\n\n顺带一提,如果BOSS死亡,本层其他怪物一样死亡。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bug_0520=Bug修复\n\n-_1_:矫正幻影盗贼的血量\n-_2_:修复Boss死亡但小怪仍然存活\n-_3_:修复_DM300_生成错误的问题\n-_4_:修复_军团合约_怪物太多导致无法载入下一层\n_5_:修复_死灵领主崩溃问题。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bossc1=天狗改动
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bossc1logs=_天狗_现在攻击会分裂_小天狗_,\n来帮忙一起参与战斗,小天狗会为玩家带来一定的危险,且可能带来_流血伤害_。\n当_大天狗半血后_,他将开启_狂暴模式_。\n在狂暴模式中,天狗_每一次扔东西_都会_导致喷火_,同时,_小天狗狂暴形态_也会喷火。\n与大天狗不同的是,_小天狗喷火_需要_2_回合才能喷火。且喷火不是无限的。_喷火弹药_用完后,_小天狗将近战_。\n_大天狗_血量越低,_喷火频率_越高。同时,也会召唤_更多的小天狗_。\n当_大天狗_死亡后,所有_其他怪物_都会_自动死亡_。\n注意:小天狗不会_给你任何经验_!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.goo4logs=改动如下:\n\n1.血量改回80血量\n\n2.加入冰霜Debuff\n\n3.闪电链球,和DM100一样\n\n4.可能召唤本层敌人(仅老鼠和史莱姆)\n\n5.强化攻击加中毒Debuff\n\n6.水上回血加回来了。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dm3004=DM-300改动
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dm3004logs=DM300每次切换模式的时候召唤怪物。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newsc=第4个任务-老杖匠
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newsclogs=击败死灵领主,获得高额悬赏!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newsc1=死灵领主
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newsc1logs=死灵法师邪教头目,击败他可以让死灵法师不复存在。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newmisc1=杂项改动-S
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newmisc1logs=1.水袋最高容量现在改为_10_\n\n2.部分天赋改动。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dev7=BOSS楼层随机化
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dev7logs=Boss不再单调,快来与boss愉快玩耍!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.musica=原创音乐冰雪层实装&&素材实装
|
||||
ui.changelist.mlpd.vm0_5_x_changes.musicalogs=作者_Prohonor_原创发力!\n\n感谢作者_被子_的原创发力!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.ksx=载入界面加入随机文本
|
||||
ui.changelist.mlpd.vm0_5_x_changes.ksxlogs=MLPD!!!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.sca=新物品-死灵精华十字架
|
||||
ui.changelist.mlpd.vm0_5_x_changes.scalogs=任务物品\n\n交给老杖匠获得高额奖励!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newitems=生石灰固体理想试剂
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newitemslogs=正式实装!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.eme=新生火元素任务升级
|
||||
ui.changelist.mlpd.vm0_5_x_changes.emelogs=现在无需召唤,只需要寻找那个房间即可!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.alks=炼金合成表更新一个新配方
|
||||
ui.changelist.mlpd.vm0_5_x_changes.alkslogs=具体看炼金-肉那块!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bagsd=新成就
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bagsdlogs=新增了6个新成就!请通过徽章界面自行查看。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.new1css=恶魔之水更改为污泥浊水
|
||||
ui.changelist.mlpd.vm0_5_x_changes.new1csslogs=具体介绍查看挑战说明。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.king=新BOSS-史莱姆王子
|
||||
ui.changelist.mlpd.vm0_5_x_changes.kinglogs=Terraria!当然这个boss并不简单!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dm7204=新BOSS-DM720
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dm7204logs=矿洞的终极兵器!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.ax=新BOSS-寒冰魔女
|
||||
ui.changelist.mlpd.vm0_5_x_changes.axlogs=冰雪层的女王,但绝对不是我们的朋友。\n\n--敬请期待!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.axs=新系统
|
||||
ui.changelist.mlpd.vm0_5_x_changes.axslogs=SAN值系统。\n\n--敬请期待!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.axa=矮人国王重修
|
||||
ui.changelist.mlpd.vm0_5_x_changes.axalogs=矮人国王大改\n\n--敬请期待!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.axx=古神即将大改
|
||||
ui.changelist.mlpd.vm0_5_x_changes.axxlogs=敬请期待!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.axss=不止于此!
|
||||
ui.changelist.mlpd.vm0_5_x_changes.axsslogs=0.6还会有更多东西,这里就不说了。\n\n我们0.6再会!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dead=新怪物-死灵学家
|
||||
ui.changelist.mlpd.vm0_5_x_changes.deadlogs=栖息在矿洞层的神秘住民,据说矿洞的火焰幽灵就是他们的杰作。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.sm=新怪物-萨满长老
|
||||
ui.changelist.mlpd.vm0_5_x_changes.smlogs=栖息在矿洞层的精英萨满族人,你绝对不会和他们交战。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.zlps=新挑战-支离破碎
|
||||
ui.changelist.mlpd.vm0_5_x_changes.zlpslogs=地牢发生了奇怪的变化,完成可以永久增益初始物品的东西!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bug_0509=Bug修复\n\n-_1_-:修正饥荒合约不生效的问题\n\n-_2_:修复守卫者陷阱崩溃的问题
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bug_0510=Bug修复\n\n-_1_-:修正死灵学家死亡崩溃的问题\n\n-_2_:修复老天狗崩溃的问题
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newwepaon=武器生成加入新东西
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newwepaonlogs=1.黑狗爪\n\n2.丛林毒刺\n3.红魔之剑\n4.炸弹匕首
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newwepaon1=新武器-碧灰双刃
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newwepaon1logs=来自矮人工匠_Mr.LunRes_的杰作,等等,这名字,似曾相识!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newwepaon2=新武器-冰霜长鞭
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newwepaon2logs=地牢的雪地环境造就了传奇武器。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newwepaon3=新武器-白金真银战锤大剑
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newwepaon3logs=只有英雄才能驾驭这个传说级武器。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.challs2=挑战改动-支离破碎
|
||||
ui.changelist.mlpd.vm0_5_x_changes.challs2logs=可以免费复活三次!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.challs3=挑战改动-污泥浊水
|
||||
ui.changelist.mlpd.vm0_5_x_changes.challs3logs=开局送9个生石灰!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.crashsx=新崩溃界面
|
||||
ui.changelist.mlpd.vm0_5_x_changes.crashsxlogs=崩溃界面2.0正式启用!Power By UCE Handler!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.ankh=十字架改动
|
||||
ui.changelist.mlpd.vm0_5_x_changes.ankhlogs=十字架现在有Ξ更加的强力Ξ效果,复活后可以获得_短暂的治疗效果_。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dg24=新秘卷-炎魔秘卷
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dg24logs=合成方案:自己去炼金合成表看(
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dg26=新秘卷-玫瑰秘卷
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dg26logs=合成方案:自己去炼金合成表看(
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dg12=支离破碎改动
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dg12logs=6-10 最多刷新到矿洞层 怪物最多矿洞序列组\n\n11-15 最多刷新到城市层 怪物最多城市序列组\n\n16-20 最多刷新到恶魔层 怪物最多城市序列组\n\n21-25 固定恶魔层 怪物在第0-第6序列随机中奖
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bug_0535=移除死灵学家,但现有存档已经加载的无法修复。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bug_0536=修复金币负数。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bat=新怪物:棕色蝙蝠
|
||||
ui.changelist.mlpd.vm0_5_x_changes.batlogs=危险而又令人捉摸不透的地牢原住民,它们的攻击的可以让你_失明_。\n\n一旦死亡,它们会给你一个_大惊喜_。\n\n它们会在_监狱层_刷新!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.kingno=史莱姆王子改动
|
||||
ui.changelist.mlpd.vm0_5_x_changes.kingnologs=1.减少了Δ闪避数值Δ\n-2.减少了Δ血量Δ\n-3.攻速上升,召唤的Γ怪物击败后不再掉落任何物品Γ。\n-满血开启秒杀模式
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.hxblr=血月魔盾猎人改动
|
||||
ui.changelist.mlpd.vm0_5_x_changes.hxblrlogs=1.血量随机化数值减小!\n-2.如果被猎人重击,那么则会触发Γ诅咒燃烧Γ。\n-3.血月魔盾猎人现在更不容易将你的武器击飞。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.fireball=新机制:自讨苦吃
|
||||
ui.changelist.mlpd.vm0_5_x_changes.fireballlogs=如果你没有处理冰雪矿洞的寒冰结晶或恶魔层的东西,那么,Boss将会遇到最难打的。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.luzus=仙露明珠瓶-正式版
|
||||
ui.changelist.mlpd.vm0_5_x_changes.luzuslogs=通过一下午的DameDame\n-露珠瓶已经进行大规模调整\n-现在公开数据:\n-升级通过角色等级,每5级升级一次\n-_+0 没有任何属性_\n-+1 露珠_存在3个_以上 可使用_守护魔力I_ (给5回合的奥术护盾)\n-+2 露珠_存在5个_以上 可使用_守护魔力II_ (给10回合的奥术护盾,给10回合的极速)\n-+2 露珠_存在6个_以上 可使用_仙露审判I_ (给予全图敌人恐惧+剧毒属性)\n-+4 露珠_存在7个_以上 可使用_守护魔力III_ (玫瑰结界8回合,极速8回合,饱腹20回合,磷焰灵路12回合,8回合灵视,持续一段时间治疗)\n-+4 露珠_存在8个_以上 可使用_仙露审判II_(全图敌人磷火缠身,飘浮,眩晕一段时间)\n\n_使用这些技能将减去对应的露珠量_
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.guard=商店守卫
|
||||
ui.changelist.mlpd.vm0_5_x_changes.guardlogs=商店可抢劫,守卫可出现!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.icegolem=新怪物:冰雪魔像
|
||||
ui.changelist.mlpd.vm0_5_x_changes.icegolemlogs=相比于原版魔像,这个更加致命。请一定小心!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.shop=普通商店抢劫系统
|
||||
ui.changelist.mlpd.vm0_5_x_changes.shoplogs=0元购?
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.shop2=回忆商店抢劫系统
|
||||
ui.changelist.mlpd.vm0_5_x_changes.shop2logs=0元购?但需要付出代价!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bluefirebloom=新植物和新种子
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bluefirebloomlogs=灵焰花!踩上去有惊喜!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newbuffs=新buff
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newbuffslogs=磷火缠身,随着地牢深度和英雄的等级变得越来越致命。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.info=优化说明
|
||||
ui.changelist.mlpd.vm0_5_x_changes.infologs=-优化新BUFF渐变条\n-优化Boss血量文本\n-优化露珠变量Short继承问题\n-修复监狱层闪退BUG\n-修复Boss层音乐无法自动切换的问题\n-追加一个徽章
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.ankh2=十字架改动
|
||||
ui.changelist.mlpd.vm0_5_x_changes.ankh2logs=-调整回以前的模式,但是玩家复活后可以获得玫瑰结界。\n-祝福的十字架则有更大的奇效。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.kagenu=影子盗贼改动
|
||||
ui.changelist.mlpd.vm0_5_x_changes.kagenulogs=-血量现在在20-50的范围内。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.icescorpio=新怪物:寒冰巨蝎
|
||||
ui.changelist.mlpd.vm0_5_x_changes.icescorpiologs=来自于恶魔深处的扭曲生物,请小心行事。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.firescorpio=新怪物:烈焰巨蝎
|
||||
ui.changelist.mlpd.vm0_5_x_changes.firescorpiologs=来自于恶魔深处的扭曲生物,请小心行事。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.reddragon=新NPC:红龙之主
|
||||
ui.changelist.mlpd.vm0_5_x_changes.reddragonlogs=试炼开始,小子!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.red_murderer=新怪物:血月盗贼
|
||||
ui.changelist.mlpd.vm0_5_x_changes.red_murdererlogs=要小心你的东西哦!我会带走一切。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newking=新Boss:冰雪魔女
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newkinglogs=当绝望降临到你身上的时候,你才知道什么叫无助。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bomb=三大任务怪
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bomblogs=豺狼炼药长老,豺狼萨满长老,Flame-C02。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.blues=新法杖:磷火法杖
|
||||
ui.changelist.mlpd.vm0_5_x_changes.blueslogs=释放出磷火的力量,同时也可以与老魔杖合成哦。\n\n就如同0.2说的那样,现在他回来了。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.shjt=新怪物:寒冰猎人
|
||||
ui.changelist.mlpd.vm0_5_x_changes.shjtlogs=冰雪魔女的傀儡,同时,也是灾难的化身。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bluefire=新药剂:磷火药剂
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bluefirelogs=扔出造成磷火缠身效果。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.blueexfire=新合剂:龙王吐息合剂
|
||||
ui.changelist.mlpd.vm0_5_x_changes.blueexfirelogs=吐出磷火,让你的敌人抱头鼠窜。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.nukecole=新物品:核子可乐
|
||||
ui.changelist.mlpd.vm0_5_x_changes.nukecolelogs=核子可乐,味道好级了。
|
||||
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.displayml=经典界面与快捷栏
|
||||
ui.changelist.mlpd.vm0_5_x_changes.displaymllogs=-经典界面为喜欢_原汁原味_的朋友设计,_快捷栏_必须在_游戏界面_里面才能出现。\n最高可以设置12格。\n\n请不要使用居中格式!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.add=成就0层追加奖励
|
||||
ui.changelist.mlpd.vm0_5_x_changes.addlogs=戒指 完成老人与海\n\n十字架 完成击败DM720 或 冰雪魔女\n\n神器 完成支离破碎\n\n随机护甲 完成突变巨兽\n\n(0层四个基座上)
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.yogdrawf=新Boss:Yog_Dead
|
||||
ui.changelist.mlpd.vm0_5_x_changes.yogdrawflogs=无穷的绝望是我的能量来源,你是否准备好了?冒险者!!!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bosstz=新挑战:突变激素
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bosstzlogs=进 击 的 地 牢 !
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.coldrat2=寒冰魔鼠
|
||||
ui.changelist.mlpd.vm0_5_x_changes.coldratlogs2=加强属性,并移动到冰雪矿洞层
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.redc=红色巨蝇
|
||||
ui.changelist.mlpd.vm0_5_x_changes.redclogs=加强属性,并移动到冰雪矿洞层
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.watermove=新机制:风行水上
|
||||
ui.changelist.mlpd.vm0_5_x_changes.watermovelogs=除恶魔层,每大层都会有不同的属性。\n\n例如,第一大层,玩家可以获得祝福+树肤的加成(在水上移动时)
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.hblr=火把猎人改动
|
||||
ui.changelist.mlpd.vm0_5_x_changes.hblrlogs=伤害降低,血量降低
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.mohblr=血月火把猎人改动
|
||||
ui.changelist.mlpd.vm0_5_x_changes.mohblrlogs=血量降低
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.sjd=圣境密林
|
||||
ui.changelist.mlpd.vm0_5_x_changes.sjdlogs=下水道层正式改为圣境密林,感谢_Daniel_Clan_的原创素材。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.musipa=原创音乐圣境层实装&&借用音乐说明
|
||||
ui.changelist.mlpd.vm0_5_x_changes.musipalogs=作者_Prohonor_原创发力!\n\n借用泰拉瑞亚双子魔眼BGM,光之女皇BGM\n\n借用橙光战斗BGM第二组\n\n本游戏完全用爱发电,不用于任何商业用途!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dev8=开发日志
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dev8logs=这是大学大一上学期结束的最后一次更新\n-在今后的生活中,我将会休息一段时间。\n-一方面是继续提升编程技术,一方面是为了一些其他重要事情。\n\n无论如何,感谢大家对魔绫地牢的支持。\n\n2022-1-17-Release!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.mimmc=新Boss:钻石宝箱王
|
||||
ui.changelist.mlpd.vm0_5_x_changes.mimmclogs=想要宝物,就必须先击败我!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.goldbao=新物品:黄金珍宝
|
||||
ui.changelist.mlpd.vm0_5_x_changes.goldbaologs=商人:I Like!Give Me!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.icewandgod=新法杖:霜冻神级法杖
|
||||
ui.changelist.mlpd.vm0_5_x_changes.icewandgodlogs=击败魔女,获得宝藏。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.wdsx=抢劫系统2.0
|
||||
ui.changelist.mlpd.vm0_5_x_changes.wdsxlogs=抢劫期间,不能跳楼,不能上下楼。\n\n也不能退出游戏或者返回到主界面【有的话直接删档】
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.nyzspd=奈亚子商店
|
||||
ui.changelist.mlpd.vm0_5_x_changes.nyzspdlogs=现在你可以在地牢里面找到奈亚子,并且可以购买一些书籍或者炸弹!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.superzero=0元购守卫头目:死灵大师
|
||||
ui.changelist.mlpd.vm0_5_x_changes.superzerologs=想要0元购?就必须击败它!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.s6=7种超级buff
|
||||
ui.changelist.mlpd.vm0_5_x_changes.s6logs=阅读书籍有几率获得
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.info2=无限循环崩溃抓取
|
||||
ui.changelist.mlpd.vm0_5_x_changes.info2logs=如果你遇到无限循环bug,则可以点开菜单点击一个按钮发给我!\n\n注意:如果并没有无限循环请不要发送给我。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.new6w2=新武器:尚方宝剑
|
||||
ui.changelist.mlpd.vm0_5_x_changes.new6w2logs=这把尚方宝剑,上斩怪物,下斩首领。\n\n吸天地之正气,含日月之精华,可乃上古神物,能披荆斩棘,无人能敌。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.new6w=新武器:煮熟的尚方宝剑
|
||||
ui.changelist.mlpd.vm0_5_x_changes.new6wlogs=这把尚方宝剑,上斩怪物,下斩首领。\n\n吸天地之正气,含日月之精华,可乃上古神物,能披荆斩棘,无人能敌。\n\n并且吸收锅内精华,现已无人可挡!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newbooks=书籍系统
|
||||
ui.changelist.mlpd.vm0_5_x_changes.newbookslogs=现在地牢可以获得书籍,通过书籍调查真相。\n\n阅读她们以获得祝福,更有机会获得高级祝福。\n\n玩家投稿的自定义书籍将作为娱乐显示。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.audio5=新音乐
|
||||
ui.changelist.mlpd.vm0_5_x_changes.audio5logs=标题界面原创BGM正式实装\n-By Prohonor
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.nxhyshopchanges=那些回忆
|
||||
ui.changelist.mlpd.vm0_5_x_changes.nxhyshopchangeslogs=现在抢劫商店回忆将直接跑路,但是仍然会送你守卫,击败就能获得守卫的武器。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.icewandgod2=霜冻神杖
|
||||
ui.changelist.mlpd.vm0_5_x_changes.icewandgod2logs=调整攻击方案,对首领造成双倍伤害!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bug_05x9=1.修复部分楼层卡顿\n2.修复财富戒指可以获得的问题\n3.修复Boss战血量显示异常问题\n4.暂时移除6阶武器生成\n5.暂时移除奈亚子商店\n6.修复老制杖的法杖获得问题\n7.修复钻石宝箱王卡顿问题\n8.修复支离破碎的楼层刷新问题\n9.修复突变巨兽的数据溢出问题\n10.修复部分楼层没有钥匙的问题.
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dev9=开发日志
|
||||
ui.changelist.mlpd.vm0_5_x_changes.dev9logs=2022-1-23-Release\n修复了上个版本的大部分问题,\n祝大家新年快乐,以及,阖家欢乐!虎虎生威!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.iclr=寒冰猎人
|
||||
ui.changelist.mlpd.vm0_5_x_changes.iclrlogs=伤害削弱,移速变慢,血量调低,去除烈焰buff。
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.superyog=YogDeadGod
|
||||
ui.changelist.mlpd.vm0_5_x_changes.superyoglogs=血量调低,召唤物伤害调低(以及血量调低)
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.wids=冰雪魔女
|
||||
ui.changelist.mlpd.vm0_5_x_changes.widslogs=伤害削弱,水晶塔爆炸性伤害下调,血量降低
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.ratpo=老鼠合集
|
||||
ui.changelist.mlpd.vm0_5_x_changes.ratpologs=棕色老鼠打人不再使其流血,老鼠总体伤害下调
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.kage2=影子盗贼
|
||||
ui.changelist.mlpd.vm0_5_x_changes.kage2logs=伤害削弱,瞬移大伤害下调,血量降低
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.seed=地图种子系统
|
||||
ui.changelist.mlpd.vm0_5_x_changes.seedlogs=你可以随便输入字符到种子框里面,然后通过游戏内部的字母得到它。\n-请注意,种子只有游戏里面的字母显示序列才是有效的。\n-比如你输入"HappyNewYear",序列编号为"XEOMCZLHX"。\n-然后分享给朋友的时候可以使用你的常量代码或者是通用序列代码编号。\n-祝游戏愉快!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bug_05x10=1.修复无钥匙的问题。\n-2.修复部分区域闪退的问题
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bug_05x12=1.修复击败EX古神挑战徽章不掉落委托。\n-2.修复部分区域闪退的问题\n-3.修复史莱姆王子闪退委托以及属性调整
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.exsg=新挑战:药水癔症
|
||||
ui.changelist.mlpd.vm0_5_x_changes.exsglogs=药水癔症详细规则:\n力量药水 力量-1\n灵视药剂 喝后失明5回合\n隐形药剂 喝后立刻怒吼\n经验药剂 喝后立刻流血6回合\n极速药剂 喝后立刻残废8回合\n==========================\n炖肉 吃后立刻升级\n冷冻生肉片 吃后获得奥术护盾\n全肉大饼 吃后立刻获得8回合极速 且+1力量\n不知道何种原因,大部分正面药水你都感觉有毒!\n部分药水完全处于DeBuff,高级药水不受影响,但食物却会很有用!\n\n通过奖励:1500初始金币,2个经验药水
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bug_05x13=-1.修复食物扔出Bug问题。\n-2.修复抢劫系统问题
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.wids2=寒冰魔女V2.0
|
||||
ui.changelist.mlpd.vm0_5_x_changes.wids2logs=寒冰魔女进行大规模重修,现在数据如下:\n\n血量:600\n总共有三个阶段\n\n一阶段,200-600血!\n普通攻击+水晶塔+冰雪傀儡\n\n二阶段:200-50血\n在水中获得更多的Buff\n\n三阶段:50-0血,防御力大幅度提升!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.shop12=商店抢劫系统V2.5
|
||||
ui.changelist.mlpd.vm0_5_x_changes.shop12logs=现在商店抢劫的按钮已经发生改动,选择踏上征途按钮,将会保留物品但是会将血量扣至5,并且重置力量和等级!将人物送回第一层!\n\n选择逆向宽恕,将会读取上一次的游戏进度。(如果你在抢劫后退出再次进入游戏就没有什么用了,你就必须击败Boss,或者是选择踏上征途)\n\n回忆现在抢劫直接溜!并且不再放怪物出来!回忆的楼层改为9和18层!
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bug_05x14=-1.修复商店抢劫双首领问题\n-2.削弱史莱姆王子的中毒效果
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bug_05x15=-1.修复商店偷盗闪退问题\n-2.整改奈亚子商店
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bug_05x16=-1.整改奈亚子商店属性\n-2.修复除0闪退问题\n-3.修复贴图Destory的崩溃问题\n-4.修复12层的卡顿问题\n-5.修复成长祝福不消失问题\n-6.修复神偷袖章闪退问题
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bug_05x17=-1.修复了史莱姆王子死亡后消失的问题\n-2.对部分武器属性上调,具体查看更新记录\n-3.钻石宝箱王数值削弱,召唤物改为老年老鼠
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.bug_05x18=-修复十字架重置没有生效的问题
|
||||
|
||||
ui.changelist.mlpd.vm0_5_x_changes.fr=???
|
||||
ui.changelist.mlpd.vm0_5_x_changes.frlogs=尚待调查……
|
||||
|
||||
//ui.changelist.mlpd.vm0_5_x_changes.xxx//
|
|
@ -1,13 +1,33 @@
|
|||
windows.textchallenges.seed_custom_title = 种子windows.textchallenges.seed_custom_title = 种子
|
||||
windows.textchallenges.seed_custom_title = 种子
|
||||
windows.textchallenges.hint = 不输入即为随机种子
|
||||
windows.textchallenges.delete_seed_input = 清除
|
||||
|
||||
windows.wndinfomob.dsinfo = 闪避概率:
|
||||
windows.wndinfomob.maxinfo = 最大等级:
|
||||
windows.wndinfomob.maxinfo = 掉落限制LV:
|
||||
windows.wndinfomob.getexp = 可获经验:
|
||||
windows.wndinfomob.getdmg = 伤害波段:
|
||||
windows.wndinfomob.itm = 固定掉落:
|
||||
windows.wndinfomob.shield= 护盾属性:
|
||||
windows.wndinfomob.getdmg = 上次伤害:
|
||||
windows.wndinfomob.itm = 物品概率:
|
||||
windows.wndinfomob.shield= 护甲属性:
|
||||
|
||||
windows.wndnyzshop.nayazi=奈亚子
|
||||
windows.wndnyzshop.nayaziwelcome=你好,冒险家。欢迎来到我的商店。和其他商店不同的是,我这里是一个智能终端的结合体!\n\n需要什么请进行选择,但是,智能终端通常会出现问题!一旦终端出现问题将无法再次购买。\n\n书籍一本起价300金币,炸弹一套起价270金币,欢迎你的挑选!\n\n有一些时候因为机器的缺陷性质可能实际费用会比预想的高!
|
||||
windows.wndnyzshop.buy=购买物品
|
||||
windows.wndnyzshop.sellmod=出售物品
|
||||
windows.wndnyzshop.cancel=取消购买
|
||||
windows.wndnyzshop.maxbuy=哎呀,机器坏了。我得去修修,下次见啦!
|
||||
windows.wndnyzshop.nomoney=看来你的钱并不支持你购买这些东西!
|
||||
|
||||
windows.wndreddragon.gnollshied_title=击败豺狼炼药长老
|
||||
windows.wndreddragon.skullgnoll_title=击败豺狼长老
|
||||
windows.wndreddragon.flamec02_title=击败火焰机器人
|
||||
windows.wndreddragon.gnollshied=不戳!那个成天炸我的屑豺狼崽子终于爬了!
|
||||
windows.wndreddragon.skullgnoll=不戳!那个成天放电的屑豺狼崽子终于爬了!
|
||||
windows.wndreddragon.flamec02=不戳!那个成天噼里啪啦的屑机器人终于爬了!
|
||||
windows.wndreddragon.give_item=那本龙王就勉为其难的给你点东西,你看看需要哪个,这些都是从他们的尸体上那边借过来的,老强了。顺带一提,我会给你核子可乐,这东西你想怎么用就怎么用!\n\n另外,如果想要本王和你并肩作战,你必须找到我的祀环祭坛。祝你好运!
|
||||
windows.wndreddragon.confirm=确定
|
||||
windows.wndreddragon.cancel=取消
|
||||
windows.wndreddragon$rewardwindow$1.why=你为什么想多拿你的奖励?贪心是一种病,让本龙王给你治治!
|
||||
windows.wndreddragon.farewell=那本王先行告退,哦,我一不小心踩了一个警报陷阱,不好意思哈。
|
||||
|
||||
windows.wndblacksmith.prompt=好吧,按之前说好的,我得帮你做点事:我可以重铸2件物品并将它们制成一个品质更好的。
|
||||
windows.wndblacksmith.select=选择要重铸的物品
|
||||
|
|
Before Width: | Height: | Size: 1002 B After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 12 KiB |
|
@ -73,7 +73,6 @@ public class Badges {
|
|||
DEATH_FROM_GAS ( 16 ),
|
||||
DEATH_FROM_HUNGER ( 17 ),
|
||||
DEATH_FROM_FALLING ( 18 ),
|
||||
KILL_RED ( 19 ),
|
||||
KILL_ROTHEART ( 20 ),
|
||||
GET_SC ( 21 ),
|
||||
KILL_COLDELE ( 22 ),
|
||||
|
@ -165,8 +164,7 @@ public class Badges {
|
|||
NYZ_SHOP ( 117 ),
|
||||
|
||||
//rudy
|
||||
FIREGIRL ( 128 ),
|
||||
DM920 ( 129 ),
|
||||
SLIMEPR ( 129 ),
|
||||
DRAWF_HEAD ( 130 ),
|
||||
SPICEALBOSS ( 131),
|
||||
SBDJS (132),
|
||||
|
@ -601,14 +599,6 @@ public class Badges {
|
|||
validateYASD();
|
||||
}
|
||||
|
||||
public static void KILL_DEATHRED() {
|
||||
Badge badge = Badge.KILL_RED;
|
||||
local.add( badge );
|
||||
displayBadge( badge );
|
||||
|
||||
validateGOODMAKE();
|
||||
}
|
||||
|
||||
public static void KILL_ROTHEART() {
|
||||
Badge badge = Badge.KILL_ROTHEART;
|
||||
local.add( badge );
|
||||
|
@ -646,8 +636,7 @@ public class Badges {
|
|||
}
|
||||
|
||||
private static void validateGOODMAKE() {
|
||||
if (global.contains( Badge.KILL_RED ) &&
|
||||
global.contains( Badge.KILL_ROTHEART ) &&
|
||||
if (global.contains( Badge.KILL_ROTHEART ) &&
|
||||
global.contains( Badge.GET_SC ) &&
|
||||
global.contains( Badge.KILL_COLDELE)) {
|
||||
|
||||
|
|
|
@ -21,6 +21,9 @@
|
|||
|
||||
package com.shatteredpixel.shatteredpixeldungeon;
|
||||
|
||||
import static com.shatteredpixel.shatteredpixeldungeon.Challenges.ALLBOSS;
|
||||
import static com.shatteredpixel.shatteredpixeldungeon.Challenges.RLPT;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Amok;
|
||||
|
@ -36,7 +39,10 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Blacksmith;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Ghost;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Imp;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.RedDragon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Wandmaker;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.custom.utils.CustomGameSettings;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.custom.utils.SeedUtil;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Heap;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||
|
@ -47,19 +53,28 @@ 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.DM920BossLevel;
|
||||
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.ItemLevel;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.LastLevel;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.Level;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.CavesBossLevel;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.CityBossLevel;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.HallsBossLevel;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.NewCavesBossLevel;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.NewCityBossLevel;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.NewHallsBossLevel;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.PrisonBossLevel;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.PrisonLevel;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.SLMKingLevel;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.SewerBossLevel;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.SewerLevel;
|
||||
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;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
|
@ -82,6 +97,10 @@ import java.util.HashSet;
|
|||
|
||||
public class Dungeon {
|
||||
public static int cycle;
|
||||
public static int depth;
|
||||
public static int gold;
|
||||
public static int nyzbuy;
|
||||
public static int boss;
|
||||
public static int escalatingDepth() {
|
||||
switch (cycle) {
|
||||
case 0:
|
||||
|
@ -160,7 +179,7 @@ public class Dungeon {
|
|||
} else {
|
||||
lim.count = 0;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -173,12 +192,9 @@ public class Dungeon {
|
|||
public static Level level;
|
||||
|
||||
public static QuickSlot quickslot = new QuickSlot();
|
||||
|
||||
public static int depth;
|
||||
|
||||
public static int gold;
|
||||
public static int energy;
|
||||
|
||||
|
||||
public static HashSet<Integer> chapters;
|
||||
|
||||
public static SparseArray<ArrayList<Item>> droppedItems;
|
||||
|
@ -187,47 +203,49 @@ public class Dungeon {
|
|||
public static int version;
|
||||
|
||||
public static long seed;
|
||||
|
||||
|
||||
public static void init() {
|
||||
|
||||
version = Game.versionCode;
|
||||
challenges = SPDSettings.challenges();
|
||||
mobsToChampion = -1;
|
||||
|
||||
seed = DungeonSeed.randomSeed();
|
||||
String str = CustomGameSettings.getSeedString();
|
||||
seed = str.equals("")?DungeonSeed.randomSeed(): SeedUtil.directConvert(str, 'A', 26);//DungeonSeed.randomSeed();
|
||||
|
||||
Actor.clear();
|
||||
Actor.resetNextID();
|
||||
|
||||
Random.pushGenerator( seed );
|
||||
|
||||
Scroll.initLabels();
|
||||
Potion.initColors();
|
||||
Ring.initGems();
|
||||
Random.pushGenerator(seed);
|
||||
|
||||
SpecialRoom.initForRun();
|
||||
SecretRoom.initForRun();
|
||||
Scroll.initLabels();
|
||||
Potion.initColors();
|
||||
Ring.initGems();
|
||||
|
||||
SpecialRoom.initForRun();
|
||||
SecretRoom.initForRun();
|
||||
|
||||
Random.resetGenerators();
|
||||
|
||||
|
||||
Statistics.reset();
|
||||
Notes.reset();
|
||||
|
||||
quickslot.reset();
|
||||
QuickSlotButton.reset();
|
||||
|
||||
depth = 0;
|
||||
gold = 0;
|
||||
energy = 0;
|
||||
|
||||
depth = -1;
|
||||
|
||||
gold = 0;
|
||||
nyzbuy = 1;
|
||||
droppedItems = new SparseArray<>();
|
||||
portedItems = new SparseArray<>();
|
||||
|
||||
LimitedDrops.reset();
|
||||
|
||||
|
||||
chapters = new HashSet<>();
|
||||
|
||||
|
||||
Ghost.Quest.reset();
|
||||
RedDragon.Quest.reset();
|
||||
Wandmaker.Quest.reset();
|
||||
Blacksmith.Quest.reset();
|
||||
Imp.Quest.reset();
|
||||
|
@ -235,98 +253,234 @@ public class Dungeon {
|
|||
Generator.fullReset();
|
||||
hero = new Hero();
|
||||
hero.live();
|
||||
|
||||
|
||||
Badges.reset();
|
||||
|
||||
GamesInProgress.selectedClass.initHero( hero );
|
||||
|
||||
GamesInProgress.selectedClass.initHero(hero);
|
||||
}
|
||||
|
||||
public static boolean isChallenged( int mask ) {
|
||||
return (challenges & mask) != 0;
|
||||
}
|
||||
|
||||
|
||||
public static Level newLevel() {
|
||||
|
||||
|
||||
Dungeon.level = null;
|
||||
Actor.clear();
|
||||
|
||||
|
||||
depth++;
|
||||
if (depth > Statistics.deepestFloor) {
|
||||
Statistics.deepestFloor = depth;
|
||||
|
||||
|
||||
if (Statistics.qualifiedForNoKilling) {
|
||||
Statistics.completedWithNoKilling = true;
|
||||
} else {
|
||||
Statistics.completedWithNoKilling = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Level level;
|
||||
switch (depth) {
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
level = new SewerLevel();
|
||||
break;
|
||||
case 5:
|
||||
level = new SewerBossLevel();
|
||||
break;
|
||||
case 6:
|
||||
case 7:
|
||||
case 8:
|
||||
case 9:
|
||||
level = new PrisonLevel();
|
||||
break;
|
||||
case 10:
|
||||
level = new PrisonBossLevel();
|
||||
break;
|
||||
case 11:
|
||||
case 12:
|
||||
case 13:
|
||||
case 14:
|
||||
level = new CavesLevel();
|
||||
break;
|
||||
case 15:
|
||||
level = new CavesBossLevel();
|
||||
break;
|
||||
case 16:
|
||||
case 17:
|
||||
case 18:
|
||||
case 19:
|
||||
level = new CityLevel();
|
||||
break;
|
||||
case 20:
|
||||
level = new CityBossLevel();
|
||||
break;
|
||||
case 21:
|
||||
case 22:
|
||||
case 23:
|
||||
case 24:
|
||||
level = new HallsLevel();
|
||||
break;
|
||||
case 25:
|
||||
level = new HallsBossLevel();
|
||||
break;
|
||||
case 26:
|
||||
level = new LastLevel();
|
||||
break;
|
||||
default:
|
||||
level = new DeadEndLevel();
|
||||
Statistics.deepestFloor--;
|
||||
}
|
||||
|
||||
if (Dungeon.isChallenged(ALLBOSS)) {
|
||||
//Boss Rush
|
||||
switch (depth) {
|
||||
//case 0:
|
||||
// level = new ZeroLevel();
|
||||
// break;
|
||||
case 1:
|
||||
level = new ItemLevel();
|
||||
break;
|
||||
case 2:
|
||||
level = new SewerBossLevel();
|
||||
break;
|
||||
case 13:
|
||||
level = new DM920BossLevel();
|
||||
break;
|
||||
default:
|
||||
level = new DeadEndLevel();
|
||||
Statistics.deepestFloor--;
|
||||
}
|
||||
} else if (Dungeon.isChallenged(RLPT)) {
|
||||
switch (depth) {
|
||||
case 0:
|
||||
level = new ZeroLevel();
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
level = new SewerLevel();
|
||||
break;
|
||||
case 5:
|
||||
if((Statistics.boss_enhance & 0x1) != 0) level = new SLMKingLevel();
|
||||
else level = new SewerBossLevel();
|
||||
break;
|
||||
case 6:
|
||||
case 7:
|
||||
case 8:
|
||||
case 9:
|
||||
switch (Random.Int(2)) {
|
||||
case 0:
|
||||
default:
|
||||
level = new PrisonLevel();
|
||||
//Random
|
||||
break;
|
||||
case 1:
|
||||
//Random
|
||||
level = new CavesLevel();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
if((Statistics.boss_enhance & 0x2) != 0) level = new DimandKingLevel();
|
||||
else level = new PrisonBossLevel();
|
||||
break;
|
||||
case 11:
|
||||
case 12:
|
||||
case 13:
|
||||
case 14:
|
||||
switch (Random.Int(2)) {
|
||||
case 0:
|
||||
default:
|
||||
level = new CavesLevel();
|
||||
break;
|
||||
case 1:
|
||||
level = new CityLevel();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 15:
|
||||
if((Statistics.boss_enhance & 0x4) != 0) level = new CavesGirlDeadLevel();
|
||||
else
|
||||
switch (Random.NormalIntRange(1,7)) {
|
||||
case 1:case 2:case 3:
|
||||
default:
|
||||
level = new NewCavesBossLevel();
|
||||
break;
|
||||
case 4:case 5:
|
||||
level = new CaveTwoBossLevel();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 16:
|
||||
case 17:
|
||||
case 18:
|
||||
case 19:
|
||||
switch (Random.Int(2)) {
|
||||
case 0:
|
||||
default:
|
||||
level = new CityLevel();
|
||||
break;
|
||||
case 1:
|
||||
level = new CavesLevel();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 20:
|
||||
if((Statistics.boss_enhance & 0x8) != 0) level = new DwarfMasterBossLevel();
|
||||
else level = new NewCityBossLevel();
|
||||
break;
|
||||
case 21:
|
||||
case 22:
|
||||
case 23:
|
||||
case 24:
|
||||
level = new HallsLevel();
|
||||
break;
|
||||
case 25:
|
||||
if((Statistics.boss_enhance & 0x10) != 0) level = new YogGodHardBossLevel();
|
||||
else level = new NewHallsBossLevel();
|
||||
break;
|
||||
case 26:
|
||||
level = new LastLevel();
|
||||
break;
|
||||
default:
|
||||
level = new DeadEndLevel();
|
||||
Statistics.deepestFloor--;
|
||||
}
|
||||
} else
|
||||
//正常模式
|
||||
switch (depth) {
|
||||
case 0:
|
||||
level = new ZeroLevel();
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
level = new SewerLevel();
|
||||
break;
|
||||
case 5:
|
||||
if((Statistics.boss_enhance & 0x1) != 0) level = new SLMKingLevel();
|
||||
else level = new SewerBossLevel();
|
||||
break;
|
||||
case 6:
|
||||
case 7:
|
||||
case 8:
|
||||
case 9:
|
||||
level = new PrisonLevel();
|
||||
break;
|
||||
case 10:
|
||||
if((Statistics.boss_enhance & 0x2) != 0) level = new DimandKingLevel();
|
||||
else level = new PrisonBossLevel();
|
||||
break;
|
||||
case 11:
|
||||
case 12:
|
||||
case 13:
|
||||
case 14:
|
||||
level = new CavesLevel();
|
||||
break;
|
||||
case 15:
|
||||
if((Statistics.boss_enhance & 0x4) != 0) level = new CavesGirlDeadLevel();
|
||||
|
||||
else
|
||||
switch (Random.NormalIntRange(1,7)) {
|
||||
case 1:case 2:case 3:
|
||||
default:
|
||||
level = new NewCavesBossLevel();
|
||||
break;
|
||||
case 4:case 5:
|
||||
level = new CaveTwoBossLevel();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 16:
|
||||
case 17:
|
||||
case 18:
|
||||
case 19:
|
||||
level = new CityLevel();
|
||||
break;
|
||||
case 20:
|
||||
if((Statistics.boss_enhance & 0x8) != 0) level = new DwarfMasterBossLevel();
|
||||
else level = new NewCityBossLevel();
|
||||
break;
|
||||
case 21:
|
||||
case 22:
|
||||
case 23:
|
||||
case 24:
|
||||
level = new HallsLevel();
|
||||
break;
|
||||
case 25:
|
||||
if((Statistics.boss_enhance & 0x10) != 0) level = new YogGodHardBossLevel();
|
||||
else level = new NewHallsBossLevel();
|
||||
break;
|
||||
case 26:
|
||||
level = new LastLevel();
|
||||
break;
|
||||
default:
|
||||
level = new DeadEndLevel();
|
||||
Statistics.deepestFloor--;
|
||||
}
|
||||
|
||||
level.create();
|
||||
|
||||
|
||||
Statistics.qualifiedForNoKilling = !bossLevel();
|
||||
|
||||
|
||||
return level;
|
||||
}
|
||||
|
||||
|
||||
public static void resetLevel() {
|
||||
|
||||
|
||||
Actor.clear();
|
||||
|
||||
|
||||
level.reset();
|
||||
switchLevel( level, level.entrance );
|
||||
}
|
||||
|
@ -346,29 +500,29 @@ public class Dungeon {
|
|||
Random.popGenerator();
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
public static boolean shopOnLevel() {
|
||||
return depth == 6 || depth == 11 || depth == 16;
|
||||
}
|
||||
|
||||
|
||||
public static boolean bossLevel() {
|
||||
return bossLevel( depth );
|
||||
}
|
||||
|
||||
|
||||
public static boolean bossLevel( int depth ) {
|
||||
return depth == 5 || depth == 10 || depth == 15 || depth == 20 || depth == 25;
|
||||
}
|
||||
|
||||
|
||||
public static void switchLevel( final Level level, int pos ) {
|
||||
|
||||
|
||||
if (pos == -2){
|
||||
pos = level.exit;
|
||||
} else if (pos < 0 || pos >= level.length() || (!level.passable[pos] && !level.avoid[pos])){
|
||||
pos = level.entrance;
|
||||
}
|
||||
|
||||
|
||||
PathFinder.setMapSize(level.width(), level.height());
|
||||
|
||||
|
||||
Dungeon.level = level;
|
||||
Mob.restoreAllies( level, pos );
|
||||
Actor.init();
|
||||
|
@ -376,7 +530,7 @@ public class Dungeon {
|
|||
level.addRespawner();
|
||||
|
||||
hero.pos = pos;
|
||||
|
||||
|
||||
for(Mob m : level.mobs){
|
||||
if (m.pos == hero.pos){
|
||||
//displace mob
|
||||
|
@ -388,10 +542,10 @@ public class Dungeon {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Light light = hero.buff( Light.class );
|
||||
hero.viewDistance = light == null ? level.viewDistance : Math.max( Light.DISTANCE, level.viewDistance );
|
||||
|
||||
|
||||
hero.curAction = hero.lastAction = null;
|
||||
|
||||
observe();
|
||||
|
@ -428,7 +582,7 @@ public class Dungeon {
|
|||
else return false;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static boolean souNeeded() {
|
||||
int souLeftThisSet;
|
||||
//3 SOU each floor set, 1.5 (rounded) on forbidden runes challenge
|
||||
|
@ -443,7 +597,7 @@ public class Dungeon {
|
|||
//chance is floors left / scrolls left
|
||||
return Random.Int(5 - floorThisSet) < souLeftThisSet;
|
||||
}
|
||||
|
||||
|
||||
public static boolean asNeeded() {
|
||||
//1 AS each floor set
|
||||
int asLeftThisSet = 1 - (LimitedDrops.ARCANE_STYLI.count - (depth / 5));
|
||||
|
@ -453,7 +607,7 @@ public class Dungeon {
|
|||
//chance is floors left / scrolls left
|
||||
return Random.Int(5 - floorThisSet) < asLeftThisSet;
|
||||
}
|
||||
|
||||
|
||||
private static final String VERSION = "version";
|
||||
private static final String SEED = "seed";
|
||||
private static final String CHALLENGES = "challenges";
|
||||
|
@ -469,7 +623,7 @@ public class Dungeon {
|
|||
private static final String CHAPTERS = "chapters";
|
||||
private static final String QUESTS = "quests";
|
||||
private static final String BADGES = "badges";
|
||||
|
||||
|
||||
public static void saveGame( int save ) {
|
||||
try {
|
||||
Bundle bundle = new Bundle();
|
||||
|
@ -488,7 +642,7 @@ public class Dungeon {
|
|||
for (int d : droppedItems.keyArray()) {
|
||||
bundle.put(Messages.format(DROPPED, d), droppedItems.get(d));
|
||||
}
|
||||
|
||||
|
||||
for (int p : portedItems.keyArray()){
|
||||
bundle.put(Messages.format(PORTED, p), portedItems.get(p));
|
||||
}
|
||||
|
@ -498,56 +652,56 @@ public class Dungeon {
|
|||
Bundle limDrops = new Bundle();
|
||||
LimitedDrops.store( limDrops );
|
||||
bundle.put ( LIMDROPS, limDrops );
|
||||
|
||||
|
||||
int count = 0;
|
||||
int ids[] = new int[chapters.size()];
|
||||
for (Integer id : chapters) {
|
||||
ids[count++] = id;
|
||||
}
|
||||
bundle.put( CHAPTERS, ids );
|
||||
|
||||
|
||||
Bundle quests = new Bundle();
|
||||
Ghost .Quest.storeInBundle( quests );
|
||||
Wandmaker .Quest.storeInBundle( quests );
|
||||
Blacksmith .Quest.storeInBundle( quests );
|
||||
Imp .Quest.storeInBundle( quests );
|
||||
bundle.put( QUESTS, quests );
|
||||
|
||||
|
||||
SpecialRoom.storeRoomsInBundle( bundle );
|
||||
SecretRoom.storeRoomsInBundle( bundle );
|
||||
|
||||
|
||||
Statistics.storeInBundle( bundle );
|
||||
Notes.storeInBundle( bundle );
|
||||
Generator.storeInBundle( bundle );
|
||||
|
||||
|
||||
Scroll.save( bundle );
|
||||
Potion.save( bundle );
|
||||
Ring.save( bundle );
|
||||
|
||||
Actor.storeNextID( bundle );
|
||||
|
||||
|
||||
Bundle badges = new Bundle();
|
||||
Badges.saveLocal( badges );
|
||||
bundle.put( BADGES, badges );
|
||||
|
||||
|
||||
FileUtils.bundleToFile( GamesInProgress.gameFile(save), bundle);
|
||||
|
||||
|
||||
} catch (IOException e) {
|
||||
GamesInProgress.setUnknown( save );
|
||||
ShatteredPixelDungeon.reportException(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void saveLevel( int save ) throws IOException {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.put( LEVEL, level );
|
||||
|
||||
|
||||
FileUtils.bundleToFile(GamesInProgress.depthFile( save, depth), bundle);
|
||||
}
|
||||
|
||||
|
||||
public static void saveAll() throws IOException {
|
||||
if (hero != null && (hero.isAlive() || WndResurrect.instance != null)) {
|
||||
|
||||
|
||||
Actor.fixTime();
|
||||
saveGame( GamesInProgress.curSlot );
|
||||
saveLevel( GamesInProgress.curSlot );
|
||||
|
@ -556,13 +710,13 @@ public class Dungeon {
|
|||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void loadGame( int save ) throws IOException {
|
||||
loadGame( save, true );
|
||||
}
|
||||
|
||||
|
||||
public static void loadGame( int save, boolean fullLoad ) throws IOException {
|
||||
|
||||
|
||||
Bundle bundle = FileUtils.bundleFromFile( GamesInProgress.gameFile( save ) );
|
||||
|
||||
version = bundle.getInt( VERSION );
|
||||
|
@ -577,18 +731,18 @@ public class Dungeon {
|
|||
|
||||
Dungeon.challenges = bundle.getInt( CHALLENGES );
|
||||
Dungeon.mobsToChampion = bundle.getInt( MOBS_TO_CHAMPION );
|
||||
|
||||
|
||||
Dungeon.level = null;
|
||||
Dungeon.depth = -1;
|
||||
|
||||
|
||||
Scroll.restore( bundle );
|
||||
Potion.restore( bundle );
|
||||
Ring.restore( bundle );
|
||||
|
||||
quickslot.restorePlaceholders( bundle );
|
||||
|
||||
|
||||
if (fullLoad) {
|
||||
|
||||
|
||||
LimitedDrops.restore( bundle.getBundle(LIMDROPS) );
|
||||
|
||||
chapters = new HashSet<>();
|
||||
|
@ -598,7 +752,7 @@ public class Dungeon {
|
|||
chapters.add( id );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Bundle quests = bundle.getBundle( QUESTS );
|
||||
if (!quests.isNull()) {
|
||||
Ghost.Quest.restoreFromBundle( quests );
|
||||
|
@ -611,23 +765,23 @@ public class Dungeon {
|
|||
Blacksmith.Quest.reset();
|
||||
Imp.Quest.reset();
|
||||
}
|
||||
|
||||
|
||||
SpecialRoom.restoreRoomsFromBundle(bundle);
|
||||
SecretRoom.restoreRoomsFromBundle(bundle);
|
||||
}
|
||||
|
||||
|
||||
Bundle badges = bundle.getBundle(BADGES);
|
||||
if (!badges.isNull()) {
|
||||
Badges.loadLocal( badges );
|
||||
} else {
|
||||
Badges.reset();
|
||||
}
|
||||
|
||||
|
||||
Notes.restoreFromBundle( bundle );
|
||||
|
||||
|
||||
hero = null;
|
||||
hero = (Hero)bundle.get( HERO );
|
||||
|
||||
|
||||
depth = bundle.getInt( DEPTH );
|
||||
|
||||
gold = bundle.getInt( GOLD );
|
||||
|
@ -639,7 +793,7 @@ public class Dungeon {
|
|||
droppedItems = new SparseArray<>();
|
||||
portedItems = new SparseArray<>();
|
||||
for (int i=1; i <= 26; i++) {
|
||||
|
||||
|
||||
//dropped items
|
||||
ArrayList<Item> items = new ArrayList<>();
|
||||
if (bundle.contains(Messages.format( DROPPED, i )))
|
||||
|
@ -649,7 +803,7 @@ public class Dungeon {
|
|||
if (!items.isEmpty()) {
|
||||
droppedItems.put( i, items );
|
||||
}
|
||||
|
||||
|
||||
//ported items
|
||||
items = new ArrayList<>();
|
||||
if (bundle.contains(Messages.format( PORTED, i )))
|
||||
|
@ -661,23 +815,23 @@ public class Dungeon {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static Level loadLevel( int save ) throws IOException {
|
||||
|
||||
|
||||
Dungeon.level = null;
|
||||
Actor.clear();
|
||||
|
||||
|
||||
Bundle bundle = FileUtils.bundleFromFile( GamesInProgress.depthFile( save, depth)) ;
|
||||
|
||||
|
||||
Level level = (Level)bundle.get( LEVEL );
|
||||
|
||||
|
||||
if (level == null){
|
||||
throw new IOException();
|
||||
} else {
|
||||
return level;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void deleteGame( int save, boolean deleteLevels ) {
|
||||
|
||||
if (deleteLevels) {
|
||||
|
@ -690,10 +844,10 @@ public class Dungeon {
|
|||
}
|
||||
|
||||
FileUtils.zeroFile(GamesInProgress.gameFile(save), 1);
|
||||
|
||||
|
||||
GamesInProgress.delete( save );
|
||||
}
|
||||
|
||||
|
||||
public static void preview( GamesInProgress.Info info, Bundle bundle ) {
|
||||
info.depth = bundle.getInt( DEPTH );
|
||||
info.version = bundle.getInt( VERSION );
|
||||
|
@ -701,13 +855,13 @@ public class Dungeon {
|
|||
Hero.preview( info, bundle.getBundle( HERO ) );
|
||||
Statistics.preview( info, bundle );
|
||||
}
|
||||
|
||||
|
||||
public static void fail( Class cause ) {
|
||||
if (WndResurrect.instance == null) {
|
||||
Rankings.INSTANCE.submit( false, cause );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void win( Class cause ) {
|
||||
|
||||
hero.belongings.identify();
|
||||
|
@ -726,36 +880,36 @@ public class Dungeon {
|
|||
|
||||
observe( dist+1 );
|
||||
}
|
||||
|
||||
|
||||
public static void observe( int dist ) {
|
||||
|
||||
if (level == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
level.updateFieldOfView(hero, level.heroFOV);
|
||||
|
||||
int x = hero.pos % level.width();
|
||||
int y = hero.pos / level.width();
|
||||
|
||||
|
||||
//left, right, top, bottom
|
||||
int l = Math.max( 0, x - dist );
|
||||
int r = Math.min( x + dist, level.width() - 1 );
|
||||
int t = Math.max( 0, y - dist );
|
||||
int b = Math.min( y + dist, level.height() - 1 );
|
||||
|
||||
|
||||
int width = r - l + 1;
|
||||
int height = b - t + 1;
|
||||
|
||||
|
||||
int pos = l + t * level.width();
|
||||
|
||||
|
||||
for (int i = t; i <= b; i++) {
|
||||
BArray.or( level.visited, level.heroFOV, pos, width, level.visited );
|
||||
pos+=level.width();
|
||||
}
|
||||
|
||||
|
||||
GameScene.updateFog(l, t, width, height);
|
||||
|
||||
|
||||
if (hero.buff(MindVision.class) != null){
|
||||
for (Mob m : level.mobs.toArray(new Mob[0])){
|
||||
BArray.or( level.visited, level.heroFOV, m.pos - 1 - level.width(), 3, level.visited );
|
||||
|
@ -765,7 +919,7 @@ public class Dungeon {
|
|||
GameScene.updateFog(m.pos, 2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (hero.buff(Awareness.class) != null){
|
||||
for (Heap h : level.heaps.valueList()){
|
||||
BArray.or( level.visited, level.heroFOV, h.pos - 1 - level.width(), 3, level.visited );
|
||||
|
@ -864,7 +1018,7 @@ public class Dungeon {
|
|||
return PathFinder.find( ch.pos, to, passable );
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static int findStep(Char ch, int to, boolean[] pass, boolean[] visible, boolean chars ) {
|
||||
|
||||
if (Dungeon.level.adjacent( ch.pos, to )) {
|
||||
|
@ -889,11 +1043,11 @@ public class Dungeon {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return PathFinder.getStep( ch.pos, to, passable );
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static int flee( Char ch, int from, boolean[] pass, boolean[] visible, boolean chars ) {
|
||||
|
||||
setupPassable();
|
||||
|
@ -916,7 +1070,7 @@ public class Dungeon {
|
|||
step = PathFinder.getStepBack( ch.pos, from, passable );
|
||||
}
|
||||
return step;
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -52,7 +52,7 @@ public class Statistics {
|
|||
public static void reset() {
|
||||
|
||||
goldCollected = 0;
|
||||
deepestFloor = 0;
|
||||
deepestFloor = -1;
|
||||
enemiesSlain = 0;
|
||||
foodEaten = 0;
|
||||
itemsCrafted = 0;
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs;
|
|||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
|
||||
import com.watabou.noosa.Image;
|
||||
|
||||
public class Butter extends FlavourBuff {
|
||||
|
@ -13,10 +12,7 @@ public class Butter extends FlavourBuff {
|
|||
public int pos;
|
||||
public static final float DURATION = 10f;
|
||||
|
||||
@Override
|
||||
public int icon() {
|
||||
return BuffIndicator.BUTTER;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void tintIcon(Image icon) {
|
||||
|
|
|
@ -44,6 +44,8 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.rogue.Smok
|
|||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.warrior.Endure;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.warrior.HeroicLeap;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.warrior.Shockwave;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.custom.testmode.LevelTeleporter;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.custom.testmode.MobPlacer;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Ankh;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.BrokenSeal;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||
|
@ -52,20 +54,34 @@ import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClothArmor;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.CloakOfShadows;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.MasterThievesArmband;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.TalismanOfForesight;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.bags.BookBag;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.bags.KingBag;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.bags.VelvetPouch;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.books.bookslist.BrokenBooks;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.books.bookslist.DeepBloodBooks;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.books.bookslist.GrassKingBooks;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.books.bookslist.IceCityBooks;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.books.bookslist.MagicGirlBooks;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.books.bookslist.NoKingMobBooks;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.books.bookslist.YellowSunBooks;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.food.Food;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.food.FrozenCarpaccio;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.food.MeatPie;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.food.PotionOfLightningShiled;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.lightblack.OilLantern;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.lightblack.OilPotion;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.AlchemicalCatalyst;
|
||||
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.PotionOfLightningShiledX;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLiquidFlame;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLiquidFlameX;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfMindVision;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfPurity;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfStrength;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.PotionOfDragonKingBreath;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.quest.GoldBAo;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfIdentify;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfLullaby;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfMagicMapping;
|
||||
|
@ -73,27 +89,42 @@ import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfRage;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTransmutation;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfUpgrade;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfMysticalEnergy;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfRoseShiled;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.spells.AquaBlast;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.spells.BeaconOfReturning;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.spells.MagicalInfusion;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.stones.StoneOfFlock;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfBlueFuck;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfCorruption;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfFrost;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfGodIce;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfMagicMissile;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfRegrowth;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfScale;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.SpiritBow;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.BlackDog;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Dagger;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.EndingBlade;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.FireFishSword;
|
||||
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.IceSan;
|
||||
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;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WarHammer;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WornShortsword;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingKnife;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.ThrowingStone;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts.Dart;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.plants.AikeLaier;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.plants.Blindweed;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.plants.Firebloom;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.plants.SkyBlueFireBloom;
|
||||
import com.watabou.utils.DeviceCompat;
|
||||
|
||||
public enum HeroClass {
|
||||
|
@ -150,40 +181,37 @@ public enum HeroClass {
|
|||
new MasterThievesArmband().quantity(1).identify().collect();
|
||||
new Dart().quantity(1).identify().collect();
|
||||
|
||||
//new GreenSword().quantity(1).identify().collect();
|
||||
//new SkyShield().quantity(1).identify().collect();
|
||||
//new IceSan().quantity(1).identify().collect();
|
||||
//new GoldBAo().quantity(9999).identify().collect();
|
||||
//new WandOfScale().quantity(1).identify().collect();
|
||||
//new WandOfGodIce().quantity(1).identify().collect();
|
||||
//new PotionOfLightningShiledX().quantity(50).identify().collect();
|
||||
//new LevelTeleporter().quantity(1).identify().collect();
|
||||
//new MobPlacer().quantity(1).identify().collect();
|
||||
//new BlackDog().quantity(1).identify().collect();
|
||||
//new RedBloodMoon().quantity(1).identify().collect();
|
||||
//new KingBag().quantity(1).identify().collect();
|
||||
//new TomeOfMastery().quantity(1).identify().collect();
|
||||
//new PotionOfLiquidFlameX().quantity(100).identify().collect();
|
||||
//new LockSword().quantity(1).identify().collect();
|
||||
//new YellowSunBooks().quantity(1).identify().collect();
|
||||
//new BrokenBooks().quantity(1).identify().collect();
|
||||
//new DeepBloodBooks().quantity(1).identify().collect();
|
||||
//new BookBag().quantity(1).identify().collect();
|
||||
//new HellFireBooks().quantity(1).identify().collect();
|
||||
//new IceCityBooks().quantity(1).identify().collect();
|
||||
//new MagicGirlBooks().quantity(1).identify().collect();
|
||||
//new NoKingMobBooks().quantity(1).identify().collect();
|
||||
//new GrassKingBooks().quantity(100).identify().collect();
|
||||
//new AikeLaier.Seed().quantity(10).identify().collect();
|
||||
//new IceFishSword().quantity(1).identify().collect();
|
||||
//new FireFishSword().quantity(1).identify().collect();
|
||||
//new EndingBlade().quantity(1).identify().collect();
|
||||
//new PotionOfDragonKingBreath().quantity(1).identify().collect();
|
||||
//new WandOfBlueFuck().quantity(1).identify().collect();
|
||||
//new SkyBlueFireBloom.Seed().quantity(10).identify().collect();
|
||||
//new PotionOfLightningShiled().quantity(42).collect();
|
||||
//new StoneOfAffection().quantity(45).identify().collect();
|
||||
//new ScrollOfRoseShiled().quantity(45).identify().collect();
|
||||
new GreenSword().quantity(1).identify().collect();
|
||||
new SkyShield().quantity(1).identify().collect();
|
||||
new IceSan().quantity(1).identify().collect();
|
||||
new GoldBAo().quantity(9999).identify().collect();
|
||||
new WandOfScale().quantity(1).identify().collect();
|
||||
new WandOfGodIce().quantity(1).identify().collect();
|
||||
new PotionOfLightningShiledX().quantity(50).identify().collect();
|
||||
new LevelTeleporter().quantity(1).identify().collect();
|
||||
new MobPlacer().quantity(1).identify().collect();
|
||||
new BlackDog().quantity(1).identify().collect();
|
||||
new RedBloodMoon().quantity(1).identify().collect();
|
||||
new KingBag().quantity(1).identify().collect();
|
||||
new PotionOfLiquidFlameX().quantity(100).identify().collect();
|
||||
new LockSword().quantity(1).identify().collect();
|
||||
new YellowSunBooks().quantity(1).identify().collect();
|
||||
new BrokenBooks().quantity(1).identify().collect();
|
||||
new DeepBloodBooks().quantity(1).identify().collect();
|
||||
new BookBag().quantity(1).identify().collect();
|
||||
new IceCityBooks().quantity(1).identify().collect();
|
||||
new MagicGirlBooks().quantity(1).identify().collect();
|
||||
new NoKingMobBooks().quantity(1).identify().collect();
|
||||
new GrassKingBooks().quantity(100).identify().collect();
|
||||
new AikeLaier.Seed().quantity(10).identify().collect();
|
||||
new IceFishSword().quantity(1).identify().collect();
|
||||
new FireFishSword().quantity(1).identify().collect();
|
||||
new EndingBlade().quantity(1).identify().collect();
|
||||
new PotionOfDragonKingBreath().quantity(1).identify().collect();
|
||||
new WandOfBlueFuck().quantity(1).identify().collect();
|
||||
new SkyBlueFireBloom.Seed().quantity(10).identify().collect();
|
||||
new PotionOfLightningShiled().quantity(42).collect();
|
||||
new ScrollOfRoseShiled().quantity(45).identify().collect();
|
||||
Dungeon.gold = 600000000;
|
||||
hero.STR = 27;
|
||||
hero.lvl = 31;
|
||||
|
@ -427,20 +455,20 @@ public enum HeroClass {
|
|||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public boolean isUnlocked(){
|
||||
//always unlock on debug builds
|
||||
if (DeviceCompat.isDebug()) return true;
|
||||
|
||||
switch (this){
|
||||
case WARRIOR: default:
|
||||
return true;
|
||||
case MAGE:
|
||||
return Badges.isUnlocked(Badges.Badge.UNLOCK_MAGE);
|
||||
return true;
|
||||
case ROGUE:
|
||||
return Badges.isUnlocked(Badges.Badge.UNLOCK_ROGUE);
|
||||
return true;
|
||||
case HUNTRESS:
|
||||
return Badges.isUnlocked(Badges.Badge.UNLOCK_HUNTRESS);
|
||||
return true;
|
||||
case COMINGSOON:
|
||||
return false;
|
||||
//敬请期待
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
package com.shatteredpixel.shatteredpixeldungeon.actors.mobs;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Badges;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Freezing;
|
||||
|
@ -250,6 +251,7 @@ public abstract class Elemental extends Mob {
|
|||
public void die(Object cause) {
|
||||
super.die(cause);
|
||||
if (alignment == Alignment.ENEMY) Dungeon.level.drop( new Embers(), pos ).sprite.drop();
|
||||
Badges.KILL_COLDELE();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -21,7 +21,10 @@
|
|||
|
||||
package com.shatteredpixel.shatteredpixeldungeon.actors.mobs;
|
||||
|
||||
import static com.shatteredpixel.shatteredpixeldungeon.Challenges.ALLBOSS;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.BGMPlayer;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Badges;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Challenges;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
|
@ -37,6 +40,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Charm;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Corruption;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Dread;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hunger;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Preparation;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Sleep;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.SoulMark;
|
||||
|
@ -852,9 +856,16 @@ public abstract class Mob extends Char {
|
|||
|
||||
return desc;
|
||||
}
|
||||
|
||||
|
||||
public void notice() {
|
||||
sprite.showAlert();
|
||||
if (Dungeon.hero.buff(LockedFloor.class) != null) {
|
||||
if (Dungeon.isChallenged(ALLBOSS)) {
|
||||
sprite.showAlert();
|
||||
} else {
|
||||
BGMPlayer.playBoss();
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
public void yell( String str ) {
|
||||
|
|
|
@ -28,14 +28,14 @@ import static com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Sanity.sanit
|
|||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.Ratmogrify;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.SlimePrincessSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.RatSprite;
|
||||
import com.watabou.utils.Bundle;
|
||||
import com.watabou.utils.Random;
|
||||
|
||||
public class Rat extends Mob {
|
||||
|
||||
{
|
||||
spriteClass = SlimePrincessSprite.class;
|
||||
spriteClass = RatSprite.class;
|
||||
|
||||
HP = HT = 8;
|
||||
defenseSkill = 2;
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
|
||||
package com.shatteredpixel.shatteredpixeldungeon.actors.mobs;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Badges;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
|
@ -362,7 +361,7 @@ public class RedNecromancer extends Mob {
|
|||
for (Mob mob : (Iterable<Mob>) Dungeon.level.mobs.clone()) {
|
||||
if (mob instanceof RedNecromancer) {
|
||||
mob.die(cause);
|
||||
Badges.KILL_DEATHRED();
|
||||
//Badges.KILL_DEATHRED();
|
||||
}
|
||||
}
|
||||
super.die(cause);
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
package com.shatteredpixel.shatteredpixeldungeon.actors.mobs;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Badges;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob;
|
||||
|
@ -101,6 +102,7 @@ public class RotHeart extends Mob {
|
|||
public void die(Object cause) {
|
||||
super.die(cause);
|
||||
Dungeon.level.drop( new Rotberry.Seed(), pos ).sprite.drop();
|
||||
Badges.KILL_ROTHEART();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -32,6 +32,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Blindness;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Degrade;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.HalomethaneBurning;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.Chains;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.Pushing;
|
||||
|
@ -278,19 +279,19 @@ public class SlimeKing extends Golem implements Callback {
|
|||
}
|
||||
|
||||
Badges.validateBossSlain();
|
||||
//Badges.KILLSLIMKING();
|
||||
Badges.KILLSLIMKING();
|
||||
yell( Messages.get(this, "defeated") );
|
||||
//for (Mob mob : (Iterable<Mob>)Dungeon.level.mobs.clone()) {
|
||||
// if ( mob instanceof Slime_Lg||
|
||||
// mob instanceof Slime_Qs||
|
||||
// mob instanceof Slime_Sn||
|
||||
// mob instanceof Slime_Sz||
|
||||
// mob instanceof Slime_Lt||
|
||||
// mob instanceof Slime_Red||
|
||||
// mob instanceof Slime_Orange) {
|
||||
// mob.die( cause );
|
||||
// }
|
||||
//}
|
||||
for (Mob mob : (Iterable<Mob>)Dungeon.level.mobs.clone()) {
|
||||
if ( mob instanceof Slime_Lg||
|
||||
mob instanceof Slime_Qs||
|
||||
mob instanceof Slime_Sn||
|
||||
mob instanceof Slime_Sz||
|
||||
mob instanceof Slime_Lt||
|
||||
mob instanceof Slime_Red||
|
||||
mob instanceof Slime_Orange) {
|
||||
mob.die( cause );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -304,11 +305,11 @@ public class SlimeKing extends Golem implements Callback {
|
|||
enemySeen = enemyInFOV;
|
||||
//放风筝必死 恼
|
||||
//140血强制更新玩家血量为1 赋予燃烧 失明 流血 弱化
|
||||
//if (++HP+1 >= 141){
|
||||
// hero.HP = 1;
|
||||
// Buff.affect(hero, HalomethaneBurning.class).reignite(hero);
|
||||
// GLog.b( Messages.get(this, "cus") );
|
||||
//}
|
||||
if (++HP+1 >= 141){
|
||||
hero.HP = 1;
|
||||
Buff.affect(hero, HalomethaneBurning.class).reignite(hero);
|
||||
GLog.b( Messages.get(this, "cus") );
|
||||
}
|
||||
if (!chainsUsed
|
||||
&& enemyInFOV
|
||||
&& !isCharmedBy( enemy )
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
package com.shatteredpixel.shatteredpixeldungeon.items.books.bookslist;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.books.Books;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
|
||||
public class HellFireBooks extends Books {
|
||||
{
|
||||
image = ItemSpriteSheet.FBK;
|
||||
unique = true;
|
||||
}
|
||||
}
|
||||
//package com.shatteredpixel.shatteredpixeldungeon.items.books.bookslist;
|
||||
//
|
||||
//import com.shatteredpixel.shatteredpixeldungeon.items.books.Books;
|
||||
//import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
//
|
||||
//public class HellFireBooks extends Books {
|
||||
// {
|
||||
// image = ItemSpriteSheet.FBK;
|
||||
// unique = true;
|
||||
// }
|
||||
//}
|
||||
|
|
|
@ -22,10 +22,7 @@
|
|||
package com.shatteredpixel.shatteredpixeldungeon.items.potions;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Badges;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Challenges;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Statistics;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Fire;
|
||||
|
@ -49,6 +46,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.PotionOfSto
|
|||
import com.shatteredpixel.shatteredpixeldungeon.journal.Catalog;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.plants.AikeLaier;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.plants.Blindweed;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.plants.Dreamfoil;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.plants.Earthroot;
|
||||
|
@ -57,6 +55,7 @@ import com.shatteredpixel.shatteredpixeldungeon.plants.Firebloom;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.plants.Icecap;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.plants.Plant;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.plants.Rotberry;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.plants.SkyBlueFireBloom;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.plants.Sorrowmoss;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.plants.Starflower;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.plants.Stormvine;
|
||||
|
@ -81,7 +80,7 @@ import java.util.HashSet;
|
|||
public class Potion extends Item {
|
||||
|
||||
public static final String AC_DRINK = "DRINK";
|
||||
|
||||
|
||||
//used internally for potions that can be drunk or thrown
|
||||
public static final String AC_CHOOSE = "CHOOSE";
|
||||
|
||||
|
@ -101,53 +100,55 @@ public class Potion extends Item {
|
|||
put("charcoal",ItemSpriteSheet.POTION_CHARCOAL);
|
||||
put("silver",ItemSpriteSheet.POTION_SILVER);
|
||||
put("ivory",ItemSpriteSheet.POTION_IVORY);
|
||||
put("skyblue",ItemSpriteSheet.POTION_SKYBLUE);
|
||||
put("deepyellow",ItemSpriteSheet.POTION_DEEPYELLOW);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
private static final HashSet<Class<?extends Potion>> mustThrowPots = new HashSet<>();
|
||||
static{
|
||||
mustThrowPots.add(PotionOfToxicGas.class);
|
||||
mustThrowPots.add(PotionOfLiquidFlame.class);
|
||||
mustThrowPots.add(PotionOfParalyticGas.class);
|
||||
mustThrowPots.add(PotionOfFrost.class);
|
||||
|
||||
|
||||
//exotic
|
||||
mustThrowPots.add(PotionOfCorrosiveGas.class);
|
||||
mustThrowPots.add(PotionOfSnapFreeze.class);
|
||||
mustThrowPots.add(PotionOfShroudingFog.class);
|
||||
mustThrowPots.add(PotionOfStormClouds.class);
|
||||
|
||||
|
||||
//also all brews, hardcoded
|
||||
}
|
||||
|
||||
|
||||
private static final HashSet<Class<?extends Potion>> canThrowPots = new HashSet<>();
|
||||
static{
|
||||
canThrowPots.add(AlchemicalCatalyst.class);
|
||||
|
||||
|
||||
canThrowPots.add(PotionOfPurity.class);
|
||||
canThrowPots.add(PotionOfLevitation.class);
|
||||
|
||||
|
||||
//exotic
|
||||
canThrowPots.add(PotionOfCleansing.class);
|
||||
|
||||
|
||||
//elixirs
|
||||
canThrowPots.add(ElixirOfHoneyedHealing.class);
|
||||
}
|
||||
|
||||
|
||||
protected static ItemStatusHandler<Potion> handler;
|
||||
|
||||
|
||||
protected String color;
|
||||
|
||||
|
||||
{
|
||||
stackable = true;
|
||||
defaultAction = AC_DRINK;
|
||||
}
|
||||
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static void initColors() {
|
||||
handler = new ItemStatusHandler<>( (Class<? extends Potion>[])Generator.Category.POTION.classes, colors );
|
||||
}
|
||||
|
||||
|
||||
public static void save( Bundle bundle ) {
|
||||
handler.save( bundle );
|
||||
}
|
||||
|
@ -167,17 +168,17 @@ public class Potion extends Item {
|
|||
}
|
||||
handler.saveClassesSelectively( bundle, classes );
|
||||
}
|
||||
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static void restore( Bundle bundle ) {
|
||||
handler = new ItemStatusHandler<>( (Class<? extends Potion>[])Generator.Category.POTION.classes, colors, bundle );
|
||||
}
|
||||
|
||||
|
||||
public Potion() {
|
||||
super();
|
||||
reset();
|
||||
}
|
||||
|
||||
|
||||
//anonymous potions are always IDed, do not affect ID status,
|
||||
//and their sprite is replaced by a placeholder if they are not known,
|
||||
//useful for items that appear in UIs, or which are only spawned for their effects
|
||||
|
@ -196,7 +197,7 @@ public class Potion extends Item {
|
|||
}
|
||||
setAction();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean collect( Bag container ) {
|
||||
if (super.collect( container )){
|
||||
|
@ -206,7 +207,7 @@ public class Potion extends Item {
|
|||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void setAction(){
|
||||
if (isKnown() && mustThrowPots.contains(this.getClass())) {
|
||||
defaultAction = AC_THROW;
|
||||
|
@ -216,27 +217,27 @@ public class Potion extends Item {
|
|||
defaultAction = AC_DRINK;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ArrayList<String> actions( Hero hero ) {
|
||||
ArrayList<String> actions = super.actions( hero );
|
||||
actions.add( AC_DRINK );
|
||||
return actions;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void execute( final Hero hero, String action ) {
|
||||
|
||||
super.execute( hero, action );
|
||||
|
||||
|
||||
if (action.equals( AC_CHOOSE )){
|
||||
|
||||
|
||||
GameScene.show(new WndUseItem(null, this) );
|
||||
|
||||
|
||||
} else if (action.equals( AC_DRINK )) {
|
||||
|
||||
|
||||
if (isKnown() && mustThrowPots.contains(getClass())) {
|
||||
|
||||
|
||||
GameScene.show(
|
||||
new WndOptions(new ItemSprite(this),
|
||||
Messages.get(Potion.class, "harmful"),
|
||||
|
@ -250,21 +251,21 @@ public class Potion extends Item {
|
|||
}
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
} else {
|
||||
drink( hero );
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void doThrow( final Hero hero ) {
|
||||
|
||||
if (isKnown()
|
||||
&& !mustThrowPots.contains(this.getClass())
|
||||
&& !canThrowPots.contains(this.getClass())) {
|
||||
|
||||
|
||||
GameScene.show(
|
||||
new WndOptions(new ItemSprite(this),
|
||||
Messages.get(Potion.class, "beneficial"),
|
||||
|
@ -278,43 +279,43 @@ public class Potion extends Item {
|
|||
}
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
} else {
|
||||
super.doThrow( hero );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected void drink( Hero hero ) {
|
||||
|
||||
|
||||
detach( hero.belongings.backpack );
|
||||
|
||||
|
||||
hero.spend( TIME_TO_DRINK );
|
||||
hero.busy();
|
||||
apply( hero );
|
||||
|
||||
|
||||
Sample.INSTANCE.play( Assets.Sounds.DRINK );
|
||||
|
||||
|
||||
hero.sprite.operate( hero.pos );
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onThrow( int cell ) {
|
||||
if (Dungeon.level.map[cell] == Terrain.WELL || Dungeon.level.pit[cell]) {
|
||||
|
||||
|
||||
super.onThrow( cell );
|
||||
|
||||
|
||||
} else {
|
||||
|
||||
Dungeon.level.pressCell( cell );
|
||||
shatter( cell );
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void apply( Hero hero ) {
|
||||
shatter( hero.pos );
|
||||
}
|
||||
|
||||
|
||||
public void shatter( int cell ) {
|
||||
if (Dungeon.level.heroFOV[cell]) {
|
||||
GLog.i( Messages.get(Potion.class, "shatter") );
|
||||
|
@ -327,11 +328,11 @@ public class Potion extends Item {
|
|||
public void cast( final Hero user, int dst ) {
|
||||
super.cast(user, dst);
|
||||
}
|
||||
|
||||
|
||||
public boolean isKnown() {
|
||||
return anonymous || (handler != null && handler.isKnown( this ));
|
||||
}
|
||||
|
||||
|
||||
public void setKnown() {
|
||||
if (!anonymous) {
|
||||
if (!isKnown()) {
|
||||
|
@ -344,13 +345,13 @@ public class Potion extends Item {
|
|||
if (p != null) p.setAction();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (Dungeon.hero.isAlive()) {
|
||||
Catalog.setSeen(getClass());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Item identify( boolean byHero ) {
|
||||
super.identify(byHero);
|
||||
|
@ -360,43 +361,43 @@ public class Potion extends Item {
|
|||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String name() {
|
||||
return isKnown() ? super.name() : Messages.get(this, color);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String info() {
|
||||
return isKnown() ? desc() : Messages.get(this, "unknown_desc");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isIdentified() {
|
||||
return isKnown();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isUpgradable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public static HashSet<Class<? extends Potion>> getKnown() {
|
||||
return handler.known();
|
||||
}
|
||||
|
||||
|
||||
public static HashSet<Class<? extends Potion>> getUnknown() {
|
||||
return handler.unknown();
|
||||
}
|
||||
|
||||
|
||||
public static boolean allKnown() {
|
||||
return handler.known().size() == Generator.Category.POTION.classes.length;
|
||||
}
|
||||
|
||||
|
||||
protected int splashColor(){
|
||||
return anonymous ? 0x00AAFF : ItemSprite.pick( image, 5, 9 );
|
||||
}
|
||||
|
||||
|
||||
protected void splash( int cell ) {
|
||||
|
||||
Fire fire = (Fire)Dungeon.level.blobs.get( Fire.class );
|
||||
|
@ -414,7 +415,7 @@ public class Potion extends Item {
|
|||
Splash.at( cell, color, 5 );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int value() {
|
||||
return 30 * quantity;
|
||||
|
@ -426,25 +427,25 @@ public class Potion extends Item {
|
|||
}
|
||||
|
||||
public static class PlaceHolder extends Potion {
|
||||
|
||||
|
||||
{
|
||||
image = ItemSpriteSheet.POTION_HOLDER;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isSimilar(Item item) {
|
||||
return ExoticPotion.regToExo.containsKey(item.getClass())
|
||||
|| ExoticPotion.regToExo.containsValue(item.getClass());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String info() {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static class SeedToPotion extends Recipe {
|
||||
|
||||
|
||||
public static HashMap<Class<?extends Plant.Seed>, Class<?extends Potion>> types = new HashMap<>();
|
||||
static {
|
||||
types.put(Blindweed.Seed.class, PotionOfInvisibility.class);
|
||||
|
@ -452,6 +453,7 @@ public class Potion extends Item {
|
|||
types.put(Earthroot.Seed.class, PotionOfParalyticGas.class);
|
||||
types.put(Fadeleaf.Seed.class, PotionOfMindVision.class);
|
||||
types.put(Firebloom.Seed.class, PotionOfLiquidFlame.class);
|
||||
types.put(SkyBlueFireBloom.Seed.class, PotionOfLiquidFlameX.class);
|
||||
types.put(Icecap.Seed.class, PotionOfFrost.class);
|
||||
types.put(Rotberry.Seed.class, PotionOfStrength.class);
|
||||
types.put(Sorrowmoss.Seed.class, PotionOfToxicGas.class);
|
||||
|
@ -459,14 +461,15 @@ public class Potion extends Item {
|
|||
types.put(Stormvine.Seed.class, PotionOfLevitation.class);
|
||||
types.put(Sungrass.Seed.class, PotionOfHealing.class);
|
||||
types.put(Swiftthistle.Seed.class, PotionOfHaste.class);
|
||||
types.put(AikeLaier.Seed.class, PotionOfLightningShiledX.class);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean testIngredients(ArrayList<Item> ingredients) {
|
||||
if (ingredients.size() != 3) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
for (Item ingredient : ingredients){
|
||||
if (!(ingredient instanceof Plant.Seed
|
||||
&& ingredient.quantity() >= 1
|
||||
|
@ -476,39 +479,39 @@ public class Potion extends Item {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int cost(ArrayList<Item> ingredients) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Item brew(ArrayList<Item> ingredients) {
|
||||
if (!testIngredients(ingredients)) return null;
|
||||
|
||||
|
||||
for (Item ingredient : ingredients){
|
||||
ingredient.quantity(ingredient.quantity() - 1);
|
||||
}
|
||||
|
||||
|
||||
ArrayList<Class<?extends Plant.Seed>> seeds = new ArrayList<>();
|
||||
for (Item i : ingredients) {
|
||||
if (!seeds.contains(i.getClass())) {
|
||||
seeds.add((Class<? extends Plant.Seed>) i.getClass());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Potion result;
|
||||
|
||||
|
||||
if ( (seeds.size() == 2 && Random.Int(4) == 0)
|
||||
|| (seeds.size() == 3 && Random.Int(2) == 0)) {
|
||||
|
||||
|
||||
result = (Potion) Generator.randomUsingDefaults( Generator.Category.POTION );
|
||||
|
||||
|
||||
} else {
|
||||
result = Reflection.newInstance(types.get(Random.element(ingredients).getClass()));
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (seeds.size() == 1){
|
||||
result.identify();
|
||||
}
|
||||
|
@ -518,14 +521,14 @@ public class Potion extends Item {
|
|||
|
||||
result = (Potion) Generator.randomUsingDefaults(Generator.Category.POTION);
|
||||
}
|
||||
|
||||
|
||||
if (result instanceof PotionOfHealing) {
|
||||
Dungeon.LimitedDrops.COOKING_HP.count++;
|
||||
}
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Item sampleOutput(ArrayList<Item> ingredients) {
|
||||
return new WndBag.Placeholder(ItemSpriteSheet.POTION_HOLDER){
|
||||
|
@ -534,7 +537,7 @@ public class Potion extends Item {
|
|||
public String name() {
|
||||
return Messages.get(Potion.SeedToPotion.class, "name");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String info() {
|
||||
return "";
|
||||
|
|
|
@ -32,6 +32,7 @@ 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.PotionOfLiquidFlame;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLiquidFlameX;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfMindVision;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfParalyticGas;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfPurity;
|
||||
|
@ -53,37 +54,40 @@ public class ExoticPotion extends Potion {
|
|||
static{
|
||||
regToExo.put(PotionOfHealing.class, PotionOfShielding.class);
|
||||
exoToReg.put(PotionOfShielding.class, PotionOfHealing.class);
|
||||
|
||||
|
||||
regToExo.put(PotionOfToxicGas.class, PotionOfCorrosiveGas.class);
|
||||
exoToReg.put(PotionOfCorrosiveGas.class, PotionOfToxicGas.class);
|
||||
|
||||
|
||||
regToExo.put(PotionOfStrength.class, PotionOfMastery.class);
|
||||
exoToReg.put(PotionOfMastery.class, PotionOfStrength.class);
|
||||
|
||||
|
||||
regToExo.put(PotionOfFrost.class, PotionOfSnapFreeze.class);
|
||||
exoToReg.put(PotionOfSnapFreeze.class, PotionOfFrost.class);
|
||||
|
||||
|
||||
regToExo.put(PotionOfHaste.class, PotionOfStamina.class);
|
||||
exoToReg.put(PotionOfStamina.class, PotionOfHaste.class);
|
||||
|
||||
|
||||
regToExo.put(PotionOfLiquidFlame.class, PotionOfDragonsBreath.class);
|
||||
exoToReg.put(PotionOfDragonsBreath.class, PotionOfLiquidFlame.class);
|
||||
|
||||
|
||||
regToExo.put(PotionOfLiquidFlameX.class, PotionOfDragonKingBreath.class);
|
||||
exoToReg.put(PotionOfDragonKingBreath.class, PotionOfLiquidFlameX.class);
|
||||
|
||||
regToExo.put(PotionOfInvisibility.class, PotionOfShroudingFog.class);
|
||||
exoToReg.put(PotionOfShroudingFog.class, PotionOfInvisibility.class);
|
||||
|
||||
|
||||
regToExo.put(PotionOfMindVision.class, PotionOfMagicalSight.class);
|
||||
exoToReg.put(PotionOfMagicalSight.class, PotionOfMindVision.class);
|
||||
|
||||
|
||||
regToExo.put(PotionOfLevitation.class, PotionOfStormClouds.class);
|
||||
exoToReg.put(PotionOfStormClouds.class, PotionOfLevitation.class);
|
||||
|
||||
regToExo.put(PotionOfExperience.class, PotionOfDivineInspiration.class);
|
||||
exoToReg.put(PotionOfDivineInspiration.class, PotionOfExperience.class);
|
||||
|
||||
|
||||
regToExo.put(PotionOfExperience.class, PotionOfHolyFuror.class);
|
||||
exoToReg.put(PotionOfHolyFuror.class, PotionOfExperience.class);
|
||||
|
||||
regToExo.put(PotionOfPurity.class, PotionOfCleansing.class);
|
||||
exoToReg.put(PotionOfCleansing.class, PotionOfPurity.class);
|
||||
|
||||
|
||||
regToExo.put(PotionOfParalyticGas.class, PotionOfEarthenArmor.class);
|
||||
exoToReg.put(PotionOfEarthenArmor.class, PotionOfParalyticGas.class);
|
||||
}
|
||||
|
|
|
@ -46,6 +46,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Chilli
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Corrupting;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Elastic;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Grim;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.HaloBlazing;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Kinetic;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Lucky;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Projecting;
|
||||
|
@ -336,7 +337,7 @@ abstract public class Weapon extends KindOfWeapon {
|
|||
public static abstract class Enchantment implements Bundlable {
|
||||
|
||||
private static final Class<?>[] common = new Class<?>[]{
|
||||
Blazing.class, Chilling.class, Kinetic.class, Shocking.class};
|
||||
Blazing.class, Chilling.class, Kinetic.class, Shocking.class, HaloBlazing.class};
|
||||
|
||||
private static final Class<?>[] uncommon = new Class<?>[]{
|
||||
Blocking.class, Blooming.class, Elastic.class,
|
||||
|
|
|
@ -21,9 +21,12 @@
|
|||
|
||||
package com.shatteredpixel.shatteredpixeldungeon.levels;
|
||||
|
||||
import static com.shatteredpixel.shatteredpixeldungeon.Challenges.RLPT;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Blacksmith;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.RedDragon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.painters.CavesPainter;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.painters.Painter;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.Room;
|
||||
|
@ -59,6 +62,17 @@ public class CavesLevel extends RegularLevel {
|
|||
color2 = 0xb9d661;
|
||||
}
|
||||
|
||||
//红龙的试炼
|
||||
@Override
|
||||
protected void createItems() {
|
||||
if (Dungeon.isChallenged(RLPT)) {
|
||||
super.createItems();
|
||||
} else {
|
||||
RedDragon.Quest.spawn(this);
|
||||
super.createItems();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void playLevelMusic() {
|
||||
Music.INSTANCE.playTracks(
|
||||
|
|
|
@ -161,7 +161,7 @@ public class ZeroLevel extends Level {
|
|||
|
||||
|
||||
|
||||
if ( Badges.isUnlocked(Badges.Badge.NYZ_SHOP)){
|
||||
if ( !Badges.isUnlocked(Badges.Badge.NYZ_SHOP)){
|
||||
Nyz npc4= new Nyz();
|
||||
npc4.pos = (this.width * 28 + 7);
|
||||
mobs.add(npc4);
|
||||
|
|
|
@ -126,24 +126,30 @@ public class CrystalPathRoom extends SpecialRoom {
|
|||
Item item;
|
||||
switch (i){
|
||||
case 0: default:
|
||||
item = new Gold(Random.NormalIntRange(5, 12));
|
||||
item = new Gold(Random.NormalIntRange(80, 270));
|
||||
break;
|
||||
case 1:
|
||||
item = Generator.random(Random.oneOf(
|
||||
Generator.Category.STONE,
|
||||
Generator.Category.SEED,
|
||||
Generator.Category.STONE)
|
||||
Generator.Category.SCROLL,
|
||||
Generator.Category.FOOD)
|
||||
);
|
||||
break;
|
||||
case 2:
|
||||
item = Generator.random(Random.oneOf(
|
||||
Generator.Category.POTION,
|
||||
Generator.Category.SCROLL)
|
||||
Generator.Category.WEP_T1,
|
||||
Generator.Category.WEP_T3,
|
||||
Generator.Category.WEP_T5,
|
||||
Generator.Category.RING)
|
||||
);
|
||||
break;
|
||||
case 3:
|
||||
item = Generator.random(Random.oneOf(
|
||||
Generator.Category.WEAPON,
|
||||
Generator.Category.ARMOR)
|
||||
Generator.Category.ARMOR,
|
||||
Generator.Category.STONE,
|
||||
Generator.Category.WAND,
|
||||
Generator.Category.ARTIFACT)
|
||||
);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
package com.shatteredpixel.shatteredpixeldungeon.scenes;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.BGMPlayer;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Badges;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Challenges;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Chrome;
|
||||
|
@ -202,7 +203,7 @@ public class GameScene extends PixelScene {
|
|||
return;
|
||||
}
|
||||
|
||||
Dungeon.level.playLevelMusic();
|
||||
BGMPlayer.playBGMWithDepth();
|
||||
|
||||
SPDSettings.lastClass(Dungeon.hero.heroClass.ordinal());
|
||||
|
||||
|
|
|
@ -5,7 +5,6 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.Flare;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.Archs;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.ExitButton;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.Icons;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextBlock;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
|
||||
import com.watabou.input.PointerEvent;
|
||||
|
@ -24,7 +23,7 @@ public class MLPDAboutScene extends PixelScene {
|
|||
|
||||
private static String TTL_ANSDO() { return Messages.get(MLPDAboutScene.class, "ttl_ansdo");}
|
||||
|
||||
private static String TXT_ANSDO() { return Messages.get(MLPDAboutScene.class, "txt_ansdo") + "\n冷群怪 & 奈亚子 & 被子";}
|
||||
private static String TXT_ANSDO() { return Messages.get(MLPDAboutScene.class, "txt_ansdo") + "\n冷群怪 & 奈亚子 & Delicateloong";}
|
||||
|
||||
private static String LNK_MLPD_SOURCE() { return "https://github.com/AnsdoShip/Magic-Ling-Pixel-Dungeon-Ling";}
|
||||
private static String TXT_MLPD_SOURCE() { return Messages.get(MLPDAboutScene.class,"github");}
|
||||
|
@ -39,7 +38,7 @@ public class MLPDAboutScene extends PixelScene {
|
|||
final float colTop = (Camera.main.height / 2) - (landscape() ? 30 : 90);
|
||||
final float colOffset = landscape() ? colWidth : 0;
|
||||
|
||||
Image ling = Icons.WAND_HOLSTER.get();
|
||||
Image ling = new Image("Ling.png", 0, 0, 16, 16);
|
||||
ling.x = (colWidth - ling.width()) / 2;
|
||||
ling.y = colTop;
|
||||
align( ling );
|
||||
|
|
|
@ -12,7 +12,9 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.StyledButton;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.ChangeInfo;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.ChangeSelection;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.v0_1_X_Changes;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.S_Changes;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.mlpd.vM0_5_X_Changes;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.mlpd.vM0_6_7_X_Changes;
|
||||
import com.watabou.noosa.Camera;
|
||||
import com.watabou.noosa.NinePatch;
|
||||
import com.watabou.noosa.ui.Component;
|
||||
|
@ -60,7 +62,13 @@ public class NewChangesScene extends PixelScene {
|
|||
|
||||
switch (changesSelected){
|
||||
case 0: default:
|
||||
v0_1_X_Changes.addAllChanges(changeInfos);
|
||||
vM0_6_7_X_Changes.addAllChanges(changeInfos);
|
||||
break;
|
||||
case 1:
|
||||
vM0_5_X_Changes.addAllChanges(changeInfos);
|
||||
break;
|
||||
case 2:
|
||||
S_Changes.addAllChanges(changeInfos);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -131,7 +139,7 @@ public class NewChangesScene extends PixelScene {
|
|||
panel.innerHeight() + 2);
|
||||
list.scrollTo(0, fromChangesScene ? posY - list.height() : 0);
|
||||
|
||||
StyledButton btnBeta = new StyledButton(Chrome.Type.TOAST, "0.0.X"){
|
||||
StyledButton btnBeta = new StyledButton(Chrome.Type.TOAST, "0.6.X"){
|
||||
@Override
|
||||
protected void onClick() {
|
||||
super.onClick();
|
||||
|
@ -143,9 +151,37 @@ public class NewChangesScene extends PixelScene {
|
|||
};
|
||||
|
||||
if (changesSelected != 0) btnBeta.textColor( 0xBBBBBB );
|
||||
btnBeta.setRect(list.left()-4f, list.bottom(), panel.width(), changesSelected == 0 ? 19 : 15);
|
||||
btnBeta.setRect(list.left()-4f, list.bottom(), 45, changesSelected == 0 ? 19 : 15);
|
||||
addToBack(btnBeta);
|
||||
|
||||
StyledButton btn0_8 = new StyledButton(Chrome.Type.TOAST, "0.5.X"){
|
||||
@Override
|
||||
protected void onClick() {
|
||||
super.onClick();
|
||||
if (changesSelected != 1) {
|
||||
changesSelected = 1;
|
||||
ShatteredPixelDungeon.seamlessResetScene();
|
||||
}
|
||||
}
|
||||
};
|
||||
if (changesSelected != 1) btn0_8.textColor( 0xBBBBBB );
|
||||
btn0_8.setRect(btnBeta.right()+1, list.bottom(), 45, changesSelected == 1 ? 19 : 15);
|
||||
addToBack(btn0_8);
|
||||
|
||||
StyledButton btn0_7 = new StyledButton(Chrome.Type.TOAST, "0.0-0.4"){
|
||||
@Override
|
||||
protected void onClick() {
|
||||
super.onClick();
|
||||
if (changesSelected != 2) {
|
||||
changesSelected = 2;
|
||||
ShatteredPixelDungeon.seamlessResetScene();
|
||||
}
|
||||
}
|
||||
};
|
||||
if (changesSelected != 2) btn0_7.textColor( 0xBBBBBB );
|
||||
btn0_7.setRect(btn0_8.right() + 1, btn0_8.top(), 45, changesSelected == 2 ? 19 : 15);
|
||||
addToBack(btn0_7);
|
||||
|
||||
Archs archs = new Archs();
|
||||
archs.setSize( Camera.main.width, Camera.main.height );
|
||||
addToBack( archs );
|
||||
|
|
|
@ -220,7 +220,7 @@ public class TitleScene extends PixelScene {
|
|||
StyledButton btnAbout = new StyledButton(GREY_TR, Messages.get(this, "about")){
|
||||
@Override
|
||||
protected void onClick() {
|
||||
ShatteredPixelDungeon.switchNoFade( AboutScene.class );
|
||||
ShatteredPixelDungeon.switchNoFade( AboutSelectScene.class );
|
||||
}
|
||||
};
|
||||
btnAbout.icon(new ItemSprite(ItemSpriteSheet.MAGICGIRLBOOKS, null));
|
||||
|
|
|
@ -38,7 +38,7 @@ public class Updates {
|
|||
private static final long CHECK_DELAY = 1000*60*60; //1 hour
|
||||
|
||||
public static boolean isUpdateable(){
|
||||
return supportsUpdates() && service.isUpdateable();
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean supportsBetaChannel(){
|
||||
|
|
|
@ -359,15 +359,15 @@ public class ItemSpriteSheet {
|
|||
public static final int ARMOR_ROGUE = ARMOR+7;
|
||||
public static final int ARMOR_HUNTRESS = ARMOR+8;
|
||||
static{
|
||||
assignItemRect(ARMOR_CLOTH, 15, 12);
|
||||
assignItemRect(ARMOR_LEATHER, 14, 13);
|
||||
assignItemRect(ARMOR_MAIL, 14, 12);
|
||||
assignItemRect(ARMOR_SCALE, 14, 11);
|
||||
assignItemRect(ARMOR_PLATE, 12, 12);
|
||||
assignItemRect(ARMOR_WARRIOR, 12, 12);
|
||||
assignItemRect(ARMOR_MAGE, 15, 15);
|
||||
assignItemRect(ARMOR_ROGUE, 14, 12);
|
||||
assignItemRect(ARMOR_HUNTRESS, 13, 15);
|
||||
assignItemRect(ARMOR_CLOTH, 14, 14);
|
||||
assignItemRect(ARMOR_LEATHER, 15, 15);
|
||||
assignItemRect(ARMOR_MAIL, 15, 15);
|
||||
assignItemRect(ARMOR_SCALE, 16, 16);
|
||||
assignItemRect(ARMOR_PLATE, 15, 15);
|
||||
assignItemRect(ARMOR_WARRIOR, 16, 16);
|
||||
assignItemRect(ARMOR_MAGE, 16, 16);
|
||||
assignItemRect(ARMOR_ROGUE, 16, 16);
|
||||
assignItemRect(ARMOR_HUNTRESS, 16, 16);
|
||||
}
|
||||
|
||||
//16 free slots
|
||||
|
|
|
@ -25,12 +25,15 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.windows.WndInfoBuff;
|
||||
import com.watabou.gltextures.SmartTexture;
|
||||
import com.watabou.gltextures.TextureCache;
|
||||
import com.watabou.noosa.BitmapText;
|
||||
import com.watabou.noosa.Image;
|
||||
import com.watabou.noosa.TextureFilm;
|
||||
import com.watabou.noosa.audio.Sample;
|
||||
import com.watabou.noosa.tweeners.AlphaTweener;
|
||||
import com.watabou.noosa.ui.Component;
|
||||
|
||||
|
@ -101,25 +104,21 @@ public class BuffIndicator extends Component {
|
|||
public static final int NOINV = 53;
|
||||
public static final int RANDOM = 54;
|
||||
public static final int FIREDIED = 54;
|
||||
public static final int BUTTER = 55;
|
||||
public static final int ROSEBARRIER= 56;
|
||||
public static final int HALOMETHANEBURNING = 57;
|
||||
|
||||
public static final int HALOMETHANEBURNING = 56;
|
||||
public static final int ROSEBARRIER = 57;
|
||||
|
||||
public static final int SIZE = 7;
|
||||
public static final int SIZE_SMALL = 7;
|
||||
public static final int SIZE_LARGE = 16;
|
||||
|
||||
private static BuffIndicator heroInstance;
|
||||
|
||||
private SmartTexture texture;
|
||||
private TextureFilm film;
|
||||
|
||||
private LinkedHashMap<Buff, BuffIcon> buffIcons = new LinkedHashMap<>();
|
||||
private LinkedHashMap<Buff, BuffButton> buffButtons = new LinkedHashMap<>();
|
||||
private boolean needsRefresh;
|
||||
private Char ch;
|
||||
|
||||
private boolean large = false;
|
||||
|
||||
public BuffIndicator(Char ch) {
|
||||
public BuffIndicator( Char ch, boolean large ) {
|
||||
super();
|
||||
|
||||
this.ch = ch;
|
||||
|
@ -138,12 +137,6 @@ public class BuffIndicator extends Component {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createChildren() {
|
||||
texture = TextureCache.get( Assets.Interfaces.BUFFS_SMALL );
|
||||
film = new TextureFilm( texture, SIZE, SIZE );
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void update() {
|
||||
super.update();
|
||||
|
@ -163,11 +156,13 @@ public class BuffIndicator extends Component {
|
|||
}
|
||||
}
|
||||
|
||||
int size = large ? SIZE_LARGE : SIZE_SMALL;
|
||||
|
||||
//remove any icons no longer present
|
||||
for (Buff buff : buffIcons.keySet().toArray(new Buff[0])){
|
||||
for (Buff buff : buffButtons.keySet().toArray(new Buff[0])){
|
||||
if (!newBuffs.contains(buff)){
|
||||
Image icon = buffIcons.get( buff ).icon;
|
||||
icon.origin.set( SIZE / 2f );
|
||||
Image icon = buffButtons.get( buff ).icon;
|
||||
icon.originToCenter();
|
||||
icon.alpha(0.6f);
|
||||
add( icon );
|
||||
add( new AlphaTweener( icon, 0, 0.6f ) {
|
||||
|
@ -183,73 +178,118 @@ public class BuffIndicator extends Component {
|
|||
}
|
||||
} );
|
||||
|
||||
buffIcons.get( buff ).destroy();
|
||||
remove(buffIcons.get( buff ));
|
||||
buffIcons.remove( buff );
|
||||
buffButtons.get( buff ).destroy();
|
||||
remove(buffButtons.get( buff ));
|
||||
buffButtons.remove( buff );
|
||||
}
|
||||
}
|
||||
|
||||
//add new icons
|
||||
for (Buff buff : newBuffs) {
|
||||
if (!buffIcons.containsKey(buff)) {
|
||||
BuffIcon icon = new BuffIcon( buff );
|
||||
if (!buffButtons.containsKey(buff)) {
|
||||
BuffButton icon = new BuffButton(buff, large);
|
||||
add(icon);
|
||||
buffIcons.put( buff, icon );
|
||||
buffButtons.put( buff, icon );
|
||||
}
|
||||
}
|
||||
|
||||
//layout
|
||||
int pos = 0;
|
||||
for (BuffIcon icon : buffIcons.values()){
|
||||
for (BuffButton icon : buffButtons.values()){
|
||||
icon.updateIcon();
|
||||
icon.setRect(x + pos * (SIZE + 2), y, 9, 12);
|
||||
//button areas are slightly oversized, especially on small buttons
|
||||
icon.setRect(x + pos * (size + (large ? 1 : 2)), y, size + (large ? 1 : 2), size + (large ? 0 : 5));
|
||||
PixelScene.align(icon);
|
||||
pos++;
|
||||
}
|
||||
}
|
||||
|
||||
private class BuffIcon extends Button {
|
||||
private static class BuffButton extends IconButton {
|
||||
|
||||
private Buff buff;
|
||||
|
||||
public Image icon;
|
||||
public Image grey;
|
||||
private boolean large;
|
||||
|
||||
public BuffIcon( Buff buff ){
|
||||
super();
|
||||
public Image grey; //only for small
|
||||
public BitmapText text; //only for large
|
||||
|
||||
//TODO for large buffs there is room to have text instead of fading
|
||||
public BuffButton( Buff buff, boolean large ){
|
||||
super( new BuffIcon(buff, large));
|
||||
this.buff = buff;
|
||||
this.large = large;
|
||||
|
||||
icon = new Image( texture );
|
||||
icon.frame( film.get( buff.icon() ) );
|
||||
add( icon );
|
||||
bringToFront(grey);
|
||||
bringToFront(text);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createChildren() {
|
||||
super.createChildren();
|
||||
grey = new Image( TextureCache.createSolid(0xCC666666));
|
||||
add( grey );
|
||||
|
||||
text = new BitmapText(PixelScene.pixelFont);
|
||||
add( text );
|
||||
}
|
||||
|
||||
public void updateIcon(){
|
||||
icon.frame( film.get( buff.icon() ) );
|
||||
buff.tintIcon(icon);
|
||||
((BuffIcon)icon).refresh(buff);
|
||||
//round up to the nearest pixel if <50% faded, otherwise round down
|
||||
float fadeHeight = buff.iconFadePercent() * icon.height();
|
||||
float zoom = (camera() != null) ? camera().zoom : 1;
|
||||
if (fadeHeight < icon.height()/2f){
|
||||
grey.scale.set( icon.width(), (float)Math.ceil(zoom*fadeHeight)/zoom);
|
||||
} else {
|
||||
grey.scale.set( icon.width(), (float)Math.floor(zoom*fadeHeight)/zoom);
|
||||
if (!large) {
|
||||
text.visible = false;
|
||||
float fadeHeight = buff.iconFadePercent() * icon.height();
|
||||
float zoom = (camera() != null) ? camera().zoom : 1;
|
||||
if (fadeHeight < icon.height() / 2f) {
|
||||
grey.scale.set(icon.width(), (float) Math.ceil(zoom * fadeHeight) / zoom);
|
||||
} else {
|
||||
grey.scale.set(icon.width(), (float) Math.floor(zoom * fadeHeight) / zoom);
|
||||
}
|
||||
} else if (!buff.iconTextDisplay().isEmpty()) {
|
||||
grey.visible = false;
|
||||
if (buff.type == Buff.buffType.POSITIVE) text.hardlight(CharSprite.POSITIVE);
|
||||
else if (buff.type == Buff.buffType.NEGATIVE) text.hardlight(CharSprite.NEGATIVE);
|
||||
text.alpha(0.6f);
|
||||
|
||||
text.text(buff.iconTextDisplay());
|
||||
text.measure();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void layout() {
|
||||
super.layout();
|
||||
grey.x = icon.x = this.x+1;
|
||||
grey.y = icon.y = this.y+2;
|
||||
grey.x = icon.x = this.x + (large ? 0 : 1);
|
||||
grey.y = icon.y = this.y + (large ? 0 : 2);
|
||||
|
||||
if (text.width > width()){
|
||||
text.scale.set(PixelScene.align(0.5f));
|
||||
} else {
|
||||
text.scale.set(1f);
|
||||
}
|
||||
text.x = this.x + width() - text.width() - 1;
|
||||
text.y = this.y + width() - text.baseLine() - 2;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onClick() {
|
||||
if (buff.icon() != NONE)
|
||||
GameScene.show(new WndInfoBuff(buff));
|
||||
if (buff.icon() != NONE) GameScene.show(new WndInfoBuff(buff));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPointerDown() {
|
||||
//don't affect buff color
|
||||
Sample.INSTANCE.play( Assets.Sounds.CLICK );
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPointerUp() {
|
||||
//don't affect buff color
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String hoverText() {
|
||||
return Messages.titleCase(buff.toString());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* Copyright (C) 2012-2015 Oleg Dolya
|
||||
*
|
||||
* Shattered Pixel Dungeon
|
||||
* Copyright (C) 2014-2022 Evan Debenham
|
||||
* Copyright (C) 2014-2021 Evan Debenham
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -21,7 +21,6 @@
|
|||
|
||||
package com.shatteredpixel.shatteredpixeldungeon.ui;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.SPDSettings;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||
|
@ -48,12 +47,11 @@ public class GameLog extends Component implements Signal.Listener<String> {
|
|||
|
||||
recreateLines();
|
||||
}
|
||||
|
||||
|
||||
private static ArrayList<String> textsToAdd = new ArrayList<>();
|
||||
|
||||
|
||||
@Override
|
||||
public synchronized void update() {
|
||||
int maxLines = SPDSettings.interfaceSize() > 0 ? 5 : 3;
|
||||
for (String text : textsToAdd){
|
||||
if (length != entries.size()){
|
||||
clear();
|
||||
|
@ -64,12 +62,20 @@ public class GameLog extends Component implements Signal.Listener<String> {
|
|||
lastEntry = null;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
int color = CharSprite.DEFAULT;
|
||||
if (text.startsWith( GLog.POSITIVE )) {
|
||||
text = text.substring( GLog.POSITIVE.length() );
|
||||
color = CharSprite.POSITIVE;
|
||||
} else
|
||||
if (text.startsWith( GLog.BLUETEXT )) {
|
||||
text = text.substring( GLog.BLUETEXT.length() );
|
||||
color = CharSprite.BLUETEXT;
|
||||
} else
|
||||
if (text.startsWith( GLog.PINKTEXT )) {
|
||||
text = text.substring( GLog.PINKTEXT.length() );
|
||||
color = CharSprite.PINKTEXT;
|
||||
} else
|
||||
if (text.startsWith( GLog.NEGATIVE )) {
|
||||
text = text.substring( GLog.NEGATIVE.length() );
|
||||
color = CharSprite.NEGATIVE;
|
||||
|
@ -82,26 +88,26 @@ public class GameLog extends Component implements Signal.Listener<String> {
|
|||
text = text.substring( GLog.HIGHLIGHT.length() );
|
||||
color = CharSprite.NEUTRAL;
|
||||
}
|
||||
|
||||
if (lastEntry != null && color == lastColor && lastEntry.nLines < maxLines) {
|
||||
|
||||
|
||||
if (lastEntry != null && color == lastColor && lastEntry.nLines < MAX_LINES) {
|
||||
|
||||
String lastMessage = lastEntry.text();
|
||||
lastEntry.text( lastMessage.length() == 0 ? text : lastMessage + " " + text );
|
||||
|
||||
|
||||
entries.get( entries.size() - 1 ).text = lastEntry.text();
|
||||
|
||||
|
||||
} else {
|
||||
|
||||
|
||||
lastEntry = PixelScene.renderTextBlock( text, 6 );
|
||||
lastEntry.setHightlighting( false );
|
||||
lastEntry.hardlight( color );
|
||||
lastColor = color;
|
||||
add( lastEntry );
|
||||
|
||||
|
||||
entries.add( new Entry( text, color ) );
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (length > 0) {
|
||||
int nLines;
|
||||
do {
|
||||
|
@ -109,28 +115,28 @@ public class GameLog extends Component implements Signal.Listener<String> {
|
|||
for (int i = 0; i < length-1; i++) {
|
||||
nLines += ((RenderedTextBlock) members.get(i)).nLines;
|
||||
}
|
||||
|
||||
if (nLines > maxLines) {
|
||||
|
||||
if (nLines > MAX_LINES) {
|
||||
RenderedTextBlock r = ((RenderedTextBlock) members.get(0));
|
||||
remove(r);
|
||||
r.destroy();
|
||||
|
||||
|
||||
entries.remove( 0 );
|
||||
}
|
||||
} while (nLines > maxLines);
|
||||
} while (nLines > MAX_LINES);
|
||||
if (entries.isEmpty()) {
|
||||
lastEntry = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!textsToAdd.isEmpty()){
|
||||
layout();
|
||||
textsToAdd.clear();
|
||||
}
|
||||
super.update();
|
||||
}
|
||||
|
||||
|
||||
private synchronized void recreateLines() {
|
||||
for (Entry entry : entries) {
|
||||
lastEntry = PixelScene.renderTextBlock( entry.text, 6 );
|
||||
|
@ -160,6 +166,12 @@ public class GameLog extends Component implements Signal.Listener<String> {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy() {
|
||||
GLog.update.remove( this );
|
||||
super.destroy();
|
||||
}
|
||||
|
||||
private static class Entry {
|
||||
public String text;
|
||||
public int color;
|
||||
|
@ -171,6 +183,5 @@ public class GameLog extends Component implements Signal.Listener<String> {
|
|||
|
||||
public static void wipe() {
|
||||
entries.clear();
|
||||
textsToAdd.clear();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -177,7 +177,7 @@ public class StatusPane extends Component {
|
|||
level.hardlight( 0xFFFFAA );
|
||||
add( level );
|
||||
|
||||
buffs = new BuffIndicator( Dungeon.hero);
|
||||
buffs = new BuffIndicator( Dungeon.hero,large);
|
||||
add( buffs );
|
||||
|
||||
busy = new BusyIndicator();
|
||||
|
|
|
@ -45,36 +45,11 @@ import java.util.ArrayList;
|
|||
public class v1_X_Changes {
|
||||
|
||||
public static void addAllChanges( ArrayList<ChangeInfo> changeInfos ){
|
||||
add_Coming_Soon(changeInfos);
|
||||
add_v1_2_Changes(changeInfos);
|
||||
add_v1_1_Changes(changeInfos);
|
||||
add_v1_0_Changes(changeInfos);
|
||||
}
|
||||
|
||||
public static void add_Coming_Soon( ArrayList<ChangeInfo> changeInfos ) {
|
||||
|
||||
ChangeInfo changes = new ChangeInfo("Coming Soon", true, "");
|
||||
changes.hardlight(0xCCCCCC);
|
||||
changeInfos.add(changes);
|
||||
|
||||
changes.addButton( new ChangeButton(Icons.get(Icons.SHPX), "Overview",
|
||||
"The next Shattered update will be v1.3.0! Like v1.2.0, I'm aiming for v1.3.0 to be an update that focused on a variety of smaller improvements and additions. In particular I want this to be a smaller and faster update so that I can respond to the reception the game gets after the Steam release. That being said, I do hope to fulfill some long-requested feature additions with v1.3.0!\n\n" +
|
||||
"Ideally I'll be sharing more info on v1.3.0 sometime around the end of April or beginning of May."));
|
||||
|
||||
changes.addButton( new ChangeButton(Icons.get(Icons.RANKINGS), "Seeded runs!",
|
||||
"The most significant addition in v1.3.0 will be support for custom seeded runs, and possibly the addition of dailies/weeklies as well! One thing worth noting is that this update will not include online leaderboards for daily/weekly runs due to technical limitations, but I will be open to adding them in the future."));
|
||||
|
||||
changes.addButton( new ChangeButton(Icons.get(Icons.DISPLAY_LAND), "UI/UX Improvements",
|
||||
"I also plan to make more improvements to the game's UI/UX with an emphasis on Steam users. This won't be the core focus like it was in v1.3.0, but expect more interface improvements, tweaks based on feedback, and possibly some additions to help controller users better play with their more limited button count."));
|
||||
|
||||
changes.addButton( new ChangeButton(Icons.get(Icons.PREFS), Messages.get(ChangesScene.class, "misc"),
|
||||
"v1.3.0 will also include a variety of miscellaneous adjustments. This will include balance tweaks to items and game mechanics, and maybe another item rework. I'd like to also include some more badges focused around more specific accomplishments!"));
|
||||
|
||||
changes.addButton( new ChangeButton(Icons.get(Icons.ENTER), "Technical Improvements",
|
||||
"Finally, I also hope to make some behind the scenes technical improvements to the way the game handles loading and storing floors of the dungeon. I plan to use this functionality in the near future to give quests their own sub-levels!"));
|
||||
|
||||
}
|
||||
|
||||
public static void add_v1_2_Changes( ArrayList<ChangeInfo> changeInfos ) {
|
||||
ChangeInfo changes = new ChangeInfo("v1.2", true, "");
|
||||
changes.hardlight(Window.TITLE_COLOR);
|
||||
|
|
|
@ -51,7 +51,7 @@ public class WndInfoMob extends WndTitledMessage {
|
|||
|
||||
public MobTitle( Mob mob ) {
|
||||
|
||||
name = PixelScene.renderTextBlock( Messages.titleCase( mob.name() )+"("+mob.HP+"/"+mob.HT+")", 9 );
|
||||
name = PixelScene.renderTextBlock( Messages.titleCase( mob.name() )+"("+mob.HP+"/"+mob.HT+")", 6 );
|
||||
name.hardlight( TITLE_COLOR );
|
||||
add( name );
|
||||
|
||||
|
@ -72,7 +72,7 @@ public class WndInfoMob extends WndTitledMessage {
|
|||
health.level(mob);
|
||||
add( health );
|
||||
|
||||
buffs = new BuffIndicator(mob);
|
||||
buffs = new BuffIndicator(mob,false);
|
||||
add( buffs );
|
||||
}
|
||||
|
||||
|
@ -95,8 +95,8 @@ public class WndInfoMob extends WndTitledMessage {
|
|||
infoB.setRect(image.width() + GAP, info.bottom() + GAP, w, infoB.height());
|
||||
|
||||
buffs.setPos(
|
||||
name.right() + GAP-1,
|
||||
name.bottom() - BuffIndicator.SACRIFICE-2
|
||||
name.right() + GAP-1,
|
||||
name.bottom() - BuffIndicator.SIZE_SMALL-2
|
||||
);
|
||||
|
||||
height = infoB.bottom();
|
||||
|
|
|
@ -53,25 +53,25 @@ import com.watabou.noosa.ui.Component;
|
|||
import java.util.Locale;
|
||||
|
||||
public class WndRanking extends WndTabbed {
|
||||
|
||||
|
||||
private static final int WIDTH = 115;
|
||||
private static final int HEIGHT = 144;
|
||||
|
||||
|
||||
private static Thread thread;
|
||||
private String error = null;
|
||||
|
||||
|
||||
private Image busy;
|
||||
|
||||
|
||||
public WndRanking( final Rankings.Record rec ) {
|
||||
|
||||
|
||||
super();
|
||||
resize( WIDTH, HEIGHT );
|
||||
|
||||
|
||||
if (thread != null){
|
||||
hide();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
thread = new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
@ -90,14 +90,14 @@ public class WndRanking extends WndTabbed {
|
|||
busy.x = (WIDTH - busy.width) / 2;
|
||||
busy.y = (HEIGHT - busy.height) / 2;
|
||||
add( busy );
|
||||
|
||||
|
||||
thread.start();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
super.update();
|
||||
|
||||
|
||||
if (thread != null && !thread.isAlive() && busy != null) {
|
||||
if (error == null) {
|
||||
remove( busy );
|
||||
|
@ -113,42 +113,42 @@ public class WndRanking extends WndTabbed {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void destroy() {
|
||||
super.destroy();
|
||||
thread = null;
|
||||
}
|
||||
|
||||
|
||||
private void createControls() {
|
||||
|
||||
|
||||
Icons[] icons =
|
||||
{Icons.RANKINGS, Icons.BADGES};
|
||||
{Icons.RANKINGS, Icons.BACKPACK_LRG, Icons.BADGES};
|
||||
Group[] pages =
|
||||
{new StatsTab(), new ItemsTab(), new BadgesTab()};
|
||||
|
||||
{new StatsTab(), new ItemsTab(), new BadgesTab()};
|
||||
|
||||
for (int i=0; i < pages.length; i++) {
|
||||
|
||||
|
||||
add( pages[i] );
|
||||
|
||||
|
||||
Tab tab = new RankingTab( icons[i], pages[i] );
|
||||
add( tab );
|
||||
}
|
||||
|
||||
layoutTabs();
|
||||
|
||||
|
||||
select( 0 );
|
||||
}
|
||||
|
||||
private class RankingTab extends IconTab {
|
||||
|
||||
|
||||
private Group page;
|
||||
|
||||
|
||||
public RankingTab( Icons icon, Group page ) {
|
||||
super( Icons.get(icon) );
|
||||
this.page = page;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void select( boolean value ) {
|
||||
super.select( value );
|
||||
|
@ -157,23 +157,23 @@ public class WndRanking extends WndTabbed {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private class StatsTab extends Group {
|
||||
|
||||
private int GAP = 4;
|
||||
|
||||
|
||||
public StatsTab() {
|
||||
super();
|
||||
|
||||
|
||||
String heroClass = Dungeon.hero.className();
|
||||
|
||||
|
||||
IconTitle title = new IconTitle();
|
||||
title.icon( HeroSprite.avatar( Dungeon.hero.heroClass, Dungeon.hero.tier() ) );
|
||||
title.label( Messages.get(this, "title", Dungeon.hero.lvl, heroClass ).toUpperCase( Locale.ENGLISH ) );
|
||||
title.color(Window.TITLE_COLOR);
|
||||
title.setRect( 0, 0, WIDTH, 0 );
|
||||
add( title );
|
||||
|
||||
|
||||
float pos = title.bottom() + GAP;
|
||||
|
||||
RedButton btnTalents = new RedButton( Messages.get(this, "talents") ){
|
||||
|
@ -230,46 +230,46 @@ public class WndRanking extends WndTabbed {
|
|||
else if (strBonus < 0) pos = statSlot(this, Messages.get(this, "str"), Dungeon.hero.STR + " - " + -strBonus, pos );
|
||||
else pos = statSlot(this, Messages.get(this, "str"), Integer.toString(Dungeon.hero.STR), pos);
|
||||
pos = statSlot( this, Messages.get(this, "health"), Integer.toString( Dungeon.hero.HT ), pos );
|
||||
|
||||
|
||||
pos += GAP;
|
||||
|
||||
|
||||
pos = statSlot( this, Messages.get(this, "duration"), Integer.toString( (int)Statistics.duration ), pos );
|
||||
|
||||
|
||||
pos += GAP;
|
||||
|
||||
|
||||
pos = statSlot( this, Messages.get(this, "depth"), Integer.toString( Statistics.deepestFloor ), pos );
|
||||
pos = statSlot( this, Messages.get(this, "enemies"), Integer.toString( Statistics.enemiesSlain ), pos );
|
||||
pos = statSlot( this, Messages.get(this, "gold"), Integer.toString( Statistics.goldCollected ), pos );
|
||||
|
||||
|
||||
pos += GAP;
|
||||
|
||||
|
||||
pos = statSlot( this, Messages.get(this, "food"), Integer.toString( Statistics.foodEaten ), pos );
|
||||
pos = statSlot( this, Messages.get(this, "alchemy"), Integer.toString( Statistics.itemsCrafted ), pos );
|
||||
pos = statSlot( this, Messages.get(this, "ankhs"), Integer.toString( Statistics.ankhsUsed ), pos );
|
||||
}
|
||||
|
||||
|
||||
private float statSlot( Group parent, String label, String value, float pos ) {
|
||||
|
||||
|
||||
RenderedTextBlock txt = PixelScene.renderTextBlock( label, 7 );
|
||||
txt.setPos(0, pos);
|
||||
parent.add( txt );
|
||||
|
||||
|
||||
txt = PixelScene.renderTextBlock( value, 7 );
|
||||
txt.setPos(WIDTH * 0.7f, pos);
|
||||
PixelScene.align(txt);
|
||||
parent.add( txt );
|
||||
|
||||
|
||||
return pos + GAP + txt.height();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private class ItemsTab extends Group {
|
||||
|
||||
|
||||
private float pos;
|
||||
|
||||
|
||||
public ItemsTab() {
|
||||
super();
|
||||
|
||||
|
||||
Belongings stuff = Dungeon.hero.belongings;
|
||||
if (stuff.weapon != null) {
|
||||
addItem( stuff.weapon );
|
||||
|
@ -312,21 +312,21 @@ public class WndRanking extends WndTabbed {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void addItem( Item item ) {
|
||||
ItemButton slot = new ItemButton( item );
|
||||
slot.setRect( 0, pos, width, ItemButton.HEIGHT );
|
||||
add( slot );
|
||||
|
||||
|
||||
pos += slot.height() + 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private class BadgesTab extends Group {
|
||||
|
||||
|
||||
public BadgesTab() {
|
||||
super();
|
||||
|
||||
|
||||
camera = WndRanking.this.camera;
|
||||
|
||||
Component badges;
|
||||
|
@ -341,21 +341,21 @@ public class WndRanking extends WndTabbed {
|
|||
}
|
||||
|
||||
private class ItemButton extends Button {
|
||||
|
||||
|
||||
public static final int HEIGHT = 23;
|
||||
|
||||
|
||||
private Item item;
|
||||
|
||||
|
||||
private ItemSlot slot;
|
||||
private ColorBlock bg;
|
||||
private RenderedTextBlock name;
|
||||
|
||||
|
||||
public ItemButton( Item item ) {
|
||||
|
||||
|
||||
super();
|
||||
|
||||
this.item = item;
|
||||
|
||||
|
||||
slot.item( item );
|
||||
if (item.cursed && item.cursedKnown) {
|
||||
bg.ra = +0.2f;
|
||||
|
@ -365,30 +365,30 @@ public class WndRanking extends WndTabbed {
|
|||
bg.ba = 0.1f;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void createChildren() {
|
||||
|
||||
|
||||
bg = new ColorBlock( 28, HEIGHT, 0x9953564D );
|
||||
add( bg );
|
||||
|
||||
|
||||
slot = new ItemSlot();
|
||||
add( slot );
|
||||
|
||||
|
||||
name = PixelScene.renderTextBlock( 7 );
|
||||
add( name );
|
||||
|
||||
|
||||
super.createChildren();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void layout() {
|
||||
bg.x = x;
|
||||
bg.y = y;
|
||||
|
||||
|
||||
slot.setRect( x, y, 28, HEIGHT );
|
||||
PixelScene.align(slot);
|
||||
|
||||
|
||||
name.maxWidth((int)(width - slot.width() - 2));
|
||||
name.text(Messages.titleCase(item.name()));
|
||||
name.setPos(
|
||||
|
@ -396,20 +396,20 @@ public class WndRanking extends WndTabbed {
|
|||
y + (height - name.height()) / 2
|
||||
);
|
||||
PixelScene.align(name);
|
||||
|
||||
|
||||
super.layout();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onPointerDown() {
|
||||
bg.brightness( 1.5f );
|
||||
Sample.INSTANCE.play( Assets.Sounds.CLICK, 0.7f, 0.7f, 1.2f );
|
||||
}
|
||||
|
||||
|
||||
protected void onPointerUp() {
|
||||
bg.brightness( 1.0f );
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onClick() {
|
||||
Game.scene().add( new WndInfoItem( item ) );
|
||||
|
|
|
@ -632,17 +632,6 @@ public class WndSettings extends WndTabbed {
|
|||
};
|
||||
ClassUI.checked(SPDSettings.ClassUI());
|
||||
add(ClassUI);
|
||||
|
||||
ClassSkin = new CheckBox( Messages.get(this, "pc_ui") ) {
|
||||
@Override
|
||||
protected void onClick() {
|
||||
super.onClick();
|
||||
SPDSettings.PCTestUI(checked());
|
||||
}
|
||||
};
|
||||
ClassSkin.checked(SPDSettings.PCTestUI());
|
||||
add(ClassSkin);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -658,25 +647,10 @@ public class WndSettings extends WndTabbed {
|
|||
|
||||
if (width > 200){
|
||||
ClassUI.setRect(0, bottom, width/2-GAP/2, SLIDER_HEIGHT);
|
||||
//横屏布局
|
||||
if(Game.scene()!=null && Game.scene().getClass() == GameScene.class) {
|
||||
ClassSkin.setRect(ClassUI.left(), ClassUI.bottom(), width-1, SLIDER_HEIGHT);
|
||||
} else {
|
||||
ClassSkin.setRect(ClassUI.left(), ClassUI.bottom(), width-1, SLIDER_HEIGHT);
|
||||
}
|
||||
//竖屏布局
|
||||
} else {
|
||||
//quickslots.setRect(0, bottom + GAP, width, SLIDER_HEIGHT);
|
||||
ClassUI.setRect(0, bottom + GAP, width, SLIDER_HEIGHT);
|
||||
//GameScene
|
||||
if(Game.scene()!=null && Game.scene().getClass() == GameScene.class){
|
||||
//quickslots.setRect(ClassUI.left(), ClassUI.bottom(), width - GAP / 2, SLIDER_HEIGHT);
|
||||
ClassSkin.setRect(0, ClassUI.bottom(), width-1, SLIDER_HEIGHT);
|
||||
} else {
|
||||
//quickslots.setRect(0, 9000 + GAP, width, SLIDER_HEIGHT);
|
||||
ClassSkin.setRect(0, 9000 + GAP, width, SLIDER_HEIGHT);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
height = ClassUI.bottom();
|
||||
|
|
|
@ -22,9 +22,9 @@
|
|||
package com.shatteredpixel.shatteredpixeldungeon.windows;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Badges;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Chrome;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Wandmaker;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.quest.CorpseDust;
|
||||
|
@ -69,6 +69,7 @@ public class WndWandmaker extends Window {
|
|||
String msg = "";
|
||||
if (item instanceof CorpseDust){
|
||||
msg = Messages.get(this, "dust");
|
||||
Badges.GET_SC();
|
||||
} else if (item instanceof Embers){
|
||||
msg = Messages.get(this, "ember");
|
||||
} else if (item instanceof Rotberry.Seed){
|
||||
|
|
|
@ -21,54 +21,93 @@
|
|||
|
||||
package com.shatteredpixel.shatteredpixeldungeon.services.news;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.Net;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import com.badlogic.gdx.utils.XmlReader;
|
||||
import com.watabou.noosa.Game;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class DebugNews extends NewsService {
|
||||
|
||||
@Override
|
||||
public void checkForArticles(boolean useMetered, boolean forceHTTPS, NewsResultCallback callback) {
|
||||
public void checkForArticles(boolean useMetered, boolean preferHTTPS, NewsResultCallback callback) {
|
||||
|
||||
if (!useMetered && !Game.platform.connectedToUnmeteredNetwork()){
|
||||
callback.onConnectionFailed();
|
||||
return;
|
||||
}
|
||||
|
||||
//turn on to test connection failure
|
||||
if (false){
|
||||
callback.onConnectionFailed();
|
||||
return;
|
||||
Net.HttpRequest httpGet = new Net.HttpRequest(Net.HttpMethods.GET);
|
||||
if (preferHTTPS) {
|
||||
httpGet.setUrl("https://lingasdj.github.io/MagicLingPixelDungeon_Sing/xml/news.xml");
|
||||
} else {
|
||||
httpGet.setUrl("https://lingasdj.github.io/MagicLingPixelDungeon_Sing/xml/news.xml");
|
||||
}
|
||||
|
||||
boolean testUnread = false;
|
||||
//start placing articles either at the current time (if testing unread count)
|
||||
// or 10 days after 1st jan 1970
|
||||
long startTime = testUnread ? Game.realTime : 10*1000*60*60*24;
|
||||
Gdx.net.sendHttpRequest(httpGet, new Net.HttpResponseListener() {
|
||||
@Override
|
||||
public void handleHttpResponse(Net.HttpResponse httpResponse) {
|
||||
ArrayList<NewsArticle> articles = new ArrayList<>();
|
||||
XmlReader reader = new XmlReader();
|
||||
XmlReader.Element xmlDoc = reader.parse(httpResponse.getResultAsStream());
|
||||
|
||||
ArrayList<NewsArticle> articles = new ArrayList<>();
|
||||
for (int i = 0; i < 10; i++){
|
||||
NewsArticle article = new NewsArticle();
|
||||
article.title = "TEST ARTICLE " + i;
|
||||
article.summary = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do " +
|
||||
"eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim " +
|
||||
"veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea " +
|
||||
"commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit " +
|
||||
"esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat " +
|
||||
"non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
|
||||
// 10 to 1 days after Jan 1st 1970
|
||||
article.date = new Date(startTime - (i)*1000*60*60*24);
|
||||
SimpleDateFormat dateParser = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
|
||||
|
||||
article.URL = "http://www.google.com";
|
||||
for (XmlReader.Element xmlArticle : xmlDoc.getChildrenByName("entry")){
|
||||
NewsArticle article = new NewsArticle();
|
||||
article.title = xmlArticle.get("title");
|
||||
try {
|
||||
article.date = dateParser.parse(xmlArticle.get("published"));
|
||||
} catch (ParseException e) {
|
||||
Game.reportException(e);
|
||||
}
|
||||
article.summary = xmlArticle.get("summary");
|
||||
article.URL = xmlArticle.getChildByName("link").getAttribute("href");
|
||||
if (!preferHTTPS) {
|
||||
article.URL = article.URL.replace("https://", "http://");
|
||||
}
|
||||
|
||||
//debug icon!
|
||||
article.icon = "sprites/spinner.png, 144, 0, 16, 16";
|
||||
Pattern versionCodeMatcher = Pattern.compile("v[0-9]+");
|
||||
try {
|
||||
Array<XmlReader.Element> properties = xmlArticle.getChildrenByName("category");
|
||||
for (XmlReader.Element prop : properties){
|
||||
String propVal = prop.getAttribute("term");
|
||||
if (propVal.startsWith("SHPD_ICON")){
|
||||
Matcher m = versionCodeMatcher.matcher(propVal);
|
||||
if (m.find()) {
|
||||
int iconGameVer = Integer.parseInt(m.group().substring(1));
|
||||
if (iconGameVer <= Game.versionCode) {
|
||||
article.icon = propVal.substring(propVal.indexOf(": ") + 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e){
|
||||
article.icon = null;
|
||||
}
|
||||
|
||||
articles.add(article);
|
||||
}
|
||||
articles.add(article);
|
||||
}
|
||||
callback.onArticlesFound(articles);
|
||||
}
|
||||
|
||||
callback.onArticlesFound(articles);
|
||||
@Override
|
||||
public void failed(Throwable t) {
|
||||
callback.onConnectionFailed();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancelled() {
|
||||
callback.onConnectionFailed();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -40,7 +40,7 @@ public class GitHubUpdates extends UpdateService {
|
|||
|
||||
@Override
|
||||
public boolean isUpdateable() {
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|