update beta21-2.875

This commit is contained in:
LingASDJ 2022-12-04 19:09:46 +08:00
parent 698828c54e
commit 5dbd8f23c9
26 changed files with 322 additions and 284 deletions

View File

@ -632,7 +632,7 @@ actors.mobs.slime_sz.name=史莱姆-圣紫守护者
actors.mobs.slime_sz.desc=史莱姆七大守护者中的_圣紫使者_\n它发出的攻击有几率让入侵者受到_迟缓效果_ actors.mobs.slime_sz.desc=史莱姆七大守护者中的_圣紫使者_\n它发出的攻击有几率让入侵者受到_迟缓效果_
actors.mobs.slimeking.name=史莱姆王子 actors.mobs.slimeking.name=史莱姆王子
actors.mobs.slimeking.desc=史莱姆王子,圣境密林的守护者,没有人能从它这里活着走过去。\n\n-机制说明:移动极其缓慢但有无限使用的锁链。血量低于一半后立刻呼唤_当前楼层至多3个怪物_前来支援(只可触发一次),并且移速恢复正常但_锁链功能失效_且_自身防御降为0_以及近战有概率造成_双倍伤害_。 actors.mobs.slimeking.desc=史莱姆王子,圣境密林的守护者,没有人能从它这里活着走过去。\n\n-机制说明:移动极其缓慢但有无限使用的锁链。血量低于一半后立刻呼唤_当前楼层至多3个怪物_前来支援(只可触发一次),并且移速恢复正常但_锁链功能失效_且_自身防御降为0_以及近战有概率造成_双倍伤害_。血量低于60后受到敌人的近战攻击将有45%的概率分裂成蚀化史莱姆,但分裂的血量/4。
actors.mobs.slimeking.notice=你将会死在圣境密林! actors.mobs.slimeking.notice=你将会死在圣境密林!
actors.mobs.slimeking.defeated=不……这不可能…… actors.mobs.slimeking.defeated=不……这不可能……
actors.mobs.slimeking.arise=我的史莱姆守卫们,快点出来支援本王! actors.mobs.slimeking.arise=我的史莱姆守卫们,快点出来支援本王!

View File

@ -66,7 +66,7 @@ items.wands.wandofbluefuck.name=磷焰法杖
items.wands.wandofbluefuck.staff_name=鬼磷之杖 items.wands.wandofbluefuck.staff_name=鬼磷之杖
items.wands.wandofbluefuck.desc=这根法杖由欧松木制成,饰以紫色宝石,这使它看起来相当庄严。它的顶端噼啪作响嘶嘶而鸣,渴望着释放其强大的魔法。 items.wands.wandofbluefuck.desc=这根法杖由欧松木制成,饰以紫色宝石,这使它看起来相当庄严。它的顶端噼啪作响嘶嘶而鸣,渴望着释放其强大的魔法。
items.wands.wandofbluefuck.stats_desc=该法杖在使用时会产生一股强大的磷焰延伸出一个锥形区域。下一次使用它将消耗_%1$d发充能_并造成_%2$d~%3$d点伤害_。法杖消耗的充能数越多其范围与威力就越大或越强。 items.wands.wandofbluefuck.stats_desc=该法杖在使用时会产生一股强大的磷焰延伸出一个锥形区域。下一次使用它将消耗_%1$d发充能_并造成_%2$d~%3$d点伤害_。法杖消耗的充能数越多其范围与威力就越大或越强。
items.wands.wandofbluefuck.bmage_desc=当_战斗法师_以焰浪法杖近战攻击目标时,能像拥有烈焰附魔一样有概率将其点燃。 items.wands.wandofbluefuck.bmage_desc=当_战斗法师_以鬼磷法杖近战攻击目标时,能像拥有鬼磷附魔一样有概率将其点燃。
items.weapon.enchantments.haloblazing.name=鬼磷%s items.weapon.enchantments.haloblazing.name=鬼磷%s
items.weapon.enchantments.haloblazing.desc=这个附魔会使磷火从武器中喷薄而出,能够使用点燃敌人并对正在燃烧的敌人造成中毒的额外伤害。 items.weapon.enchantments.haloblazing.desc=这个附魔会使磷火从武器中喷薄而出,能够使用点燃敌人并对正在燃烧的敌人造成中毒的额外伤害。
@ -213,11 +213,13 @@ items.wands.wandofscale.name=恐惧暴风法杖
items.wands.wandofscale.staff_name=暴风之杖 items.wands.wandofscale.staff_name=暴风之杖
items.wands.wandofscale.desc=这根法杖的紫色主干顶端镶嵌着一颗明亮的黑色宝石。 items.wands.wandofscale.desc=这根法杖的紫色主干顶端镶嵌着一颗明亮的黑色宝石。
items.wands.wandofscale.stats_desc=这根法杖能射出恐惧声波,附近的敌人都会四处逃窜。\n并且可以产生暴风使周围陷阱全部失效且成为水地面。\n会造成_%1$d~%2$d点伤害_。 items.wands.wandofscale.stats_desc=这根法杖能射出恐惧声波,附近的敌人都会四处逃窜。\n并且可以产生暴风使周围陷阱全部失效且成为水地面。\n会造成_%1$d~%2$d点伤害_。
items.wands.wandofscale.bmage_desc=当_战斗法师_以暴风之杖近战攻击目标时能概率让目标流血。
items.wands.wandofgodice.name=霜殇法杖 items.wands.wandofgodice.name=霜殇法杖
items.wands.wandofgodice.staff_name=冰雪悲歌之杖 items.wands.wandofgodice.staff_name=冰雪悲歌之杖
items.wands.wandofgodice.desc=这根法杖的蔚蓝色色主干顶端镶嵌着一颗明亮的金色宝石。 items.wands.wandofgodice.desc=这根法杖的蔚蓝色色主干顶端镶嵌着一颗明亮的金色宝石。
items.wands.wandofgodice.stats_desc=这根法杖能射出冰冻冲击波,\n会造成_%1$d~%2$d点伤害_。\n对首领的可以造成双倍伤害\n-翼绫,我很抱歉,我只能这样杀死你吗? items.wands.wandofgodice.stats_desc=这根法杖能射出冰冻冲击波,\n会造成_%1$d~%2$d点伤害_。\n对首领的可以造成双倍伤害
items.wands.wandofgodice.bmage_desc=当_战斗法师_以冰雪悲歌之杖近战攻击目标时能概率触发幸运附魔。
items.quest.goldbao.name=黄金珍宝 items.quest.goldbao.name=黄金珍宝
items.quest.goldbao.desc=由钻石宝箱王守护的东西,据说是商人的喜爱产品。\n\n无论怎么样现在珍宝已经在你手中你已经打败了钻石宝箱王。\n提示出价资金可能会和实际资金不同因为商人随时可能变卦。 items.quest.goldbao.desc=由钻石宝箱王守护的东西,据说是商人的喜爱产品。\n\n无论怎么样现在珍宝已经在你手中你已经打败了钻石宝箱王。\n提示出价资金可能会和实际资金不同因为商人随时可能变卦。

View File

@ -119,7 +119,7 @@ challenges.champion_enemies_desc=会升级的不止你一个!\n\n・普通敌
的机率拥有特殊的精英属性。\n・精英敌人刷出时会立即醒来。\n・精英敌人免疫腐化效果。\n\n精英敌人有七种\n_烈焰橙色_ 近战伤害 \ 的机率拥有特殊的精英属性。\n・精英敌人刷出时会立即醒来。\n・精英敌人免疫腐化效果。\n\n精英敌人有七种\n_烈焰橙色_ 近战伤害 \
+25% 且带有点燃效果,免疫火焰,死亡时引燃周围。\n_索敌紫色_ 近战伤害 +25%,近战范围 +8。\n_敌法绿色_ 受到伤害 -25%,拥有魔法免疫。\n_巨型蓝色_ 受到伤害 -75%,近战范围 +1无法进入门与过道。\n_祝福黄色_ 精准与躲避 +200%。\n_成长红色_ 精准、躲避、攻击伤害与有效生命值 +20%。每过 3 回合会再增长 1%。\n_鬼磷天蓝色_ 近战伤害 +15% 且带有磷火效果,免疫火焰与磷火。 +25% 且带有点燃效果,免疫火焰,死亡时引燃周围。\n_索敌紫色_ 近战伤害 +25%,近战范围 +8。\n_敌法绿色_ 受到伤害 -25%,拥有魔法免疫。\n_巨型蓝色_ 受到伤害 -75%,近战范围 +1无法进入门与过道。\n_祝福黄色_ 精准与躲避 +200%。\n_成长红色_ 精准、躲避、攻击伤害与有效生命值 +20%。每过 3 回合会再增长 1%。\n_鬼磷天蓝色_ 近战伤害 +15% 且带有磷火效果,免疫火焰与磷火。
challenges.stronger_bosses=Π梦魇Boss challenges.stronger_bosses=Π梦魇Boss
challenges.stronger_bosses_desc=这项挑战让挑战 Boss 变得更有挑战性了!\n\n_粘咕_生命值 +20%\n_-_ 水中恢复量增长,每回合恢复 3 点生命\n_-_ 爆发攻击蓄力时间由 2 回合缩短至 1 回合\n_天狗_生命 +25%\n_-_ 第一阶段:陷阱更加致命\n_-_ 第二阶段:技能频率更高\n_钻石宝箱王_: 生命+20% \n_-_ 整场战斗出现额外技能\n_DM-300_生命 +60%\n_-_ 能量塔更坚固。\n_-_ 技能频率更高,威力也更强大\n_-_ 超载时移动速度更高\n_-_ 击败时必掉落荆棘斗篷\n_矮人国王:_生命 +50%\n_-_ 整场战斗内召唤的随从都更强大\n_-_ 第一阶段:技能与召唤频率都更高\n_-_ 第二阶段:每轮额外召唤两个随从\n_-_ 第三阶段:生命值 +100%,召唤频率更高\n_Yog-Dzewa:_\n_-_ 同时召唤两个古神之拳!\n_-_ 激光攻击伤害 +60%\n_-_ 召唤更强大的随从 challenges.stronger_bosses_desc=这项挑战让挑战 Boss 变得更有挑战性了!\n\n_粘咕_生命值 +20%\n_-_ 水中恢复量增长,每回合恢复 3 点生命\n_-_ 爆发攻击蓄力时间由 2 回合缩短至 1 回合\n_天狗_生命 +25%\n_-_ 第一阶段:陷阱更加致命\n_-_ 第二阶段:技能频率更高\n_钻石宝箱王_: 生命+20%\n_DM-300_生命 +60%\n_-_ 能量塔更坚固。\n_-_ 技能频率更高,威力也更强大\n_-_ 超载时移动速度更高\n_-_ 击败时必掉落荆棘斗篷\n_矮人国王:_生命 +50%\n_-_ 整场战斗内召唤的随从都更强大\n_-_ 第一阶段:技能与召唤频率都更高\n_-_ 第二阶段:每轮额外召唤两个随从\n_-_ 第三阶段:生命值 +100%,召唤频率更高\n_Yog-Dzewa:_\n_-_ 同时召唤两个古神之拳!\n_-_ 激光攻击伤害 +60%\n_-_ 召唤更强大的随从
actors.char.aquaphobia=你受到了来自水的伤害! actors.char.aquaphobia=你受到了来自水的伤害!
challenges.pro=Δ开发者模式Δ challenges.pro=Δ开发者模式Δ
challenges.pro_desc=供测试和开发使用\n开局_几乎是全物品_同时你将无法通关也无法记录在排行榜上面。 challenges.pro_desc=供测试和开发使用\n开局_几乎是全物品_同时你将无法通关也无法记录在排行榜上面。

