diff --git a/skytemple/data/locale/skytemple.pot b/skytemple/data/locale/skytemple.pot index 8c275416a..333d334b0 100644 --- a/skytemple/data/locale/skytemple.pot +++ b/skytemple/data/locale/skytemple.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: skytemple\n" "Report-Msgid-Bugs-To: https://translate.skytemple.org\n" -"POT-Creation-Date: 2021-04-05 12:32+0000\n" +"POT-Creation-Date: 2021-04-05 17:04+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -882,7 +882,7 @@ msgid "9" msgstr "" #: py_desmume/desmume/frontend/PyDeSmuMe.glade:598 -#: skytemple/skytemple/module/monster/controller/monster.py:425 +#: skytemple/skytemple/module/monster/controller/monster.py:452 msgid "Size" msgstr "" @@ -3626,7 +3626,7 @@ msgstr "" #: skytemple/skytemple/module/lists/controller/actor_list.glade:184 #: skytemple/skytemple/module/lists/controller/rank_list.glade:89 #: skytemple/skytemple/module/lists/controller/world_map.glade:405 -#: skytemple/skytemple/module/monster/controller/monster.glade:1207 +#: skytemple/skytemple/module/monster/controller/monster.glade:1243 #: skytemple/skytemple/module/moves_items/controller/item_effects.glade:215 #: skytemple/skytemple/module/moves_items/controller/item_effects.glade:453 #: skytemple/skytemple/module/moves_items/controller/move_effects.glade:224 @@ -4309,6 +4309,10 @@ msgstr "" #: skytemple-ssb-debugger/skytemple_ssb_debugger/debugger.glade:2035 #: skytemple-ssb-debugger/skytemple_ssb_debugger/debugger.glade:2051 #: skytemple-ssb-debugger/skytemple_ssb_debugger/debugger.glade:2067 +#: skytemple/skytemple/module/monster/controller/monster.py:1063 +#: skytemple/skytemple/module/monster/controller/monster.py:1064 +#: skytemple/skytemple/module/monster/controller/monster.py:1065 +#: skytemple/skytemple/module/monster/controller/monster.py:1066 msgid "???" msgstr "" @@ -5406,7 +5410,7 @@ msgid "Moves allowed:" msgstr "" #: skytemple/skytemple/module/dungeon/controller/fixed.glade:1183 -#: skytemple/skytemple/module/monster/controller/monster.glade:1449 +#: skytemple/skytemple/module/monster/controller/monster.glade:1485 #: skytemple/skytemple/module/moves_items/controller/item.glade:923 #: skytemple/skytemple/module/moves_items/controller/move.glade:747 #: skytemple/skytemple/skytemple.glade:300 @@ -5474,7 +5478,7 @@ msgstr "" #: skytemple/skytemple/module/dungeon/controller/fixed.glade:1660 #: skytemple/skytemple/module/map_bg/controller/map_bg.glade:4312 #: skytemple/skytemple/module/map_bg/controller/map_bg.glade:4577 -#: skytemple/skytemple/module/monster/controller/monster.glade:2643 +#: skytemple/skytemple/module/monster/controller/monster.glade:2813 msgid "Settings" msgstr "" @@ -6076,7 +6080,7 @@ msgstr "" #: skytemple/skytemple/module/dungeon/controller/floor.glade:4116 #: skytemple/skytemple/module/dungeon/controller/floor.glade:4277 #: skytemple/skytemple/module/dungeon/controller/floor.glade:4438 -#: skytemple/skytemple/module/monster/controller/monster.py:414 +#: skytemple/skytemple/module/monster/controller/monster.py:441 #: skytemple/skytemple/module/moves_items/controller/item_lists.glade:733 #: skytemple/skytemple/module/moves_items/controller/item_lists.glade:899 #: skytemple/skytemple/module/moves_items/controller/item_lists.glade:1042 @@ -6201,7 +6205,7 @@ msgid "Poké (Money)" msgstr "" #: skytemple/skytemple/module/dungeon/controller/floor.py:70 -#: skytemple/skytemple/module/monster/controller/monster.glade:2626 +#: skytemple/skytemple/module/monster/controller/monster.glade:2796 #: skytemple/skytemple/module/moves_items/controller/item_lists.py:63 #: skytemple/skytemple/module/moves_items/controller/move.glade:1288 msgid "Other" @@ -9163,210 +9167,238 @@ msgstr "" msgid "Name:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1231 +#: skytemple/skytemple/module/monster/controller/monster.glade:1267 msgid "Body Size:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1243 +#: skytemple/skytemple/module/monster/controller/monster.glade:1279 msgid "Movement:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1255 +#: skytemple/skytemple/module/monster/controller/monster.glade:1291 msgid "IQ Group:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1267 +#: skytemple/skytemple/module/monster/controller/monster.glade:1303 msgid "Ability:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1279 +#: skytemple/skytemple/module/monster/controller/monster.glade:1315 msgid "Exp. Yield:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1291 +#: skytemple/skytemple/module/monster/controller/monster.glade:1327 msgid "Recruit Rate:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1303 +#: skytemple/skytemple/module/monster/controller/monster.glade:1339 msgid "Personality:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1474 +#: skytemple/skytemple/module/monster/controller/monster.glade:1510 msgid "Base HP:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1486 +#: skytemple/skytemple/module/monster/controller/monster.glade:1522 msgid "Weight:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1498 +#: skytemple/skytemple/module/monster/controller/monster.glade:1534 msgid "Base Atk:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1510 +#: skytemple/skytemple/module/monster/controller/monster.glade:1546 msgid "Base Sp. Atk:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1522 +#: skytemple/skytemple/module/monster/controller/monster.glade:1558 msgid "Base Def:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1534 +#: skytemple/skytemple/module/monster/controller/monster.glade:1570 msgid "Base Sp. Def:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1546 +#: skytemple/skytemple/module/monster/controller/monster.glade:1582 msgid "Size:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1558 +#: skytemple/skytemple/module/monster/controller/monster.glade:1594 msgid "Movement Speed:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1716 +#: skytemple/skytemple/module/monster/controller/monster.glade:1752 msgid "Base Stats" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1741 +#: skytemple/skytemple/module/monster/controller/monster.glade:1777 msgid "Base Form Index:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1753 +#: skytemple/skytemple/module/monster/controller/monster.glade:1789 msgid "Pre Evolution:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1765 -msgid "Evolution Method:" +#: skytemple/skytemple/module/monster/controller/monster.glade:1801 +msgid "Main Requirement:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1777 -msgid "Parameters:" +#: skytemple/skytemple/module/monster/controller/monster.glade:1813 +msgid "Parameter:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1845 +#: skytemple/skytemple/module/monster/controller/monster.glade:1869 msgid "label_base_form_index" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1858 +#: skytemple/skytemple/module/monster/controller/monster.glade:1882 msgid "label_pre_evo_index" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1899 +#: skytemple/skytemple/module/monster/controller/monster.glade:1931 +msgid "label_param" +msgstr "" + +#: skytemple/skytemple/module/monster/controller/monster.glade:1943 +msgid "Additional Requirement:" +msgstr "" + +#: skytemple/skytemple/module/monster/controller/monster.glade:1959 msgid "Evolution" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1924 +#: skytemple/skytemple/module/monster/controller/monster.glade:1984 msgid "Item 1:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1936 +#: skytemple/skytemple/module/monster/controller/monster.glade:1996 msgid "Item 2:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1948 +#: skytemple/skytemple/module/monster/controller/monster.glade:2008 msgid "Item 3:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:1960 +#: skytemple/skytemple/module/monster/controller/monster.glade:2020 msgid "Item 4:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:2028 +#: skytemple/skytemple/module/monster/controller/monster.glade:2100 msgid "Exclusive Items" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:2051 +#: skytemple/skytemple/module/monster/controller/monster.glade:2123 msgid "Unk 1.0:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:2063 +#: skytemple/skytemple/module/monster/controller/monster.glade:2135 msgid "Unk 31:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:2088 +#: skytemple/skytemple/module/monster/controller/monster.glade:2160 msgid "Spawn Threshold:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:2112 +#: skytemple/skytemple/module/monster/controller/monster.glade:2184 msgid "Unk 17:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:2137 +#: skytemple/skytemple/module/monster/controller/monster.glade:2209 msgid "Unk 18:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:2149 +#: skytemple/skytemple/module/monster/controller/monster.glade:2221 msgid "Shadow Size:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:2186 +#: skytemple/skytemple/module/monster/controller/monster.glade:2258 msgid "Chance to spawn asleep:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:2211 +#: skytemple/skytemple/module/monster/controller/monster.glade:2283 msgid "HP Regeneration:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:2255 -msgid "Unk 27:" +#: skytemple/skytemple/module/monster/controller/monster.glade:2328 +msgid "Unk 1.1:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:2267 -msgid "Unk 28:" +#: skytemple/skytemple/module/monster/controller/monster.glade:2340 +msgid "Unk 1.2:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:2305 -msgid "Unk 29:" +#: skytemple/skytemple/module/monster/controller/monster.glade:2352 +msgid "Unk 1.3:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:2317 -msgid "Unk 30:" +#: skytemple/skytemple/module/monster/controller/monster.glade:2364 +msgid "Can move:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:2355 -msgid "Unk 1.1:" +#: skytemple/skytemple/module/monster/controller/monster.glade:2376 +msgid "Can throw items:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:2367 -msgid "Unk 1.2:" +#: skytemple/skytemple/module/monster/controller/monster.glade:2388 +msgid "Can evolve:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:2379 -msgid "Unk 1.3:" +#: skytemple/skytemple/module/monster/controller/monster.glade:2400 +msgid "Item req. for spawn:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:2391 -msgid "Can move:" +#: skytemple/skytemple/module/monster/controller/monster.glade:2600 +msgid "Chest with type 2 exclusive items:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:2403 -msgid "Unk 1.5:" +#: skytemple/skytemple/module/monster/controller/monster.glade:2624 +msgid "Chest with type 1 exclusive items:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:2415 -msgid "Can evolve:" +#: skytemple/skytemple/module/monster/controller/monster.glade:2648 +msgid "Chest with normal items:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.glade:2427 -msgid "Item req. for spawn:" +#: skytemple/skytemple/module/monster/controller/monster.glade:2672 +msgid "No drop:" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:320 +#: skytemple/skytemple/module/monster/controller/monster.glade:2696 +msgid "Chest Drop Rates:" +msgstr "" + +#: skytemple/skytemple/module/monster/controller/monster.glade:2712 +msgid "label_chance_no_drop" +msgstr "" + +#: skytemple/skytemple/module/monster/controller/monster.glade:2724 +msgid "label_chance_normal_items" +msgstr "" + +#: skytemple/skytemple/module/monster/controller/monster.glade:2736 +msgid "label_chance_exclusive1" +msgstr "" + +#: skytemple/skytemple/module/monster/controller/monster.glade:2748 +msgid "label_chance_exclusive2" +msgstr "" + +#: skytemple/skytemple/module/monster/controller/monster.py:324 msgid "" -"Values depend on Evolution Type:\n" -"- None: n/a - n/a\n" -"- Level: Level required to evolve - Optional evolutionary item ID\n" -"- IQ: IQ required - Optional evolutionary item ID\n" -"- Items: Regular Item ID - Optional evolutionary item ID\n" -"- Unknown: ? - ?\n" -"- Link Cable: 0 - 1" +"Value depends on Main Requirement:\n" +"- Never Evolves: Unused\n" +"- Level: Level required to evolve\n" +"- IQ: IQ required\n" +"- Items: ID of the item required\n" +"- Recruited: ID of the Pokémon you have to recruit\n" +"- No Main Requirement: Unused" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:327 +#: skytemple/skytemple/module/monster/controller/monster.py:331 msgid "Evolution Parameters" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:337 +#: skytemple/skytemple/module/monster/controller/monster.py:341 msgid "" "The values are actually percentages.\n" "10 -> 1.0%,\n" @@ -9377,90 +9409,112 @@ msgid "" "If you have recruited this Pokémon already, its recruit rate is halved (only if it's positive)." msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:344 +#: skytemple/skytemple/module/monster/controller/monster.py:348 msgid "Recruit Rate" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:354 +#: skytemple/skytemple/module/monster/controller/monster.py:358 #, python-format msgid "" "The % of HP that this Pokémon regenerates at the end of each turn is equal to 1/(value * 2), before applying any modifiers.\n" "The final value is capped between 1/30 and 1/500" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:357 +#: skytemple/skytemple/module/monster/controller/monster.py:361 msgid "HP Regeneration" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:367 +#: skytemple/skytemple/module/monster/controller/monster.py:371 msgid "Whether or not the enemy or ally AI will move the Pokémon in dungeons." msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:368 +#: skytemple/skytemple/module/monster/controller/monster.py:372 msgid "Can Move?" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:378 +#: skytemple/skytemple/module/monster/controller/monster.py:382 +msgid "Whether or not the Pokémon can throw any items." +msgstr "" + +#: skytemple/skytemple/module/monster/controller/monster.py:383 +msgid "Can Throw Items?" +msgstr "" + +#: skytemple/skytemple/module/monster/controller/monster.py:393 +msgid "" +"Controls the drop rates of different types of chests.\n" +"Each drop type x has a chance of (x rate)/(sum of all the rates) to be selected." +msgstr "" + +#: skytemple/skytemple/module/monster/controller/monster.py:395 +msgid "Chests drop rates" +msgstr "" + +#: skytemple/skytemple/module/monster/controller/monster.py:405 msgid "Whether or not the Pokémon can evolve at Luminous Spring (If it's off, it will never be allowed to evolve even if it has an evolution)." msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:380 +#: skytemple/skytemple/module/monster/controller/monster.py:407 msgid "Can Evolve?" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:390 +#: skytemple/skytemple/module/monster/controller/monster.py:417 msgid "Whether or not you need to have a special item in the bag (mystery part/secret slab) for the Pokémon to spawn in dungeons" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:392 +#: skytemple/skytemple/module/monster/controller/monster.py:419 msgid "Item Required for spawning?" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:402 +#: skytemple/skytemple/module/monster/controller/monster.py:429 msgid "If the current $SCENARIO_BALANCE_FLAG value is lower than this number, the pokémon won't spawn in dungeons." msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:403 +#: skytemple/skytemple/module/monster/controller/monster.py:430 msgid "Spawn Threshold" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:413 +#: skytemple/skytemple/module/monster/controller/monster.py:440 msgid "Affects the damage the Pokémon takes when attacked with Grass Knot." msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:424 +#: skytemple/skytemple/module/monster/controller/monster.py:451 msgid "Affects the damage the Pokémon takes when attacked with a Sizebust Orb." msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:667 +#: skytemple/skytemple/module/monster/controller/monster.py:698 msgid "Export Pokémon as..." msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:706 +#: skytemple/skytemple/module/monster/controller/monster.py:737 msgid "Import Pokémon from..." msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:941 +#: skytemple/skytemple/module/monster/controller/monster.py:975 msgid "Stats and Moves" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:944 +#: skytemple/skytemple/module/monster/controller/monster.py:978 msgid "Portraits" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:952 +#: skytemple/skytemple/module/monster/controller/monster.py:986 msgid "Sprites" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:969 +#: skytemple/skytemple/module/monster/controller/monster.py:1013 +msgid "??? Enter a valid parameter (#)" +msgstr "" + +#: skytemple/skytemple/module/monster/controller/monster.py:1026 msgid "??? Enter a valid Base ID (#)" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:980 +#: skytemple/skytemple/module/monster/controller/monster.py:1037 msgid "??? Enter a valid Entry ID ($)" msgstr "" -#: skytemple/skytemple/module/monster/controller/monster.py:1012 +#: skytemple/skytemple/module/monster/controller/monster.py:1098 msgid "" "The sprite memory size of this Pokémon was too low for this Pokémon's assigned sprite.\n" "SkyTemple automatically corrected it." diff --git a/skytemple/module/monster/controller/monster.glade b/skytemple/module/monster/controller/monster.glade index 7a51f31dd..0336c6383 100644 --- a/skytemple/module/monster/controller/monster.glade +++ b/skytemple/module/monster/controller/monster.glade @@ -916,7 +916,7 @@ If you choose to export both genders, upon import the matching gender entry will True True - + True False @@ -1198,6 +1198,42 @@ If you choose to export both genders, upon import the matching gender entry will 11 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1721,7 +1757,7 @@ If you choose to export both genders, upon import the matching gender entry will - + True False @@ -1762,7 +1798,7 @@ If you choose to export both genders, upon import the matching gender entry will True False end - Evolution Method: + Main Requirement: 0 @@ -1774,7 +1810,7 @@ If you choose to export both genders, upon import the matching gender entry will True False end - Parameters: + Parameter: 0 @@ -1793,18 +1829,6 @@ If you choose to export both genders, upon import the matching gender entry will 3 - - - True - True - 10 - - - - 2 - 3 - - True @@ -1887,6 +1911,42 @@ If you choose to export both genders, upon import the matching gender entry will 3 + + + True + False + + + + 1 + 4 + 3 + + + + + True + False + start + label_param + + + 2 + 3 + + + + + True + False + end + Additional Requirement: + + + 0 + 4 + + 3 @@ -1904,7 +1964,7 @@ If you choose to export both genders, upon import the matching gender entry will - + True False @@ -2016,6 +2076,18 @@ If you choose to export both genders, upon import the matching gender entry will 3 + + + + + + + + + + + + 4 @@ -2033,7 +2105,7 @@ If you choose to export both genders, upon import the matching gender entry will - + True False @@ -2238,6 +2310,7 @@ If you choose to export both genders, upon import the matching gender entry will True False + 1 skytemple-help-about-symbolic @@ -2247,106 +2320,6 @@ If you choose to export both genders, upon import the matching gender entry will 14 - - - True - False - end - Unk 27: - - - 0 - 15 - - - - - True - False - end - Unk 28: - - - 0 - 16 - - - - - True - True - 10 - - - - 1 - 15 - 2 - - - - - True - True - 10 - - - - 1 - 16 - 2 - - - - - True - False - end - Unk 29: - - - 0 - 17 - - - - - True - False - end - Unk 30: - - - 0 - 18 - - - - - True - True - 10 - - - - 1 - 17 - 2 - - - - - True - True - 10 - - - - 1 - 18 - 2 - - True @@ -2400,7 +2373,7 @@ If you choose to export both genders, upon import the matching gender entry will True False end - Unk 1.5: + Can throw items: 0 @@ -2600,7 +2573,204 @@ If you choose to export both genders, upon import the matching gender entry will - + + True + True + True + center + + + + True + False + skytemple-help-about-symbolic + + + + + 2 + 5 + + + + + True + False + end + Chest with type 2 exclusive items: + + + 0 + 19 + + + + + True + True + 10 + + + + 1 + 19 + + + + + True + False + end + Chest with type 1 exclusive items: + + + 0 + 18 + + + + + True + True + 10 + + + + 1 + 18 + + + + + True + False + end + Chest with normal items: + + + 0 + 17 + + + + + True + True + 10 + + + + 1 + 17 + + + + + True + False + end + No drop: + + + 0 + 16 + + + + + True + True + 10 + + + + 1 + 16 + + + + + True + False + start + Chest Drop Rates: + + + + + + 0 + 15 + 2 + + + + + True + False + start + label_chance_no_drop + + + 2 + 16 + + + + + True + False + start + label_chance_normal_items + + + 2 + 17 + + + + + True + False + start + label_chance_exclusive1 + + + 2 + 18 + + + + + True + False + start + label_chance_exclusive2 + + + 2 + 19 + + + + + True + True + True + center + + + + True + False + skytemple-help-about-symbolic + + + + + 2 + 15 + diff --git a/skytemple/module/monster/controller/monster.py b/skytemple/module/monster/controller/monster.py index 28e78e8b2..9e529b652 100644 --- a/skytemple/module/monster/controller/monster.py +++ b/skytemple/module/monster/controller/monster.py @@ -34,7 +34,7 @@ from skytemple_files.common.types.file_types import FileType from skytemple_files.common.xml_util import prettify from skytemple_files.data.md.model import Gender, PokeType, MovementType, IQGroup, Ability, EvolutionMethod, \ - NUM_ENTITIES, ShadowSize, MONSTER_BIN, MdEntry + AdditionalRequirement, NUM_ENTITIES, ShadowSize, MONSTER_BIN, MdEntry from skytemple.controller.main import MainController as SkyTempleMainController from skytemple_files.data.monster_xml import monster_xml_export from skytemple_files.common.i18n_util import f, _ @@ -94,6 +94,8 @@ def get_view(self) -> Gtk.Widget: self._update_pre_evo_label() self._update_base_form_label() + self._update_param_label() + self._update_chance_label() self.builder.connect_signals(self) self.builder.get_object('draw_sprite').queue_draw() @@ -297,10 +299,11 @@ def on_entry_size_changed(self, w, *args): def on_entry_evo_param1_changed(self, w, *args): self._update_from_entry(w) + self._update_param_label() self.mark_as_modified() - def on_entry_evo_param2_changed(self, w, *args): - self._update_from_entry(w) + def on_cb_evo_param2_changed(self, w, *args): + self._update_from_cb(w) self.mark_as_modified() def on_entry_pre_evo_index_changed(self, w, *args): @@ -310,6 +313,7 @@ def on_entry_pre_evo_index_changed(self, w, *args): def on_cb_evo_method_changed(self, w, *args): self._update_from_cb(w) + self._update_param_label() self.mark_as_modified() def on_btn_help_evo_params_clicked(self, w, *args): @@ -317,13 +321,13 @@ def on_btn_help_evo_params_clicked(self, w, *args): MainController.window(), Gtk.DialogFlags.DESTROY_WITH_PARENT, Gtk.MessageType.INFO, Gtk.ButtonsType.OK, - _("Values depend on Evolution Type:\n" - "- None: n/a - n/a\n" - "- Level: Level required to evolve - Optional evolutionary item ID\n" - "- IQ: IQ required - Optional evolutionary item ID\n" - "- Items: Regular Item ID - Optional evolutionary item ID\n" - "- Unknown: ? - ?\n" - "- Link Cable: 0 - 1"), + _("Value depends on Main Requirement:\n" + "- Never Evolves: Unused\n" + "- Level: Level required to evolve\n" + "- IQ: IQ required\n" + "- Items: ID of the item required\n" + "- Recruited: ID of the Pokémon you have to recruit\n" + "- No Main Requirement: Unused"), title=_("Evolution Parameters") ) md.run() @@ -369,7 +373,30 @@ def on_btn_help_can_move_clicked(self, w, *args): ) md.run() md.destroy() - + + def on_btn_help_can_throw_clicked(self, w, *args): + md = SkyTempleMessageDialog( + MainController.window(), + Gtk.DialogFlags.DESTROY_WITH_PARENT, Gtk.MessageType.INFO, + Gtk.ButtonsType.OK, + _("Whether or not the Pokémon can throw any items."), + title=_("Can Throw Items?") + ) + md.run() + md.destroy() + + def on_btn_help_chest_drop_clicked(self, w, *args): + md = SkyTempleMessageDialog( + MainController.window(), + Gtk.DialogFlags.DESTROY_WITH_PARENT, Gtk.MessageType.INFO, + Gtk.ButtonsType.OK, + _("""Controls the drop rates of different types of chests. +Each drop type x has a chance of (x rate)/(sum of all the rates) to be selected."""), + title=_("Chests drop rates") + ) + md.run() + md.destroy() + def on_btn_help_can_evolve_clicked(self, w, *args): md = SkyTempleMessageDialog( MainController.window(), @@ -505,18 +532,22 @@ def on_entry_chance_spawn_asleep_changed(self, w, *args): def on_entry_unk27_changed(self, w, *args): self._update_from_entry(w) + self._update_chance_label() self.mark_as_modified() def on_entry_unk29_changed(self, w, *args): self._update_from_entry(w) + self._update_chance_label() self.mark_as_modified() def on_entry_unk28_changed(self, w, *args): self._update_from_entry(w) + self._update_chance_label() self.mark_as_modified() def on_entry_unk30_changed(self, w, *args): self._update_from_entry(w) + self._update_chance_label() self.mark_as_modified() def on_entry_base_form_index_changed(self, w, *args): @@ -790,6 +821,9 @@ def _init_stores(self): self._comboxbox_for_enum(['cb_ability_primary', 'cb_ability_secondary'], Ability, True) # Evolution Methods self._comboxbox_for_enum(['cb_evo_method'], EvolutionMethod) + # Additional Requirement + self._comboxbox_for_enum(['cb_evo_param2'], AdditionalRequirement) + # Shadow Size self._comboxbox_for_enum(['cb_shadow_size'], ShadowSize) @@ -820,7 +854,7 @@ def _init_values(self): self._set_entry('entry_base_form_index', self.entry.base_form_index) self._set_cb('cb_evo_method', self.entry.evo_method.value) self._set_entry('entry_evo_param1', self.entry.evo_param1) - self._set_entry('entry_evo_param2', self.entry.evo_param2) + self._set_cb('cb_evo_param2', self.entry.evo_param2.value) self._set_cb('cb_gender', self.entry.gender.value) self._set_entry('entry_body_size', self.entry.body_size) self._set_cb('cb_type_primary', self.entry.type_primary.value) @@ -955,6 +989,29 @@ def _reload_sprite_page(self): self.module.get_sprite_view(self.entry.sprite_index, self.item_id), tab_label ) + def _update_param_label(self): + label: Gtk.Label = self.builder.get_object('label_param') + entry: Gtk.Entry = self.builder.get_object('entry_evo_param1') + cb: Gtk.ComboBox = self.builder.get_object('cb_evo_method') + val = cb.get_model()[cb.get_active_iter()][0] + try: + entry_id = int(entry.get_text()) + if val==3: + if entry_id >= MAX_ITEMS: + raise ValueError() + name = self._string_provider.get_value(StringType.ITEM_NAMES, entry_id) + label.set_text(f'#{entry_id:03d}: {name}') + elif val==4: + if entry_id > NUM_ENTITIES: + raise ValueError() + entry = self.module.monster_md[entry_id] + name = self._string_provider.get_value(StringType.POKEMON_NAMES, entry.md_index_base) + label.set_text(f'#{entry.md_index_base:03d}: {name}') + else: + label.set_text(f'') + except BaseException: + label.set_text(_('??? Enter a valid parameter (#)')) + def _update_base_form_label(self): label: Gtk.Label = self.builder.get_object('label_base_form_index') entry: Gtk.Entry = self.builder.get_object('entry_base_form_index') @@ -978,6 +1035,35 @@ def _update_pre_evo_label(self): label.set_text(f'${entry.md_index:04d}: {name} ({entry.gender.name[0]})') except BaseException: label.set_text(_('??? Enter a valid Entry ID ($)')) + + def _update_chance_label(self): + label1: Gtk.Label = self.builder.get_object('label_chance_no_drop') + entry1: Gtk.Entry = self.builder.get_object('entry_unk27') + label2: Gtk.Label = self.builder.get_object('label_chance_normal_items') + entry2: Gtk.Entry = self.builder.get_object('entry_unk28') + label3: Gtk.Label = self.builder.get_object('label_chance_exclusive1') + entry3: Gtk.Entry = self.builder.get_object('entry_unk29') + label4: Gtk.Label = self.builder.get_object('label_chance_exclusive2') + entry4: Gtk.Entry = self.builder.get_object('entry_unk30') + try: + entry1_value = int(entry1.get_text()) + if entry1_value==0: + entry1_value = 1 + entry2_value = entry3_value = entry4_value = 0 + else: + entry2_value = int(entry2.get_text()) + entry3_value = int(entry3.get_text()) + entry4_value = int(entry4.get_text()) + sum_values = entry1_value+entry2_value+entry3_value+entry4_value + label1.set_text(f'{entry1_value/sum_values*100:2.02f}%') + label2.set_text(f'{entry2_value/sum_values*100:2.02f}%') + label3.set_text(f'{entry3_value/sum_values*100:2.02f}%') + label4.set_text(f'{entry4_value/sum_values*100:2.02f}%') + except BaseException: + label1.set_text(_('???')) + label2.set_text(_('???')) + label3.set_text(_('???')) + label4.set_text(_('???')) def _check_sprite_size(self, show_warning): """