bcsfe 3.0.1__tar.gz → 3.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. {bcsfe-3.0.1 → bcsfe-3.2.0}/PKG-INFO +110 -20
  2. bcsfe-3.0.1/src/bcsfe.egg-info/PKG-INFO → bcsfe-3.2.0/README.md +105 -44
  3. {bcsfe-3.0.1 → bcsfe-3.2.0}/pyproject.toml +4 -4
  4. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/__init__.py +1 -1
  5. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/__main__.py +3 -1
  6. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/cli/color.py +4 -14
  7. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/cli/dialog_creator.py +23 -4
  8. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/cli/edits/__init__.py +5 -1
  9. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/cli/edits/basic_items.py +6 -0
  10. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/cli/edits/cat_editor.py +150 -76
  11. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/cli/edits/event_tickets.py +2 -1
  12. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/cli/edits/map.py +46 -30
  13. bcsfe-3.2.0/src/bcsfe/cli/edits/max_all.py +146 -0
  14. bcsfe-3.2.0/src/bcsfe/cli/edits/storage.py +214 -0
  15. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/cli/feature_handler.py +14 -3
  16. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/cli/main.py +1 -1
  17. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/cli/save_management.py +94 -27
  18. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/__init__.py +39 -7
  19. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/__init__.py +2 -0
  20. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/cat.py +28 -23
  21. bcsfe-3.2.0/src/bcsfe/core/game/catbase/gambling.py +111 -0
  22. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/gatya.py +14 -32
  23. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/scheme_items.py +1 -3
  24. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/special_skill.py +10 -14
  25. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/upgrade.py +6 -6
  26. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/map/chapters.py +12 -10
  27. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/map/enigma.py +5 -0
  28. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/map/event.py +24 -16
  29. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/map/gauntlets.py +13 -10
  30. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/map/legend_quest.py +9 -10
  31. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/map/map_names.py +56 -18
  32. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/map/outbreaks.py +2 -10
  33. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/map/story.py +1 -1
  34. bcsfe-3.2.0/src/bcsfe/core/game/map/uncanny.py +104 -0
  35. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/map/zero_legends.py +23 -9
  36. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/io/bc_csv.py +1 -1
  37. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/io/config.py +16 -4
  38. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/io/path.py +9 -9
  39. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/io/root_handler.py +7 -0
  40. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/io/save.py +46 -169
  41. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/io/waydroid.py +9 -5
  42. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/io/yaml.py +13 -7
  43. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/locale_handler.py +2 -2
  44. bcsfe-3.2.0/src/bcsfe/core/max_value_helper.py +70 -0
  45. bcsfe-3.2.0/src/bcsfe/core/server/game_data_getter.py +329 -0
  46. bcsfe-3.2.0/src/bcsfe/core/server/request.py +115 -0
  47. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/server/server_handler.py +21 -42
  48. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/server/updater.py +1 -2
  49. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/core/config.properties +5 -0
  50. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/core/input.properties +2 -0
  51. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/core/locale.properties +1 -1
  52. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/core/main.properties +10 -7
  53. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/core/save.properties +15 -3
  54. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/core/server.properties +4 -0
  55. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/core/theme.properties +2 -2
  56. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/edits/cats.properties +42 -1
  57. bcsfe-3.2.0/src/bcsfe/files/locales/en/edits/gambling.properties +3 -0
  58. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/edits/gatya.properties +3 -0
  59. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/edits/items.properties +3 -0
  60. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/edits/map.properties +19 -1
  61. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/edits/treasures.properties +2 -2
  62. bcsfe-3.2.0/src/bcsfe/files/locales/vi/core/config.properties +97 -0
  63. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/vi/core/files.properties +10 -9
  64. bcsfe-3.2.0/src/bcsfe/files/locales/vi/core/input.properties +32 -0
  65. bcsfe-3.2.0/src/bcsfe/files/locales/vi/core/locale.properties +33 -0
  66. bcsfe-3.2.0/src/bcsfe/files/locales/vi/core/main.properties +113 -0
  67. bcsfe-3.2.0/src/bcsfe/files/locales/vi/core/save.properties +107 -0
  68. bcsfe-3.2.0/src/bcsfe/files/locales/vi/core/server.properties +51 -0
  69. bcsfe-3.2.0/src/bcsfe/files/locales/vi/core/theme.properties +25 -0
  70. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/vi/core/updater.properties +20 -21
  71. bcsfe-3.2.0/src/bcsfe/files/locales/vi/edits/bannable_items.properties +31 -0
  72. bcsfe-3.2.0/src/bcsfe/files/locales/vi/edits/cats.properties +166 -0
  73. bcsfe-3.2.0/src/bcsfe/files/locales/vi/edits/enemy.properties +18 -0
  74. bcsfe-3.2.0/src/bcsfe/files/locales/vi/edits/fixes.properties +14 -0
  75. bcsfe-3.2.0/src/bcsfe/files/locales/vi/edits/gambling.properties +3 -0
  76. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/vi/edits/gamototo.properties +55 -54
  77. bcsfe-3.2.0/src/bcsfe/files/locales/vi/edits/gatya.properties +9 -0
  78. bcsfe-3.2.0/src/bcsfe/files/locales/vi/edits/gold_pass.properties +7 -0
  79. bcsfe-3.2.0/src/bcsfe/files/locales/vi/edits/items.properties +56 -0
  80. bcsfe-3.2.0/src/bcsfe/files/locales/vi/edits/map.properties +158 -0
  81. bcsfe-3.2.0/src/bcsfe/files/locales/vi/edits/medals.properties +9 -0
  82. bcsfe-3.2.0/src/bcsfe/files/locales/vi/edits/missions.properties +8 -0
  83. bcsfe-3.2.0/src/bcsfe/files/locales/vi/edits/playtime.properties +8 -0
  84. bcsfe-3.2.0/src/bcsfe/files/locales/vi/edits/scheme_items.properties +7 -0
  85. bcsfe-3.2.0/src/bcsfe/files/locales/vi/edits/special_skills.properties +11 -0
  86. bcsfe-3.2.0/src/bcsfe/files/locales/vi/edits/talent_orbs.properties +25 -0
  87. bcsfe-3.2.0/src/bcsfe/files/locales/vi/edits/treasures.properties +25 -0
  88. bcsfe-3.2.0/src/bcsfe/files/locales/vi/edits/user_rank.properties +10 -0
  89. bcsfe-3.2.0/src/bcsfe/files/locales/vi/metadata.json +4 -0
  90. bcsfe-3.0.1/README.md → bcsfe-3.2.0/src/bcsfe.egg-info/PKG-INFO +134 -15
  91. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe.egg-info/SOURCES.txt +5 -0
  92. bcsfe-3.0.1/src/bcsfe/core/game/map/uncanny.py +0 -47
  93. bcsfe-3.0.1/src/bcsfe/core/max_value_helper.py +0 -35
  94. bcsfe-3.0.1/src/bcsfe/core/server/game_data_getter.py +0 -217
  95. bcsfe-3.0.1/src/bcsfe/core/server/request.py +0 -64
  96. bcsfe-3.0.1/src/bcsfe/files/locales/vi/core/config.properties +0 -87
  97. bcsfe-3.0.1/src/bcsfe/files/locales/vi/core/input.properties +0 -29
  98. bcsfe-3.0.1/src/bcsfe/files/locales/vi/core/locale.properties +0 -32
  99. bcsfe-3.0.1/src/bcsfe/files/locales/vi/core/main.properties +0 -108
  100. bcsfe-3.0.1/src/bcsfe/files/locales/vi/core/save.properties +0 -99
  101. bcsfe-3.0.1/src/bcsfe/files/locales/vi/core/server.properties +0 -69
  102. bcsfe-3.0.1/src/bcsfe/files/locales/vi/core/theme.properties +0 -23
  103. bcsfe-3.0.1/src/bcsfe/files/locales/vi/edits/bannable_items.properties +0 -30
  104. bcsfe-3.0.1/src/bcsfe/files/locales/vi/edits/cats.properties +0 -125
  105. bcsfe-3.0.1/src/bcsfe/files/locales/vi/edits/enemy.properties +0 -17
  106. bcsfe-3.0.1/src/bcsfe/files/locales/vi/edits/fixes.properties +0 -13
  107. bcsfe-3.0.1/src/bcsfe/files/locales/vi/edits/gatya.properties +0 -5
  108. bcsfe-3.0.1/src/bcsfe/files/locales/vi/edits/gold_pass.properties +0 -6
  109. bcsfe-3.0.1/src/bcsfe/files/locales/vi/edits/items.properties +0 -53
  110. bcsfe-3.0.1/src/bcsfe/files/locales/vi/edits/map.properties +0 -118
  111. bcsfe-3.0.1/src/bcsfe/files/locales/vi/edits/medals.properties +0 -8
  112. bcsfe-3.0.1/src/bcsfe/files/locales/vi/edits/missions.properties +0 -7
  113. bcsfe-3.0.1/src/bcsfe/files/locales/vi/edits/playtime.properties +0 -7
  114. bcsfe-3.0.1/src/bcsfe/files/locales/vi/edits/scheme_items.properties +0 -6
  115. bcsfe-3.0.1/src/bcsfe/files/locales/vi/edits/special_skills.properties +0 -10
  116. bcsfe-3.0.1/src/bcsfe/files/locales/vi/edits/talent_orbs.properties +0 -25
  117. bcsfe-3.0.1/src/bcsfe/files/locales/vi/edits/treasures.properties +0 -24
  118. bcsfe-3.0.1/src/bcsfe/files/locales/vi/edits/user_rank.properties +0 -9
  119. bcsfe-3.0.1/src/bcsfe/files/locales/vi/metadata.json +0 -4
  120. {bcsfe-3.0.1 → bcsfe-3.2.0}/LICENSE +0 -0
  121. {bcsfe-3.0.1 → bcsfe-3.2.0}/MANIFEST.in +0 -0
  122. {bcsfe-3.0.1 → bcsfe-3.2.0}/setup.cfg +0 -0
  123. {bcsfe-3.0.1 → bcsfe-3.2.0}/setup.py +0 -0
  124. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/cli/__init__.py +0 -0
  125. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/cli/edits/aku_realm.py +0 -0
  126. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/cli/edits/clear_tutorial.py +0 -0
  127. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/cli/edits/enemy_editor.py +0 -0
  128. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/cli/edits/fixes.py +0 -0
  129. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/cli/edits/rare_ticket_trade.py +0 -0
  130. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/cli/file_dialog.py +0 -0
  131. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/cli/server_cli.py +0 -0
  132. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/country_code.py +0 -0
  133. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/crypto.py +0 -0
  134. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/__init__.py +0 -0
  135. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/battle/__init__.py +0 -0
  136. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/battle/battle_items.py +0 -0
  137. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/battle/cleared_slots.py +0 -0
  138. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/battle/enemy.py +0 -0
  139. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/battle/slots.py +0 -0
  140. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/beacon_base.py +0 -0
  141. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/drop_chara.py +0 -0
  142. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/gatya_item.py +0 -0
  143. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/item_pack.py +0 -0
  144. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/login_bonuses.py +0 -0
  145. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/matatabi.py +0 -0
  146. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/medals.py +0 -0
  147. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/mission.py +0 -0
  148. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/my_sale.py +0 -0
  149. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/nyanko_club.py +0 -0
  150. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/officer_pass.py +0 -0
  151. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/playtime.py +0 -0
  152. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/powerup.py +0 -0
  153. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/stamp.py +0 -0
  154. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/talent_orbs.py +0 -0
  155. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/unlock_popups.py +0 -0
  156. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/catbase/user_rank_rewards.py +0 -0
  157. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/gamoto/__init__.py +0 -0
  158. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/gamoto/base_materials.py +0 -0
  159. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/gamoto/cat_shrine.py +0 -0
  160. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/gamoto/catamins.py +0 -0
  161. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/gamoto/gamatoto.py +0 -0
  162. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/gamoto/ototo.py +0 -0
  163. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/localizable.py +0 -0
  164. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/map/__init__.py +0 -0
  165. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/map/aku.py +0 -0
  166. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/map/challenge.py +0 -0
  167. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/map/dojo.py +0 -0
  168. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/map/ex_stage.py +0 -0
  169. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/map/item_reward_stage.py +0 -0
  170. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/map/map_reset.py +0 -0
  171. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/map/timed_score.py +0 -0
  172. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game/map/tower.py +0 -0
  173. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/game_version.py +0 -0
  174. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/io/__init__.py +0 -0
  175. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/io/adb_handler.py +0 -0
  176. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/io/command.py +0 -0
  177. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/io/data.py +0 -0
  178. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/io/git_handler.py +0 -0
  179. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/io/json_file.py +0 -0
  180. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/io/thread_helper.py +0 -0
  181. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/log.py +0 -0
  182. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/server/__init__.py +0 -0
  183. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/server/client_info.py +0 -0
  184. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/server/event_data.py +0 -0
  185. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/server/headers.py +0 -0
  186. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/server/managed_item.py +0 -0
  187. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/core/theme_handler.py +0 -0
  188. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/core/files.properties +0 -0
  189. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/core/updater.properties +0 -0
  190. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/edits/bannable_items.properties +0 -0
  191. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/edits/enemy.properties +0 -0
  192. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/edits/fixes.properties +0 -0
  193. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/edits/gamototo.properties +0 -0
  194. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/edits/gold_pass.properties +0 -0
  195. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/edits/medals.properties +0 -0
  196. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/edits/missions.properties +0 -0
  197. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/edits/playtime.properties +0 -0
  198. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/edits/scheme_items.properties +0 -0
  199. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/edits/special_skills.properties +0 -0
  200. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/edits/talent_orbs.properties +0 -0
  201. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/locales/en/edits/user_rank.properties +0 -0
  202. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/max_values.json +0 -0
  203. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/themes/default.json +0 -0
  204. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/files/themes/discord.json +0 -0
  205. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe/py.typed +0 -0
  206. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe.egg-info/dependency_links.txt +0 -0
  207. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe.egg-info/entry_points.txt +0 -0
  208. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe.egg-info/requires.txt +0 -0
  209. {bcsfe-3.0.1 → bcsfe-3.2.0}/src/bcsfe.egg-info/top_level.txt +0 -0
  210. {bcsfe-3.0.1 → bcsfe-3.2.0}/tests/test_parse.py +0 -0
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bcsfe
3
- Version: 3.0.1
3
+ Version: 3.2.0
4
4
  Summary: A save file editor for The Battle Cats