View File

@ -1,155 +1,73 @@
badges.endorsed=Badge endorsed: %s badges.endorsed=Badge endorsed: %s
badges.new=Badge unlocked: %s badges.new_super=New super badge: %s
badges$badge.monsters_slain_1.title=Novice Monster Hunter badges.new=New badge: %s
badges$badge.monsters_slain_1.desc=Defeat 10 enemies in one game badges$badge.monsters_slain_1=10 enemies slain
badges$badge.monsters_slain_2.title=Adept Monster Hunter badges$badge.monsters_slain_2=50 enemies slain
badges$badge.monsters_slain_2.desc=Defeat 50 enemies in one game badges$badge.monsters_slain_3=150 enemies slain
badges$badge.monsters_slain_3.title=Expert Monster Hunter badges$badge.monsters_slain_4=250 enemies slain
badges$badge.monsters_slain_3.desc=Defeat 100 enemies in one game badges$badge.gold_collected_1=100 gold collected
badges$badge.monsters_slain_4.title=Master Monster Hunter badges$badge.gold_collected_2=500 gold collected
badges$badge.monsters_slain_4.desc=Defeat 200 enemies in one game badges$badge.gold_collected_3=2500 gold collected
badges$badge.monsters_slain_5.title=Grandmaster Monster Hunter badges$badge.gold_collected_4=7500 gold collected
badges$badge.monsters_slain_5.desc=Defeat 300 enemies in one game badges$badge.level_reached_1=Level 6 reached
badges$badge.gold_collected_1.title=Novice Treasure Hunter badges$badge.level_reached_2=Level 12 reached
badges$badge.gold_collected_1.desc=Collect 250 gold in one game badges$badge.level_reached_3=Level 18 reached
badges$badge.gold_collected_2.title=Adept Treasure Hunter badges$badge.level_reached_4=Level 24 reached
badges$badge.gold_collected_2.desc=Collect 1000 gold in one game badges$badge.all_weapons_identified=All weapons identified
badges$badge.gold_collected_3.title=Expert Treasure Hunter badges$badge.all_armor_identified=All armor identified
badges$badge.gold_collected_3.desc=Collect 2500 gold in one game badges$badge.all_wands_identified=All wands identified
badges$badge.gold_collected_4.title=Master Treasure Hunter badges$badge.all_rings_identified=All rings identified
badges$badge.gold_collected_4.desc=Collect 5000 gold in one game badges$badge.all_artifacts_identified=All artifacts identified
badges$badge.gold_collected_5.title=Grandmaster Treasure Hunter badges$badge.all_potions_identified=All potions identified
badges$badge.gold_collected_5.desc=Collect 10,000 gold in one game badges$badge.all_scrolls_identified=All scrolls identified
badges$badge.level_reached_1.title=Novice Adventurer badges$badge.all_items_identified=All items identified
badges$badge.level_reached_1.desc=Reach level 6 badges$badge.all_bags_bought=All bags bought
badges$badge.level_reached_2.title=Adept Adventurer badges$badge.death_from_fire=Death from fire
badges$badge.level_reached_2.desc=Reach level 12 badges$badge.death_from_poison=Death from poison
badges$badge.level_reached_3.title=Expert Adventurer badges$badge.death_from_gas=Death from toxic gas
badges$badge.level_reached_3.desc=Reach level 18 badges$badge.death_from_hunger=Death from hunger
badges$badge.level_reached_4.title=Master Adventurer badges$badge.death_from_glyph=Death from deferred damage
badges$badge.level_reached_4.desc=Reach level 24 badges$badge.death_from_falling=Death from falling down
badges$badge.level_reached_5.title=Grandmaster Adventurer badges$badge.yasd=Death from fire, poison, toxic gas, hunger, glyph, and falling
badges$badge.level_reached_5.desc=Reach level 30 badges$badge.boss_slain_1=1st boss slain
badges$badge.all_weapons_identified.title=Weapon Researcher badges$badge.boss_slain_2=2nd boss slain
badges$badge.all_weapons_identified.desc=Identify all weapons in your journal badges$badge.boss_slain_3=3rd boss slain
badges$badge.all_armor_identified.title=Armor Researcher badges$badge.boss_slain_4=4th boss slain
badges$badge.all_armor_identified.desc=Identify all armors in your journal badges$badge.boss_slain_1_all_classes=1st boss slain by Warrior, Mage, Rogue & Huntress
badges$badge.all_wands_identified.title=Wand Researcher badges$badge.boss_slain_3_all_subclasses=3rd boss slain by Gladiator, Berserker, Warlock, Battlemage, Freerunner, Assassin, Sniper & Warden
badges$badge.all_wands_identified.desc=Identify all wands in your journal badges$badge.strength_attained_1=13 points of Strength attained
badges$badge.all_rings_identified.title=Ring Researcher badges$badge.strength_attained_2=15 points of Strength attained
badges$badge.all_rings_identified.desc=Identify all rings in your journal badges$badge.strength_attained_3=17 points of Strength attained
badges$badge.all_artifacts_identified.title=Artifact Researcher badges$badge.strength_attained_4=19 points of Strength attained
badges$badge.all_artifacts_identified.desc=Identify all artifacts in your journal badges$badge.food_eaten_1=10 pieces of food eaten
badges$badge.all_potions_identified.title=Potion Researcher badges$badge.food_eaten_2=20 pieces of food eaten
badges$badge.all_potions_identified.desc=Identify all potions in your journal badges$badge.food_eaten_3=30 pieces of food eaten
badges$badge.all_scrolls_identified.title=Scroll Researcher badges$badge.food_eaten_4=40 pieces of food eaten
badges$badge.all_scrolls_identified.desc=Identify all scrolls in your journal badges$badge.item_level_1=Item of level 3 acquired
badges$badge.all_items_identified.title=Master Researcher badges$badge.item_level_2=Item of level 6 acquired
badges$badge.all_items_identified.desc=Identify all items in your journal badges$badge.item_level_3=Item of level 9 acquired
badges$badge.all_bags_bought.title=Pack Mule badges$badge.item_level_4=Item of level 12 acquired
badges$badge.all_bags_bought.desc=Fully expand your inventory badges$badge.victory=Amulet of Yendor obtained
badges$badge.death_from_fire.title=Burned badges$badge.victory_all_classes=Amulet of Yendor obtained by Warrior, Mage, Rogue & Huntress
badges$badge.death_from_fire.desc=Die from fire badges$badge.mastery_combo=10-hit combo
badges$badge.death_from_poison.title=Poisoned badges$badge.potions_cooked_1=3 potions cooked
badges$badge.death_from_poison.desc=Die from poison badges$badge.potions_cooked_2=6 potions cooked
badges$badge.death_from_gas.title=Suffocated badges$badge.potions_cooked_3=9 potions cooked
badges$badge.death_from_gas.desc=Die from toxic gas badges$badge.potions_cooked_4=12 potions cooked
badges$badge.death_from_hunger.title=Starved badges$badge.no_monsters_slain=Level completed without killing any monsters
badges$badge.death_from_hunger.desc=Die from hunger badges$badge.grim_weapon=Monster killed by a Grim weapon
badges$badge.death_from_glyph.title=Deferred Death badges$badge.piranhas=6 piranhas killed
badges$badge.death_from_glyph.desc=Die from deferred damage badges$badge.games_played_1=10 games played
badges$badge.death_from_falling.title=Pancaked badges$badge.games_played_2=50 games played
badges$badge.death_from_falling.desc=Die from falling down badges$badge.games_played_3=250 games played
badges$badge.yasd.title=Yet Another Sad Death badges$badge.games_played_4=1000 games played
badges$badge.yasd.desc=Die to fire, poison, toxic gas, hunger, deferred damage, and falling badges$badge.happy_end=Happy end
badges$badge.boss_slain_1.title=Slime janitor badges$badge.champion_1=Won with a Challenge
badges$badge.boss_slain_1.desc=Defeat the boss at the end of the sewers badges$badge.champion_2=Won with 3 Challenges
badges$badge.boss_slain_2.title=Prison Warden badges$badge.champion_3=Won with 6 Challenges
badges$badge.boss_slain_2.desc=Defeat the boss at the end of the prison badges$badge.unlock_mage=Unlocked the Mage
badges$badge.boss_slain_3.title=Metal Scrapper badges$badge.unlock_rogue=Unlocked the Rogue
badges$badge.boss_slain_3.desc=Defeat the boss at the end of the caves badges$badge.unlock_huntress=Unlocked the Huntress
badges$badge.boss_slain_4.title=King Conqueror
badges$badge.boss_slain_4.desc=Defeat the boss at the end of the city
badges$badge.boss_slain_1_all_classes.title=Jack of Many Trades
badges$badge.boss_slain_1_all_classes.desc=Defeat the first boss with the Warrior, Mage, Rogue & Huntress
badges$badge.boss_slain_3_all_subclasses.title=Jack of All Trades
badges$badge.boss_slain_3_all_subclasses.desc=Defeat the third boss with the Gladiator, Berserker, Warlock, Battlemage, Freerunner, Assassin, Sniper & Warden
badges$badge.strength_attained_1.title=Novice Bodybuilder
badges$badge.strength_attained_1.desc=Reach 12 points of strength
badges$badge.strength_attained_2.title=Adept Bodybuilder
badges$badge.strength_attained_2.desc=Reach 14 points of strength
badges$badge.strength_attained_3.title=Expert Bodybuilder
badges$badge.strength_attained_3.desc=Reach 16 points of strength
badges$badge.strength_attained_4.title=Master Bodybuilder
badges$badge.strength_attained_4.desc=Reach 18 points of strength
badges$badge.strength_attained_5.title=Grandmaster Bodybuilder
badges$badge.strength_attained_5.desc=Reach 20 points of strength
badges$badge.food_eaten_1.title=Novice Gourmet
badges$badge.food_eaten_1.desc=Eat food 10 times in one game
badges$badge.food_eaten_2.title=Adept Gourmet
badges$badge.food_eaten_2.desc=Eat food 20 times in one game
badges$badge.food_eaten_3.title=Expert Gourmet
badges$badge.food_eaten_3.desc=Eat food 30 times in one game
badges$badge.food_eaten_4.title=Master Gourmet
badges$badge.food_eaten_4.desc=Eat food 40 times in one game
badges$badge.food_eaten_5.title=Grandmaster Gourmet
badges$badge.food_eaten_5.desc=Eat food 50 times in one game
badges$badge.item_level_1.title=Novice Enchanter
badges$badge.item_level_1.desc=Acquire an item of level 3 or higher
badges$badge.item_level_2.title=Adept Enchanter
badges$badge.item_level_2.desc=Acquire an item of level 6 or higher
badges$badge.item_level_3.title=Expert Enchanter
badges$badge.item_level_3.desc=Acquire an item of level 9 or higher
badges$badge.item_level_4.title=Master Enchanter
badges$badge.item_level_4.desc=Acquire an item of level 12 or higher
badges$badge.item_level_5.title=Grandmaster Enchanter
badges$badge.item_level_5.desc=Acquire an item of level 15 or higher
badges$badge.victory.title=Victory!
badges$badge.victory.desc=Obtain the Amulet of Yendor
badges$badge.victory_all_classes.title=Master of Many Trades
badges$badge.victory_all_classes.desc=Obtain the Amulet of Yendor with the Warrior, Mage, Rogue & Huntress
badges$badge.mastery_combo.title=Gladiator's Fury
badges$badge.mastery_combo.desc=Reach a 10-hit combo
badges$badge.items_crafted_1.title=Novice Alchemist
badges$badge.items_crafted_1.desc=Craft 5 items via alchemy in one game
badges$badge.items_crafted_2.title=Adept Alchemist
badges$badge.items_crafted_2.desc=Craft 10 items via alchemy in one game
badges$badge.items_crafted_3.title=Expert Alchemist
badges$badge.items_crafted_3.desc=Craft 15 items via alchemy in one game
badges$badge.items_crafted_4.title=Master Alchemist
badges$badge.items_crafted_4.desc=Craft 20 items via alchemy in one game
badges$badge.items_crafted_5.title=Grandmaster Alchemist
badges$badge.items_crafted_5.desc=Craft 25 items via alchemy in one game
badges$badge.no_monsters_slain.title=Pacifist
badges$badge.no_monsters_slain.desc=Complete a Floor without defeating any enemies
badges$badge.grim_weapon.title=Grim Reaper
badges$badge.grim_weapon.desc=Defeat an enemy with a Grim weapon
badges$badge.piranhas.title=Unconventional Angler
badges$badge.piranhas.desc=Kill 6 piranhas in one game
badges$badge.games_played_1.title=Novice Dungeoneer
badges$badge.games_played_1.desc=Play 10 games or win 1 game
badges$badge.games_played_2.title=Adept Dungeoneer
badges$badge.games_played_2.desc=Play 50 games or win 5 games
badges$badge.games_played_3.title=Expert Dungeoneer
badges$badge.games_played_3.desc=Play 100 games or win 10 games
badges$badge.games_played_4.title=Master Dungeoneer
badges$badge.games_played_4.desc=Play 250 games or win 25 games
badges$badge.games_played_5.title=Grandmaster Dungeoneer
badges$badge.games_played_5.desc=Play 1000 games or win 100 games
badges$badge.happy_end.title=Happy Ending
badges$badge.happy_end.desc=Take the Amulet of Yendor to the surface
badges$badge.champion_1.title=Bronze Champion
badges$badge.champion_1.desc=Beat the game with 1 or more challenges enabled
badges$badge.champion_2.title=Silver Champion
badges$badge.champion_2.desc=Beat the game with 3 or more challenges enabled
badges$badge.champion_3.title=Golden Champion
badges$badge.champion_3.desc=Beat the game with 6 or more challenges enabled
badges$badge.unlock_mage.title=Mage Unlocked!
badges$badge.unlock_mage.desc=Unlock the Mage by using a scroll of upgrade
badges$badge.unlock_rogue.title=Rogue Unlocked!
badges$badge.unlock_rogue.desc=Unlock the Rogue by performing 10 surprise attacks in one game
badges$badge.unlock_huntress.title=Huntress Unlocked!
badges$badge.unlock_huntress.desc=Unlock the Huntress by attacking 10 enemies with thrown weapons in one game
challenges.no_food=On diet challenges.no_food=On diet
challenges.no_food_desc=Food's already scarce, but you have to watch your portions as well!\n\n- Food and the horn of plenty are one third as effective at satisfying hunger\n- Other sources of satiety are unaffected challenges.no_food_desc=Food's already scarce, but you have to watch your portions as well!\n\n- Food and the horn of plenty are one third as effective at satisfying hunger\n- Other sources of satiety are unaffected
@ -164,19 +82,46 @@ challenges.swarm_intelligence_desc=Watch out, the dungeon monsters are getting s
challenges.darkness=Into darkness challenges.darkness=Into darkness
challenges.darkness_desc=It is a dungeon after all!\n\n- Regular visible distance dramatically reduced\n- A torch appears on each floor\n- Light buff lasts for less time challenges.darkness_desc=It is a dungeon after all!\n\n- Regular visible distance dramatically reduced\n- A torch appears on each floor\n- Light buff lasts for less time
challenges.no_scrolls=Forbidden runes challenges.no_scrolls=Forbidden runes
challenges.no_scrolls_desc=A certain rune is harder to find. Unfortunately, it's always the most useful one.\n\n- Half of the dungeon's upgrade scrolls are removed challenges.no_scrolls_desc=A certain rune is harder to find. Unfortunately, it's always the most useful one.\n\n- Half of the dungeon's upgrades scrolls are removed
challenges.champion_enemies=Hostile champions challenges.champion_enemies=_Hostile champions_
challenges.champion_enemies_desc=You're not the only one who can level up!\n\n- Regular enemies have a 1/8 chance to spawn with a special champion buff.\n- Champions wake up if they spawn asleep\n- The hero knows when a champion spawns\n- Champions are immune to corruption\n\nThere are six types of champion enemy:\n_Blazing (orange):_ +25% melee damage, ignites on hit, immune to fire, spreads flames on death\n_Projecting (purple):_ +25% melee damage, can attack anything they see\n_Antimagic (green):_ -25% damage taken, immune to magical effects\n_Giant (blue):_ -75% damage taken, +1 melee range, cannot move into tunnels\n_Blessed (yellow):_ +200% accuracy, +200% evasion\n_Growing (red):_ +20% accuracy, evasion, damage, and effective HP. Increases by 1% every 3 turns. challenges.champion_enemies_desc=You're not the only one who can level up!\n\n- Regular enemies have a 1/8 chance to spawn with a special champion buff.\n- Champions wake up if they spawn asleep\n- The hero knows when a champion spawns\n- Champions are immune to corruption\n\nThere are seven types of champion enemy:\n_Blazing (orange):_ +25% melee damage, ignites on hit, immune to fire, spreads flames on death\n_Projecting (purple):_ +25% melee damage, can attack anything they see\n_Antimagic (green):_ -25% damage taken, immune to magical effects\n_Giant (blue):_ -75% damage taken, +1 melee range, cannot move into tunnels\n_Blessed (yellow):_ +200% accuracy, +200% evasion\n_Growing (red):_ +20% accuracy, evasion, damage, and effective HP. Increases by 1% every 3 turns.\n_Ghost Ling (Sky Blue): _ Melee damage +65% with Phosphorus Fire effect, immune to fire and Phosphorus Fire, ignites the surrounding area upon death.
challenges.stronger_bosses=Badder bosses
challenges.stronger_bosses_desc=Bosses are much tougher with this challenge!\n\n_Goo:_ +20% health\n_-_ Healing in water ramps up, to 3/turn\n_-_ Pumps up in 1 turn instead of 2\n_Tengu:_ +25% health\n_-_ Phase 1: traps are much deadlier\n_-_ Phase 2: abilities are more frequent\n_DM-300:_ +33% health\n_-_ Pylons are tougher and 3 activate\n_-_ Abilities are more powerful and frequent\n_-_ DM-300 is faster when supercharged\n_-_ Exposed wires are twice as common\n_Dwarf King:_ +50% health\n_-_ Minions are stronger in all phases\n_-_ Phase 1: faster abilities and summons\n_-_ Phase 2: 2 more minions per round\n_-_ Phase 3: 2x health, faster summons\n_Yog-Dzewa:_\n_-_ Two fists are summoned at a time!\n_-_ +60% laser damage\n_-_ Stronger minions
rankings$record.something=Killed by Something rankings$record.something=Killed by Something
challenges.light&black =_Light & Shadow_ badges$badge.kill_red=Defeat the RedNer
challenges.light&black_desc=\n_ Stepping into the dungeon again and again will only make yourself more eroded by vicious magic. _This time, you don't know when you will come to this dungeon again, but the evil and eerie atmosphere blows your face. A mysterious man has given you a lantern. You don't know when you'll be engulfed by the magic here. \n\nOpen this challenge, you will get a special Sanity Buff at the beginning, and a new item _Lantern_ will be added. The spiritual power of the lantern needs to be obtained by the player defeating the enemy. \n\n_Only in the light can you live. Otherwise, you will be devoured by darkness, lose your mind a little bit, and become a monster. _\n\nOnce your sanity is too low, special monsters and debuffs will appear. Sanity of 0 will immediately die and become a monster. If there is a cross, it will be resurrected and restore 100 sanity, but all your last things will be on the monster whose sanity became 0 last time. \n\n_It is an echo of your past life. Defeat it, take back its power, and make yourself whole again. _\n\n_Completing the Light and Shadow Challenge will add a mysterious character to level 0...and unlock new items and weapons!_\n\nOpening this challenge will give you 240 Sanity at the start, under _without light_ and _Melee combat of some monsters_ will reduce your Sanity. See the table below for details:\n\n- Brown Rat: 20% chance (-1 Sanity/round)\n- Black Wraith: 10% chance (-3 Sanity/round)\n- Torch Hunter: 40% Chance (-1 Sanity/per turn)\n- Dwarf Warlock: 15% chance (-5 Sanity/per turn)\n- Ice Rat: 25% chance (-2 Sanity/per turn)\n-DM200:10 % chance (-7 sanity/per turn)\n-dwarven monk: 30% chance (-3 sanity/per turn)\n\n_environmental sanity deduction_:\n-without light buff\n :\n\n_Sanity recovery strategy_:\n-_1_: When there is light, use: [(+1 Sanity + Floor Depth/10)/each turn] (Example: When there is no light on the 20th floor, 1 +20/10=3 (+3 wisdom/round)\n-_2_. Merchants sell potions of faith, drink it to add 40 rounds of sanity\n-_3_. Defeating the enemy can get the enemy's soul, and if the soul reaches a certain amount, you can make a lantern Can light up the road again. Soul can also slowly restore sanity. (50 soul = 1 sanity recovery) badges$badge.kill_rotheart=Eradicate Rotberry Heart
badges$badge.kill_coldele=Cold of the New Fire Elemental
badges$badge.get_sc=Purge the Root of Wrath\nGive the dust to the old sticksmith
badges$badge.godd_make=The old man and the sea\nComplete all the tasks of the old stickmaker in total
badges$badge.death_good=Death Good - Exhausted Free Resurrects in Fragmentation
badges$badge.halofire_died=Died in Phosphorus Fire
badges$badge.champion_4=Open 9 challenges to clear\n\nYour prestige is very noble!
badges$badge.champion_5=All challenges? !\n\nCan you save her?
badges$badge.rlpt=_Rand Broken Conqueror_\n\nStart the challenge and defeat the Yog God
badges$badge.sbdjs=Storm Rain\n\nYou passed it successfully to leave, but you don't know, the storm is coming outside\n\nThe crystal heart is still shining in your hand, maybe, this is not over yet !
badges$badge.kill_mg=Defeat the Ice Witch
badges$badge.kill_slmking=Kill prince slime
badges$badge.big_x=Giant's Death\n\nThe Mutant Behemoth is on! You have overcome many difficulties! ! !
badges$badge.kill_dm720= Kill DM720
dlc.bossrush=Boss Rush challenges.aquaphobia=_Sludge water_
dlc.bossrush_desc=The bosses who have been defeated by you many times are familiar with the hero's skills and have mastered certain countermeasures. They are entrenched in dungeons, waiting for their revenge. \nYou don't know what kind of crisis will be dealt with this time. \nBut you feel that this adventure is definitely different from other times. \nThe Fragmentation and Reduction Diet will not be able to be generated and used when this challenge is opened. challenges.aquaphobia_desc=The water has been polluted by the city above__, now you are _blinded_ and _crippled_ when you touch it. \nAt the same time, you can start to get _10 quicklime ideal reagents_! _
actors.char.aquaphobia=You are hurt by water!
challenges.pro=_Developer mode_
challenges.pro_desc=Annotated version? \nStarting with _almost all items_! At the same time, you will not be able to pass the level!
challenges.traditional = Vanilla Mode - T1
challenges.hard = Valhalla Mode - T2
challenges.warning = Danger Mode - T3
challenges.test = Debug - Mod
challenges.custom = Custom - Mod
challenges.dhxd =_Candle Fire Road_
challenges.dhxd_desc= Lights guide the way forward. Lanterns lead the way. Lights lead the way! [This is a special mechanism for you must open more than 3 Challenges that than work, but you can also open it directly!]
challenges.rlpt = Fragmented
challenges.rlpt_desc=The magic of the dungeon is eroding this place, and reality is nothing but a nightmare. \n\nAfter defeating the boss on the fifth floor, all floors and monsters will be random! ! ! \n\nSpecial Instructions: The Rogue opening cloak is replaced with 5 invisibility potions. \n\nEnable this challenge, you can get 3 free resurrection chances.
challenges.sbsg = Mutant Behemoth
challenges.sbsg_desc=Humans recall the fear of being dominated by giants\n- All creatures mutate hormones to become larger, but some become smaller due to some other adverse effect. \n- The size of the creature determines their movement speed, defense, evasion and melee damage. \n- Your extreme hunger will also become more deadly.
challenges.stronger_bosses=Badder bosses
challenges.stronger_bosses_desc=Bosses are much tougher with this challenge!\n\n_Goo:_ +20% health\n_-_ Healing in water ramps up, to 3/turn\n_-_ Pumps up in 1 turn instead of 2\n_Tengu:_ +25% health\n_-_ Phase 1: traps are much deadlier\n_-_ Phase 2: abilities are more frequent\n_DM-300:_ +33% health\n_-_ Pylons are tougher and 3 activate\n_-_ Abilities are more powerful and frequent\n_-_ DM-300 is faster when supercharged\n_-_ Exposed wires are twice as common\n_Dwarf King:_ +50% health\n_-_ Minions are stronger in all phases\n_-_ Phase 1: faster abilities and summons\n_-_ Phase 2: 2 more minions per round\n_-_ Phase 3: 2x health, faster summons\n_Yog-Dzewa:_\n_-_ Two fists are summoned at a time!\n_-_ +60% laser damage\n_-_ Stronger minions
dlc.back_go=Back Go challenges.exsg = Potion Illness
dlc.back_go_desc=A reverse adventure, can you get out of here? The 5 fixed bosses appear on the final floor. challenges.exsg_desc=Potion Illness Rules?\n-PotionOfStrength Strength:-1\n-PotionOfMindVision NoEye:5 Round\n-Stealth potion roars immediately after drinking\n-Bleed for 6 rounds immediately after drinking the experience medicine\n-After drinking the super fast potion, you will be cripple for 8 rounds immediately\n==========================\nGet 8 rounds of extreme speed immediately after eating small rations\n Upgrade immediately after eating stew \n Get an arcane shield after eating frozen raw meat\n Get 8 rounds of extreme speed and+1 strength immediately after eating whole meat pancake \n Don't know why, most good potions are poisonous! \n Some potions are completely in DeBuff, but the food will be very useful!

