From 53ef0ade4fab659102ca37f6928307c3e4a5760e Mon Sep 17 00:00:00 2001 From: LingASDJ <2735951230@qq.com> Date: Thu, 8 Jun 2023 01:53:38 +0800 Subject: [PATCH] Update V0.6.3.0-Beta2.0 --- build.gradle | 4 +- core/src/main/assets/interfaces/badges.png | Bin 19681 -> 20582 bytes .../assets/messages/items/items.properties | 23 +++++---- .../main/assets/messages/misc/misc.properties | 15 ++++++ .../src/main/assets/messages/ui/ui.properties | 2 + .../messages/windows/windows.properties | 1 + .../shatteredpixeldungeon/Badges.java | 36 ++++++++++++++ .../shatteredpixeldungeon/Statistics.java | 11 +++- .../actors/hero/HeroClass.java | 10 +++- .../actors/mobs/npcs/Nyz.java | 12 ++--- .../items/MainBooks.java | 4 +- .../items/bags/BookBag.java | 12 ++++- .../items/books/Books.java | 47 ++++++++++++++++-- .../items/books/bookslist/BrokenBooks.java | 2 +- .../items/books/bookslist/DeepBloodBooks.java | 2 +- .../items/books/bookslist/DimandBook.java | 2 +- .../items/books/bookslist/GrassKingBooks.java | 7 ++- .../items/books/bookslist/IceCityBooks.java | 2 +- .../items/books/bookslist/MagicGirlBooks.java | 2 +- .../items/books/bookslist/NoKingMobBooks.java | 3 +- .../items/books/bookslist/TestBooks.java | 17 ++++++- .../items/books/bookslist/YellowSunBooks.java | 2 +- .../levels/ForestBossLevel.java | 2 +- .../levels/rooms/special/NxhyShopRoom.java | 2 + .../rooms/special/NyzBombAndBooksRoom.java | 13 ++--- .../ui/changelist/mlpd/vM0_6_7_X_Changes.java | 36 ++++++++++++-- .../windows/WndBook.java | 17 ++----- .../windows/WndKingShop.java | 9 +++- .../windows/WndNyzShop.java | 2 +- 29 files changed, 233 insertions(+), 64 deletions(-) diff --git a/build.gradle b/build.gradle index ade67fd85..0a0774424 100644 --- a/build.gradle +++ b/build.gradle @@ -17,8 +17,8 @@ allprojects { appName = 'Magic Ling Pixel Dungeon' appPackageName = 'com.ansdomagiclingpixeldungeon.ling' - appVersionCode =900901 - appVersionName = '0.6.3.0-Beta1.5' + appVersionCode =900902 + appVersionName = '0.6.3.0-Beta2.0' appJavaCompatibility = JavaVersion.VERSION_11 diff --git a/core/src/main/assets/interfaces/badges.png b/core/src/main/assets/interfaces/badges.png index 76cb6d3bc6e3f3ef2934a9c6d81104a50507f102..d3460533652686ae96fd1e435c6675be1a128f57 100644 GIT binary patch literal 20582 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 JPDHLkV1il%V6y-K literal 19681 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 LNkvXXu0mjf7>}uH diff --git a/core/src/main/assets/messages/items/items.properties b/core/src/main/assets/messages/items/items.properties index 4581d9be6..b0dc25796 100644 --- a/core/src/main/assets/messages/items/items.properties +++ b/core/src/main/assets/messages/items/items.properties @@ -202,7 +202,7 @@ items.weapon.melee.magictorch$magiclight.desc=来自于魔法火把中提供的 items.books.bookslist.hellfirebooks.name=《浊焰事件》 items.books.bookslist.hellfirebooks.desc=燃尽了一切,真理在何处显存。300年前的地牢大火事件让如今这个地牢变成了怎样的地狱?\n\n你已经见过我妹妹了吧?冒险者。那么,你为此前来的目的,是准备拯救这一切吗。如果是的话,有一点我不得不承认。大火事件确实由我而起,我辜负了她对我的信任。但其实,我们本来就不是真正意义上存在的。我知道,总会有冒险者来到这里,我在这里留下了这本用我力量做成的书。你还想了解大火的真相。那就勇敢的面对我吧!翻开书页,聚精会神,我会在浊焰地狱等着你! -items.books.bookslist.hellfirebooks.author=--浊焰魔女 +items.books.bookslist.hellfirebooks.author=--圣火魔女 items.books.bookslist.hellfirebooks.ac_read=尚未完成 items.weapon.melee.icefishsword.name=尚方宝剑 @@ -222,50 +222,52 @@ items.books.bookslist.indexbooks.desc=如果你是第一次游玩魔绫的像素 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.desc=此册编撰者以鲜血与性命示忠于原_地表势力_的领头者_朝阳教团_并承诺绝无欺骗 \n\n……但是在300年前的_那件事_发生后,_朝阳教团_因管理不利而渐渐衰落,从此便销声匿迹了,它原有的地位与名誉被_深渊魔都_和_极地圣境_两方势力所分食。\n\n两方的_管理者_携手封印了地牢的最深处的入口,并且对她进行了_水晶力量抑制_,于Dr.BloodMoon纪年17年她封印在了金城水晶实验室。\n\n……距封印之日已过去三百余年,随着她_力量的增强_,_水晶_已经开始_极不稳定_……\n\n……Dr.BloodMoon纪年326年四月中旬,一名_朝阳教团的残支_要求接见管理者……并且声称,朝阳教团可以帮助他们彻底_杀死她_…… 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.desc=这是坐拥于曾经的寒冰地带的一座大型城市,似乎已经驱走了严寒的危机,而我现在就站在这里。\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.desc=本传仅作参考,可能包含大量个人想法。\n\n……魔都来了一位少女,她成功地将魔都再次复兴。……三天后,地牢调查团发来一则关于地牢深处强烈魔力流的报告。\n\n地牢第???层:\n魔力强度:DEAD\n采取措施:无\n危险评估:DEADNOBACK\n……以上评估报告仅供参考。 +items.books.bookslist.deepbloodbooks.author=--作者:_Dr.血月博士_ 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.desc=1.无论是天灾还是人祸,请不要感到害怕。我们有着足够的实力保护你们。\n\n2.请居民不要靠近_森色之庭_,那里是_地表势力_最高层的会议室\n\n……5.请带领刚出生的婴儿到_源色之泉_处进行洗礼,以获取魔力。\n\n……7.外来旅者或是移民请自觉忽略一切你所认为的_高傲、自大、冷酷、无情、自私、不平等_,在这里发生的一切都是正常的,不要试图去做出改变,学会融入我们。\n\n8.其他条例请等待_第十三次高层会议_的补充。 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.desc=上面沾染了水渍与污垢,鲜红的“火灾案”几个大字以及标注着调查人员的表格也似乎是有点褪色了。\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.desc=(前面的几页似乎是被撕掉了)……这是大火后的第三天,我像往常一样推开了窗户。\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.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=你阅读了书籍,一股力量油然而生! @@ -284,6 +286,9 @@ items.books.playbookslist.deyizibooks.name=《我们是柏林联合》 items.books.playbookslist.deyizibooks.desc=:在山的那边,海的那边,有一座小球场。\n球场里有一群纯粹到不敢相信的踢球的人,他们就是柏林联合,即使我们刚刚进去甲级联赛,但是我们有一往无前的气势。\n旅行者,愿柏林联合的钢铁意志保佑你。 items.books.playbookslist.deyizibooks.author=--作者:_Pedro_ +items.mainbooks.mustread=书本的厚重感让你不敢轻易翻开,但若是不翻开,你将无法获得它的力量。 +items.mainbooks.readed=你已经阅读过这本书了。所以你不再需要再看这本书的内容了。 +items.mainbooks.no=就当你准备阅读的时候,一道力量让你无法翻阅书籍,看来有人希望你将书籍带出地牢,而不是阅读完它们。 #MLPD items.scrolls.exotic.scrollofroseshiled.null=玫瑰秘卷 diff --git a/core/src/main/assets/messages/misc/misc.properties b/core/src/main/assets/messages/misc/misc.properties index 84c922a3d..94baac8a4 100644 --- a/core/src/main/assets/messages/misc/misc.properties +++ b/core/src/main/assets/messages/misc/misc.properties @@ -262,6 +262,21 @@ badges$badge.high_score_4.desc=在结束游戏时达到 _SSS级_ 评价。 badges$badge.high_score_5.title=炉火纯青 badges$badge.high_score_5.desc=在结束游戏时达到 _SSS+级_ 评价。 +badges$badge.read_book_one.title=书籍寻觅者 +badges$badge.read_book_one.desc=一局累计阅读一本书籍。 + +badges$badge.read_book_two.title=书籍爱好者 +badges$badge.read_book_two.desc=一局累计阅读三本不同的书籍。 + +badges$badge.read_book_three.title=书籍收藏家 +badges$badge.read_book_three.desc=一局累计阅读五本不同的书籍。 + +badges$badge.read_book_four.title=书籍博学家 +badges$badge.read_book_four.desc=一局累计阅读七本不同的书籍。 + + + + challenges.no_food=缩餐节食 challenges.no_food_desc=食物本就稀缺,但你还需要注意节食!\n\n・使用各类食物与丰饶之角的饱腹效果为原本的三分之一。\n・其他恢复饥饿的机制不受影响。 challenges.no_armor=独挡一面 diff --git a/core/src/main/assets/messages/ui/ui.properties b/core/src/main/assets/messages/ui/ui.properties index cd830ea56..1eb249a3c 100644 --- a/core/src/main/assets/messages/ui/ui.properties +++ b/core/src/main/assets/messages/ui/ui.properties @@ -533,4 +533,6 @@ ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x72=-V0.6.3-Beta1\n1.修复一些小 ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x73=-V0.6.3-Beta1.5\n1.修复时光沙漏在雪凛峡谷的一些问题\n2.修复梦魇领袖的魔化藤为法伤的问题,并延长母体酸蚀释放间隔\n3.修复一些小型错误 +ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x74=-V0.6.3-Beta2.0\n1.修复BossRush的一些问题\n2.改善部分代码 + //ui.changelist.mlpd.vm0_5_x_changes.xxx// \ No newline at end of file diff --git a/core/src/main/assets/messages/windows/windows.properties b/core/src/main/assets/messages/windows/windows.properties index 9d302b544..96c083521 100644 --- a/core/src/main/assets/messages/windows/windows.properties +++ b/core/src/main/assets/messages/windows/windows.properties @@ -70,6 +70,7 @@ windows.wndkingshop.king=商人领主 windows.wndkingshop.select=干得漂亮,你已经让莲娜对你刮目相看。作为报答,_全场500金币售价_!(如果没有物品请点击刷新或随处走走) windows.wndkingshop.sellmod=出售 windows.wndkingshop.reloadshop=刷新 +windows.wndkingshop.x_gold=你没有足够的金币刷新商品列表! windows.wndkingshop.goback=回家 windows.wndkingshop.back=一路顺风,伙计! diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Badges.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Badges.java index 29e0de159..c14ed34ed 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Badges.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Badges.java @@ -87,6 +87,8 @@ public class Badges { HALOFIRE_DIED ( 23 ), + READ_BOOK_ONE ( 24 ), + //silver NO_MONSTERS_SLAIN ( 32 ), GRIM_WEAPON ( 33 ), @@ -118,6 +120,8 @@ public class Badges { HIGH_SCORE_2 ( 55 ), + READ_BOOK_TWO ( 56 ), + //gold PIRANHAS ( 64 ), //these names are a bit outdated, but it doesn't really matter. @@ -158,6 +162,8 @@ public class Badges { BOSS_SLAIN_3_ALL_SUBCLASSES ( 80, true ), GAMES_PLAYED_2 ( 81, true ), + READ_BOOK_THREE ( 87 ), + //platinum HAPPY_END ( 96 ), ALL_ITEMS_IDENTIFIED ( 97, true ), @@ -174,6 +180,8 @@ public class Badges { HIGH_SCORE_4 ( 104 ), + READ_BOOK_FOUR ( 105 ), + //diamond GAMES_PLAYED_4 ( 112, true ), CHAMPION_2X ( 113 ), @@ -424,6 +432,29 @@ public class Badges { displayBadge( badge ); } + public static void valiReadBooks() { + Badge badge = null; + + if (!local.contains( Badge.READ_BOOK_ONE ) && Statistics.readBooks >= 1) { + badge = Badge.READ_BOOK_ONE; + local.add( badge ); + } + if (!local.contains( Badge.READ_BOOK_TWO ) && Statistics.readBooks >= 3) { + badge = Badge.READ_BOOK_TWO; + local.add( badge ); + } + if (!local.contains( Badge.READ_BOOK_THREE ) && Statistics.readBooks >= 5) { + badge = Badge.READ_BOOK_THREE; + local.add( badge ); + } + if (!local.contains( Badge.READ_BOOK_FOUR ) && Statistics.readBooks >= 7) { + badge = Badge.READ_BOOK_FOUR; + local.add( badge ); + } + + displayBadge( badge ); + } + public static void nyzvalidateGoldCollected() { Badge badge = null; @@ -996,6 +1027,10 @@ public class Badges { validateAMZ(); } + public static void BOSSTHREE() { + displayBadge( Badge.BOSS_SLAIN_3 ); + } + public static void CLEARWATER() { displayBadge( Badge.CLEAR_WATER ); } @@ -1146,6 +1181,7 @@ public class Badges { {Badge.CHAMPION_1X, Badge.CHAMPION_2X, Badge.CHAMPION_3X,Badge.CHAMPION_4X,Badge.CHAMPION_5X}, {Badge.GHOSTDAGE,Badge.DAGETO}, {Badge.HIGH_SCORE_1, Badge.HIGH_SCORE_2, Badge.HIGH_SCORE_3, Badge.HIGH_SCORE_4, Badge.HIGH_SCORE_5}, + {Badge.READ_BOOK_ONE, Badge.READ_BOOK_TWO, Badge.READ_BOOK_THREE, Badge.READ_BOOK_FOUR}, }; private static final Badge[][] metaBadgeReplacements = new Badge[][]{ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Statistics.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Statistics.java index 8c06fdf5c..b70472083 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Statistics.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Statistics.java @@ -28,6 +28,8 @@ public class Statistics { //统计分数 public static int progressScore; + + public static int readBooks; public static int treasureScore; public static SparseArray floorsExplored = new SparseArray<>(); public static int exploreScore; @@ -120,7 +122,7 @@ public class Statistics { boss_enhance = 0; ChaicBlood = 0; - + readBooks = 0; HealingIsDied = 0; goldCollected = 0; @@ -261,6 +263,8 @@ public class Statistics { private static final String HEALDIED = "HealingisDied"; + private static final String READBOOKS = "readbooks"; + public static void storeInBundle( Bundle bundle ) { @@ -274,6 +278,9 @@ public class Statistics { } } bundle.put( HEALDIED, HealingIsDied); + + bundle.put( READBOOKS, readBooks); + bundle.put( EXPL_SCORE, exploreScore ); bundle.put( BOSS_SCORES, bossScores ); bundle.put( TOT_BOSS, totalBossScore ); @@ -349,6 +356,8 @@ public class Statistics { HealingIsDied = bundle.getInt( HEALDIED ); + readBooks = bundle.getInt( READBOOKS ); + //分数 progressScore = bundle.getInt( PROG_SCORE ); heldItemValue = bundle.getInt( ITEM_VAL ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroClass.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroClass.java index 7c7180018..79b4ff28a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroClass.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroClass.java @@ -59,6 +59,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.EtherealChains; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.TalismanOfForesight; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.TimekeepersHourglass; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.WraithAmulet; +import com.shatteredpixel.shatteredpixeldungeon.items.bags.BookBag; import com.shatteredpixel.shatteredpixeldungeon.items.bags.HerbBag; import com.shatteredpixel.shatteredpixeldungeon.items.bags.KingBag; import com.shatteredpixel.shatteredpixeldungeon.items.bags.VelvetPouch; @@ -132,11 +133,15 @@ public enum HeroClass { } public void initHero( Hero hero ) { - //new WraithAmulet().quantity(1).identify().collect(); + if (Dungeon.isChallenged(Challenges.RLPT)) { new Ankh().quantity(1).identify().collect(); } + if(!Badges.isUnlocked(Badges.Badge.BOSS_SLAIN_3) && Dungeon.isDLC(Conducts.Conduct.BOSSRUSH) ){ + Badges.BOSSTHREE(); + } + if (Dungeon.isChallenged(Challenges.AQUAPHOBIA)) { new WaterSoul().quantity(4).identify().collect(); } @@ -163,6 +168,8 @@ public enum HeroClass { new MysteryMeat().quantity(100).identify().collect(); new TimekeepersHourglass().quantity(1).identify().collect(); + new Amulet().quantity(1).identify().collect(); + Buff.affect(hero, ChampionHero.AntiMagic.class, 50000f); new WraithAmulet().quantity(1).identify().collect(); new BloodthirstyThorn().quantity(1).identify().collect(); @@ -232,6 +239,7 @@ public enum HeroClass { i = new Food(); new HerbBag().quantity(1).identify().collect(); + new BookBag().quantity(1).identify().collect(); new PotionOfHealing().quantity(3).identify().collect(); new ScrollOfUpgrade().quantity(1).identify().collect(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Nyz.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Nyz.java index c164e4deb..9172f4588 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Nyz.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Nyz.java @@ -68,12 +68,12 @@ public class Nyz extends NTNPC { sprite.turnTo( pos, Dungeon.hero.pos ); spend( TICK ); - shop6 = new YellowSunBooks(); - shop5 = new BrokenBooks(); - shop4 = new IceCityBooks(); - shop3 = new NoKingMobBooks(); - shop2 = new DeepBloodBooks(); - shop1 = new MagicGirlBooks(); + shop6 = (Books) new YellowSunBooks().quantity(2); + shop5 = (Books) new BrokenBooks().quantity(2); + shop4 = (Books) new IceCityBooks().quantity(2); + shop3 = (Books) new NoKingMobBooks().quantity(2); + shop2 = (Books) new DeepBloodBooks().quantity(2); + shop1 = (Books) new MagicGirlBooks().quantity(2); bomb1 = (Bomb) new Flashbang().quantity(1); bomb2 = (Bomb) new Noisemaker().quantity(1); bomb3 = (Bomb) new RegrowthBomb().quantity(1); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/MainBooks.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/MainBooks.java index 00f4539b0..74909d4d0 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/MainBooks.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/MainBooks.java @@ -7,11 +7,11 @@ public class MainBooks extends Item { @Override public String info() { - return desc()+"\n\n"+author; + return author; } @Override public int value() { return 20 * quantity; } - public String author = Messages.get(this, "author"); + public String author = Messages.get(MainBooks.class, "mustread"); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bags/BookBag.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bags/BookBag.java index 923bc0d50..fe31a7d1d 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bags/BookBag.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bags/BookBag.java @@ -1,15 +1,23 @@ package com.shatteredpixel.shatteredpixeldungeon.items.bags; +import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.books.Books; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; +import java.util.ArrayList; + public class BookBag extends Bag { { image = ItemSpriteSheet.BOOKBAG; } + @Override + public ArrayList actions(Hero hero) { + return new ArrayList<>(); //yup, no dropping this one + } + @Override public boolean canHold( Item item ) { if (item instanceof Books){ @@ -20,12 +28,12 @@ public class BookBag extends Bag { } public int capacity(){ - return 30; + return 10; } @Override public int value() { - return 90; + return 30; } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/Books.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/Books.java index 0a7a0eaa4..f71391375 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/Books.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/Books.java @@ -1,26 +1,42 @@ package com.shatteredpixel.shatteredpixeldungeon.items.books; +import com.shatteredpixel.shatteredpixeldungeon.Badges; +import com.shatteredpixel.shatteredpixeldungeon.Statistics; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.items.MainBooks; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; +import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; +import com.shatteredpixel.shatteredpixeldungeon.windows.WndBook; import com.watabou.noosa.particles.Emitter; +import com.watabou.utils.Bundle; import java.util.ArrayList; public class Books extends MainBooks { + //每本书的计数只能计算一次,避免玩家重复阅读同一本书刷成就。 + public boolean readOnly = false; + { defaultAction = Read; + stackable = true; } + + @Override public boolean isUpgradable() { return false; } - public String author = Messages.get(this, "author"); - public Integer age; + @Override + public boolean isIdentified() { + return true; + } + + public String desc = Messages.get(this, "desc"); public Integer icon = null; private static final String Read = "Read"; @@ -40,14 +56,37 @@ public class Books extends MainBooks { if (hero.HP > 0) { actions.add(Read); } + actions.remove(AC_DROP); + actions.remove(AC_THROW); return actions; } @Override public void execute(final Hero hero, String action ) { - super.execute(hero, action); - if (action.equals( Read )) { + if (action.equals( Read ) && quantity>1) { + if(!readOnly){ + Statistics.readBooks++; + Badges.valiReadBooks(); + GameScene.show(new WndBook(this)); + readOnly = true; + } else { + GLog.w(Messages.get(MainBooks.class, "readed")); + } + } else { + GLog.w( Messages.get(MainBooks.class, "no") ); } } + + public void restoreFromBundle(Bundle bundle) { + super.restoreFromBundle(bundle); + this.readOnly = bundle.getBoolean("readOnly"); + } + + public void storeInBundle(Bundle bundle) { + super.storeInBundle(bundle); + bundle.put("readOnly", this.readOnly); + } + + } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/BrokenBooks.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/BrokenBooks.java index f503220f0..14d493590 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/BrokenBooks.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/BrokenBooks.java @@ -22,7 +22,7 @@ public class BrokenBooks extends Books { @Override public void execute(final Hero hero, String action) { super.execute(hero, action); - if (action.equals( Read )) { + if (action.equals( Read ) && quantity>1) { Sample.INSTANCE.play( Assets.Sounds.READ ); switch (Random.Int(5)){ case 0: case 1: case 2: diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/DeepBloodBooks.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/DeepBloodBooks.java index 717857527..5ff8b4221 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/DeepBloodBooks.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/DeepBloodBooks.java @@ -23,7 +23,7 @@ public class DeepBloodBooks extends Books { @Override public void execute(final Hero hero, String action) { super.execute(hero, action); - if (action.equals( Read )) { + if (action.equals( Read ) && quantity>1) { Sample.INSTANCE.play( Assets.Sounds.READ ); switch (Random.Int(5)){ case 0: case 1: case 2: diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/DimandBook.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/DimandBook.java index 121f35d2b..e46100eed 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/DimandBook.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/DimandBook.java @@ -18,7 +18,7 @@ public class DimandBook extends Books { @Override public void execute(final Hero hero, String action) { super.execute(hero, action); - if (action.equals( Read )) { + if (action.equals( Read ) && quantity>1) { Sample.INSTANCE.play( Assets.Sounds.READ ); detach( hero.belongings.backpack ); GLog.n("你已接受来自未知敌人的挑战……,祝你好运!"); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/GrassKingBooks.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/GrassKingBooks.java index 09296d6e9..8127dbedc 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/GrassKingBooks.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/GrassKingBooks.java @@ -19,10 +19,15 @@ public class GrassKingBooks extends Books { unique= true; } + @Override + public int value() { + return quantity * 8; + } + @Override public void execute(final Hero hero, String action) { super.execute(hero, action); - if (action.equals( Read )) { + if (action.equals( Read ) && quantity>1) { Sample.INSTANCE.play( Assets.Sounds.READ ); switch (Random.Int(5)){ case 0: case 1: case 2: diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/IceCityBooks.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/IceCityBooks.java index 9502051a9..c3ddbec92 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/IceCityBooks.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/IceCityBooks.java @@ -23,7 +23,7 @@ public class IceCityBooks extends Books { @Override public void execute(final Hero hero, String action) { super.execute(hero, action); - if (action.equals( Read )) { + if (action.equals( Read ) && quantity>1) { Sample.INSTANCE.play( Assets.Sounds.READ ); switch (Random.Int(5)){ case 0: case 1: case 2: diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/MagicGirlBooks.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/MagicGirlBooks.java index 33530a2f7..cb068f1ec 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/MagicGirlBooks.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/MagicGirlBooks.java @@ -22,7 +22,7 @@ public class MagicGirlBooks extends Books { @Override public void execute(final Hero hero, String action) { super.execute(hero, action); - if (action.equals( Read )) { + if (action.equals( Read ) && quantity>1) { Sample.INSTANCE.play( Assets.Sounds.READ ); switch (Random.Int(5)){ case 0: case 1: case 2: diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/NoKingMobBooks.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/NoKingMobBooks.java index b0d0c1ee8..1c4279ce8 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/NoKingMobBooks.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/NoKingMobBooks.java @@ -22,7 +22,8 @@ public class NoKingMobBooks extends Books { @Override public void execute(final Hero hero, String action) { super.execute(hero, action); - if (action.equals( Read )) { + if (action.equals( Read ) && quantity>1) { + Sample.INSTANCE.play( Assets.Sounds.READ ); switch (Random.Int(5)){ case 0: case 1: case 2: diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/TestBooks.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/TestBooks.java index d07a024e5..6d794a975 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/TestBooks.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/TestBooks.java @@ -4,16 +4,29 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.AnkhInvulnerability; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; -import com.shatteredpixel.shatteredpixeldungeon.items.books.Books; +import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; -public class TestBooks extends Books { +import java.util.ArrayList; + +public class TestBooks extends Item { private static final String Read = "Read"; { image = ItemSpriteSheet.BLACKBOOK; unique= true; + defaultAction = Read; } + @Override + public ArrayList actions(Hero hero ) { + ArrayList actions = super.actions(hero); + if (hero.HP > 0) { + actions.add(Read); + } + return actions; + } + + @Override public void execute(final Hero hero, String action) { super.execute(hero, action); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/YellowSunBooks.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/YellowSunBooks.java index f55f6a209..8fc9f102e 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/YellowSunBooks.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/YellowSunBooks.java @@ -22,7 +22,7 @@ public class YellowSunBooks extends Books { @Override public void execute(final Hero hero, String action) { super.execute(hero, action); - if (action.equals( Read )) { + if (action.equals( Read ) && quantity>1) { Sample.INSTANCE.play( Assets.Sounds.READ ); switch (Random.Int(5)){ case 0: case 1: case 2: diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/ForestBossLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/ForestBossLevel.java index eb67f9d8a..783685301 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/ForestBossLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/ForestBossLevel.java @@ -229,7 +229,7 @@ public class ForestBossLevel extends Level { drop( new CrystalKey(Dungeon.isDLC(Conducts.Conduct.BOSSRUSH) ? 2 : 5 ), WIDTH*7+29 ); - Heap droppedA = Dungeon.level.drop( Generator.randomUsingDefaults( Generator.Category.STONE), + Heap droppedA = Dungeon.level.drop( Generator.randomUsingDefaults( Generator.Category.ARMOR), WIDTH*7+28 ); droppedA.type = Heap.Type.CRYSTAL_CHEST; droppedA.sprite.view( droppedA ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/special/NxhyShopRoom.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/special/NxhyShopRoom.java index 65d62fe4a..dcdb4ace6 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/special/NxhyShopRoom.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/special/NxhyShopRoom.java @@ -24,6 +24,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.bags.PotionBandolier; import com.shatteredpixel.shatteredpixeldungeon.items.bags.ScrollHolder; import com.shatteredpixel.shatteredpixeldungeon.items.bags.VelvetPouch; import com.shatteredpixel.shatteredpixeldungeon.items.bombs.Bomb; +import com.shatteredpixel.shatteredpixeldungeon.items.books.bookslist.GrassKingBooks; import com.shatteredpixel.shatteredpixeldungeon.items.books.bookslist.YellowSunBooks; import com.shatteredpixel.shatteredpixeldungeon.items.food.Food; import com.shatteredpixel.shatteredpixeldungeon.items.food.MeatPie; @@ -161,6 +162,7 @@ public class NxhyShopRoom extends SpecialRoom { case 3: case 4: itemsToSpawn2.add(new YellowSunBooks()); + itemsToSpawn2.add(new GrassKingBooks()); break; case 5: itemsToSpawn2.add(new MeatPie()); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/special/NyzBombAndBooksRoom.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/special/NyzBombAndBooksRoom.java index c55cdb227..e21f8567a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/special/NyzBombAndBooksRoom.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/special/NyzBombAndBooksRoom.java @@ -14,7 +14,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.MerchantsBeacon; import com.shatteredpixel.shatteredpixeldungeon.items.armor.LeatherArmor; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.TimekeepersHourglass; -import com.shatteredpixel.shatteredpixeldungeon.items.bags.BookBag; import com.shatteredpixel.shatteredpixeldungeon.items.bombs.Bomb; import com.shatteredpixel.shatteredpixeldungeon.items.bombs.Firebomb; import com.shatteredpixel.shatteredpixeldungeon.items.bombs.Flashbang; @@ -22,6 +21,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.bombs.FrostBomb; import com.shatteredpixel.shatteredpixeldungeon.items.bombs.HolyBomb; import com.shatteredpixel.shatteredpixeldungeon.items.bombs.Noisemaker; import com.shatteredpixel.shatteredpixeldungeon.items.bombs.RegrowthBomb; +import com.shatteredpixel.shatteredpixeldungeon.items.books.bookslist.GrassKingBooks; import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHealing; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfMagicMapping; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTransmutation; @@ -130,12 +130,12 @@ public class NyzBombAndBooksRoom extends SpecialRoom { itemsToSpawn2.add (new Firebomb().quantity(1)); itemsToSpawn2.add (new FrostBomb().quantity(1)); itemsToSpawn2.add(new MerchantsBeacon()); - //itemsToSpawn2.add(ChooseBag(Dungeon.hero.belongings)); + itemsToSpawn2.add(new GrassKingBooks().quantity(2)); itemsToSpawn2.add(new PotionOfHealing()); itemsToSpawn2.add(new ScrollOfTransmutation()); //itemsToSpawn2.add(new DriedRose()); itemsToSpawn2.add(new ScrollOfMagicMapping()); - itemsToSpawn2.add(new BookBag()); + //itemsToSpawn2.add(new BookBag()); int Int = Random.Int(4); if (Int == 0) { itemsToSpawn2.add(new Bomb()); @@ -160,11 +160,8 @@ public class NyzBombAndBooksRoom extends SpecialRoom { rare.cursed = false; rare.cursedKnown = true; itemsToSpawn2.add(rare); - if (itemsToSpawn2.size() <= 63) { - Random.shuffle(itemsToSpawn2); - return itemsToSpawn2; - } - throw new RuntimeException("Shop attempted to carry more than 63 items!"); + Random.shuffle(itemsToSpawn2); + return itemsToSpawn2; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/mlpd/vM0_6_7_X_Changes.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/mlpd/vM0_6_7_X_Changes.java index ae23b6315..4c0f5d576 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/mlpd/vM0_6_7_X_Changes.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/mlpd/vM0_6_7_X_Changes.java @@ -52,6 +52,7 @@ import java.util.ArrayList; public class vM0_6_7_X_Changes { public static void addAllChanges(ArrayList changeInfos) { + add_v0_6_45_Changes(changeInfos); add_v0_6_44_Changes(changeInfos); add_v0_6_43_Changes(changeInfos); add_v0_6_42_Changes(changeInfos); @@ -99,12 +100,41 @@ public class vM0_6_7_X_Changes { add_v0_6_0_Changes(changeInfos); } - public static void add_v0_6_44_Changes( ArrayList changeInfos ) { - ChangeInfo changes = new ChangeInfo("金榜题名,高考加油", true, null); + public static void add_v0_6_45_Changes( ArrayList changeInfos ) { + ChangeInfo changes = new ChangeInfo("v0.6.3.0-Beta2.0", true, ""); + changes.hardlight(Window.TITLE_COLOR); + changeInfos.add(changes); + + changes = new ChangeInfo("新内容", false, null); + changes.hardlight(Window.GREEN_COLOR); + changeInfos.add(changes); + + changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.CRYSTAL_CHEST), ("克里弗斯之果-二选一改进"), + ("对二选一问题进行了一些更多的改进,在新存档生效。"))); + + changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.NOKING), ("书籍系统2.0"), + ("书籍系统全面升级,欢迎使用全新书籍系统。我们还追加了一些徽章方便各位探索。"))); + + changes = new ChangeInfo("改动", false, null); changes.hardlight(Window.CYELLOW); changeInfos.add(changes); - changes = new ChangeInfo("v0.6.3.0-Beta1.5", true, ""); + changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.BOOKBAG), ("牛皮书袋"), + ("现在牛皮书袋奈亚子不再出售,而是英雄初始就能绑定获得。"))); + + changes.addButton(new ChangeButton(new NyzSprites(), ("奈亚子"), + ("奈亚子商店全新升级,书籍现在捆绑销售,且最低可能为100金币。"))); + + changes.addButton(new ChangeButton(new ShopkKingSprite(), ("商人领主"), + ("商人领主商店全新升级,刷新现在需要150金币。"))); + + changes.addButton(new ChangeButton(new Image("sprites/spinner.png", 144, 0, 16, 16), + Messages.get(ChangesScene.class, "bugfixes"), Messages.get(vM0_6_7_X_Changes.class, "bug_06X74"))); + + } + + public static void add_v0_6_44_Changes( ArrayList changeInfos ) { + ChangeInfo changes = new ChangeInfo("v0.6.3.0-Beta1.5", true, ""); changes.hardlight(Window.TITLE_COLOR); changeInfos.add(changes); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndBook.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndBook.java index 2fde84271..ee861ef79 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndBook.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndBook.java @@ -1,6 +1,5 @@ package com.shatteredpixel.shatteredpixeldungeon.windows; -import com.shatteredpixel.shatteredpixeldungeon.SPDSettings; import com.shatteredpixel.shatteredpixeldungeon.items.books.Books; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; @@ -15,7 +14,6 @@ public class WndBook extends Window { private static final float GAP = 2; private static final int WIDTH_MIN = 120; - private static final int WIDTH_MAX = 220; public WndBook(final Books book ) { @@ -30,18 +28,13 @@ public class WndBook extends Window { int width = WIDTH_MIN; RenderedTextBlock info = PixelScene.renderTextBlock( - Messages.get(this, "written_by", book.author) +"\n"+ - Messages.get(this, "age", book.age) +"\n\n"+ - book.desc, 6 ); + Messages.get(book, "author")+"\n\n"+book.desc, 6 ); + info.maxWidth(width); + info.hardlight(0xfffffff); + + width += 20; info.maxWidth(width); - //info box can go out of the screen on landscape, so widen it - while (SPDSettings.landscape() - && info.height() > 100 - && width < WIDTH_MAX){ - width += 20; - info.maxWidth(width); - } IconTitle titlebar = new IconTitle( book ); titlebar.setRect( 0, 0, width, 0 ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndKingShop.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndKingShop.java index eaec914ab..165179da0 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndKingShop.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndKingShop.java @@ -175,8 +175,13 @@ public class WndKingShop extends Window { Game.runOnRenderThread(new Callback() { @Override public void call() { - hide(); - Buff.prolong( hero, ReloadShopTwo.class, 1f); + if(Dungeon.gold >=150) { + hide(); + Buff.prolong(hero, ReloadShopTwo.class, 1f); + Dungeon.gold -= 150; + } else { + GLog.n(Messages.get(WndKingShop.class,"x_gold")); + } } }); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndNyzShop.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndNyzShop.java index eb792a8df..020f0c3ec 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndNyzShop.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndNyzShop.java @@ -188,7 +188,7 @@ public class WndNyzShop extends Window { } } } else if(Dungeon.gold >= 720) { - Dungeon.gold-=720*Random.Int(2)+hero.lvl/5+10; + Dungeon.gold-=720*Random.Int(2)+hero.lvl/5+100; WndNyzShop.this.selectReward( item ); if (RandomBuff.level-- >= 0) { }