Update Beta0.6.2.0-B3
This is the last end update in the near future, Now I stop developing MLPD content, I will return in the future, so please stay tuned.
This commit is contained in:
parent
0112d1a27d
commit
faa8a6e789
|
@ -17,8 +17,8 @@ allprojects {
|
||||||
appName = 'Magic Ling Pixel Dungeon'
|
appName = 'Magic Ling Pixel Dungeon'
|
||||||
appPackageName = 'com.ansdomagiclingpixeldungeon.ling'
|
appPackageName = 'com.ansdomagiclingpixeldungeon.ling'
|
||||||
|
|
||||||
appVersionCode =800867
|
appVersionCode =900871
|
||||||
appVersionName = '0.6.1.0-Beta7.3(P3)'
|
appVersionName = '0.6.2.0-Beta3'
|
||||||
|
|
||||||
appJavaCompatibility = JavaVersion.VERSION_11
|
appJavaCompatibility = JavaVersion.VERSION_11
|
||||||
|
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
@ -134,7 +134,7 @@ actors.buffs.clearbleesdgoodbuff.blessmixshiled.name=纯洁的祝福-守护
|
||||||
actors.buffs.clearbleesdgoodbuff.blessmixshiled.desc=守护我们最后的种子!\n\n本大层英雄在血满的情况下每150回合获得一些护盾。
|
actors.buffs.clearbleesdgoodbuff.blessmixshiled.desc=守护我们最后的种子!\n\n本大层英雄在血满的情况下每150回合获得一些护盾。
|
||||||
|
|
||||||
actors.buffs.clearbleesdgoodbuff.blessimmune.name=纯洁的祝福-隐没
|
actors.buffs.clearbleesdgoodbuff.blessimmune.name=纯洁的祝福-隐没
|
||||||
actors.buffs.clearbleesdgoodbuff.blessimmune.desc=隐没在这人群之中,我们便是超凡脱俗的个体\n\n本大层英雄免疫诅咒效果和减少40%的物理伤害。
|
actors.buffs.clearbleesdgoodbuff.blessimmune.desc=隐没在这人群之中,我们便是超凡脱俗的个体\n\n本大层英雄免疫诅咒效果和魔法效果和减少40%的物理伤害以及无视血色哨卫的伤害。
|
||||||
|
|
||||||
actors.buffs.clearbleesdgoodbuff.blessgoread.name=纯洁的祝福-前路
|
actors.buffs.clearbleesdgoodbuff.blessgoread.name=纯洁的祝福-前路
|
||||||
actors.buffs.clearbleesdgoodbuff.blessgoread.desc=行走在这令人惧怕的地牢中,灯火是前路的指引\n\n本大层英雄灯火值高于60%的情况下,获得每回合进行血量回复。
|
actors.buffs.clearbleesdgoodbuff.blessgoread.desc=行走在这令人惧怕的地牢中,灯火是前路的指引\n\n本大层英雄灯火值高于60%的情况下,获得每回合进行血量回复。
|
||||||
|
@ -961,7 +961,7 @@ actors.buffs.championenemy$halo.name=鬼磷精英
|
||||||
actors.buffs.championenemy$halo.desc=鬼磷精英造成 15% 额外近战伤害,会使用更强大的磷火点燃攻击目标,免疫火焰,免疫磷火。
|
actors.buffs.championenemy$halo.desc=鬼磷精英造成 15% 额外近战伤害,会使用更强大的磷火点燃攻击目标,免疫火焰,免疫磷火。
|
||||||
|
|
||||||
actors.buffs.championenemy$delaymob.name=苦痛精英
|
actors.buffs.championenemy$delaymob.name=苦痛精英
|
||||||
actors.buffs.championenemy$delaymob.desc=苦痛精英可以将受到的伤害进行延时释放,拥有 45% 额外近战伤害。
|
actors.buffs.championenemy$delaymob.desc=苦痛精英可以将受到的伤害进行延时释放,拥有 45% 额外近战伤害,拥有60%的伤害减免。
|
||||||
|
|
||||||
|
|
||||||
actors.buffs.championenemy.warn2=杀戮与不祥之意笼罩在整个地牢之中……
|
actors.buffs.championenemy.warn2=杀戮与不祥之意笼罩在整个地牢之中……
|
||||||
|
|
|
@ -172,7 +172,7 @@ items.weapon.melee.endingblade.ac_diedghost=✦死亡宣告✦
|
||||||
items.weapon.melee.endingblade.ac_healreset=_千里追魂_
|
items.weapon.melee.endingblade.ac_healreset=_千里追魂_
|
||||||
|
|
||||||
items.weapon.melee.washcrime.name=涤罪
|
items.weapon.melee.washcrime.name=涤罪
|
||||||
items.weapon.melee.washcrime.desc=铁链的末端绑了一把巨镰,上面的Γ血迹Γ已然生锈。\n命中有几率释放✦未安息的亡魂✦助战,并给敌人施加✦虚弱✦效果,武器伤害随杀敌数增加,但在一定阈值后停止增加。\n\n_这把武器拥有额外的攻击距离但攻速极慢_
|
items.weapon.melee.washcrime.desc=铁链的末端绑了一把巨镰,上面的Γ血迹Γ已然生锈。\n命中有几率释放✦未安息的亡魂✦助战,并给敌人施加✦餐费✦效果,武器伤害随杀敌数增加,但在一定阈值后停止增加。\n\n_这把武器拥有额外的攻击距离但攻速极慢_
|
||||||
|
|
||||||
items.weapon.melee.washcrime$diedghost.name=未安息的亡魂
|
items.weapon.melee.washcrime$diedghost.name=未安息的亡魂
|
||||||
items.weapon.melee.washcrime$diedghost.desc=肉身已然逝去,灵魂尚未得到安息,脑海遵照主人的意愿,直到真正的死亡降临。
|
items.weapon.melee.washcrime$diedghost.desc=肉身已然逝去,灵魂尚未得到安息,脑海遵照主人的意愿,直到真正的死亡降临。
|
||||||
|
@ -985,8 +985,6 @@ items.food.smallration.descx=它看起来和普通口粮不一样,就是大了
|
||||||
items.food.stewedmeat.name=炖肉
|
items.food.stewedmeat.name=炖肉
|
||||||
items.food.stewedmeat.eat_msg=吃起来还行。
|
items.food.stewedmeat.eat_msg=吃起来还行。
|
||||||
items.food.stewedmeat.desc=烹煮的过程中杀死了肉上面可能携带的任何病菌或是寄生虫。现在应该可以安全的食用它了。
|
items.food.stewedmeat.desc=烹煮的过程中杀死了肉上面可能携带的任何病菌或是寄生虫。现在应该可以安全的食用它了。
|
||||||
items.food.stewedmeat.descx=烹煮的过程中杀死了肉上面可能携带的任何病菌或是寄生虫,营养丰富,使你信心倍增。现在应该可以安全的食用它了。
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
##journal items
|
##journal items
|
||||||
|
|
|
@ -1,106 +1,267 @@
|
||||||
badges.endorsed=取得徽章:%s
|
badges.endorsed=取得徽章:%s
|
||||||
badges.new_super=新的超级徽章:%s
|
badges.new_super=新的超级徽章:%s
|
||||||
badges.new=新的徽章:%s
|
badges.new=新的徽章:%s
|
||||||
badges$badge.monsters_slain_1=击杀10名敌人
|
badges$badge.monsters_slain_1.title=新晋怪物猎人
|
||||||
badges$badge.monsters_slain_2=击杀50名敌人
|
badges$badge.monsters_slain_1.desc=在一场游戏中击败 10 个敌人
|
||||||
badges$badge.monsters_slain_3=击杀150名敌人
|
badges$badge.monsters_slain_2.title=进阶怪物猎人
|
||||||
badges$badge.monsters_slain_4=击杀250名敌人
|
badges$badge.monsters_slain_2.desc=在一局游戏中击败 50 个敌人
|
||||||
badges$badge.gold_collected_1=收集100金币
|
badges$badge.monsters_slain_3.title=专业怪物猎人
|
||||||
badges$badge.gold_collected_2=收集500金币
|
badges$badge.monsters_slain_3.desc=在一局游戏中击败 100 个敌人
|
||||||
badges$badge.gold_collected_3=收集2500金币
|
badges$badge.monsters_slain_4.title=大师怪物猎人
|
||||||
badges$badge.gold_collected_4=收集7500金币
|
badges$badge.monsters_slain_4.desc=在一局游戏中击败 250 个敌人
|
||||||
badges$badge.level_reached_1=达到6级
|
badges$badge.monsters_slain_5.title=宗师怪物猎人
|
||||||
badges$badge.level_reached_2=达到12级
|
badges$badge.monsters_slain_5.desc=在一局游戏中击败 500 个敌人
|
||||||
badges$badge.level_reached_3=达到18级
|
badges$badge.gold_collected_1.title=新晋财宝猎人
|
||||||
badges$badge.level_reached_4=达到24级
|
badges$badge.gold_collected_1.desc=在一场游戏中收集 250 金币
|
||||||
badges$badge.all_weapons_identified=全武器鉴定
|
badges$badge.gold_collected_2.title=进阶财宝猎人
|
||||||
badges$badge.all_armor_identified=全护甲鉴定
|
badges$badge.gold_collected_2.desc=在一局游戏中收集 1000 金币
|
||||||
badges$badge.all_wands_identified=全部法杖鉴定
|
badges$badge.gold_collected_3.title=专业财宝猎人
|
||||||
badges$badge.all_rings_identified=全部戒指鉴定
|
badges$badge.gold_collected_3.desc=在一局游戏中收集 2500 金币
|
||||||
badges$badge.all_artifacts_identified=全神器鉴定
|
badges$badge.gold_collected_4.title=大师财宝猎人
|
||||||
badges$badge.all_potions_identified=全部药水鉴定
|
badges$badge.gold_collected_4.desc=在一局游戏中收集 7500 金币
|
||||||
badges$badge.all_scrolls_identified=全部卷轴鉴定
|
badges$badge.gold_collected_5.title=宗师财宝猎人
|
||||||
badges$badge.all_items_identified=全道具鉴定
|
badges$badge.gold_collected_5.desc=在一局游戏中收集 15000 金币
|
||||||
badges$badge.all_bags_bought=买下所有包裹
|
badges$badge.level_reached_1.title=新晋冒险者
|
||||||
badges$badge.death_from_fire=死于火焰
|
badges$badge.level_reached_1.desc=升到6级
|
||||||
badges$badge.death_from_poison=死于剧毒
|
badges$badge.level_reached_2.title=进阶冒险者
|
||||||
badges$badge.death_from_gas=死于毒气
|
badges$badge.level_reached_2.desc=升到12级
|
||||||
badges$badge.death_from_hunger=死于饥饿
|
badges$badge.level_reached_3.title=专业冒险者
|
||||||
badges$badge.death_from_glyph=死于延缓伤害
|
badges$badge.level_reached_3.desc=升到18级
|
||||||
badges$badge.death_from_falling=死于坠落楼层
|
badges$badge.level_reached_4.title=大师冒险者
|
||||||
badges$badge.kill_red=击败死灵领主
|
badges$badge.level_reached_4.desc=升到24级
|
||||||
badges$badge.kill_rotheart=根除腐莓之心
|
badges$badge.level_reached_5.title=宗师冒险者
|
||||||
badges$badge.kill_coldele=新生火元素之殇
|
badges$badge.level_reached_5.desc=升到30级
|
||||||
badges$badge.yasd=死于火焰,毒,毒气,饥饿,护甲刻印和坠落
|
badges$badge.all_weapons_identified.title=武器研究员
|
||||||
badges$badge.boss_slain_1=斩杀第1个Boss
|
badges$badge.all_weapons_identified.desc=鉴定手册中所有类型的武器
|
||||||
badges$badge.boss_slain_2=斩杀第2个Boss
|
badges$badge.all_armor_identified.title=护甲研究员
|
||||||
badges$badge.boss_slain_3=斩杀第3个Boss
|
badges$badge.all_armor_identified.desc=鉴定手册中所有类型的护甲
|
||||||
badges$badge.boss_slain_4=斩杀第4个Boss
|
badges$badge.all_wands_identified.title=法杖研究员
|
||||||
badges$badge.boss_slain_1_all_classes=分别使用战士、法师、盗贼和女猎手斩杀第1个Boss
|
badges$badge.all_wands_identified.desc=鉴定手册中所有类型的法杖
|
||||||
badges$badge.boss_slain_3_all_subclasses=分别使用角斗士、狂战士、术士、战斗法师、疾行者、刺客、狙击手和守望者斩杀第3个Boss
|
badges$badge.all_rings_identified.title=戒指研究员
|
||||||
|
badges$badge.all_rings_identified.desc=鉴定手册中所有类型的戒指
|
||||||
|
badges$badge.all_artifacts_identified.title=神器研究员
|
||||||
|
badges$badge.all_artifacts_identified.desc=鉴定手册中所有类型的神器
|
||||||
|
badges$badge.all_potions_identified.title=药剂研究员
|
||||||
|
badges$badge.all_potions_identified.desc=鉴定手册中所有类型的药剂
|
||||||
|
badges$badge.all_scrolls_identified.title=卷轴研究员
|
||||||
|
badges$badge.all_scrolls_identified.desc=鉴定手册中所有类型的卷轴
|
||||||
|
badges$badge.all_items_identified.title=道具专家
|
||||||
|
badges$badge.all_items_identified.desc=鉴定手册中所有的物品
|
||||||
|
badges$badge.all_bags_bought.title=背包客
|
||||||
|
badges$badge.all_bags_bought.desc=完全扩充你的背包
|
||||||
|
badges$badge.death_from_fire.title=燃尽
|
||||||
|
badges$badge.death_from_fire.desc=死于火焰
|
||||||
|
badges$badge.death_from_poison.title=中毒
|
||||||
|
badges$badge.death_from_poison.desc=死于中毒
|
||||||
|
badges$badge.death_from_gas.title=窒息
|
||||||
|
badges$badge.death_from_gas.desc=死于毒气
|
||||||
|
badges$badge.death_from_hunger.title=饿毙
|
||||||
|
badges$badge.death_from_hunger.desc=死于饥饿
|
||||||
|
badges$badge.death_from_falling.title=变成薄饼
|
||||||
|
badges$badge.death_from_falling.desc=死于坠落
|
||||||
|
|
||||||
|
badges$badge.kill_rotheart.title=铲除腐莓之心
|
||||||
|
badges$badge.kill_rotheart.desc=完成老杖匠的腐莓之心任务,使冰雪监狱得到暂时的安定。
|
||||||
|
|
||||||
|
badges$badge.kill_coldele.title=新生火元素之殇
|
||||||
|
badges$badge.kill_coldele.desc=完成老杖匠的献祭任务,使冰雪监狱得到暂时的安定。
|
||||||
|
|
||||||
|
badges$badge.yasd.title=另类死亡爱好者
|
||||||
|
badges$badge.yasd.desc=解锁所有关于死因的徽章
|
||||||
|
|
||||||
|
badges$badge.boss_slain_1.title=丛林之熵
|
||||||
|
badges$badge.boss_slain_1.desc=击败丛尽头的任意Boss
|
||||||
|
badges$badge.boss_slain_2.title=冰狱噩梦
|
||||||
|
badges$badge.boss_slain_2.desc=击败监狱尽头的任意Boss
|
||||||
|
badges$badge.boss_slain_3.title=冰雪诅咒
|
||||||
|
badges$badge.boss_slain_3.desc=击败冰雪矿洞尽头的任意Boss
|
||||||
|
badges$badge.boss_slain_4.title=矮人都市大惊变
|
||||||
|
badges$badge.boss_slain_4.desc=击败矮人王国尽头的任意Boss
|
||||||
|
|
||||||
|
badges$badge.boss_slain_1_all_classes.title=千面手
|
||||||
|
badges$badge.boss_slain_1_all_classes.desc=以所有职业击败第一个Boss
|
||||||
|
|
||||||
|
badges$badge.boss_slain_3_all_subclasses.title=万事通
|
||||||
|
badges$badge.boss_slain_3_all_subclasses.desc=以所有专精后的职业击败第三个Boss
|
||||||
|
|
||||||
badges$badge.strength_attained_1=达到13点力量
|
badges$badge.strength_attained_1=达到13点力量
|
||||||
badges$badge.strength_attained_2=达到15点力量
|
badges$badge.strength_attained_2=达到15点力量
|
||||||
badges$badge.strength_attained_3=达到17点力量
|
badges$badge.strength_attained_3=达到17点力量
|
||||||
badges$badge.strength_attained_4=达到19点力量
|
badges$badge.strength_attained_4=达到19点力量
|
||||||
badges$badge.food_eaten_1=吃掉10个食物
|
|
||||||
badges$badge.food_eaten_2=吃掉20个食物
|
|
||||||
badges$badge.food_eaten_3=吃掉30个食物
|
|
||||||
badges$badge.food_eaten_4=吃掉40个食物
|
|
||||||
badges$badge.item_level_1=获得3级物品
|
|
||||||
badges$badge.item_level_2=获得6级物品
|
|
||||||
badges$badge.item_level_3=获得9级物品
|
|
||||||
badges$badge.item_level_4=获得12级物品
|
|
||||||
badges$badge.victory=取得Yendor护符
|
|
||||||
badges$badge.get_sc=净化怨灵根源\n将尸尘交给老杖匠
|
|
||||||
badges$badge.victory_all_classes=分别使用战士,法师,盗贼和女猎手取得Yendor护符
|
|
||||||
badges$badge.mastery_combo=达成10连击
|
|
||||||
badges$badge.items_crafted_1=一场游戏中酿造3瓶药水
|
|
||||||
badges$badge.items_crafted_2=一场游戏中酿造6瓶药水
|
|
||||||
badges$badge.items_crafted_3=一场游戏中酿造9瓶药水
|
|
||||||
badges$badge.items_crafted_4=一场游戏中酿造12瓶药水
|
|
||||||
badges$badge.no_monsters_slain=在不击杀怪物的情况下通过楼层
|
|
||||||
badges$badge.grim_weapon=通过"残酷"武器附魔秒杀一个怪物
|
|
||||||
badges$badge.piranhas=消灭6只食人鱼
|
|
||||||
badges$badge.games_played_1=进行10场游戏
|
|
||||||
badges$badge.games_played_2=进行50场游戏
|
|
||||||
badges$badge.games_played_3=进行250场游戏
|
|
||||||
badges$badge.games_played_4=进行1000场游戏
|
|
||||||
badges$badge.godd_make=老人与海\n累计完成老杖匠的全部任务\n\n_奖励:0层随机戒指(四大基座上)_
|
|
||||||
badges$badge.clear_water=净化大师\n完成挑战:污泥浊水\n\n_奖励:敬请期待_
|
|
||||||
|
|
||||||
badges$badge.ghostdage=幽灵大哥\n_在幽灵处获得一次+4品质武器或护甲\n\n_(镀层需求:+5品质武器)
|
badges$badge.strength_attained_1.title=健身菜鸟
|
||||||
badges$badge.dageto=幽灵大哥\n在幽灵处获得一次_+5_品质武器或护甲\n\nΞ你已成功镀层Ξ
|
badges$badge.strength_attained_1.desc=基础力量达到 12 点
|
||||||
|
badges$badge.strength_attained_2.title=健身学徒
|
||||||
|
badges$badge.strength_attained_2.desc=基础力量达到 14 点
|
||||||
|
badges$badge.strength_attained_3.title=健身专家
|
||||||
|
badges$badge.strength_attained_3.desc=基础力量达到 16 点
|
||||||
|
badges$badge.strength_attained_4.title=健身大佬
|
||||||
|
badges$badge.strength_attained_4.desc=基础力量达到 18 点
|
||||||
|
badges$badge.strength_attained_5.title=健身大只佬
|
||||||
|
badges$badge.strength_attained_5.desc=基础力量达到 20 点
|
||||||
|
badges$badge.food_eaten_1.title=新晋美食家
|
||||||
|
badges$badge.food_eaten_1.desc=在一场游戏中进食 10 次
|
||||||
|
badges$badge.food_eaten_2.title=进阶美食家
|
||||||
|
badges$badge.food_eaten_2.desc=在一场游戏中进食 20 次
|
||||||
|
badges$badge.food_eaten_3.title=专业美食家
|
||||||
|
badges$badge.food_eaten_3.desc=在一场游戏中进食 30 次
|
||||||
|
badges$badge.food_eaten_4.title=大师美食家
|
||||||
|
badges$badge.food_eaten_4.desc=在一场游戏中进食 40 次
|
||||||
|
badges$badge.food_eaten_5.title=宗师美食家
|
||||||
|
badges$badge.food_eaten_5.desc=在一场游戏中进食 50 次
|
||||||
|
badges$badge.item_level_1.title=新晋附魔师
|
||||||
|
badges$badge.item_level_1.desc=获得一件等级大于等于 3 的物品
|
||||||
|
badges$badge.item_level_2.title=进阶附魔师
|
||||||
|
badges$badge.item_level_2.desc=获得一件等级大于等于 6 的物品
|
||||||
|
badges$badge.item_level_3.title=专业附魔师
|
||||||
|
badges$badge.item_level_3.desc=获得一件等级大于等于 9 的物品
|
||||||
|
badges$badge.item_level_4.title=大师附魔师
|
||||||
|
badges$badge.item_level_4.desc=获得一件等级大于等于 12 的物品
|
||||||
|
badges$badge.item_level_5.title=宗师附魔师
|
||||||
|
badges$badge.item_level_5.desc=获得一件等级大于等于 15 的物品
|
||||||
|
badges$badge.victory.title=水晶篇章通关!
|
||||||
|
badges$badge.victory.desc=获得水晶之心。
|
||||||
|
|
||||||
badges$badge.endied=终焉之旅\n\n_(获得终焉)_
|
badges$badge.get_sc.title=净化怨灵根源
|
||||||
|
badges$badge.get_sc.desc=完成老杖匠的尸尘净化任务,使冰雪监狱得到暂时的安定。
|
||||||
|
|
||||||
badges$badge.halofire_died=死于磷火烈焰
|
badges$badge.victory_all_classes.title=全能宗师
|
||||||
badges$badge.happy_end=幸福结局
|
badges$badge.victory_all_classes.desc=以所有职业取得水晶之心。
|
||||||
badges$badge.champion_1x=开启1项挑战通关
|
|
||||||
badges$badge.kill_slmking=击杀史莱姆王子
|
|
||||||
badges$badge.big_x=突变风波\n\n基因突变开启通关!你见证了地牢的突变体,同时也看见了玩火必自焚的道理……\n\n_奖励:0层随机护甲(四大基座上)_
|
|
||||||
badges$badge.exsg=大症若愚\n\n癔症只是一个假象,你仍然坚持过来了!\n\n_奖励:1500初始金币,两个经验药水_
|
|
||||||
badges$badge.kill_dm720=击杀DM720\n\n矿洞的终极兵器\n\n_奖励:0层额外十字架(四大基座上,与冰雪魔女不叠加)_
|
|
||||||
badges$badge.champion_2x=地牢勇者\n\n_开启3项以上挑战通关\n\n[不包含BR模式和开发者模式]_
|
|
||||||
badges$badge.champion_3x=不屈斗士\n\n_开启6项以上挑战通关\n\n[不包含BR模式和开发者模式]_
|
|
||||||
badges$badge.champion_4x=超凡脱俗\n\n_开启8项以上挑战通关\n\n[不包含BR模式和开发者模式]_
|
|
||||||
badges$badge.champion_5x=救世之主\n\n_开启10项以上挑战通关\n\n[不包含BR模式和开发者模式]_
|
|
||||||
badges$badge.unlock_mage=解锁法师
|
|
||||||
badges$badge.unlock_rogue=解锁盗贼
|
|
||||||
badges$badge.unlock_huntress=解锁女猎手
|
|
||||||
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不叠加)_
|
|
||||||
badges$badge.firegirl=击败圣火魔女-莲娜\n\n雪凛峡谷的守护者
|
|
||||||
badges$badge.slimepr=击败史莱姆公主\n\n妥协的结果
|
|
||||||
badges$badge.drawf_head=击败矮人将军\n\n矮人王国的正规军残党
|
|
||||||
|
|
||||||
badges$badge.brcler=起始归一\n\n你已经粉碎了DM-ZERO的阴谋,现在是时候回归正常生活了。\n[完成首领对决]
|
badges$badge.mastery_combo.title=角斗士之怒
|
||||||
badges$badge.take_item=宝藏探索者\n\n获得宝藏迷宫的全部宝藏
|
badges$badge.mastery_combo.desc=达成十连击
|
||||||
badges$badge.kill_apple=击败克里弗斯之果\n\n盘踞在森林底部的幕后“主谋"
|
badges$badge.items_crafted_1.title=炼金学徒
|
||||||
|
badges$badge.items_crafted_1.desc=在一局游戏中通过炼金术合成3个物品
|
||||||
|
badges$badge.items_crafted_2.title=炼金熟手
|
||||||
|
badges$badge.items_crafted_2.desc=在一局游戏中通过炼金术合成8个物品
|
||||||
|
badges$badge.items_crafted_3.title=炼金专家
|
||||||
|
badges$badge.items_crafted_3.desc=在一局游戏中通过炼金术合成15个物品
|
||||||
|
badges$badge.items_crafted_4.title=炼金大师
|
||||||
|
badges$badge.items_crafted_4.desc=在一局游戏中通过炼金术合成24个物品
|
||||||
|
badges$badge.items_crafted_5.title=炼金宗师
|
||||||
|
badges$badge.items_crafted_5.desc=在一局游戏中通过炼金术合成35个物品
|
||||||
|
badges$badge.no_monsters_slain.title=和平主义者
|
||||||
|
badges$badge.no_monsters_slain.desc=在不击败任何敌人的情况下通过一个楼层
|
||||||
|
badges$badge.grim_weapon.title=死神来了
|
||||||
|
badges$badge.grim_weapon.desc=使用死神附魔击败一个敌人
|
||||||
|
badges$badge.piranhas.title=非主流垂钓
|
||||||
|
badges$badge.piranhas.desc=在一场游戏中杀死 6 只食人鱼
|
||||||
|
|
||||||
|
badges$badge.games_played_1.title=新晋调查者
|
||||||
|
badges$badge.games_played_1.desc=进行 10 场游戏,你已经知悉了地牢的轮回诅咒。
|
||||||
|
badges$badge.games_played_2.title=进阶调查者
|
||||||
|
badges$badge.games_played_2.desc=进行 50 场游戏,你已经熟悉了地牢的潜规则。
|
||||||
|
badges$badge.games_played_3.title=资深调查家
|
||||||
|
badges$badge.games_played_3.desc=进行 250 场游戏,你的威望已经在地牢中传颂。
|
||||||
|
badges$badge.games_played_4.title=大师调查员
|
||||||
|
badges$badge.games_played_4.desc=进行 100 场游戏,你的名声已经传到地表三巨头的耳里。小心夜路遇到他们哦。
|
||||||
|
|
||||||
|
badges$badge.godd_make.title=暗室逢灯
|
||||||
|
badges$badge.godd_make.desc=累计完成老杖匠的全部委托任务,现在,是他回报恩人的时候了。\n\n_奖励:0层随机戒指(四大基座上)_
|
||||||
|
|
||||||
|
badges$badge.clear_water.title=净化大师
|
||||||
|
badges$badge.clear_water.desc=完成挑战:污泥浊水
|
||||||
|
|
||||||
|
badges$badge.ghostdage.title=白幽祝福
|
||||||
|
badges$badge.ghostdage.desc=_在幽妹处获得一次+4品质武器或护甲\n\n_(镀层需求:+5品质武器)
|
||||||
|
|
||||||
|
badges$badge.dageto.title=白幽神谕
|
||||||
|
badges$badge.dageto.desc=在幽妹处获得一次_+5_品质武器或护甲\n\nΞ你已成功镀层Ξ
|
||||||
|
|
||||||
|
badges$badge.endied.title=终焉之旅
|
||||||
|
badges$badge.endied.desc=_(获得彩蛋武器终焉)_,目前版本暂时无法获得
|
||||||
|
|
||||||
|
badges$badge.halofire_died.title=磷尽胆绝
|
||||||
|
badges$badge.halofire_died.desc=在磷火的折磨中死去
|
||||||
|
|
||||||
|
badges$badge.happy_end.title=风暴结局
|
||||||
|
badges$badge.happy_end.desc=携带水晶之心离开地牢
|
||||||
|
|
||||||
|
badges$badge.champion_1x.title=地牢探索员
|
||||||
|
badges$badge.champion_1x.desc=开启1项挑战通关,地牢的轮回诅咒也不能阻止你探索的脚步。
|
||||||
|
|
||||||
|
badges$badge.champion_2x.title=地牢勇者
|
||||||
|
badges$badge.champion_2x.desc=开启3项以上挑战通关,在地牢的轮回中不断的探索极限便是勇者的象征。
|
||||||
|
|
||||||
|
badges$badge.champion_3x.title=不屈斗士
|
||||||
|
badges$badge.champion_3x.desc=开启6项以上挑战通关,在地牢的重重考验下你活了下来,你的惊人测试成绩已经为世人歌颂。
|
||||||
|
|
||||||
|
badges$badge.champion_4x.title=超凡脱俗
|
||||||
|
badges$badge.champion_4x.desc=开启8项以上挑战通关,无论结局怎样,你的尝试已经让衪们知晓你的能力。或许在未来,你会直面衪们。
|
||||||
|
|
||||||
|
badges$badge.champion_5x.title=登神之路
|
||||||
|
badges$badge.champion_5x.desc=开启10项以上挑战通关,你的信念与威望已经人人知晓,你已经引起世界各个势力的注意。今后你将踏上新的征程。
|
||||||
|
|
||||||
|
badges$badge.kill_slmking.title=粘体终结者
|
||||||
|
badges$badge.kill_slmking.desc=击杀栖息在水晶异变的史莱姆王子
|
||||||
|
|
||||||
|
badges$badge.big_x.title=突变风波
|
||||||
|
badges$badge.big_x.desc=基因突变开启通关!你见证了地牢的突变体,同时也看见了玩火必自焚的道理……\n\n_奖励:0层随机护甲(四大基座上)_
|
||||||
|
|
||||||
|
badges$badge.exsg.title=大症若愚
|
||||||
|
badges$badge.exsg.desc=药水癔症只是一个假象,你仍然坚持过来了!\n\n_奖励:1500初始金币,两个经验药水_
|
||||||
|
|
||||||
|
badges$badge.kill_dm720.title=兵不厌“炸”
|
||||||
|
badges$badge.kill_dm720.desc=击杀冰雪矿洞中的DM-720和它的驾驶员。\n\n_奖励:0层额外2阶武器(四大基座上,与冰雪魔女不叠加)_
|
||||||
|
|
||||||
|
badges$badge.death_from_glyph.title=慢性死亡
|
||||||
|
badges$badge.death_from_glyph.desc=死于延缓伤害。
|
||||||
|
|
||||||
|
badges$badge.unlock_mage.title=解锁法师!
|
||||||
|
badges$badge.unlock_mage.desc=使用一个升级卷轴以解锁法师
|
||||||
|
badges$badge.unlock_rogue.title=解锁盗贼!
|
||||||
|
badges$badge.unlock_rogue.desc=在一场游戏中进行十次伏击以解锁盗贼
|
||||||
|
badges$badge.unlock_huntress.title=解锁女猎手!
|
||||||
|
badges$badge.unlock_huntress.desc=在一场游戏中使用投掷武器命中十次敌人以解锁女猎手
|
||||||
|
|
||||||
|
badges$badge.kill_sm.title=拟态对决
|
||||||
|
badges$badge.kill_sm.desc=接受拟态王的战书并击败它获得它的认可。这是一场公平的对决!
|
||||||
|
|
||||||
|
badges$badge.rlpt.title=分崩离析
|
||||||
|
badges$badge.rlpt.desc=开启支离破碎挑战并在主线关卡完成游戏\n\n_奖励:0层随机神器(四大基座上)_
|
||||||
|
|
||||||
|
badges$badge.storm.title=风暴袭来
|
||||||
|
badges$badge.storm.desc=在拿到了水晶之心离开地牢后,天突然黑了下来,并且电闪雷鸣。\n\n地牢入口的守卫让你前往霜落帝国觐见她。看来,这一切尚未结束。
|
||||||
|
|
||||||
|
badges$badge.kill_mg.title=冰雪挽歌
|
||||||
|
badges$badge.kill_mg.desc=请尝试重创冰雪之地的她,让她能够清醒过来\n\n_奖励:0层额外2阶武器(四大基座上,与DM720不叠加)_
|
||||||
|
|
||||||
|
badges$badge.firegirl.title=圣火赞歌
|
||||||
|
badges$badge.firegirl.desc=重创雪凛峡谷的圣火魔女,让她接纳你。
|
||||||
|
|
||||||
|
badges$badge.drawf_head.title=“旧时代”的终结
|
||||||
|
badges$badge.drawf_head.desc=击败矮人将军,让他从诅咒中解脱。
|
||||||
|
|
||||||
|
badges$badge.brcler.title=起始归一
|
||||||
|
badges$badge.brcler.desc=尽管死灵法师创造了这个恐怖的机器,但你已经粉碎了DM-ZERO的阴谋,现在是时候回归正常生活了。\n[完成首领对决]
|
||||||
|
|
||||||
|
badges$badge.take_item.title=宝藏探索者
|
||||||
|
badges$badge.take_item.desc=获得宝藏迷宫的三个隐藏宝藏,切记,对决不是拟态王的本意。
|
||||||
|
|
||||||
|
badges$badge.kill_apple.title=毒果铲除计划
|
||||||
|
badges$badge.kill_apple.desc=击杀盘踞在森林底部的幕后“主谋"。
|
||||||
|
|
||||||
|
badges$badge.spicealboss.title=弱肉强食
|
||||||
|
badges$badge.spicealboss.desc=累计击败全部特殊BOSS,你的威望已经让每个首领对你望而生畏和敬佩不已。
|
||||||
|
|
||||||
|
badges$badge.nyz_shop.title=奈亚大亨
|
||||||
|
badges$badge.nyz_shop.desc=购买终端的物品,让奈亚子自愿入驻0层!\n\n_奖励:0层奈亚子常驻,1200初始金币,5次奈亚子终端商店购买权限_
|
||||||
|
|
||||||
|
badges$badge.high_score_1.title=菜鸟上路
|
||||||
|
badges$badge.high_score_1.desc=在结束游戏时达到 _B级_ 评价。
|
||||||
|
|
||||||
|
badges$badge.high_score_2.title=熟能生巧
|
||||||
|
badges$badge.high_score_2.desc=在结束游戏时达到 _A级_ 评价。
|
||||||
|
|
||||||
|
badges$badge.high_score_3.title=烂若披掌
|
||||||
|
badges$badge.high_score_3.desc=在结束游戏时达到 _SS级_ 评价。
|
||||||
|
|
||||||
|
badges$badge.high_score_4.title=胸有成竹
|
||||||
|
badges$badge.high_score_4.desc=在结束游戏时达到 _SSS级_ 评价。
|
||||||
|
|
||||||
|
badges$badge.high_score_5.title=炉火纯青
|
||||||
|
badges$badge.high_score_5.desc=在结束游戏时达到 _SSS+级_ 评价。
|
||||||
|
|
||||||
badges$badge.spicealboss=累计击败全部特殊BOSS\n\n风暴正在降临
|
|
||||||
badges$badge.nyz_shop=奈亚大亨\n\n让奈亚子自愿入驻0层!\n\n_奖励:0层奈亚子常驻,1200初始金币,5次奈亚子终端商店购买权限_
|
|
||||||
challenges.no_food=缩餐节食
|
challenges.no_food=缩餐节食
|
||||||
challenges.no_food_desc=食物本就稀缺,但你还需要注意节食!\n\n・使用各类食物与丰饶之角的饱腹效果为原本的三分之一。\n・其他恢复饥饿的机制不受影响。
|
challenges.no_food_desc=食物本就稀缺,但你还需要注意节食!\n\n・使用各类食物与丰饶之角的饱腹效果为原本的三分之一。\n・其他恢复饥饿的机制不受影响。
|
||||||
challenges.no_armor=独挡一面
|
challenges.no_armor=独挡一面
|
||||||
|
@ -140,7 +301,7 @@ challenges.sbsg = Π基因突变Π
|
||||||
challenges.sbsg_desc=地牢中的神秘魔力让一些生物发生了重大的变化\n-所有生物都会因为突变激素变得各不相同,给探索地牢的脚步带来更大的困难。\n-敌人有5种突变类型:\n突变失败体_(30%概率)_:近战伤害减少35%,移速提高到1.3。\n突变爆炸体_(25%概率)_:移速减少50%,攻击力降低30%,但死亡时拥有爆炸伤害。\n突变完全体_(20%概率)_:移速和攻击力各提高25%,且拥有30%伤害减免。\n突变危险体_(15%概率)_:攻击力提升20%,攻击有10%概率造成流血。死亡时有5%概率立刻向本层发出警报。\n突变烟雾体_(10%概率)_:攻击力减少10%,攻击范围+2,攻击敌人10%概率造成眩晕……\n\n_特别说明:如果开启精英强敌,词条会和精英词条共存_
|
challenges.sbsg_desc=地牢中的神秘魔力让一些生物发生了重大的变化\n-所有生物都会因为突变激素变得各不相同,给探索地牢的脚步带来更大的困难。\n-敌人有5种突变类型:\n突变失败体_(30%概率)_:近战伤害减少35%,移速提高到1.3。\n突变爆炸体_(25%概率)_:移速减少50%,攻击力降低30%,但死亡时拥有爆炸伤害。\n突变完全体_(20%概率)_:移速和攻击力各提高25%,且拥有30%伤害减免。\n突变危险体_(15%概率)_:攻击力提升20%,攻击有10%概率造成流血。死亡时有5%概率立刻向本层发出警报。\n突变烟雾体_(10%概率)_:攻击力减少10%,攻击范围+2,攻击敌人10%概率造成眩晕……\n\n_特别说明:如果开启精英强敌,词条会和精英词条共存_
|
||||||
|
|
||||||
challenges.exsg = Π药水癔症Π
|
challenges.exsg = Π药水癔症Π
|
||||||
challenges.exsg_desc=药水癔症详细规则:\n力量药水--20%概率力量-1\n灵视药剂--50%概率喝后失明5回合\n隐形药剂--30%概率喝后立刻怒吼\n经验药剂--40%概率喝后立刻流血6回合\n极速药剂--50%概率喝后立刻残废8回合\n==========================\n小型口粮 吃后立刻获得极速8回合\n炖肉 吃后立刻升级\n冷冻生肉片 吃后获得奥术护盾\n全肉大饼 吃后立刻获得8回合极速 且+1力量\n不知道何种原因,大部分正面药水你都感觉有毒!\n部分药水完全处于DeBuff,但食物却会很有用!而且地牢里面还会追加自动售货机,会售卖一些更加高级的东西。
|
challenges.exsg_desc=药水癔症详细规则:\n力量药水--60%概率力量-1\n灵视药剂--60%概率喝后失明5回合\n隐形药剂--60%概率喝后立刻怒吼\n极速药剂--60%概率喝后立刻残废8回合\n==========================\n小型口粮-吃后立刻获得极速4回合\n冷冻生肉片-吃后获得奥术护盾\n全肉大饼-吃后立刻获得8回合极速,且有大概率+1力量(_随着力量的追加,获得力量的概率会渐渐变低_)\n\n高级药水_(合剂/魔药)_不受影响\n不知道何种原因,大部分正面药水你都感觉有毒!\n你的臆想会导致药水有毒,但食物却会很有用!而且地牢里面还会追加自动售货机,会售卖一些更加高级的东西。
|
||||||
|
|
||||||
challenges.icedied = 雪虐风饕(未完成)
|
challenges.icedied = 雪虐风饕(未完成)
|
||||||
challenges.icedied_desc=很显然,地牢的雪越下越大了,在这严寒里面,生存的法则将进一步让我们活得更久。\n篝火房间一旦被激活不再无限,变成40回合的寒冷抑制,商人会贩卖更多特殊物品。
|
challenges.icedied_desc=很显然,地牢的雪越下越大了,在这严寒里面,生存的法则将进一步让我们活得更久。\n篝火房间一旦被激活不再无限,变成40回合的寒冷抑制,商人会贩卖更多特殊物品。
|
||||||
|
|
|
@ -517,4 +517,10 @@ ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x64=-V0.6.1-Beta7.2\n1.修复一些
|
||||||
|
|
||||||
ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x65=-V0.6.1-Beta7.3\n1.修复第三大层默认寒冰魔女的问题\n2.修复诅咒法杖在BossRush的少量错误\n3.修复闪电饭团一次性消耗两个的问题\n4.修复DM720战斗结束电击效果可能存在的问题\n5.修复恐药异症的各种问题
|
ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x65=-V0.6.1-Beta7.3\n1.修复第三大层默认寒冰魔女的问题\n2.修复诅咒法杖在BossRush的少量错误\n3.修复闪电饭团一次性消耗两个的问题\n4.修复DM720战斗结束电击效果可能存在的问题\n5.修复恐药异症的各种问题
|
||||||
|
|
||||||
|
ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x66=-V0.6.2-Beta1\n1.修复部分神器的快捷栏错误\n2.修复上个版本的少量Bug
|
||||||
|
|
||||||
|
ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x67=-V0.6.2-Beta2\n1.修复提灯,魔法火把,火把的灯源冲突问题\n2.修复拟态王中一个极端情况下出现的错误
|
||||||
|
|
||||||
|
ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x68=-V0.6.2-Beta3\n1.修复嗜血荆棘的一些错误\n2.修复快捷栏在遗物状态下仍然可以使用的Bug
|
||||||
|
|
||||||
//ui.changelist.mlpd.vm0_5_x_changes.xxx//
|
//ui.changelist.mlpd.vm0_5_x_changes.xxx//
|
Binary file not shown.
Before Width: | Height: | Size: 1.1 KiB |
BIN
core/src/main/assets/sprites/boss/SeaVastGirl.png
Normal file
BIN
core/src/main/assets/sprites/boss/SeaVastGirl.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.6 KiB |
|
@ -300,6 +300,8 @@ public class Assets {
|
||||||
|
|
||||||
//BOSS
|
//BOSS
|
||||||
|
|
||||||
|
public static final String VSGR = "sprites/boss/SeaVastGirl.png";
|
||||||
|
|
||||||
public static final String DIMK = "sprites/boss/DimandKing.png";
|
public static final String DIMK = "sprites/boss/DimandKing.png";
|
||||||
|
|
||||||
public static final String DIED = "sprites/items/died.png";
|
public static final String DIED = "sprites/items/died.png";
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
package com.shatteredpixel.shatteredpixeldungeon;
|
package com.shatteredpixel.shatteredpixeldungeon;
|
||||||
|
|
||||||
import static com.shatteredpixel.shatteredpixeldungeon.Challenges.PRO;
|
import static com.shatteredpixel.shatteredpixeldungeon.Challenges.PRO;
|
||||||
|
import static com.shatteredpixel.shatteredpixeldungeon.Statistics.amuletObtained;
|
||||||
|
import static com.shatteredpixel.shatteredpixeldungeon.Statistics.chalMultiplier;
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.Artifact;
|
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.Artifact;
|
||||||
|
@ -33,6 +35,7 @@ import com.shatteredpixel.shatteredpixeldungeon.journal.Catalog;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.windows.LevelChecker;
|
||||||
import com.watabou.utils.Bundle;
|
import com.watabou.utils.Bundle;
|
||||||
import com.watabou.utils.FileUtils;
|
import com.watabou.utils.FileUtils;
|
||||||
|
|
||||||
|
@ -73,11 +76,12 @@ public class Badges {
|
||||||
DEATH_FROM_GAS ( 16 ),
|
DEATH_FROM_GAS ( 16 ),
|
||||||
DEATH_FROM_HUNGER ( 17 ),
|
DEATH_FROM_HUNGER ( 17 ),
|
||||||
DEATH_FROM_FALLING ( 18 ),
|
DEATH_FROM_FALLING ( 18 ),
|
||||||
|
HIGH_SCORE_1 ( 19 ),
|
||||||
KILL_ROTHEART ( 20 ),
|
KILL_ROTHEART ( 20 ),
|
||||||
GET_SC ( 21 ),
|
GET_SC ( 21 ),
|
||||||
KILL_COLDELE ( 22 ),
|
KILL_COLDELE ( 22 ),
|
||||||
|
|
||||||
HALOFIRE_DIED ( 24 ),
|
HALOFIRE_DIED ( 23 ),
|
||||||
|
|
||||||
//silver
|
//silver
|
||||||
NO_MONSTERS_SLAIN ( 32 ),
|
NO_MONSTERS_SLAIN ( 32 ),
|
||||||
|
@ -107,10 +111,9 @@ public class Badges {
|
||||||
BOSS_SLAIN_1_HUNTRESS,
|
BOSS_SLAIN_1_HUNTRESS,
|
||||||
BOSS_SLAIN_1_ALL_CLASSES ( 53, true ),
|
BOSS_SLAIN_1_ALL_CLASSES ( 53, true ),
|
||||||
GAMES_PLAYED_1 ( 54, true ),
|
GAMES_PLAYED_1 ( 54, true ),
|
||||||
GODD_MAKE ( 82 ),
|
|
||||||
CLEAR_WATER ( 83 ),
|
HIGH_SCORE_2 ( 55 ),
|
||||||
GHOSTDAGE ( 84 ),
|
|
||||||
ENDIED ( 85 ),
|
|
||||||
//gold
|
//gold
|
||||||
PIRANHAS ( 64 ),
|
PIRANHAS ( 64 ),
|
||||||
//these names are a bit outdated, but it doesn't really matter.
|
//these names are a bit outdated, but it doesn't really matter.
|
||||||
|
@ -133,6 +136,13 @@ public class Badges {
|
||||||
ALL_ARTIFACTS_IDENTIFIED ( 77 ),
|
ALL_ARTIFACTS_IDENTIFIED ( 77 ),
|
||||||
VICTORY ( 78 ),
|
VICTORY ( 78 ),
|
||||||
YASD ( 79, true ),
|
YASD ( 79, true ),
|
||||||
|
|
||||||
|
GODD_MAKE ( 82 ),
|
||||||
|
CLEAR_WATER ( 83 ),
|
||||||
|
GHOSTDAGE ( 84 ),
|
||||||
|
// ENDIED ( 85 ),
|
||||||
|
|
||||||
|
HIGH_SCORE_3 ( 86 ),
|
||||||
BOSS_SLAIN_3_GLADIATOR,
|
BOSS_SLAIN_3_GLADIATOR,
|
||||||
BOSS_SLAIN_3_BERSERKER,
|
BOSS_SLAIN_3_BERSERKER,
|
||||||
BOSS_SLAIN_3_WARLOCK,
|
BOSS_SLAIN_3_WARLOCK,
|
||||||
|
@ -158,6 +168,7 @@ public class Badges {
|
||||||
KILL_DM720 (102),
|
KILL_DM720 (102),
|
||||||
RLPT (103),
|
RLPT (103),
|
||||||
|
|
||||||
|
HIGH_SCORE_4 ( 104 ),
|
||||||
|
|
||||||
//diamond
|
//diamond
|
||||||
GAMES_PLAYED_4 ( 112, true ),
|
GAMES_PLAYED_4 ( 112, true ),
|
||||||
|
@ -177,15 +188,27 @@ public class Badges {
|
||||||
DRAWF_HEAD ( 130 ),
|
DRAWF_HEAD ( 130 ),
|
||||||
SPICEALBOSS ( 131),
|
SPICEALBOSS ( 131),
|
||||||
|
|
||||||
|
STORM ( 132),
|
||||||
|
|
||||||
KILL_MG (133),
|
KILL_MG (133),
|
||||||
BIG_X (134),
|
BIG_X (134),
|
||||||
EXSG (135),
|
EXSG (135),
|
||||||
BRCLER (136);
|
BRCLER (136),
|
||||||
|
|
||||||
|
HIGH_SCORE_5 ( 137 );
|
||||||
|
|
||||||
public boolean meta;
|
public boolean meta;
|
||||||
|
|
||||||
public int image;
|
public int image;
|
||||||
|
|
||||||
|
public String title(){
|
||||||
|
return Messages.get(this, name()+".title");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String desc(){
|
||||||
|
return Messages.get(this, name()+".desc");
|
||||||
|
}
|
||||||
|
|
||||||
Badge( int image ) {
|
Badge( int image ) {
|
||||||
this( image, false );
|
this( image, false );
|
||||||
}
|
}
|
||||||
|
@ -195,10 +218,6 @@ public class Badges {
|
||||||
this.meta = meta;
|
this.meta = meta;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String desc(){
|
|
||||||
return Messages.get(this, name());
|
|
||||||
}
|
|
||||||
|
|
||||||
Badge() {
|
Badge() {
|
||||||
this( -1 );
|
this( -1 );
|
||||||
}
|
}
|
||||||
|
@ -352,6 +371,32 @@ public class Badges {
|
||||||
displayBadge( badge );
|
displayBadge( badge );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void validateHighScore( int score ){
|
||||||
|
Badge badge = null;
|
||||||
|
if (score >= LevelChecker.B_SCORE * chalMultiplier * (amuletObtained ? 1 : 2)) {
|
||||||
|
badge = Badge.HIGH_SCORE_1;
|
||||||
|
local.add( badge );
|
||||||
|
}
|
||||||
|
if (score >= LevelChecker.A_SCORE * chalMultiplier * (amuletObtained ? 1 : 2)) {
|
||||||
|
badge = Badge.HIGH_SCORE_2;
|
||||||
|
local.add( badge );
|
||||||
|
}
|
||||||
|
if (score >= LevelChecker.SS_SCORE * chalMultiplier * (amuletObtained ? 1 : 3)) {
|
||||||
|
badge = Badge.HIGH_SCORE_3;
|
||||||
|
local.add( badge );
|
||||||
|
}
|
||||||
|
if (score >= LevelChecker.SSS_SCORE * chalMultiplier * (amuletObtained ? 1 : 4)) {
|
||||||
|
badge = Badge.HIGH_SCORE_4;
|
||||||
|
local.add( badge );
|
||||||
|
}
|
||||||
|
if (score >= LevelChecker.SSSP_SCORE * chalMultiplier * (amuletObtained ? 1 : 5)) {
|
||||||
|
badge = Badge.HIGH_SCORE_5;
|
||||||
|
local.add( badge );
|
||||||
|
}
|
||||||
|
|
||||||
|
displayBadge( badge );
|
||||||
|
}
|
||||||
|
|
||||||
public static void validateGoldCollected() {
|
public static void validateGoldCollected() {
|
||||||
Badge badge = null;
|
Badge badge = null;
|
||||||
|
|
||||||
|
@ -389,7 +434,6 @@ public class Badges {
|
||||||
public static void GhostDageCollected() {
|
public static void GhostDageCollected() {
|
||||||
Badge badge = null;
|
Badge badge = null;
|
||||||
|
|
||||||
|
|
||||||
if (!local.contains( Badge.GHOSTDAGE ) && Statistics.dageCollected == 1) {
|
if (!local.contains( Badge.GHOSTDAGE ) && Statistics.dageCollected == 1) {
|
||||||
badge = Badge.GHOSTDAGE;
|
badge = Badge.GHOSTDAGE;
|
||||||
local.add( badge );
|
local.add( badge );
|
||||||
|
@ -939,6 +983,10 @@ public class Badges {
|
||||||
validateAMZ();
|
validateAMZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void STORM() {
|
||||||
|
displayBadge( Badge.STORM);
|
||||||
|
}
|
||||||
|
|
||||||
public static void KILLSDM720() {
|
public static void KILLSDM720() {
|
||||||
displayBadge( Badge.KILL_DM720 );
|
displayBadge( Badge.KILL_DM720 );
|
||||||
validateAMZ();
|
validateAMZ();
|
||||||
|
@ -1091,7 +1139,9 @@ public class Badges {
|
||||||
{Badge.ITEMS_CRAFTED_1, Badge.ITEMS_CRAFTED_2, Badge.ITEMS_CRAFTED_3, Badge.ITEMS_CRAFTED_4},
|
{Badge.ITEMS_CRAFTED_1, Badge.ITEMS_CRAFTED_2, Badge.ITEMS_CRAFTED_3, Badge.ITEMS_CRAFTED_4},
|
||||||
{Badge.BOSS_SLAIN_1, Badge.BOSS_SLAIN_2, Badge.BOSS_SLAIN_3, Badge.BOSS_SLAIN_4},
|
{Badge.BOSS_SLAIN_1, Badge.BOSS_SLAIN_2, Badge.BOSS_SLAIN_3, Badge.BOSS_SLAIN_4},
|
||||||
{Badge.GAMES_PLAYED_1, Badge.GAMES_PLAYED_2, Badge.GAMES_PLAYED_3, Badge.GAMES_PLAYED_4},
|
{Badge.GAMES_PLAYED_1, Badge.GAMES_PLAYED_2, Badge.GAMES_PLAYED_3, Badge.GAMES_PLAYED_4},
|
||||||
{Badge.CHAMPION_1X, Badge.CHAMPION_2X, Badge.CHAMPION_3X,Badge.CHAMPION_4X,Badge.CHAMPION_5X}
|
{Badge.CHAMPION_1X, Badge.CHAMPION_2X, Badge.CHAMPION_3X,Badge.CHAMPION_4X,Badge.CHAMPION_5X},
|
||||||
|
{Badge.GHOSTDAGE,Badge.DAGETO},
|
||||||
|
{Badge.HIGH_SCORE_1, Badge.HIGH_SCORE_2, Badge.HIGH_SCORE_3, Badge.HIGH_SCORE_4, Badge.HIGH_SCORE_5},
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final Badge[][] metaBadgeReplacements = new Badge[][]{
|
private static final Badge[][] metaBadgeReplacements = new Badge[][]{
|
||||||
|
|
|
@ -29,6 +29,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Amok;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Awareness;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Awareness;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ClearBleesdGoodBuff.BlessAnmy;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ClearBleesdGoodBuff.BlessAnmy;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LighS;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Light;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Light;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicalSight;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicalSight;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MindVision;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MindVision;
|
||||||
|
@ -55,6 +56,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.rings.Ring;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.Scroll;
|
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.Scroll;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfRegrowth;
|
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfRegrowth;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfWarding;
|
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfWarding;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagicTorch;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.journal.Notes;
|
import com.shatteredpixel.shatteredpixeldungeon.journal.Notes;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.levels.AncityLevel;
|
import com.shatteredpixel.shatteredpixeldungeon.levels.AncityLevel;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.levels.CaveTwoBossLevel;
|
import com.shatteredpixel.shatteredpixeldungeon.levels.CaveTwoBossLevel;
|
||||||
|
@ -678,9 +680,18 @@ public class Dungeon {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
LighS lights = hero.buff( LighS.class );
|
||||||
Light light = hero.buff( Light.class );
|
Light light = hero.buff( Light.class );
|
||||||
hero.viewDistance = light == null ? level.viewDistance : Math.max( Light.DISTANCE, level.viewDistance );
|
MagicTorch.MagicLight magicLight = hero.buff( MagicTorch.MagicLight.class );
|
||||||
|
|
||||||
|
if(light != null || lights != null || magicLight != null){
|
||||||
|
hero.viewDistance = Math.max( Light.DISTANCE, level.viewDistance );
|
||||||
|
} else {
|
||||||
|
hero.viewDistance = level.viewDistance;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
hero.curAction = hero.lastAction = null;
|
hero.curAction = hero.lastAction = null;
|
||||||
|
|
||||||
|
|
|
@ -149,7 +149,7 @@ public enum Rankings {
|
||||||
}
|
}
|
||||||
rec.score = calculateScore();
|
rec.score = calculateScore();
|
||||||
rec.customSeed = Dungeon.customSeedText;
|
rec.customSeed = Dungeon.customSeedText;
|
||||||
|
Badges.validateHighScore( rec.score );
|
||||||
|
|
||||||
INSTANCE.saveGameData(rec);
|
INSTANCE.saveGameData(rec);
|
||||||
|
|
||||||
|
@ -350,6 +350,8 @@ public enum Rankings {
|
||||||
private static final String SCORE = "score";
|
private static final String SCORE = "score";
|
||||||
private static final String CLASS = "class";
|
private static final String CLASS = "class";
|
||||||
private static final String TIER = "tier";
|
private static final String TIER = "tier";
|
||||||
|
private static final String DATE = "date";
|
||||||
|
private static final String VERSION = "version";
|
||||||
private static final String LEVEL = "level";
|
private static final String LEVEL = "level";
|
||||||
private static final String DEPTH = "depth";
|
private static final String DEPTH = "depth";
|
||||||
private static final String DATA = "gameData";
|
private static final String DATA = "gameData";
|
||||||
|
@ -401,6 +403,13 @@ public enum Rankings {
|
||||||
if (bundle.contains(DATA)) gameData = bundle.getBundle(DATA);
|
if (bundle.contains(DATA)) gameData = bundle.getBundle(DATA);
|
||||||
if (bundle.contains(ID)) gameID = bundle.getString(ID);
|
if (bundle.contains(ID)) gameID = bundle.getString(ID);
|
||||||
|
|
||||||
|
if (bundle.contains( DATE )){
|
||||||
|
date = bundle.getString( DATE );
|
||||||
|
version = bundle.getString( VERSION );
|
||||||
|
} else {
|
||||||
|
date = version = null;
|
||||||
|
}
|
||||||
|
|
||||||
if (gameID == null) gameID = UUID.randomUUID().toString();
|
if (gameID == null) gameID = UUID.randomUUID().toString();
|
||||||
|
|
||||||
depth = bundle.getInt( DEPTH );
|
depth = bundle.getInt( DEPTH );
|
||||||
|
@ -412,10 +421,10 @@ public enum Rankings {
|
||||||
public void storeInBundle( Bundle bundle ) {
|
public void storeInBundle( Bundle bundle ) {
|
||||||
|
|
||||||
if (cause != null) bundle.put( CAUSE, cause );
|
if (cause != null) bundle.put( CAUSE, cause );
|
||||||
|
bundle.put( VERSION, version );
|
||||||
bundle.put( WIN, win );
|
bundle.put( WIN, win );
|
||||||
bundle.put( SCORE, score );
|
bundle.put( SCORE, score );
|
||||||
|
bundle.put( DATE, date );
|
||||||
bundle.put( CLASS, heroClass );
|
bundle.put( CLASS, heroClass );
|
||||||
bundle.put( TIER, armorTier );
|
bundle.put( TIER, armorTier );
|
||||||
bundle.put( LEVEL, herolevel );
|
bundle.put( LEVEL, herolevel );
|
||||||
|
|
|
@ -43,8 +43,6 @@ public class Statistics {
|
||||||
public static int highestAscent;
|
public static int highestAscent;
|
||||||
public static boolean gameWon = false;
|
public static boolean gameWon = false;
|
||||||
public static boolean ascended = false;
|
public static boolean ascended = false;
|
||||||
|
|
||||||
|
|
||||||
public static int realdeepestFloor;
|
public static int realdeepestFloor;
|
||||||
public static int boss_enhance = 0;
|
public static int boss_enhance = 0;
|
||||||
public static int goldCollected;
|
public static int goldCollected;
|
||||||
|
@ -81,10 +79,12 @@ public class Statistics {
|
||||||
//灯火前行
|
//灯火前行
|
||||||
public static boolean lanterfireactive = false;
|
public static boolean lanterfireactive = false;
|
||||||
|
|
||||||
|
|
||||||
//克里弗斯之果
|
//克里弗斯之果
|
||||||
public static boolean crivusfruitslevel2 = false;
|
public static boolean crivusfruitslevel2 = false;
|
||||||
|
|
||||||
|
//拟态之王
|
||||||
|
public static boolean TPDoorDieds = false;
|
||||||
|
|
||||||
//修复同步
|
//修复同步
|
||||||
public static boolean bugsyncfixed = false;
|
public static boolean bugsyncfixed = false;
|
||||||
|
|
||||||
|
@ -150,7 +150,7 @@ public class Statistics {
|
||||||
lanterfireactive = false;
|
lanterfireactive = false;
|
||||||
bugsyncfixed = false;
|
bugsyncfixed = false;
|
||||||
crivusfruitslevel2 = false;
|
crivusfruitslevel2 = false;
|
||||||
|
TPDoorDieds = false;
|
||||||
TryUsedAnmy = false;
|
TryUsedAnmy = false;
|
||||||
|
|
||||||
second_elapsed = 0f;
|
second_elapsed = 0f;
|
||||||
|
@ -213,6 +213,9 @@ public class Statistics {
|
||||||
//克里弗斯之果
|
//克里弗斯之果
|
||||||
private static final String CrivusFruitsLevel2 = "crivusfruitslevel2";
|
private static final String CrivusFruitsLevel2 = "crivusfruitslevel2";
|
||||||
|
|
||||||
|
//拟态之王
|
||||||
|
private static final String TPDoorDied = "TPDoorDieds";
|
||||||
|
|
||||||
private static final String TIPSGO = "tipsgo";
|
private static final String TIPSGO = "tipsgo";
|
||||||
|
|
||||||
private static final String GOLDCHEST = "goldchest";
|
private static final String GOLDCHEST = "goldchest";
|
||||||
|
@ -275,6 +278,8 @@ public class Statistics {
|
||||||
|
|
||||||
bundle.put( CrivusFruitsLevel2, crivusfruitslevel2 );
|
bundle.put( CrivusFruitsLevel2, crivusfruitslevel2 );
|
||||||
|
|
||||||
|
bundle.put( TPDoorDied, TPDoorDieds );
|
||||||
|
|
||||||
bundle.put(MMC,mimicking);
|
bundle.put(MMC,mimicking);
|
||||||
|
|
||||||
bundle.put( AnmyMobs, TryUsedAnmy );
|
bundle.put( AnmyMobs, TryUsedAnmy );
|
||||||
|
@ -393,6 +398,8 @@ public class Statistics {
|
||||||
|
|
||||||
crivusfruitslevel2 = bundle.getBoolean( CrivusFruitsLevel2 );
|
crivusfruitslevel2 = bundle.getBoolean( CrivusFruitsLevel2 );
|
||||||
|
|
||||||
|
TPDoorDieds = bundle.getBoolean( TPDoorDied );
|
||||||
|
|
||||||
tipsgodungeon = bundle.getBoolean(TIPSGO);
|
tipsgodungeon = bundle.getBoolean(TIPSGO);
|
||||||
|
|
||||||
//SPD
|
//SPD
|
||||||
|
|
|
@ -27,8 +27,8 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Fire;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Fire;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.bombs.Bomb;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.AlarmTrap;
|
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.AlarmTrap;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.ExplosiveTrap;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
|
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
|
||||||
|
@ -124,24 +124,6 @@ public abstract class ChampionEnemy extends Buff {
|
||||||
buffCls = ChampionEnemy.LongSider.class;
|
buffCls = ChampionEnemy.LongSider.class;
|
||||||
}
|
}
|
||||||
|
|
||||||
// switch ((int) Random.Float()){
|
|
||||||
// case 0:case 1: case 2: case 3: default:
|
|
||||||
// buffCls = ChampionEnemy.Small.class;
|
|
||||||
// break;
|
|
||||||
// case 4: case 5: case 6:
|
|
||||||
// buffCls = ChampionEnemy.Bomber.class;
|
|
||||||
// break;
|
|
||||||
// case 7: case 8:
|
|
||||||
// buffCls = ChampionEnemy.Middle.class;
|
|
||||||
// break;
|
|
||||||
// case 9: case 10: case 11:
|
|
||||||
// buffCls = ChampionEnemy.Big.class;
|
|
||||||
// break;
|
|
||||||
// case 12: case 13:
|
|
||||||
// buffCls = ChampionEnemy.LongSider.class;
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
|
|
||||||
if (Dungeon.mobsToStateLing <= 0 && Dungeon.isChallenged(Challenges.SBSG)) {
|
if (Dungeon.mobsToStateLing <= 0 && Dungeon.isChallenged(Challenges.SBSG)) {
|
||||||
Buff.affect(m, buffCls);
|
Buff.affect(m, buffCls);
|
||||||
m.state = m.WANDERING;
|
m.state = m.WANDERING;
|
||||||
|
@ -150,7 +132,6 @@ public abstract class ChampionEnemy extends Buff {
|
||||||
|
|
||||||
|
|
||||||
public static class LongSider extends ChampionEnemy {
|
public static class LongSider extends ChampionEnemy {
|
||||||
|
|
||||||
{
|
{
|
||||||
color = 0xff00ff;
|
color = 0xff00ff;
|
||||||
}
|
}
|
||||||
|
@ -166,9 +147,11 @@ public abstract class ChampionEnemy extends Buff {
|
||||||
return target.fieldOfView[enemy.pos] && Dungeon.level.distance(target.pos, enemy.pos) <= 2;
|
return target.fieldOfView[enemy.pos] && Dungeon.level.distance(target.pos, enemy.pos) <= 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
private float resurrectChance = 0.1f;
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttackProc(Char enemy) {
|
public void onAttackProc(Char enemy) {
|
||||||
|
|
||||||
|
float resurrectChance = 0.1f;
|
||||||
if(Random.Float() <= resurrectChance) {
|
if(Random.Float() <= resurrectChance) {
|
||||||
Buff.prolong( enemy, Vertigo.class, 4f);
|
Buff.prolong( enemy, Vertigo.class, 4f);
|
||||||
}
|
}
|
||||||
|
@ -213,13 +196,7 @@ public abstract class ChampionEnemy extends Buff {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void detach() {
|
public void detach() {
|
||||||
for (int i : PathFinder.NEIGHBOURS1){
|
new Bomb().explodeMobs(target.pos);
|
||||||
if (!Dungeon.level.solid[target.pos+i]){
|
|
||||||
ExplosiveTrap bomber = new ExplosiveTrap();
|
|
||||||
bomber.pos = target.pos;
|
|
||||||
bomber.activate();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
super.detach();
|
super.detach();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -259,24 +236,23 @@ public abstract class ChampionEnemy extends Buff {
|
||||||
public float meleeDamageFactor() {
|
public float meleeDamageFactor() {
|
||||||
return 1.30f;
|
return 1.30f;
|
||||||
}
|
}
|
||||||
private float resurrectChance = 0.05f;
|
private final float resurrectChance = 0.05f;
|
||||||
@Override
|
@Override
|
||||||
public void onAttackProc(Char enemy) {
|
public void onAttackProc(Char enemy) {
|
||||||
if(Random.Float() <= resurrectChance) {
|
if(Random.Float() <= resurrectChance) {
|
||||||
Buff.affect( enemy, Bleeding.class ).set( 5 );
|
Buff.affect( enemy, Bleeding.class ).set( 5 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private float resurrectChanceB = 0.1f;
|
|
||||||
@Override
|
@Override
|
||||||
public void detach() {
|
public void detach() {
|
||||||
for (int i : PathFinder.NEIGHBOURS9){
|
|
||||||
if (Random.Float() <= resurrectChanceB) {
|
if (Random.Float() <= resurrectChance) {
|
||||||
AlarmTrap xxx = new AlarmTrap();
|
AlarmTrap xxx = new AlarmTrap();
|
||||||
xxx.pos = target.pos;
|
xxx.pos = target.pos;
|
||||||
xxx.activate();
|
xxx.activate();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
super.detach();
|
super.detach();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -370,6 +346,13 @@ public abstract class ChampionEnemy extends Buff {
|
||||||
public float meleeDamageFactor() {
|
public float meleeDamageFactor() {
|
||||||
return 1.45f;
|
return 1.45f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float damageTakenFactor() {
|
||||||
|
return 0.4f;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Projecting extends ChampionEnemy {
|
public static class Projecting extends ChampionEnemy {
|
||||||
|
@ -421,7 +404,7 @@ public abstract class ChampionEnemy extends Buff {
|
||||||
@Override
|
@Override
|
||||||
public boolean canAttackWithExtraReach(Char enemy) {
|
public boolean canAttackWithExtraReach(Char enemy) {
|
||||||
//attack range of 2
|
//attack range of 2
|
||||||
return target.fieldOfView[enemy.pos] && Dungeon.level.distance(target.pos, enemy.pos) <= 4;
|
return target.fieldOfView[enemy.pos] && Dungeon.level.distance(target.pos, enemy.pos) <= 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
package com.shatteredpixel.shatteredpixeldungeon.actors.buffs;
|
package com.shatteredpixel.shatteredpixeldungeon.actors.buffs;
|
||||||
|
|
||||||
|
import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero;
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.lightblack.OilLantern;
|
import com.shatteredpixel.shatteredpixeldungeon.items.lightblack.OilLantern;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||||
|
|
||||||
public class LighS extends FlavourBuff {
|
public class LighS extends FlavourBuff {
|
||||||
private static final float DELAY = 7.0f;
|
private static final float DELAY = 7.0f;
|
||||||
|
@ -14,26 +17,36 @@ public class LighS extends FlavourBuff {
|
||||||
this.type = Buff.buffType.POSITIVE;
|
this.type = Buff.buffType.POSITIVE;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean attachTo(Char target) {
|
@Override
|
||||||
if (!LighS.super.attachTo(target)) {
|
public boolean attachTo( Char target ) {
|
||||||
|
if (super.attachTo( target )) {
|
||||||
|
if (Dungeon.level != null) {
|
||||||
|
target.viewDistance = Math.max( Dungeon.level.viewDistance, DISTANCE );
|
||||||
|
Dungeon.observe();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (Dungeon.level == null) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
target.viewDistance = Math.max(Dungeon.level.viewDistance, 6);
|
|
||||||
Dungeon.observe();
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean act() {
|
public boolean act() {
|
||||||
OilLantern lantern = Dungeon.hero.belongings.getItem(OilLantern.class);
|
OilLantern lantern = hero.belongings.getItem(OilLantern.class);
|
||||||
|
if (hero.buff(LostInventory.class) == null){
|
||||||
if ( !lantern.isActivated() || lantern.getCharge() <= 0) {
|
if ( !lantern.isActivated() || lantern.getCharge() <= 0) {
|
||||||
lantern.deactivate(Dungeon.hero, false);
|
lantern.deactivate(hero, false);
|
||||||
detach();
|
detach();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
lantern.spendCharge();
|
lantern.spendCharge();
|
||||||
|
} else {
|
||||||
|
GLog.n("在遗物状态下无法点亮提灯");
|
||||||
|
detach();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(Dungeon.depth>20){
|
if(Dungeon.depth>20){
|
||||||
spend(DELAY + 6f);
|
spend(DELAY + 6f);
|
||||||
|
|
|
@ -975,8 +975,6 @@ public class Hero extends Char {
|
||||||
lanterfire = 100;
|
lanterfire = 100;
|
||||||
new OilLantern().quantity(1).identify().collect();
|
new OilLantern().quantity(1).identify().collect();
|
||||||
|
|
||||||
new Ankh().quantity(1).identify().collect();
|
|
||||||
|
|
||||||
lanterfireactive = true;
|
lanterfireactive = true;
|
||||||
|
|
||||||
Buff.affect( this, Nyctophobia.class );
|
Buff.affect( this, Nyctophobia.class );
|
||||||
|
|
|
@ -123,32 +123,38 @@ public class Bestiary {
|
||||||
switch (Random.Int(6)) {
|
switch (Random.Int(6)) {
|
||||||
case 0:
|
case 0:
|
||||||
return new ArrayList<>(Arrays.asList(Skeleton.class, BlackHost.class,
|
return new ArrayList<>(Arrays.asList(Skeleton.class, BlackHost.class,
|
||||||
Thief.class,DM100.class,Necromancer.class));
|
Thief.class,DM100.class,Necromancer.class,Monk.class,
|
||||||
|
Golem.class));
|
||||||
case 1:
|
case 1:
|
||||||
return new ArrayList<>(Arrays.asList(Skeleton.class, Skeleton.class, Skeleton.class,
|
return new ArrayList<>(Arrays.asList(Skeleton.class, Skeleton.class, Skeleton.class,
|
||||||
Thief.class,Thief.class,Fire_Scorpio.class,
|
Thief.class,Thief.class,Fire_Scorpio.class,
|
||||||
DM200.class,SkullShaman.class,
|
DM200.class,SkullShaman.class,
|
||||||
DM100.class, Ice_Scorpio.class));
|
DM100.class, Ice_Scorpio.class,Monk.class,
|
||||||
|
Golem.class));
|
||||||
case 2:
|
case 2:
|
||||||
return new ArrayList<>(Arrays.asList(
|
return new ArrayList<>(Arrays.asList(
|
||||||
Succubus.class,
|
Succubus.class,
|
||||||
Eye.class,ShieldHuntsman.class,Scorpio.class,Fire_Scorpio.class));
|
Eye.class,ShieldHuntsman.class,Scorpio.class,Monk.class,
|
||||||
|
Golem.class));
|
||||||
case 3:
|
case 3:
|
||||||
return new ArrayList<>(Arrays.asList(
|
return new ArrayList<>(Arrays.asList(
|
||||||
Succubus.class, Succubus.class, Succubus.class,
|
Succubus.class, Succubus.class, Succubus.class,
|
||||||
Succubus.class, Succubus.class,
|
Succubus.class, Succubus.class,
|
||||||
Eye.class,ShieldHuntsman.class,Ice_Scorpio.class,Fire_Scorpio.class,Albino.class));
|
Eye.class,ShieldHuntsman.class,Albino.class,Monk.class,
|
||||||
|
Golem.class));
|
||||||
case 4:
|
case 4:
|
||||||
return new ArrayList<>(Arrays.asList(
|
return new ArrayList<>(Arrays.asList(
|
||||||
Succubus.class,
|
Succubus.class,
|
||||||
Succubus.class,
|
Succubus.class,
|
||||||
Eye.class,ShieldHuntsman.class,Ice_Scorpio.class));
|
Eye.class,ShieldHuntsman.class,
|
||||||
|
Monk.class,
|
||||||
|
Golem.class));
|
||||||
case 5:
|
case 5:
|
||||||
return new ArrayList<>(Arrays.asList(
|
return new ArrayList<>(Arrays.asList(
|
||||||
Succubus.class,
|
Succubus.class,
|
||||||
Eye.class, Eye.class,
|
Eye.class, Eye.class,
|
||||||
Scorpio.class, Eye.class,Succubus.class,
|
Scorpio.class, Eye.class,Succubus.class,Monk.class,
|
||||||
Ice_Scorpio.class,Fire_Scorpio.class));
|
Golem.class));
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
return new ArrayList<>(Arrays.asList(Rat.class, Rat.class,
|
return new ArrayList<>(Arrays.asList(Rat.class, Rat.class,
|
||||||
|
@ -168,7 +174,7 @@ public class Bestiary {
|
||||||
case 2:
|
case 2:
|
||||||
return new ArrayList<>(Arrays.asList(Rat.class,
|
return new ArrayList<>(Arrays.asList(Rat.class,
|
||||||
Rat.class, Rat.class, Gnoll.class, Gnoll.class,
|
Rat.class, Rat.class, Gnoll.class, Gnoll.class,
|
||||||
Gnoll.class, Gnoll.class, Albino.class));
|
Gnoll.class, Gnoll.class));
|
||||||
case 3:
|
case 3:
|
||||||
return new ArrayList<>(Arrays.asList(Rat.class,
|
return new ArrayList<>(Arrays.asList(Rat.class,
|
||||||
Rat.class, Salamander.class,
|
Rat.class, Salamander.class,
|
||||||
|
|
|
@ -23,6 +23,7 @@ public class Fire_Scorpio extends Scorpio{
|
||||||
lootChance = 0.8f;
|
lootChance = 0.8f;
|
||||||
|
|
||||||
properties.add(Property.DEMONIC);
|
properties.add(Property.DEMONIC);
|
||||||
|
properties.add(Property.MINIBOSS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -30,6 +31,7 @@ public class Fire_Scorpio extends Scorpio{
|
||||||
damage = super.attackProc( enemy, damage );
|
damage = super.attackProc( enemy, damage );
|
||||||
if (Random.Int( 2,5 ) > 3) {
|
if (Random.Int( 2,5 ) > 3) {
|
||||||
Buff.affect( enemy, Burning.class ).reignite( enemy, 4f );
|
Buff.affect( enemy, Burning.class ).reignite( enemy, 4f );
|
||||||
|
spend(3f);
|
||||||
}
|
}
|
||||||
|
|
||||||
return damage;
|
return damage;
|
||||||
|
|
|
@ -23,6 +23,7 @@ public class Ice_Scorpio extends Scorpio{
|
||||||
lootChance = 0.5f;
|
lootChance = 0.5f;
|
||||||
|
|
||||||
properties.add(Property.DEMONIC);
|
properties.add(Property.DEMONIC);
|
||||||
|
properties.add(Property.MINIBOSS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -30,6 +31,7 @@ public class Ice_Scorpio extends Scorpio{
|
||||||
damage = super.attackProc( enemy, damage );
|
damage = super.attackProc( enemy, damage );
|
||||||
if (Random.Int( 3,6 ) > 2) {
|
if (Random.Int( 3,6 ) > 2) {
|
||||||
Buff.prolong( enemy, Chill.class, Chill.DURATION );
|
Buff.prolong( enemy, Chill.class, Chill.DURATION );
|
||||||
|
spend(3f);
|
||||||
}
|
}
|
||||||
return damage;
|
return damage;
|
||||||
}
|
}
|
||||||
|
|
|
@ -114,7 +114,7 @@ public class DiamondKnight extends Boss {
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean isInvulnerable(Class effect) {
|
public boolean isInvulnerable(Class effect) {
|
||||||
return (this.HP>=301 && this.HP<=360) && effect != DiamondKnight.DiedDamager.class;
|
return (this.HP>=301 && this.HP<=360) && effect != DiamondKnight.DiedDamager.class && !Statistics.TPDoorDieds;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class DiedDamager extends Buff {
|
public static class DiedDamager extends Buff {
|
||||||
|
|
|
@ -3,6 +3,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.mobs.bosses;
|
||||||
import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero;
|
import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero;
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.Statistics;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.levels.ColdChestBossLevel;
|
import com.shatteredpixel.shatteredpixeldungeon.levels.ColdChestBossLevel;
|
||||||
|
@ -62,8 +63,8 @@ public class TPDoor extends Mob {
|
||||||
|
|
||||||
super.die(cause);
|
super.die(cause);
|
||||||
GameScene.flash(0x808080);
|
GameScene.flash(0x808080);
|
||||||
|
Statistics.TPDoorDieds = true;
|
||||||
((ColdChestBossLevel) Dungeon.level).progress();
|
((ColdChestBossLevel) Dungeon.level).progress();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -336,7 +336,7 @@ public class Ghost extends NPC {
|
||||||
} else if (itemLevelRoll < 0.90f) {
|
} else if (itemLevelRoll < 0.90f) {
|
||||||
itemLevel = 3;
|
itemLevel = 3;
|
||||||
hero.sprite.showStatus( CharSprite.NEGATIVE, "+3!!!" );
|
hero.sprite.showStatus( CharSprite.NEGATIVE, "+3!!!" );
|
||||||
} else if (itemLevelRoll < 0.95f){
|
} else if (itemLevelRoll < 0.95f && Badges.isUnlocked(Badges.Badge.GHOSTDAGE)){
|
||||||
hero.sprite.showStatus( CharSprite.POSITIVE, "+5!!!" );
|
hero.sprite.showStatus( CharSprite.POSITIVE, "+5!!!" );
|
||||||
if(( !Badges.isUnlocked(Badges.Badge.DAGETO))) {
|
if(( !Badges.isUnlocked(Badges.Badge.DAGETO))) {
|
||||||
Statistics.dageCollected = 2;
|
Statistics.dageCollected = 2;
|
||||||
|
@ -407,7 +407,7 @@ public class Ghost extends NPC {
|
||||||
} else if (itemLevelRoll < 0.90f) {
|
} else if (itemLevelRoll < 0.90f) {
|
||||||
itemLevel = 3;
|
itemLevel = 3;
|
||||||
hero.sprite.showStatus( CharSprite.NEGATIVE, "+3!!!" );
|
hero.sprite.showStatus( CharSprite.NEGATIVE, "+3!!!" );
|
||||||
} else if (itemLevelRoll < 0.95f){
|
} else if (itemLevelRoll < 0.95f && Badges.isUnlocked(Badges.Badge.GHOSTDAGE)){
|
||||||
hero.sprite.showStatus( CharSprite.POSITIVE, "+5!!!" );
|
hero.sprite.showStatus( CharSprite.POSITIVE, "+5!!!" );
|
||||||
if(( !Badges.isUnlocked(Badges.Badge.DAGETO))) {
|
if(( !Badges.isUnlocked(Badges.Badge.DAGETO))) {
|
||||||
Statistics.dageCollected = 2;
|
Statistics.dageCollected = 2;
|
||||||
|
|
|
@ -431,7 +431,7 @@ public class RedDragon extends NPC {
|
||||||
GLog.b( Messages.get(RedDragon.class, "find_me") );
|
GLog.b( Messages.get(RedDragon.class, "find_me") );
|
||||||
//Sample.INSTANCE.play( Assets.Sounds.GHOST );
|
//Sample.INSTANCE.play( Assets.Sounds.GHOST );
|
||||||
processed = true;
|
processed = true;
|
||||||
Statistics.questScores[2] += 4000;
|
Statistics.questScores[2] += 8000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,11 +22,15 @@
|
||||||
package com.shatteredpixel.shatteredpixeldungeon.items;
|
package com.shatteredpixel.shatteredpixeldungeon.items;
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LighS;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Light;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Light;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.FlameParticle;
|
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.FlameParticle;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagicTorch;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||||
import com.watabou.noosa.audio.Sample;
|
import com.watabou.noosa.audio.Sample;
|
||||||
import com.watabou.noosa.particles.Emitter;
|
import com.watabou.noosa.particles.Emitter;
|
||||||
|
|
||||||
|
@ -60,6 +64,9 @@ public class Torch extends Item {
|
||||||
|
|
||||||
if (action.equals( AC_LIGHT )) {
|
if (action.equals( AC_LIGHT )) {
|
||||||
|
|
||||||
|
if (Dungeon.hero.buff(LighS.class) != null || Dungeon.hero.buff(MagicTorch.MagicLight.class) != null) {
|
||||||
|
GLog.n("你已有其他光芒效果,在这些效果取消或主动失效前,暂时无法使用火把。");
|
||||||
|
} else {
|
||||||
hero.spend( TIME_TO_LIGHT );
|
hero.spend( TIME_TO_LIGHT );
|
||||||
hero.busy();
|
hero.busy();
|
||||||
|
|
||||||
|
@ -72,7 +79,7 @@ public class Torch extends Item {
|
||||||
|
|
||||||
Emitter emitter = hero.sprite.centerEmitter();
|
Emitter emitter = hero.sprite.centerEmitter();
|
||||||
emitter.start( FlameParticle.FACTORY, 0.2f, 3 );
|
emitter.start( FlameParticle.FACTORY, 0.2f, 3 );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ import java.util.ArrayList;
|
||||||
|
|
||||||
public class Waterskin extends Item {
|
public class Waterskin extends Item {
|
||||||
|
|
||||||
private static final int MAX_VOLUME = 10;
|
private static final int MAX_VOLUME = 16;
|
||||||
|
|
||||||
private static final String AC_DRINK = "DRINK";
|
private static final String AC_DRINK = "DRINK";
|
||||||
|
|
||||||
|
@ -129,7 +129,7 @@ public class Waterskin extends Item {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Item upgrade() {
|
public Item upgrade() {
|
||||||
DewViewSword = Math.min(DewViewSword + 1, 20);
|
DewViewSword = Math.min(DewViewSword + 1, 8);
|
||||||
return super.upgrade();
|
return super.upgrade();
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -202,6 +202,77 @@ public class Bomb extends Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void explodeMobs(int cell){
|
||||||
|
//We're blowing up, so no need for a fuse anymore.
|
||||||
|
this.fuse = null;
|
||||||
|
|
||||||
|
Sample.INSTANCE.play( Assets.Sounds.BLAST );
|
||||||
|
|
||||||
|
if (explodesDestructively()) {
|
||||||
|
|
||||||
|
ArrayList<Char> affected = new ArrayList<>();
|
||||||
|
|
||||||
|
if (Dungeon.level.heroFOV[cell]) {
|
||||||
|
CellEmitter.center(cell).burst(BlastParticle.FACTORY, 30);
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean terrainAffected = false;
|
||||||
|
for (int n : PathFinder.NEIGHBOURS9) {
|
||||||
|
int c = cell + n;
|
||||||
|
if (c >= 0 && c < Dungeon.level.length()) {
|
||||||
|
if (Dungeon.level.heroFOV[c]) {
|
||||||
|
CellEmitter.get(c).burst(SmokeParticle.FACTORY, 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Dungeon.level.flamable[c]) {
|
||||||
|
Dungeon.level.destroy(c);
|
||||||
|
GameScene.updateMap(c);
|
||||||
|
terrainAffected = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//destroys items / triggers bombs caught in the blast.
|
||||||
|
// Heap heap = Dungeon.level.heaps.get(c);
|
||||||
|
// if (heap != null)
|
||||||
|
// heap.explode();
|
||||||
|
|
||||||
|
Char ch = Actor.findChar(c);
|
||||||
|
if (ch != null) {
|
||||||
|
affected.add(ch);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Char ch : affected){
|
||||||
|
|
||||||
|
//if they have already been killed by another bomb
|
||||||
|
if(!ch.isAlive()){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
int dmg = Random.NormalIntRange(5 + Dungeon.depth, 10 + Dungeon.depth*2);
|
||||||
|
|
||||||
|
//those not at the center of the blast take less damage
|
||||||
|
if (ch.pos != cell){
|
||||||
|
dmg = Math.round(dmg*0.67f);
|
||||||
|
}
|
||||||
|
|
||||||
|
dmg -= ch.drRoll();
|
||||||
|
|
||||||
|
if (dmg > 0) {
|
||||||
|
ch.damage(dmg, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ch == Dungeon.hero && !ch.isAlive()) {
|
||||||
|
Dungeon.fail(Bomb.class);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (terrainAffected) {
|
||||||
|
Dungeon.observe();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isUpgradable() {
|
public boolean isUpgradable() {
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -35,6 +35,7 @@ import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||||
|
import com.watabou.utils.Random;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
@ -49,10 +50,12 @@ public class MeatPie extends Food {
|
||||||
protected void satisfy(Hero hero) {
|
protected void satisfy(Hero hero) {
|
||||||
if (Dungeon.isChallenged(Challenges.EXSG)){
|
if (Dungeon.isChallenged(Challenges.EXSG)){
|
||||||
Buff.prolong( hero, Haste.class, 8f);
|
Buff.prolong( hero, Haste.class, 8f);
|
||||||
|
if(Random.Float() > (0.2f + (hero.STR/5f)/10f)){
|
||||||
hero.STR++;
|
hero.STR++;
|
||||||
hero.sprite.showStatus(CharSprite.POSITIVE, Messages.get(this, "eat_msg_1"));
|
hero.sprite.showStatus(CharSprite.POSITIVE, Messages.get(this, "eat_msg_1"));
|
||||||
GLog.p(Messages.get(this, "eat_msg_2"));
|
GLog.p(Messages.get(this, "eat_msg_2"));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
super.satisfy( hero );
|
super.satisfy( hero );
|
||||||
Buff.affect(hero, WellFed.class).reset();
|
Buff.affect(hero, WellFed.class).reset();
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ public class SmallRation extends Food {
|
||||||
@Override
|
@Override
|
||||||
protected void satisfy( Hero hero ){
|
protected void satisfy( Hero hero ){
|
||||||
if (Dungeon.isChallenged(Challenges.EXSG)){
|
if (Dungeon.isChallenged(Challenges.EXSG)){
|
||||||
Buff.prolong( hero, Haste.class, 8f);
|
Buff.prolong( hero, Haste.class, 4f);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Dungeon.isChallenged(Challenges.NO_FOOD)){
|
if (Dungeon.isChallenged(Challenges.NO_FOOD)){
|
||||||
|
|
|
@ -21,10 +21,6 @@
|
||||||
|
|
||||||
package com.shatteredpixel.shatteredpixeldungeon.items.food;
|
package com.shatteredpixel.shatteredpixeldungeon.items.food;
|
||||||
|
|
||||||
import static com.shatteredpixel.shatteredpixeldungeon.Challenges.EXSG;
|
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Challenges;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hunger;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hunger;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||||
|
@ -37,13 +33,8 @@ public class StewedMeat extends Food {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void satisfy( Hero hero ) {
|
protected void satisfy( Hero hero ) {
|
||||||
if (Dungeon.isChallenged(Challenges.EXSG)) {
|
|
||||||
hero.earnExp( hero.maxExp(), getClass() );
|
|
||||||
Buff.affect(hero, Hunger.class).satisfy(energy/3f);
|
|
||||||
} else {
|
|
||||||
Buff.affect(hero, Hunger.class).satisfy(energy/2f);
|
Buff.affect(hero, Hunger.class).satisfy(energy/2f);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -97,6 +88,6 @@ public class StewedMeat extends Food {
|
||||||
@Override
|
@Override
|
||||||
public String desc() {
|
public String desc() {
|
||||||
//三元一次逻辑运算
|
//三元一次逻辑运算
|
||||||
return Dungeon.isChallenged(EXSG) ? Messages.get(this, "descx") : Messages.get(this, "desc");
|
return Messages.get(this, "desc");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,8 +9,11 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LighS;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LighS;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Light;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LostInventory;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagicTorch;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||||
|
@ -84,12 +87,14 @@ public class OilLantern extends Item {
|
||||||
actions.add(AC_REFILL);
|
actions.add(AC_REFILL);
|
||||||
|
|
||||||
actions.remove("THROW");
|
actions.remove("THROW");
|
||||||
|
|
||||||
actions.remove("DROP");
|
actions.remove("DROP");
|
||||||
return actions;
|
return actions;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void execute(Hero hero, String action) {
|
public void execute(Hero hero, String action) {
|
||||||
if (action.equals(AC_LIGHT)) {
|
if (action.equals(AC_LIGHT)) {
|
||||||
|
if (hero.buff(LostInventory.class) == null) {
|
||||||
if (this.charge > 0) {
|
if (this.charge > 0) {
|
||||||
activate(hero, true);
|
activate(hero, true);
|
||||||
} else if (this.flasks > 0) {
|
} else if (this.flasks > 0) {
|
||||||
|
@ -97,6 +102,9 @@ public class OilLantern extends Item {
|
||||||
} else {
|
} else {
|
||||||
GLog.w(Messages.get(OilLantern.class, "lanterneedsx"));
|
GLog.w(Messages.get(OilLantern.class, "lanterneedsx"));
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
GLog.n("你陷入灵魂残缺的迷茫当中 无法引燃提灯");
|
||||||
|
}
|
||||||
} else if (action.equals(AC_REFILL)) {
|
} else if (action.equals(AC_REFILL)) {
|
||||||
if (this.flasks > 0) {
|
if (this.flasks > 0) {
|
||||||
refill(hero);
|
refill(hero);
|
||||||
|
@ -125,6 +133,9 @@ public class OilLantern extends Item {
|
||||||
|
|
||||||
public void activate(Hero hero, boolean voluntary) {
|
public void activate(Hero hero, boolean voluntary) {
|
||||||
if (voluntary) {
|
if (voluntary) {
|
||||||
|
if (Dungeon.hero.buff(Light.class) != null || Dungeon.hero.buff(MagicTorch.MagicLight.class) != null) {
|
||||||
|
GLog.n("你已有其他光芒效果,在这些效果取消或主动失效前,暂时无法使用提灯的效果。");
|
||||||
|
} else {
|
||||||
hero.spend(TIME_TO_USE);
|
hero.spend(TIME_TO_USE);
|
||||||
hero.busy();
|
hero.busy();
|
||||||
GLog.i(Messages.get(OilLantern.class, "lanteron"));
|
GLog.i(Messages.get(OilLantern.class, "lanteron"));
|
||||||
|
@ -138,6 +149,8 @@ public class OilLantern extends Item {
|
||||||
Dungeon.observe();
|
Dungeon.observe();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// if (voluntary && hero.lanterfire > 0) {
|
// if (voluntary && hero.lanterfire > 0) {
|
||||||
// hero.spend(TIME_TO_USE);
|
// hero.spend(TIME_TO_USE);
|
||||||
// hero.busy();
|
// hero.busy();
|
||||||
|
|
|
@ -21,16 +21,11 @@
|
||||||
|
|
||||||
package com.shatteredpixel.shatteredpixeldungeon.items.potions;
|
package com.shatteredpixel.shatteredpixeldungeon.items.potions;
|
||||||
|
|
||||||
import static com.shatteredpixel.shatteredpixeldungeon.Challenges.EXSG;
|
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Challenges;
|
import com.shatteredpixel.shatteredpixeldungeon.Challenges;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Bleeding;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||||
import com.watabou.utils.Random;
|
|
||||||
|
|
||||||
public class PotionOfExperience extends Potion {
|
public class PotionOfExperience extends Potion {
|
||||||
|
|
||||||
|
@ -43,14 +38,9 @@ public class PotionOfExperience extends Potion {
|
||||||
@Override
|
@Override
|
||||||
public void apply( Hero hero ) {
|
public void apply( Hero hero ) {
|
||||||
identify();
|
identify();
|
||||||
if (Dungeon.isChallenged(EXSG) && Random.Float()>0.4f) {
|
|
||||||
Buff.affect(hero, Bleeding.class).set(6f);
|
|
||||||
}else{
|
|
||||||
hero.earnExp( hero.maxExp(), getClass() );
|
hero.earnExp( hero.maxExp(), getClass() );
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int value() {
|
public int value() {
|
||||||
return isKnown() ? 50 * quantity : super.value();
|
return isKnown() ? 50 * quantity : super.value();
|
||||||
|
|
|
@ -47,7 +47,7 @@ public class PotionOfInvisibility extends Potion {
|
||||||
@Override
|
@Override
|
||||||
public void apply( Hero hero ) {
|
public void apply( Hero hero ) {
|
||||||
identify();
|
identify();
|
||||||
if(Dungeon.isChallenged(EXSG)&& Random.Float()>0.7f){
|
if(Dungeon.isChallenged(EXSG)&& Random.Float()>0.4f){
|
||||||
for (Mob mob : Dungeon.level.mobs) {
|
for (Mob mob : Dungeon.level.mobs) {
|
||||||
mob.beckon( Dungeon.hero.pos );
|
mob.beckon( Dungeon.hero.pos );
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,7 @@ public class PotionOfMindVision extends Potion {
|
||||||
public void apply(Hero hero) {
|
public void apply(Hero hero) {
|
||||||
identify();
|
identify();
|
||||||
|
|
||||||
if (Dungeon.isChallenged(EXSG)&& Random.Float()>0.5f) {
|
if (Dungeon.isChallenged(EXSG)&& Random.Float()>0.4f) {
|
||||||
if (Dungeon.level.mobs.size() > 0) {
|
if (Dungeon.level.mobs.size() > 0) {
|
||||||
GLog.i(Messages.get(this, "can't_see_mobs"));
|
GLog.i(Messages.get(this, "can't_see_mobs"));
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ public class PotionOfStrength extends Potion {
|
||||||
@Override
|
@Override
|
||||||
public void apply( Hero hero ) {
|
public void apply( Hero hero ) {
|
||||||
identify();
|
identify();
|
||||||
if(Dungeon.isChallenged(EXSG) && Random.Float()>0.8f) {
|
if(Dungeon.isChallenged(EXSG) && Random.Float()>0.4f) {
|
||||||
hero.STR--;
|
hero.STR--;
|
||||||
hero.sprite.showStatus(CharSprite.NEGATIVE, Messages.get(this, "esg_1"));
|
hero.sprite.showStatus(CharSprite.NEGATIVE, Messages.get(this, "esg_1"));
|
||||||
GLog.n(Messages.get(this, "esg_2"));
|
GLog.n(Messages.get(this, "esg_2"));
|
||||||
|
|
|
@ -75,7 +75,7 @@ public class WaterSoul extends Elixir {
|
||||||
inputs = new Class[]{PotionOfHealing.class, FrozenCarpaccio.class};
|
inputs = new Class[]{PotionOfHealing.class, FrozenCarpaccio.class};
|
||||||
inQuantity = new int[]{1, 1};
|
inQuantity = new int[]{1, 1};
|
||||||
|
|
||||||
cost = 10;
|
cost = 14;
|
||||||
|
|
||||||
output = WaterSoul.class;
|
output = WaterSoul.class;
|
||||||
outQuantity = 2;
|
outQuantity = 2;
|
||||||
|
|
|
@ -195,16 +195,18 @@ public class BloodthirstyThorn extends MeleeWeapon {
|
||||||
bloodthirstyThorn.level=Random.NormalIntRange(3,6);
|
bloodthirstyThorn.level=Random.NormalIntRange(3,6);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(chaliceOfBlood!=null) {
|
||||||
bloodthirstyThorn.quantity(1).identify();
|
bloodthirstyThorn.quantity(1).identify();
|
||||||
|
|
||||||
chaliceOfBlood.detachAll( hero.belongings.backpack );
|
chaliceOfBlood.detach(hero.belongings.backpack);
|
||||||
|
|
||||||
if(chaliceOfBlood.level()==10){
|
if (chaliceOfBlood.level() == 10) {
|
||||||
ChaliceOfBlood chaliceOfBlood1 = new ChaliceOfBlood();
|
ChaliceOfBlood chaliceOfBlood1 = new ChaliceOfBlood();
|
||||||
chaliceOfBlood1.cursed = true;
|
chaliceOfBlood1.cursed = true;
|
||||||
chaliceOfBlood1.level=Random.NormalIntRange(1,3);
|
chaliceOfBlood1.level = Random.NormalIntRange(1, 3);
|
||||||
chaliceOfBlood1.identify().quantity(1).collect();
|
chaliceOfBlood1.identify().quantity(1).collect();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return sampleOutput(null);
|
return sampleOutput(null);
|
||||||
}
|
}
|
||||||
|
@ -233,7 +235,7 @@ public class BloodthirstyThorn extends MeleeWeapon {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int max(int lvl) {
|
public int max(int lvl) {
|
||||||
return 7 + lvl*7;
|
return 6 + lvl*4;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -37,15 +37,15 @@ public class LockSword extends MeleeWeapon {
|
||||||
@Override
|
@Override
|
||||||
public int max(int lvl) {
|
public int max(int lvl) {
|
||||||
|
|
||||||
return Math.round(1.7f*(tier+1)) +
|
return Math.round(1.4f*(tier+1)) +
|
||||||
lvl*Math.round(1.5f*(tier+1));
|
lvl*Math.round(1.5f*(tier+1));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int min(int lvl) {
|
public int min(int lvl) {
|
||||||
|
|
||||||
return Math.round(1.4f*(tier+1)) +
|
return Math.round(1.2f*(tier+1)) +
|
||||||
lvl*Math.round(0.5f*(tier+1));
|
lvl*Math.round(0.3f*(tier+1));
|
||||||
}
|
}
|
||||||
|
|
||||||
public String desc() {
|
public String desc() {
|
||||||
|
@ -88,19 +88,19 @@ public class LockSword extends MeleeWeapon {
|
||||||
if (lvl>= 900) {
|
if (lvl>= 900) {
|
||||||
switch (Random.NormalIntRange(1,4)){
|
switch (Random.NormalIntRange(1,4)){
|
||||||
case 1:
|
case 1:
|
||||||
dmg = (new Grim()).proc(this, attacker, defender, damage) + 8;
|
dmg = (new Grim()).proc(this, attacker, defender, damage) + 4;
|
||||||
damage = dmg;
|
damage = dmg;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
dmg = (new Shocking()).proc(this, attacker, defender, damage) + 8;
|
dmg = (new Shocking()).proc(this, attacker, defender, damage) + 5;
|
||||||
damage = dmg;
|
damage = dmg;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
dmg = (new Blazing()).proc(this, attacker, defender, damage) + 8;
|
dmg = (new Blazing()).proc(this, attacker, defender, damage) + 6;
|
||||||
damage = dmg;
|
damage = dmg;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
dmg = (new Kinetic()).proc(this, attacker, defender, damage) + 8;
|
dmg = (new Kinetic()).proc(this, attacker, defender, damage) + 7;
|
||||||
damage = dmg;
|
damage = dmg;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -7,12 +7,15 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.FlavourBuff;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.FlavourBuff;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LighS;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Light;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.MagicFlameParticle;
|
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.MagicFlameParticle;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
|
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||||
import com.watabou.noosa.Image;
|
import com.watabou.noosa.Image;
|
||||||
import com.watabou.noosa.particles.Emitter;
|
import com.watabou.noosa.particles.Emitter;
|
||||||
import com.watabou.utils.Bundle;
|
import com.watabou.utils.Bundle;
|
||||||
|
@ -68,8 +71,13 @@ public class MagicTorch extends MeleeWeapon {
|
||||||
public void execute(Hero hero, String action) {
|
public void execute(Hero hero, String action) {
|
||||||
super.execute(hero, action);
|
super.execute(hero, action);
|
||||||
if (AC_EQUIP.equals(action)) {
|
if (AC_EQUIP.equals(action)) {
|
||||||
|
if (Dungeon.hero.buff(LighS.class) != null || Dungeon.hero.buff(Light.class) != null) {
|
||||||
|
GLog.n("你已有其他光芒效果,在这些效果取消或主动失效前,魔法火把的效果不生效。");
|
||||||
|
} else {
|
||||||
Buff.affect(hero, MagicLight.class).set((100), 1);
|
Buff.affect(hero, MagicLight.class).set((100), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -37,7 +37,7 @@ public class Sai extends MeleeWeapon {
|
||||||
hitSoundPitch = 1.3f;
|
hitSoundPitch = 1.3f;
|
||||||
|
|
||||||
tier = 4;
|
tier = 4;
|
||||||
DLY = 0.5f; //2x speed
|
DLY = 0.8f; //2x speed
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -74,8 +74,8 @@ public class Sai extends MeleeWeapon {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int max(int lvl) {
|
public int max(int lvl) {
|
||||||
return Math.round(1.5f*(tier+1)) + //10 base, down from 20
|
return Math.round(1.2f*(tier+1)) + //10 base, down from 20
|
||||||
lvl*Math.round(1.0f*(tier+1)); //+2 per level, down from +4
|
lvl*Math.round(0.8f*(tier+1)); //+2 per level, down from +4
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Weakness;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Wraith;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Wraith;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
|
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
|
||||||
|
@ -19,8 +19,8 @@ import com.watabou.utils.Random;
|
||||||
|
|
||||||
public class WashCrime extends MeleeWeapon {
|
public class WashCrime extends MeleeWeapon {
|
||||||
|
|
||||||
private int killmobs = 0;
|
private int killmobs;
|
||||||
private int spawnmobs = 0;
|
private int spawnmobs;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int min(int lvl) {
|
public int min(int lvl) {
|
||||||
|
@ -41,7 +41,7 @@ public class WashCrime extends MeleeWeapon {
|
||||||
|
|
||||||
tier = 5;
|
tier = 5;
|
||||||
RCH = 3; //lots of extra reach
|
RCH = 3; //lots of extra reach
|
||||||
DLY = 2; //Slow Speed
|
DLY = 2f;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -66,7 +66,7 @@ public class WashCrime extends MeleeWeapon {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int proc(Char attacker, Char defender, int damage ) {
|
public int proc(Char attacker, Char defender, int damage ) {
|
||||||
|
DLY = DLY < 0.3f ? 0.3f : 2-(killmobs/10f)/10f; //Slow Speed
|
||||||
if(killmobs > 61 ){
|
if(killmobs > 61 ){
|
||||||
killmobs=60;
|
killmobs=60;
|
||||||
} else if (defender.HP <= damage && killmobs < 61) {
|
} else if (defender.HP <= damage && killmobs < 61) {
|
||||||
|
@ -113,7 +113,7 @@ public class WashCrime extends MeleeWeapon {
|
||||||
|
|
||||||
|
|
||||||
if (Random.NormalIntRange(1, 4) == 4) {
|
if (Random.NormalIntRange(1, 4) == 4) {
|
||||||
Buff.prolong(defender, Weakness.class, 8f);
|
Buff.prolong(defender, Cripple.class, 8f);
|
||||||
} else {
|
} else {
|
||||||
return super.proc(attacker, defender, damage);
|
return super.proc(attacker, defender, damage);
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,8 +21,6 @@
|
||||||
|
|
||||||
package com.shatteredpixel.shatteredpixeldungeon.levels;
|
package com.shatteredpixel.shatteredpixeldungeon.levels;
|
||||||
|
|
||||||
import static com.shatteredpixel.shatteredpixeldungeon.Challenges.RLPT;
|
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Blacksmith;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Blacksmith;
|
||||||
|
@ -65,13 +63,9 @@ public class CavesLevel extends RegularLevel {
|
||||||
//红龙的试炼
|
//红龙的试炼
|
||||||
@Override
|
@Override
|
||||||
protected void createItems() {
|
protected void createItems() {
|
||||||
if (Dungeon.isChallenged(RLPT)) {
|
|
||||||
super.createItems();
|
|
||||||
} else {
|
|
||||||
RedDragon.Quest.spawn(this);
|
RedDragon.Quest.spawn(this);
|
||||||
super.createItems();
|
super.createItems();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void playLevelMusic() {
|
public void playLevelMusic() {
|
||||||
|
|
|
@ -11,6 +11,7 @@ import static com.shatteredpixel.shatteredpixeldungeon.levels.ColdChestBossLevel
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.Statistics;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||||
|
@ -32,7 +33,7 @@ import java.util.HashMap;
|
||||||
//宝藏迷宫 10层
|
//宝藏迷宫 10层
|
||||||
public class ColdChestBossLevel extends Level {
|
public class ColdChestBossLevel extends Level {
|
||||||
|
|
||||||
private State pro;
|
public State pro;
|
||||||
|
|
||||||
public State pro(){
|
public State pro(){
|
||||||
return pro;
|
return pro;
|
||||||
|
@ -90,8 +91,6 @@ public class ColdChestBossLevel extends Level {
|
||||||
private static final short W = Terrain.WALL;
|
private static final short W = Terrain.WALL;
|
||||||
private static final short M = Terrain.WELL;
|
private static final short M = Terrain.WELL;
|
||||||
private static final short E = Terrain.CHASM;
|
private static final short E = Terrain.CHASM;
|
||||||
|
|
||||||
private static final short X = Terrain.EXIT;
|
|
||||||
private static final short J = Terrain.ENTRANCE;
|
private static final short J = Terrain.ENTRANCE;
|
||||||
private static final short O = Terrain.WATER;
|
private static final short O = Terrain.WATER;
|
||||||
private static final short P = Terrain.EMPTY_SP;
|
private static final short P = Terrain.EMPTY_SP;
|
||||||
|
@ -138,7 +137,7 @@ public class ColdChestBossLevel extends Level {
|
||||||
W,E,E,W,K,W,E,E,E,E,E,E,E,W,K,K,K,K,K,K,K,W,E,E,E,E,E,E,W,K,W,E,E,E,W,
|
W,E,E,W,K,W,E,E,E,E,E,E,E,W,K,K,K,K,K,K,K,W,E,E,E,E,E,E,W,K,W,E,E,E,W,
|
||||||
W,E,E,W,K,W,E,E,E,E,E,E,E,W,K,K,K,P,K,K,K,W,E,E,E,E,E,E,W,K,W,E,E,E,W,
|
W,E,E,W,K,W,E,E,E,E,E,E,E,W,K,K,K,P,K,K,K,W,E,E,E,E,E,E,W,K,W,E,E,E,W,
|
||||||
W,E,E,W,K,W,W,W,W,W,W,W,W,W,K,K,P,P,P,K,K,W,W,W,W,W,W,W,W,K,W,E,E,E,W,
|
W,E,E,W,K,W,W,W,W,W,W,W,W,W,K,K,P,P,P,K,K,W,W,W,W,W,W,W,W,K,W,E,E,E,W,
|
||||||
W,E,E,W,K,K,K,K,K,K,K,K,K,D,K,P,P,X,P,P,K,D,K,K,K,K,K,K,K,K,W,E,E,E,W,
|
W,E,E,W,K,K,K,K,K,K,K,K,K,D,K,P,P,P,P,P,K,D,K,K,K,K,K,K,K,K,W,E,E,E,W,
|
||||||
W,E,E,W,W,W,W,W,W,W,W,W,W,W,K,K,P,P,P,K,K,W,W,W,W,W,W,W,W,W,W,E,E,E,W,
|
W,E,E,W,W,W,W,W,W,W,W,W,W,W,K,K,P,P,P,K,K,W,W,W,W,W,W,W,W,W,W,E,E,E,W,
|
||||||
W,E,E,E,E,E,E,E,E,E,E,E,E,W,K,K,K,P,K,K,K,W,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,W,K,K,K,P,K,K,K,W,E,E,E,E,E,E,E,E,E,E,E,E,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,
|
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,
|
||||||
|
@ -307,7 +306,6 @@ public class ColdChestBossLevel extends Level {
|
||||||
public void progress(){
|
public void progress(){
|
||||||
switch (pro) {
|
switch (pro) {
|
||||||
case GO_START:
|
case GO_START:
|
||||||
//如果有生物来到BossDoor的下一个坐标,且生物是玩家,那么触发seal().
|
|
||||||
seal();
|
seal();
|
||||||
DiamondKnight bossx = new DiamondKnight();
|
DiamondKnight bossx = new DiamondKnight();
|
||||||
bossx.state = bossx.WANDERING;
|
bossx.state = bossx.WANDERING;
|
||||||
|
@ -451,7 +449,7 @@ public class ColdChestBossLevel extends Level {
|
||||||
for (Mob boss : Dungeon.level.mobs.toArray(new Mob[0])) {
|
for (Mob boss : Dungeon.level.mobs.toArray(new Mob[0])) {
|
||||||
if(boss instanceof DiamondKnight) {
|
if(boss instanceof DiamondKnight) {
|
||||||
//如果楼层为开始且boss血量小于300 2阶段
|
//如果楼层为开始且boss血量小于300 2阶段
|
||||||
if (pro == MAZE_START && boss.HP <= 300) {
|
if (pro == MAZE_START && boss.HP <= 300 || Statistics.TPDoorDieds) {
|
||||||
//动态修改整个房间 宝藏迷宫
|
//动态修改整个房间 宝藏迷宫
|
||||||
changeMap(EndMap);
|
changeMap(EndMap);
|
||||||
//在切换房间的时候立刻切换全新坐标
|
//在切换房间的时候立刻切换全新坐标
|
||||||
|
|
|
@ -112,23 +112,22 @@ public class ZeroLevel extends Level {
|
||||||
drop( ( Generator.randomUsingDefaults( Generator.Category.SCROLL ) ), this.width * 20 + 17 );
|
drop( ( Generator.randomUsingDefaults( Generator.Category.SCROLL ) ), this.width * 20 + 17 );
|
||||||
drop( ( Generator.randomUsingDefaults( Generator.Category.SCROLL ) ), this.width * 19 + 16 );
|
drop( ( Generator.randomUsingDefaults( Generator.Category.SCROLL ) ), this.width * 19 + 16 );
|
||||||
|
|
||||||
|
|
||||||
drop( new Ankh(), this.width * 17 + 20 );
|
drop( new Ankh(), this.width * 17 + 20 );
|
||||||
drop( new Stylus(), this.width * 19 + 20 );
|
drop( new Stylus(), this.width * 19 + 20 );
|
||||||
|
|
||||||
drop( ( Generator.randomUsingDefaults( Generator.Category.STONE ) ), this.width * 16 + 19 );
|
drop( ( Generator.randomUsingDefaults( Generator.Category.STONE ) ), this.width * 16 + 19 );
|
||||||
drop( ( Generator.randomUsingDefaults( Generator.Category.FOOD ) ), this.width * 20 + 19 );
|
drop( ( Generator.randomUsingDefaults( Generator.Category.FOOD ) ), this.width * 20 + 19 );
|
||||||
|
|
||||||
drop( new Pasty(), this.width * 20 + 19 );
|
drop( new Pasty(), this.width * 20 + 19 );
|
||||||
|
|
||||||
if ( Badges.isUnlocked(Badges.Badge.GODD_MAKE)){
|
if ( Badges.isUnlocked(Badges.Badge.GODD_MAKE)){
|
||||||
drop( ( Generator.randomUsingDefaults( Generator.Category.RING ) ), this.width * 17 + 18 );
|
drop( ( Generator.randomUsingDefaults( Generator.Category.RING ) ), this.width * 17 + 18 );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( Badges.isUnlocked(Badges.Badge.BIG_X)){
|
if ( Badges.isUnlocked(Badges.Badge.BIG_X)){
|
||||||
drop( ( Generator.randomUsingDefaults( Generator.Category.ARMOR ) ), this.width * 19 + 18 );
|
drop( ( Generator.randomUsingDefaults( Generator.Category.ARMOR ) ), this.width * 19 + 18 );
|
||||||
}
|
}
|
||||||
if ( Badges.isUnlocked(Badges.Badge.KILL_APPLE)||Badges.isUnlocked(Badges.Badge.KILL_MG) ){
|
if ( Badges.isUnlocked(Badges.Badge.KILL_DM720)||Badges.isUnlocked(Badges.Badge.KILL_MG) ){
|
||||||
drop(new Ankh(), this.width * 18 + 17 );
|
drop(( Generator.randomUsingDefaults( Generator.Category.WEP_T2 )), this.width * 18 + 17 );
|
||||||
}
|
}
|
||||||
if ( Badges.isUnlocked(Badges.Badge.RLPT)){
|
if ( Badges.isUnlocked(Badges.Badge.RLPT)){
|
||||||
drop( ( Generator.randomUsingDefaults( Generator.Category.ARTIFACT ) ), this.width * 18 + 19 );
|
drop( ( Generator.randomUsingDefaults( Generator.Category.ARTIFACT ) ), this.width * 18 + 19 );
|
||||||
|
|
|
@ -256,7 +256,7 @@ public class SurfaceScene extends PixelScene {
|
||||||
add( gameOver );
|
add( gameOver );
|
||||||
|
|
||||||
Badges.validateHappyEnd();
|
Badges.validateHappyEnd();
|
||||||
|
Badges.STORM();
|
||||||
fadeIn();
|
fadeIn();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -146,7 +146,7 @@ public class DimandKingSprite extends MobSprite {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
texture( Dungeon.hero.heroClass.spritesheet() );
|
texture( Dungeon.hero.heroClass.spritesheet() );
|
||||||
updateArmor( 6 );
|
updateArmor( 7 );
|
||||||
idle();
|
idle();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
package com.shatteredpixel.shatteredpixeldungeon.sprites;
|
||||||
|
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
|
import com.watabou.noosa.TextureFilm;
|
||||||
|
|
||||||
|
public class SeaVastGirlSprites extends MobSprite {
|
||||||
|
|
||||||
|
public SeaVastGirlSprites() {
|
||||||
|
super();
|
||||||
|
|
||||||
|
texture( Assets.Sprites.VSGR );
|
||||||
|
|
||||||
|
TextureFilm frames = new TextureFilm( texture, 24, 24 );
|
||||||
|
|
||||||
|
idle = new Animation( 2, true );
|
||||||
|
idle.frames( frames, 0, 0, 0, 1,1,1,2 );
|
||||||
|
|
||||||
|
run = new Animation( 8, true );
|
||||||
|
run.frames( frames, 3, 4, 5, 6 );
|
||||||
|
|
||||||
|
attack = new Animation( 15, false );
|
||||||
|
attack.frames( frames, 7, 8, 9, 0 );
|
||||||
|
|
||||||
|
die = new Animation( 10, false );
|
||||||
|
die.frames( frames, 0 );
|
||||||
|
|
||||||
|
play( idle );
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -25,6 +25,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.SPDAction;
|
import com.shatteredpixel.shatteredpixeldungeon.SPDAction;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LostInventory;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.custom.utils.Constants;
|
import com.shatteredpixel.shatteredpixeldungeon.custom.utils.Constants;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
|
@ -221,7 +222,8 @@ public class QuickSlotButton extends Button {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void enableSlot() {
|
private void enableSlot() {
|
||||||
slot.enable(Dungeon.quickslot.isNonePlaceholder( slotNum ));
|
slot.enable(Dungeon.quickslot.isNonePlaceholder( slotNum )
|
||||||
|
&& (Dungeon.hero.buff(LostInventory.class) == null || Dungeon.quickslot.getItem(slotNum).keptThoughLostInvent));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void useTargeting() {
|
private void useTargeting() {
|
||||||
|
|
|
@ -354,7 +354,7 @@ public class StatusPane extends Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
if(SPDSettings.TimeLimit()) {
|
if(SPDSettings.TimeLimit()) {
|
||||||
timeText.x = MenuPane.version.x;
|
timeText.x = MenuPane.version.x - 10;
|
||||||
|
|
||||||
timeText.y = MenuPane.version.y + 5;
|
timeText.y = MenuPane.version.y + 5;
|
||||||
|
|
||||||
|
@ -442,7 +442,7 @@ public class StatusPane extends Component {
|
||||||
|
|
||||||
if(Dungeon.hero.isAlive()){
|
if(Dungeon.hero.isAlive()){
|
||||||
Date date = new Date();
|
Date date = new Date();
|
||||||
String strDateFormat = "yyyy-MM-dd HH:mm:ss";
|
String strDateFormat = "yyyy-MM-dd HH:mm";
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat, Locale.getDefault());
|
SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat, Locale.getDefault());
|
||||||
Calendar cal=Calendar.getInstance();
|
Calendar cal=Calendar.getInstance();
|
||||||
int s=cal.get(Calendar.SECOND);
|
int s=cal.get(Calendar.SECOND);
|
||||||
|
|
|
@ -19,6 +19,7 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.DiedMonkLoaderSprite;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.DimandKingSprite;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.DimandKingSprite;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.FlameBoiSprite;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.FlameBoiSprite;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.GhostSprite;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.GhostSprite;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.IceFireScorpioSprite;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.IceStalSprites;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.IceStalSprites;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||||
|
@ -50,6 +51,9 @@ import java.util.ArrayList;
|
||||||
public class vM0_6_7_X_Changes {
|
public class vM0_6_7_X_Changes {
|
||||||
|
|
||||||
public static void addAllChanges(ArrayList<ChangeInfo> changeInfos) {
|
public static void addAllChanges(ArrayList<ChangeInfo> changeInfos) {
|
||||||
|
add_v0_6_39_Changes(changeInfos);
|
||||||
|
add_v0_6_38_Changes(changeInfos);
|
||||||
|
add_v0_6_37_Changes(changeInfos);
|
||||||
add_v0_6_36_Changes(changeInfos);
|
add_v0_6_36_Changes(changeInfos);
|
||||||
add_v0_6_35_Changes(changeInfos);
|
add_v0_6_35_Changes(changeInfos);
|
||||||
add_v0_6_34_Changes(changeInfos);
|
add_v0_6_34_Changes(changeInfos);
|
||||||
|
@ -89,8 +93,131 @@ public class vM0_6_7_X_Changes {
|
||||||
add_v0_6_0_Changes(changeInfos);
|
add_v0_6_0_Changes(changeInfos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void add_v0_6_39_Changes( ArrayList<ChangeInfo> changeInfos ) {
|
||||||
|
|
||||||
|
ChangeInfo changes = new ChangeInfo("v0.6.2.0-Beta3", true, "");
|
||||||
|
changes.hardlight(Window.TITLE_COLOR);
|
||||||
|
changeInfos.add(changes);
|
||||||
|
|
||||||
|
changes = new ChangeInfo("新内容", false, null);
|
||||||
|
changes.hardlight(Window.GREEN_COLOR);
|
||||||
|
changeInfos.add(changes);
|
||||||
|
|
||||||
|
changes.addButton(new ChangeButton(Icons.get(Icons.PREFS), ("徽章改进"),
|
||||||
|
("徽章现在进行了一定的改进,并追加了一些新徽章。")));
|
||||||
|
|
||||||
|
changes = new ChangeInfo("改动", false, null);
|
||||||
|
changes.hardlight(Window.CYELLOW);
|
||||||
|
changeInfos.add(changes);
|
||||||
|
|
||||||
|
Image issxsaxs =new DimandKingSprite();
|
||||||
|
issxsaxs.scale.set(PixelScene.align(0.8f));
|
||||||
|
changes.addButton(new ChangeButton(issxsaxs,("拟态王改进"),
|
||||||
|
("修复拟态王二阶段可能无法跳转地图的问题")));
|
||||||
|
|
||||||
|
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_06X68")));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void add_v0_6_38_Changes( ArrayList<ChangeInfo> changeInfos ) {
|
||||||
|
|
||||||
|
ChangeInfo changes = new ChangeInfo("v0.6.2.0-Beta2", true, "");
|
||||||
|
changes.hardlight(Window.TITLE_COLOR);
|
||||||
|
changeInfos.add(changes);
|
||||||
|
|
||||||
|
changes = new ChangeInfo("新内容", false, null);
|
||||||
|
changes.hardlight(Window.GREEN_COLOR);
|
||||||
|
changeInfos.add(changes);
|
||||||
|
|
||||||
|
changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_ON), ("药水癔症"),
|
||||||
|
("药水癔症已经进行了一定的改进,详见挑战说明。")));
|
||||||
|
|
||||||
|
changes.addButton(new ChangeButton(Icons.get(Icons.STATS), ("评分系统"),
|
||||||
|
("评分系统现在进行了一些Bug修复,并且对评分追加SSS+评级。")));
|
||||||
|
|
||||||
|
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_06X67")));
|
||||||
|
|
||||||
|
changes.addButton(new ChangeButton(new GhostSprite(), "幽灵任务",
|
||||||
|
"幽灵任务现在进行了调整,如果未获得+4徽章是无法获得+5的东西的。并且两个徽章不在独立,合并起来了。"));
|
||||||
|
|
||||||
|
changes = new ChangeInfo("平衡", false, null);
|
||||||
|
changes.hardlight(Window.RED_COLOR);
|
||||||
|
changeInfos.add(changes);
|
||||||
|
|
||||||
|
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.WATERSOUL), "水灵药剂",
|
||||||
|
"炼金能量从10提升到14。"));
|
||||||
|
|
||||||
|
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.BloodDied), "嗜血荆棘",
|
||||||
|
"整体攻击面板属性削弱,其余效果不变"));
|
||||||
|
|
||||||
|
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.SAI), "吸血鬼刀",
|
||||||
|
"整体攻击面板属性削弱,攻速从0.5变成0.8。"));
|
||||||
|
|
||||||
|
changes.addButton(new ChangeButton(new IceFireScorpioSprite(), "寒冰巨蝎",
|
||||||
|
"现在攻速调整为3回合一次,火蝎子也是一样的。"));
|
||||||
|
|
||||||
|
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.DASlade), "涤罪",
|
||||||
|
"现在攻速随着杀怪数量渐渐追加,最快可达到0.3x"));
|
||||||
|
|
||||||
|
changes.addButton(new ChangeButton(Icons.get(Icons.CHALLENGE_ON), "突变爆炸体",
|
||||||
|
"突变爆炸体现在死亡不会摧毁你的物品。"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void add_v0_6_37_Changes( ArrayList<ChangeInfo> changeInfos ) {
|
||||||
|
|
||||||
|
ChangeInfo changes = new ChangeInfo("v0.6.2.0-Beta1", true, "");
|
||||||
|
changes.hardlight(Window.TITLE_COLOR);
|
||||||
|
changeInfos.add(changes);
|
||||||
|
|
||||||
|
changes = new ChangeInfo("新内容", false, null);
|
||||||
|
changes.hardlight(Window.GREEN_COLOR);
|
||||||
|
changeInfos.add(changes);
|
||||||
|
|
||||||
|
changes.addButton(new ChangeButton(Icons.get(Icons.COPY), ("UI迭代更新"),
|
||||||
|
("文本类UI已经进行迭代,现在拥有更好的使用体验。")));
|
||||||
|
|
||||||
|
changes.addButton(new ChangeButton(Icons.get(Icons.STATS), ("评分系统"),
|
||||||
|
("现在魔绫加入评分系统,并且含有评分等级。\n快去开一把看看自己能获得什么水准吧。")));
|
||||||
|
|
||||||
|
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.SEED_SKYBLUEFIRE), "地牢种子",
|
||||||
|
"现在排行榜进行了翻新,你的种子可以在这里快速分享给其他人。\n" +
|
||||||
|
"当然,仅限更新后的新版本哦。"));
|
||||||
|
|
||||||
|
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.ARMOR_LAMELLAR), "第6代护甲",
|
||||||
|
"札甲全新登场,你有尝试过叠甲的快乐吗?"));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
changes = new ChangeInfo("改动", false, null);
|
||||||
|
changes.hardlight(Window.CYELLOW);
|
||||||
|
changeInfos.add(changes);
|
||||||
|
|
||||||
|
changes.addButton(new ChangeButton(Icons.get(Icons.INFO), ("文案调整"),
|
||||||
|
("部分文案得到优化调整。")));
|
||||||
|
|
||||||
|
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_06X66")));
|
||||||
|
|
||||||
|
|
||||||
|
changes = new ChangeInfo("削弱", false, null);
|
||||||
|
changes.hardlight(Window.RED_COLOR);
|
||||||
|
changeInfos.add(changes);
|
||||||
|
|
||||||
|
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.BloodDied), "嗜血荆棘",
|
||||||
|
"整体成长属性削弱。"));
|
||||||
|
|
||||||
|
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.DG3), "归溯钥剑",
|
||||||
|
"整体成长属性削弱,随机附魔概率减少。"));
|
||||||
|
}
|
||||||
|
|
||||||
public static void add_v0_6_36_Changes( ArrayList<ChangeInfo> changeInfos ) {
|
public static void add_v0_6_36_Changes( ArrayList<ChangeInfo> changeInfos ) {
|
||||||
ChangeInfo changes = new ChangeInfo("v0.6.1.0-Beta7.3(P3)-520特别更新", true, "");
|
ChangeInfo changes = new ChangeInfo("v0.6.1.0-Beta7.3", true, "");
|
||||||
changes.hardlight(Window.TITLE_COLOR);
|
changes.hardlight(Window.TITLE_COLOR);
|
||||||
changeInfos.add(changes);
|
changeInfos.add(changes);
|
||||||
|
|
||||||
|
@ -344,15 +471,15 @@ public class vM0_6_7_X_Changes {
|
||||||
changeInfos.add(changes);
|
changeInfos.add(changes);
|
||||||
|
|
||||||
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.MAGES_STAFF), ("首领对决V1.7"),
|
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.MAGES_STAFF), ("首领对决V1.7"),
|
||||||
("1.修复了BR模式的19层的错误生成,加强10层钻石宝箱王的攻击能力\n" +
|
("1.修复了娱乐模式的19层的错误生成,加强10层钻石宝箱王的攻击能力\n" +
|
||||||
"2.现在17层和27层可以上楼了\n" +
|
"2.现在17层和27层可以上楼了\n" +
|
||||||
"3.英雄素材更新,部分物品贴图更新\n" +
|
"3.英雄素材更新,部分物品贴图更新\n" +
|
||||||
"4.现在击败宝箱王不再能获得拟态徽章,28层完成后通过水晶之心会直接幸福结局。")));
|
"4.现在击败宝箱王不再能获得拟态徽章,28层完成后通过水晶之心会直接幸福结局。")));
|
||||||
|
|
||||||
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.ARTIFACT_HORN4), ("首领对决V1.6"),
|
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.ARTIFACT_HORN4), ("首领对决V1.6"),
|
||||||
("1.部分Boss发生了改变,19层火魔女,21层矮人国王,25层矮人将军\n" +
|
("1.部分Boss发生了改变,19层火魔女,21层矮人国王,25层矮人将军\n" +
|
||||||
"2.现在不会在BR模式生成跳楼房间,以及修复了一些Bug\n" +
|
"2.现在不会在娱乐模式生成跳楼房间,以及修复了一些Bug\n" +
|
||||||
"3.现在诅咒法杖不会在BR模式中触发传送效果")));
|
"3.现在诅咒法杖不会在娱乐模式中触发传送效果")));
|
||||||
|
|
||||||
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.ARTIFACT_ROSE3), ("首领对决V1.5"),
|
changes.addButton(new ChangeButton(new ItemSprite(ItemSpriteSheet.ARTIFACT_ROSE3), ("首领对决V1.5"),
|
||||||
("1.现在可以在3层完成幽妹的任务,让她和你并肩前行。\n" +
|
("1.现在可以在3层完成幽妹的任务,让她和你并肩前行。\n" +
|
||||||
|
|
|
@ -4,11 +4,12 @@ import com.shatteredpixel.shatteredpixeldungeon.Statistics;
|
||||||
|
|
||||||
public class LevelChecker {
|
public class LevelChecker {
|
||||||
|
|
||||||
private static final int SSS_SCORE = 10000;
|
public static final int SSSP_SCORE = 250000;
|
||||||
private static final int SS_SCORE = 8000;
|
public static final int SSS_SCORE = 200000;
|
||||||
private static final int S_SCORE = 5000;
|
public static final int SS_SCORE = 100000;
|
||||||
private static final int A_SCORE = 4500;
|
private static final int S_SCORE = 50000;
|
||||||
private static final int B_SCORE = 6000;
|
public static final int A_SCORE = 20000;
|
||||||
|
public static final int B_SCORE = 10000;
|
||||||
private static final int C_SCORE = 5000;
|
private static final int C_SCORE = 5000;
|
||||||
private static final int D_SCORE = 4000;
|
private static final int D_SCORE = 4000;
|
||||||
private static final int E_SCORE = 3000;
|
private static final int E_SCORE = 3000;
|
||||||
|
@ -19,10 +20,11 @@ public class LevelChecker {
|
||||||
boolean amuletObtained = Statistics.amuletObtained;
|
boolean amuletObtained = Statistics.amuletObtained;
|
||||||
|
|
||||||
String level;
|
String level;
|
||||||
|
if (totalScore >= SSSP_SCORE * chalMultiplier * (amuletObtained ? 0.7 : 5)) {
|
||||||
if (totalScore >= SSS_SCORE * chalMultiplier * (amuletObtained ? 1 : 5)) {
|
level = "_SSS+_";
|
||||||
|
} else if (totalScore >= SSS_SCORE * chalMultiplier/2 * (amuletObtained ? 1 : 4)) {
|
||||||
level = "SSS";
|
level = "SSS";
|
||||||
} else if (totalScore >= SS_SCORE * chalMultiplier * (amuletObtained ? 1 : 4)) {
|
} else if (totalScore >= SS_SCORE * chalMultiplier * (amuletObtained ? 1 : 3)) {
|
||||||
level = "SS";
|
level = "SS";
|
||||||
} else if (totalScore >= S_SCORE * chalMultiplier * (amuletObtained ? 1 : 3)) {
|
} else if (totalScore >= S_SCORE * chalMultiplier * (amuletObtained ? 1 : 3)) {
|
||||||
level = "S";
|
level = "S";
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
* Copyright (C) 2012-2015 Oleg Dolya
|
* Copyright (C) 2012-2015 Oleg Dolya
|
||||||
*
|
*
|
||||||
* Shattered Pixel Dungeon
|
* Shattered Pixel Dungeon
|
||||||
* Copyright (C) 2014-2022 Evan Debenham
|
* Copyright (C) 2014-2023 Evan Debenham
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -42,19 +42,35 @@ public class WndBadge extends Window {
|
||||||
if (!unlocked) icon.brightness(0.4f);
|
if (!unlocked) icon.brightness(0.4f);
|
||||||
add( icon );
|
add( icon );
|
||||||
|
|
||||||
RenderedTextBlock info = PixelScene.renderTextBlock( badge.desc(), 6 );
|
RenderedTextBlock title = PixelScene.renderTextBlock( badge.title(), 9 );
|
||||||
|
title.maxWidth(MAX_WIDTH - MARGIN * 2);
|
||||||
|
title.align(RenderedTextBlock.CENTER_ALIGN);
|
||||||
|
title.hardlight(TITLE_COLOR);
|
||||||
|
if (!unlocked) title.hardlight( 0x888822 );
|
||||||
|
add(title);
|
||||||
|
|
||||||
|
String desc = badge.desc();
|
||||||
|
|
||||||
|
RenderedTextBlock info = PixelScene.renderTextBlock( desc, 6 );
|
||||||
info.maxWidth(MAX_WIDTH - MARGIN * 2);
|
info.maxWidth(MAX_WIDTH - MARGIN * 2);
|
||||||
info.align(RenderedTextBlock.CENTER_ALIGN);
|
info.align(RenderedTextBlock.CENTER_ALIGN);
|
||||||
if (!unlocked) info.hardlight( 0x888888 );
|
if (!unlocked) {
|
||||||
|
info.hardlight( 0x888888 );
|
||||||
|
info.setHightlighting( true, 0x888822 );
|
||||||
|
}
|
||||||
add(info);
|
add(info);
|
||||||
|
|
||||||
float w = Math.max( icon.width(), info.width() ) + MARGIN * 2;
|
float w = Math.max( icon.width(), Math.max(title.width(), info.width()) ) + MARGIN * 2;
|
||||||
|
|
||||||
icon.x = (w - icon.width()) / 2f;
|
icon.x = (w - icon.width()) / 2f;
|
||||||
icon.y = MARGIN;
|
icon.y = MARGIN;
|
||||||
PixelScene.align(icon);
|
PixelScene.align(icon);
|
||||||
|
|
||||||
info.setPos((w - info.width()) / 2, icon.y + icon.height() + MARGIN);
|
title.setPos((w - title.width()) / 2, icon.y + icon.height() + MARGIN);
|
||||||
|
PixelScene.align(title);
|
||||||
|
|
||||||
|
info.setPos((w - info.width()) / 2, title.bottom() + MARGIN);
|
||||||
|
PixelScene.align(info);
|
||||||
resize( (int)w, (int)(info.bottom() + MARGIN) );
|
resize( (int)w, (int)(info.bottom() + MARGIN) );
|
||||||
|
|
||||||
if (unlocked) BadgeBanner.highlight( icon, badge.image );
|
if (unlocked) BadgeBanner.highlight( icon, badge.image );
|
||||||
|
|
|
@ -30,6 +30,7 @@ import com.shatteredpixel.shatteredpixeldungeon.SPDSettings;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon;
|
import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Statistics;
|
import com.shatteredpixel.shatteredpixeldungeon.Statistics;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Belongings;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Belongings;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroSubClass;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
||||||
|
@ -44,6 +45,8 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.Icons;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.ui.ItemSlot;
|
import com.shatteredpixel.shatteredpixeldungeon.ui.ItemSlot;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton;
|
import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextBlock;
|
import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextBlock;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.ui.TalentButton;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.ui.TalentsPane;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
|
import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.utils.DungeonSeed;
|
import com.shatteredpixel.shatteredpixeldungeon.utils.DungeonSeed;
|
||||||
import com.watabou.noosa.ColorBlock;
|
import com.watabou.noosa.ColorBlock;
|
||||||
|
@ -198,6 +201,53 @@ public class WndRanking extends WndTabbed {
|
||||||
version.setPos(WIDTH-version.width(), pos);
|
version.setPos(WIDTH-version.width(), pos);
|
||||||
add(version);
|
add(version);
|
||||||
|
|
||||||
|
RedButton btnTalents = new RedButton( Messages.get(this, "talents") ){
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onClick() {
|
||||||
|
//removes talents from upper tiers
|
||||||
|
int tiers = 1;
|
||||||
|
if (Dungeon.hero.lvl >= 6) tiers++;
|
||||||
|
if (Dungeon.hero.lvl >= 12 && Dungeon.hero.subClass != HeroSubClass.NONE) tiers++;
|
||||||
|
if (Dungeon.hero.lvl >= 20 && Dungeon.hero.armorAbility != null) tiers++;
|
||||||
|
while (Dungeon.hero.talents.size() > tiers){
|
||||||
|
Dungeon.hero.talents.remove(Dungeon.hero.talents.size()-1);
|
||||||
|
}
|
||||||
|
Game.scene().addToFront( new Window(){
|
||||||
|
{
|
||||||
|
TalentsPane p = new TalentsPane(TalentButton.Mode.INFO);
|
||||||
|
add(p);
|
||||||
|
p.setPos(0, 0);
|
||||||
|
p.setSize(120, p.content().height());
|
||||||
|
resize((int)p.width(), (int)p.height());
|
||||||
|
p.setPos(0, 0);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
int buttontopx = HEIGHT - 36;
|
||||||
|
btnTalents.icon(Icons.get(Icons.TALENT));
|
||||||
|
if (Dungeon.challenges > 0) {
|
||||||
|
btnTalents.setRect((WIDTH - btnTalents.reqWidth() + 2) / 6, buttontopx, btnTalents.reqWidth() + 2, 16);
|
||||||
|
} else {
|
||||||
|
btnTalents.setRect((WIDTH - btnTalents.reqWidth() + 2) / 2, buttontopx, btnTalents.reqWidth() + 2, 16);
|
||||||
|
}
|
||||||
|
add(btnTalents);
|
||||||
|
|
||||||
|
if (Dungeon.challenges > 0) {
|
||||||
|
RedButton btnChallenges = new RedButton( Messages.get(this, "challenges") ) {
|
||||||
|
@Override
|
||||||
|
protected void onClick() {
|
||||||
|
Game.scene().add( new WndChallenges( Dungeon.challenges, false,null ) );
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
btnChallenges.icon(Icons.get(Icons.CHALLENGE_ON));
|
||||||
|
btnChallenges.setRect( (WIDTH - btnTalents.reqWidth()-12), buttontopx, btnTalents.reqWidth()+2 , 16 );
|
||||||
|
add( btnChallenges );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
pos = date.bottom()+5;
|
pos = date.bottom()+5;
|
||||||
|
|
||||||
NumberFormat num = NumberFormat.getInstance(Locale.US);
|
NumberFormat num = NumberFormat.getInstance(Locale.US);
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
package com.shatteredpixel.shatteredpixeldungeon.windows;
|
package com.shatteredpixel.shatteredpixeldungeon.windows;
|
||||||
|
|
||||||
import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero;
|
import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero;
|
||||||
|
import static com.shatteredpixel.shatteredpixeldungeon.Statistics.TPDoorDieds;
|
||||||
import static com.shatteredpixel.shatteredpixeldungeon.Statistics.crivusfruitslevel2;
|
import static com.shatteredpixel.shatteredpixeldungeon.Statistics.crivusfruitslevel2;
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Statistics;
|
import com.shatteredpixel.shatteredpixeldungeon.Statistics;
|
||||||
|
@ -148,6 +149,11 @@ public class WndResurrect extends Window {
|
||||||
crivusfruitslevel2 = false;
|
crivusfruitslevel2 = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//拟态王二阶段死亡的时候给予重新评估
|
||||||
|
if(TPDoorDieds){
|
||||||
|
TPDoorDieds = false;
|
||||||
|
}
|
||||||
|
|
||||||
//矮人将军
|
//矮人将军
|
||||||
Buff.affect(hero, TestDwarfMasterLock.class).set((1), 1);
|
Buff.affect(hero, TestDwarfMasterLock.class).set((1), 1);
|
||||||
|
|
||||||
|
|
|
@ -37,10 +37,10 @@ public class WndScoreBreakdown extends Window {
|
||||||
num.format(Statistics.exploreScore), pos, Statistics.exploreScore >= 20_000);
|
num.format(Statistics.exploreScore), pos, Statistics.exploreScore >= 20_000);
|
||||||
pos = addInfo(this, Messages.get(this, "explore_desc"), pos);
|
pos = addInfo(this, Messages.get(this, "explore_desc"), pos);
|
||||||
pos = statSlot(this, Messages.get(this, "bosses_title"),
|
pos = statSlot(this, Messages.get(this, "bosses_title"),
|
||||||
num.format(Statistics.totalBossScore), pos, Statistics.totalBossScore >= 15_000);
|
num.format(Statistics.totalBossScore), pos, Statistics.totalBossScore >= 18_000);
|
||||||
pos = addInfo(this, Messages.get(this, "bosses_desc"), pos);
|
pos = addInfo(this, Messages.get(this, "bosses_desc"), pos);
|
||||||
pos = statSlot(this, Messages.get(this, "quests_title"),
|
pos = statSlot(this, Messages.get(this, "quests_title"),
|
||||||
num.format(Statistics.totalQuestScore), pos, Statistics.totalQuestScore >= 10_000);
|
num.format(Statistics.totalQuestScore), pos, Statistics.totalQuestScore >= 14_000);
|
||||||
pos = addInfo(this, Messages.get(this, "quests_desc"), pos);
|
pos = addInfo(this, Messages.get(this, "quests_desc"), pos);
|
||||||
|
|
||||||
if (Statistics.winMultiplier > 1) {
|
if (Statistics.winMultiplier > 1) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user