View File

@ -1,5 +1,12 @@
#scenes.aboutscene.= #scenes.aboutscene.=
windows.wndsettings$extendtab.splash_screen=Splash Scenes
windows.wndsettings$extendtab.disable=Disable
windows.wndsettings$extendtab.full=Open
windows.wndsettings$helptab.title=Help Setting
windows.wndsettings$helptab.helpsettings=Enable Item Generation Querier
scenes.alchemyscene.title=Alchemy scenes.alchemyscene.title=Alchemy
scenes.alchemyscene.text=Combine ingredients to create something new! scenes.alchemyscene.text=Combine ingredients to create something new!
scenes.alchemyscene.select=Select an item scenes.alchemyscene.select=Select an item
@ -63,7 +70,7 @@ scenes.introscene.text=Many heroes have ventured into the dungeon before you fro
scenes.newsscene.title=Game News scenes.newsscene.title=Game News
scenes.newsscene.read_more=Read More scenes.newsscene.read_more=Read More
scenes.newsscene$newsinfo.english_warn=News posts are written by the developer and are only available in English. scenes.newsscene$newsinfo.english_warn=News posts are written by the developer and are only available in Chinese.
scenes.newsscene$newsinfo.metered_network=Couldn't check for news posts, as you're connected to a metered network, such as mobile data. scenes.newsscene$newsinfo.metered_network=Couldn't check for news posts, as you're connected to a metered network, such as mobile data.
scenes.newsscene$newsinfo.enable_data=Check on Mobile Data scenes.newsscene$newsinfo.enable_data=Check on Mobile Data
scenes.newsscene$newsinfo.no_internet=Couldn't check for news posts, make sure you're connected to the internet. scenes.newsscene$newsinfo.no_internet=Couldn't check for news posts, make sure you're connected to the internet.
@ -96,7 +103,7 @@ scenes.titlescene.update=Update
scenes.titlescene.install=Install scenes.titlescene.install=Install
scenes.titlescene.settings=Settings scenes.titlescene.settings=Settings
scenes.titlescene.about=About scenes.titlescene.about=About
scenes.titlescene.support=Support the Game scenes.titlescene.support=Thanks
scenes.titlescene$changesbutton.title=An Update is Available! scenes.titlescene$changesbutton.title=An Update is Available!
scenes.titlescene$changesbutton.versioned_title=Update Available: %s scenes.titlescene$changesbutton.versioned_title=Update Available: %s
scenes.titlescene$changesbutton.desc=Shattered Pixel Dungeon is regularly updated with overhauls to existing game content, or entirely new content!\n\nGame balance is also frequently improved in game updates, so that specific items/heroes/enemies aren't too strong or too weak.\n\nUpdates also include fixes for bugs and other various stability improvements. scenes.titlescene$changesbutton.desc=Shattered Pixel Dungeon is regularly updated with overhauls to existing game content, or entirely new content!\n\nGame balance is also frequently improved in game updates, so that specific items/heroes/enemies aren't too strong or too weak.\n\nUpdates also include fixes for bugs and other various stability improvements.

