From bb130d3a96a3040234522e63c429f3c9b041dfae Mon Sep 17 00:00:00 2001 From: LingASDJ <2735951230@qq.com> Date: Tue, 26 Jul 2022 23:03:02 +0800 Subject: [PATCH] Update BetaX 0.6.0.1 --- android/build.gradle | 2 +- .../android/AndroidGame.java | 4 + build.gradle | 2 +- core/src/main/assets/interfaces/chrome.png | Bin 1447 -> 1458 bytes .../main/assets/interfaces/chrome_gold.png | Bin 1135 -> 0 bytes .../main/assets/interfaces/loading_caves.png | Bin 171 -> 273 bytes .../main/assets/interfaces/loading_prison.png | Bin 475 -> 495 bytes .../main/assets/interfaces/menu_button.png | Bin 404 -> 827 bytes .../assets/interfaces/status_pane_normal.png | Bin 1362 -> 1382 bytes .../main/assets/interfaces/talent_button.png | Bin 324 -> 621 bytes .../assets/messages/actors/actors.properties | 31 +- .../assets/messages/scenes/scenes.properties | 10 +- core/src/main/assets/sprites/items.png | Bin 66537 -> 0 bytes core/src/main/assets/sprites/items/items.png | Bin 68855 -> 69097 bytes .../shatteredpixeldungeon/Assets.java | 7 +- .../shatteredpixeldungeon/Chrome.java | 7 +- .../shatteredpixeldungeon/Dungeon.java | 23 ++ .../shatteredpixeldungeon/SPDSettings.java | 21 -- .../actors/buffs/Bless.java | 2 +- .../actors/buffs/HaloFireImBlue.java | 5 + .../actors/buffs/HalomethaneBurning.java | 5 + .../actors/buffs/RoseShiled.java | 8 +- .../actors/hero/Hero.java | 31 ++ .../actors/mobs/Bestiary.java | 2 +- .../actors/mobs/Eye.java | 4 +- .../actors/mobs/SlimePrincess.java | 291 +++++++++++++++ .../actors/mobs/bosses/DwarfMaster.java | 2 +- .../actors/mobs/npcs/Shopkeeper.java | 193 +++++++--- .../items/scrolls/exotic/ExoticScroll.java | 103 +++--- .../levels/CaveTwoBossLevel.java | 2 +- .../levels/CavesBossLevel.java | 4 +- .../levels/CavesLevel.java | 4 +- .../levels/RegularLevel.java | 18 +- .../scenes/ChangesScene.java | 2 +- .../scenes/InterlevelScene.java | 336 +++++++++--------- .../scenes/NewChangesScene.java | 8 +- .../scenes/ThanksScene.java | 2 +- .../sprites/CharSprite.java | 20 +- .../ui/BossHealthBar.java | 47 ++- .../shatteredpixeldungeon/ui/KeyDisplay.java | 91 +++-- .../ui/TalentButton.java | 7 +- .../shatteredpixeldungeon/ui/Toolbar.java | 12 + .../ui/changelist/mlpd/vM0_6_7_X_Changes.java | 39 +- .../windows/WndChallenges.java | 8 + .../windows/WndSettings.java | 48 +-- 45 files changed, 992 insertions(+), 409 deletions(-) delete mode 100644 core/src/main/assets/interfaces/chrome_gold.png delete mode 100644 core/src/main/assets/sprites/items.png create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/SlimePrincess.java diff --git a/android/build.gradle b/android/build.gradle index 7d652288c..6536f625c 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -57,7 +57,7 @@ android { configurations { natives } dependencies { - implementation 'cat.ereza:customactivityoncrash:2.3.0' + implementation 'com.github.RohitSurwase.UCE-Handler:uce_handler:1.4' implementation project(':core') implementation "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion" diff --git a/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidGame.java b/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidGame.java index e3962e434..0a7a5bd0f 100644 --- a/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidGame.java +++ b/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidGame.java @@ -33,6 +33,7 @@ import com.badlogic.gdx.backends.android.AndroidApplication; import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration; import com.badlogic.gdx.backends.android.AndroidAudio; import com.badlogic.gdx.backends.android.AsynchronousAndroidAudio; +import com.rohitss.uceh.UCEHandler; import com.shatteredpixel.shatteredpixeldungeon.SPDSettings; import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; import com.shatteredpixel.shatteredpixeldungeon.services.news.News; @@ -84,6 +85,9 @@ public class AndroidGame extends AndroidApplication { // this is the default prefs filename given to an android app (.xml is automatically added to it) SPDSettings.set(instance.getPreferences("ShatteredPixelDungeon")); + UCEHandler.Builder builder = new UCEHandler.Builder(this); + builder.build(); + } else { instance = this; } diff --git a/build.gradle b/build.gradle index 2836dc4c6..01d760263 100644 --- a/build.gradle +++ b/build.gradle @@ -32,7 +32,7 @@ allprojects { repositories { maven{ url 'https://maven.aliyun.com/repository/google' } maven{ url 'https://maven.aliyun.com/repository/jcenter'} - //maven { url 'https://jitpack.io' } + maven { url 'https://jitpack.io' } } } \ No newline at end of file diff --git a/core/src/main/assets/interfaces/chrome.png b/core/src/main/assets/interfaces/chrome.png index e8307147e99dd76eaff1d6eebb045b627df3beb0..ba63f06ec227e5fc473bf9ddf24cb8e07e414426 100644 GIT binary patch delta 953 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 B0gwOy diff --git a/core/src/main/assets/interfaces/loading_caves.png b/core/src/main/assets/interfaces/loading_caves.png index cda04e21463d4f64cb47dd72ab842d7a12a12f1c..3b26676068cf4b48850cacd5c5dd60ba23c6f062 100644 GIT binary patch delta 257 zcmV+c0sj800g(cb7=H)`0000V^Z#K00004VQb$4nuFf3k00004XF*Lt006O%3;baP z00009a7bBm000id000id0mpBsWB>pFrb$FWR5(v#ti1H(zn+`~!MQO)8(_FkohK3Tyx|1h_aEj@`V^@cjKJumrJua2S9D$PEV;kUu~GJ${MhQ=SfB z@d*MTXOYThT>jzDe^UL8%x3{{C zf*T>EQfM+whFnVNy*I16DCd%>$be^;`#BBqDMt_RiJMEdDKN)g+r*Xy+B@vGv#%%W%XB+@$BgN~t7YuH$76)fqs-j^u zJt{@X1M0Qr>FE$>T3@VuckytQmBewxrq(=r@tCS;h~o%roj WdnF-csy1N&000002R7J|fq{+jg$HAb+z@NmvoX5eRv#yYE zZCtdkk;uZLvaOG_sFAd&khH0hvZju*rH!zpjJ2tev!{=*qKdVtlChOZe6dVi=C5xn~{96q>QGUg>GwFqnLuFnuVm9gMVviSZioka&KO2X;`eN zjHsiBwXl-P#ihx^qsYRcv8;`+ql&hwlWl5Qb8ugmjd-P+gq@RrnU8vOabU~ErN+RX zo|S-@j(MV&f$m#{O8@`>+(|@1RCoam&4q!4KnwuD;I;z6!sTKA+}*AJwvGm704&>a zJwFI7%ZkDvhJQo|sdO5M4D+I_a*$Z48WSooZ3dG6pzVxG%>QuIFht8$I9z+1t-agx+S&n1Jg^XHDG(RpsGvb1xUB^yWp>h{gF*{Dmqwt%WS$uX zm$JF?RhjN~?<>sVOu=bR!#*H-^cy_a^LV@Swh+aO*hP8SPzchxL{um%)mKoKRni{i z`(rSWgSUa(cmCB)hT44Rqpav4pkPi5ehkmV)YCtKuNVgca8lg>0000|x1;WJwR{rIULSEbQ2&Ln0cK;H5)CbWp@S*g?8fk`aa5Em*gLMM01nYGEv4vPMW( z52l{tb(o#!?705fKVn~4_V?b*@6CLFzwi6K--!PEcO*xE^nc1KqtPcKAD@<%771Wk z7O@vs0WjuGPKO@@@Nr?0p36S_=JltnpSTBrX_~aRx7+s{27r2QS$buabb75I5>-_v z3-Yb=pUv`nxG7Z<`YMF*j@`bAL_%nqCIRY0Q4yPnNPtFvtr(n|kpQARAmnnt1n~KM zLf3T(U>Jq~vVRg@*4%W7$=Extjla%|M6zLo(B0$AJ^H)j+NorhvVS*?WL-;bP16tw z@WcG6$h%4IHMT4ZP1B@d7#Q>Q#3mv#{^1+vsuvlYnvq|YmSKGox!f-oUJbC>d>via zWjr2tGA}hvb8I^R?w8xBw(<&sgNwgxc`cc>0Mz&`mVeAzYWxRXKg2HNAlV zJA;|*i%3U|*hEAQMN@)kn8B$TIo8=G#sIn8FE89eKoDKmWp{VCvyRNDK;c+HjB~(E z-VJB$Tt6thTfqZ0-*Y>l?3>TuD*OBB_C3SH!^(EHkAo})6pO6PXW)$Y3V@gB9>g7} zEDl9e%6}f~Y*V(a02?j^a3~6JlXjEcZQhN(3L*CUm z5mR<=YgpN$dO+F1V9=d$;Vyts!T@+>pQ|Pm8;oN5fM75PK;{%sK`F@=IEd`MwV_ZX z5()M4^`WS;8~wH03MdaK+voFTDZsm4$xZ>tO@DH~0+x2zs**AcjUB$UhsKoUc2R_sguL*C@nyCA~&6Im^rOH+g*w9R|vh$yoqC te<=D|@FKhaUg{ delta 388 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 diff --git a/core/src/main/assets/messages/actors/actors.properties b/core/src/main/assets/messages/actors/actors.properties index a6f3392d8..40619c21d 100644 --- a/core/src/main/assets/messages/actors/actors.properties +++ b/core/src/main/assets/messages/actors/actors.properties @@ -1,4 +1,25 @@ ###MLPD +actors.buffs.halomethaneburning.name=磷火缠身 +actors.buffs.halomethaneburning.heromsg=磷火像恶魔一样缠在了你的身上! +actors.buffs.halomethaneburning.burnsup=%s被烧的渣都不剩了! +actors.buffs.halomethaneburning.ondeath=你被磷火缠身燃烧的折磨至死… +actors.buffs.halomethaneburning.rankings_desc=无法逃脱磷火缠身的痛苦 +actors.buffs.halomethaneburning.desc=没什么比被磷火缠身更痛苦了。 \n\n磷火会每回合都会造成伤害直到它被液体扑灭或者自行消散。磷火会在你进入水中时熄灭,打碎药瓶产生的磷火也具有同样的效果。 \n\n此外,磷火还会点燃所有接触到的可燃地形(以及可燃地形上的可燃物)。 \n\n剩余的燃烧效果时长:%s回合\n\nΠ相比于一般的火焰,磷火更加危险且更加致命Π +actors.buffs.halofireimblue.name=磷火审判 +actors.buffs.halofireimblue.desc=你被灌注了磷火的力量!\n\n所有物理攻击都可以使敌人磷火缠身。与此同时你对磷火,火焰完全免疫。\n\n剩余磷火审判效果时长:%s回合 + + +actors.mobs.slimeprincess.name=史莱姆公主 +actors.mobs.slimeprincess.notice=站住!入侵者! +actors.mobs.slimeprincess.defeated=你的行为会被世人铭记! +actors.mobs.slimeprincess.!!!=!!! +actors.mobs.slimeprincess.pumpup=史莱姆公主正在准备发射激光 +actors.mobs.slimeprincess.enraged=你为何要继续前进? +actors.mobs.slimeprincess.gluuurp=让我看看你的能耐吧,凡人! + +actors.mobs.slimeprincess.rankings_desc=成为史莱姆公主的傀儡 +actors.mobs.slimeprincess.desc=史莱姆公主,一个比Yog更强大的存在。她的力量诞生于300年前翼绫的手中,是翼绫曾经的宠物精灵。因为那场大火,翼绫从此了无音信。而她也来到了这个无人问津的古堡,在这里沉睡着,直到你的到来……吵醒了这个上古原始精灵…… + custom.testmode.levelteleporter.name = 升降器 custom.testmode.levelteleporter.desc = 测试专用的升降器,用于在楼层之间快速移动。注意,锁层状态下无法移动。 custom.testmode.levelteleporter.ac_descend = 下一层 @@ -1381,9 +1402,17 @@ actors.mobs.npcs.sheep.def_verb=格挡 actors.mobs.npcs.sheep.desc=这是一只魔法绵羊。为什么叫它魔法绵羊?因为你杀不死它。它只会站在那里直到它消失,它会做的事情只有边反刍边对你翻白眼。 actors.mobs.npcs.shopkeeper.name=商人 -actors.mobs.npcs.shopkeeper.thief=小偷,小偷! +actors.mobs.npcs.shopkeeper.arise=抢劫者,我诅咒你!你被商人诅咒了,你着火了!你暂时看不见了…… +actors.mobs.npcs.shopkeeper.guards=来人,快来人!有人想在超市0元购! +actors.mobs.npcs.shopkeeper.greetings=你好啊%s.欢迎来到我的商店!我会为你的行程提供必要的补给。价钱公道,童叟无欺。 +actors.mobs.npcs.shopkeeper.goodbye=欢迎下次再来!%s. +actors.mobs.npcs.shopkeeper.thief=不知天高地厚无知之辈,你会为你的行为付出代价!!! actors.mobs.npcs.shopkeeper.sell=选择一件要出售的物品 actors.mobs.npcs.shopkeeper.desc=这个矮胖的家伙看起来更适合在某些大城市里做买卖而不是这种地牢。这些商品的价格解释了为什么他会喜欢在这儿做生意。 +actors.mobs.npcs.shopkeeper.zcz=商人喊来了制裁者! +actors.mobs.npcs.shopkeeper.eye=商人喊来了真眼者! +actors.mobs.npcs.shopkeeper.dead=商人为敌人们购买了精英系统,选好东西,迅速离开本层!!! +actors.mobs.npcs.shopkeeper.live=商人还为首领购买了精英系统,选好东西,迅速离开本层!!! actors.mobs.npcs.wandmaker.name=老杖匠 actors.mobs.npcs.wandmaker.intro_warrior=啊,能在这片压抑的地方遇见一位英雄可真是个惊喜!如果你愿意帮助我这个老人家脱离苦海的话,你可以帮忙做一个任务。 diff --git a/core/src/main/assets/messages/scenes/scenes.properties b/core/src/main/assets/messages/scenes/scenes.properties index 14a6ca33e..55133522d 100644 --- a/core/src/main/assets/messages/scenes/scenes.properties +++ b/core/src/main/assets/messages/scenes/scenes.properties @@ -1,7 +1,7 @@ #scenes.aboutscene.= -windows.wndsettings$displaytab.splash_screen=启动时的瀑布界面 -windows.wndsettings$displaytab.disable=关闭 -windows.wndsettings$displaytab.full=开启 +windows.wndsettings$extendtab.splash_screen=启动界面 +windows.wndsettings$extendtab.disable=关闭 +windows.wndsettings$extendtab.full=开启 scenes.feedbackscene$1.title=确定退出游戏? scenes.feedbackscene$1.intro=你确定要退出游戏吗? @@ -14,7 +14,7 @@ scenes.feedbackscene$1.feedback_link=回到游戏 scenes.feedbackscene$1.join_link=加入魔绫开发总群 -scenes.changesscene.earlier=破碎更新动态 +scenes.changesscene.earlier=破碎更新日志 scenes.changesscene.later=魔绫更新动态 scenes.changesscene.shpd=破碎更新日志 @@ -31,7 +31,7 @@ scenes.interlevelscene.dialog_1=合理_运用物品_,\n\n获取_最终胜利_ scenes.interlevelscene.dialog_2=你知道吗?\n\n_左下角的放大镜_是一个好东西 scenes.interlevelscene.dialog_3=常去看_更新记录_的好孩子,\n\n就不会因为_新改动_而茫然. scenes.interlevelscene.dialog_4=魔绫像素地牢-始于_2021年2月_,\n\n感谢引导者_REN_和Γ红龙Γ。 -scenes.interlevelscene.dialogi_5=有些时候_直面失败_,\n\n或许并不是什么坏事 +scenes.interlevelscene.dialog_5=有些时候_直面失败_,\n\n或许并不是什么坏事 scenes.interlevelscene.dialog_6=_小心奸商!!!_\n\n他甚至不会卖给你_未诅咒的物品_! scenes.interlevelscene.dialog_7=Δ种子Δ是个好东西,\n\n_关键看你_会不会用 scenes.interlevelscene.dialog_8=_死灵领主_是无敌的!\n\n你需要击败_骷髅王_! diff --git a/core/src/main/assets/sprites/items.png b/core/src/main/assets/sprites/items.png deleted file mode 100644 index 198db5561c45d09e7f6b4bf0e9faada0c142232a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66537 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 MsyZr_O4jfH8&Qg&(EtDd diff --git a/core/src/main/assets/sprites/items/items.png b/core/src/main/assets/sprites/items/items.png index 7b835a9c162be1114f9e187dba28ff4dd54237dc..986e65e844b2592701d094909ea27f829ebf28df 100644 GIT binary patch literal 69097 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

my2{Ys!JH&MUWrS!)VeQLQ%(wppu} zz7N-j)@!X^?Is&E+8a#Bx0+&S?-30CWL}#Z11KhLAWY9|LVRnNh24(qIQrj0^&?R zUorvBdCf{!^oqMRvZMd}`Qy(mLT!}_s{8u6a8+4VW*i3E)YvY>mRBoO3KnAj@37

b^=+V@(TsOjozFR0!p)70)S9=7kTHad}6 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

