bcsfe 3.2.0b3__tar.gz → 3.2.2__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 (187) hide show
  1. {bcsfe-3.2.0b3/src/bcsfe.egg-info → bcsfe-3.2.2}/PKG-INFO +10 -9
  2. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/README.md +9 -8
  3. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/__init__.py +1 -1
  4. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/cli/dialog_creator.py +27 -16
  5. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/cli/edits/basic_items.py +7 -1
  6. bcsfe-3.2.2/src/bcsfe/cli/edits/map.py +544 -0
  7. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/cli/feature_handler.py +2 -1
  8. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/cli/save_management.py +17 -5
  9. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/__init__.py +10 -1
  10. bcsfe-3.2.2/src/bcsfe/core/game/battle/battle_items.py +300 -0
  11. bcsfe-3.2.2/src/bcsfe/core/game/catbase/unlock_popups.py +163 -0
  12. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/upgrade.py +8 -2
  13. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/gamoto/cat_shrine.py +22 -16
  14. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/map/__init__.py +2 -0
  15. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/map/chapters.py +15 -7
  16. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/map/enigma.py +1 -1
  17. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/map/event.py +91 -31
  18. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/map/gauntlets.py +19 -11
  19. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/map/legend_quest.py +18 -9
  20. bcsfe-3.2.2/src/bcsfe/core/game/map/map_names.py +112 -0
  21. bcsfe-3.2.2/src/bcsfe/core/game/map/map_option.py +79 -0
  22. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/map/story.py +2 -1
  23. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/map/tower.py +1 -1
  24. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/map/uncanny.py +3 -3
  25. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/map/zero_legends.py +14 -8
  26. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/io/config.py +15 -0
  27. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/io/path.py +7 -3
  28. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/io/save.py +7 -41
  29. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/server/game_data_getter.py +10 -5
  30. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/core/locale.properties +1 -1
  31. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/core/main.properties +1 -1
  32. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/core/save.properties +1 -1
  33. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/core/server.properties +5 -0
  34. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/core/theme.properties +1 -1
  35. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/edits/cats.properties +1 -0
  36. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/edits/gamototo.properties +3 -1
  37. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/edits/gold_pass.properties +1 -1
  38. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/edits/items.properties +9 -0
  39. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/edits/map.properties +39 -1
  40. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/core/input.properties +3 -1
  41. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/core/main.properties +0 -1
  42. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/core/save.properties +8 -1
  43. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/core/server.properties +4 -1
  44. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/edits/cats.properties +40 -28
  45. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/edits/map.properties +0 -41
  46. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/edits/treasures.properties +2 -2
  47. {bcsfe-3.2.0b3 → bcsfe-3.2.2/src/bcsfe.egg-info}/PKG-INFO +10 -9
  48. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe.egg-info/SOURCES.txt +1 -0
  49. bcsfe-3.2.0b3/src/bcsfe/cli/edits/map.py +0 -265
  50. bcsfe-3.2.0b3/src/bcsfe/core/game/battle/battle_items.py +0 -127
  51. bcsfe-3.2.0b3/src/bcsfe/core/game/catbase/unlock_popups.py +0 -71
  52. bcsfe-3.2.0b3/src/bcsfe/core/game/map/map_names.py +0 -138
  53. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/LICENSE +0 -0
  54. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/MANIFEST.in +0 -0
  55. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/pyproject.toml +0 -0
  56. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/setup.cfg +0 -0
  57. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/setup.py +0 -0
  58. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/__main__.py +0 -0
  59. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/cli/__init__.py +0 -0
  60. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/cli/color.py +0 -0
  61. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/cli/edits/__init__.py +0 -0
  62. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/cli/edits/aku_realm.py +0 -0
  63. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/cli/edits/cat_editor.py +0 -0
  64. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/cli/edits/clear_tutorial.py +0 -0
  65. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/cli/edits/enemy_editor.py +0 -0
  66. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/cli/edits/event_tickets.py +0 -0
  67. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/cli/edits/fixes.py +0 -0
  68. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/cli/edits/max_all.py +0 -0
  69. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/cli/edits/rare_ticket_trade.py +0 -0
  70. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/cli/edits/storage.py +0 -0
  71. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/cli/file_dialog.py +0 -0
  72. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/cli/main.py +0 -0
  73. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/cli/server_cli.py +0 -0
  74. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/country_code.py +0 -0
  75. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/crypto.py +0 -0
  76. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/__init__.py +0 -0
  77. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/battle/__init__.py +0 -0
  78. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/battle/cleared_slots.py +0 -0
  79. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/battle/enemy.py +0 -0
  80. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/battle/slots.py +0 -0
  81. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/__init__.py +0 -0
  82. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/beacon_base.py +0 -0
  83. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/cat.py +0 -0
  84. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/drop_chara.py +0 -0
  85. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/gambling.py +0 -0
  86. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/gatya.py +0 -0
  87. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/gatya_item.py +0 -0
  88. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/item_pack.py +0 -0
  89. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/login_bonuses.py +0 -0
  90. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/matatabi.py +0 -0
  91. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/medals.py +0 -0
  92. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/mission.py +0 -0
  93. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/my_sale.py +0 -0
  94. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/nyanko_club.py +0 -0
  95. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/officer_pass.py +0 -0
  96. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/playtime.py +0 -0
  97. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/powerup.py +0 -0
  98. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/scheme_items.py +0 -0
  99. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/special_skill.py +0 -0
  100. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/stamp.py +0 -0
  101. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/talent_orbs.py +0 -0
  102. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/catbase/user_rank_rewards.py +0 -0
  103. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/gamoto/__init__.py +0 -0
  104. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/gamoto/base_materials.py +0 -0
  105. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/gamoto/catamins.py +0 -0
  106. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/gamoto/gamatoto.py +0 -0
  107. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/gamoto/ototo.py +0 -0
  108. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/localizable.py +0 -0
  109. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/map/aku.py +0 -0
  110. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/map/challenge.py +0 -0
  111. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/map/dojo.py +0 -0
  112. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/map/ex_stage.py +0 -0
  113. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/map/item_reward_stage.py +0 -0
  114. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/map/map_reset.py +0 -0
  115. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/map/outbreaks.py +0 -0
  116. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game/map/timed_score.py +0 -0
  117. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/game_version.py +0 -0
  118. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/io/__init__.py +0 -0
  119. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/io/adb_handler.py +0 -0
  120. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/io/bc_csv.py +0 -0
  121. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/io/command.py +0 -0
  122. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/io/data.py +0 -0
  123. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/io/git_handler.py +0 -0
  124. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/io/json_file.py +0 -0
  125. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/io/root_handler.py +0 -0
  126. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/io/thread_helper.py +0 -0
  127. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/io/waydroid.py +0 -0
  128. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/io/yaml.py +0 -0
  129. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/locale_handler.py +0 -0
  130. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/log.py +0 -0
  131. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/max_value_helper.py +0 -0
  132. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/server/__init__.py +0 -0
  133. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/server/client_info.py +0 -0
  134. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/server/event_data.py +0 -0
  135. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/server/headers.py +0 -0
  136. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/server/managed_item.py +0 -0
  137. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/server/request.py +0 -0
  138. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/server/server_handler.py +0 -0
  139. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/server/updater.py +0 -0
  140. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/core/theme_handler.py +0 -0
  141. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/core/config.properties +0 -0
  142. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/core/files.properties +0 -0
  143. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/core/input.properties +0 -0
  144. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/core/updater.properties +0 -0
  145. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/edits/bannable_items.properties +0 -0
  146. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/edits/enemy.properties +0 -0
  147. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/edits/fixes.properties +0 -0
  148. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/edits/gambling.properties +0 -0
  149. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/edits/gatya.properties +0 -0
  150. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/edits/medals.properties +0 -0
  151. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/edits/missions.properties +0 -0
  152. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/edits/playtime.properties +0 -0
  153. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/edits/scheme_items.properties +0 -0
  154. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/edits/special_skills.properties +0 -0
  155. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/edits/talent_orbs.properties +0 -0
  156. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/edits/treasures.properties +0 -0
  157. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/en/edits/user_rank.properties +0 -0
  158. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/core/config.properties +0 -0
  159. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/core/files.properties +0 -0
  160. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/core/locale.properties +0 -0
  161. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/core/theme.properties +0 -0
  162. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/core/updater.properties +0 -0
  163. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/edits/bannable_items.properties +0 -0
  164. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/edits/enemy.properties +0 -0
  165. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/edits/fixes.properties +0 -0
  166. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/edits/gambling.properties +0 -0
  167. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/edits/gamototo.properties +0 -0
  168. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/edits/gatya.properties +0 -0
  169. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/edits/gold_pass.properties +0 -0
  170. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/edits/items.properties +0 -0
  171. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/edits/medals.properties +0 -0
  172. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/edits/missions.properties +0 -0
  173. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/edits/playtime.properties +0 -0
  174. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/edits/scheme_items.properties +0 -0
  175. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/edits/special_skills.properties +0 -0
  176. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/edits/talent_orbs.properties +0 -0
  177. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/edits/user_rank.properties +0 -0
  178. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/locales/vi/metadata.json +0 -0
  179. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/max_values.json +0 -0
  180. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/themes/default.json +0 -0
  181. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/files/themes/discord.json +0 -0
  182. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe/py.typed +0 -0
  183. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe.egg-info/dependency_links.txt +0 -0
  184. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe.egg-info/entry_points.txt +0 -0
  185. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe.egg-info/requires.txt +0 -0
  186. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/src/bcsfe.egg-info/top_level.txt +0 -0
  187. {bcsfe-3.2.0b3 → bcsfe-3.2.2}/tests/test_parse.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bcsfe