View File

@ -476,4 +476,6 @@ ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x33=-P2.6\n1.修复了感知符石鉴
ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x34=-P2.7\n1.修复了火焰特效遗留问题\n2.修复了炖肉不回复饱食度的问题\n3.修复部分逻辑错误 ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x34=-P2.7\n1.修复了火焰特效遗留问题\n2.修复了炖肉不回复饱食度的问题\n3.修复部分逻辑错误
ui.changelist.mlpd.vm0_6_7_x_changes.bug_06x35=-P2.875\n1.修复了回溯之书的快捷使用错误\n2.修复了自定义名称的缓存问题\n3.删除不必要的赘余代码\n4.元素风暴现在可以工作但特效有一些Bug,因此视觉效果不会出现\n5.删除WIP的东西\n6.英雄选择界面优化
//ui.changelist.mlpd.vm0_5_x_changes.xxx// //ui.changelist.mlpd.vm0_5_x_changes.xxx//

View File

@ -49,7 +49,7 @@ windows.wndstartgame.hard=难度选择
windows.wndstartgame.news=章节选择 windows.wndstartgame.news=章节选择
windows.wndstartgame.seedtitle=命名终端 windows.wndstartgame.seedtitle=命名终端
windows.wndstartgame.custom_name=自定义名字 windows.wndstartgame.custom_name=自定义名字
windows.wndstartgame.custom_name_desc=输入你需要的自定义名字,最多可以输入20字符\n\n自定义名字规则激活后图标会显示为卷轴标志,此时进入游戏后方可生效。\n\n自定义名字将完全独立\n\n[温馨提示:预览仅显示最后一次自定义名字]\n\n自定义名称预览_ windows.wndstartgame.custom_name_desc=输入你需要的自定义名字,最多可以输入20字符\n\n自定义名字规则激活后图标会显示为卷轴标志,此时进入游戏后方可生效。\n\n自定义名字将完全独立\n\n[温馨提示:预览仅显示最后一次自定义名字]\n\n最后一次编辑的自定义名称预览_
windows.wndstartgame.custom_name_set=接受 windows.wndstartgame.custom_name_set=接受
windows.wndstartgame.custom_name_clear=清空 windows.wndstartgame.custom_name_clear=清空