gFcFe@gPEigAMCk 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 YKfV0gzjkpEHU=Q@boFyt=akR{01v~Le*gdg literal 68855 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

Sa6d=S`B28jd-cKJ+@Da`<52 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 diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Assets.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Assets.java index 4f7da7087..2225ea64c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Assets.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Assets.java @@ -97,9 +97,10 @@ public class Assets { public static final String LOCKED = "interfaces/locked_badge.png"; public static final String CHROME = "interfaces/chrome.png"; + public static final String CHROME_DARK = "interfaces/chrome_normal.png"; public static final String ICONS = "interfaces/icons.png"; public static final String STATUS = "interfaces/status_pane.png"; - + public static final String TOOLBARDRAK = "interfaces/toolbar_normal.png"; public static final String STATUS_DARK = "interfaces/status_pane_normal.png"; public static final String MENU = "interfaces/menu_pane.png"; @@ -112,7 +113,7 @@ public class Assets { public static final String LOADING_SEWERS = "interfaces/loading_sewers.png"; public static final String LOADING_PRISON = "interfaces/loading_prison.png"; - public static final String LOADING_CAVES = "interfaces/loading_caves.png"; + public static final String LOADING_COLD = "interfaces/loading_cold.png"; public static final String LOADING_CITY = "interfaces/loading_city.png"; public static final String LOADING_HALLS = "interfaces/loading_halls.png"; @@ -121,7 +122,7 @@ public class Assets { public static final String TALENT_ICONS = "interfaces/talent_icons.png"; public static final String TALENT_BUTTON = "interfaces/talent_button.png"; - + public static final String TALENT_BUTTON_DARK = "interfaces/talent_button_dark.png"; public static final String HERO_ICONS = "interfaces/hero_icons.png"; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Chrome.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Chrome.java index 8277544dc..704c37d58 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Chrome.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Chrome.java @@ -43,7 +43,12 @@ public class Chrome { } public static NinePatch get( Type type ) { - String Asset = Assets.Interfaces.CHROME; + String Asset; + if (SPDSettings.ClassUI()) { + Asset = Assets.Interfaces.CHROME_DARK; + } else { + Asset = Assets.Interfaces.CHROME; + } switch (type) { case WINDOW: return new NinePatch( Asset, 0, 0, 20, 20, 6 ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Dungeon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Dungeon.java index 2d21814f7..ccc748f8c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Dungeon.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Dungeon.java @@ -501,6 +501,29 @@ public class Dungeon { return result; } + public static boolean NxhyshopOnLevel() { + return depth == 9 || depth == 18; + } + + public static boolean NyzshopOnLevel() { + return depth == 12; + } + + //圣域保护 + public static boolean GodWaterLevel() { + return depth == 1 ||depth == 2||depth == 3||depth == 4; + } + + //监狱保护 + public static boolean PrisonWaterLevel() { + return depth == 6 ||depth == 7||depth == 8||depth == 9; + } + + //冰雪祝福 + public static boolean ColdWaterLevel() { + return depth == 11 ||depth == 12||depth == 13||depth == 14; + } + public static boolean shopOnLevel() { return depth == 6 || depth == 11 || depth == 16; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/SPDSettings.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/SPDSettings.java index 04cce6f53..db0984212 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/SPDSettings.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/SPDSettings.java @@ -396,10 +396,6 @@ public class SPDSettings extends GameSettings { return getBoolean(KEY_DARK, false); } - public static void ClassSkin(boolean value) { - put( KEY_SKIN, value ); - } - public static boolean ClassSkin() { return getBoolean(KEY_SKIN, false); } @@ -411,21 +407,4 @@ public class SPDSettings extends GameSettings { public static void ClassPage(boolean value) { put( KEY_PAGE, value ); } - - - public static boolean PCTestUI() { - return getBoolean(KEY_PCUI, false); - } - - public static void PCTestUI(boolean value) { - put( KEY_PCUI, value ); - } - - public static boolean quickSwapper() { - return getBoolean(KEY_SWAP, false); - } - - public static void quickSwapper(boolean value) { - put( KEY_SWAP, value ); - } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Bless.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Bless.java index e139a556c..e25d18577 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Bless.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Bless.java @@ -27,7 +27,7 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; public class Bless extends FlavourBuff { public static final float DURATION = 30f; - + public static final float GODSPOERF = 6f; { type = buffType.POSITIVE; announced = true; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/HaloFireImBlue.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/HaloFireImBlue.java index 180305519..af3ac3db3 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/HaloFireImBlue.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/HaloFireImBlue.java @@ -37,6 +37,11 @@ public class HaloFireImBlue extends Buff { announced = true; } + @Override + public String iconTextDisplay() { + return Integer.toString((int)left); + } + public static final float DURATION = 80f; public static final float SURATION = 7f; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/HalomethaneBurning.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/HalomethaneBurning.java index 5a212218c..2bd4225f4 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/HalomethaneBurning.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/HalomethaneBurning.java @@ -70,6 +70,11 @@ public class HalomethaneBurning extends Buff implements Hero.Doom { bundle.put( LEFT, left ); } + @Override + public String iconTextDisplay() { + return Integer.toString((int)left); + } + @Override public void restoreFromBundle( Bundle bundle ) { super.restoreFromBundle(bundle); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/RoseShiled.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/RoseShiled.java index 849c9cb31..243a4546c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/RoseShiled.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/RoseShiled.java @@ -31,13 +31,17 @@ import com.watabou.noosa.Image; public class RoseShiled extends FlavourBuff { public static final float DURATION = 70f; - public static final float SURATION = 10f; - public static final float XURATION = 3f; + { type = buffType.POSITIVE; announced = true; } + @Override + public String iconTextDisplay() { + return Integer.toString((int)DURATION); + } + @Override public void fx(boolean on) { if (on) target.sprite.add(CharSprite.State.ROSESHIELDED); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java index 7dc046ca8..8ed91db8d 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java @@ -48,6 +48,8 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Combo; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.DeadSoul; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Drowsy; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Foresight; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.FrostImbueEX; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Haste; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.HoldFast; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hunger; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility; @@ -56,6 +58,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MindVision; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Momentum; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Paralysis; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Regeneration; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Shadows; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.SnipersMark; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vertigo; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.ArmorAbility; @@ -1815,6 +1818,34 @@ public class Hero extends Char { boolean wasHighGrass = Dungeon.level.map[step] == Terrain.HIGH_GRASS; super.move( step, travelling); + + if (Dungeon.GodWaterLevel()&& Dungeon.level.water[pos]){ + Buff.affect(hero, Barkskin.class).set( 2 + hero.lvl/4, 10 ); + Buff.prolong(this, Bless.class, Bless.GODSPOERF); + } + + //监狱之水 祝福效果 + if (Dungeon.PrisonWaterLevel()&& Dungeon.level.water[pos]){ + Buff.affect(hero, Barkskin.class).set( 2 + hero.lvl/4, 10 ); + Buff.prolong(this, Bless.class,Bless.GODSPOERF); + Buff.affect(this, Haste.class, Haste.DURATION/20); + Buff.affect(this, Shadows.class, Shadows.DURATION/10f); + } else if(Dungeon.PrisonWaterLevel()&& !Dungeon.level.water[pos]) + for (Buff buff : hero.buffs()) { + if (buff instanceof Shadows||buff instanceof Haste ) { + buff.detach(); + } + } + + //矿洞之水 祝福效果 + if (Dungeon.ColdWaterLevel()&& Dungeon.level.water[pos]){ + Buff.affect(this, FrostImbueEX.class, FrostImbueEX.DURATION*0.3f); + } else if(Dungeon.ColdWaterLevel()&& !Dungeon.level.water[pos]) + for (Buff buff : hero.buffs()) { + if (buff instanceof FrostImbueEX) { + buff.detach(); + } + } if (!flying && travelling) { if (Dungeon.level.water[pos]) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bestiary.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bestiary.java index 0429766a1..7f12a6487 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bestiary.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Bestiary.java @@ -46,7 +46,7 @@ public class Bestiary { case 1: //3x rat, 1x snake return new ArrayList<>(Arrays.asList( - Rat.class, Rat.class, + SlimePrincess.class, Rat.class, Rat.class, OGPDZSLS.class, Snake.class, Snake.class,Snake.class,Snake.class)); case 2: diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Eye.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Eye.java index d07463092..30c7895ac 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Eye.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Eye.java @@ -65,9 +65,9 @@ public class Eye extends Mob { properties.add(Property.DEMONIC); } - public static void spawnAround( int pos ) { + public static void spawnAround() { for (int n : PathFinder.NEIGHBOURS4) { - spawnAt( pos + n ); + spawnAt( Random.Int(Dungeon.level.length()) + n ); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/SlimePrincess.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/SlimePrincess.java new file mode 100644 index 000000000..ea19c2728 --- /dev/null +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/SlimePrincess.java @@ -0,0 +1,291 @@ +package com.shatteredpixel.shatteredpixeldungeon.actors.mobs; + +import com.shatteredpixel.shatteredpixeldungeon.Badges; +import com.shatteredpixel.shatteredpixeldungeon.Challenges; +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.LockedFloor; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Ooze; +import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; +import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose; +import com.shatteredpixel.shatteredpixeldungeon.items.keys.SkeletonKey; +import com.shatteredpixel.shatteredpixeldungeon.items.quest.GooBlob; +import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; +import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; +import com.shatteredpixel.shatteredpixeldungeon.sprites.GooSprite; +import com.shatteredpixel.shatteredpixeldungeon.sprites.SlimePrincessSprite; +import com.shatteredpixel.shatteredpixeldungeon.ui.BossHealthBar; +import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; +import com.watabou.noosa.Camera; +import com.watabou.utils.Bundle; +import com.watabou.utils.PathFinder; +import com.watabou.utils.Random; + +public class SlimePrincess extends Mob { + + { + HP = HT = Dungeon.isChallenged(Challenges.STRONGER_BOSSES) ? 1200 : 800; + EXP = 10; + defenseSkill = 8; + spriteClass = SlimePrincessSprite.class; + + properties.add(Property.BOSS); + properties.add(Property.DEMONIC); + properties.add(Property.ACIDIC); + } + + private int pumpedUp = 0; + private int healInc = 1; + + @Override + public int damageRoll() { + int min = 1; + int max = (HP*2 <= HT) ? 12 : 8; + if (pumpedUp > 0) { + pumpedUp = 0; + return Random.NormalIntRange( min*3, max*3 ); + } else { + return Random.NormalIntRange( min, max ); + } + } + + @Override + public int attackSkill( Char target ) { + int attack = 10; + if (HP*2 <= HT) attack = 15; + if (pumpedUp > 0) attack *= 2; + return attack; + } + + @Override + public int defenseSkill(Char enemy) { + return (int)(super.defenseSkill(enemy) * ((HP*2 <= HT)? 1.5 : 1)); + } + + @Override + public int drRoll() { + return Random.NormalIntRange(0, 2); + } + + @Override + public boolean act() { + + if (Dungeon.level.water[pos] && HP < HT) { + HP += healInc; + + LockedFloor lock = Dungeon.hero.buff(LockedFloor.class); + if (lock != null) lock.removeTime(healInc*2); + + if (Dungeon.level.heroFOV[pos] ){ + sprite.emitter().burst( Speck.factory( Speck.HEALING ), healInc ); + } + if (Dungeon.isChallenged(Challenges.STRONGER_BOSSES) && healInc < 3) { + healInc++; + } + if (HP*2 > HT) { + BossHealthBar.bleed(false); + ((GooSprite)sprite).spray(false); + HP = Math.min(HP, HT); + } + } else { + healInc = 1; + } + + if (state != SLEEPING){ + Dungeon.level.seal(); + } + + return super.act(); + } + + @Override + protected boolean canAttack( Char enemy ) { + if (pumpedUp > 0){ + //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 + && new Ballistica( pos, enemy.pos, Ballistica.PROJECTILE).collisionPos == enemy.pos + && new Ballistica( enemy.pos, pos, Ballistica.PROJECTILE).collisionPos == pos; + } else { + return super.canAttack(enemy); + } + } + + @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 ); + } + + if (pumpedUp > 0) { + Camera.main.shake( 3, 0.2f ); + } + + return damage; + } + + @Override + public void updateSpriteState() { + super.updateSpriteState(); + + if (pumpedUp > 0){ + ((GooSprite)sprite).pumpUp( pumpedUp ); + } + } + + @Override + protected boolean doAttack( Char enemy ) { + if (pumpedUp == 1) { + pumpedUp++; + ((GooSprite)sprite).pumpUp( pumpedUp ); + + spend( attackDelay() ); + + return true; + } else if (pumpedUp >= 2 || Random.Int( (HP*2 <= HT) ? 2 : 5 ) > 0) { + + boolean visible = Dungeon.level.heroFOV[pos]; + + if (visible) { + if (pumpedUp >= 2) { + ((GooSprite) sprite).pumpAttack(); + } else { + sprite.attack(enemy.pos); + } + } else { + if (pumpedUp >= 2){ + ((GooSprite)sprite).triggerEmitters(); + } + attack( enemy ); + spend( attackDelay() ); + } + + return !visible; + + } else { + + pumpedUp++; + if (Dungeon.isChallenged(Challenges.STRONGER_BOSSES)){ + pumpedUp++; + } + + ((GooSprite)sprite).pumpUp( pumpedUp ); + + if (Dungeon.level.heroFOV[pos]) { + sprite.showStatus( CharSprite.NEGATIVE, Messages.get(this, "!!!") ); + GLog.n( Messages.get(this, "pumpup") ); + } + + spend( attackDelay() ); + + return true; + } + } + + @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 ) { + if (pumpedUp != 0) { + pumpedUp = 0; + sprite.idle(); + } + return super.getCloser( target ); + } + + @Override + public void damage(int dmg, Object src) { + if (!BossHealthBar.isAssigned()){ + BossHealthBar.assignBoss( this ); + Dungeon.level.seal(); + } + boolean bleeding = (HP*2 <= HT); + super.damage(dmg, src); + if ((HP*2 <= HT) && !bleeding){ + BossHealthBar.bleed(true); + sprite.showStatus(CharSprite.NEGATIVE, Messages.get(this, "enraged")); + ((GooSprite)sprite).spray(true); + yell(Messages.get(this, "gluuurp")); + } + LockedFloor lock = Dungeon.hero.buff(LockedFloor.class); + if (lock != null) lock.addTime(dmg*2); + } + + @Override + public void die( Object cause ) { + + super.die( cause ); + + Dungeon.level.unseal(); + + GameScene.bossSlain(); + Dungeon.level.drop( new SkeletonKey( Dungeon.depth ), pos ).sprite.drop(); + + //60% chance of 2 blobs, 30% chance of 3, 10% chance for 4. Average of 2.5 + int blobs = Random.chances(new float[]{0, 0, 6, 3, 1}); + for (int i = 0; i < blobs; i++){ + int ofs; + do { + ofs = PathFinder.NEIGHBOURS8[Random.Int(8)]; + } while (!Dungeon.level.passable[pos + ofs]); + Dungeon.level.drop( new GooBlob(), pos + ofs ).sprite.drop( pos ); + } + + Badges.validateBossSlain(); + + yell( Messages.get(this, "defeated") ); + } + + @Override + public void notice() { + super.notice(); + if (!BossHealthBar.isAssigned()) { + BossHealthBar.assignBoss(this); + Dungeon.level.seal(); + yell(Messages.get(this, "notice")); + for (Char ch : Actor.chars()){ + if (ch instanceof DriedRose.GhostHero){ + ((DriedRose.GhostHero) ch).sayBoss(); + } + } + } + } + + private final String PUMPEDUP = "pumpedup"; + private final String HEALINC = "healinc"; + + @Override + public void storeInBundle( Bundle bundle ) { + + super.storeInBundle( bundle ); + + bundle.put( PUMPEDUP , pumpedUp ); + bundle.put( HEALINC, healInc ); + } + + @Override + public void restoreFromBundle( Bundle bundle ) { + + super.restoreFromBundle( bundle ); + + pumpedUp = bundle.getInt( PUMPEDUP ); + if (state != SLEEPING) BossHealthBar.assignBoss(this); + if ((HP*2 <= HT)) BossHealthBar.bleed(true); + + //if check is for pre-0.9.3 saves + healInc = bundle.getInt(HEALINC); + + } + +} diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/bosses/DwarfMaster.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/bosses/DwarfMaster.java index 20a78c9c1..256e275a0 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/bosses/DwarfMaster.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/bosses/DwarfMaster.java @@ -1326,7 +1326,7 @@ public class DwarfMaster extends Boss { spend(TICK*15); }else if(wave == 3){ yell(Messages.get(this, "wave_2")); - new Eye().spawnAround(pos); + new Eye().spawnAround(); summonSubject(1, DwarfMaster.DKGhoul.class); summonSubject(2, DwarfMaster.DKWarlock.class); summonSubject(2, DwarfMaster.DKGhoul.class); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Shopkeeper.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Shopkeeper.java index a6f600337..87e3409de 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Shopkeeper.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Shopkeeper.java @@ -3,7 +3,7 @@ * Copyright (C) 2012-2015 Oleg Dolya * * Shattered Pixel Dungeon - * Copyright (C) 2014-2022 Evan Debenham + * Copyright (C) 2014-2021 Evan Debenham * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,78 +21,199 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs; +import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero; + +import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Blindness; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ChampionEnemy; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.MoloHR; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.ShopGuard; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.ShopGuardEye; import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ElmoParticle; import com.shatteredpixel.shatteredpixeldungeon.items.Heap; import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor; -import com.shatteredpixel.shatteredpixeldungeon.journal.Notes; +import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.ShopkeeperSprite; import com.shatteredpixel.shatteredpixeldungeon.windows.WndBag; import com.shatteredpixel.shatteredpixeldungeon.windows.WndTradeItem; import com.watabou.noosa.Game; +import com.watabou.noosa.audio.Music; +import com.watabou.noosa.audio.Sample; +import com.watabou.utils.Bundle; import com.watabou.utils.Callback; +import com.watabou.utils.Random; public class Shopkeeper extends NPC { { spriteClass = ShopkeeperSprite.class; - + properties.add(Property.BOSS); properties.add(Property.IMMOVABLE); } - + public static boolean seenBefore = false; + + @Override + public boolean interact(Char c) { + if (c != hero) { + return true; + } + Game.runOnRenderThread(new Callback() { + @Override + public void call() { + sell(); + } + }); + return true; + } + + @Override + public void storeInBundle(Bundle bundle) { + super.storeInBundle(bundle); + } + @Override protected boolean act() { - - if (Dungeon.level.heroFOV[pos]){ - Notes.add(Notes.Landmark.SHOP); + if (!seenBefore && Dungeon.level.heroFOV[pos]) { + yell(Messages.get(this, "greetings", Dungeon.hero.name())); + seenBefore = true; + //Buff.affect(this, ChampionEnemy.AntiMagic.class); + //Buff.affect(this, ChampionEnemy.Halo.class); + } else if(seenBefore && !Dungeon.level.heroFOV[pos]) { + seenBefore = false; + yell(Messages.get(this, "goodbye", Dungeon.hero.name())); } - + throwItem(); + sprite.turnTo( pos, Dungeon.hero.pos ); spend( TICK ); - return super.act(); + return true; } - + @Override public void damage( int dmg, Object src ) { - flee(); } - + @Override - public void add( Buff buff ) { - flee(); + public int defenseSkill( Char enemy ) { + return INFINITE_EVASION; } - + + /* + Buff.prolong(Dungeon.hero, Blindness.class, Blindness.DURATION * 4f); + GameScene.flash(0x80FFFFFF); + Buff.affect(hero, Burning.class).reignite(hero, 15f); + Dungeon.level.seal(); + Mob moa = new MoloHR(); + moa.pos = pos; + GameScene.add(moa); + yell(Messages.get(this, "arise")); + new ShopGuardEye().spawnAround(pos); + new ShopGuard().spawnAround(pos); + Buff.affect(moa, ChampionEnemy.Growing.class); + Buff.affect(moa, ChampionEnemy.Projecting.class); + Buff.affect(moa, ChampionEnemy.AntiMagic.class); + Buff.affect(moa, ChampionEnemy.Giant.class); + Buff.affect(moa, ChampionEnemy.Blessed.class); + Buff.affect(moa, ChampionEnemy.Halo.class); + for (Mob mob : Dungeon.level.mobs) { + switch (Random.Int(7)) { + case 0: + default: + Buff.affect(mob, ChampionEnemy.Blazing.class); + break; + case 1: + Buff.affect(mob, ChampionEnemy.Projecting.class); + break; + case 2: + Buff.affect(mob, ChampionEnemy.AntiMagic.class); + break; + case 3: + Buff.affect(mob, ChampionEnemy.Giant.class); + break; + case 4: + Buff.affect(mob, ChampionEnemy.Blessed.class); + break; + case 5: + Buff.affect(mob, ChampionEnemy.Growing.class); + break; + case 6: + Buff.affect(mob, ChampionEnemy.Halo.class); + break; + } + } + yell(Messages.get(this, "dead"));*/ + public void flee() { destroy(); - - Notes.remove(Notes.Landmark.SHOP); - + CellEmitter.get(pos).burst(ElmoParticle.FACTORY, 6); + Sample.INSTANCE.play(Assets.Sounds.ALERT); + Music.INSTANCE.play(Assets.RUN, true); + hero.sprite.burst(15597568, 9); sprite.killAndErase(); - CellEmitter.get( pos ).burst( ElmoParticle.FACTORY, 6 ); + Buff.prolong(Dungeon.hero, Blindness.class, Blindness.DURATION * 4f); + GameScene.flash(0x80FFFFFF); + Buff.affect(hero, Burning.class).reignite(hero, 15f); + Dungeon.level.seal(); + Mob moa = new MoloHR(); + moa.pos = pos; + GameScene.add(moa); + yell(Messages.get(this, "arise")); + new ShopGuardEye().spawnAround(pos); + new ShopGuard().spawnAround(pos); + Buff.affect(moa, ChampionEnemy.Growing.class); + Buff.affect(moa, ChampionEnemy.Projecting.class); + Buff.affect(moa, ChampionEnemy.AntiMagic.class); + Buff.affect(moa, ChampionEnemy.Giant.class); + Buff.affect(moa, ChampionEnemy.Blessed.class); + Buff.affect(moa, ChampionEnemy.Halo.class); + for (Mob mob : Dungeon.level.mobs) { + switch (Random.Int(7)) { + case 0: + default: + Buff.affect(mob, ChampionEnemy.Blazing.class); + break; + case 1: + Buff.affect(mob, ChampionEnemy.Projecting.class); + break; + case 2: + Buff.affect(mob, ChampionEnemy.AntiMagic.class); + break; + case 3: + Buff.affect(mob, ChampionEnemy.Giant.class); + break; + case 4: + Buff.affect(mob, ChampionEnemy.Blessed.class); + break; + case 5: + Buff.affect(mob, ChampionEnemy.Growing.class); + break; + case 6: + Buff.affect(mob, ChampionEnemy.Halo.class); + break; + } + } + yell(Messages.get(this, "dead")); } - - @Override + private DriedRose.GhostHero ghost = null; public void destroy() { super.destroy(); for (Heap heap: Dungeon.level.heaps.valueList()) { if (heap.type == Heap.Type.FOR_SALE) { CellEmitter.get( heap.pos ).burst( ElmoParticle.FACTORY, 4 ); - if (heap.size() == 1) { - heap.destroy(); - } else { - heap.items.remove(heap.size()-1); - heap.type = Heap.Type.HEAP; - } + heap.type = Heap.Type.HEAP;//Allow them to be picked up } } } - + @Override public boolean reset() { return true; @@ -102,7 +223,7 @@ public class Shopkeeper extends NPC { public static int sellPrice(Item item){ return item.value() * 5 * (Dungeon.depth / 5 + 1); } - + public static WndBag sell() { return GameScene.selectItem( itemSelector ); } @@ -134,18 +255,4 @@ public class Shopkeeper extends NPC { } } }; - - @Override - public boolean interact(Char c) { - if (c != Dungeon.hero) { - return true; - } - Game.runOnRenderThread(new Callback() { - @Override - public void call() { - sell(); - } - }); - return true; - } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/exotic/ExoticScroll.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/exotic/ExoticScroll.java index 3a5172f77..20ebdf259 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/exotic/ExoticScroll.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/exotic/ExoticScroll.java @@ -3,7 +3,7 @@ * Copyright (C) 2012-2015 Oleg Dolya * * Shattered Pixel Dungeon - * Copyright (C) 2014-2022 Evan Debenham + * Copyright (C) 2014-2021 Evan Debenham * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -36,59 +36,63 @@ import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportat import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTerror; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTransmutation; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfUpgrade; +import com.shatteredpixel.shatteredpixeldungeon.items.stones.Runestone; import com.watabou.utils.Reflection; import java.util.ArrayList; import java.util.HashMap; public abstract class ExoticScroll extends Scroll { - - + + public static final HashMap, Class> regToExo = new HashMap<>(); public static final HashMap, Class> exoToReg = new HashMap<>(); static{ regToExo.put(ScrollOfIdentify.class, ScrollOfDivination.class); exoToReg.put(ScrollOfDivination.class, ScrollOfIdentify.class); - + regToExo.put(ScrollOfUpgrade.class, ScrollOfEnchantment.class); exoToReg.put(ScrollOfEnchantment.class, ScrollOfUpgrade.class); - + + regToExo.put(ScrollOfTerror.class, ScrollOfPetrification.class); + exoToReg.put(ScrollOfPetrification.class, ScrollOfTerror.class); + regToExo.put(ScrollOfRemoveCurse.class, ScrollOfAntiMagic.class); exoToReg.put(ScrollOfAntiMagic.class, ScrollOfRemoveCurse.class); - - regToExo.put(ScrollOfLullaby.class, ScrollOfSirensSong.class); - exoToReg.put(ScrollOfSirensSong.class, ScrollOfLullaby.class); - - regToExo.put(ScrollOfRage.class, ScrollOfChallenge.class); - exoToReg.put(ScrollOfChallenge.class, ScrollOfRage.class); - - regToExo.put(ScrollOfTerror.class, ScrollOfDread.class); - exoToReg.put(ScrollOfDread.class, ScrollOfTerror.class); - + + regToExo.put(ScrollOfLullaby.class, ScrollOfAffection.class); + exoToReg.put(ScrollOfAffection.class, ScrollOfLullaby.class); + + regToExo.put(ScrollOfRage.class, ScrollOfConfusion.class); + exoToReg.put(ScrollOfConfusion.class, ScrollOfRage.class); + + regToExo.put(ScrollOfTerror.class, ScrollOfPetrification.class); + exoToReg.put(ScrollOfPetrification.class, ScrollOfTerror.class); + regToExo.put(ScrollOfRecharging.class, ScrollOfMysticalEnergy.class); exoToReg.put(ScrollOfMysticalEnergy.class, ScrollOfRecharging.class); - + regToExo.put(ScrollOfMagicMapping.class, ScrollOfForesight.class); exoToReg.put(ScrollOfForesight.class, ScrollOfMagicMapping.class); - + regToExo.put(ScrollOfTeleportation.class, ScrollOfPassage.class); exoToReg.put(ScrollOfPassage.class, ScrollOfTeleportation.class); - + regToExo.put(ScrollOfRetribution.class, ScrollOfPsionicBlast.class); exoToReg.put(ScrollOfPsionicBlast.class, ScrollOfRetribution.class); - + regToExo.put(ScrollOfMirrorImage.class, ScrollOfPrismaticImage.class); exoToReg.put(ScrollOfPrismaticImage.class, ScrollOfMirrorImage.class); - - regToExo.put(ScrollOfTransmutation.class, ScrollOfMetamorphosis.class); - exoToReg.put(ScrollOfMetamorphosis.class, ScrollOfTransmutation.class); + + regToExo.put(ScrollOfTransmutation.class, ScrollOfPolymorph.class); + exoToReg.put(ScrollOfPolymorph.class, ScrollOfTransmutation.class); } - + @Override public boolean isKnown() { return anonymous || (handler != null && handler.isKnown( exoToReg.get(this.getClass()) )); } - + @Override public void setKnown() { if (!isKnown()) { @@ -96,7 +100,7 @@ public abstract class ExoticScroll extends Scroll { updateQuickslot(); } } - + @Override public void reset() { super.reset(); @@ -105,47 +109,58 @@ public abstract class ExoticScroll extends Scroll { rune = handler.label(exoToReg.get(this.getClass())); } } - + @Override //20 gold more than its none-exotic equivalent public int value() { - return (Reflection.newInstance(exoToReg.get(getClass())).value() + 30) * quantity; + return (Reflection.newInstance(exoToReg.get(getClass())).value() + 20) * quantity; } - @Override - //6 more energy than its none-exotic equivalent - public int energyVal() { - return (Reflection.newInstance(exoToReg.get(getClass())).energyVal() + 6) * quantity; - } - public static class ScrollToExotic extends Recipe { - + @Override public boolean testIngredients(ArrayList ingredients) { - if (ingredients.size() == 1 && regToExo.containsKey(ingredients.get(0).getClass())){ - return true; + int r = 0; + Scroll s = null; + + for (Item i : ingredients){ + if (i instanceof Runestone){ + r++; + } else if (regToExo.containsKey(i.getClass())) { + s = (Scroll)i; + } } - return false; + return s != null && r == 2; } - + @Override public int cost(ArrayList ingredients) { - return 6; + return 0; } - + @Override public Item brew(ArrayList ingredients) { + Item result = null; + for (Item i : ingredients){ i.quantity(i.quantity()-1); + if (regToExo.containsKey(i.getClass())) { + result = Reflection.newInstance(regToExo.get(i.getClass())); + } } - - return Reflection.newInstance(regToExo.get(ingredients.get(0).getClass())); + return result; } - + @Override public Item sampleOutput(ArrayList ingredients) { - return Reflection.newInstance(regToExo.get(ingredients.get(0).getClass())); + for (Item i : ingredients){ + if (regToExo.containsKey(i.getClass())) { + return Reflection.newInstance(regToExo.get(i.getClass())); + } + } + return null; + } } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CaveTwoBossLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CaveTwoBossLevel.java index 2c8f817cb..83a114e2f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CaveTwoBossLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CaveTwoBossLevel.java @@ -71,7 +71,7 @@ public class CaveTwoBossLevel extends Level { @Override public String tilesTex() { - return Assets.Environment.TILES_CAVES; + return Assets.Environment.TILES_COLD; } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CavesBossLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CavesBossLevel.java index d313a1dae..e642495a7 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CavesBossLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CavesBossLevel.java @@ -88,12 +88,12 @@ public class CavesBossLevel extends Level { @Override public String tilesTex() { - return Assets.Environment.TILES_CAVES; + return Assets.Environment.TILES_COLD; } @Override public String waterTex() { - return Assets.Environment.WATER_CAVES; + return Assets.Environment.WATER_COLD; } private static int WIDTH = 33; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CavesLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CavesLevel.java index 1939b5040..c97d17b36 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CavesLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/CavesLevel.java @@ -110,12 +110,12 @@ public class CavesLevel extends RegularLevel { @Override public String tilesTex() { - return Assets.Environment.TILES_CAVES; + return Assets.Environment.TILES_COLD; } @Override public String waterTex() { - return Assets.Environment.WATER_CAVES; + return Assets.Environment.WATER_COLD; } @Override 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 85523caac..2dccc4f23 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/RegularLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/RegularLevel.java @@ -21,11 +21,15 @@ package com.shatteredpixel.shatteredpixeldungeon.levels; +import static com.shatteredpixel.shatteredpixeldungeon.Challenges.ALLBOSS; +import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero; + import com.shatteredpixel.shatteredpixeldungeon.Bones; 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.RandomBuff; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.GoldenMimic; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mimic; @@ -45,6 +49,8 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.builders.LoopBuilder; import com.shatteredpixel.shatteredpixeldungeon.levels.painters.Painter; import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.Room; import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.secret.SecretRoom; +import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.special.NxhyShopRoom; +import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.special.NyzBombAndBooksRoom; import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.special.PitRoom; import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.special.ShopRoom; import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.special.SpecialRoom; @@ -114,10 +120,18 @@ public abstract class RegularLevel extends Level { i += s.sizeCat.roomValue-1; initRooms.add(s); } - - if (Dungeon.shopOnLevel()) + + if (Dungeon.shopOnLevel() && (!Dungeon.isChallenged(ALLBOSS))) initRooms.add(new ShopRoom()); + if (Dungeon.NxhyshopOnLevel() && (!Dungeon.isChallenged(ALLBOSS))) + initRooms.add(new NxhyShopRoom()); + + if (Dungeon.NyzshopOnLevel() && (!Dungeon.isChallenged(ALLBOSS))) { + Buff.affect(hero, RandomBuff.class).set( (3 + Random.Int(9)+hero.STR/6+hero.HP/30)/Random.Int(1,2)+5, 1 ); + initRooms.add(new NyzBombAndBooksRoom()); + } + //force max special rooms and add one more for large levels int specials = specialRooms(feeling == Feeling.LARGE); if (feeling == Feeling.LARGE){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/ChangesScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/ChangesScene.java index 81e4faa59..1765dfd19 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/ChangesScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/ChangesScene.java @@ -135,7 +135,7 @@ public class ChangesScene extends PixelScene { @Override public void onClick() { NewChangesScene.changesSelected = 0; - NewChangesScene.fromChangesScene = true; + NewChangesScene.fromChangesScene = false; ShatteredPixelDungeon.switchNoFade(NewChangesScene.class); } }; 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 89e3cc1cd..99f671077 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java @@ -3,7 +3,7 @@ * Copyright (C) 2012-2015 Oleg Dolya * * Shattered Pixel Dungeon - * Copyright (C) 2014-2022 Evan Debenham + * Copyright (C) 2014-2021 Evan Debenham * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,10 +21,9 @@ package com.shatteredpixel.shatteredpixeldungeon.scenes; -import static com.shatteredpixel.shatteredpixeldungeon.Challenges.LIGHTBLACK; +import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero; import com.shatteredpixel.shatteredpixeldungeon.Assets; -import com.shatteredpixel.shatteredpixeldungeon.Chrome; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.GamesInProgress; import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; @@ -41,10 +40,7 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.special.SpecialRoom import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.services.updates.Updates; import com.shatteredpixel.shatteredpixeldungeon.ui.GameLog; -import com.shatteredpixel.shatteredpixeldungeon.ui.Icons; import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextBlock; -import com.shatteredpixel.shatteredpixeldungeon.ui.StyledButton; -import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.shatteredpixel.shatteredpixeldungeon.utils.BArray; import com.shatteredpixel.shatteredpixeldungeon.windows.WndError; import com.shatteredpixel.shatteredpixeldungeon.windows.WndStory; @@ -57,56 +53,74 @@ import com.watabou.noosa.NoosaScript; import com.watabou.noosa.NoosaScriptNoLighting; import com.watabou.noosa.SkinnedBlock; import com.watabou.utils.DeviceCompat; +import com.watabou.utils.Random; import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; public class InterlevelScene extends PixelScene { - + public static int lastRegion = -1; //slow fade on entering a new region private static final float SLOW_FADE = 1f; //.33 in, 1.33 steady, .33 out, 2 seconds total //norm fade when loading, falling, returning, or descending to a new floor private static final float NORM_FADE = 0.67f; //.33 in, .67 steady, .33 out, 1.33 seconds total //fast fade when ascending, or descending to a floor you've been on private static final float FAST_FADE = 0.50f; //.33 in, .33 steady, .33 out, 1 second total - + private static float fadeTime; - + public enum Mode { - DESCEND, ASCEND, CONTINUE, RESURRECT, RETURN, FALL, RESET, NONE + DESCEND, ASCEND, CONTINUE, RESURRECT, RETURN, FALL, RESET, NONE,KO,GOBACK } public static Mode mode; - + public static int returnDepth; public static int returnPos; - + public static boolean noStory = false; public static boolean fallIntoPit; - + + private static final int NUM_TIPS = 32; + + private static ArrayList tipset; + private RenderedTextBlock tip; + + private void newTipSet() + { + tipset = new ArrayList<>(); + for(int i = 1; i <= NUM_TIPS; i++) + tipset.add(i); + } + private enum Phase { FADE_IN, STATIC, FADE_OUT } private Phase phase; private float timeLeft; - + private RenderedTextBlock message; - + private static Thread thread; private static Exception error = null; private float waitingTime; - public static int lastRegion = -1; - - { - inGameScene = true; - } - @Override public void create() { super.create(); - + + if(tipset == null || tipset.isEmpty()) + newTipSet(); + + int tip_i = tipset.remove(Random.Int(tipset.size())); + + tip = PixelScene.renderTextBlock(Messages.get(this, "dialog_" + tip_i), 9); + tip.maxWidth((int)Math.round(Camera.main.width * 0.8)); + tip.setPos((Camera.main.width - tip.width()) / 2, (Camera.main.height - tip.height()) / 2); + align(tip); + add(tip); + String loadingAsset; int loadingDepth; final float scrollSpeed; @@ -149,42 +163,35 @@ public class InterlevelScene extends PixelScene { scrollSpeed = returnDepth > Dungeon.depth ? 15 : -15; break; } + if (loadingDepth == 1) loadingAsset = Assets.Interfaces.LOADING_COLD; + else if (loadingDepth <= 5) loadingAsset = Assets.Interfaces.LOADING_COLD; + else if (loadingDepth <= 10) loadingAsset = Assets.Interfaces.LOADING_PRISON; + else if (loadingDepth <= 15) loadingAsset = Assets.Interfaces.LOADING_COLD; + else if (loadingDepth <= 20) loadingAsset = Assets.Interfaces.LOADING_CITY; + else if (loadingDepth <= 25) loadingAsset = Assets.Interfaces.LOADING_HALLS; + else loadingAsset = Assets.Interfaces.SHADOW; - //flush the texture cache whenever moving between regions, helps reduce memory load - int region = (int)Math.ceil(loadingDepth / 5f); - if (region != lastRegion){ - TextureCache.clear(); - lastRegion = region; - } - - if (lastRegion == 1) loadingAsset = Assets.Interfaces.LOADING_SEWERS; - else if (lastRegion == 2) loadingAsset = Assets.Interfaces.LOADING_PRISON; - else if (lastRegion == 3) loadingAsset = Assets.Interfaces.LOADING_CAVES; - else if (lastRegion == 4) loadingAsset = Assets.Interfaces.LOADING_CITY; - else if (lastRegion == 5) loadingAsset = Assets.Interfaces.LOADING_HALLS; - else loadingAsset = Assets.Interfaces.SHADOW; - //slow down transition when displaying an install prompt if (Updates.isInstallable()){ - fadeTime += 0.5f; //adds 1 second total - //speed up transition when debugging + fadeTime += 0.9f; //adds 1 second total + //speed up transition when debugging } else if (DeviceCompat.isDebug()){ - fadeTime = 0f; + fadeTime = 0.7f; } - + SkinnedBlock bg = new SkinnedBlock(Camera.main.width, Camera.main.height, loadingAsset ){ @Override protected NoosaScript script() { return NoosaScriptNoLighting.get(); } - + @Override public void draw() { Blending.disable(); super.draw(); Blending.enable(); } - + @Override public void update() { super.update(); @@ -194,7 +201,7 @@ public class InterlevelScene extends PixelScene { bg.scale(4, 4); bg.autoAdjust = true; add(bg); - + Image im = new Image(TextureCache.createGradient(0xAA000000, 0xBB000000, 0xCC000000, 0xDD000000, 0xFF000000)){ @Override public void update() { @@ -209,49 +216,30 @@ public class InterlevelScene extends PixelScene { im.scale.x = Camera.main.height/5f; im.scale.y = Camera.main.width; add(im); - String text = Messages.get(Mode.class, mode.name()); - - message = PixelScene.renderTextBlock( text, 9 ); - message.setPos( - (Camera.main.width - message.width()) / 2, - (Camera.main.height - message.height()) / 2 - ); + message = PixelScene.renderTextBlock(text, 9); + message.x = (Camera.main.width - message.width()) / 2; + message.y = (Camera.main.height - message.height()) / 4; align(message); - add( message ); + add(message); - if (Updates.isInstallable()){ - StyledButton install = new StyledButton(Chrome.Type.GREY_BUTTON_TR, Messages.get(this, "install")){ - @Override - public void update() { - super.update(); - float p = timeLeft / fadeTime; - if (phase == Phase.FADE_IN) alpha(1 - p); - else if (phase == Phase.FADE_OUT) alpha(p); - else alpha(1); - } + if(tipset == null || tipset.isEmpty()) + newTipSet(); + + tip = PixelScene.renderTextBlock(Messages.get(this, "dialog_" + tip_i), 7); + tip.maxWidth((int)Math.round(Camera.main.width * 0.8)); + tip.setPos((Camera.main.width - tip.width()) / 2, (Camera.main.height - tip.height()) / 2); + align(tip); + add(tip); - @Override - protected void onClick() { - super.onClick(); - Updates.launchInstall(); - } - }; - install.icon(Icons.get(Icons.CHANGES)); - install.textColor(Window.SHPX_COLOR); - install.setSize(install.reqWidth()+5, 20); - install.setPos((Camera.main.width - install.width())/2, (Camera.main.height - message.bottom())/3 + message.bottom()); - add(install); - } - phase = Phase.FADE_IN; timeLeft = fadeTime; - + if (thread == null) { thread = new Thread() { @Override public void run() { - + try { if (Dungeon.hero != null){ @@ -275,20 +263,28 @@ public class InterlevelScene extends PixelScene { case RETURN: returnTo(); break; + case GOBACK: + returnPO(); + break; case FALL: fall(); break; case RESET: reset(); break; + case KO: + reset(); + returnTx(); + resurrect(); + break; } - + } catch (Exception e) { - + error = e; - + } - + if (phase == Phase.STATIC && error == null) { phase = Phase.FADE_OUT; timeLeft = fadeTime; @@ -299,72 +295,72 @@ public class InterlevelScene extends PixelScene { } waitingTime = 0f; } - + @Override public void update() { super.update(); waitingTime += Game.elapsed; - + float p = timeLeft / fadeTime; - + switch (phase) { - - case FADE_IN: - message.alpha( 1 - p ); - if ((timeLeft -= Game.elapsed) <= 0) { - if (!thread.isAlive() && error == null) { - phase = Phase.FADE_OUT; - timeLeft = fadeTime; - } else { - phase = Phase.STATIC; - } - } - break; - - case FADE_OUT: - message.alpha( p ); - - if ((timeLeft -= Game.elapsed) <= 0) { - Game.switchScene( GameScene.class ); - thread = null; - error = null; - } - break; - - case STATIC: - if (error != null) { - String errorMsg; - if (error instanceof FileNotFoundException) errorMsg = Messages.get(this, "file_not_found"); - else if (error instanceof IOException) errorMsg = Messages.get(this, "io_error"); - else if (error.getMessage() != null && - error.getMessage().equals("old save")) errorMsg = Messages.get(this, "io_error"); - else throw new RuntimeException("fatal error occured while moving between floors. " + - "Seed:" + Dungeon.seed + " depth:" + Dungeon.depth, error); - - add( new WndError( errorMsg ) { - public void onBackPressed() { - super.onBackPressed(); - Game.switchScene( StartScene.class ); + case FADE_IN: + message.alpha( 1 - p ); + if ((timeLeft -= Game.elapsed) <= 0) { + if (!thread.isAlive() && error == null) { + phase = Phase.FADE_OUT; + timeLeft = fadeTime; + } else { + phase = Phase.STATIC; } - } ); - thread = null; - error = null; - } else if (thread != null && (int)waitingTime == 10){ - waitingTime = 11f; - String s = ""; - for (StackTraceElement t : thread.getStackTrace()){ - s += "\n"; - s += t.toString(); } - ShatteredPixelDungeon.reportException( - new RuntimeException("waited more than 10 seconds on levelgen. " + - "Seed:" + Dungeon.seed + " depth:" + Dungeon.depth + " trace:" + - s) - ); - } - break; + break; + + case FADE_OUT: + message.alpha( p ); + + if ((timeLeft -= Game.elapsed) <= 0) { + Game.switchScene( GameScene.class ); + thread = null; + error = null; + } + break; + + case STATIC: + if (error != null) { + String errorMsg; + if (error instanceof FileNotFoundException) errorMsg = Messages.get(this, "file_not_found"); + else if (error instanceof IOException) errorMsg = Messages.get(this, "io_error"); + else if (error.getMessage() != null && + error.getMessage().equals("old save")) errorMsg = Messages.get(this, "io_error"); + + else throw new RuntimeException("fatal error occured while moving between floors. " + + "Seed:" + Dungeon.seed + " depth:" + Dungeon.depth, error); + + add( new WndError( errorMsg ) { + public void onBackPressed() { + super.onBackPressed(); + Game.switchScene( StartScene.class ); + } + } ); + thread = null; + error = null; + } else if (thread != null && (int)waitingTime == 10){ + waitingTime = 11f; + String s = ""; + for (StackTraceElement t : thread.getStackTrace()){ + s += "\n"; + s += t.toString(); + } + ShatteredPixelDungeon.reportException( + new RuntimeException("waited more than 10 seconds on levelgen. " + + "Seed:" + Dungeon.seed + " depth:" + Dungeon.depth + " trace:" + + s) + ); + } + break; } } @@ -392,11 +388,11 @@ public class InterlevelScene extends PixelScene { } Dungeon.switchLevel( level, level.entrance ); } - + private void fall() throws IOException { - + Mob.holdAllies( Dungeon.level ); - + Buff.affect( Dungeon.hero, Chasm.Falling.class ); Dungeon.saveAll(); @@ -409,9 +405,9 @@ public class InterlevelScene extends PixelScene { } Dungeon.switchLevel( level, level.fallCell( fallIntoPit )); } - + private void ascend() throws IOException { - + Mob.holdAllies( Dungeon.level ); Dungeon.saveAll(); @@ -419,9 +415,9 @@ public class InterlevelScene extends PixelScene { Level level = Dungeon.loadLevel( GamesInProgress.curSlot ); Dungeon.switchLevel( level, level.exit ); } - + private void returnTo() throws IOException { - + Mob.holdAllies( Dungeon.level ); Dungeon.saveAll(); @@ -429,11 +425,30 @@ public class InterlevelScene extends PixelScene { Level level = Dungeon.loadLevel( GamesInProgress.curSlot ); Dungeon.switchLevel( level, returnPos ); } - - private void restore() throws IOException { - - Mob.clearHeldAllies(); + private void returnPO() throws IOException { + Mob.holdAllies( Dungeon.level ); + hero.STR = 10; + hero.lvl = 1; + InterlevelScene.returnDepth = Math.max(1, (Dungeon.depth - 1 - (Dungeon.depth-2)%5)); + InterlevelScene.returnPos = -1; + Level level = Dungeon.loadLevel( GamesInProgress.curSlot ); + Dungeon.switchLevel( level, returnPos ); + } + + private void returnTx() throws IOException { + + Mob.holdAllies( Dungeon.level ); + + Dungeon.saveAll(); + Dungeon.depth = 0; + Level level = Dungeon.loadLevel( GamesInProgress.curSlot ); + Dungeon.switchLevel( level, returnPos ); + } + + private void restore() throws IOException { + + Mob.clearHeldAllies(); GameLog.wipe(); Dungeon.loadGame( GamesInProgress.curSlot ); @@ -445,13 +460,12 @@ public class InterlevelScene extends PixelScene { Dungeon.switchLevel( level, Dungeon.hero.pos ); } } - + private void resurrect() { - + Mob.holdAllies( Dungeon.level ); Level level; - if (Dungeon.level.locked) { ArrayList preservedItems = Dungeon.level.getItemsToPreserveFromSealedResurrect(); @@ -460,12 +474,10 @@ public class InterlevelScene extends PixelScene { level = Dungeon.newLevel(); Dungeon.hero.pos = level.randomRespawnCell(Dungeon.hero); - if(!Dungeon.isChallenged(LIGHTBLACK)) { - for (Item i : preservedItems) { - level.drop(i, level.randomRespawnCell(null)); - } - level.drop(new LostBackpack(), level.randomRespawnCell(null)); + for (Item i : preservedItems){ + level.drop(i, level.randomRespawnCell(null)); } + level.drop(new LostBackpack(), level.randomRespawnCell(null)); } else { level = Dungeon.level; @@ -478,7 +490,7 @@ public class InterlevelScene extends PixelScene { Dungeon.hero.pos = level.randomRespawnCell(Dungeon.hero); tries++; - //prevents spawning on traps or plants, prefers farther locations first + //prevents spawning on traps or plants, prefers farther locations first } while (level.traps.get(Dungeon.hero.pos) != null || (level.plants.get(Dungeon.hero.pos) != null && tries < 500) || level.trueDistance(invPos, Dungeon.hero.pos) <= 30 - (tries/10)); @@ -488,27 +500,23 @@ public class InterlevelScene extends PixelScene { level.map[Dungeon.hero.pos] = Terrain.GRASS; } Dungeon.hero.resurrect(); - - //非光与影死亡掉落遗物 - if(!Dungeon.isChallenged(LIGHTBLACK)) { - level.drop(new LostBackpack(), invPos); - } + level.drop(new LostBackpack(), invPos); } Dungeon.switchLevel( level, Dungeon.hero.pos ); } private void reset() throws IOException { - - Mob.holdAllies( Dungeon.level ); + Mob.holdAllies( Dungeon.level ); + hero.HP += 20; SpecialRoom.resetPitRoom(Dungeon.depth+1); Dungeon.depth--; Level level = Dungeon.newLevel(); Dungeon.switchLevel( level, level.entrance ); } - + @Override protected void onBackPressed() { //Do nothing diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/NewChangesScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/NewChangesScene.java index ee7628367..d4e0c6411 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/NewChangesScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/NewChangesScene.java @@ -25,7 +25,7 @@ public class NewChangesScene extends PixelScene { public static int changesSelected = 0; - public static boolean fromChangesScene = false; + public static boolean fromChangesScene = true; @Override public void create() { @@ -151,7 +151,7 @@ public class NewChangesScene extends PixelScene { }; if (changesSelected != 0) btnBeta.textColor( 0xBBBBBB ); - btnBeta.setRect(list.left()-4f, list.bottom(), 45, changesSelected == 0 ? 19 : 15); + btnBeta.setRect(list.left()-4f, list.bottom(), 46, changesSelected == 0 ? 19 : 15); addToBack(btnBeta); StyledButton btn0_8 = new StyledButton(Chrome.Type.TOAST, "0.5.X"){ @@ -165,7 +165,7 @@ public class NewChangesScene extends PixelScene { } }; if (changesSelected != 1) btn0_8.textColor( 0xBBBBBB ); - btn0_8.setRect(btnBeta.right()+1, list.bottom(), 45, changesSelected == 1 ? 19 : 15); + btn0_8.setRect(btnBeta.right()+1, list.bottom(), 47, changesSelected == 1 ? 19 : 15); addToBack(btn0_8); StyledButton btn0_7 = new StyledButton(Chrome.Type.TOAST, "0.0-0.4"){ @@ -179,7 +179,7 @@ public class NewChangesScene extends PixelScene { } }; if (changesSelected != 2) btn0_7.textColor( 0xBBBBBB ); - btn0_7.setRect(btn0_8.right() + 1, btn0_8.top(), 45, changesSelected == 2 ? 19 : 15); + btn0_7.setRect(btn0_8.right() + 1, btn0_8.top(), 46, changesSelected == 2 ? 19 : 15); addToBack(btn0_7); Archs archs = new Archs(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/ThanksScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/ThanksScene.java index 16ac066ca..b86639353 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/ThanksScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/ThanksScene.java @@ -48,7 +48,7 @@ public class ThanksScene extends PixelScene { CreditsBlock mispd = new CreditsBlock(true, Window.TITLE_COLOR, "Magic Ling Pixel Dungeon", - Icons.STAIRS.get(), + new Image("Ling.png", 0, 0, 16, 16), "_Start to 2021-2-12_\n\nDev:_JDSA Ling_" , null, diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/CharSprite.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/CharSprite.java index 63586ebfa..895a0e187 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/CharSprite.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/CharSprite.java @@ -21,8 +21,6 @@ package com.shatteredpixel.shatteredpixeldungeon.sprites; -import static com.shatteredpixel.shatteredpixeldungeon.Challenges.SBSG; - import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; @@ -161,23 +159,7 @@ public class CharSprite extends MovieClip implements Tweener.Listener, MovieClip renderShadow = true; //突变激素 粒子效果 - if ((Dungeon.isChallenged(SBSG) && (ch instanceof Mob))){ - switch (Random.Int(4)) { - case 0: - default: - this.add(State.ILLUMINATED); - break; - case 1: - this.add(State.CHILLED); - break; - case 2: - this.add(State.ROSESHIELDED); - break; - case 3: - this.add(State.MARKED); - break; - } - } else if (ch != Dungeon.hero) { + if (ch != Dungeon.hero) { if (health == null) { health = new CharHealthIndicator(ch); } else { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/BossHealthBar.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/BossHealthBar.java index cabe14a79..0106fc492 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/BossHealthBar.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/BossHealthBar.java @@ -3,7 +3,7 @@ * Copyright (C) 2012-2015 Oleg Dolya * * Shattered Pixel Dungeon - * Copyright (C) 2014-2022 Evan Debenham + * Copyright (C) 2014-2021 Evan Debenham * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,10 +21,16 @@ package com.shatteredpixel.shatteredpixeldungeon.ui; +import static com.shatteredpixel.shatteredpixeldungeon.ui.Window.CYELLOW; +import static com.shatteredpixel.shatteredpixeldungeon.ui.Window.R_COLOR; +import static com.shatteredpixel.shatteredpixeldungeon.ui.Window.TITLE_COLOR; + import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.BloodParticle; +import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; +import com.watabou.noosa.BitmapText; import com.watabou.noosa.Image; import com.watabou.noosa.particles.Emitter; import com.watabou.noosa.ui.Component; @@ -36,6 +42,7 @@ public class BossHealthBar extends Component { private Image rawShielding; private Image shieldedHP; private Image hp; + private BitmapText hpText; private static Mob boss; @@ -71,6 +78,10 @@ public class BossHealthBar extends Component { hp = new Image(asset, 15, 19, 47, 4); add(hp); + hpText = new BitmapText(PixelScene.pixelFont); + hpText.alpha(0.6f); + add(hpText); + skull = new Image(asset, 5, 18, 6, 6); add(skull); @@ -90,6 +101,13 @@ public class BossHealthBar extends Component { hp.x = shieldedHP.x = rawShielding.x = bar.x+15; hp.y = shieldedHP.y = rawShielding.y = bar.y+6; + hpText.scale.set(PixelScene.align(0.5f)); + hpText.x = hp.x + 1; + hpText.y = hp.y + (hp.height - (hpText.baseLine()+hpText.scale.y))/2f; + hpText.y -= 0.001f; //prefer to be slightly higher + hpText.hardlight( 0x808080 ); + PixelScene.align(hpText); + skull.x = bar.x+5; skull.y = bar.y+5; } @@ -97,6 +115,8 @@ public class BossHealthBar extends Component { @Override public void update() { super.update(); + + if (boss != null){ if (!boss.isAlive() || !Dungeon.level.mobs.contains(boss)){ boss = null; @@ -106,15 +126,32 @@ public class BossHealthBar extends Component { float health = boss.HP; float shield = boss.shielding(); float max = boss.HT; - + int maxHp = boss.HP; hp.scale.x = Math.max( 0, (health-shield)/max); shieldedHP.scale.x = health/max; rawShielding.scale.x = shield/max; - if (hp.scale.x < 0.25f) bleed( true ); + if (shield <= 0){ + hpText.text(health + "/" + max); + } + else { + hpText.text(health + "+" + shield + "/" + max); + } + + //低于75%渲染成蓝色 低于35%渲染成红色 + //Boss血量文本显示 + //完全不符合更新为蓝色颜色 + if (hp.scale.x > 0.75f) { + hpText.hardlight( TITLE_COLOR ); + } else if (hp.scale.x > 0.20f){ + hpText.hardlight( CYELLOW ); + } else { + bleed(true); + hpText.hardlight( R_COLOR ); + } if (bleeding != blood.on){ - if (bleeding) skull.tint( 0xcc0000, 0.6f ); + if (bleeding) skull.tint( 0xcc0000, 0.5f ); else skull.resetColor(); blood.on = bleeding; } @@ -129,7 +166,7 @@ public class BossHealthBar extends Component { instance.visible = instance.active = true; } } - + public static boolean isAssigned(){ return boss != null && boss.isAlive() && Dungeon.level.mobs.contains(boss); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/KeyDisplay.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/KeyDisplay.java index 0fda175cc..6e904fc7b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/KeyDisplay.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/KeyDisplay.java @@ -3,7 +3,7 @@ * Copyright (C) 2012-2015 Oleg Dolya * * Shattered Pixel Dungeon - * Copyright (C) 2014-2022 Evan Debenham + * Copyright (C) 2014-2021 Evan Debenham * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,6 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.ui; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.items.keys.BlackKey; import com.shatteredpixel.shatteredpixeldungeon.items.keys.CrystalKey; import com.shatteredpixel.shatteredpixeldungeon.items.keys.GoldenKey; import com.shatteredpixel.shatteredpixeldungeon.items.keys.IronKey; @@ -42,16 +43,16 @@ import java.nio.FloatBuffer; import java.util.LinkedHashMap; public class KeyDisplay extends Visual { - + private float[] vertices = new float[16]; private FloatBuffer quads; private Vertexbuffer buffer; - - private SmartTexture tx = TextureCache.get(Assets.Interfaces.MENU_BTN); - + + private SmartTexture tx = TextureCache.get(Assets.Interfaces.MENU); + private boolean dirty = true; private int[] keys; - + //mapping of key types to slots in the array, 0 is reserved for black (missed) keys //this also determines the order these keys will appear (lower first) //and the order they will be truncated if there is no space (higher first, larger counts first) @@ -61,17 +62,18 @@ public class KeyDisplay extends Visual { keyMap.put(CrystalKey.class, 2); keyMap.put(GoldenKey.class, 3); keyMap.put(IronKey.class, 4); + keyMap.put(BlackKey.class, 5); } - + private int totalKeys = 0; - + public KeyDisplay() { super(0, 0, 0, 0); } - + public void updateKeys(){ keys = new int[keyMap.size()+1]; - + for (Notes.KeyRecord rec : Notes.getRecords(Notes.KeyRecord.class)){ if (rec.depth() < Dungeon.depth){ //only ever 1 black key @@ -80,23 +82,23 @@ public class KeyDisplay extends Visual { keys[keyMap.get(rec.type())] += rec.quantity(); } } - + totalKeys = 0; for (int k : keys){ totalKeys += k; } dirty = true; } - + public int keyCount(){ return totalKeys; } - + @Override public void draw() { super.draw(); if (dirty){ - + updateVertices(); ((Buffer)quads).limit(quads.position()); @@ -104,32 +106,32 @@ public class KeyDisplay extends Visual { buffer = new Vertexbuffer(quads); else buffer.updateVertices(quads); - + } - + NoosaScript script = NoosaScript.get(); - + tx.bind(); - + script.camera( camera() ); - + script.uModel.valueM4( matrix ); script.lighting( rm, gm, bm, am, ra, ga, ba, aa ); script.drawQuadSet( buffer, totalKeys, 0 ); } - + private void updateVertices(){ //assumes shorter key sprite int maxRows = (int)(height +1) / 5; - + //1 pixel of padding between each key int maxPerRow = (int)(width + 1) / 4; - + int maxKeys = maxPerRow * maxRows; - - + + while (totalKeys > maxKeys){ Class mostType = null; int mostNum = 0; @@ -142,9 +144,9 @@ public class KeyDisplay extends Visual { keys[keyMap.get(mostType)]--; totalKeys--; } - + int rows = (int)Math.ceil(totalKeys / (float)maxPerRow); - + boolean shortKeys = (rows * 8) > height; float left; if (totalKeys > maxPerRow){ @@ -156,11 +158,11 @@ public class KeyDisplay extends Visual { quads = Quad.createSet(totalKeys); for (int i = 0; i < totalKeys; i++){ int keyIdx = 0; - + if (i == 0 && keys[0] > 0){ //black key keyIdx = 0; - + } else { for (int j = 1; j < keys.length; j++){ if (keys[j] > 0){ @@ -170,38 +172,38 @@ public class KeyDisplay extends Visual { } } } - + //texture coordinates RectF r = tx.uvRect(43 + 3*keyIdx, shortKeys ? 8 : 0, 46 + 3*keyIdx, shortKeys ? 12 : 7); - + vertices[2] = r.left; vertices[3] = r.top; - + vertices[6] = r.right; vertices[7] = r.top; - + vertices[10] = r.right; vertices[11] = r.bottom; - + vertices[14] = r.left; vertices[15] = r.bottom; - + //screen coordinates vertices[0] = left; vertices[1] = top; - + vertices[4] = left + 3; vertices[5] = top; - + vertices[8] = left + 3; vertices[9] = top + (shortKeys ? 4 : 7); - + vertices[12] = left; vertices[13] = top + (shortKeys ? 4 : 7); - + quads.put(vertices); - + //move to the right for more keys, drop down if the row is done left += 4; if (left + 3 > width){ @@ -209,16 +211,9 @@ public class KeyDisplay extends Visual { top += (shortKeys ? 5 : 8); } } - + dirty = false; - + } - @Override - public void destroy() { - super.destroy(); - if (buffer != null) - buffer.delete(); - } - } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/TalentButton.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/TalentButton.java index 01dac5ed6..86cb97863 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/TalentButton.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/TalentButton.java @@ -23,6 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.ui; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.SPDSettings; import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent; import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; @@ -83,7 +84,11 @@ public class TalentButton extends Button { fill = new ColorBlock(0, 4, 0xFFFFFF44); add(fill); - bg = new Image(Assets.Interfaces.TALENT_BUTTON); + if (SPDSettings.ClassUI()) { + bg = new Image(Assets.Interfaces.TALENT_BUTTON_DARK); + } else { + bg = new Image(Assets.Interfaces.TALENT_BUTTON); + } add(bg); } 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 78843232b..9f6457017 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Toolbar.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Toolbar.java @@ -35,6 +35,7 @@ import com.shatteredpixel.shatteredpixeldungeon.tiles.DungeonTerrainTilemap; import com.shatteredpixel.shatteredpixeldungeon.windows.WndBag; import com.shatteredpixel.shatteredpixeldungeon.windows.WndKeyBindings; import com.shatteredpixel.shatteredpixeldungeon.windows.WndQuickBag; +import com.watabou.gltextures.TextureCache; import com.watabou.input.GameAction; import com.watabou.noosa.Camera; import com.watabou.noosa.Game; @@ -335,6 +336,7 @@ public class Toolbar extends Component { if (instance != null) instance.layout(); } + @Override public void update() { super.update(); @@ -403,6 +405,16 @@ public class Toolbar extends Component { add( base ); } + @Override + public void update() { + super.update(); + if (SPDSettings.ClassUI()) { + base.texture = TextureCache.get(Assets.Interfaces.TOOLBARDRAK); + } else { + base.texture = TextureCache.get(Assets.Interfaces.TOOLBAR); + } + } + @Override protected void layout() { super.layout(); 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 767f2c9fa..d1b0dc011 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 @@ -1,8 +1,12 @@ package com.shatteredpixel.shatteredpixeldungeon.ui.changelist.mlpd; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.ui.Icons; +import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.ChangeButton; import com.shatteredpixel.shatteredpixeldungeon.ui.changelist.ChangeInfo; +import com.watabou.noosa.Image; import java.util.ArrayList; @@ -13,27 +17,40 @@ public class vM0_6_7_X_Changes { } public static void add_v0_6_0_Changes( ArrayList changeInfos ) { - ChangeInfo changes = new ChangeInfo("敬请期待-MLPD最终更新(P1)", true, ""); - changes.hardlight(0x808080); + ChangeInfo changes = new ChangeInfo("v0.6.0.0-BetaX", true, ""); + changes.hardlight(Window.TITLE_COLOR); changeInfos.add(changes); - changes.addButton(new ChangeButton(Icons.get(Icons.SHPX), ("更新底层到破碎123版本"), - ("魔绫即将进行大更新到破碎123版本,敬请期待"))); + changes = new ChangeInfo("改动", false, null); + changes.hardlight(Window.SKYBULE_COLOR); + changeInfos.add(changes); + + changes.addButton(new ChangeButton(Icons.get(Icons.CHANGES), ("重大更新"), + ("魔绫现已更新底层到破碎123版本!"))); changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_ON), ("新挑战和部分挑战改动"), - ("魔绫即将对部分挑战进行重新调整,同时追加全新挑战,敬请期待"))); + ("部分挑战进行重新调整,同时追加全新挑战,欢迎前来探索\n\n注意:部分挑战尚未完成,请等待后续版本"))); changes.addButton(new ChangeButton(Icons.get(Icons.LANGS), ("本地化模块升级"), - ("魔绫即将对本地化语言模块优化,使部分渣机性能更好"))); + ("魔绫已经对本地化语言模块优化,使部分低配设备性能更好"))); changes.addButton(new ChangeButton(Icons.get(Icons.DISPLAY), ("UI优化改动"), - ("魔绫即将对UI优化改动进行大规模调整,敬请期待"))); + ("魔绫已经对UI优化改动进行大规模调整,欢迎前来体验"))); + + changes.addButton(new ChangeButton((new Image("Ling.png", 0, 0, 16, 16)), ("开发者的话"), + ("你好,这里是绫。如你所见,这是全新的魔绫像素地牢,她已经步入了破碎1.2" + + ".3的版本。\n\n至此,魔绫像素地牢以后将针对于此破碎底层进行更新。今后不会继续同步底层破碎版本。\n\n" + + "同时,本次更新后,后续应该还有几个补丁版。很高兴一路以来有那么多的朋友,非常谢谢你们的支持。\n\n现在,旅途才刚刚开始,魔绫下半段,将会更加精彩。\n" + + "在这之前,就让我们继续在上半段的魔绫里面探索前进吧。"))); + + changes = new ChangeInfo("调整", false, null); + changes.hardlight(Window.GREEN_COLOR); + changeInfos.add(changes); + + changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.FIREFISHSWORD), ("尚方宝剑特效重写"), + ("优化了尚方宝剑特效,并最大程度上进行了处理"))); - changes.addButton(new ChangeButton(Icons.get(Icons.STAIRS), ("开发者的话"), - ("魔绫地牢已经更新了接近一年,接下来,第一部分即将完结。敬请期待第二部分的更新!"))); - changes.addButton(new ChangeButton(Icons.get(Icons.NEWS), ("不止于此"), - ("更多第一部分最终版更新情报,请锁定魔绫总群!"))); } } 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 fc51acc4a..acddb8ef9 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndChallenges.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndChallenges.java @@ -138,6 +138,14 @@ public class WndChallenges extends Window { cb.checked((checked & Challenges.MASKS[i]) != 0); cb.active = editable; + //暂时禁用 + if(Challenges.NAME_IDS[i].equals("light&black")||Challenges.NAME_IDS[i].equals("exsg")||Challenges.NAME_IDS[i].equals("boss")||Challenges.NAME_IDS[i].equals("aquaphobia")){ + cb.active = false; + cb.checked(false); + cb.alpha(0.5f); + } + + if (i > 0) { pos += GAP; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndSettings.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndSettings.java index c07d0ba4c..d37d2bc4f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndSettings.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndSettings.java @@ -54,7 +54,7 @@ import java.util.Locale; public class WndSettings extends WndTabbed { private static final int WIDTH_P = 122; - private static final int WIDTH_L = 223; + private static final int WIDTH_L = 240; private static final int SLIDER_HEIGHT = 24; private static final int BTN_HEIGHT = 18; @@ -211,7 +211,7 @@ public class WndSettings extends WndTabbed { ColorBlock sep2; OptionSlider optBrightness; OptionSlider optVisGrid; - OptionSlider optSplashScreen; + @Override protected void createChildren() { title = PixelScene.renderTextBlock(Messages.get(this, "title"), 9); @@ -323,20 +323,6 @@ public class WndSettings extends WndTabbed { optVisGrid.setSelectedValue(SPDSettings.visualGrid()); add(optVisGrid); - optSplashScreen = new OptionSlider(Messages.get(this, "splash_screen"), - Messages.get(this, "disable" ), - Messages.get( this, "full" ), - 0, 1) { - @Override - protected void onChange() { - if (getSelectedValue() != SPDSettings.splashScreen()) { - SPDSettings.splashScreen(getSelectedValue()); - } - } - }; - optSplashScreen.setSelectedValue(SPDSettings.splashScreen()); - add(optSplashScreen); - } @Override @@ -351,7 +337,11 @@ public class WndSettings extends WndTabbed { bottom = sep1.y + 1; if (width > 200 && chkSaver != null) { - chkFullscreen.setRect(0, bottom + GAP, width/2-1, BTN_HEIGHT); + if(DeviceCompat.isDesktop()){ + chkFullscreen.setRect(0, bottom + GAP, width/2-1, BTN_HEIGHT); + } else { + chkFullscreen.setRect(999, bottom + GAP, width/2-1, BTN_HEIGHT); + } chkSaver.setRect(chkFullscreen.right()+ GAP, bottom + GAP, width/2-1, BTN_HEIGHT); bottom = chkFullscreen.bottom(); } else { @@ -381,11 +371,11 @@ public class WndSettings extends WndTabbed { if (width > 200){ optBrightness.setRect(0, bottom + GAP, width/2-GAP/2, SLIDER_HEIGHT); optVisGrid.setRect(optBrightness.right() + GAP, optBrightness.top(), width/2-GAP/2, SLIDER_HEIGHT); - optSplashScreen.setRect(optVisGrid.right() + GAP, optVisGrid.top(), width/2-GAP/2, SLIDER_HEIGHT); + //optSplashScreen.setRect(optBrightness.left(), optBrightness.bottom(), width, SLIDER_HEIGHT); } else { optBrightness.setRect(0, bottom + GAP, width, SLIDER_HEIGHT); optVisGrid.setRect(0, optBrightness.bottom() + GAP, width, SLIDER_HEIGHT); - optSplashScreen.setRect(0, optVisGrid.bottom() + GAP, width, SLIDER_HEIGHT); + //optSplashScreen.setRect(0, optVisGrid.bottom() + GAP, width, SLIDER_HEIGHT); } height = optVisGrid.bottom(); @@ -612,7 +602,7 @@ public class WndSettings extends WndTabbed { RenderedTextBlock title; ColorBlock sep1; CheckBox ClassUI; - CheckBox ClassSkin; + OptionSlider optSplashScreen; @Override protected void createChildren() { @@ -632,6 +622,20 @@ public class WndSettings extends WndTabbed { }; ClassUI.checked(SPDSettings.ClassUI()); add(ClassUI); + + optSplashScreen = new OptionSlider(Messages.get(this, "splash_screen"), + Messages.get(this, "disable" ), + Messages.get( this, "full" ), + 0, 1) { + @Override + protected void onChange() { + if (getSelectedValue() != SPDSettings.splashScreen()) { + SPDSettings.splashScreen(getSelectedValue()); + } + } + }; + optSplashScreen.setSelectedValue(SPDSettings.splashScreen()); + add(optSplashScreen); } @Override @@ -646,10 +650,12 @@ public class WndSettings extends WndTabbed { bottom = sep1.y + 1; if (width > 200){ - ClassUI.setRect(0, bottom, width/2-GAP/2, SLIDER_HEIGHT); + ClassUI.setRect(0, bottom, width, SLIDER_HEIGHT); + optSplashScreen.setRect(0, ClassUI.bottom() + GAP, width, SLIDER_HEIGHT); } else { //quickslots.setRect(0, bottom + GAP, width, SLIDER_HEIGHT); ClassUI.setRect(0, bottom + GAP, width, SLIDER_HEIGHT); + optSplashScreen.setRect(0, ClassUI.bottom() + GAP, width, SLIDER_HEIGHT); //GameScene }