3
- Version: 3.2.0b3
3
+ Version: 3.2.2
4
4
  Summary: A save file editor for The Battle Cats
5
5
  Author: fieryhenry
6
6
  License-Expression: GPL-3.0-or-later
@@ -298,13 +298,16 @@ pip uninstall bcsfe
298
298
  ```
299
299
  ## Terms of Use
300
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
+
301
304
  By using the editor you agree to the following:
302
305
 
303
306
  If you are using the editor to run a paid service that profits off of the editor
304
307
  (e.g a service to provide people with hacked accounts, or a paid discord bot to edit people's accounts,
305
308
  etc) you must make it very clear that you are using this save editor.
306
309
 
307
- 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
308
311
  using is available for free and that they don't need to use your service to hack their account.
309
312
 
310
313
  This information needs to be visible and something the customer agrees to **before** any payment is made.
@@ -318,8 +321,6 @@ the editor under the hood as long as you abide by the [License](#license). Basic
318
321
  distributing a program which uses the editor, you need to license your own program under the GPL
319
322
  or a compatible license (basically make it open source / free software too).
320
323
 
321
- These terms are designed to prevent scams and the exploitation of users.
322
-
323
324
  Also if you **are** profiting from the editor, it would be greatly appreciated if you could
324
325
  give back something and support me.
325
326
 
@@ -429,13 +430,13 @@ You'll need to collect the catfood in-game after each clear though
429
430
 
430
431
  ### Install from source
431
432
 
432
- 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.
433
434
 
434
435
  1. Download git:
435
- 1. Windows: [Git](https://git-scm.com/downloads)
436
- 2. Linux: (use package manager, e.g `sudo apt-get install git` or `sudo pacman -S git`)
437
- 3. Android: Termux: `pkg install git`
438
- 4. iOS: a-Shell should already include it
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
439
440
 
440
441
  2. Run the following commands: (You may have to replace `py` with `python` or `python3`)
441
442
 
@@ -269,13 +269,16 @@ pip uninstall bcsfe
269
269
  ```