View File

@ -1,4 +1,39 @@
#MLPD
windows.wndsettings$extendtab.quickslots=Quickslots Setting
windows.wndsettings$extendtab.wxts=Tips: Adjust the shortcut bar after entering the game
windows.wndsettings$extendtab.title=Extend Setting
windows.wndsettings$extendtab.dark_ui=Classic Interface
windows.wndsettings$extendtab.pc_ui=Experimental Function (Application PC interface)
windows.pagewindows$pagewindowstab.title=Left Quickslot Setting
windows.pagewindows$pagewindowstab.page_ui=Display Quickslot
windows.bosssettingwindows.title = Extends Boss
windows.bosssettingwindows.boss_1 = Kill Slime King
windows.bosssettingwindows.boss_2 = Kill Dimand Mimic King
windows.bosssettingwindows.boss_3 = Kill IceSnow MagicGirl
windows.bosssettingwindows.boss_4 = Kill Dwarf Master
windows.bosssettingwindows.boss_5 = Kill Yog-Zot
windows.bosssettingwindows.dm300=DM-300
windows.bosssettingwindows.ice=IceGirl
windows.textchallenges.seed_custom_title = Seed
windows.textchallenges.hint = No Input is Random seed
windows.textchallenges.delete_seed_input = Clear
windows.wndstartgame.title=Choose Your Hero
windows.wndstartgame.start=Start Game
windows.wndinfomob.dsinfo = dodge:
windows.wndinfomob.maxinfo = lootcelimit:
windows.wndinfomob.getexp = lastdmg:
windows.wndinfomob.getspeed = speed: windows.wndinfomob.getspeed = speed:
windows.wndinfomob.itm = lootce:
windows.wndinfomob.shield= drRoll:
windows.wndreddragon.gnollshied_title=Defeat the Elder Gnoll Refining Medicine windows.wndreddragon.gnollshied_title=Defeat the Elder Gnoll Refining Medicine
windows.wndreddragon.skullgnoll_title=Defeat the Elder Jackal windows.wndreddragon.skullgnoll_title=Defeat the Elder Jackal

Binary file not shown.

Before

Width:  |  Height:  |  Size: 508 KiB

View File

