From 4186416271b237989feff8aa69a4934490161d04 Mon Sep 17 00:00:00 2001 From: LingASDJ <2735951230@qq.com> Date: Fri, 5 May 2023 22:42:47 +0800 Subject: [PATCH] =?UTF-8?q?Update=EF=BC=9A0.6.1.0-Beta5.35(P3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 4 +- .../items/weapon/gun/coming soon | 0 core/src/main/assets/interfaces/badges.png | Bin 20827 -> 19159 bytes .../assets/messages/actors/actors.properties | 25 +- .../assets/messages/items/items.properties | 14 +- .../assets/messages/levels/levels.properties | 4 + .../main/assets/messages/misc/misc.properties | 5 +- .../assets/messages/scenes/scenes.properties | 7 +- .../src/main/assets/messages/ui/ui.properties | 5 + .../messages/windows/windows.properties | 6 +- core/src/main/assets/sprites/items/items.png | Bin 82625 -> 83083 bytes .../shatteredpixeldungeon/Assets.java | 1 + .../shatteredpixeldungeon/Badges.java | 12 +- .../shatteredpixeldungeon/Dungeon.java | 9 +- .../shatteredpixeldungeon/Statistics.java | 32 +- .../buffs/ClearBleesdGoodBuff/BlessAnmy.java | 108 ++++++ .../actors/buffs/Hunger.java | 2 +- .../actors/buffs/IceHpBuff.java | 2 +- .../MagicGirlDebuff/MagicGirlSayTimeLast.java | 112 ++++++ .../actors/hero/Hero.java | 3 + .../actors/hero/HeroClass.java | 10 +- .../actors/mobs/Elemental.java | 50 +++ .../actors/mobs/bosses/DiamondKnight.java | 147 +++++--- .../actors/mobs/bosses/TPDoor.java | 60 +++ .../actors/mobs/npcs/LanFire.java | 5 +- .../custom/utils/Constants.java | 1 + .../items/Generator.java | 2 +- .../items/books/bookslist/DimandBook.java | 29 ++ .../items/quest/MIME.java | 29 ++ .../items/spells/SummonElemental.java | 17 +- .../items/wands/WandOfAnmy.java | 166 +++++++++ .../items/weapon/melee/BloodthirstyThorn.java | 3 +- .../items/weapon/melee/LockSword.java | 10 +- .../items/weapon/melee/MagicTorch.java | 28 +- .../items/weapon/melee/WornShortsword.java | 31 ++ .../levels/ColdChestBossLevel.java | 249 +++++++++++-- .../shatteredpixeldungeon/levels/Level.java | 2 +- .../levels/RegularLevel.java | 5 + .../rooms/standard/MagicDimandRoom.java | 7 +- .../scenes/GameNewsScene.java | 343 ++++++++++-------- .../scenes/GameScene.java | 11 + .../scenes/InterlevelScene.java | 2 +- .../sprites/DimandKingSprite.java | 28 ++ .../sprites/ItemSpriteSheet.java | 4 + .../sprites/SwordLingSprites.java | 2 +- .../sprites/TPDoorSprites.java | 28 ++ .../ui/ReloadButton.java | 1 + .../shatteredpixeldungeon/ui/Toolbar.java | 53 ++- .../shatteredpixeldungeon/ui/Window.java | 2 +- .../ui/changelist/mlpd/vM0_6_7_X_Changes.java | 66 ++-- .../windows/BossSettingWindows.java | 4 +- .../windows/WndChallenges.java | 1 + .../windows/WndFeedback.java | 8 +- .../windows/WndResurrect.java | 4 + .../windows/WndStory.java | 100 ++--- 55 files changed, 1474 insertions(+), 385 deletions(-) create mode 100644 core/bin/main/com/shatteredpixel/shatteredpixeldungeon/items/weapon/gun/coming soon create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ClearBleesdGoodBuff/BlessAnmy.java create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MagicGirlDebuff/MagicGirlSayTimeLast.java create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/bosses/TPDoor.java create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/DimandBook.java create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfAnmy.java create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/TPDoorSprites.java diff --git a/build.gradle b/build.gradle index d0d696ae9..30d38ef00 100644 --- a/build.gradle +++ b/build.gradle @@ -17,8 +17,8 @@ allprojects { appName = 'Magic Ling Pixel Dungeon' appPackageName = 'com.ansdomagiclingpixeldungeon.ling' - appVersionCode =800852 - appVersionName = '0.6.1.0-Beta5.25(P3)' + appVersionCode =800857 + appVersionName = '0.6.1.0-Beta5.35(P3)' appJavaCompatibility = JavaVersion.VERSION_1_8 diff --git a/core/bin/main/com/shatteredpixel/shatteredpixeldungeon/items/weapon/gun/coming soon b/core/bin/main/com/shatteredpixel/shatteredpixeldungeon/items/weapon/gun/coming soon new file mode 100644 index 000000000..e69de29bb diff --git a/core/src/main/assets/interfaces/badges.png b/core/src/main/assets/interfaces/badges.png index d73e0b1ec901ef9e9c55fb60e358efd9d3439476..c4231f29e145b14161cb07ee3a5fb31eed5c3598 100644 GIT binary patch literal 19159 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 literal 20827 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

VE!H`Z=Q~Zn4!z_+h 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 ZL;0etqR!C1^U_3swz|IBCl%ZO{s)zD5y1ce diff --git a/core/src/main/assets/messages/actors/actors.properties b/core/src/main/assets/messages/actors/actors.properties index e77010d65..160158850 100644 --- a/core/src/main/assets/messages/actors/actors.properties +++ b/core/src/main/assets/messages/actors/actors.properties @@ -1,6 +1,8 @@ #####MLPD-P3文本 -actors.mobs.bosses.diamondknight.name=宝箱之王 +actors.hero.hero.heartdied=死亡不是终点,而是新的开始。 + +actors.mobs.bosses.diamondknight.name=拟态之王 actors.mobs.bosses.diamondknight.desc=拟态的最终结果就是无限接近人类。\n原本作用拟形的钻石宝箱外壳化作盔甲,包裹住如王般的内在。\n衪是所有拟形怪的王——至少衪是这么认为的。\n王会战斗到最后一刻,直到粉身碎骨。 actors.mobs.bosses.diamondknight.notice=你杀了我很多的子嗣,你理应用你的命来赎罪! @@ -8,11 +10,14 @@ actors.mobs.bosses.diamondknight.now_go=真是有趣的家伙,本王带你看 actors.mobs.bosses.diamondknight.war_go=很久没有这么热血沸腾了!挑战者,或许你真的是这里唯一的光芒 actors.mobs.bosses.diamondknight.iswar_go=最大的敌人往往就是你自己,准备好和自己决一死战了吗? actors.mobs.bosses.diamondknight.ok_go=好吧,让我们以最纯朴的战斗结束这次的较量吧。 -actors.mobs.bosses.diamondknight.defeated=真是一场有趣的战斗,挑战者,这次就算你赢了! +actors.mobs.bosses.diamondknight.defeated=真是一场有趣的战斗,挑战者,这次就算你赢了!另外,我在来的路上杀死了一名刺客,他的面具就交给你了…… actors.mobs.bosses.dcrystal.name=深蓝水晶 actors.mobs.bosses.dcrystal.desc=深蓝水晶将缓慢治愈宝箱之王,还请留意。 +actors.mobs.bosses.tpdoor.name=神秘传送门 +actors.mobs.bosses.tpdoor.desc=神秘传送门的力量与拟态王有着千丝万缕的联系,摧毁它也许能对衪造成伤害。 +actors.mobs.bosses.tpdoor.lowdamage=你对传送门造成的伤害太低了,或许需要更强的力量才能击破它。 actors.mobs.salamander.name=深蓝蝾螈 actors.mobs.salamander.desc=来自森林的小生物,由于下方的邪恶力量侵蚀,它们已经由温顺变得凶猛。\n它们锋利的尾巴能穿透敌人,它们十分的聪明,且极其灵活,必须趁其不备将之杀掉。 @@ -96,7 +101,7 @@ actors.buffs.magicgirldebuff.magicgirlsaycursed.name=魔女的低语-束缚 actors.buffs.magicgirldebuff.magicgirlsaycursed.desc=束缚只是我的一个考验,而失去信心的你。想必比我这个考验更可怕吧。\n\n本大层装备会被诅咒,下一大层失效 actors.buffs.magicgirldebuff.magicgirlsaykill.name=魔女的低语-审判 -actors.buffs.magicgirldebuff.magicgirlsaykill.desc=灯火摇摆不定,朦胧中你似乎看见了一个魔女向你挥起了剑。(一切是你们咎由自取)\n\n本大层怪物近战伤害提升10% +actors.buffs.magicgirldebuff.magicgirlsaykill.desc=灯火摇摆不定,朦胧中你似乎看见了一个魔女向你挥起了剑。(一切是你们咎由自取)\n\n本大层英雄近战伤害降低至90% actors.buffs.magicgirldebuff.magicgirlsayslowy.name=魔女的低语-迟钝 actors.buffs.magicgirldebuff.magicgirlsayslowy.desc=缓慢的走向死亡吧……\n\n本大层英雄每移动10回合获得3回合残废。 @@ -107,6 +112,9 @@ actors.buffs.magicgirldebuff.magicgirlsaysoftdied.desc=软弱不是你的缺点 actors.buffs.magicgirldebuff.magicgirlsaymoneymore.name=魔女的低语-贪婪 actors.buffs.magicgirldebuff.magicgirlsaymoneymore.desc=贪婪的欲望是人类的本质\n\n本大层商店的价格除十字架和食物和治疗药水打1折,其他全部1.5倍价格。 +actors.buffs.magicgirldebuff.magicgirlsaytimelast.name=魔女的低语-流逝 +actors.buffs.magicgirldebuff.magicgirlsaytimelast.desc=流逝的是时间,不变的是地牢的模样。\n\n本大层每隔一段时间英雄获得随机火焰,中毒,流血其中之一。 + ### Good Blees Buffs actors.buffs.clearbleesdgoodbuff.blessgoodstr.name=纯洁的祝福-坚毅 actors.buffs.clearbleesdgoodbuff.blessgoodstr.desc=坚毅是我们不屈的斗志!\n\n本大层玩家额外追加2点力量 @@ -126,6 +134,9 @@ actors.buffs.clearbleesdgoodbuff.blessimmune.desc=隐没在这人群之中,我 actors.buffs.clearbleesdgoodbuff.blessgoread.name=纯洁的祝福-前路 actors.buffs.clearbleesdgoodbuff.blessgoread.desc=行走在这令人惧怕的地牢中,灯火是前路的指引\n\n本大层英雄灯火值高于60%的情况下,获得每回合进行血量回复。 +actors.buffs.clearbleesdgoodbuff.blessanmy.name=纯洁的祝福-共生 +actors.buffs.clearbleesdgoodbuff.blessanmy.desc=昏暗的地牢,其实仍然可以共生共存。\n\n本大层玩家获得_“共生法杖”_,可在每层选择一个怪物成为你的盟友,该法杖无法升级,且Buff效果消失后自动消失。(_共生只是为了生存,我们所做的只有拯救自己_) + ###MLPD actors.mobs.bosses.crossdiedtower.dead=控制目标已丢失,已自动摧毁…… actors.mobs.bosses.crossdiedtower.name=激光十字晶柱 @@ -1307,10 +1318,10 @@ actors.hero.hero.died=你的十字架毫无用处……,你彻底死在了雪 ##classes actors.hero.heroclass.warrior=蕾零安洁 actors.hero.heroclass.warrior_desc_item=蕾零安洁初始携带一枚可以贴附于护甲的_独特破损纹章。_\n\n蕾零安洁在装备附着纹章的护甲时会随时间产生生命值之上的护盾值。\n\n纹章可以在护甲之间转移,并且可以携带一级升级。 -actors.hero.heroclass.warrior_desc_loadout=蕾零安洁初始携带一把_破损的短剑。_这把武器的直接近战伤害是所有初始武器中最高的。\n\n蕾零安洁初始携带_三块石子。_石子可以扔出攻击远处,造成一定的少量伤害。\n\n蕾零安洁初始携带一个可以收纳各种药水并保护药水瓶不被冻碎的_药水架。_ -actors.hero.heroclass.warrior_desc_misc=蕾零安洁每次食用食物时都能恢复少量生命值。\n\n蕾零安洁开局鉴定的物品有:\n- 鉴定卷轴\n- 治疗药水\n- 盛怒卷轴 +actors.hero.heroclass.warrior_desc_loadout=蕾零安洁初始携带一把_破损的短剑。_这把武器的直接近战伤害是所有初始武器中最高的。\n\n蕾零安洁初始携带_三块石子。_石子可以扔出攻击远处,造成一定的少量伤害。\n\n蕾零安洁初始携带一个可以收纳各种药水并保护药水瓶不被冻碎的_药水架。_\n\n蕾零安洁初始携带一个不会被消耗的_唤魔晶柱_ +actors.hero.heroclass.warrior_desc_misc=蕾零安洁每次食用食物时都能恢复少量生命值。\n\n蕾零安洁开局鉴定的物品有:\n- 鉴定卷轴\n- 治疗药水\n- 盛怒卷轴\n\n蕾零安洁初始携带一个不会被消耗的_唤魔晶柱_ actors.hero.heroclass.warrior_desc_subclasses=在击杀第二个Boss后可以选择一种专精。蕾零安洁可以在两种专精中二选一: -actors.hero.heroclass.warrior_story=剧情故事待补充-123 +actors.hero.heroclass.warrior_story=蕾零安洁作为战士一族并没有过人的天赋,但在罗伦斯的教导下她掌握了召唤秘术。\n\n她初始携带的唤魔晶柱与她的秘术合二为一。\n\n这样所向披靡的她在战场上成为了一名无人能敌的战士。但谁又知道她的真实身份呢? actors.hero.heroclass.huntress_story=剧情故事待补充-456 actors.hero.heroclass.rogue_story=剧情故事待补充-789 actors.hero.heroclass.mage_story=剧情故事待补充-101112 @@ -1355,7 +1366,7 @@ actors.hero.herosubclass.sniper_desc=_远灵之主_乃远程战斗大师。她 actors.hero.herosubclass.warden=自然仙子 actors.hero.herosubclass.warden_desc=_自然仙子_与自然之力有强大的联结,这使得自然仙子具有穿透高草的视野,而且种下的种子周围会生出枯草。自然仙子在踩踏植物时会获得额外效果。 -actors.hero.heroclass.warrior_desc=蕾零安洁初始携带一枚可以贴附于护甲的_独特破损纹章。_他在装备附着纹章的护甲时会随时间产生生命值之上的护盾值。纹章可以在护甲之间转移,并且可以携带一级升级。\n\n同时,蕾零安洁初始携带一柄_破旧的短剑_,_三块投石_,布甲,水袋与绒布包。\n\n蕾零安洁开局鉴定的物品有:\n_-_鉴定卷轴\n_-_治疗药水\n_-_盛怒卷轴 +actors.hero.heroclass.warrior_desc=蕾零安洁初始携带一枚可以贴附于护甲的_独特破损纹章。_他在装备附着纹章的护甲时会随时间产生生命值之上的护盾值。纹章可以在护甲之间转移,并且可以携带一级升级。\n\n同时,蕾零安洁初始携带一柄_破旧的短剑_,_三块投石_,布甲,水袋与绒布包以及一个不会消耗的_唤魔晶柱_。\n\n蕾零安洁开局鉴定的物品有:\n_-_鉴定卷轴\n_-_治疗药水\n_-_盛怒卷轴 actors.hero.heroclass.mage_desc=茉莉伊洛初始携带一把_老魔杖_。老魔杖的自动充能速度显著快于一般法杖,并且有 1 点额外最大充能数。茉莉伊洛可以将地牢中找到的各式法杖灌注到老魔杖中。\n\n同时,茉莉伊洛初始携带一把已灌注了_魔弹法杖_的老魔杖、布甲、水袋与绒布包。\n\n茉莉伊洛开局鉴定的物品有:\n_- _鉴定卷轴\n_- _液火药剂\n_-_ 升级卷轴 diff --git a/core/src/main/assets/messages/items/items.properties b/core/src/main/assets/messages/items/items.properties index 075296f49..9b51ce5fb 100644 --- a/core/src/main/assets/messages/items/items.properties +++ b/core/src/main/assets/messages/items/items.properties @@ -1,6 +1,18 @@ ####MLPD-P3文本 items.weapon.melee.sdbsword.name=钻石大剑 -items.weapon.melee.sdbsword.desc=钻石制成的奇特大剑,现在它已经给予了足够多的能量,它回到了巅峰时刻\n剑身残留着钻石宝箱王的魔力,因此对其他魔力有着莫名的亲和性。相比于其他武器,这把武器会随着等级的提升增加更多伤害。\n这把武器攻击速度极慢,但精准极高。\n该武器已经重回巅峰,可以发射剑气。 +items.weapon.melee.sdbsword.desc=钻石制成的奇特大剑,现在它已经给予了足够多的能量,它回到了巅峰时刻\n剑身残留着钻石宝箱王的魔力,因此对其他魔力有着莫名的亲和性。相比于其他武器,这把武器会随着等级的提升增加更多伤害。\n这把武器攻击速度极慢,但精准极高。\n该武器已经重回巅峰,可以发射剑气。(该武器尚未完成,切勿使用) + +items.wands.wandofanmy.name=共生法杖 +items.wands.wandofanmy.desc=这把法杖是由神秘的能量驱使的,它们会在能量充足的时候,使地牢的怪物臣服于你(Boss除外)。\n\n该法杖无法自动升级,无法丢弃,且在神秘能量消散时一同消散…… +items.wands.wandofanmy.stats_desc=这根法杖能射出心灵控制波,\n没有任何伤害,但可以立刻控制一个怪物成为盟友。 +items.wands.wandofanmy$allytorestart.name=共生思维 +items.wands.wandofanmy$allytorestart.desc=合作或许是一种更好的解脱方式,也许我们本不应该与人类为敌…… + +items.books.bookslist.dimandbook.name=??? +items.books.bookslist.dimandbook.desc=你......杀死......我的子嗣......你......敢与我......对决吗? +items.books.bookslist.dimandbook.author=作者:未知 +items.books.bookslist.dimandbook.ac_read=挑战 + items.quest.mime$gold_one.name=镶金碧翠月牙宝石 items.quest.mime$gold_one.desc=来自于异世界的物品,虽然在这个世界无法产生它原有的作用。但它的宝贵价值足以让商人眼前一亮。 diff --git a/core/src/main/assets/messages/levels/levels.properties b/core/src/main/assets/messages/levels/levels.properties index a41e316bf..d17751e86 100644 --- a/core/src/main/assets/messages/levels/levels.properties +++ b/core/src/main/assets/messages/levels/levels.properties @@ -6,6 +6,10 @@ levels.features.chasm.jump=你确定要跳入洞口中?从这么高的地方 levels.features.chasm.ondeath=你落地过猛摔死了…… levels.features.chasm.rankings_desc=死于撞击 +levels.rooms.standard.magicdimandroom$chestmarker.name=暴风雪莹标记 +levels.rooms.standard.magicdimandroom$chestmarker.desc=一个神秘的标记,是谁在这里设计的呢? + + levels.prisonlevel.statue=树 levels.prisonlevel.statue_desc=地牢里面怎么会有树的存在?这令人匪夷所思! diff --git a/core/src/main/assets/messages/misc/misc.properties b/core/src/main/assets/messages/misc/misc.properties index 5ce7087ef..1a9a9e0ee 100644 --- a/core/src/main/assets/messages/misc/misc.properties +++ b/core/src/main/assets/messages/misc/misc.properties @@ -87,7 +87,7 @@ badges$badge.champion_5x=救世之主\n\n_开启10项以上挑战通关\n\n[不 badges$badge.unlock_mage=解锁法师 badges$badge.unlock_rogue=解锁盗贼 badges$badge.unlock_huntress=解锁女猎手 -badges$badge.kill_dm=击败拟态之王\n\n一场”公平"的对决 +badges$badge.kill_sm=击败拟态之王\n\n一场”公平"的对决 badges$badge.rlpt=_支离破碎征服者_\n\n开启挑战并击败古神\n\n_奖励:0层随机神器(四大基座上)_ badges$badge.sbdjs=风暴袭来,未完待续\n\n你通过它成功离开,却不知,外面风暴袭来\n\n水晶之心仍然在你手中闪闪发光,或许,这事还没完! badges$badge.kill_mg=击败冰雪魔女-冬铃\n\n冰雪之地的女王\n\n_奖励:0层额外十字架(四大基座上,与DM720不叠加)_ @@ -96,7 +96,7 @@ badges$badge.slimepr=击败史莱姆公主\n\n妥协的结果 badges$badge.drawf_head=击败矮人将军\n\n矮人王国的正规军残党 badges$badge.brcler=起始归一\n\n你已经粉碎了DM-ZERO的阴谋,现在是时候回归正常生活了。\n[完成首领对决] - +badges$badge.take_item=宝藏探索者\n\n获得宝藏迷宫的全部宝藏 badges$badge.kill_apple=击败克里弗斯之果\n\n盘踞在森林底部的幕后“主谋" badges$badge.spicealboss=累计击败全部特殊BOSS\n\n风暴正在降临 @@ -152,5 +152,6 @@ challenges.cs=挑战(占位符) challenges.cs_desc=这并不是挑战,请忽略不计。 + kill=\n_冰雪魔女:_\n_-_生命+25%\n_-_ 水中召唤的仆从更多\n-击败时必定掉落紫金宝石护符\n_矮人大师:_\n_-_ 致命技能更加频繁\n_-_ 生命值+50%\n-击败时必定掉落自然神圣护符\n_史莱姆王:_\n_-_ 生命值+100%\n_-_ 伤害更高,速度更快\n_-_ 在开局额外召唤豺狼诡术师,巨钳螃蟹,腐臭老鼠,蚀化史莱姆\n_-_ 击败时必定掉落凝胶手套\n_DM720:_\n_-_ 获得全新技能\n_-_ 击败时必定掉落DM150控制终端[尚未完成] diff --git a/core/src/main/assets/messages/scenes/scenes.properties b/core/src/main/assets/messages/scenes/scenes.properties index 758070fdd..3d0d82779 100644 --- a/core/src/main/assets/messages/scenes/scenes.properties +++ b/core/src/main/assets/messages/scenes/scenes.properties @@ -192,12 +192,11 @@ scenes.gamenewsscene$newsinfo.no_internet=正在检查新版本,长时间无响 scenes.gamenewsscene.read_more=继续游玩 scenes.gamenewsscene$articlebutton.update=最新版本! -scenes.gamenewsscene$articlebutton.desc=你的游戏版本为最新,点击下方继续游戏。 -scenes.gamenewsscene$articlebutton.download=Δ更新版本Δ +scenes.gamenewsscene$articlebutton.desc=恭喜!!!\n你的游戏版本为最新,请点击下方继续游玩的按钮以方便你继续游玩这个游戏。\n最新版更新内容如下所示: +scenes.gamenewsscene$articlebutton.download=Π更新版本Π +scenes.gamenewsscene$articlebutton.force_download=点我下载正版并关闭游戏 scenes.gamenewsscene$articlebutton.okay=继续游玩 - - scenes.rankingsscene.title=最高纪录 scenes.rankingsscene.total=游戏次数: scenes.rankingsscene.no_games=目前为止还没有已经结束的游戏。 diff --git a/core/src/main/assets/messages/ui/ui.properties b/core/src/main/assets/messages/ui/ui.properties index b627a1b5f..82c20a301 100644 --- a/core/src/main/assets/messages/ui/ui.properties +++ b/core/src/main/assets/messages/ui/ui.properties @@ -505,4 +505,9 @@ ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x58=-V0.6.1-Beta5\n1.修复FlameC02 ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x59=-V0.6.1-Beta5.1\n1.修复英雄祝福的错误给予回合\n2.修复经验为负的特殊情况\n-修复少量错误崩溃 +ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x60=-V0.6.1-Beta5.275\n1.修复嗜血荆棘炼金的一些崩溃错误\n2.优化一些UI设置\n3.修复一些小型错误 + +ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x61=-V0.6.1-Beta5.3\n1.修复一些疏漏错误\n2.平衡拟态王三阶段\n3.修复矮人大师,魔法火把,拟态王二阶段无法切换的诸多错误。 + + //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 d6e378c71..ddf9785d8 100644 --- a/core/src/main/assets/messages/windows/windows.properties +++ b/core/src/main/assets/messages/windows/windows.properties @@ -5,6 +5,8 @@ windows.wndkeybindings.prev=《 windows.wndkeybindings.next=》 windows.wndkingshop.nomoney=看起来你并不是很有钱……,我这人不给穷人卖东西,你自求多福吧。 +windows.wndkeybindings.update=检查更新 + windows.newwndchallenges$1$1.title=挑战模式-Page1 windows.newwndchallenges$2$1.title=挑战模式-Page2 @@ -379,7 +381,9 @@ windows.wndstory.prisonboss=如果你做了坏事,就会付出与之相匹配 作为这个世界的第一个刺客,天狗的职责是什么?他究竟是否还在遵守那个契约?\n\n没有人知道这些。\n\n不过,你并不是天狗等待的那个人\n\n\ 因此,如果你想要去矿洞。必须要先想办法离开这里。\n\n虽然天狗与你无冤无仇,但,真正的钥匙在天狗那里,您必须为这一战付出艰辛的努力。\n\n不过,你究竟是常量吗?\n\n如果是,请拿出证明。 -windows.wndstory.caves=这座从废弃监狱延伸而下的洞穴,早已空无一人。这里对于城市而言过于深入且很难开发,其中极度匮乏的矿物也无法激起矮人的兴趣。曾经在这里有一个为两个势力建立的贸易站,但在矮人国度衰落之后,只有无所不在的豺狼人和地下生物还居住在这里。\n\n但这里早已经被邪恶的魔力控制\n\n这里已经十分危险了。 +windows.wndstory.coldchest=原本关押最危险犯人的区域变成了一个别样的模样,周围的气息越来越冷,一场恶战不可避免…… + +windows.wndstory.caves=暴风雪在此止步,但前方更加寒冷。这座从废弃监狱延伸而下的洞穴,早已空无一人,而如今还被冰雪覆盖。这里对于城市而言过于深入且很难开发,其中极度匮乏的矿物也无法激起矮人的兴趣。曾经在这里有一个为两个势力建立的贸易站,但在矮人国度衰落之后,只有无所不在的豺狼人和地下生物还居住在这里。\n\n但这里早已经被邪恶的魔力控制\n\n这里已经十分危险了。 windows.wndstory.cavesboss=起源,发展,盛世,腐朽,危机,暴乱,谋权,灭亡\n\n这便是这个矮人王国的发展历程\n\n现在,矮人王国的人似乎已经知道你正在前来的路上、\n\n\ 他们为你准备了一份大礼,你是否看见了前面的那台机器?\n\n那是DM,是矮人王国的中的一台巨型采矿机器。\n\n不过,现在这个机器只是在守卫这里。\n\n它在等待什么?\n\n我们又在这里干什么?\n\n 按照你曾经在家看见的古书记载,这里过去就是曾经繁荣昌盛的矮人国度。\n\nDM似乎并没有发现你,虽然这不是DM的错,但你是想寻找到地牢的深处。\n\n为此,你不得不得向这台机器进行殊死搏斗。\n\n记住,要相信自己,能够活下来! diff --git a/core/src/main/assets/sprites/items/items.png b/core/src/main/assets/sprites/items/items.png index 4c64ef59fe0b9a9cef4d285097750eece47cb807..a13ede286f33ab2437d4cea91ce11a20aa1b3f7a 100644 GIT binary patch literal 83083 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%0AdxUFgRJ-mf>mS>S^PJ@^7a(7ZBvJPeHA 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

$4jXRxy8T7Y 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 z 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 + //给予一个看不见的隐形Buff,继承至Invisibility Buff.affect(this, InvisibilityRing.class, InvisibilityRing.DURATION); } 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 d1362a6ec..8130e2515 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 @@ -90,7 +90,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfMys 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.spells.SummonElemental; import com.shatteredpixel.shatteredpixeldungeon.items.stones.StoneOfFlock; import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfCorruption; import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfFireblast; @@ -102,7 +101,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfScale; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.SpiritBow; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.BloodthirstyThorn; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Dagger; -import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Gauntlet; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Gloves; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.LifeTreeSword; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.LockSword; @@ -165,11 +163,11 @@ public enum HeroClass { new LockSword().quantity(1).identify().collect(); new PotionOfInvisibility().quantity(45).identify().collect(); new PotionOfLevitation().quantity(100).identify().collect(); - new SDBSword().quantity(1).identify().collect(); + Buff.affect(hero, ChampionHero.AntiMagic.class, 50000f); new BloodthirstyThorn().quantity(1).identify().collect(); - new Gauntlet().quantity(1).identify().collect(); + new SDBSword().quantity(1).identify().collect(); new WashCrime().quantity(1).identify().collect(); new MagicTorch().quantity(1).identify().collect(); @@ -307,7 +305,7 @@ public enum HeroClass { stones.quantity(3).collect(); Dungeon.quickslot.setSlot(0, stones); - new SummonElemental().quantity(2).identify().collect(); + //new SummonElemental().quantity(1).identify().collect(); if (hero.belongings.armor != null){ hero.belongings.armor.affixSeal(new BrokenSeal()); } @@ -320,7 +318,7 @@ public enum HeroClass { MagesStaff staff; staff = new MagesStaff(new WandOfMagicMissile()); - new MIME.GOLD_FIVE().quantity(1).identify().collect(); + //new MIME.GOLD_FIVE().quantity(1).identify().collect(); (hero.belongings.weapon = staff).identify(); hero.belongings.weapon.activate(hero); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Elemental.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Elemental.java index 77a30c92a..ee3401016 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Elemental.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Elemental.java @@ -34,8 +34,10 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Chill; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Frost; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.HalomethaneBurning; import com.shatteredpixel.shatteredpixeldungeon.effects.Lightning; import com.shatteredpixel.shatteredpixeldungeon.effects.Splash; +import com.shatteredpixel.shatteredpixeldungeon.effects.particles.HalomethaneFlameParticle; import com.shatteredpixel.shatteredpixeldungeon.items.Gold; import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfFrost; import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLiquidFlame; @@ -49,6 +51,7 @@ import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ElementalSprite; import com.watabou.noosa.audio.Sample; +import com.watabou.noosa.particles.Emitter; import com.watabou.utils.Bundle; import com.watabou.utils.Random; @@ -405,6 +408,53 @@ public abstract class Elemental extends Mob { CursedWand.cursedEffect(null, this, enemy); } } + + public static class HaloWar extends Elemental { + + { + spriteClass = SFire.class; + loot = new ScrollOfTransmutation(); + lootChance = 1f; + } + + @Override + protected void rangedProc( Char enemy ) { + if (!level.water[enemy.pos]) { + Buff.affect( enemy, HalomethaneBurning.class ).reignite( enemy, 4f ); + } + if (enemy.sprite.visible) Splash.at( enemy.sprite.center(), sprite.blood(), 5); + } + + @Override + protected void meleeProc( Char enemy, int damage ) { + if (Random.Int( 2 ) == 0 && !level.water[enemy.pos]) { + Buff.affect( enemy, HalomethaneBurning.class ).reignite( enemy ); + if (enemy.sprite.visible) Splash.at( enemy.sprite.center(), sprite.blood(), 5); + } + } + + public static class SFire extends ElementalSprite.Chaos { + + public SFire(){ + super(); + tint(0, 1, 1, 0.4f); + } + + @Override + protected Emitter createEmitter() { + Emitter emitter = emitter(); + emitter.pour( HalomethaneFlameParticle.FACTORY, 0.47f ); + return emitter; + } + + @Override + public void resetColor() { + super.resetColor(); + tint(0, 9, 9, 0.7f); + } + } + + } public static Class random(){ if (Random.Int( 50 ) == 0){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/bosses/DiamondKnight.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/bosses/DiamondKnight.java index 3c1193679..358404d9d 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/bosses/DiamondKnight.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/bosses/DiamondKnight.java @@ -28,15 +28,26 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Badges; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; +import com.shatteredpixel.shatteredpixeldungeon.Statistics; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Boss; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; -import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Blindness; +import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob; +import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Fire; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Bleeding; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; -import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Degrade; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.ColdMagicRat; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; +import com.shatteredpixel.shatteredpixeldungeon.items.Ankh; +import com.shatteredpixel.shatteredpixeldungeon.items.Gold; +import com.shatteredpixel.shatteredpixeldungeon.items.TengusMask; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose; +import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfExperience; +import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfRecharging; +import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.SDBSword; import com.shatteredpixel.shatteredpixeldungeon.levels.ColdChestBossLevel; import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain; import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; @@ -46,7 +57,6 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.DimandKingSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.BossHealthBar; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; -import com.watabou.noosa.Camera; import com.watabou.noosa.audio.Sample; import com.watabou.utils.Bundle; import com.watabou.utils.Random; @@ -60,6 +70,7 @@ public class DiamondKnight extends Boss { initStatus(80); EXP = 10; defenseSkill = 8; + flying=true; spriteClass = DimandKingSprite.class; @@ -74,8 +85,8 @@ public class DiamondKnight extends Boss { @Override public int damageRoll() { - int min = 1; - int max = (HP*2 <= HT) ? 12 : 8; + int min = 8; + int max = (HP*2 <= HT) ? 14 : 9; //模仿玩家的伤害 ColdChestBossLevel.State level = ((ColdChestBossLevel)Dungeon.level).pro(); @@ -102,10 +113,30 @@ public class DiamondKnight extends Boss { * @param effect 无敌效果 * @return true:无敌 */ -// @Override -// public boolean isInvulnerable(Class effect) { -// return this.HP==360; -// } + @Override + public boolean isInvulnerable(Class effect) { + return (this.HP>=301 && this.HP<=360) && effect != DiamondKnight.DiedDamager.class; + } + + public static class DiedDamager extends Buff { + + @Override + public boolean act() { + detach(); + spend( TICK ); + return true; + } + + @Override + public void detach() { + super.detach(); + for (Mob m : Dungeon.level.mobs.toArray(new Mob[0])){ + if (m instanceof DiamondKnight){ + m.damage(12, this); + } + } + } + } @Override public int defenseSkill(Char enemy) { @@ -114,11 +145,15 @@ public class DiamondKnight extends Boss { @Override public int drRoll() { - return Random.NormalIntRange(5,9); + return Random.NormalIntRange(4,8); } @Override public boolean act() { + if(this.HP <= 300 && phase == 1) { + GLog.n(Messages.get(DiamondKnight.class, "war_go")); + phase++; + } return super.act(); } @@ -129,7 +164,7 @@ public class DiamondKnight extends Boss { */ @Override protected boolean canAttack( Char enemy ) { - if (pumpedUp > 0){ + if ( Dungeon.level.distance(enemy.pos, pos) >= 2){ //we check both from and to in this case as projectile logic isn't always symmetrical. //this helps trim out BS edge-cases return Dungeon.level.distance(enemy.pos, pos) <= 2 @@ -140,28 +175,28 @@ public class DiamondKnight extends Boss { } } + private int combo = 0; @Override public int attackProc( Char enemy, int damage ) { damage = super.attackProc( enemy, damage ); -// if (Random.Int( 3 ) == 0) { -// Buff.affect( enemy, Ooze.class ).set( Ooze.DURATION ); -// enemy.sprite.burst( 0x000000, 5 ); -// } + //The gnoll's attacks get more severe the more the player lets it hit them + combo++; + int effect = Random.Int(4)+combo; - if (pumpedUp > 0) { - Camera.main.shake( 3, 0.2f ); + if (effect > 2) { + + if (effect >=6 && enemy.buff(Burning.class) == null){ + + if (Dungeon.level.flamable[enemy.pos]) + GameScene.add(Blob.seed(enemy.pos, 4, Fire.class)); + Buff.affect(enemy, Burning.class).reignite( enemy ); + + } else + Buff.affect( enemy, Poison.class).set((effect-2) ); } - return damage; } - @Override - public boolean attack( Char enemy, float dmgMulti, float dmgBonus, float accMulti ) { - boolean result = super.attack( enemy, dmgMulti, dmgBonus, accMulti ); - pumpedUp = 0; - return result; - } - @Override protected boolean getCloser( int target ) { @@ -172,7 +207,10 @@ public class DiamondKnight extends Boss { return super.getCloser( target ); } - + /** + * @param dmg 伤害 + * @param src 伤害来源 + */ @Override public void damage(int dmg, Object src) { if (!BossHealthBar.isAssigned()){ @@ -193,11 +231,11 @@ public class DiamondKnight extends Boss { ((ColdChestBossLevel)Dungeon.level).progress(); phase++; //血量低于300加载第三场景 - } else if(level == ColdChestBossLevel.State.MAZE_START && this.HP <= 300 && phase == 1) { - GLog.n(Messages.get(DiamondKnight.class,"war_go")); - GameScene.flash(0x808080); - ((ColdChestBossLevel)Dungeon.level).progress(); - phase++; +// } else if(level == ColdChestBossLevel.State.MAZE_START && this.HP <= 300 && phase == 1) { +// GLog.n(Messages.get(DiamondKnight.class,"war_go")); +// GameScene.flash(0x808080); +// ((ColdChestBossLevel)Dungeon.level).progress(); +// phase++; } else if (level == ColdChestBossLevel.State.VSBOSS_START && this.HP <= 240 && phase == 2) { ((ColdChestBossLevel)Dungeon.level).progress(); phase++; @@ -233,8 +271,34 @@ public class DiamondKnight extends Boss { Dungeon.level.unseal(); + Dungeon.level.drop( new TengusMask(), pos ).sprite.drop(); + int dropPos = this.pos; + + Dungeon.level.drop(new ScrollOfRecharging().quantity(2), dropPos).sprite.drop(pos); + + Ankh ankh = new Ankh(); + ankh.bless(); + + Dungeon.level.drop(new Ankh(), dropPos).sprite.drop(pos); + + Dungeon.level.drop(new Gold().quantity(Random.Int(400,900)), pos).sprite.drop(); + + Badges.KILL_SMK(); + + if(Statistics.dimandchestmazeCollected>=3){ + Badges.KILL_OMP(); + } + phase++; + if (!Badges.isUnlocked(Badges.Badge.KILL_SM)){ + Dungeon.level.drop( new SDBSword(), pos ).sprite.drop(); + } else if (Random.Float()<0.43f) { + Dungeon.level.drop( new SDBSword(), pos ).sprite.drop(); + } else { + Dungeon.level.drop( new PotionOfExperience(), pos ).sprite.drop(); + } + GameScene.bossSlain(); //入口 @@ -267,12 +331,15 @@ public class DiamondKnight extends Boss { private final String PUMPEDUP = "pumpedup"; private final String HEALINC = "healinc"; private static final String PHASE ="dimandphase"; + + private static final String COMBO = "combo"; @Override public void storeInBundle( Bundle bundle ) { super.storeInBundle( bundle ); phase = bundle.getInt(PHASE); bundle.put( PUMPEDUP , pumpedUp ); bundle.put( HEALINC, healInc ); + bundle.put(COMBO, combo); if(phase == 5) { spriteClass=DimandKingSprite.PrismaticSprite.class; @@ -299,25 +366,21 @@ public class DiamondKnight extends Boss { spriteClass=DimandKingSprite.class; } + combo = bundle.getInt( COMBO ); + } private void zap() { spend( TIME_TO_ZAP ); if (hit( this, enemy, true )) { - //TODO would be nice for this to work on ghost/statues too - if (enemy == hero && Random.Int( 2 ) == 0) { - Buff.prolong( enemy, Blindness.class, Degrade.DURATION ); - Sample.INSTANCE.play( Assets.Sounds.DEBUFF ); - } - - int dmg = Random.NormalIntRange( 10, 12 ); + int dmg = Random.NormalIntRange( 20, 30 ); enemy.damage( dmg, new ColdMagicRat.DarkBolt() ); - - if (enemy == hero && !enemy.isAlive()) { - Dungeon.fail( getClass() ); - GLog.n( Messages.get(this, "frost_kill") ); + if(Random.Float()<0.45f){ + Buff.affect( enemy, Bleeding.class ).set( 9 ); + Sample.INSTANCE.play( Assets.Sounds.CURSED ); } + Sample.INSTANCE.play( Assets.Sounds.ZAP ); } else { enemy.sprite.showStatus( CharSprite.NEUTRAL, enemy.defenseVerb() ); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/bosses/TPDoor.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/bosses/TPDoor.java new file mode 100644 index 000000000..40b28c235 --- /dev/null +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/bosses/TPDoor.java @@ -0,0 +1,60 @@ +package com.shatteredpixel.shatteredpixeldungeon.actors.mobs.bosses; + +import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero; + +import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; +import com.shatteredpixel.shatteredpixeldungeon.levels.ColdChestBossLevel; +import com.shatteredpixel.shatteredpixeldungeon.levels.traps.RedTrap; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; +import com.shatteredpixel.shatteredpixeldungeon.sprites.TPDoorSprites; +import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; + +public class TPDoor extends Mob { + + { + spriteClass = TPDoorSprites.class; + + HP = HT = 100; + + properties.add(Property.MINIBOSS); + properties.add(Property.INORGANIC); + properties.add(Property.ELECTRIC); + properties.add(Property.IMMOVABLE); + + state = PASSIVE; + + baseSpeed =0; + } + + @Override + public void damage(int dmg, Object src) { + if (dmg >= 20){ + //20 + dmg = 20; + if (hero.buff(DiamondKnight.DiedDamager.class) == null) { + Buff.affect(this, DiamondKnight.DiedDamager.class); + RedTrap run = new RedTrap(); + run.pos = super.pos; + run.activate(); + } + } else { + dmg = 0; + GLog.n(Messages.get(this,"lowdamage")); + } + super.damage(dmg, src); + } + + @Override + public void die( Object cause ) { + + super.die(cause); + GameScene.flash(0x808080); + ((ColdChestBossLevel) Dungeon.level).progress(); + + } + +} + diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/LanFire.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/LanFire.java index 7aa1b7ce4..1ff470835 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/LanFire.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/LanFire.java @@ -6,6 +6,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.IceHealHP; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.InvisibilityRing; import com.shatteredpixel.shatteredpixeldungeon.sprites.LanFireSprites; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; @@ -32,15 +33,17 @@ public class LanFire extends NPC { @Override protected boolean act() { - if (!seenBefore && Dungeon.level.heroFOV[pos]) { + if (!seenBefore && Dungeon.level.heroFOV[pos] && Dungeon.level.distance(pos, hero.pos) <= 3) { seenBefore = true; Buff.affect(hero, IceHealHP.class).set( (100), 1 ); + Buff.affect(this, InvisibilityRing.class, 1000f); GLog.p("篝火的温暖照亮每一个在寒冷中徒步的冒险者,在寒冷而又凛冽的地牢中,这里是唯一的休息站。"); spend(TICK); return true; } else if(seenBefore && !Dungeon.level.heroFOV[pos]) { seenBefore = false; Buff.detach( hero, IceHealHP.class ); + Buff.detach( hero, InvisibilityRing.class); GLog.n("离开温暖的篝火休息站,前方迎面而来的又是凛冽的寒风。"); return true; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/custom/utils/Constants.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/custom/utils/Constants.java index 1c461cc54..6877fa834 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/custom/utils/Constants.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/custom/utils/Constants.java @@ -6,6 +6,7 @@ public class Constants { public static final int MAX_DEPTH = 26; public static final int MAX_QUICKSLOTS = 12; + public static final int MOX_QUICKSLOTS = 8; public static final int MIN_QUICKSLOTS = 3; public static boolean gameIsAndroid(){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/Generator.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/Generator.java index f3eb04ee5..530e1ff54 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/Generator.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/Generator.java @@ -399,7 +399,7 @@ public class Generator { Greatshield.class }; - WEP_T5.probs = new float[]{ 6, 5, 5, 4, 4, 4}; + WEP_T5.probs = new float[]{ 1, 3, 2, 3, 2, 3}; WEP_T6.classes = new Class[]{ IceFishSword.class, 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 new file mode 100644 index 000000000..121f35d2b --- /dev/null +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/books/bookslist/DimandBook.java @@ -0,0 +1,29 @@ +package com.shatteredpixel.shatteredpixeldungeon.items.books.bookslist; + +import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.shatteredpixel.shatteredpixeldungeon.Statistics; +import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; +import com.shatteredpixel.shatteredpixeldungeon.items.books.Books; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; +import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; +import com.watabou.noosa.audio.Sample; + +public class DimandBook extends Books { + private static final String Read = "Read"; + { + image = ItemSpriteSheet.SOYBOOKS; + unique = true; + } + + @Override + public void execute(final Hero hero, String action) { + super.execute(hero, action); + if (action.equals( Read )) { + Sample.INSTANCE.play( Assets.Sounds.READ ); + detach( hero.belongings.backpack ); + GLog.n("你已接受来自未知敌人的挑战……,祝你好运!"); + Statistics.mimicking = true; + } + } +} + diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/quest/MIME.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/quest/MIME.java index 727bba251..194bafb54 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/quest/MIME.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/quest/MIME.java @@ -21,13 +21,18 @@ package com.shatteredpixel.shatteredpixeldungeon.items.quest; +import com.shatteredpixel.shatteredpixeldungeon.Statistics; +import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; +import com.watabou.utils.Bundle; import com.watabou.utils.Random; @SuppressWarnings("all") public class MIME extends Item { + public boolean isMimeSupported = false; + { image = ItemSpriteSheet.DG21; } @@ -96,4 +101,28 @@ public class MIME extends Item { } } + public boolean doPickUp(Hero hero, int pos) { + if (super.doPickUp(hero, pos)) { + if(!isMimeSupported){ + Statistics.dimandchestmazeCollected++; + isMimeSupported = true; + } + return true; + } else { + return false; + } + } + + private static final String COMBO = "combox"; + @Override + public void storeInBundle( Bundle bundle ) { + super.storeInBundle(bundle); + isMimeSupported = bundle.getBoolean(COMBO); + } + + public void restoreInBundle( Bundle bundle ) { + super.storeInBundle(bundle); + isMimeSupported = bundle.getBoolean(COMBO); + } + } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/SummonElemental.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/SummonElemental.java index 559cf1733..ea9839633 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/SummonElemental.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/SummonElemental.java @@ -28,15 +28,18 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.AllyBuff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; +import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroClass; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.huntress.SpiritHawk; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Elemental; import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.FlameParticle; +import com.shatteredpixel.shatteredpixeldungeon.effects.particles.HalomethaneFlameParticle; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.RainbowParticle; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ShaftParticle; import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfFrost; import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLiquidFlame; +import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLiquidFlameX; import com.shatteredpixel.shatteredpixeldungeon.items.quest.Embers; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfRecharging; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportation; @@ -115,7 +118,11 @@ public class SummonElemental extends Spell { summonClass = Elemental.AllyNewBornElemental.class; - detach(Dungeon.hero.belongings.backpack); + + if(Dungeon.hero.heroClass != HeroClass.WARRIOR){ + detach(Dungeon.hero.belongings.backpack); + } + } else { GLog.w(Messages.get(SpiritHawk.class, "no_space")); @@ -129,6 +136,7 @@ public class SummonElemental extends Spell { if (summonClass == Elemental.FrostElemental.class) return new ItemSprite.Glowing(0x8EE3FF); if (summonClass == Elemental.ShockElemental.class) return new ItemSprite.Glowing(0xFFFF85); if (summonClass == Elemental.ChaosElemental.class) return new ItemSprite.Glowing(0xE3E3E3, 0.5f); + if (summonClass == Elemental.HaloWar.class) return new ItemSprite.Glowing(0x00ffff, 0.5f); return super.glowing(); } @@ -143,6 +151,7 @@ public class SummonElemental extends Spell { if (summonClass == Elemental.FrostElemental.class) desc += Messages.get(this, "desc_frost"); if (summonClass == Elemental.ShockElemental.class) desc += Messages.get(this, "desc_shock"); if (summonClass == Elemental.ChaosElemental.class) desc += Messages.get(this, "desc_chaos"); + if (summonClass == Elemental.HaloWar.class) desc += Messages.get(this, "desc_halos"); return desc; } @@ -172,7 +181,7 @@ public class SummonElemental extends Spell { return item.isIdentified() && (item instanceof PotionOfLiquidFlame || item instanceof PotionOfFrost || item instanceof ScrollOfRecharging - || item instanceof ScrollOfTransmutation); + || item instanceof ScrollOfTransmutation || item instanceof PotionOfLiquidFlameX); } @Override @@ -202,6 +211,10 @@ public class SummonElemental extends Spell { Sample.INSTANCE.play(Assets.Sounds.READ); curUser.sprite.emitter().burst( RainbowParticle.BURST, 12 ); summonClass = Elemental.ChaosElemental.class; + } else if (item instanceof PotionOfLiquidFlameX){ + Sample.INSTANCE.play(Assets.Sounds.READ); + curUser.sprite.emitter().burst( HalomethaneFlameParticle.FACTORY, 12 ); + summonClass = Elemental.HaloWar.class; } curUser.sprite.operate(curUser.pos); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfAnmy.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfAnmy.java new file mode 100644 index 000000000..03f872647 --- /dev/null +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfAnmy.java @@ -0,0 +1,166 @@ +package com.shatteredpixel.shatteredpixeldungeon.items.wands; + +import com.shatteredpixel.shatteredpixeldungeon.Assets; +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; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.AllyBuff; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; +import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile; +import com.shatteredpixel.shatteredpixeldungeon.items.Heap; +import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff; +import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.special.MagicalFireRoom; +import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; +import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; +import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; +import com.watabou.noosa.Image; +import com.watabou.noosa.audio.Sample; +import com.watabou.utils.Callback; +import com.watabou.utils.PointF; +import com.watabou.utils.Random; + +public class WandOfAnmy extends DamageWand { + + public static class AllyToRestart extends AllyBuff { + + @Override + public String toString() { + return Messages.get(this, "name"); + } + + @Override + public String desc() { + return Messages.get(this, "desc"); + } + + @Override + public void fx(boolean on) { + if (on) { + target.sprite.add(CharSprite.State.SHIELDED); + Statistics.TryUsedAnmy = true; + } + else + target.sprite.remove(CharSprite.State.SHIELDED); + } + + @Override + public void tintIcon(Image icon) { + icon.hardlight(0x66bbcc); + } + + public int icon() { + return BuffIndicator.HEX; + } + + } + + @Override + protected int initialCharges() { + return 1; + } + + @Override + public void updateLevel() { + maxCharges = 1; + curCharges = Math.min( curCharges, maxCharges ); + } + + { + image = ItemSpriteSheet.WAND_KCX; + } + + + public int min(int lvl){ + return 2+lvl; + } + + public int max(int lvl){ + return 8+5*lvl; + } + + @Override + public void onZap(Ballistica bolt) { + + Heap heap = Dungeon.level.heaps.get(bolt.collisionPos); + if (heap != null) { + heap.freeze(); + } + + Fire fire = (Fire) Dungeon.level.blobs.get(Fire.class); + if (fire != null && fire.volume > 0) { + fire.clear( bolt.collisionPos ); + } + + MagicalFireRoom.EternalFire eternalFire = (MagicalFireRoom.EternalFire)Dungeon.level.blobs.get(MagicalFireRoom.EternalFire.class); + if (eternalFire != null && eternalFire.volume > 0) { + eternalFire.clear( bolt.collisionPos ); + //bolt ends 1 tile short of fire, so check next tile too + if (bolt.path.size() > bolt.dist+1){ + eternalFire.clear( bolt.path.get(bolt.dist+1) ); + } + + } + + Char ch = Actor.findChar(bolt.collisionPos); + if (ch != null){ + + int damage = 0; + + wandProc(ch, chargesPerCast()); + ch.damage(damage, this); + Sample.INSTANCE.play( Assets.Sounds.HIT_MAGIC, 1, 1.1f * Random.Float(0.87f, 1.15f) ); + + if (ch.isAlive() && !Statistics.TryUsedAnmy && (!ch.properties().contains(Char.Property.BOSS) || !ch.properties().contains(Char.Property.MINIBOSS))){ + Buff.affect(ch, AllyToRestart.class); + } else { + GLog.n("不能影响Boss和精英怪,也不能在使用后继续在本层使用,每层仅限一次使用。"); + } + } else { + Dungeon.level.pressCell(bolt.collisionPos); + } + } + + @Override + public void fx(Ballistica bolt, Callback callback) { + MagicMissile.boltFromChar(curUser.sprite.parent, + MagicMissile.FROST, + curUser.sprite, + bolt.collisionPos, + callback); + Sample.INSTANCE.play(Assets.Sounds.ZAP); + } + + @Override + public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) { + // + } + + @Override + public void staffFx(MagesStaff.StaffParticle particle) { + particle.color(0x88CCFF); + particle.am = 0.6f; + particle.setLifespan(2f); + float angle = Random.Float(PointF.PI2); + particle.speed.polar( angle, 2f); + particle.acc.set( 0f, 1f); + particle.setSize( 0f, 1.5f); + particle.radiateXY(Random.Float(1f)); + } + + @Override + public boolean isUpgradable() { + return false; + } + + @Override + public boolean isIdentified() { + return true; + } + +} + diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/BloodthirstyThorn.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/BloodthirstyThorn.java index 37e01bdcf..09f2192d0 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/BloodthirstyThorn.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/BloodthirstyThorn.java @@ -171,7 +171,7 @@ public class BloodthirstyThorn extends MeleeWeapon { /** * @param message 消息弹框控件 */ - public static void message(String message) { + public void message(String message) { Game.runOnRenderThread(() -> ShatteredPixelDungeon.scene().add(new WndMessage(message))); } @@ -201,7 +201,6 @@ public class BloodthirstyThorn extends MeleeWeapon { chaliceOfBlood1.cursed = true; chaliceOfBlood1.level=Random.NormalIntRange(1,3); chaliceOfBlood1.identify().quantity(1).collect(); - message(Messages.get(BloodthirstyThorn.class,"good")); } return sampleOutput(null); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/LockSword.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/LockSword.java index f9fe244c6..9b55c8a98 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/LockSword.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/LockSword.java @@ -37,14 +37,14 @@ public class LockSword extends MeleeWeapon { @Override public int max(int lvl) { - return Math.round(1.9f*(tier+1)) + + return Math.round(1.7f*(tier+1)) + lvl*Math.round(1.5f*(tier+1)); } @Override public int min(int lvl) { - return Math.round(1.5f*(tier+1)) + + return Math.round(1.4f*(tier+1)) + lvl*Math.round(0.5f*(tier+1)); } @@ -76,13 +76,13 @@ public class LockSword extends MeleeWeapon { lvl += 1; } else if (defender.properties().contains(Char.Property.BOSS) && defender.HP <= damage && lvl <= 1000) { //目标Boss血量小于实际伤害判定为死亡,+100 - lvl += 100; + lvl += 50; } else if (defender.properties().contains(Char.Property.MINIBOSS) && defender.HP <= damage && lvl <= 1000) { //目标迷你Boss血量小于实际伤害判定为死亡,+30 - lvl += 50; + lvl += 20; } else if (defender.HP <= damage && lvl <= 1000) { //目标血量小于实际伤害判定为死亡,+15 - lvl += 15; + lvl += 10; } if (lvl>= 900) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MagicTorch.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MagicTorch.java index c1129fbd6..3db7fa2d9 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MagicTorch.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MagicTorch.java @@ -69,22 +69,18 @@ public class MagicTorch extends MeleeWeapon { super.execute(hero, action); //当英雄使用魔法火把时,给英雄添加一个光环buff,光环buff会对周围的敌人造成伤害, // 伤害值为英雄的魔法火把的最大伤害值,持续时间为5回合,每回合造成一次伤害,伤害值为英雄的魔法火把的最大伤害值,光环buff的名称为“光环” - if (action.equals(AC_EQUIP)) { - //In addition to equipping itself, item reassigns itself to the quickslot - //This is a special case as the item is being removed from inventory, but is staying with the hero. - int slot = Dungeon.quickslot.getSlot(this); - doEquip(hero); - if (slot != -1) { - Dungeon.quickslot.setSlot(slot, this); - updateQuickslot(); - } - Buff.affect(hero, MagicLight.class).set( (100), 1 ); - } else if (action.equals(AC_UNEQUIP)) { - doUnequip(hero, true); - Buff.detach(hero, MagicLight.class); - } else if (action.equals(AC_THROW)) { - super.doThrow(hero); - Buff.detach(hero, MagicLight.class); + switch (action) { + case AC_EQUIP: + Buff.affect(hero, MagicLight.class).set((100), 1); + break; + case AC_UNEQUIP: + doUnequip(hero, true); + Buff.detach(hero, MagicLight.class); + break; + case AC_THROW: + super.doThrow(hero); + Buff.detach(hero, MagicLight.class); + break; } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/WornShortsword.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/WornShortsword.java index 450c6d73e..d23dccb6f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/WornShortsword.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/WornShortsword.java @@ -22,6 +22,10 @@ package com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee; import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.actors.Char; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Golem; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; public class WornShortsword extends MeleeWeapon { @@ -36,4 +40,31 @@ public class WornShortsword extends MeleeWeapon { bones = false; } + /** + * 这个方法是用来计算武器的最大伤害的 + * @param attacker 玩家 + * @param defender 怪物 + * @param damage 伤害 + * @return 返回玩家,怪物,伤害 + */ + @Override + public int proc(Char attacker, Char defender, int damage ) { + //为什么下面需要for循环? + //因为有可能有多个怪物,所以需要循环 + for (Mob mob : Dungeon.level.mobs.toArray(new Mob[0])) { + /** 为什么这里检查if? + * 因为有可能是怪物,但是不是Golem,所以需要检查 + * 当是魔像的时候,返回的伤害还会追加5上去 + * 如果希望最大值能给予5,你也可以使用Math.max(damage, 5); + **/ + if(mob instanceof Golem) { + damage+=5; + } + } + return super.proc(attacker, defender, damage); + } + + + + } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/ColdChestBossLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/ColdChestBossLevel.java index 562b87c06..fff4582f0 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/ColdChestBossLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/ColdChestBossLevel.java @@ -11,13 +11,21 @@ import static com.shatteredpixel.shatteredpixeldungeon.levels.ColdChestBossLevel import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ChampionEnemy; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Levitation; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.bosses.DCrystal; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.bosses.DiamondKnight; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.bosses.TPDoor; +import com.shatteredpixel.shatteredpixeldungeon.items.quest.MIME; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportation; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.watabou.utils.Bundle; +import com.watabou.utils.PathFinder; +import com.watabou.utils.Random; import java.util.HashMap; @@ -57,11 +65,22 @@ public class ColdChestBossLevel extends Level { private static final int WIDTH = 35; private final int HEIGHT = 35; + @Override + public int randomRespawnCell( Char ch ) { + int pos = WIDTH + 16; //random cell adjacent to the entrance. + int cell; + do { + cell = pos + PathFinder.NEIGHBOURS8[Random.Int(8)]; + } while (!passable[cell] + || (Char.hasProp(ch, Char.Property.LARGE) && !openSpace[cell]) + || Actor.findChar(cell) != null); + return cell; + } + @Override protected boolean build() { setSize(WIDTH,HEIGHT); - this.entrance = 0; - this.exit = 0; + //首次构建地图 pro = GO_START; setMapStart(); @@ -69,6 +88,7 @@ public class ColdChestBossLevel extends Level { return true; } private static final short W = Terrain.WALL; + private static final short M = Terrain.WELL; private static final short E = Terrain.CHASM; private static final short X = Terrain.EXIT; @@ -92,7 +112,7 @@ public class ColdChestBossLevel extends Level { W,E,E,E,O,O,O,O,O,E,E,E,E,E,E,E,W,P,W,E,E,E,E,E,E,E,O,O,O,O,O,E,E,E,W, W,E,E,E,P,P,P,P,P,E,E,E,E,E,E,E,W,P,W,E,E,E,E,E,E,E,P,P,P,P,P,E,E,E,W, W,E,E,E,P,E,E,E,P,E,E,E,E,E,E,E,W,K,W,E,E,E,E,E,E,E,P,E,E,E,P,E,E,E,W, - W,E,P,E,P,E,P,E,P,E,P,E,P,E,P,E,W,P,W,E,P,E,P,E,P,E,P,E,P,E,P,E,P,E,W, + W,E,P,E,P,E,M,E,P,E,P,E,P,E,P,E,W,P,W,E,P,E,P,E,P,E,P,E,M,E,P,E,P,E,W, W,E,E,E,P,E,E,E,P,E,E,E,E,E,E,E,W,P,W,E,E,E,E,E,E,E,P,E,E,E,P,E,E,E,W, W,E,E,E,P,P,P,P,P,E,E,E,E,E,E,E,W,P,W,E,E,E,E,E,E,E,P,P,P,P,P,E,E,E,W, W,E,E,E,E,E,P,E,E,E,E,E,E,E,E,E,W,K,W,E,E,E,E,E,E,E,E,E,P,E,E,E,E,E,W, @@ -127,7 +147,7 @@ public class ColdChestBossLevel extends Level { private static final int[] MazeRoom = { W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W, - W,J,L,L,L,L,W,L,W,L,W,W,W,W,W,L,L,L,W,W,W,W,W,W,L,L,L,L,W,L,W,W,W,L,W, + W,L,L,L,L,L,W,L,W,L,W,W,W,W,W,L,L,L,W,W,W,W,W,W,L,L,L,L,W,L,W,W,W,L,W, W,W,W,W,W,L,W,L,W,L,W,W,W,W,W,L,W,W,W,W,W,W,W,W,L,W,L,L,W,L,W,W,W,L,W, W,W,W,B,L,L,W,L,L,L,W,L,L,L,W,L,L,L,W,L,L,L,L,L,L,W,L,L,W,L,W,W,W,L,W, W,W,W,L,W,W,W,L,W,W,W,L,W,L,L,L,L,L,W,L,L,L,L,W,W,W,L,L,L,L,L,L,W,L,W, @@ -154,31 +174,31 @@ public class ColdChestBossLevel extends Level { W,W,W,L,L,L,L,L,W,L,L,L,L,L,W,L,L,W,L,L,L,W,L,L,L,L,W,L,W,W,W,W,W,W,W, W,W,W,L,W,L,W,W,W,L,L,L,W,L,W,L,L,W,W,W,L,W,W,W,W,W,W,L,W,L,L,L,L,L,W, W,W,W,L,W,L,L,L,W,L,L,L,W,L,W,L,L,W,L,L,L,L,L,L,L,L,W,L,L,L,W,W,W,L,W, - W,W,W,L,W,L,L,W,W,L,W,L,W,L,L,L,L,W,L,W,W,W,L,W,L,L,W,L,W,L,W,L,W,L,W, + W,W,W,L,W,L,L,W,W,L,W,L,W,L,L,L,L,W,L,W,W,W,L,W,L,L,W,L,W,L,W,E,W,L,W, W,W,W,W,W,L,L,W,W,L,W,L,W,L,W,W,W,W,L,L,W,L,L,W,L,L,L,L,W,L,W,W,W,L,W, W,W,W,L,L,L,W,W,W,L,W,L,W,L,L,W,L,L,L,L,L,L,L,W,L,L,L,L,W,L,L,L,L,L,W, W,W,W,L,W,L,L,L,W,L,W,L,W,L,L,W,L,W,W,W,W,W,L,W,W,W,W,W,W,W,W,W,W,W,W, W,W,W,L,W,L,W,L,W,W,W,W,W,L,W,W,T,L,L,L,W,L,L,L,W,L,L,L,W,L,L,L,W,L,W, - W,B,L,L,W,L,W,L,L,L,L,L,L,L,L,W,W,W,W,W,W,L,W,L,L,L,W,L,L,L,W,L,T,X,W, + W,B,L,L,W,L,W,L,L,L,L,L,L,L,L,W,W,W,W,W,W,L,W,L,L,L,W,L,L,L,W,L,T,L,W, W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W, }; private static final int[] EndMap = { W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W, W,E,E,E,E,E,E,E,E,E,E,E,E,E,E,W,K,O,K,W,E,E,E,E,E,E,E,E,E,E,E,E,E,E,W, - W,E,E,E,E,E,E,E,E,E,E,E,E,E,E,W,K,O,K,W,E,E,E,E,E,E,E,E,E,E,E,E,E,E,W, - W,E,E,E,B,B,B,B,B,B,B,E,E,E,E,W,K,O,K,W,E,E,E,E,E,E,E,E,E,E,E,E,E,E,W, - W,E,E,E,B,K,K,K,K,K,B,E,E,E,E,W,K,O,K,W,E,E,E,E,E,E,E,E,E,E,E,E,E,E,W, - W,E,E,E,B,K,B,B,B,K,B,E,E,E,E,W,K,O,K,W,E,E,E,E,E,E,E,E,E,E,E,E,E,E,W, - W,E,E,E,B,B,B,T,B,B,B,E,E,E,E,W,K,O,K,W,E,E,E,E,E,E,E,E,E,E,E,E,E,E,W, - W,E,E,E,B,K,B,B,B,K,B,E,E,E,E,W,K,O,K,W,E,E,E,E,E,E,E,E,E,E,E,E,E,E,W, - W,E,E,E,B,K,K,K,K,K,B,E,E,W,W,W,K,O,K,W,W,W,E,E,E,E,E,E,E,E,E,E,E,E,W, - W,E,E,E,B,B,B,B,B,B,B,E,E,W,S,K,K,K,K,K,S,W,E,E,E,E,E,E,E,E,E,E,E,E,W, - W,E,E,E,E,E,E,B,E,E,E,E,E,W,K,O,K,O,K,O,K,W,E,E,E,E,E,E,E,E,E,E,E,E,W, - W,E,E,E,E,E,E,B,E,W,W,W,W,W,K,O,K,O,K,O,K,W,W,W,W,W,E,E,E,E,E,E,E,E,W, - W,E,E,E,E,E,E,B,E,W,S,K,K,K,K,O,K,O,K,O,K,K,K,K,S,W,E,E,E,E,E,E,E,E,W, - W,E,E,E,E,E,E,B,E,W,K,O,O,O,O,O,K,O,K,O,O,O,O,O,K,W,E,E,E,E,E,E,E,E,W, - W,E,E,E,E,E,E,B,E,W,K,O,K,S,K,K,K,T,K,K,K,S,K,O,K,W,E,E,E,E,E,E,E,E,W, + W,E,E,W,W,W,W,W,W,W,W,W,E,E,E,W,K,O,K,W,E,E,E,E,E,E,E,E,E,E,E,E,E,E,W, + W,E,E,W,B,B,B,B,B,B,B,W,E,E,E,W,K,O,K,W,E,E,E,E,E,E,E,E,E,E,E,E,E,E,W, + W,E,E,W,B,K,K,K,K,K,B,W,E,E,E,W,K,O,K,W,E,E,E,E,E,E,E,E,E,E,E,E,E,E,W, + W,E,E,W,B,K,B,B,B,K,B,W,E,E,E,W,K,O,K,W,E,E,E,E,E,E,E,E,E,E,E,E,E,E,W, + W,E,E,W,B,B,B,T,B,B,B,W,E,E,E,W,K,O,K,W,E,E,E,E,E,E,E,E,E,E,E,E,E,E,W, + W,E,E,W,B,K,B,B,B,K,B,W,E,E,E,W,K,O,K,W,E,E,E,E,E,E,E,E,E,E,E,E,E,E,W, + W,E,E,W,B,K,K,K,K,K,B,W,E,W,W,W,K,O,K,W,W,W,E,E,E,E,E,E,E,E,E,E,E,E,W, + W,E,E,W,B,B,B,B,B,B,B,W,E,W,S,K,K,K,K,K,S,W,E,E,E,E,E,E,E,E,E,E,E,E,W, + W,E,E,W,W,W,W,B,W,W,W,W,E,W,K,O,K,O,K,O,K,W,E,E,E,E,E,E,E,E,E,E,E,E,W, + W,E,E,E,E,E,W,B,W,W,W,W,W,W,K,O,K,O,K,O,K,W,W,W,W,W,E,E,E,E,E,E,E,E,W, + W,E,E,E,E,E,W,B,W,W,S,K,K,K,K,O,K,O,K,O,K,K,K,K,S,W,E,E,E,E,E,E,E,E,W, + W,E,E,E,E,E,W,B,W,W,K,O,O,O,O,O,K,O,K,O,O,O,O,O,K,W,E,E,E,E,E,E,E,E,W, + W,E,E,E,E,E,W,B,W,W,K,O,K,S,K,K,K,T,K,K,K,S,K,O,K,W,E,E,E,E,E,E,E,E,W, W,W,W,W,W,W,W,D,W,W,K,K,K,K,B,B,B,B,B,B,B,K,K,K,K,W,W,W,W,W,W,W,W,W,W, W,K,K,K,K,K,K,K,K,S,K,K,K,K,B,K,K,K,K,K,B,K,K,K,K,S,K,K,K,K,K,K,K,K,W, W,O,O,O,K,K,O,K,O,K,O,K,O,K,B,K,B,B,B,K,B,K,O,O,O,K,K,K,K,K,K,O,O,O,W, @@ -186,11 +206,11 @@ public class ColdChestBossLevel extends Level { W,O,O,O,K,K,K,K,K,K,O,O,O,K,B,K,B,B,B,K,B,K,O,K,O,K,O,K,O,K,K,O,O,O,W, W,K,K,K,K,K,K,K,K,S,K,K,K,K,B,K,K,K,K,K,B,K,K,K,K,S,K,K,K,K,K,K,K,K,W, W,W,W,W,W,W,W,W,W,W,K,O,K,K,B,B,B,B,B,B,B,K,K,K,K,W,W,D,W,W,W,W,W,W,W, - W,E,E,E,E,E,E,E,E,W,K,O,K,S,K,K,K,T,K,K,K,S,K,O,K,W,E,B,E,E,E,E,E,E,W, - W,E,E,E,E,E,E,E,E,W,K,O,O,O,O,O,K,O,K,O,O,O,O,O,K,W,E,B,E,E,E,E,E,E,W, - W,E,E,E,E,E,E,E,E,W,S,K,K,K,K,O,K,O,K,O,K,K,K,K,S,W,E,B,E,E,E,E,E,E,W, - W,E,E,E,E,E,E,E,E,W,W,W,W,W,K,O,K,O,K,O,K,W,W,W,W,W,E,B,E,E,E,E,E,E,W, - W,E,E,E,E,E,E,E,E,E,E,E,E,W,K,O,K,O,K,O,K,W,E,E,E,E,E,B,E,E,E,E,E,E,W, + W,E,E,E,E,E,E,E,E,W,K,O,K,S,K,K,K,T,K,K,K,S,K,O,K,W,W,B,W,E,E,E,E,E,W, + W,E,E,E,E,E,E,E,E,W,K,O,O,O,O,O,K,O,K,O,O,O,O,O,K,W,W,B,W,E,E,E,E,E,W, + W,E,E,E,E,E,E,E,E,W,S,K,K,K,K,O,K,O,K,O,K,K,K,K,S,W,W,B,W,E,E,E,E,E,W, + W,E,E,E,E,E,E,E,E,W,W,W,W,W,K,O,K,O,K,O,K,W,W,W,W,W,W,B,W,E,E,E,E,E,W, + W,E,E,E,E,E,E,E,E,E,E,E,E,W,K,O,K,O,K,O,K,W,E,E,E,E,W,B,W,E,E,E,E,E,W, W,E,E,E,E,E,E,E,E,E,E,E,E,W,S,K,K,K,K,K,S,W,E,E,E,W,W,D,W,W,E,E,E,E,W, W,E,E,E,E,E,E,E,E,E,E,E,E,W,W,W,K,O,K,W,W,W,E,E,E,W,K,K,K,W,E,E,E,E,W, W,E,E,E,E,E,E,E,E,E,E,E,E,E,E,W,K,O,K,W,E,E,E,E,E,W,K,T,K,W,E,E,E,E,W, @@ -207,6 +227,12 @@ public class ColdChestBossLevel extends Level { map = WorldRoomShort.clone(); } + + public void setMapEnd(){ + this.entrance = 52; + this.exit = 647; + } + private static final HashMap MAIN_PORTAL = new HashMap<>(5); { MAIN_PORTAL.put(32 + WIDTH * 33, WIDTH*3 + 3); @@ -225,6 +251,24 @@ public class ColdChestBossLevel extends Level { IF_MAIN_PORTAL.put(241, 474); } + private static final HashMap S_MAIN_PORTAL = new HashMap<>(5); + { + S_MAIN_PORTAL.put(844, 111); + S_MAIN_PORTAL.put(869, 133); + + S_MAIN_PORTAL.put(181, 682); + S_MAIN_PORTAL.put(203, 682); + } + + private static final HashMap IF_S_MAIN_PORTAL = new HashMap<>(5); + { + IF_S_MAIN_PORTAL.put(844, 111); + IF_S_MAIN_PORTAL.put(869, 133); + + IF_S_MAIN_PORTAL.put(181, 682); + IF_S_MAIN_PORTAL.put(203, 682); + } + @Override public void occupyCell(Char ch) { super.occupyCell(ch); @@ -234,15 +278,32 @@ public class ColdChestBossLevel extends Level { if(ch == hero){ //指定区域 + + + + if(S_MAIN_PORTAL.containsKey(ch.pos) && pro == START) { + ScrollOfTeleportation.appear(ch, IF_S_MAIN_PORTAL.get(ch.pos)); + //传送目标区域 第一场景 + hero.interrupt(); + Dungeon.observe(); + GameScene.updateFog(); + if(ch.pos==682){ + Buff.detach(hero, Levitation.class); + } else if(ch.pos==111||ch.pos==133) { + Buff.affect( hero, Levitation.class, Levitation.DURATION*20 ); + } + } + if(MAIN_PORTAL.containsKey(ch.pos) && pro == MAZE_START) { ScrollOfTeleportation.appear(ch, IF_MAIN_PORTAL.get(ch.pos)); - //传送目标区域 + //传送目标区域 第二场景 hero.interrupt(); Dungeon.observe(); GameScene.updateFog(); } + } - //GLog.n(String.valueOf(hero.pos)); + //GLog.n(String.valueOf(Statistics.dimandchestmazeCollected)); } @@ -262,6 +323,23 @@ public class ColdChestBossLevel extends Level { set( 1102, Terrain.EMPTY ); GameScene.updateMap( 1102 ); Dungeon.observe(); + + //进行Roll判定 + switch(Random.NormalIntRange(0,3)){ + case 0: + drop( new MIME.GOLD_ONE(),634 ); + break; + case 1: + drop( new MIME.GOLD_ONE(),660 ); + break; + case 2: + drop( new MIME.GOLD_ONE(),308 ); + break; + case 3: + drop( new MIME.GOLD_ONE(),286 ); + break; + } + pro = START; break; case START: @@ -277,6 +355,95 @@ public class ColdChestBossLevel extends Level { //玩家移动到初始位 ScrollOfTeleportation.appear(hero, STARTPOS); boss.HP = 360; + + //进行Roll判定 获得一定的随机坐标 + if(Random.Float()<0.5f) { + switch(Random.NormalIntRange(0,4)){ + case 0: + drop( new MIME.GOLD_TWO(),570 ); + break; + case 1: + drop( new MIME.GOLD_TWO(),472 ); + break; + case 2: + drop( new MIME.GOLD_TWO(),1041 ); + break; + case 3: + drop( new MIME.GOLD_TWO(),52 ); + break; + case 4: + drop( new MIME.GOLD_TWO(),1096 ); + break; + } + } else { + switch(Random.NormalIntRange(0,4)){ + case 0: + drop( new MIME.GOLD_THREE(),570 ); + break; + case 1: + drop( new MIME.GOLD_THREE(),472 ); + break; + case 2: + drop( new MIME.GOLD_THREE(),1041 ); + break; + case 3: + drop( new MIME.GOLD_THREE(),52 ); + break; + case 4: + drop( new MIME.GOLD_THREE(),1096 ); + break; + } + } + + switch (Random.NormalIntRange(0,8)){ + case 0: + TPDoor ds0 = new TPDoor(); + ds0.pos = 613; + GameScene.add(ds0); + break; + case 1: + TPDoor ds1 = new TPDoor(); + ds1.pos = 888; + GameScene.add(ds1); + break; + case 2: + TPDoor ds2 = new TPDoor(); + ds2.pos = 1088; + GameScene.add(ds2); + break; + case 3: + TPDoor ds3 = new TPDoor(); + ds3.pos = 732; + GameScene.add(ds3); + break; + case 4: + TPDoor ds4 = new TPDoor(); + ds4.pos = 297; + GameScene.add(ds4); + break; + case 5: + TPDoor ds5 = new TPDoor(); + ds5.pos = 206; + GameScene.add(ds5); + break; + case 6: + TPDoor ds6 = new TPDoor(); + ds6.pos = 255; + GameScene.add(ds6); + break; + case 7: + TPDoor ds7 = new TPDoor(); + ds7.pos = 1186; + GameScene.add(ds7); + break; + case 8: + TPDoor ds8 = new TPDoor(); + ds8.pos = 820; + GameScene.add(ds8); + break; + } + + pro = MAZE_START; } } @@ -290,11 +457,33 @@ public class ColdChestBossLevel extends Level { if (pro == MAZE_START && boss.HP <= 300) { //动态修改整个房间 宝藏迷宫 changeMap(EndMap); + Buff.affect(boss, ChampionEnemy.Halo.class); ScrollOfTeleportation.appear(boss,647); //玩家移动到初始位 ScrollOfTeleportation.appear(hero, 962); //drop( new PotionOfPurity(),648 ); + //进行Roll判定 + if(Random.Float()<0.5f) { + switch(Random.NormalIntRange(0,1)){ + case 0: + drop( new MIME.GOLD_FOUR(),217 ); + break; + case 1: + drop( new MIME.GOLD_FOUR(),1042 ); + break; + } + } else { + switch(Random.NormalIntRange(0,1)){ + case 0: + drop( new MIME.GOLD_FIVE(),217 ); + break; + case 1: + drop( new MIME.GOLD_FIVE(),1042 ); + break; + } + } + //生成四个水晶,宝箱王持续回血 for (int i : FourCrystal) { DCrystal ds = new DCrystal(); @@ -336,9 +525,17 @@ public class ColdChestBossLevel extends Level { //如果楼层为开始且boss血量小于100 判定WIN if (pro == VSYOU_START && boss.HP <= 100) { pro = WIN; + Buff.detach(boss, ChampionEnemy.Halo.class); + setMapEnd(); } } } + //水晶自爆 + for (Mob boss : Dungeon.level.mobs.toArray(new Mob[0])) { + if (boss instanceof DCrystal) { + boss.die(true); + } + } break; case WIN: // diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/Level.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/Level.java index 25c8b31bb..62384d2cc 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/Level.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/Level.java @@ -589,7 +589,7 @@ public abstract class Level implements Bundlable { visuals.add( new FlowParticle.Flow( i - width() ) ); } } - if(Dungeon.depth >= 6){ + if(Dungeon.depth >= 6 && Dungeon.depth <= 10){ visuals.add( new ColdSnowParticles.Snow(i)); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/RegularLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/RegularLevel.java index 379491a13..d3bdf1616 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/RegularLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/RegularLevel.java @@ -69,6 +69,7 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.special.SpecialRoom import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.standard.AquariumRoom; import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.standard.EntranceRoom; import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.standard.ExitRoom; +import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.standard.MagicDimandRoom; import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.standard.StandardRoom; import com.shatteredpixel.shatteredpixeldungeon.levels.traps.BlazingTrap; import com.shatteredpixel.shatteredpixeldungeon.levels.traps.BurningTrap; @@ -233,6 +234,10 @@ public abstract class RegularLevel extends Level { if (Dungeon.aqiLevel() && (Dungeon.isChallenged(AQUAPHOBIA))) initRooms.add(new AquariumRoom()); + if(Dungeon.depth == 9){ + initRooms.add(new MagicDimandRoom()); + } + if (Dungeon.NxhyshopOnLevel()) { initRooms.add(new NxhyShopRoom()); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/MagicDimandRoom.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/MagicDimandRoom.java index 43464d28e..776ace15f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/MagicDimandRoom.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/MagicDimandRoom.java @@ -1,7 +1,7 @@ package com.shatteredpixel.shatteredpixeldungeon.levels.rooms.standard; import com.shatteredpixel.shatteredpixeldungeon.Assets; -import com.shatteredpixel.shatteredpixeldungeon.items.quest.CeremonialCandle; +import com.shatteredpixel.shatteredpixeldungeon.items.books.bookslist.DimandBook; import com.shatteredpixel.shatteredpixeldungeon.levels.Level; import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain; import com.shatteredpixel.shatteredpixeldungeon.levels.painters.Painter; @@ -36,6 +36,9 @@ public class MagicDimandRoom extends StandardRoom{ ChestMarker vis = new ChestMarker(); Point c = center(); vis.pos(c.x - 1, c.y - 1); + int pos = level.pointToCell(center()); + + level.drop( new DimandBook(),pos ); level.customTiles.add(vis); @@ -46,7 +49,7 @@ public class MagicDimandRoom extends StandardRoom{ // level.addItemToSpawn(new CeremonialCandle()); // level.addItemToSpawn(new CeremonialCandle()); - CeremonialCandle.ritualPos = c.x + (level.width() * c.y); + //CeremonialCandle.ritualPos = c.x + (level.width() * c.y); } public static class ChestMarker extends CustomTilemap { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameNewsScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameNewsScene.java index 8484e5945..3bd0aa300 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameNewsScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameNewsScene.java @@ -1,5 +1,6 @@ package com.shatteredpixel.shatteredpixeldungeon.scenes; +import com.badlogic.gdx.Gdx; import com.shatteredpixel.shatteredpixeldungeon.Chrome; import com.shatteredpixel.shatteredpixeldungeon.SPDSettings; import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; @@ -25,74 +26,68 @@ import com.watabou.utils.DeviceCompat; import java.util.ArrayList; -public class GameNewsScene extends PixelScene { - boolean displayingNoArticles = false; +public class GameNewsScene extends PixelScene { //定义GameNewsScene类,继承PixelScene类 + + boolean displayingNoArticles = false; //声明一个布尔类型的变量,用于标记是否需要显示文章 + + private static final int BTN_HEIGHT = 22; //声明一个常量,表示Button的高度 + private static final int BTN_WIDTH = 100; //声明一个常量,表示Button的宽度 - private static final int BTN_HEIGHT = 22; - private static final int BTN_WIDTH = 100; - RenderedTextBlock title = PixelScene.renderTextBlock(Messages.get(this, "title"), 9); @Override - public void create() { - super.create(); + public void create() { //重写create方法 - uiCamera.visible = false; + super.create(); //调用父类的create方法 - int w = Camera.main.width; - int h = Camera.main.height; + uiCamera.visible = false; //设置UI相机不可见 - int fullWidth = PixelScene.landscape() ? 202 : 100; - int left = (w - fullWidth)/2; + int w = Camera.main.width; //获取主相机的宽度 + int h = Camera.main.height; //获取主相机的高度 - Archs archs = new Archs(); - archs.setSize(w, h); - add(archs); + int fullWidth = PixelScene.landscape() ? 202 : 100; //如果是横屏模式,设置整个场景的宽度为202,否则为100 + int left = (w - fullWidth) / 2; //左边列Button的左边沿位置 + Archs archs = new Archs(); //创建一个Archs实例,用作场景背景 + archs.setSize(w, h); //设置Archs实例的大小 + add(archs); //添加Archs实例到场景中 -// title.hardlight(Window.TITLE_COLOR); -// title.setPos( -// (w - title.width()) / 2f, -// (20 - title.height()) / 2f -// ); -// align(title); -// add(title); + float top = 18; //左边列Button的上边缘位置 - float top = 18; + displayingNoArticles = !UpdateNews.articlesAvailable(); //检查是否有文章可用,如果没有就设置displayingNoArticles为True + if (displayingNoArticles || Messages.lang() != Languages.CHINESE) { //如果没有文章或者语言不是中文 - displayingNoArticles = !UpdateNews.articlesAvailable(); - if (displayingNoArticles || Messages.lang() != Languages.CHINESE) { + Component newsInfo = new GameNewsScene.NewsInfo(); //创建一个新闻信息组件 + newsInfo.setRect(left, 20, fullWidth, 0); //设置组件的位置和大小 + add(newsInfo); //将组件添加到场景中 - Component newsInfo = new GameNewsScene.NewsInfo(); - newsInfo.setRect(left, 20, fullWidth, 0); - add(newsInfo); - - top = newsInfo.bottom(); + top = newsInfo.bottom(); //将左边列Button的上边沿位置设置为新闻信息组件的下边沿位置 } - StyledButton btnSite = new StyledButton(Chrome.Type.GREY_BUTTON_TR, Messages.get(this, "read_more")){ + StyledButton btnSite = new StyledButton(Chrome.Type.GREY_BUTTON_TR, Messages.get(this, "read_more")) { //创建一个样式化的Button @Override - protected void onClick() { + protected void onClick() { //重写当前Button的onClick方法,点击按钮时切换到标题场景 super.onClick(); - ShatteredPixelDungeon.switchNoFade( TitleScene.class ); + ShatteredPixelDungeon.switchNoFade(TitleScene.class); } }; - btnSite.icon(Icons.get(Icons.NEWS)); - btnSite.textColor(Window.TITLE_COLOR); - btnSite.setRect(left, 190, fullWidth, BTN_HEIGHT); - add(btnSite); + btnSite.icon(Icons.get(Icons.NEWS)); //为Button添加图标 + btnSite.textColor(Window.TITLE_COLOR); //设置Button文本的颜色 + btnSite.setRect(left, 190, fullWidth, BTN_HEIGHT); //设置Button的位置和大小 + add(btnSite); //将Button添加到场景中 - if (!displayingNoArticles) { - ArrayList articles = UpdateNews.articles(); + if (!displayingNoArticles) { //有文章可用于加载时 - float articleSpace = h - top - 2; - int rows = articles.size(); - if (PixelScene.landscape()){ - rows /= 2; + ArrayList articles = UpdateNews.articles(); //获取文章列表 + + float articleSpace = h - top - 2; //计算剩余空间 + int rows = articles.size(); //计算行数 + if (PixelScene.landscape()) { + rows /= 2; //如果是横屏模式,每行只放置两个Button } rows++; - while ((articleSpace) / (BTN_HEIGHT+0.5f) < rows) { + while ((articleSpace) / (BTN_HEIGHT + 0.5f) < rows) { //如果当前所有文章无法显示完整,则删除最后的文章 articles.remove(articles.size() - 1); if (PixelScene.landscape()) { articles.remove(articles.size() - 1); @@ -100,199 +95,232 @@ public class GameNewsScene extends PixelScene { rows--; } - float gap = ((articleSpace) - (BTN_HEIGHT * rows)) / (float)rows; + float gap = ((articleSpace) - (BTN_HEIGHT * rows)) / (float) rows; //计算空隙大小 - boolean rightCol = false; - for (GameUpdateNewsArticles article : articles) { - StyledButton b = new GameNewsScene.ArticleButton(article); - b.multiline = true; - if (!rightCol) { - top += gap; - b.setRect( left, top, BTN_WIDTH, BTN_HEIGHT); + boolean rightCol = false; //是否为右边的列 + for (GameUpdateNewsArticles article : articles) { //遍历文章列表中的所有文章 + + StyledButton b = new GameNewsScene.ArticleButton(article); //创建一个新的文章Button + b.multiline = true; //设置Button可换行 + + if (!rightCol) { //如果不是右边的列 + top += gap; //调整top位置 + b.setRect(left, top, BTN_WIDTH, BTN_HEIGHT); //设置Button位置和大小 } else { - b.setRect( left + fullWidth - BTN_WIDTH, top, BTN_WIDTH, BTN_HEIGHT); + b.setRect(left + fullWidth - BTN_WIDTH, top, BTN_WIDTH, BTN_HEIGHT); //设置Button位置和大小 } - align(b); - add(b); + + align(b); //将Button与其他元素对齐 + add(b); //将Button添加到场景中 + if (!PixelScene.landscape()) { top += BTN_HEIGHT; } else { - if (rightCol){ + if (rightCol) { top += BTN_HEIGHT; } rightCol = !rightCol; } - btnSite.visible= false; - btnSite.active= false; - if(article.ling > Game.versionCode || article.ling < Game.versionCode) { - RenderedTextBlock title = PixelScene.renderTextBlock("你的版本需要更新!", 9); - title.hardlight(Window.RED_COLOR); - title.setPos( - (w - title.width()) / 2f, - (20 - title.height()) / 2f - ); - align(title); - add(title); + btnSite.visible = false; //将Button的可见性设置为False + btnSite.active = false; //将Button的活跃状态设置为False + + RenderedTextBlock title; + + if (article.ling > Game.versionCode) { //如果文章需要更新的版本号大于当前版本号 + title = PixelScene.renderTextBlock("你的版本需要更新!", 9); //创建一个渲染的文本块,并设置为"你的版本需要更新!" + title.hardlight(Window.RED_COLOR); //将文本块突出显示为红色 + } else if (article.ling < Game.versionCode) { //如果文章需要更新的版本号小于当前版本号 + title = PixelScene.renderTextBlock("警告:你的版本可能是盗版!", 9); //创建一个渲染的文本块,并设置为"警告:你的版本可能是盗版!" + title.hardlight(Window.CBLACK); //将文本块突出显示为黑色 } else { - RenderedTextBlock title = PixelScene.renderTextBlock("已是最新版本!", 9); - title.hardlight(Window.TITLE_COLOR); - title.setPos( - (w - title.width()) / 2f, - (20 - title.height()) / 2f - ); - align(title); - add(title); + title = PixelScene.renderTextBlock("已是最新版本!", 9); //如果文章版本号与当前版本号相同,创建一个渲染的文本块,并设置为"已是最新版本!" + title.hardlight(Window.TITLE_COLOR); //将文本块突出显示为标题颜色 } + + title.setPos((w - title.width()) / 2f, (20 - title.height()) / 2f); //设置文本块位置 + align(title); //将文本块与其他元素对齐 + add(title); //将文本块添加到场景中 } - top += gap; - } else { - top += 18; } - - } - @Override - public void update() { - if (displayingNoArticles && UpdateNews.articlesAvailable()){ - ShatteredPixelDungeon.seamlessResetScene(); + public void update() { //重写update方法 + + if (displayingNoArticles && UpdateNews.articlesAvailable()) { //如果没有可用的文章并且有文章可用于加载 + ShatteredPixelDungeon.seamlessResetScene(); //重置场景 } - super.update(); + + super.update(); //调用父类的update方法 } - private static class NewsInfo extends Component { + private static class NewsInfo extends Component { //创建一个新闻信息组件 - NinePatch bg; - RenderedTextBlock text; + NinePatch bg; //声明一个NinePatch实例,用作背景 + RenderedTextBlock text; //声明一个RenderedTextBlock实例,用于显示文字信息 - RedButton button; + RedButton button; //声明一个RedButton实例 @Override - protected void createChildren() { - bg = Chrome.get(Chrome.Type.GREY_BUTTON_TR); + protected void createChildren() { //创建组件中的子元素 + + // 添加背景 + bg = Chrome.get(Chrome.Type.SCROLL); add(bg); - String message = Game.version+"---"+Game.versionCode; + // 设置消息文本信息,包含游戏版本号和版本代码 + String message = Game.version + "-VC" + Game.versionCode; - SPDSettings.WiFi(false); + // 检查是否有可用更新 UpdateNews.checkForNews(); - if (!UpdateNews.articlesAvailable()){ + // 如果没有可用新闻显示 + if (!UpdateNews.articlesAvailable()) { + // 判断用户是否允许显示新闻,并且在未连接到无限制网络下提示 if (SPDSettings.news()) { if (SPDSettings.WiFi() && !Game.platform.connectedToUnmeteredNetwork()) { + // 显示警告信息 message += "\n\n" + Messages.get(this, "metered_network"); - - button = new RedButton(Messages.get(this, "enable_data")) { - @Override - protected void onClick() { - super.onClick(); - SPDSettings.WiFi(false); - UpdateNews.checkForNews(); - ShatteredPixelDungeon.seamlessResetScene(); - } - }; - add(button); + // 添加红色按钮,用于启用数据 } else { + // 显示没有网络的信息 message += "\n\n" + Messages.get(this, "no_internet"); } } else { - message += "\n\n" + Messages.get(this, "news_disabled"); - - button = new RedButton(Messages.get(this, "enable_news")) { - @Override - protected void onClick() { - super.onClick(); - SPDSettings.news(true); - UpdateNews.checkForNews(); - ShatteredPixelDungeon.seamlessResetScene(); - } - }; - add(button); + // 新闻被禁用时,显示新闻禁用的信息,并添加红色按钮,用于启用新闻 + message += "\n\n" + Messages.get(this, "no_internet"); } } + // 去掉多余的换行符 if (message.startsWith("\n\n")) message = message.replaceFirst("\n\n", ""); + // 渲染文本块,并设置位置 text = PixelScene.renderTextBlock(message, 6); - text.hardlight(CharSprite.WARNING); + text.hardlight(CharSprite.DEFAULT); add(text); } + // 布局 @Override protected void layout() { + // 背景定位 bg.x = x; bg.y = y; - text.maxWidth((int)width - bg.marginHor()); - text.setPos(x + bg.marginLeft(), y + bg.marginTop()+1); + // 设置文本最大宽度 + text.maxWidth((int) width - bg.marginHor()); + // 设置文本位置 + text.setPos(x + bg.marginLeft(), y + bg.marginTop() + 1); + // 计算高度 height = (text.bottom()) - y; - - if (button != null){ + // 如果有按钮,增加高度 + if (button != null) { height += 4; + // 设置按钮为多行显示 button.multiline = true; button.setSize(width - bg.marginHor(), 16); button.setSize(width - bg.marginHor(), Math.max(button.reqHeight(), 16)); - button.setPos(x + (width - button.width())/2, y + height); + // 重新定位按钮 + button.setPos(x + (width - button.width()) / 2, y + height); height = button.bottom() - y; } + // 添加底部边距 height += bg.marginBottom() + 1; + // 设置背景大小 bg.size(width, height); - } } + // ArticleButton类,表现为一个StyledButton样式的按钮,并根据游戏版本号与服务器版本号的大小关系展示不同的图标 private static class ArticleButton extends StyledButton { - + // 消息提示 public static void message(String message) { Game.runOnRenderThread(() -> ShatteredPixelDungeon.scene().add(new WndMessage(message))); } + GameUpdateNewsArticles article; BitmapText date; + /** + * 创建一个新的按钮 + * + * @param article 按钮对应的文章 + * 如果游戏的版本号大于服务器的最大版本号,按钮会显示一个警告图标 + * 如果游戏的版本号小于服务器的最小版本号,按钮会显示一个更新图标 + * 如果游戏的版本号等于服务器的最大版本号,按钮会显示一个天赋图标 + */ public ArticleButton(GameUpdateNewsArticles article) { super(Chrome.Type.GREY_BUTTON_TR, article.title, 6); this.article = article; - if(article.ling > Game.versionCode || article.ling < Game.versionCode){ + if (article.ling > Game.versionCode || article.ling < Game.versionCode) { icon(UpdateNews.parseArticleIcon(article)); - ShatteredPixelDungeon.scene().add(new WndOptions(Icons.get(Icons.CHANGES), - article.title, - article.summary, - Messages.get(this, "download"),Messages.get(this, "okay")) { - @Override - protected void onSelect(int index) { - if (index == 0) { - //q:书写下面的代码效果注释 - //a:如果是桌面版,就打开桌面版的下载链接 - //a:如果是安卓版,就打开安卓版的下载链接 - if(DeviceCompat.isDesktop()){ - ShatteredPixelDungeon.platform.openURI(article.DesktopURL); + if (article.ling > Game.versionCode) { + // 向用户展示新文章可用的选项:下载或退出游戏 + ShatteredPixelDungeon.scene().add(new WndOptions(Icons.get(Icons.CHANGES), + article.title, + article.summary, + Messages.get(this, "download"), Messages.get(this, "okay")) { + @Override + protected void onSelect(int index) { + if (index == 0) { + // 如果是桌面版就打开桌面版的下载链接,否则打开安卓版的下载链接 + if (DeviceCompat.isDesktop()) { + ShatteredPixelDungeon.platform.openURI(article.DesktopURL); + } else { + ShatteredPixelDungeon.platform.openURI(article.URL); + } + ShatteredPixelDungeon.switchNoFade(TitleScene.class); } else { - ShatteredPixelDungeon.platform.openURI(article.URL); + ShatteredPixelDungeon.switchNoFade(TitleScene.class); } - ShatteredPixelDungeon.switchNoFade(TitleScene.class); - } else { - ShatteredPixelDungeon.switchNoFade(TitleScene.class); } - } - @Override - public void onBackPressed() { - // - } - }); + + @Override + public void onBackPressed() { + // + } + }); + } else { + // 向用户展示新版本可用的选项:强制下载或退出游戏 + ShatteredPixelDungeon.scene().add(new WndOptions(Icons.get(article.ling < Game.versionCode ? + Icons.WARNING : Icons.CHANGES), + article.title, + article.summary, + Messages.get(this, "force_download")) { + @Override + protected void onSelect(int index) { + if (index == 0) { + // 如果是桌面版就打开桌面版的下载链接,否则打开安卓版的下载链接 + if (DeviceCompat.isDesktop()) { + ShatteredPixelDungeon.platform.openURI(article.DesktopURL); + } else { + ShatteredPixelDungeon.platform.openURI(article.URL); + } + Gdx.app.exit(); + } + } + + @Override + public void onBackPressed() { + // + } + }); + } } else { + // 显示天赋图标并提示用户已经更新完成 icon(UpdateNews.parseArticleIcon(article)); - ShatteredPixelDungeon.scene().add(new WndOptions(Icons.get(Icons.CHANGES), + ShatteredPixelDungeon.scene().add(new WndOptions(Icons.get(Icons.TALENT), Messages.get(this, "update"), - Messages.get(this, "desc"), + Messages.get(this, "desc")+"\n\n"+article.summary, Messages.get(this, "okay")) { @Override protected void onSelect(int index) { @@ -300,6 +328,7 @@ public class GameNewsScene extends PixelScene { ShatteredPixelDungeon.switchNoFade(TitleScene.class); } } + public void onBackPressed() { // } @@ -308,16 +337,17 @@ public class GameNewsScene extends PixelScene { } } + // 布局 @Override protected void layout() { super.layout(); - bg.active=false; - bg.visible=false; - icon.x = x + bg.marginLeft() + (16-icon.width())/2f; - icon.visible=false; + bg.active = false; + bg.visible = false; + icon.x = x + bg.marginLeft() + (16 - icon.width()) / 2f; + icon.visible = false; PixelScene.align(icon); text.setPos(x + bg.marginLeft() + 18, text.top()); - text.visible=false; + text.visible = false; if (date != null) { date.x = x + width - bg.marginRight() - date.width() + 1; date.y = y + height - bg.marginBottom() - date.height() + 2.5f; @@ -325,10 +355,11 @@ public class GameNewsScene extends PixelScene { } } + // 点击事件 @Override protected void onClick() { super.onClick(); - // + // } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java index f02fd490b..3597bad91 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java @@ -41,6 +41,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ChampionEnemy; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ClearBleesdGoodBuff.BlessAnmy; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ClearBleesdGoodBuff.BlessGoRead; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ClearBleesdGoodBuff.BlessGoodSTR; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ClearBleesdGoodBuff.BlessImmune; @@ -54,6 +55,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicGirlDebuff.Mag import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicGirlDebuff.MagicGirlSayNoSTR; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicGirlDebuff.MagicGirlSaySlowy; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicGirlDebuff.MagicGirlSaySoftDied; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicGirlDebuff.MagicGirlSayTimeLast; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.DemonSpawner; @@ -505,6 +507,13 @@ public class GameScene extends PixelScene { case 6: WndStory.showChapter( WndStory.ID_PRISON ); break; + case 10: + if((Statistics.boss_enhance & 0x2) != 0 || Statistics.mimicking) { + WndStory.showChapter(WndStory.ID_COLDCHESTBOSS); + } else { + WndStory.showChapter(WndStory.ID_PRISONBOSS); + } + break; case 11: WndStory.showChapter( WndStory.ID_CAVES ); break; @@ -1403,6 +1412,7 @@ public class GameScene extends PixelScene { Buff.detach( ch, BlessMixShiled.class ); Buff.detach( ch, BlessMobDied.class ); Buff.detach( ch, BlessNoMoney.class ); + Buff.detach( ch, BlessAnmy.class ); Buff.detach( ch, MagicGirlSayCursed.class ); Buff.detach( ch, MagicGirlSayKill.class ); @@ -1410,6 +1420,7 @@ public class GameScene extends PixelScene { Buff.detach( ch, MagicGirlSaySlowy.class ); Buff.detach( ch, MagicGirlSaySoftDied.class ); Buff.detach( ch, MagicGirlSayNoSTR.class ); + Buff.detach( ch, MagicGirlSayTimeLast.class ); } public static void bossSlain() { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java index 21496e360..76f1e3eae 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java @@ -182,7 +182,7 @@ public class InterlevelScene extends PixelScene { fadeTime += 0.9f; //adds 1 second total //speed up transition when debugging } else if (DeviceCompat.isDebug()){ - fadeTime = 0.1f; + fadeTime = 0.9f; } SkinnedBlock bg = new SkinnedBlock(Camera.main.width, Camera.main.height, loadingAsset ){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/DimandKingSprite.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/DimandKingSprite.java index 7ad0c2c47..fe81d8804 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/DimandKingSprite.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/DimandKingSprite.java @@ -14,6 +14,7 @@ import com.watabou.utils.Callback; public class DimandKingSprite extends MobSprite { private Emitter teleParticles; + private Animation cast; public DimandKingSprite() { super(); @@ -31,12 +32,39 @@ public class DimandKingSprite extends MobSprite { attack = new Animation( 15, false ); attack.frames( frames, 5,6,7,8); + cast = attack.clone(); + die = new Animation( 3, false ); die.frames( frames, 9,10,11 ); play( idle ); } + @Override + public void attack( int cell ) { + if (!Dungeon.level.adjacent(cell, ch.pos)) { + + MagicMissile.boltFromChar( parent, + MagicMissile.SWORDLING, + this, + cell, + new Callback() { + @Override + public void call() { + ((DiamondKnight)ch).onZapComplete(); + } + } ); + + play( cast ); + turnTo( ch.pos , cell ); + + } else { + + super.attack( cell ); + + } + } + @Override public void link(Char ch) { super.link(ch); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java index 46f00e034..fe5688daa 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java @@ -388,6 +388,8 @@ public class ItemSpriteSheet { public static final int WAND_REGROWTH = WANDS+11; public static final int WAND_TRANSFUSION = WANDS+12; public static final int WAND_HTR = WANDS+14; + + public static final int WAND_KCX = WANDS+15; static { for (int i = WANDS; i < WANDS+12; i++) assignItemRect(i, 14, 14); @@ -803,6 +805,8 @@ public class ItemSpriteSheet { public static final int DIFFCULTBOOT= MAINBOOKINDEX+12; public static final int STORYBOOKS= MAINBOOKINDEX+13; + public static final int SOYBOOKS= MAINBOOKINDEX+14; + private static final int MAINPALYBOOKS = xy(1, 40); public static final int MONEYBOOKS= MAINPALYBOOKS+1; public static final int PINKBOOKS= MAINPALYBOOKS+2; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/SwordLingSprites.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/SwordLingSprites.java index 94e165989..7a5f11723 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/SwordLingSprites.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/SwordLingSprites.java @@ -37,7 +37,7 @@ public class SwordLingSprites extends CharSprite{ PointF pointF1 = worldToCamera(to); PointF d = PointF.diff(pointF1,pointF); angle = 90 - (float)(Math.atan2(d.x,d.y) / 3.1415926 * 180); - speed.set(d).normalize().scale(10f); + speed.set(d).normalize().scale(90f); angularSpeed = 0; tweener = new PosTweener(this,pointF1,1f); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/TPDoorSprites.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/TPDoorSprites.java new file mode 100644 index 000000000..ab2128af9 --- /dev/null +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/TPDoorSprites.java @@ -0,0 +1,28 @@ +package com.shatteredpixel.shatteredpixeldungeon.sprites; + +import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.watabou.noosa.TextureFilm; + +public class TPDoorSprites extends MobSprite { + + public TPDoorSprites () { + super(); + + texture( Assets.Sprites.TPDP ); + + TextureFilm frames = new TextureFilm( texture, 16, 16 ); + + idle = new Animation( 6, true ); + idle.frames( frames, 0,1,2 ); + + run = idle.clone(); + + attack = idle.clone(); + + die = new Animation( 7, false ); + die.frames( frames, 1,2 ); + + play( idle ); + } + +} \ No newline at end of file diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ReloadButton.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ReloadButton.java index 2a7028dd0..ec608de47 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ReloadButton.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ReloadButton.java @@ -19,6 +19,7 @@ public class ReloadButton extends IconButton{ ShatteredPixelDungeon.switchNoFade(GameNewsScene.class); } + @Override protected String hoverText() { return Messages.titleCase(Messages.get(WndKeyBindings.class, "update")); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Toolbar.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Toolbar.java index e171f6120..9d514d5b6 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Toolbar.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Toolbar.java @@ -225,7 +225,37 @@ public class Toolbar extends Component { @Override protected void layout() { - final int maxHorizontalQuickslots = PixelScene.landscape() ? 12 : 3; + /** + * 现在的代码是为了适应不同的屏幕尺寸 + * 但是这样做会导致在不同的屏幕尺寸下,按钮的位置不一样 + * 为此使用三目运算符判定当前屏幕尺寸,然后根据不同的屏幕尺寸设置按钮的位置 + */ + float wMin = Game.width / PixelScene.MIN_WIDTH_FULL; + float hMin = Game.height / PixelScene.MIN_HEIGHT_FULL; + final int maxHorizontalQuickslots = + /** 中文 + * 如果是竖屏,那么最多显示12个快捷栏 + * 如果是竖屏且>=5x缩放,那么下方最多显示4个快捷栏 + * 如果是竖屏且>=4x缩放,那么下方最多显示5个快捷栏 + * 如果是竖屏且>=3x缩放,那么下方最多显示8个快捷栏 + * 如果是横屏,那么所有快捷栏在游戏界面底部生成布局 + */ + + /**English + //If it is a vertical screen, then at most 12 quick slots are displayed below + //If it is a vertical screen and >=5x zoom, then at most 4 quick slots are displayed below + //If it is a vertical screen and >=4x zoom, then at most 5 quick slots are displayed below + //If it is a vertical screen and >=3x zoom, then at most 8 quick slots are displayed below + //If it is a horizontal screen, then all quick slots are generated at the bottom of the game interface + */ + + PixelScene.landscape() ? 12 : + + SPDSettings.scale() >= 5 ? 4 : + + SPDSettings.scale() >= 4 ? 5 : + + SPDSettings.scale() >= 3 ? 8 : 12; float right = width; if (SPDSettings.interfaceSize() > 0){ btnInventory.setPos(right - btnInventory.width(), y); @@ -258,7 +288,8 @@ public class Toolbar extends Component { } } - for(int i = 0; i < Constants.MAX_QUICKSLOTS; i++) { + for(int i = 0; i < (Math.min(wMin, hMin) >= 2*Game.density ? Constants.MOX_QUICKSLOTS : + Constants.MAX_QUICKSLOTS); i++) { //FIXME doesn't work for portrait mode and no longer dynamically resizes. if (i == 0 && !SPDSettings.flipToolbar() || i == Math.min(SPDSettings.quickslots(), maxHorizontalQuickslots)-1 && SPDSettings.flipToolbar()) { @@ -302,26 +333,12 @@ public class Toolbar extends Component { } } - startY = 60; + startY = SPDSettings.scale() >= 4 ? 28 : 40; for (int i = maxHorizontalQuickslots; i < btnQuick.length; i++) { QuickslotTool tool = btnQuick[i]; tool.setPos(width - (tool.width() + 2), startY); if (i + 1 < btnQuick.length) { - if(i +1 < 7) { - startY = btnQuick[i].bottom(); - } else if (i == 7) { - startY = btnQuick[i].top(); - tool.setPos(width - (tool.width() + 24), startY); - } else if (i == 8) { - startY = btnQuick[i].top() - 24; - tool.setPos(width - (tool.width() + 24), startY); - } else if (i == 9) { - startY = btnQuick[i].top() - 48; - tool.setPos(width - (tool.width() + 24), startY); - } else if (i == 10) { - startY = btnQuick[i].top() - 24; - tool.setPos(width - (tool.width() + 24), startY); - } + startY = btnQuick[i].bottom(); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Window.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Window.java index baebc5cde..cea558968 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Window.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Window.java @@ -53,7 +53,7 @@ public class Window extends Group implements Signal.Listener { public static final int G_COLOR = 0x00FF00; public static final int B_COLOR = 0x0000FF; public static final int Pink_COLOR = 0xFF1493; - public static final int DeepPK_COLOR = 0xFF0000; + public static final int DeepPK_COLOR = 0xFFFF44; public static final int SHPX_COLOR = 0x33BB33; public static final int TITLE_COLOR = 0x00FFFF; 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 fa6754cf0..d777fd0a4 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 @@ -2,7 +2,6 @@ package com.shatteredpixel.shatteredpixeldungeon.ui.changelist.mlpd; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.NewDM300; -import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.PinkLingSprite; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.ChangesScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; @@ -49,6 +48,7 @@ public class vM0_6_7_X_Changes { public static void addAllChanges(ArrayList changeInfos) { add_v0_6_31_Changes(changeInfos); + add_v0_6_32_Changes(changeInfos); add_v0_6_30_Changes(changeInfos); add_v0_6_29_Changes(changeInfos); add_v0_6_28_Changes(changeInfos); @@ -82,48 +82,58 @@ public class vM0_6_7_X_Changes { add_v0_6_0_Changes(changeInfos); } - public static void add_v0_6_31_Changes( ArrayList changeInfos ) { - ChangeInfo changes = new ChangeInfo("v0.6.1.0-Beta5.1(P3)", true, ""); + public static void add_v0_6_32_Changes( ArrayList changeInfos ) { + ChangeInfo changes = new ChangeInfo("v0.6.1.0-Beta5.275(P3)", true, ""); changes.hardlight(Window.TITLE_COLOR); changeInfos.add(changes); - changes = new ChangeInfo("即将到来", false, null); - changes.hardlight(Window.Pink_COLOR); - changeInfos.add(changes); - - Image issxsaxs =new DimandKingSprite(); - issxsaxs.scale.set(PixelScene.align(0.8f)); - changes.addButton(new ChangeButton(issxsaxs,("关于宝箱之王?"), - ("将在下个版本Beta5.3进行测试更新,请做好战斗准备!"))); - - changes.addButton(new ChangeButton(new PinkLingSprite(), ("狩猎系统1.0"), - ("击败两次宝箱之王后解锁狩猎系统,神秘NPC会入驻0层。并派发狩猎任务。"))); - - changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.FBK), ("灯火系统V3--狩猎与前行之章"), - ("灯火系统即将进行大改,敬请期待"))); - - changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.CHALLANEESICON_14), ("寒冷系统V0.2"), - ("将追加矿洞层的寒冷惩罚和新的事件,敬请期待"))); - changes = new ChangeInfo("新内容", false, null); changes.hardlight(Window.GREEN_COLOR); changeInfos.add(changes); - changes.addButton(new ChangeButton(Icons.get(Icons.INFO), ("图鉴和炼金合成表加入新东西"), - ("请自行到游戏查看"))); +// changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.LANTERNB), ("一些温馨提示"), +// ("对于尚未进行正常模式的玩家进行提示。例如BOSSRUSH模式。"))); - changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.MAGIC_TORCH), ("新武器:魔法火把[捐赠物品]"), - ("感谢_落白_的投稿,该武器属于3阶武器。"))); + changes.addButton(new ChangeButton(Icons.get(Icons.CHANGES), ("自动更新系统"), + ("现在你可以在游戏内自动更新了,不需要再去下载更新包了。祝你游戏愉快!"))); - changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.BloodDied), ("新武器:嗜血荆棘[捐赠物品]"), - ("感谢_落白_的投稿,该武器属于6阶武器。"))); + changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.WORN_SHORTSWORD), ("战士初始改动"), + ("现在战士使用唤魔晶柱不消耗数量,并且这也为战士后续的专精职业_召唤师-斗争战士_做了铺垫。该职业将替换原版狂战士职业并改变天赋。但目前暂时只是初始改动,敬请期待后续更新"))); changes = new ChangeInfo("改动", false, null); changes.hardlight(Window.CYELLOW); changeInfos.add(changes); 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_06X59"))); + Messages.get(ChangesScene.class, "bugfixes"), Messages.get(vM0_6_7_X_Changes.class, "bug_06X60"))); + } + + public static void add_v0_6_31_Changes( ArrayList changeInfos ) { + ChangeInfo changes = new ChangeInfo("v0.6.1.0-Beta5.32-35(P3)", true, ""); + changes.hardlight(Window.TITLE_COLOR); + changeInfos.add(changes); + + changes = new ChangeInfo("新内容", false, null); + changes.hardlight(Window.GREEN_COLOR); + changeInfos.add(changes); + + Image issxsaxs =new DimandKingSprite(); + issxsaxs.scale.set(PixelScene.align(0.8f)); + changes.addButton(new ChangeButton(issxsaxs,("拟态之王"), + ("王会消灭每一个屠杀衪的子嗣的人"))); + + changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.LANTERNB), ("灯火系统V2.5"), + ("追加两个Buff,和其他改进"))); + + changes = new ChangeInfo("改动", false, null); + changes.hardlight(Window.CYELLOW); + changeInfos.add(changes); + + changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.CHALLANEESICON_14), ("篝火系统0.2"), + ("在篝火房间现在寒冷值恢复得更快,且在寒冷回复期间不会受到饥饿效果"))); + + 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_06X61"))); } public static void add_v0_6_30_Changes( ArrayList changeInfos ) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/BossSettingWindows.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/BossSettingWindows.java index 507dd516a..7d4109c82 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/BossSettingWindows.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/BossSettingWindows.java @@ -1,5 +1,6 @@ package com.shatteredpixel.shatteredpixeldungeon.windows; +import com.shatteredpixel.shatteredpixeldungeon.Badges; import com.shatteredpixel.shatteredpixeldungeon.SPDSettings; import com.shatteredpixel.shatteredpixeldungeon.Statistics; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; @@ -44,7 +45,8 @@ public class BossSettingWindows extends Window { cb.setRect(GAP, 500, WIDTH - GAP * 2, BOX_HEIGHT); } - if(1==2){ + //1 拟态王 + if(i == 1 && !Badges.isUnlocked(Badges.Badge.KILL_SM) || i == 0 || i==4){ cb.alpha(0.4f); cb.active=false; cb.checked(false); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndChallenges.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndChallenges.java index 8015526f7..4220162e9 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndChallenges.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndChallenges.java @@ -65,6 +65,7 @@ public class WndChallenges extends Window { public WndChallenges( int checked, boolean editable, Callback callback ) { this(checked, 0, editable, callback); } + private WndChallenges( int checked, int index, boolean editable, Callback callback ) { super(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndFeedback.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndFeedback.java index 3ae38727c..3e48c3caa 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndFeedback.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndFeedback.java @@ -15,7 +15,6 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextBlock; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.watabou.noosa.ColorBlock; import com.watabou.noosa.Game; -import com.watabou.utils.DeviceCompat; public class WndFeedback extends Window { @@ -54,12 +53,7 @@ public class WndFeedback extends Window { @Override protected void onClick() { super.onClick(); - if(DeviceCompat.isAndroid()){ - //由于安卓架构对于下方的LibGDX退出并非完全退出,仍然可能有进程在后台运行,为此强制抛出错误以达到游戏进程完全停止的目的。 - throw new IllegalStateException("Died"); - } else { - Gdx.app.exit(); - } + Gdx.app.exit(); } }; btnSponsor.icon(Icons.get(Icons.COMPASS)); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndResurrect.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndResurrect.java index bd13fc8d8..df3b47a74 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndResurrect.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndResurrect.java @@ -25,6 +25,8 @@ import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero; import static com.shatteredpixel.shatteredpixeldungeon.Statistics.crivusfruitslevel2; import com.shatteredpixel.shatteredpixeldungeon.Statistics; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.TestDwarfMasterLock; import com.shatteredpixel.shatteredpixeldungeon.items.Ankh; import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.bags.Bag; @@ -146,6 +148,8 @@ public class WndResurrect extends Window { crivusfruitslevel2 = false; } + //矮人将军 + Buff.affect(hero, TestDwarfMasterLock.class).set((1), 1); InterlevelScene.mode = InterlevelScene.Mode.RESURRECT; Game.switchScene( InterlevelScene.class ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndStory.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndStory.java index a24c5c958..a3039288c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndStory.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndStory.java @@ -39,6 +39,8 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicGirlDebuff.Mag import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicGirlDebuff.MagicGirlSayNoSTR; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicGirlDebuff.MagicGirlSaySlowy; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicGirlDebuff.MagicGirlSaySoftDied; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicGirlDebuff.MagicGirlSayTimeLast; +import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfAnmy; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextBlock; @@ -73,6 +75,8 @@ public class WndStory extends Window { public static final int ID_CHAPTONEEND = 10; public static final int ID_ICEBOSS = 11; + public static final int ID_COLDCHESTBOSS = 29; + //DLC BOSSRUSH public static final int ID_GAME = 12; @@ -110,6 +114,7 @@ public class WndStory extends Window { CHAPTERS.put( ID_HALLSBOOS, "hallsboss" ); CHAPTERS.put( ID_CHAPTONEEND, "new" ); CHAPTERS.put( ID_ICEBOSS, "icedead" ); + CHAPTERS.put( ID_COLDCHESTBOSS, "coldchest" ); CHAPTERS.put( ID_GAME, "bossrushstart" ); CHAPTERS.put( ID_NOMOBS, "nomobs" ); CHAPTERS.put( ID_CALA, "calaboss" ); @@ -206,7 +211,7 @@ public class WndStory extends Window { if(lanterfireactive) { if (Dungeon.depth == 6){ //TODO 首次到达6层 给予1个增益Buff - switch (Random.Int(4)){ + switch (Random.Int(5)){ case 0: default: Buff.affect(hero, BlessNoMoney.class).set( (100), 1 ); break; @@ -222,13 +227,17 @@ public class WndStory extends Window { case 4: Buff.affect(hero, BlessImmune.class).set( (100), 1 ); break; + case 5: + new WandOfAnmy().quantity(1).identify().collect(); + Buff.affect(hero, MagicGirlSayTimeLast.class).set( (100), 1 ); + break; } GLog.b(Messages.get(WndStory.class,"start")); } if (RollLevel()) { //TODO 常规刷新 if (hero.lanterfire == 100){ - switch (Random.Int(4)){ + switch (Random.Int(5)){ case 0: default: Buff.affect(hero, BlessNoMoney.class).set( (100), 1 ); break; @@ -244,10 +253,14 @@ public class WndStory extends Window { case 4: Buff.affect(hero, BlessImmune.class).set( (100), 1 ); break; + case 5: + new WandOfAnmy().quantity(1).identify().collect(); + Buff.affect(hero, MagicGirlSayTimeLast.class).set( (100), 1 ); + break; } GLog.p(Messages.get(WndStory.class,"good")); } else if (hero.lanterfire <= 99 && hero.lanterfire >= 90) { - switch (Random.Int(4)){ + switch (Random.Int(5)){ case 0: default: Buff.affect(hero, BlessNoMoney.class).set( (100), 1 ); break; @@ -263,6 +276,10 @@ public class WndStory extends Window { case 4: Buff.affect(hero, BlessImmune.class).set( (100), 1 ); break; + case 5: + new WandOfAnmy().quantity(1).identify().collect(); + Buff.affect(hero, MagicGirlSayTimeLast.class).set( (100), 1 ); + break; } GLog.p(Messages.get(WndStory.class,"good")); } else if (hero.lanterfire <= 89 && hero.lanterfire >= 80 && Random.Float() <= 0.05f ) { @@ -288,7 +305,7 @@ public class WndStory extends Window { } GLog.n(Messages.get(WndStory.class,"bad")); } else if (hero.lanterfire <= 89 && hero.lanterfire >= 80 && Random.Float() <= 0.85f ) { - switch (Random.Int(4)){ + switch (Random.Int(5)){ case 0: default: Buff.affect(hero, BlessNoMoney.class).set( (100), 1 ); break; @@ -304,11 +321,15 @@ public class WndStory extends Window { case 4: Buff.affect(hero, BlessImmune.class).set( (100), 1 ); break; + case 5: + new WandOfAnmy().quantity(1).identify().collect(); + Buff.affect(hero, MagicGirlSayTimeLast.class).set( (100), 1 ); + break; } GLog.p(Messages.get(WndStory.class,"good")); } else if (hero.lanterfire <= 89 && hero.lanterfire >= 80) { GLog.b(Messages.get(WndStory.class,"normoal")); - } else if (hero.lanterfire <= 79 && hero.lanterfire >= 60 && Random.Float() <= 0.25f ) { + } else if (hero.lanterfire <= 79 && hero.lanterfire >= 60 && Random.Float() <= 0.45f ) { switch (Random.Int(5)){ case 0: default: Buff.affect(hero, MagicGirlSayMoneyMore.class).set( (100), 1 ); @@ -330,8 +351,8 @@ public class WndStory extends Window { break; } GLog.n(Messages.get(WndStory.class,"bad")); - } else if (hero.lanterfire <= 79 && hero.lanterfire >= 60 && Random.Float() <= 0.70f ) { - switch (Random.Int(4)){ + } else if (hero.lanterfire <= 79 && hero.lanterfire >= 60 && Random.Float() <= 0.50f ) { + switch (Random.Int(5)){ case 0: default: Buff.affect(hero, BlessNoMoney.class).set( (100), 1 ); break; @@ -347,12 +368,16 @@ public class WndStory extends Window { case 4: Buff.affect(hero, BlessImmune.class).set( (100), 1 ); break; + case 5: + new WandOfAnmy().quantity(1).identify().collect(); + Buff.affect(hero, MagicGirlSayTimeLast.class).set( (100), 1 ); + break; } GLog.p(Messages.get(WndStory.class,"good")); } else if (hero.lanterfire <= 79 && hero.lanterfire >= 60) { GLog.b(Messages.get(WndStory.class,"normoal")); - } else if (hero.lanterfire <= 59 && hero.lanterfire >= 35 && Random.Float() <= 0.40f ) { - switch (Random.Int(5)){ + } else if (hero.lanterfire <= 59 && hero.lanterfire >= 29 && Random.Float() <= 0.20f ) { + switch (Random.Int(6)){ case 0: default: Buff.affect(hero, MagicGirlSayMoneyMore.class).set( (100), 1 ); break; @@ -371,9 +396,12 @@ public class WndStory extends Window { case 5: Buff.affect(hero, MagicGirlSayNoSTR.class).set( (100), 1 ); break; + case 6: + Buff.affect(hero, MagicGirlSayTimeLast.class).set( (100), 1 ); + break; } GLog.n(Messages.get(WndStory.class,"bad")); - } else if (hero.lanterfire <= 59 && hero.lanterfire >= 35 && Random.Float() <= 0.20f ) { + } else if (hero.lanterfire <= 59 && hero.lanterfire >= 35 && Random.Float() <= 0.60f ) { switch (Random.Int(4)){ case 0: default: Buff.affect(hero, BlessNoMoney.class).set( (100), 1 ); @@ -394,8 +422,8 @@ public class WndStory extends Window { GLog.p(Messages.get(WndStory.class,"good")); } else if (hero.lanterfire <= 59 && hero.lanterfire >= 35) { GLog.b(Messages.get(WndStory.class,"normoal")); - } else if (hero.lanterfire <= 34 && hero.lanterfire >= 1 && Random.Float() <= 0.40f ) { - switch (Random.Int(5)){ + } else if (hero.lanterfire <= 30 && hero.lanterfire >= 1 && Random.Float() <= 0.40f ) { + switch (Random.Int(6)){ case 0: default: Buff.affect(hero, MagicGirlSayMoneyMore.class).set( (100), 1 ); break; @@ -414,6 +442,9 @@ public class WndStory extends Window { case 5: Buff.affect(hero, MagicGirlSayNoSTR.class).set( (100), 1 ); break; + case 6: + Buff.affect(hero, MagicGirlSayTimeLast.class).set( (100), 1 ); + break; } GLog.n(Messages.get(WndStory.class,"bad")); } else if (hero.lanterfire <= 34 && hero.lanterfire >= 1 && Random.Float() <= 0.35f ) { @@ -435,51 +466,32 @@ public class WndStory extends Window { break; } GLog.p(Messages.get(WndStory.class,"good")); - } else if (hero.lanterfire <= 34 && hero.lanterfire >= 1) { - GLog.b(Messages.get(WndStory.class,"normoal")); } else if (hero.lanterfire <= 0 && Random.Float() <= 0.48f ) { - switch (Random.Int(5)){ - case 0: default: - Buff.affect(hero, MagicGirlSayMoneyMore.class).set( (100), 1 ); + switch (Random.Int(6)) { + case 0: + default: + Buff.affect(hero, MagicGirlSayMoneyMore.class).set((100), 1); break; case 1: - Buff.affect(hero, MagicGirlSaySoftDied.class).set( (100), 1 ); + Buff.affect(hero, MagicGirlSaySoftDied.class).set((100), 1); break; case 2: - Buff.affect(hero, MagicGirlSayCursed.class).set( (100), 1 ); + Buff.affect(hero, MagicGirlSayCursed.class).set((100), 1); break; case 3: - Buff.affect(hero, MagicGirlSaySlowy.class).set( (100), 1 ); + Buff.affect(hero, MagicGirlSaySlowy.class).set((100), 1); break; case 4: - Buff.affect(hero, MagicGirlSayKill.class).set( (100), 1 ); + Buff.affect(hero, MagicGirlSayKill.class).set((100), 1); break; case 5: - Buff.affect(hero, MagicGirlSayNoSTR.class).set( (100), 1 ); + Buff.affect(hero, MagicGirlSayNoSTR.class).set((100), 1); + break; + case 6: + Buff.affect(hero, MagicGirlSayTimeLast.class).set( (100), 1 ); break; } - GLog.n(Messages.get(WndStory.class,"bad")); - } else if (hero.lanterfire <= 0 && Random.Float() <= 0.10f ) { - switch (Random.Int(4)){ - case 0: default: - Buff.affect(hero, BlessNoMoney.class).set( (100), 1 ); - break; - case 1: - Buff.affect(hero, BlessGoodSTR.class).set( (100), 1 ); - break; - case 2: - Buff.affect(hero, BlessMobDied.class).set( (100), 1 ); - break; - case 3: - Buff.affect(hero, BlessMixShiled.class).set( (100), 1 ); - break; - case 4: - Buff.affect(hero, BlessImmune.class).set( (100), 1 ); - break; - } - GLog.p(Messages.get(WndStory.class,"good")); - } else if (hero.lanterfire <= 0 ) { - GLog.b(Messages.get(WndStory.class,"normoal")); + GLog.n(Messages.get(WndStory.class, "bad")); } } }