5
5
  Author: fieryhenry
6
6
  License-Expression: GPL-3.0-or-later
7
- Project-URL: Homepage, https://github.com/fieryhenry/BCSFE-Python
8
- Project-URL: Repository, https://github.com/fieryhenry/BCSFE-Python
9
- Project-URL: Issues, https://github.com/fieryhenry/BCSFE-Python/issues
10
- Project-URL: Changelog, https://github.com/fieryhenry/BCSFE-Python/blob/master/CHANGELOG.md
7
+ Project-URL: Homepage, https://codeberg.org/fieryhenry/BCSFE-Python
8
+ Project-URL: Repository, https://codeberg.org/fieryhenry/BCSFE-Python
9
+ Project-URL: Issues, https://codeberg.org/fieryhenry/BCSFE-Python/issues
10
+ Project-URL: Changelog, https://codeberg.org/fieryhenry/BCSFE-Python/raw/branch/main/CHANGELOG.md
11
11
  Keywords: battle cats,save editor,hacking
12
12
  Classifier: Development Status :: 4 - Beta
13
13
  Classifier: Intended Audience :: End Users/Desktop
@@ -98,7 +98,8 @@ python3 -m pip install bcsfe
98
98
  py -m ensurepip --upgrade
99
99
  ```
100
100
 
101
- Again change `py` for `python` or `python3` if needed
101
+ Again change `py` for `python` or `python3` if needed. I won't mention this again, so just remember
102
+ the one which works at keep using that.
102
103
 
103
104
  5. To run the editor, as long as Python is in your PATH, you should be able to run:
104
105
 
@@ -112,9 +113,19 @@ bcsfe
112
113
  py -m bcsfe
113
114
  ```