@ -301,7 +301,6 @@ public class Assets {
public static final String HUNTRESS = "sprites/huntress.png"; public static final String HUNTRESS = "sprites/huntress.png";
public static final String COMINGSOON = "sprites/slimekingch.png"; public static final String COMINGSOON = "sprites/slimekingch.png";
public static final String AVATARS = "sprites/avatars.png"; public static final String AVATARS = "sprites/avatars.png";
public static final String PET = "sprites/pet.png";
public static final String AMULET = "sprites/amulet.png"; public static final String AMULET = "sprites/amulet.png";
public static final String JAMULET = "sprites/jamulet.png"; public static final String JAMULET = "sprites/jamulet.png";
public static final String COLDRAT = "sprites/coldrat.png"; public static final String COLDRAT = "sprites/coldrat.png";

View File

@ -57,9 +57,9 @@ public class Challenges {
public static final int PRO = 16384; public static final int PRO = 16384;
public static final int BUG = 32768; // public static final int BUG = 32768;
public static final int MAX_VALUE = 65536; public static final int MAX_VALUE = 32768;
public static final String[] NAME_IDS = { public static final String[] NAME_IDS = {
"no_food", "no_food",
@ -77,12 +77,11 @@ public class Challenges {
"stronger_bosses", "stronger_bosses",
"dhxd", "dhxd",
"pro", "pro",
"bug",
}; };
public static final int[] MASKS = { public static final int[] MASKS = {
NO_FOOD, NO_ARMOR, NO_HEALING, NO_HERBALISM, SWARM_INTELLIGENCE, DARKNESS, NO_SCROLLS NO_FOOD, NO_ARMOR, NO_HEALING, NO_HERBALISM, SWARM_INTELLIGENCE, DARKNESS, NO_SCROLLS
, AQUAPHOBIA, CHAMPION_ENEMIES,RLPT,SBSG,EXSG,STRONGER_BOSSES,DHXD,PRO,BUG, , AQUAPHOBIA, CHAMPION_ENEMIES,RLPT,SBSG,EXSG,STRONGER_BOSSES,DHXD,PRO,
}; };
public String name; public String name;

View File

@ -22,12 +22,10 @@
package com.shatteredpixel.shatteredpixeldungeon.actors.hero; package com.shatteredpixel.shatteredpixeldungeon.actors.hero;
import static com.shatteredpixel.shatteredpixeldungeon.Challenges.AQUAPHOBIA; import static com.shatteredpixel.shatteredpixeldungeon.Challenges.AQUAPHOBIA;
import static com.shatteredpixel.shatteredpixeldungeon.Challenges.BUG;
import static com.shatteredpixel.shatteredpixeldungeon.Challenges.DHXD; import static com.shatteredpixel.shatteredpixeldungeon.Challenges.DHXD;
import static com.shatteredpixel.shatteredpixeldungeon.Challenges.PRO; import static com.shatteredpixel.shatteredpixeldungeon.Challenges.PRO;
import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero; import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero;
import static com.shatteredpixel.shatteredpixeldungeon.SPDSettings.HelpSettings; import static com.shatteredpixel.shatteredpixeldungeon.SPDSettings.HelpSettings;
import static com.shatteredpixel.shatteredpixeldungeon.Statistics.bugsyncfixed;
import static com.shatteredpixel.shatteredpixeldungeon.Statistics.lanterfireactive; import static com.shatteredpixel.shatteredpixeldungeon.Statistics.lanterfireactive;
import static com.shatteredpixel.shatteredpixeldungeon.levels.Level.set; import static com.shatteredpixel.shatteredpixeldungeon.levels.Level.set;
@ -137,7 +135,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.lightblack.OilLantern;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion; import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfExperience; import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfExperience;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHealing; import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHealing;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLightningShiledX;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfMight; import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfMight;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.PotionOfDivineInspiration; import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.PotionOfDivineInspiration;
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfAccuracy; import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfAccuracy;
@ -930,11 +927,11 @@ public class Hero extends Char {
//TODO 获取三个挑战的枚举后则超过或等于3挑战以激活挑战在英雄移动的时候 //TODO 获取三个挑战的枚举后则超过或等于3挑战以激活挑战在英雄移动的时候
// //
//todo 移动时修复了BUG // //todo 移动时修复了BUG
if(Dungeon.isChallenged(BUG) && !bugsyncfixed){ // if(Dungeon.isChallenged(BUG) && !bugsyncfixed){
new PotionOfLightningShiledX().quantity(3).identify().collect(); // new PotionOfLightningShiledX().quantity(3).identify().collect();
bugsyncfixed = true; // bugsyncfixed = true;
} // }
if(chCount >= 3 && !lanterfireactive && !Dungeon.isChallenged(PRO) || Dungeon.isChallenged(DHXD) && !lanterfireactive){ if(chCount >= 3 && !lanterfireactive && !Dungeon.isChallenged(PRO) || Dungeon.isChallenged(DHXD) && !lanterfireactive){
//TODO 灯火前行 //TODO 灯火前行

View File

@ -21,8 +21,6 @@
package com.shatteredpixel.shatteredpixeldungeon.actors.hero; package com.shatteredpixel.shatteredpixeldungeon.actors.hero;
import static com.shatteredpixel.shatteredpixeldungeon.Challenges.BUG;
import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Badges; import com.shatteredpixel.shatteredpixeldungeon.Badges;
import com.shatteredpixel.shatteredpixeldungeon.Challenges; import com.shatteredpixel.shatteredpixeldungeon.Challenges;
@ -50,12 +48,13 @@ import com.shatteredpixel.shatteredpixeldungeon.custom.testmode.MobPlacer;
import com.shatteredpixel.shatteredpixeldungeon.items.Ankh; import com.shatteredpixel.shatteredpixeldungeon.items.Ankh;
import com.shatteredpixel.shatteredpixeldungeon.items.BrokenSeal; import com.shatteredpixel.shatteredpixeldungeon.items.BrokenSeal;
import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.KingsCrown;
import com.shatteredpixel.shatteredpixeldungeon.items.TengusMask;
import com.shatteredpixel.shatteredpixeldungeon.items.Waterskin; import com.shatteredpixel.shatteredpixeldungeon.items.Waterskin;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClothArmor; import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClothArmor;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.ChaliceOfBlood; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.ChaliceOfBlood;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.CloakOfShadows; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.CloakOfShadows;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.GoldIron;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.MasterThievesArmband; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.MasterThievesArmband;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.TalismanOfForesight; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.TalismanOfForesight;
import com.shatteredpixel.shatteredpixeldungeon.items.bags.BookBag; import com.shatteredpixel.shatteredpixeldungeon.items.bags.BookBag;
@ -120,7 +119,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.IceFishSword;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.LockSword; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.LockSword;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.RedBloodMoon; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.RedBloodMoon;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Sai;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.SkyShield; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.SkyShield;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WarHammer; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WarHammer;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WornShortsword; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WornShortsword;
@ -138,9 +136,9 @@ public enum HeroClass {
WARRIOR( HeroSubClass.BERSERKER, HeroSubClass.GLADIATOR ), WARRIOR( HeroSubClass.BERSERKER, HeroSubClass.GLADIATOR ),
MAGE( HeroSubClass.BATTLEMAGE, HeroSubClass.WARLOCK ), MAGE( HeroSubClass.BATTLEMAGE, HeroSubClass.WARLOCK ),
ROGUE( HeroSubClass.ASSASSIN, HeroSubClass.FREERUNNER ), ROGUE( HeroSubClass.ASSASSIN, HeroSubClass.FREERUNNER ),
HUNTRESS( HeroSubClass.SNIPER, HeroSubClass.WARDEN ), HUNTRESS( HeroSubClass.SNIPER, HeroSubClass.WARDEN );
COMINGSOON( HeroSubClass.SNIPER, HeroSubClass.WARDEN ); // COMINGSOON( HeroSubClass.SNIPER, HeroSubClass.WARDEN );
private HeroSubClass[] subClasses; private HeroSubClass[] subClasses;
@ -183,8 +181,8 @@ public enum HeroClass {
// Buff.affect(hero, ChampionHero.Giant.class, ChampionHero.DURATION); // Buff.affect(hero, ChampionHero.Giant.class, ChampionHero.DURATION);
// Buff.affect(hero, ChampionHero.Growing.class, ChampionHero.DURATION); // Buff.affect(hero, ChampionHero.Growing.class, ChampionHero.DURATION);
new Gauntlet().quantity(1).identify().collect(); new Gauntlet().quantity(1).identify().collect();
new Sai().quantity(1).identify().collect(); new TengusMask().quantity(1).identify().collect();
new GoldIron().quantity(1).identify().collect(); new KingsCrown().quantity(1).identify().collect();
new ScrollOfIdentify().quantity(45).identify().collect(); new ScrollOfIdentify().quantity(45).identify().collect();
new ScrollOfTransmutation().quantity(45).identify().collect(); new ScrollOfTransmutation().quantity(45).identify().collect();
new BeaconOfReturning().quantity(11).identify().collect(); new BeaconOfReturning().quantity(11).identify().collect();
@ -265,9 +263,9 @@ public enum HeroClass {
i = new Food(); i = new Food();
//todo 不存在BUG挑战才给予 //todo 不存在BUG挑战才给予
if(!Dungeon.isChallenged(BUG)) { // if(!Dungeon.isChallenged(BUG)) {
new PotionOfLightningShiledX().quantity(3).identify().collect(); // new PotionOfLightningShiledX().quantity(3).identify().collect();
} // }
new HerbBag().quantity(1).identify().collect(); new HerbBag().quantity(1).identify().collect();
new PotionOfHealing().quantity(3).identify().collect(); new PotionOfHealing().quantity(3).identify().collect();
@ -433,8 +431,8 @@ public enum HeroClass {
return Assets.Sprites.ROGUE; return Assets.Sprites.ROGUE;
case HUNTRESS: case HUNTRESS:
return Assets.Sprites.HUNTRESS; return Assets.Sprites.HUNTRESS;
case COMINGSOON: // case COMINGSOON:
return Assets.Sprites.COMINGSOON; // return Assets.Sprites.COMINGSOON;
} }
} }
@ -449,8 +447,8 @@ public enum HeroClass {
return Assets.Sprites.ROGUE; return Assets.Sprites.ROGUE;
case HUNTRESS: case HUNTRESS:
return Assets.Sprites.HUNTRESS; return Assets.Sprites.HUNTRESS;
case COMINGSOON: // case COMINGSOON:
return Assets.Sprites.COMINGSOON; // return Assets.Sprites.COMINGSOON;
} }
} }
@ -514,8 +512,8 @@ public enum HeroClass {
return true; return true;
case HUNTRESS: case HUNTRESS:
return true; return true;
case COMINGSOON: // case COMINGSOON:
return false; // return false;
//敬请期待 //敬请期待
} }
} }
@ -530,8 +528,8 @@ public enum HeroClass {
return Messages.get(HeroClass.class, "rogue_unlock"); return Messages.get(HeroClass.class, "rogue_unlock");
case HUNTRESS: case HUNTRESS:
return Messages.get(HeroClass.class, "huntress_unlock"); return Messages.get(HeroClass.class, "huntress_unlock");
case COMINGSOON: // case COMINGSOON:
return Messages.get(HeroClass.class, "slime_unlock"); // return Messages.get(HeroClass.class, "slime_unlock");
} }
} }

View File