270
270
  ## Terms of Use
271
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
+
272
275
  By using the editor you agree to the following:
273
276
 
274
277
  If you are using the editor to run a paid service that profits off of the editor
275
278
  (e.g a service to provide people with hacked accounts, or a paid discord bot to edit people's accounts,
276
279
  etc) you must make it very clear that you are using this save editor.
277
280
 
278
- 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
279
282
  using is available for free and that they don't need to use your service to hack their account.
280
283
 
281
284
  This information needs to be visible and something the customer agrees to **before** any payment is made.
@@ -289,8 +292,6 @@ the editor under the hood as long as you abide by the [License](#license). Basic
289
292
  distributing a program which uses the editor, you need to license your own program under the GPL
290
293
  or a compatible license (basically make it open source / free software too).
291
294
 
292
- These terms are designed to prevent scams and the exploitation of users.
293
-
294
295
  Also if you **are** profiting from the editor, it would be greatly appreciated if you could
295
296
  give back something and support me.
296
297
 
@@ -400,13 +401,13 @@ You'll need to collect the catfood in-game after each clear though
400
401
 
401
402
  ### Install from source
402
403
 
403
- 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.
404
405
 
405
406
  1. Download git:
406
- 1. Windows: [Git](https://git-scm.com/downloads)
407
- 2. Linux: (use package manager, e.g `sudo apt-get install git` or `sudo pacman -S git`)
408
- 3. Android: Termux: `pkg install git`
409
- 4. iOS: a-Shell should already include it
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
410
411
 
411
412
  2. Run the following commands: (You may have to replace `py` with `python` or `python3`)
412
413
 
@@ -1,4 +1,4 @@
1
- __version__ = "3.2.0b3"
1
+ __version__ = "3.2.2"
2
2
 
3
3
  from bcsfe import core, cli
4
4
 
@@ -72,19 +72,20 @@ class IntInput:
72
72
  min: int = 0,
73
73
  default: int | None = None,
74
74
  signed: bool = True,
75
+ bit_count: int = 32,
75
76
  ):
76
77
  self.signed = signed
77
- self.max = self.get_max_value(max, signed)
78
+ self.bit_count = bit_count
79
+ self.max = self.get_max_value(max, signed, bit_count)
78
80
  self.min = min
79
81
  self.default = default
80
82
 
81
83
  @staticmethod
82
- def get_max_value(max: int | None, signed: bool = True) -> int:
84
+ def get_max_value(max: int | None, signed: bool = True, bit_count: int = 32) -> int:
83
85
  disable_maxes = core.core_data.config.get_bool(core.ConfigKey.DISABLE_MAXES)
84
86
  if signed:
85
- max_int = 2**31 - 1
86
- else:
87
- max_int = 2**32 - 1
87
+ bit_count -= 1
88
+ max_int = (2**bit_count) - 1
88
89
  if disable_maxes or max is None:
89
90
  return max_int
90
91
  return min(max, max_int)
@@ -150,7 +151,7 @@ class ListOutput:
150
151
  def __init__(
151
152
  self,
152
153
  strings: list[str],
153
- ints: list[int],
154
+ ints: list[int] | list[str],
154
155
  dialog: str | None = None,
155
156
  perameters: dict[str, Any] | None = None,
156
157
  start_index: int = 1,
@@ -210,7 +211,7 @@ class ChoiceInput:
210
211
  self,
211
212
  items: list[str],
212
213
  strings: list[str],
213
- ints: list[int],
214
+ ints: list[int] | list[str],
214
215
  perameters: dict[str, int | str],
215
216
  dialog: str,
216
217
  single_choice: bool = False,
@@ -233,7 +234,7 @@ class ChoiceInput:
233
234
  @staticmethod
234
235
  def from_reduced(
235
236
  items: list[str],
236
- ints: list[int] | None = None,
237
+ ints: list[int] | list[str] | None = None,
237
238
  perameters: dict[str, int | str] | None = None,
238
239
  dialog: str | None = None,
239
240
  single_choice: bool = False,
@@ -417,10 +418,12 @@ class MultiEditor:
417
418
  signed: bool = True,
418
419
  group_name_localized: bool = False,
419
420
  cumulative_max: bool = False,
421
+ bit_count: int = 32,
420
422
  ):
421
423
  self.items = items
422
424
  self.strings = strings
423
425
  self.ints = ints
426
+ self.bit_count = bit_count
424
427
  if self.ints is not None:
425
428
  total_ints = len(self.ints)
426
429
  else:
@@ -482,7 +485,7 @@ class MultiEditor:
482
485
  choices, all_at_once = ChoiceInput(
483
486
  self.items,
484
487
  self.strings,
485
- self.ints or [],
488
+ self.ints or [], # type: ignore
486
489
  self.perameters,
487
490
  "select_edit",
488
491
  ).get()
@@ -502,7 +505,9 @@ class MultiEditor:
502
505
  else:
503
506
  max_value = self.max_values[choice]
504
507
  if max_value is None:
505
- max_value = IntInput.get_max_value(max_value, self.signed)
508
+ max_value = IntInput.get_max_value(
509
+ max_value, self.signed, self.bit_count
510
+ )
506
511
  max_max_value = max(max_max_value, max_value)
507
512
  if self.cumulative_max:
508
513
  max_max_value = max_max_value // len(choices)
@@ -522,7 +527,7 @@ class MultiEditor:
522
527
  max_value = None
523
528
  else:
524
529
  max_value = self.max_values[choice]
525
- max_value = IntInput.get_max_value(max_value, self.signed)
530
+ max_value = IntInput.get_max_value(max_value, self.signed, self.bit_count)
526
531
  value = min(usr_input, max_value)
527
532
  ints[choice] = value
528
533
  if self.ints is not None:
@@ -543,7 +548,9 @@ class MultiEditor:
543
548
  else:
544
549
  max_value = self.max_values[choice]
545
550
  if max_value is None:
546
- max_value = IntInput.get_max_value(max_value, self.signed)
551
+ max_value = IntInput.get_max_value(
552
+ max_value, self.signed, self.bit_count
553
+ )
547
554
 
548
555
  if self.cumulative_max:
549
556
  max_value -= sum(ints) - ints[choice]
@@ -576,6 +583,7 @@ class SingleEditor:
576
583
  signed: bool = True,
577
584
  localized_item: bool = False,
578
585
  remove_alias: bool = False,
586
+ bit_count: int = 32,
579
587
  ):
580
588
  if localized_item:
581
589
  item = core.core_data.local_manager.get_key(item)
@@ -586,11 +594,10 @@ class SingleEditor:
586
594
  self.max_value = max_value
587
595
  self.min_value = min_value
588
596
  self.signed = signed
597
+ self.bit_count = bit_count
589
598
 
590
599
  def edit(self, escape_text: bool = True) -> int:
591
- max_value = self.max_value
592
- if max_value is None:
593
- max_value = IntInput.get_max_value(max_value, self.signed)
600
+ max_value = IntInput.get_max_value(self.max_value, self.signed, self.bit_count)
594
601
  if self.max_value is None:
595
602
  dialog = "input_non_max"
596
603
  elif self.min_value != 0:
@@ -598,7 +605,11 @@ class SingleEditor:
598
605
  else:
599
606
  dialog = "input"
600
607
  usr_input = IntInput(
601
- max_value, self.min_value, default=self.value, signed=self.signed
608
+ max_value,
609
+ self.min_value,
610
+ default=self.value,
611
+ signed=self.signed,
612
+ bit_count=self.bit_count,
602
613
  ).get_input_locale_while(
603
614
  dialog,
604
615
  {
@@ -165,6 +165,8 @@ class BasicItems:
165
165
  core.core_data.max_value_manager.get("platinum_tickets")
166
166
  - platinum_ticket_amount
167
167
  ) * 10 + 9
168
+
169
+ max_value = max(0, max_value)
168
170
  save_file.platinum_shards = dialog_creator.SingleEditor(
169
171
  BasicItems.get_name(name, "platinum_shards"),
170
172
  save_file.platinum_shards,
@@ -193,6 +195,10 @@ class BasicItems:
193
195
  def edit_battle_items(save_file: core.SaveFile):
194
196
  save_file.battle_items.edit(save_file)
195
197
 
198
+ @staticmethod
199
+ def edit_battle_items_endless(save_file: core.SaveFile):
200
+ save_file.battle_items.edit_endless_items(save_file)
201
+
196
202
  @staticmethod
197
203
  def edit_catamins(save_file: core.SaveFile):
198
204
  names_o = core.core_data.get_gatya_item_names(save_file)
@@ -249,7 +255,7 @@ class BasicItems:
249
255
  if items is None:
250
256
  return
251
257
  names: list[str] = []
252
- for item in items:
258
+ for item in items[: len(save_file.treasure_chests)]:
253
259
  name = names_o.get_name(item.id)
254
260
  if name is None:
255
261
  name = core.core_data.local_manager.get_key(