114
115
 
115
- Again change `py` for `python` or `python3` if needed.
116
+ If you are using Windows and you are still struggling, try watching this video [here](https://codeberg.org/fieryhenry/videos/media/branch/main/bcsfe_windows_help.webm).
116
117
 
117
- If you are using Windows and you are still struggling, try watching this video [here](https://youtu.be/ypmT39jqZrg).
118
+ 7. To update the editor run:
119
+
120
+ ```powershell
121
+ py -m pip install -U bcsfe
122
+ ```
123
+
124
+ 8. To uninstall the editor run:
125
+
126
+ ```powershell
127
+ py -m pip uninstall bcsfe
128
+ ```
118
129
 
119
130
  ### Linux
120
131
 
@@ -145,6 +156,18 @@ bcsfe
145
156
  6. You may also need to install `tk` with your system package manager to open the
146
157
  file selection dialog. This package may be called `tk` or `python-tk` or `python3-tk`.
147
158
 
159
+ 7. To update the editor if you are using pipx run:
160
+
161
+ ```sh
162
+ pipx upgrade bcsfe
163
+ ```
164
+
165
+ 8. To uninstall the editor if you are using pipx run:
166
+
167
+ ```sh
168
+ pipx uninstall bcsfe
169
+ ```
170
+
148
171
  If anyone wants to put the editor on the AUR or another package repo, feel free, I'll be happy to
149
172
  help if needed.
150
173
 
@@ -207,23 +230,84 @@ selection dialog, you just have to type the file path manually.
207
230
  For example to save your save file to your downloads directory, the path might look something like
208
231
  `/storage/emulated/0/Download/SAVE_DATA` or `/sdcard/Download/SAVE_DATA`
209
232
 
233
+ 5. To update the editor run:
234
+
235
+ ```sh
236
+ pip install -U bcsfe
237
+ ```
238
+
239
+ Or
240
+
241
+ ```sh
242
+ python -m pip install -U bcsfe
243
+ ```
244
+
245
+
246
+ 5. To uninstall the editor run:
247
+
248
+ ```sh
249
+ pip uninstall bcsfe
250
+ ```
251
+
252
+ Or
253
+
254
+ ```sh
255
+ python -m pip uninstall bcsfe
256
+ ```
210
257
 
211
258
  ### iOS
212
259
 
213
- I do not have an iOS device, so there is no text tutorial, but Viarules has made a video
214
- tutorial [here](https://www.youtube.com/watch?v=xw-uOqQRYJ8). The video uses iSH which is
215
- apparently quite slow, and other people recommend using a-Shell instead.
260
+ I do not have an iOS device, so there is no tutorial. The video that was recommended is now outdated.
261
+ But for a general overview of what you need to do:
216
262
 
263
+ 1. Download a-Shell from the App Store
264
+ 2. Install the editor with:
217
265
 
266
+ ```sh
267
+ pip install bcsfe
268
+ ```
269
+
270
+ 3. Run the editor with:
271
+
272
+ ```sh
273
+ bcsfe
274
+ ```
275
+
276
+ Or if that doesn't work try:
277
+
278
+ ```sh
279
+ python -m bcsfe
280
+ ```
281
+
282
+ Or
283
+
284
+ ```sh
285
+ python3 -m bcsfe
286
+ ```
287
+
288
+ 4. To update the editor run:
289
+
290
+ ```sh
291
+ pip install -U bcsfe
292
+ ```
293
+
294
+ 5. To uninstall the editor run:
295
+
296
+ ```sh
297
+ pip uninstall bcsfe
298
+ ```
218
299
  ## Terms of Use
219
300
 
301
+ I don't like that I have to have Terms of use but these terms are designed to prevent scams and the
302
+ exploitation of users.
303
+
220
304
  By using the editor you agree to the following:
221
305
 
222
306
  If you are using the editor to run a paid service that profits off of the editor
223
307
  (e.g a service to provide people with hacked accounts, or a paid discord bot to edit people's accounts,
224
308
  etc) you must make it very clear that you are using this save editor.
225
309
 
226
- This should be done by linking this GitHub page, and explicitly stating that the tool you are
310
+ This should be done by linking this Codeberg page, and explicitly stating that the tool you are
227
311
  using is available for free and that they don't need to use your service to hack their account.
228
312
 
229
313
  This information needs to be visible and something the customer agrees to **before** any payment is made.
@@ -237,8 +321,6 @@ the editor under the hood as long as you abide by the [License](#license). Basic
237
321
  distributing a program which uses the editor, you need to license your own program under the GPL
238
322
  or a compatible license (basically make it open source / free software too).
239
323
 
240
- These terms are designed to prevent scams and the exploitation of users.
241
-
242
324
  Also if you **are** profiting from the editor, it would be greatly appreciated if you could
243
325
  give back something and support me.
244
326
 
@@ -348,14 +430,18 @@ You'll need to collect the catfood in-game after each clear though
348
430
 
349
431
  ### Install from source
350
432
 
351
- If you want the latest features then you can install the editor from the github.
433
+ If you want the latest features then you can install the editor from the git repo.
352
434
 
353
- 1. Download [Git](https://git-scm.com/downloads)
435
+ 1. Download git:
436
+ - Windows: [Git](https://git-scm.com/downloads)
437
+ - Linux: (use package manager, e.g `sudo apt-get install git` or `sudo pacman -S git`)
438
+ - Android: Termux: `pkg install git`
439
+ - iOS: a-Shell should already include it
354
440
 
355
441
  2. Run the following commands: (You may have to replace `py` with `python` or `python3`)
356
442
 
357
443
  ```sh
358
- git clone https://github.com/fieryhenry/BCSFE-Python.git
444
+ git clone https://codeberg.org/fieryhenry/BCSFE-Python.git
359
445
  cd BCSFE-Python
360
446
  py -m pip install -e .
361
447
  py -m bcsfe
@@ -368,16 +454,18 @@ Alternatively you can use pip directly, although it won't auto-update with the l
368
454
  git commits.
369
455
 
370
456
  ```sh
371
- py -m pip install git+https://github.com/fieryhenry/BCSFE-Python.git
457
+ py -m pip install -U git+https://codeberg.org/fieryhenry/BCSFE-Python.git
372
458
  py -m bcsfe
373
459
  ```
374
460
 
461
+ Again, you might need change `py` for `python` or `python3`
462
+
375
463
  If you want to use the editor again all you need to do is run the `py -m bcsfe` command
376
464
 
377
465
  ## Documentation
378
466
 
379
- - [Custom Editor Locales](https://github.com/fieryhenry/ExampleEditorLocale)
380
- - [Custom Editor Themes](https://github.com/fieryhenry/ExampleEditorTheme)
467
+ - [Custom Editor Locales](https://codeberg.org/fieryhenry/ExampleEditorLocale)
468
+ - [Custom Editor Themes](https://codeberg.org/fieryhenry/ExampleEditorTheme)
381
469
 
382
470
  I only have documentation for the locales and themes atm, but I will probably
383
471
  add more documentation in the future.
@@ -390,6 +478,8 @@ discussion in #dev-chat, or create an issue in this repo, or a draft pull reques
390
478
  If you need help with reverse engineering the save file, I have a basic starting guide here:
391
479
  <https://codeberg.org/fieryhenry/bc_ree>.
392
480
 
481
+ If you want to localize the editor see [here](./LOCALIZATION.md).
482
+
393
483
  ## License
394
484
 
395
485
  BCSFE is licensed under the GNU GPLv3 which can be read [here](https://www.gnu.org/licenses/gpl-3.0.en.html).
@@ -1,32 +1,3 @@
1
- Metadata-Version: 2.4
2
- Name: bcsfe
3
- Version: 3.0.1
4
- Summary: A save file editor for The Battle Cats
5
- Author: fieryhenry
6
- License-Expression: GPL-3.0-or-later
7
- Project-URL: Homepage, https://github.com/fieryhenry/BCSFE-Python
8
- Project-URL: Repository, https://github.com/fieryhenry/BCSFE-Python
9
- Project-URL: Issues, https://github.com/fieryhenry/BCSFE-Python/issues
10
- Project-URL: Changelog, https://github.com/fieryhenry/BCSFE-Python/blob/master/CHANGELOG.md
11
- Keywords: battle cats,save editor,hacking
12
- Classifier: Development Status :: 4 - Beta
13
- Classifier: Intended Audience :: End Users/Desktop
14
- Classifier: Topic :: Utilities
15
- Classifier: Programming Language :: Python :: 3
16
- Classifier: Programming Language :: Python :: 3.9
17
- Classifier: Operating System :: OS Independent
18
- Requires-Python: >=3.9
19
- Description-Content-Type: text/markdown
20
- License-File: LICENSE
21
- Requires-Dist: aenum
22
- Requires-Dist: colored==1.4.4
23
- Requires-Dist: pyjwt
24
- Requires-Dist: requests
25
- Requires-Dist: pyyaml
26
- Requires-Dist: beautifulsoup4
27
- Requires-Dist: argparse
28
- Dynamic: license-file
29
-
30
1
  # Battle Cats Save File Editor
31
2
 
32
3
  [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/fieryhenry)
@@ -98,7 +69,8 @@ python3 -m pip install bcsfe
98
69
  py -m ensurepip --upgrade
99
70
  ```
100
71
 
101
- Again change `py` for `python` or `python3` if needed
72
+ Again change `py` for `python` or `python3` if needed. I won't mention this again, so just remember
73
+ the one which works at keep using that.
102
74
 
103
75
  5. To run the editor, as long as Python is in your PATH, you should be able to run:
104
76
 
@@ -112,9 +84,19 @@ bcsfe
112
84
  py -m bcsfe
113
85
  ```
114
86
 
115
- Again change `py` for `python` or `python3` if needed.
87
+ If you are using Windows and you are still struggling, try watching this video [here](https://codeberg.org/fieryhenry/videos/media/branch/main/bcsfe_windows_help.webm).
88
+
89
+ 7. To update the editor run:
90
+
91
+ ```powershell
92
+ py -m pip install -U bcsfe
93
+ ```
94
+
95
+ 8. To uninstall the editor run:
116
96
 
117
- If you are using Windows and you are still struggling, try watching this video [here](https://youtu.be/ypmT39jqZrg).
97
+ ```powershell
98
+ py -m pip uninstall bcsfe
99
+ ```
118
100
 
119
101
  ### Linux
120
102
 
@@ -145,6 +127,18 @@ bcsfe
145
127
  6. You may also need to install `tk` with your system package manager to open the
146
128
  file selection dialog. This package may be called `tk` or `python-tk` or `python3-tk`.
147
129
 
130
+ 7. To update the editor if you are using pipx run:
131
+
132
+ ```sh
133
+ pipx upgrade bcsfe
134
+ ```
135
+
136
+ 8. To uninstall the editor if you are using pipx run:
137
+
138
+ ```sh
139
+ pipx uninstall bcsfe
140
+ ```
141
+
148
142
  If anyone wants to put the editor on the AUR or another package repo, feel free, I'll be happy to
149
143
  help if needed.
150
144
 
@@ -207,23 +201,84 @@ selection dialog, you just have to type the file path manually.
207
201
  For example to save your save file to your downloads directory, the path might look something like
208
202
  `/storage/emulated/0/Download/SAVE_DATA` or `/sdcard/Download/SAVE_DATA`
209
203
 
204
+ 5. To update the editor run:
205
+
206
+ ```sh
207
+ pip install -U bcsfe
208
+ ```
209
+
210
+ Or
211
+
212
+ ```sh
213
+ python -m pip install -U bcsfe
214
+ ```
215
+
216
+
217
+ 5. To uninstall the editor run:
218
+
219
+ ```sh
220
+ pip uninstall bcsfe
221
+ ```
222
+
223
+ Or
224
+
225
+ ```sh
226
+ python -m pip uninstall bcsfe
227
+ ```
210
228
 
211
229
  ### iOS
212
230
 
213
- I do not have an iOS device, so there is no text tutorial, but Viarules has made a video
214
- tutorial [here](https://www.youtube.com/watch?v=xw-uOqQRYJ8). The video uses iSH which is
215
- apparently quite slow, and other people recommend using a-Shell instead.
231
+ I do not have an iOS device, so there is no tutorial. The video that was recommended is now outdated.
232
+ But for a general overview of what you need to do:
233
+
234
+ 1. Download a-Shell from the App Store
235
+ 2. Install the editor with:
236
+
237
+ ```sh
238
+ pip install bcsfe
239
+ ```
240
+
241
+ 3. Run the editor with:
242
+
243
+ ```sh
244
+ bcsfe
245
+ ```
246
+
247
+ Or if that doesn't work try:
216
248
 
249
+ ```sh
250
+ python -m bcsfe
251
+ ```
217
252
 
253
+ Or
254
+
255
+ ```sh
256
+ python3 -m bcsfe
257
+ ```
258
+
259
+ 4. To update the editor run:
260
+
261
+ ```sh
262
+ pip install -U bcsfe
263
+ ```
264
+
265
+ 5. To uninstall the editor run:
266
+
267
+ ```sh
268
+ pip uninstall bcsfe
269
+ ```
218
270
  ## Terms of Use
219
271
 
272
+ I don't like that I have to have Terms of use but these terms are designed to prevent scams and the
273
+ exploitation of users.
274
+
220
275
  By using the editor you agree to the following:
221
276
 
222
277
  If you are using the editor to run a paid service that profits off of the editor
223
278
  (e.g a service to provide people with hacked accounts, or a paid discord bot to edit people's accounts,
224
279
  etc) you must make it very clear that you are using this save editor.
225
280
 
226
- This should be done by linking this GitHub page, and explicitly stating that the tool you are
281
+ This should be done by linking this Codeberg page, and explicitly stating that the tool you are
227
282
  using is available for free and that they don't need to use your service to hack their account.
228
283
 
229
284
  This information needs to be visible and something the customer agrees to **before** any payment is made.
@@ -237,8 +292,6 @@ the editor under the hood as long as you abide by the [License](#license). Basic
237
292
  distributing a program which uses the editor, you need to license your own program under the GPL
238
293
  or a compatible license (basically make it open source / free software too).
239
294
 
240
- These terms are designed to prevent scams and the exploitation of users.
241
-
242
295
  Also if you **are** profiting from the editor, it would be greatly appreciated if you could
243
296
  give back something and support me.
244
297
 
@@ -348,14 +401,18 @@ You'll need to collect the catfood in-game after each clear though
348
401
 
349
402
  ### Install from source
350
403
 
351
- If you want the latest features then you can install the editor from the github.
404
+ If you want the latest features then you can install the editor from the git repo.
352
405
 
353
- 1. Download [Git](https://git-scm.com/downloads)
406
+ 1. Download git:
407
+ - Windows: [Git](https://git-scm.com/downloads)
408
+ - Linux: (use package manager, e.g `sudo apt-get install git` or `sudo pacman -S git`)
409
+ - Android: Termux: `pkg install git`
410
+ - iOS: a-Shell should already include it
354
411
 
355
412
  2. Run the following commands: (You may have to replace `py` with `python` or `python3`)
356
413
 
357
414
  ```sh
358
- git clone https://github.com/fieryhenry/BCSFE-Python.git
415
+ git clone https://codeberg.org/fieryhenry/BCSFE-Python.git
359
416
  cd BCSFE-Python
360
417
  py -m pip install -e .
361
418
  py -m bcsfe
@@ -368,16 +425,18 @@ Alternatively you can use pip directly, although it won't auto-update with the l
368
425
  git commits.
369
426
 
370
427
  ```sh
371
- py -m pip install git+https://github.com/fieryhenry/BCSFE-Python.git
428
+ py -m pip install -U git+https://codeberg.org/fieryhenry/BCSFE-Python.git
372
429
  py -m bcsfe
373
430
  ```
374
431
 
432
+ Again, you might need change `py` for `python` or `python3`
433
+
375
434
  If you want to use the editor again all you need to do is run the `py -m bcsfe` command
376
435
 
377
436
  ## Documentation
378
437
 
379
- - [Custom Editor Locales](https://github.com/fieryhenry/ExampleEditorLocale)
380
- - [Custom Editor Themes](https://github.com/fieryhenry/ExampleEditorTheme)
438
+ - [Custom Editor Locales](https://codeberg.org/fieryhenry/ExampleEditorLocale)
439
+ - [Custom Editor Themes](https://codeberg.org/fieryhenry/ExampleEditorTheme)
381
440
 
382
441
  I only have documentation for the locales and themes atm, but I will probably
383
442
  add more documentation in the future.
@@ -390,6 +449,8 @@ discussion in #dev-chat, or create an issue in this repo, or a draft pull reques
390
449
  If you need help with reverse engineering the save file, I have a basic starting guide here:
391
450
  <https://codeberg.org/fieryhenry/bc_ree>.
392
451
 
452
+ If you want to localize the editor see [here](./LOCALIZATION.md).
453
+
393
454
  ## License
394
455
 
395
456
  BCSFE is licensed under the GNU GPLv3 which can be read [here](https://www.gnu.org/licenses/gpl-3.0.en.html).
@@ -30,10 +30,10 @@ dynamic = ["version"]
30
30
  keywords = ["battle cats", "save editor", "hacking"]
31
31
 
32
32
  [project.urls]
33
- Homepage = "https://github.com/fieryhenry/BCSFE-Python"
34
- Repository = "https://github.com/fieryhenry/BCSFE-Python"
35
- Issues = "https://github.com/fieryhenry/BCSFE-Python/issues"
36
- Changelog = "https://github.com/fieryhenry/BCSFE-Python/blob/master/CHANGELOG.md"
33
+ Homepage = "https://codeberg.org/fieryhenry/BCSFE-Python"
34
+ Repository = "https://codeberg.org/fieryhenry/BCSFE-Python"
35
+ Issues = "https://codeberg.org/fieryhenry/BCSFE-Python/issues"
36
+ Changelog = "https://codeberg.org/fieryhenry/BCSFE-Python/raw/branch/main/CHANGELOG.md"
37
37
 
38
38
  [tool.setuptools.dynamic]
39
39
  version = { attr = "bcsfe.__version__" }
@@ -1,4 +1,4 @@
1
- __version__ = "3.0.1"
1
+ __version__ = "3.2.0"
2
2
 
3
3
  from bcsfe import core, cli
4
4
 
@@ -52,7 +52,9 @@ def main():
52
52
  cli.main.Main.leave()
53
53
  except Exception as e:
54
54
  tb = traceback.format_exc()
55
- cli.color.ColoredText.localize("error", error=e, traceback=tb)
55
+ cli.color.ColoredText.localize(
56
+ "error", error=e, version=bcsfe.__version__, traceback=tb
57
+ )
56
58
  try:
57
59
  cli.main.Main.exit_editor()
58
60
  except Exception:
@@ -113,13 +113,9 @@ class ColoredText:
113
113
  print(colored.stylize(text, fg), end="") # type: ignore
114
114
 
115
115
  @staticmethod
116
- def localize(
117
- string: str, escape: bool = True, **kwargs: Any
118
- ) -> ColoredText:
116
+ def localize(string: str, escape: bool = True, **kwargs: Any) -> ColoredText:
119
117
  return ColoredText(
120
- core.core_data.local_manager.get_key(
121
- string, escape=escape, **kwargs
122
- )
118
+ core.core_data.local_manager.get_key(string, escape=escape, **kwargs)
123
119
  )
124
120
 
125
121
  def parse(self, txt: str) -> list[tuple[str, str]]:
@@ -134,11 +130,7 @@ class ColoredText:
134
130
  special_chars = core.LocalManager.get_special_chars()
135
131
  while i < len(txt):
136
132
  char = txt[i]
137
- if (
138
- char == "\\"
139
- and i + 1 < len(txt)
140
- and txt[i + 1] in special_chars
141
- ):
133
+ if char == "\\" and i + 1 < len(txt) and txt[i + 1] in special_chars:
142
134
  i += 1
143
135
  char = txt[i]
144
136
  text += char
@@ -183,7 +175,5 @@ class ColoredInput:
183
175
  return input()
184
176
 
185
177
  def localize(self, string: str, escape: bool = True, **kwargs: Any) -> str:
186
- text = core.core_data.local_manager.get_key(
187
- string, escape=escape, **kwargs
188
- )
178
+ text = core.core_data.local_manager.get_key(string, escape=escape, **kwargs)
189
179
  return self.get(text)
@@ -285,6 +285,11 @@ class ChoiceInput:
285
285
  return int_val
286
286
  if user_input == core.core_data.local_manager.get_key("quit_key"):
287
287
  return None
288
+ for i, string in enumerate(self.strings):
289
+ if self.localize_options:
290
+ string = core.core_data.local_manager.get_key(string)
291
+ if string.lower().strip() == user_input.lower().strip():
292
+ return i + self.start_index
288
293
 
289
294
  def get_max_value(self) -> int:
290
295
  return len(self.strings) + self.start_index - 1
@@ -322,7 +327,7 @@ class ChoiceInput:
322
327
  dialog = core.core_data.local_manager.get_key(key).format(
323
328
  min=self.get_min_value(), max=self.get_max_value()
324
329
  )
325
- usr_input = color.ColoredInput().get(dialog).split(" ")
330
+ usr_input = color.ColoredInput().get(dialog).strip().split(" ")
326
331
  int_vals: list[int] = []
327
332
  for inp in usr_input:
328
333
  try:
@@ -333,9 +338,19 @@ class ChoiceInput:
333
338
  except ValueError:
334
339
  if inp == core.core_data.local_manager.get_key("quit_key"):
335
340
  return None, False
336
- if inp in self.strings:
337
- int_vals.append(self.strings.index(inp) + self.start_index)
341
+
342
+ cont = False
343
+ for i, string in enumerate(self.strings):
344
+ if self.localize_options:
345
+ string = core.core_data.local_manager.get_key(string)
346
+ if string.lower().strip() == inp.lower().strip():
347
+ int_vals.append(i + self.start_index)
348
+ cont = True
349
+ break
350
+
351
+ if cont:
338
352
  continue
353
+
339
354
  color.ColoredText.localize(
340
355
  "invalid_input_int",
341
356
  min=self.get_min_value(),
@@ -674,7 +689,11 @@ class YesNoInput:
674
689
 
675
690
  if usr_input == core.core_data.local_manager.get_key("quit_key"):
676
691
  return None
677
- return usr_input == core.core_data.local_manager.get_key("yes_key")
692
+ return (
693
+ usr_input == core.core_data.local_manager.get_key("yes_key")
694
+ or usr_input.lower().strip()
695
+ == core.core_data.local_manager.get_key("yes").lower().strip()
696
+ )
678
697
 
679
698
 
680
699
  class DialogBuilder:
@@ -8,6 +8,8 @@ from bcsfe.cli.edits import (
8
8
  aku_realm,
9
9
  map,
10
10
  event_tickets,
11
+ max_all,
12
+ storage,
11
13
  )
12
14
 
13
15
  __all__ = [
@@ -19,5 +21,7 @@ __all__ = [
19
21
  "enemy_editor",
20
22
  "aku_realm",
21
23
  "map",
22
- "event_tickets"
24
+ "event_tickets",
25
+ "max_all",
26
+ "storage",
23
27
  ]
@@ -12,6 +12,12 @@ class BasicItems:
12
12
  return core.core_data.local_manager.get_key(key)
13
13
  return name.strip()
14
14
 
15
+ @staticmethod
16
+ def reset_golden_cat_cpus(save_file: core.SaveFile):
17
+ save_file.golden_cpu_count = 0
18
+
19
+ color.ColoredText.localize("reset_golden_cat_cpus_success")
20
+
15
21
  @staticmethod
16
22
  def edit_catfood(save_file: core.SaveFile):
17
23
  should_exit = not dialog_creator.YesNoInput().get_input_once("catfood_warning")