@ -128,9 +128,9 @@ public class ElementalBlast extends ArmorAbility {
damageFactors.put(WandOfRegrowth.class, 0f); damageFactors.put(WandOfRegrowth.class, 0f);
//TODO FIXED 将要修复的 //TODO FIXED 将要修复的
damageFactors.put(WandOfScale.class, 0f); damageFactors.put(WandOfScale.class, 1f);
damageFactors.put(WandOfGodIce.class, 0f); damageFactors.put(WandOfGodIce.class, 1f);
damageFactors.put(WandOfBlueFuck.class, 0f); damageFactors.put(WandOfBlueFuck.class, 1f);
} }
{ {
@ -167,7 +167,7 @@ public class ElementalBlast extends ArmorAbility {
projectileProps = Ballistica.STOP_TARGET; projectileProps = Ballistica.STOP_TARGET;
//*** Wand of Fireblast *** //*** Wand of Fireblast ***
} else if (wandCls == WandOfFireblast.class){ } else if (wandCls == WandOfFireblast.class||wandCls == WandOfGodIce.class||wandCls == WandOfScale.class||wandCls == WandOfBlueFuck.class){
projectileProps = projectileProps | Ballistica.IGNORE_SOFT_SOLID; projectileProps = projectileProps | Ballistica.IGNORE_SOFT_SOLID;
//*** Wand of Warding *** //*** Wand of Warding ***

View File

@ -53,6 +53,8 @@ import com.watabou.utils.Callback;
import com.watabou.utils.PathFinder; import com.watabou.utils.PathFinder;
import com.watabou.utils.Random; import com.watabou.utils.Random;
import java.util.ArrayList;
public class SlimeKing extends Boss { public class SlimeKing extends Boss {
private final String[] attackCurse = {"雕虫小技", "班门弄斧", private final String[] attackCurse = {"雕虫小技", "班门弄斧",
@ -65,6 +67,36 @@ public class SlimeKing extends Boss {
private static final String partcold = "partcold"; private static final String partcold = "partcold";
private static final String chainsused = "chainsused"; private static final String chainsused = "chainsused";
@Override
public int defenseProc( Char enemy, int damage ) {
if (HP >= damage + 2) {
ArrayList<Integer> candidates = new ArrayList<>();
int[] neighbours = {pos + 1, pos - 1, pos + Dungeon.level.width(), pos - Dungeon.level.width()};
for (int n : neighbours) {
if (!Dungeon.level.solid[n] && Actor.findChar( n ) == null
&& (!properties().contains(Property.LARGE) || Dungeon.level.openSpace[n])) {
candidates.add( n );
}
}
if (candidates.size() > 0 && HP < 60 && Random.Float() < 0.45f) {
CausticSlime mini = new CausticSlime();
mini.pos = this.pos;
mini.state = mini.HUNTING;
mini.HP /= 4;
mini.maxLvl = -5;
Dungeon.level.occupyCell(mini);
GameScene.add( mini , 0f );
Actor.addDelayed( new Pushing( mini, pos, mini.pos ), -1 );
}
}
return super.defenseProc(enemy, damage);
}
@Override @Override
public void storeInBundle(Bundle bundle) { public void storeInBundle(Bundle bundle) {
super.storeInBundle(bundle); super.storeInBundle(bundle);
@ -270,6 +302,7 @@ public class SlimeKing extends Boss {
// BossHealthBar.assignBoss(this); // BossHealthBar.assignBoss(this);
Music.INSTANCE.play(Assets.BGM_BOSSA, true); Music.INSTANCE.play(Assets.BGM_BOSSA, true);
yell( Messages.get(this, "notice") ); yell( Messages.get(this, "notice") );
chainsUsed = false;
//summon(); //summon();
} }

View File

@ -45,7 +45,7 @@ import java.util.ArrayList;
public class BackGoKey extends TestItem { public class BackGoKey extends TestItem {
{ {
image = ItemSpriteSheet.DG20; image = ItemSpriteSheet.DG20;
defaultAction = AC_INTER_TP; // defaultAction = Dungeon.hero.buff(ShopLimitLock.class) != null? AC_INTER_TP : null ;
changeDefAct = true; changeDefAct = true;
} }

View File

@ -29,13 +29,13 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.HalomethaneFire; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.HalomethaneFire;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Blindness; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Blindness;
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.HalomethaneBurning;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Haste; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Haste;
import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile; import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile;
import com.shatteredpixel.shatteredpixeldungeon.items.Stylus; import com.shatteredpixel.shatteredpixeldungeon.items.Stylus;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLiquidFlameX; import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLiquidFlameX;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfFlameCursed; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfFlameCursed;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Blazing; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.HaloBlazing;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
import com.shatteredpixel.shatteredpixeldungeon.levels.Level; import com.shatteredpixel.shatteredpixeldungeon.levels.Level;
import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain; import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain;
@ -131,7 +131,7 @@ public class WandOfBlueFuck extends DamageWand {
processSoulMark(ch, chargesPerCast()); processSoulMark(ch, chargesPerCast());
ch.damage(damageRoll(), this); ch.damage(damageRoll(), this);
if (ch.isAlive()) { if (ch.isAlive()) {
Buff.affect(ch, Burning.class).reignite(ch); Buff.affect(ch, HalomethaneBurning.class).reignite(ch);
switch (chargesPerCast()) { switch (chargesPerCast()) {
case 1: case 1:
break; //no effects break; //no effects
@ -149,7 +149,7 @@ public class WandOfBlueFuck extends DamageWand {
@Override @Override
public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) { public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) {
//acts like blazing enchantment //acts like blazing enchantment
new Blazing().proc( staff, attacker, defender, damage); new HaloBlazing().proc( staff, attacker, defender, damage);
} }
@Override @Override

View File

@ -5,7 +5,6 @@ import com.shatteredpixel.shatteredpixeldungeon.Challenges;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon; 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.Bleeding;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Chill; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Chill;
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
@ -14,6 +13,7 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.RainbowParticle; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.RainbowParticle;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ShadowParticle; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ShadowParticle;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfMagicMapping; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfMagicMapping;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Lucky;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain; import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain;
import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
@ -128,8 +128,7 @@ public class WandOfGodIce extends DamageWand {
@Override @Override
public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) { public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) {
//cripples enemy new Lucky().proc( staff, attacker, defender, damage);
Buff.affect(defender, Bleeding.class).set( 4+staff.buffedLvl());
} }
@Override @Override

View File

@ -6,6 +6,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char; 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.StormCloud; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.StormCloud;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Bleeding;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Paralysis; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Paralysis;
@ -14,7 +15,6 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfMysticalEnergy; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfMysticalEnergy;
import com.shatteredpixel.shatteredpixeldungeon.items.spells.AquaBlast; import com.shatteredpixel.shatteredpixeldungeon.items.spells.AquaBlast;
import com.shatteredpixel.shatteredpixeldungeon.items.spells.MagicalInfusion; import com.shatteredpixel.shatteredpixeldungeon.items.spells.MagicalInfusion;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Lucky;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
import com.shatteredpixel.shatteredpixeldungeon.mechanics.ConeAOE; import com.shatteredpixel.shatteredpixeldungeon.mechanics.ConeAOE;
@ -90,7 +90,8 @@ public class WandOfScale extends DamageWand {
@Override @Override
public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) { public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) {
//acts like blazing enchantment //acts like blazing enchantment
new Lucky().proc( staff, attacker, defender, damage);
Buff.affect(defender, Bleeding.class).set( 4+staff.buffedLvl());
} }
@Override @Override

View File

@ -85,7 +85,7 @@ public class NewsScene extends PixelScene {
float top = 18; float top = 18;
displayingNoArticles = !News.articlesAvailable(); displayingNoArticles = !News.articlesAvailable();
if (displayingNoArticles || Messages.lang() != Languages.ENGLISH) { if (displayingNoArticles || Messages.lang() != Languages.CHINESE) {
Component newsInfo = new NewsInfo(); Component newsInfo = new NewsInfo();
newsInfo.setRect(left, 20, fullWidth, 0); newsInfo.setRect(left, 20, fullWidth, 0);
@ -186,7 +186,7 @@ public class NewsScene extends PixelScene {
String message = ""; String message = "";
if (Messages.lang() != Languages.ENGLISH){ if (Messages.lang() != Languages.CHINESE){
message += Messages.get(this, "english_warn"); message += Messages.get(this, "english_warn");
} }
@ -270,7 +270,7 @@ public class NewsScene extends PixelScene {
icon(News.parseArticleIcon(article)); icon(News.parseArticleIcon(article));
long lastRead = SPDSettings.newsLastRead(); long lastRead = SPDSettings.newsLastRead();
if (lastRead > 0 && article.date.getTime() > lastRead) { if (lastRead > 0 && article.date.getTime() > lastRead) {
textColor(Window.SHPX_COLOR); textColor(Window.TITLE_COLOR);
} }
Calendar cal = Calendar.getInstance(); Calendar cal = Calendar.getInstance();

View File

@ -155,8 +155,8 @@ public class ThanksScene extends PixelScene {
"Tianscar", "Tianscar",
new TianscarSprite(), new TianscarSprite(),
"Main Dev:Carbonized Pixel Dungeon", "Main Dev:Carbonized Pixel Dungeon",
"加入碳化总群", "",
"https://jq.qq.com/?_wv=1027&k=6jAlnlNL"); "");
if (landscape()){ if (landscape()){
evan.setRect((Camera.main.width - colWidth)/2f-10, reddragon.bottom() + 8, colWidth+20, 0); evan.setRect((Camera.main.width - colWidth)/2f-10, reddragon.bottom() + 8, colWidth+20, 0);
} else { } else {

View File

@ -363,8 +363,8 @@ public enum Icons {
return get( ROGUE ); return get( ROGUE );
case HUNTRESS: case HUNTRESS:
return get( HUNTRESS ); return get( HUNTRESS );
case COMINGSOON: // case COMINGSOON:
return get( HUNTRESS ); // return get( HUNTRESS );
default: default:
return null; return null;
} }

View File

@ -35,6 +35,7 @@ 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_17_Changes(changeInfos);
add_v0_6_16_Changes(changeInfos); add_v0_6_16_Changes(changeInfos);
add_v0_6_15_Changes(changeInfos); add_v0_6_15_Changes(changeInfos);
add_v0_6_14_Changes(changeInfos); add_v0_6_14_Changes(changeInfos);
@ -54,6 +55,30 @@ 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_17_Changes( ArrayList<ChangeInfo> changeInfos ) {
ChangeInfo changes = new ChangeInfo("v0.6.0.0-Beta21-p2.875", true, "");
changes.hardlight(Window.TITLE_COLOR);
changeInfos.add(changes);
changes = new ChangeInfo("调整", false, null);
changes.hardlight(Window.GREEN_COLOR);
changeInfos.add(changes);
changes.addButton(new ChangeButton(new SlimeKingSprite(), ("史莱姆王"),
("追加三阶段,在近战攻击情况下生成蚀化史莱姆,但生成的蚀化史莱姆血量将/4" )));
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_06X35")));
changes.addButton(new ChangeButton(Icons.get(Icons.NEWS), ("小道消息"),
("OM9已经在Discord宣传此版本但英文翻译目前没有因此国际化需要招人。当然我们会在P3正式开始英化工作")));
}
public static void add_v0_6_16_Changes( ArrayList<ChangeInfo> changeInfos ) { public static void add_v0_6_16_Changes( ArrayList<ChangeInfo> changeInfos ) {
ChangeInfo changes = new ChangeInfo("v0.6.0.0-Beta21-p2.85", true, ""); ChangeInfo changes = new ChangeInfo("v0.6.0.0-Beta21-p2.85", true, "");
changes.hardlight(Window.TITLE_COLOR); changes.hardlight(Window.TITLE_COLOR);

View File

@ -95,7 +95,7 @@ public class WndChallenges extends Window {
final int warning_mode =9; final int warning_mode =9;
final int custom_mode = 13; final int custom_mode = 13;
final int Test_Debug = 14; final int Test_Debug = 14;
final int fixed_mode = 15;
boolean isCustom = false; boolean isCustom = false;
float pos = 0; float pos = 0;
@ -103,7 +103,7 @@ public class WndChallenges extends Window {
final String challenge = Challenges.NAME_IDS[i]; final String challenge = Challenges.NAME_IDS[i];
if(i==normal_mode || i==hard_mode || i==warning_mode|| i==custom_mode || i==fixed_mode || i==Test_Debug){ if(i==normal_mode || i==hard_mode || i==warning_mode|| i==custom_mode || i==Test_Debug){
RenderedTextBlock block = PixelScene.renderTextBlock(10); RenderedTextBlock block = PixelScene.renderTextBlock(10);
switch (i){ switch (i){
case normal_mode: case normal_mode:
@ -126,10 +126,6 @@ public class WndChallenges extends Window {
block.text(Messages.get(Challenges.class, "test")); block.text(Messages.get(Challenges.class, "test"));
block.hardlight(0xFFFF00); block.hardlight(0xFFFF00);
break; break;
case fixed_mode:
block.text(Messages.get(Challenges.class, "fixed"));
block.hardlight(Window.CBLACK);
break;
} }
block.setPos((WIDTH - block.width()) / 2, block.setPos((WIDTH - block.width()) / 2,
pos + GAP *4); pos + GAP *4);

View File

@ -38,8 +38,6 @@ public class WndInfoMob extends WndTitledMessage {
} }
private static class MobTitle extends Component { private static class MobTitle extends Component {
private static final int GAP = 2; private static final int GAP = 2;

View File

@ -37,7 +37,6 @@ import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.InterlevelScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.InterlevelScene;
import com.shatteredpixel.shatteredpixeldungeon.scenes.IntroScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.IntroScene;
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
import com.shatteredpixel.shatteredpixeldungeon.scenes.TitleScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.shatteredpixel.shatteredpixeldungeon.ui.ActionIndicator; import com.shatteredpixel.shatteredpixeldungeon.ui.ActionIndicator;
@ -47,7 +46,6 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton;
import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextBlock; import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextBlock;
import com.shatteredpixel.shatteredpixeldungeon.ui.StyledButton; import com.shatteredpixel.shatteredpixeldungeon.ui.StyledButton;
import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
import com.shatteredpixel.shatteredpixeldungeon.utils.DungeonSeed;
import com.watabou.noosa.ColorBlock; import com.watabou.noosa.ColorBlock;
import com.watabou.noosa.Game; import com.watabou.noosa.Game;
import com.watabou.noosa.Image; import com.watabou.noosa.Image;
@ -59,22 +57,6 @@ import java.util.ArrayList;
public class WndStartGame extends Window { public class WndStartGame extends Window {
public static void showKeyInput(){
Game.runOnRenderThread(() -> ShatteredPixelDungeon.scene().add(new WndTextInput(Messages.get(WndTextInput.class,"enter_key"), Messages.get(WndGame.class,
"dialog_user"), SPDSettings.customSeed(), 10, false, Messages.get(WndTextInput.class,"yes"),
Messages.get(WndTextInput.class,"no")){
@Override
public void onSelect(boolean positive, String text) {
text = DungeonSeed.formatText(text);
if(positive) {
SPDSettings.customSeed(text);
ShatteredPixelDungeon.switchScene(TitleScene.class);
}
}
}));
}
private static final int WIDTH = 120; private static final int WIDTH = 120;
private static final int HEIGHT = 160; private static final int HEIGHT = 160;
@ -95,26 +77,45 @@ public class WndStartGame extends Window {
spacers = new ArrayList<>(); spacers = new ArrayList<>();
if (DeviceCompat.isDebug() || Badges.isUnlocked(Badges.Badge.VICTORY)){ if (DeviceCompat.isDebug() || Badges.isUnlocked(Badges.Badge.VICTORY)){
StyledButton chkSaver = new StyledButton(Chrome.Type.RED_BUTTON, Messages.get(WndStartGame.class, // StyledButton chkSaver = new StyledButton(Chrome.Type.RED_BUTTON, Messages.get(WndStartGame.class,
"mode"), 5){ // "mode"), 5){
// @Override
// protected void onClick() {
// super.onClick();
// ShatteredPixelDungeon.scene().addToFront(new WndDLC(SPDSettings.dlc(), true) {
// public void onBackPressed() {
// super.onBackPressed();
// icon(new ItemSprite(SPDSettings.dlc() > 0 ? ItemSpriteSheet.DG26 :
// ItemSpriteSheet.DG24));
// }
// } );
// }
//
// };
// chkSaver.active = false;
// chkSaver.alpha(0.5f);
// chkSaver.icon(new ItemSprite(ItemSpriteSheet.DG26, null));
// add( chkSaver );
// buttons.add(chkSaver);
StyledButton hardButton = new StyledButton(Chrome.Type.RED_BUTTON, Messages.get(WndStartGame.class,
"hard"), 5){
@Override @Override
protected void onClick() { protected void onClick() {
super.onClick(); ShatteredPixelDungeon.scene().addToFront(new WndChallenges(SPDSettings.challenges(), true) {
ShatteredPixelDungeon.scene().addToFront(new WndDLC(SPDSettings.dlc(), true) {
public void onBackPressed() { public void onBackPressed() {
super.onBackPressed(); super.onBackPressed();
icon(new ItemSprite(SPDSettings.dlc() > 0 ? ItemSpriteSheet.DG26 : icon(Icons.get(SPDSettings.challenges() > 0 ? Icons.CHALLENGE_ON : Icons.CHALLENGE_OFF));
ItemSpriteSheet.DG24));
} }
} ); } );
} }
}; };
chkSaver.active = false; hardButton.leftJustify = true;
chkSaver.alpha(0.5f); hardButton.active = false;
chkSaver.icon(new ItemSprite(ItemSpriteSheet.DG26, null)); hardButton.icon(new ItemSprite(ItemSpriteSheet.ARTIFACT_HOURGLASS, null));
add( chkSaver ); hardButton.alpha(0f);
buttons.add(chkSaver); add(hardButton);
buttons.add(hardButton);
StyledButton nameButton = new StyledButton(Chrome.Type.RED_BUTTON, Messages.get(WndStartGame.class, StyledButton nameButton = new StyledButton(Chrome.Type.RED_BUTTON, Messages.get(WndStartGame.class,
"seedtitle"), 5){ "seedtitle"), 5){
@ -122,7 +123,8 @@ public class WndStartGame extends Window {
public void onClick() { public void onClick() {
if(Badges.isUnlocked(Badges.Badge.BOSS_SLAIN_1)){ if(Badges.isUnlocked(Badges.Badge.BOSS_SLAIN_1)){
Game.runOnRenderThread(() -> ShatteredPixelDungeon.scene().add(new WndTextInput(Messages.get(WndStartGame.class,"custom_name"), Game.runOnRenderThread(() -> ShatteredPixelDungeon.scene().add(new WndTextInput(Messages.get(WndStartGame.class,"custom_name"),
Messages.get(WndStartGame.class, "custom_name_desc")+SPDSettings.heroName(),null, 20, Messages.get(WndStartGame.class, "custom_name_desc")+SPDSettings.heroName(),
SPDSettings.heroName(), 20,
false, Messages.get(WndStartGame.class,"custom_name_set"), false, Messages.get(WndStartGame.class,"custom_name_set"),
Messages.get(WndStartGame.class,"custom_name_clear")){ Messages.get(WndStartGame.class,"custom_name_clear")){
@Override @Override
@ -152,25 +154,6 @@ public class WndStartGame extends Window {
buttons.add(nameButton); buttons.add(nameButton);
add(nameButton); add(nameButton);
StyledButton hardButton = new StyledButton(Chrome.Type.RED_BUTTON, Messages.get(WndStartGame.class,
"hard"), 5){
@Override
protected void onClick() {
ShatteredPixelDungeon.scene().addToFront(new WndChallenges(SPDSettings.challenges(), true) {
public void onBackPressed() {
super.onBackPressed();
icon(Icons.get(SPDSettings.challenges() > 0 ? Icons.CHALLENGE_ON : Icons.CHALLENGE_OFF));
}
} );
}
};
hardButton.leftJustify = true;
hardButton.active = false;
hardButton.icon(new ItemSprite(ItemSpriteSheet.ARTIFACT_HOURGLASS, null));
hardButton.alpha(0.5f);
add(hardButton);
buttons.add(hardButton);
StyledButton csbutton = new StyledButton(Chrome.Type.RED_BUTTON, Messages.get(WndStartGame.class, StyledButton csbutton = new StyledButton(Chrome.Type.RED_BUTTON, Messages.get(WndStartGame.class,
"news"), 5){ "news"), 5){
@Override @Override
@ -186,7 +169,7 @@ public class WndStartGame extends Window {
csbutton.leftJustify = true; csbutton.leftJustify = true;
csbutton.active = false; csbutton.active = false;
csbutton.icon(new ItemSprite(ItemSpriteSheet.ARTIFACT_SPELLBOOK, null)); csbutton.icon(new ItemSprite(ItemSpriteSheet.ARTIFACT_SPELLBOOK, null));
csbutton.alpha(0.5f); csbutton.alpha(0f);
add(csbutton); add(csbutton);
buttons.add(csbutton); buttons.add(csbutton);
} }
@ -222,6 +205,7 @@ public class WndStartGame extends Window {
this.width = width; this.width = width;
this.height = top+bg.marginBottom()-y-1; this.height = top+bg.marginBottom()-y-1;
// this.height = top+bg.marginBottom()-y-1;
bg.size(this.width, this.height); bg.size(this.width, this.height);
} }
@ -413,7 +397,7 @@ public class WndStartGame extends Window {
private IconButton heroMisc; private IconButton heroMisc;
private IconButton heroSubclass; private IconButton heroSubclass;
private IconButton Telnetsc; private IconButton Telnetsc;
private IconButton infoButton;
private RenderedTextBlock name; private RenderedTextBlock name;
private static final int BTN_SIZE = 20; private static final int BTN_SIZE = 20;
@ -501,6 +485,21 @@ public class WndStartGame extends Window {
name = PixelScene.renderTextBlock(12); name = PixelScene.renderTextBlock(12);
add(name); add(name);
infoButton = new IconButton(Icons.get(Icons.INFO)){
@Override
protected void onClick() {
super.onClick();
ShatteredPixelDungeon.scene().addToFront(new WndHeroInfo(GamesInProgress.selectedClass));
}
@Override
protected String hoverText() {
return Messages.titleCase(Messages.get(WndKeyBindings.class, "hero_info"));
}
};
infoButton.setSize(21, 21);
add(infoButton);
visible = false; visible = false;
} }
@ -508,16 +507,19 @@ public class WndStartGame extends Window {
protected void layout() { protected void layout() {
super.layout(); super.layout();
avatar.x = x-10; avatar.x = x-12;
avatar.y = y + (height - avatar.height() - name.height() - 4)/2f; avatar.y = y + (height - avatar.height() - name.height() - 4)/2f;
PixelScene.align(avatar); PixelScene.align(avatar);
name.setPos( name.setPos(
x-10 + (avatar.width() - name.width())/2f, x-2 + (avatar.width() - name.width())/2f,
avatar.y + avatar.height() + 3 avatar.y + avatar.height() + 3
); );
PixelScene.align(name); PixelScene.align(name);
infoButton.setPos(-4,
name.y-15 + name.height());
heroItem.setPos(0 + (name.width()/60f), heroItem.setPos(0 + (name.width()/60f),
name.y + name.height() + 3); name.y + name.height() + 3);