diff --git a/core/src/main/assets/messages/actors/actors.properties b/core/src/main/assets/messages/actors/actors.properties index 481d674a3..2f2142fda 100644 --- a/core/src/main/assets/messages/actors/actors.properties +++ b/core/src/main/assets/messages/actors/actors.properties @@ -632,7 +632,7 @@ actors.mobs.slime_sz.name=史莱姆-圣紫守护者 actors.mobs.slime_sz.desc=史莱姆七大守护者中的_圣紫使者_\n它发出的攻击有几率让入侵者受到_迟缓效果_! 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.defeated=不……这不可能…… actors.mobs.slimeking.arise=我的史莱姆守卫们,快点出来支援本王! diff --git a/core/src/main/assets/messages/items/items.properties b/core/src/main/assets/messages/items/items.properties index 597df53d4..aa398586c 100644 --- a/core/src/main/assets/messages/items/items.properties +++ b/core/src/main/assets/messages/items/items.properties @@ -66,7 +66,7 @@ items.wands.wandofbluefuck.name=磷焰法杖 items.wands.wandofbluefuck.staff_name=鬼磷之杖 items.wands.wandofbluefuck.desc=这根法杖由欧松木制成,饰以紫色宝石,这使它看起来相当庄严。它的顶端噼啪作响嘶嘶而鸣,渴望着释放其强大的魔法。 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.desc=这个附魔会使磷火从武器中喷薄而出,能够使用点燃敌人并对正在燃烧的敌人造成中毒的额外伤害。 @@ -213,11 +213,13 @@ items.wands.wandofscale.name=恐惧暴风法杖 items.wands.wandofscale.staff_name=暴风之杖 items.wands.wandofscale.desc=这根法杖的紫色主干顶端镶嵌着一颗明亮的黑色宝石。 items.wands.wandofscale.stats_desc=这根法杖能射出恐惧声波,附近的敌人都会四处逃窜。\n并且可以产生暴风,使周围陷阱全部失效且成为水地面。\n会造成_%1$d~%2$d点伤害_。 +items.wands.wandofscale.bmage_desc=当_战斗法师_以暴风之杖近战攻击目标时,能概率让目标流血。 items.wands.wandofgodice.name=霜殇法杖 items.wands.wandofgodice.staff_name=冰雪悲歌之杖 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.desc=由钻石宝箱王守护的东西,据说是商人的喜爱产品。\n\n无论怎么样,现在珍宝已经在你手中,你已经打败了钻石宝箱王。\n提示:出价资金可能会和实际资金不同,因为商人随时可能变卦。 diff --git a/core/src/main/assets/messages/misc/misc.properties b/core/src/main/assets/messages/misc/misc.properties index f90bc76d1..c1bc653dd 100644 --- a/core/src/main/assets/messages/misc/misc.properties +++ b/core/src/main/assets/messages/misc/misc.properties @@ -119,7 +119,7 @@ challenges.champion_enemies_desc=会升级的不止你一个!\n\n・普通敌 的机率拥有特殊的精英属性。\n・精英敌人刷出时会立即醒来。\n・精英敌人免疫腐化效果。\n\n精英敌人有七种:\n_烈焰(橙色):_ 近战伤害 \ +25% 且带有点燃效果,免疫火焰,死亡时引燃周围。\n_索敌(紫色):_ 近战伤害 +25%,近战范围 +8。\n_敌法(绿色):_ 受到伤害 -25%,拥有魔法免疫。\n_巨型(蓝色):_ 受到伤害 -75%,近战范围 +1,无法进入门与过道。\n_祝福(黄色):_ 精准与躲避 +200%。\n_成长(红色):_ 精准、躲避、攻击伤害与有效生命值 +20%。每过 3 回合会再增长 1%。\n_鬼磷(天蓝色):_ 近战伤害 +15% 且带有磷火效果,免疫火焰与磷火。 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=你受到了来自水的伤害! challenges.pro=Δ开发者模式Δ challenges.pro_desc=供测试和开发使用\n开局_几乎是全物品_!同时,你将无法通关!也无法记录在排行榜上面。 diff --git a/core/src/main/assets/messages/misc/misc_en.properties b/core/src/main/assets/messages/misc/misc_en.properties index 9f20a6f75..a795ebe74 100644 --- a/core/src/main/assets/messages/misc/misc_en.properties +++ b/core/src/main/assets/messages/misc/misc_en.properties @@ -1,155 +1,73 @@ badges.endorsed=Badge endorsed: %s -badges.new=Badge unlocked: %s -badges$badge.monsters_slain_1.title=Novice Monster Hunter -badges$badge.monsters_slain_1.desc=Defeat 10 enemies in one game -badges$badge.monsters_slain_2.title=Adept Monster Hunter -badges$badge.monsters_slain_2.desc=Defeat 50 enemies in one game -badges$badge.monsters_slain_3.title=Expert Monster Hunter -badges$badge.monsters_slain_3.desc=Defeat 100 enemies in one game -badges$badge.monsters_slain_4.title=Master Monster Hunter -badges$badge.monsters_slain_4.desc=Defeat 200 enemies in one game -badges$badge.monsters_slain_5.title=Grandmaster Monster Hunter -badges$badge.monsters_slain_5.desc=Defeat 300 enemies in one game -badges$badge.gold_collected_1.title=Novice Treasure Hunter -badges$badge.gold_collected_1.desc=Collect 250 gold in one game -badges$badge.gold_collected_2.title=Adept Treasure Hunter -badges$badge.gold_collected_2.desc=Collect 1000 gold in one game -badges$badge.gold_collected_3.title=Expert Treasure Hunter -badges$badge.gold_collected_3.desc=Collect 2500 gold in one game -badges$badge.gold_collected_4.title=Master Treasure Hunter -badges$badge.gold_collected_4.desc=Collect 5000 gold in one game -badges$badge.gold_collected_5.title=Grandmaster Treasure Hunter -badges$badge.gold_collected_5.desc=Collect 10,000 gold in one game -badges$badge.level_reached_1.title=Novice Adventurer -badges$badge.level_reached_1.desc=Reach level 6 -badges$badge.level_reached_2.title=Adept Adventurer -badges$badge.level_reached_2.desc=Reach level 12 -badges$badge.level_reached_3.title=Expert Adventurer -badges$badge.level_reached_3.desc=Reach level 18 -badges$badge.level_reached_4.title=Master Adventurer -badges$badge.level_reached_4.desc=Reach level 24 -badges$badge.level_reached_5.title=Grandmaster Adventurer -badges$badge.level_reached_5.desc=Reach level 30 -badges$badge.all_weapons_identified.title=Weapon Researcher -badges$badge.all_weapons_identified.desc=Identify all weapons in your journal -badges$badge.all_armor_identified.title=Armor Researcher -badges$badge.all_armor_identified.desc=Identify all armors in your journal -badges$badge.all_wands_identified.title=Wand Researcher -badges$badge.all_wands_identified.desc=Identify all wands in your journal -badges$badge.all_rings_identified.title=Ring Researcher -badges$badge.all_rings_identified.desc=Identify all rings in your journal -badges$badge.all_artifacts_identified.title=Artifact Researcher -badges$badge.all_artifacts_identified.desc=Identify all artifacts in your journal -badges$badge.all_potions_identified.title=Potion Researcher -badges$badge.all_potions_identified.desc=Identify all potions in your journal -badges$badge.all_scrolls_identified.title=Scroll Researcher -badges$badge.all_scrolls_identified.desc=Identify all scrolls in your journal -badges$badge.all_items_identified.title=Master Researcher -badges$badge.all_items_identified.desc=Identify all items in your journal -badges$badge.all_bags_bought.title=Pack Mule -badges$badge.all_bags_bought.desc=Fully expand your inventory -badges$badge.death_from_fire.title=Burned -badges$badge.death_from_fire.desc=Die from fire -badges$badge.death_from_poison.title=Poisoned -badges$badge.death_from_poison.desc=Die from poison -badges$badge.death_from_gas.title=Suffocated -badges$badge.death_from_gas.desc=Die from toxic gas -badges$badge.death_from_hunger.title=Starved -badges$badge.death_from_hunger.desc=Die from hunger -badges$badge.death_from_glyph.title=Deferred Death -badges$badge.death_from_glyph.desc=Die from deferred damage -badges$badge.death_from_falling.title=Pancaked -badges$badge.death_from_falling.desc=Die from falling down -badges$badge.yasd.title=Yet Another Sad Death -badges$badge.yasd.desc=Die to fire, poison, toxic gas, hunger, deferred damage, and falling -badges$badge.boss_slain_1.title=Slime janitor -badges$badge.boss_slain_1.desc=Defeat the boss at the end of the sewers -badges$badge.boss_slain_2.title=Prison Warden -badges$badge.boss_slain_2.desc=Defeat the boss at the end of the prison -badges$badge.boss_slain_3.title=Metal Scrapper -badges$badge.boss_slain_3.desc=Defeat the boss at the end of the caves -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 +badges.new_super=New super badge: %s +badges.new=New badge: %s +badges$badge.monsters_slain_1=10 enemies slain +badges$badge.monsters_slain_2=50 enemies slain +badges$badge.monsters_slain_3=150 enemies slain +badges$badge.monsters_slain_4=250 enemies slain +badges$badge.gold_collected_1=100 gold collected +badges$badge.gold_collected_2=500 gold collected +badges$badge.gold_collected_3=2500 gold collected +badges$badge.gold_collected_4=7500 gold collected +badges$badge.level_reached_1=Level 6 reached +badges$badge.level_reached_2=Level 12 reached +badges$badge.level_reached_3=Level 18 reached +badges$badge.level_reached_4=Level 24 reached +badges$badge.all_weapons_identified=All weapons identified +badges$badge.all_armor_identified=All armor identified +badges$badge.all_wands_identified=All wands identified +badges$badge.all_rings_identified=All rings identified +badges$badge.all_artifacts_identified=All artifacts identified +badges$badge.all_potions_identified=All potions identified +badges$badge.all_scrolls_identified=All scrolls identified +badges$badge.all_items_identified=All items identified +badges$badge.all_bags_bought=All bags bought +badges$badge.death_from_fire=Death from fire +badges$badge.death_from_poison=Death from poison +badges$badge.death_from_gas=Death from toxic gas +badges$badge.death_from_hunger=Death from hunger +badges$badge.death_from_glyph=Death from deferred damage +badges$badge.death_from_falling=Death from falling down +badges$badge.yasd=Death from fire, poison, toxic gas, hunger, glyph, and falling +badges$badge.boss_slain_1=1st boss slain +badges$badge.boss_slain_2=2nd boss slain +badges$badge.boss_slain_3=3rd boss slain +badges$badge.boss_slain_4=4th boss slain +badges$badge.boss_slain_1_all_classes=1st boss slain by Warrior, Mage, Rogue & Huntress +badges$badge.boss_slain_3_all_subclasses=3rd boss slain by Gladiator, Berserker, Warlock, Battlemage, Freerunner, Assassin, Sniper & Warden +badges$badge.strength_attained_1=13 points of Strength attained +badges$badge.strength_attained_2=15 points of Strength attained +badges$badge.strength_attained_3=17 points of Strength attained +badges$badge.strength_attained_4=19 points of Strength attained +badges$badge.food_eaten_1=10 pieces of food eaten +badges$badge.food_eaten_2=20 pieces of food eaten +badges$badge.food_eaten_3=30 pieces of food eaten +badges$badge.food_eaten_4=40 pieces of food eaten +badges$badge.item_level_1=Item of level 3 acquired +badges$badge.item_level_2=Item of level 6 acquired +badges$badge.item_level_3=Item of level 9 acquired +badges$badge.item_level_4=Item of level 12 acquired +badges$badge.victory=Amulet of Yendor obtained +badges$badge.victory_all_classes=Amulet of Yendor obtained by Warrior, Mage, Rogue & Huntress +badges$badge.mastery_combo=10-hit combo +badges$badge.potions_cooked_1=3 potions cooked +badges$badge.potions_cooked_2=6 potions cooked +badges$badge.potions_cooked_3=9 potions cooked +badges$badge.potions_cooked_4=12 potions cooked +badges$badge.no_monsters_slain=Level completed without killing any monsters +badges$badge.grim_weapon=Monster killed by a Grim weapon +badges$badge.piranhas=6 piranhas killed +badges$badge.games_played_1=10 games played +badges$badge.games_played_2=50 games played +badges$badge.games_played_3=250 games played +badges$badge.games_played_4=1000 games played +badges$badge.happy_end=Happy end +badges$badge.champion_1=Won with a Challenge +badges$badge.champion_2=Won with 3 Challenges +badges$badge.champion_3=Won with 6 Challenges +badges$badge.unlock_mage=Unlocked the Mage +badges$badge.unlock_rogue=Unlocked the Rogue +badges$badge.unlock_huntress=Unlocked the Huntress 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 @@ -164,19 +82,46 @@ challenges.swarm_intelligence_desc=Watch out, the dungeon monsters are getting s 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.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.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.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 +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_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. rankings$record.something=Killed by Something -challenges.light&black =_Light & Shadow_ -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_red=Defeat the RedNer +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 -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=_Sludge water_ +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 -dlc.back_go_desc=A reverse adventure, can you get out of here? The 5 fixed bosses appear on the final floor. \ No newline at end of file +challenges.exsg = Potion Illness +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! \ No newline at end of file diff --git a/core/src/main/assets/messages/scenes/scenes_en.properties b/core/src/main/assets/messages/scenes/scenes_en.properties index 736c7fa0f..af3e24c8b 100644 --- a/core/src/main/assets/messages/scenes/scenes_en.properties +++ b/core/src/main/assets/messages/scenes/scenes_en.properties @@ -1,5 +1,12 @@ #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.text=Combine ingredients to create something new! 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.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.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. @@ -96,7 +103,7 @@ scenes.titlescene.update=Update scenes.titlescene.install=Install scenes.titlescene.settings=Settings 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.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. diff --git a/core/src/main/assets/messages/ui/ui.properties b/core/src/main/assets/messages/ui/ui.properties index fd3e1e818..1235bebad 100644 --- a/core/src/main/assets/messages/ui/ui.properties +++ b/core/src/main/assets/messages/ui/ui.properties @@ -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_06x35=-P2.875\n1.修复了回溯之书的快捷使用错误\n2.修复了自定义名称的缓存问题\n3.删除不必要的赘余代码\n4.元素风暴现在可以工作,但特效有一些Bug,因此视觉效果不会出现\n5.删除WIP的东西\n6.英雄选择界面优化 + //ui.changelist.mlpd.vm0_5_x_changes.xxx// \ No newline at end of file diff --git a/core/src/main/assets/messages/windows/windows.properties b/core/src/main/assets/messages/windows/windows.properties index 68b0c1378..eb9c10ef6 100644 --- a/core/src/main/assets/messages/windows/windows.properties +++ b/core/src/main/assets/messages/windows/windows.properties @@ -49,7 +49,7 @@ windows.wndstartgame.hard=难度选择 windows.wndstartgame.news=章节选择 windows.wndstartgame.seedtitle=命名终端 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_clear=清空 diff --git a/core/src/main/assets/messages/windows/windows_en.properties b/core/src/main/assets/messages/windows/windows_en.properties index f6d5883b0..8155ff94b 100644 --- a/core/src/main/assets/messages/windows/windows_en.properties +++ b/core/src/main/assets/messages/windows/windows_en.properties @@ -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.itm = lootce: +windows.wndinfomob.shield= drRoll: windows.wndreddragon.gnollshied_title=Defeat the Elder Gnoll Refining Medicine windows.wndreddragon.skullgnoll_title=Defeat the Elder Jackal diff --git a/core/src/main/assets/splashes/r.jpg b/core/src/main/assets/splashes/r.jpg deleted file mode 100644 index aa44bc8c4..000000000 Binary files a/core/src/main/assets/splashes/r.jpg and /dev/null differ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Assets.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Assets.java index 48f521b12..62bb8ba55 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Assets.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Assets.java @@ -301,7 +301,6 @@ public class Assets { public static final String HUNTRESS = "sprites/huntress.png"; public static final String COMINGSOON = "sprites/slimekingch.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 JAMULET = "sprites/jamulet.png"; public static final String COLDRAT = "sprites/coldrat.png"; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Challenges.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Challenges.java index 8d926629b..bc34dc305 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Challenges.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/Challenges.java @@ -57,9 +57,9 @@ public class Challenges { 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 = { "no_food", @@ -77,12 +77,11 @@ public class Challenges { "stronger_bosses", "dhxd", "pro", - "bug", }; public static final int[] MASKS = { 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; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java index 0bbed572a..1a6c94887 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java @@ -22,12 +22,10 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.hero; 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.PRO; import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero; 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.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.PotionOfExperience; 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.exotic.PotionOfDivineInspiration; import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfAccuracy; @@ -930,11 +927,11 @@ public class Hero extends Char { //TODO 获取三个挑战的枚举后,则超过或等于3挑战以激活挑战,在英雄移动的时候 // - //todo 移动时修复了BUG - if(Dungeon.isChallenged(BUG) && !bugsyncfixed){ - new PotionOfLightningShiledX().quantity(3).identify().collect(); - bugsyncfixed = true; - } +// //todo 移动时修复了BUG +// if(Dungeon.isChallenged(BUG) && !bugsyncfixed){ +// new PotionOfLightningShiledX().quantity(3).identify().collect(); +// bugsyncfixed = true; +// } if(chCount >= 3 && !lanterfireactive && !Dungeon.isChallenged(PRO) || Dungeon.isChallenged(DHXD) && !lanterfireactive){ //TODO 灯火前行 diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroClass.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroClass.java index 219afca9e..73e0c6f07 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroClass.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroClass.java @@ -21,8 +21,6 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.hero; -import static com.shatteredpixel.shatteredpixeldungeon.Challenges.BUG; - import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Badges; 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.BrokenSeal; 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.armor.ClothArmor; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.ChaliceOfBlood; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.CloakOfShadows; 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.TalismanOfForesight; 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.MagesStaff; 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.WarHammer; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WornShortsword; @@ -138,9 +136,9 @@ public enum HeroClass { WARRIOR( HeroSubClass.BERSERKER, HeroSubClass.GLADIATOR ), MAGE( HeroSubClass.BATTLEMAGE, HeroSubClass.WARLOCK ), 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; @@ -183,8 +181,8 @@ public enum HeroClass { // Buff.affect(hero, ChampionHero.Giant.class, ChampionHero.DURATION); // Buff.affect(hero, ChampionHero.Growing.class, ChampionHero.DURATION); new Gauntlet().quantity(1).identify().collect(); - new Sai().quantity(1).identify().collect(); - new GoldIron().quantity(1).identify().collect(); + new TengusMask().quantity(1).identify().collect(); + new KingsCrown().quantity(1).identify().collect(); new ScrollOfIdentify().quantity(45).identify().collect(); new ScrollOfTransmutation().quantity(45).identify().collect(); new BeaconOfReturning().quantity(11).identify().collect(); @@ -265,9 +263,9 @@ public enum HeroClass { i = new Food(); //todo 不存在BUG挑战才给予 - if(!Dungeon.isChallenged(BUG)) { - new PotionOfLightningShiledX().quantity(3).identify().collect(); - } +// if(!Dungeon.isChallenged(BUG)) { +// new PotionOfLightningShiledX().quantity(3).identify().collect(); +// } new HerbBag().quantity(1).identify().collect(); new PotionOfHealing().quantity(3).identify().collect(); @@ -433,8 +431,8 @@ public enum HeroClass { return Assets.Sprites.ROGUE; case HUNTRESS: return Assets.Sprites.HUNTRESS; - case COMINGSOON: - return Assets.Sprites.COMINGSOON; +// case COMINGSOON: +// return Assets.Sprites.COMINGSOON; } } @@ -449,8 +447,8 @@ public enum HeroClass { return Assets.Sprites.ROGUE; case HUNTRESS: return Assets.Sprites.HUNTRESS; - case COMINGSOON: - return Assets.Sprites.COMINGSOON; +// case COMINGSOON: +// return Assets.Sprites.COMINGSOON; } } @@ -514,8 +512,8 @@ public enum HeroClass { return true; case HUNTRESS: return true; - case COMINGSOON: - return false; +// case COMINGSOON: +// return false; //敬请期待 } } @@ -530,8 +528,8 @@ public enum HeroClass { return Messages.get(HeroClass.class, "rogue_unlock"); case HUNTRESS: return Messages.get(HeroClass.class, "huntress_unlock"); - case COMINGSOON: - return Messages.get(HeroClass.class, "slime_unlock"); +// case COMINGSOON: +// return Messages.get(HeroClass.class, "slime_unlock"); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/mage/ElementalBlast.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/mage/ElementalBlast.java index 9e898264c..0fa0493eb 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/mage/ElementalBlast.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/abilities/mage/ElementalBlast.java @@ -128,9 +128,9 @@ public class ElementalBlast extends ArmorAbility { damageFactors.put(WandOfRegrowth.class, 0f); //TODO FIXED 将要修复的 - damageFactors.put(WandOfScale.class, 0f); - damageFactors.put(WandOfGodIce.class, 0f); - damageFactors.put(WandOfBlueFuck.class, 0f); + damageFactors.put(WandOfScale.class, 1f); + damageFactors.put(WandOfGodIce.class, 1f); + damageFactors.put(WandOfBlueFuck.class, 1f); } { @@ -167,7 +167,7 @@ public class ElementalBlast extends ArmorAbility { projectileProps = Ballistica.STOP_TARGET; //*** 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; //*** Wand of Warding *** diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/SlimeKing.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/SlimeKing.java index e7fcfe6f9..4bcb1af35 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/SlimeKing.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/SlimeKing.java @@ -53,6 +53,8 @@ import com.watabou.utils.Callback; import com.watabou.utils.PathFinder; import com.watabou.utils.Random; +import java.util.ArrayList; + public class SlimeKing extends Boss { private final String[] attackCurse = {"雕虫小技", "班门弄斧", @@ -65,6 +67,36 @@ public class SlimeKing extends Boss { private static final String partcold = "partcold"; private static final String chainsused = "chainsused"; + + @Override + public int defenseProc( Char enemy, int damage ) { + + if (HP >= damage + 2) { + ArrayList 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 public void storeInBundle(Bundle bundle) { super.storeInBundle(bundle); @@ -270,6 +302,7 @@ public class SlimeKing extends Boss { // BossHealthBar.assignBoss(this); Music.INSTANCE.play(Assets.BGM_BOSSA, true); yell( Messages.get(this, "notice") ); + chainsUsed = false; //summon(); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/quest/BackGoKey.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/quest/BackGoKey.java index 038177f26..3ccb00a43 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/quest/BackGoKey.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/quest/BackGoKey.java @@ -45,7 +45,7 @@ import java.util.ArrayList; public class BackGoKey extends TestItem { { image = ItemSpriteSheet.DG20; - defaultAction = AC_INTER_TP; +// defaultAction = Dungeon.hero.buff(ShopLimitLock.class) != null? AC_INTER_TP : null ; changeDefAct = true; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfBlueFuck.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfBlueFuck.java index 47860123d..0acb25d79 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfBlueFuck.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfBlueFuck.java @@ -29,13 +29,13 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.HalomethaneFire; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Blindness; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; -import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.HalomethaneBurning; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Haste; import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile; import com.shatteredpixel.shatteredpixeldungeon.items.Stylus; import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLiquidFlameX; 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.levels.Level; import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain; @@ -131,7 +131,7 @@ public class WandOfBlueFuck extends DamageWand { processSoulMark(ch, chargesPerCast()); ch.damage(damageRoll(), this); if (ch.isAlive()) { - Buff.affect(ch, Burning.class).reignite(ch); + Buff.affect(ch, HalomethaneBurning.class).reignite(ch); switch (chargesPerCast()) { case 1: break; //no effects @@ -149,7 +149,7 @@ public class WandOfBlueFuck extends DamageWand { @Override public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) { //acts like blazing enchantment - new Blazing().proc( staff, attacker, defender, damage); + new HaloBlazing().proc( staff, attacker, defender, damage); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfGodIce.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfGodIce.java index 39533be6e..eb2d711e1 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfGodIce.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfGodIce.java @@ -5,7 +5,6 @@ import com.shatteredpixel.shatteredpixeldungeon.Challenges; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; -import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Bleeding; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Chill; 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.ShadowParticle; 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.levels.Terrain; import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; @@ -128,8 +128,7 @@ public class WandOfGodIce extends DamageWand { @Override public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) { - //cripples enemy - Buff.affect(defender, Bleeding.class).set( 4+staff.buffedLvl()); + new Lucky().proc( staff, attacker, defender, damage); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfScale.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfScale.java index 8a0ab7394..1dc72fa86 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfScale.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfScale.java @@ -6,6 +6,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob; 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.Cripple; 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.spells.AquaBlast; 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.mechanics.Ballistica; import com.shatteredpixel.shatteredpixeldungeon.mechanics.ConeAOE; @@ -90,7 +90,8 @@ public class WandOfScale extends DamageWand { @Override public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) { //acts like blazing enchantment - new Lucky().proc( staff, attacker, defender, damage); + + Buff.affect(defender, Bleeding.class).set( 4+staff.buffedLvl()); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/NewsScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/NewsScene.java index 449fc46eb..8da6e9d11 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/NewsScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/NewsScene.java @@ -85,7 +85,7 @@ public class NewsScene extends PixelScene { float top = 18; displayingNoArticles = !News.articlesAvailable(); - if (displayingNoArticles || Messages.lang() != Languages.ENGLISH) { + if (displayingNoArticles || Messages.lang() != Languages.CHINESE) { Component newsInfo = new NewsInfo(); newsInfo.setRect(left, 20, fullWidth, 0); @@ -186,7 +186,7 @@ public class NewsScene extends PixelScene { String message = ""; - if (Messages.lang() != Languages.ENGLISH){ + if (Messages.lang() != Languages.CHINESE){ message += Messages.get(this, "english_warn"); } @@ -270,7 +270,7 @@ public class NewsScene extends PixelScene { icon(News.parseArticleIcon(article)); long lastRead = SPDSettings.newsLastRead(); if (lastRead > 0 && article.date.getTime() > lastRead) { - textColor(Window.SHPX_COLOR); + textColor(Window.TITLE_COLOR); } Calendar cal = Calendar.getInstance(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/ThanksScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/ThanksScene.java index 1b62568b1..708202657 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/ThanksScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/ThanksScene.java @@ -155,8 +155,8 @@ public class ThanksScene extends PixelScene { "Tianscar", new TianscarSprite(), "Main Dev:Carbonized Pixel Dungeon", - "加入碳化总群", - "https://jq.qq.com/?_wv=1027&k=6jAlnlNL"); + "", + ""); if (landscape()){ evan.setRect((Camera.main.width - colWidth)/2f-10, reddragon.bottom() + 8, colWidth+20, 0); } else { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Icons.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Icons.java index 2ecab8ee9..c5d09862e 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Icons.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Icons.java @@ -363,8 +363,8 @@ public enum Icons { return get( ROGUE ); case HUNTRESS: return get( HUNTRESS ); - case COMINGSOON: - return get( HUNTRESS ); +// case COMINGSOON: +// return get( HUNTRESS ); default: return null; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/mlpd/vM0_6_7_X_Changes.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/mlpd/vM0_6_7_X_Changes.java index 6564fee46..d59108dbf 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/mlpd/vM0_6_7_X_Changes.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/changelist/mlpd/vM0_6_7_X_Changes.java @@ -35,6 +35,7 @@ import java.util.ArrayList; public class vM0_6_7_X_Changes { public static void addAllChanges(ArrayList changeInfos) { + add_v0_6_17_Changes(changeInfos); add_v0_6_16_Changes(changeInfos); add_v0_6_15_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); } + public static void add_v0_6_17_Changes( ArrayList 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 changeInfos ) { ChangeInfo changes = new ChangeInfo("v0.6.0.0-Beta21-p2.85", true, ""); changes.hardlight(Window.TITLE_COLOR); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndChallenges.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndChallenges.java index c6a1bc434..c56f3a02c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndChallenges.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndChallenges.java @@ -95,7 +95,7 @@ public class WndChallenges extends Window { final int warning_mode =9; final int custom_mode = 13; final int Test_Debug = 14; - final int fixed_mode = 15; + boolean isCustom = false; float pos = 0; @@ -103,7 +103,7 @@ public class WndChallenges extends Window { 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); switch (i){ case normal_mode: @@ -126,10 +126,6 @@ public class WndChallenges extends Window { block.text(Messages.get(Challenges.class, "test")); block.hardlight(0xFFFF00); break; - case fixed_mode: - block.text(Messages.get(Challenges.class, "fixed")); - block.hardlight(Window.CBLACK); - break; } block.setPos((WIDTH - block.width()) / 2, pos + GAP *4); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoMob.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoMob.java index a3da2ecc6..ce4bd7b55 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoMob.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoMob.java @@ -38,8 +38,6 @@ public class WndInfoMob extends WndTitledMessage { } - - private static class MobTitle extends Component { private static final int GAP = 2; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndStartGame.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndStartGame.java index f0df8acf4..b1309879c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndStartGame.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndStartGame.java @@ -37,7 +37,6 @@ import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.InterlevelScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.IntroScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; -import com.shatteredpixel.shatteredpixeldungeon.scenes.TitleScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; 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.StyledButton; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; -import com.shatteredpixel.shatteredpixeldungeon.utils.DungeonSeed; import com.watabou.noosa.ColorBlock; import com.watabou.noosa.Game; import com.watabou.noosa.Image; @@ -59,22 +57,6 @@ import java.util.ArrayList; 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 HEIGHT = 160; @@ -95,26 +77,45 @@ public class WndStartGame extends Window { spacers = new ArrayList<>(); if (DeviceCompat.isDebug() || Badges.isUnlocked(Badges.Badge.VICTORY)){ - StyledButton chkSaver = new StyledButton(Chrome.Type.RED_BUTTON, Messages.get(WndStartGame.class, - "mode"), 5){ +// StyledButton chkSaver = new StyledButton(Chrome.Type.RED_BUTTON, Messages.get(WndStartGame.class, +// "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 protected void onClick() { - super.onClick(); - ShatteredPixelDungeon.scene().addToFront(new WndDLC(SPDSettings.dlc(), true) { + ShatteredPixelDungeon.scene().addToFront(new WndChallenges(SPDSettings.challenges(), true) { public void onBackPressed() { super.onBackPressed(); - icon(new ItemSprite(SPDSettings.dlc() > 0 ? ItemSpriteSheet.DG26 : - ItemSpriteSheet.DG24)); + icon(Icons.get(SPDSettings.challenges() > 0 ? Icons.CHALLENGE_ON : Icons.CHALLENGE_OFF)); } } ); } - }; - chkSaver.active = false; - chkSaver.alpha(0.5f); - chkSaver.icon(new ItemSprite(ItemSpriteSheet.DG26, null)); - add( chkSaver ); - buttons.add(chkSaver); + hardButton.leftJustify = true; + hardButton.active = false; + hardButton.icon(new ItemSprite(ItemSpriteSheet.ARTIFACT_HOURGLASS, null)); + hardButton.alpha(0f); + add(hardButton); + buttons.add(hardButton); StyledButton nameButton = new StyledButton(Chrome.Type.RED_BUTTON, Messages.get(WndStartGame.class, "seedtitle"), 5){ @@ -122,7 +123,8 @@ public class WndStartGame extends Window { public void onClick() { if(Badges.isUnlocked(Badges.Badge.BOSS_SLAIN_1)){ 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"), Messages.get(WndStartGame.class,"custom_name_clear")){ @Override @@ -152,25 +154,6 @@ public class WndStartGame extends Window { buttons.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, "news"), 5){ @Override @@ -186,7 +169,7 @@ public class WndStartGame extends Window { csbutton.leftJustify = true; csbutton.active = false; csbutton.icon(new ItemSprite(ItemSpriteSheet.ARTIFACT_SPELLBOOK, null)); - csbutton.alpha(0.5f); + csbutton.alpha(0f); add(csbutton); buttons.add(csbutton); } @@ -222,6 +205,7 @@ public class WndStartGame extends Window { this.width = width; this.height = top+bg.marginBottom()-y-1; +// this.height = top+bg.marginBottom()-y-1; bg.size(this.width, this.height); } @@ -413,7 +397,7 @@ public class WndStartGame extends Window { private IconButton heroMisc; private IconButton heroSubclass; private IconButton Telnetsc; - + private IconButton infoButton; private RenderedTextBlock name; private static final int BTN_SIZE = 20; @@ -501,6 +485,21 @@ public class WndStartGame extends Window { name = PixelScene.renderTextBlock(12); 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; } @@ -508,16 +507,19 @@ public class WndStartGame extends Window { protected void layout() { super.layout(); - avatar.x = x-10; + avatar.x = x-12; avatar.y = y + (height - avatar.height() - name.height() - 4)/2f; PixelScene.align(avatar); name.setPos( - x-10 + (avatar.width() - name.width())/2f, + x-2 + (avatar.width() - name.width())/2f, avatar.y + avatar.height() + 3 ); PixelScene.align(name); + infoButton.setPos(-4, + name.y-15 + name.height()); + heroItem.setPos(0 + (name.width()/60f), name.y + name.height() + 3);