ksaa 2025.8.23.0__py3-none-any.whl → 2025.9b1__py3-none-any.whl

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 (168) hide show
  1. kotonebot/kaa/main/gr.py +122 -52
  2. kotonebot/kaa/metadata.py +34 -0
  3. kotonebot/kaa/resources/__pycache__/__init__.cpython-310.pyc +0 -0
  4. kotonebot/kaa/resources/game.db +0 -0
  5. kotonebot/kaa/resources/game_ver.txt +0 -0
  6. kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-013_0.png +0 -0
  7. kotonebot/kaa/resources/idol_cards/i_card-skin-amao-3-013_1.png +0 -0
  8. kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-014_0.png +0 -0
  9. kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-015_0.png +0 -0
  10. kotonebot/kaa/resources/idol_cards/i_card-skin-fktn-3-015_1.png +0 -0
  11. kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-3-012_0.png +0 -0
  12. kotonebot/kaa/resources/idol_cards/i_card-skin-hmsz-3-012_1.png +0 -0
  13. kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-014_0.png +0 -0
  14. kotonebot/kaa/resources/idol_cards/i_card-skin-hrnm-3-014_1.png +0 -0
  15. kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-014_0.png +0 -0
  16. kotonebot/kaa/resources/idol_cards/i_card-skin-hski-3-014_1.png +0 -0
  17. kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-014_0.png +0 -0
  18. kotonebot/kaa/resources/idol_cards/i_card-skin-hume-3-014_1.png +0 -0
  19. kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-013_0.png +0 -0
  20. kotonebot/kaa/resources/idol_cards/i_card-skin-jsna-3-013_1.png +0 -0
  21. kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-013_0.png +0 -0
  22. kotonebot/kaa/resources/idol_cards/i_card-skin-kcna-3-013_1.png +0 -0
  23. kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-013_0.png +0 -0
  24. kotonebot/kaa/resources/idol_cards/i_card-skin-kllj-3-013_1.png +0 -0
  25. kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-014_0.png +0 -0
  26. kotonebot/kaa/resources/idol_cards/i_card-skin-ssmk-3-014_1.png +0 -0
  27. kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-014_0.png +0 -0
  28. kotonebot/kaa/resources/idol_cards/i_card-skin-ttmr-3-014_1.png +0 -0
  29. kotonebot/kaa/sprites/9483fae5-3a72-4684-9403-d25d2c602d3d.png +0 -0
  30. kotonebot/kaa/sprites/eaad330d-4e50-4b55-be2c-8da0f72764d9.png +0 -0
  31. kotonebot/kaa/tasks/R.py +130 -126
  32. kotonebot/kaa/tasks/actions/scenes.py +2 -0
  33. kotonebot/kaa/tasks/produce/cards.py +3 -0
  34. kotonebot/kaa/tasks/produce/common.py +88 -0
  35. kotonebot/kaa/tasks/produce/non_lesson_actions.py +12 -6
  36. kotonebot/kaa/tasks/produce/produce.py +33 -52
  37. {ksaa-2025.8.23.0.dist-info → ksaa-2025.9b1.dist-info}/METADATA +4 -2
  38. {ksaa-2025.8.23.0.dist-info → ksaa-2025.9b1.dist-info}/RECORD +168 -144
  39. /kotonebot/kaa/sprites/{1dd337ca-20f1-4dc6-8254-235d7ec74158.png → 002e7b92-11f4-487a-af55-334663e2b8cd.png} +0 -0
  40. /kotonebot/kaa/sprites/{3997a0e3-0826-4b1e-b7e9-4a36ebaaa9e8.png → 003c315c-418c-410e-ba45-290150097a25.png} +0 -0
  41. /kotonebot/kaa/sprites/{6bb37f56-bac2-4852-82b0-e9b65ce0cbe8.png → 01106370-2321-4696-a60e-dc76b565a097.png} +0 -0
  42. /kotonebot/kaa/sprites/{3675c4aa-a208-47d1-bbcb-48bce40e6ae9.png → 0519d61c-0451-42a2-96ed-baa5ef026655.png} +0 -0
  43. /kotonebot/kaa/sprites/{7ff80aa1-94c3-417e-9fae-3c2f2b8036a8.png → 0c2a1e9f-85be-4fec-a8ae-4e417c58d5a5.png} +0 -0
  44. /kotonebot/kaa/sprites/{3746df74-fe63-442c-85d2-8a3696cb2fcd.png → 0d1ecf0b-b090-42b2-b895-cb1f5b415af8.png} +0 -0
  45. /kotonebot/kaa/sprites/{30ce2e03-e9b3-4b4f-aded-51a05bfca91f.png → 0d39671a-cfa3-4832-93e8-6ab61cece799.png} +0 -0
  46. /kotonebot/kaa/sprites/{ae1a5e05-d53d-43aa-9f27-b9117483d19e.png → 0ffd0b92-78f6-4661-a2c3-3c337b75d3bb.png} +0 -0
  47. /kotonebot/kaa/sprites/{25ceaa36-a432-4bf3-80b7-11c94cd82357.png → 105df024-ece9-4c9c-9479-9f7423f4abec.png} +0 -0
  48. /kotonebot/kaa/sprites/{a04c4402-e071-401a-9549-d573eabc0e59.png → 112f47b8-e71f-426f-9081-0c8efb6ced72.png} +0 -0
  49. /kotonebot/kaa/sprites/{359d6d34-ea55-470b-b682-6c9252953e8d.png → 11c5034e-d258-422d-850c-a4495b346778.png} +0 -0
  50. /kotonebot/kaa/sprites/{67da7040-7183-4d30-89a7-e78345f42948.png → 12d59cc0-cef6-472d-b424-edaae52463ca.png} +0 -0
  51. /kotonebot/kaa/sprites/{5fb96a83-7b37-435b-9d7e-9caf0bc022e4.png → 13338d14-2b0d-4630-a5d2-dc273f62524e.png} +0 -0
  52. /kotonebot/kaa/sprites/{9b0f6620-5fd0-4393-ae67-555baf171550.png → 13a5d0e7-776e-40c2-8a52-dd3e016913b4.png} +0 -0
  53. /kotonebot/kaa/sprites/{5528a0a0-2f1e-41f8-b55f-a565a2f80908.png → 156cb3bd-0523-4a76-8747-8d4ce23fed7b.png} +0 -0
  54. /kotonebot/kaa/sprites/{6aa1fbb0-3880-49e1-ade3-29f627d0e38b.png → 16d914f3-c3be-479e-932a-4c336c08b94e.png} +0 -0
  55. /kotonebot/kaa/sprites/{7a54f094-bc75-48d3-8253-cca80a7052a2.png → 1b39e16c-d8e2-4f4c-bc6d-a4511184f8af.png} +0 -0
  56. /kotonebot/kaa/sprites/{8c9c9195-4eed-407c-b1ab-bb616c7b2acc.png → 1b82310e-8422-4be6-b31b-bc7693def4e4.png} +0 -0
  57. /kotonebot/kaa/sprites/{ca680286-0937-46e1-8b4d-ee900baed756.png → 1d25aa70-8137-4c63-8dcf-a5b5a8f950e6.png} +0 -0
  58. /kotonebot/kaa/sprites/{ceb4fae9-b5e5-41cf-856b-bcf753f477d9.png → 1e324ce8-b56f-45d5-9476-713dabfdecf9.png} +0 -0
  59. /kotonebot/kaa/sprites/{04b33e1f-a341-46d4-a54b-a05f1e765c10.png → 22bda7ef-ad0d-4020-a667-6ae77b4805ca.png} +0 -0
  60. /kotonebot/kaa/sprites/{a1bae28b-7b90-4009-b384-79f7a8974078.png → 23a39277-a6ac-4a49-9c6a-1fca1a3a4d9b.png} +0 -0
  61. /kotonebot/kaa/sprites/{b5ecb8e2-8b1a-4240-a2c9-152ccecdacbe.png → 23b37aad-1de3-43e2-84e6-78f6f0f28fba.png} +0 -0
  62. /kotonebot/kaa/sprites/{cf8b2ae3-f948-4204-b7da-c0801f1368f4.png → 23f8844e-9272-4a5c-badf-a30676fd22da.png} +0 -0
  63. /kotonebot/kaa/sprites/{146c742a-0fb3-4d88-851e-ddd621533ad3.png → 24458a04-ca4d-4330-9dd6-f074feac9a17.png} +0 -0
  64. /kotonebot/kaa/sprites/{a898c01d-1347-484f-b2b0-10858a1ef3a6.png → 246f9799-5367-4fb4-877d-821fb4acad71.png} +0 -0
  65. /kotonebot/kaa/sprites/{9f41a6b4-2955-4105-8610-423f267807de.png → 24d55c2b-dfe8-4a80-9f39-94045478f5a5.png} +0 -0
  66. /kotonebot/kaa/sprites/{9fb0f700-1eaf-4677-bd1f-05f9f311cdfc.png → 26262f2d-e12b-4992-8c14-15679cae4298.png} +0 -0
  67. /kotonebot/kaa/sprites/{6d58dbfa-84e2-4a84-8c7c-133e459e9b40.png → 2704de68-4349-4695-8102-4dcd93fe82c7.png} +0 -0
  68. /kotonebot/kaa/sprites/{4d0f75f5-632b-4c59-88a5-058622a4c3af.png → 279ab0e2-1601-4bfb-8d27-4019fc4dcd3d.png} +0 -0
  69. /kotonebot/kaa/sprites/{4f2fcec7-399e-4184-b1dc-eabae92d63dd.png → 2ad65f0c-3b9c-46ad-808e-11c6d6db7417.png} +0 -0
  70. /kotonebot/kaa/sprites/{276239b5-e41b-4ae5-9be6-37d251292d39.png → 2b3a82fd-79b3-400c-988a-248a7b277542.png} +0 -0
  71. /kotonebot/kaa/sprites/{ad455e8e-fb2f-4180-af29-7ef66c98daa9.png → 37d24544-1791-474d-8f74-b1dbe0dd3c6b.png} +0 -0
  72. /kotonebot/kaa/sprites/{9e5afe22-f817-45f7-b0dd-2c808adff8cb.png → 3868b12d-8d93-4754-91bd-797680d24e22.png} +0 -0
  73. /kotonebot/kaa/sprites/{5fb7c821-63b4-4ee2-b6ea-16eec3a77251.png → 3de9bd37-90ef-45ec-88c0-03c4fd50fb51.png} +0 -0
  74. /kotonebot/kaa/sprites/{2fa084f5-0637-4d53-ada8-9c542d597a51.png → 46198a1d-888e-4a12-827e-51cdd4fc30a2.png} +0 -0
  75. /kotonebot/kaa/sprites/{fa72809a-d057-40a0-b771-f4d96bc1ced2.png → 49587e50-e978-461f-b49c-7f92347923f5.png} +0 -0
  76. /kotonebot/kaa/sprites/{bc393fa9-317c-48f9-88cf-cd4d93af1569.png → 4af83157-f237-4072-a732-1e59814485e7.png} +0 -0
  77. /kotonebot/kaa/sprites/{1a06449d-472e-4c06-9dc1-1cb06b1b1ce5.png → 4b595d09-a5ed-47d6-9c7b-e471792db801.png} +0 -0
  78. /kotonebot/kaa/sprites/{8a62a66d-4b66-42d5-b004-b56eb7c45d68.png → 4e284d43-9d58-4afa-be66-b61825ef2be3.png} +0 -0
  79. /kotonebot/kaa/sprites/{bdc3b84b-18a4-4abe-938d-3e6495bef7eb.png → 50f138f4-7500-42c1-8121-2f03703d8f8f.png} +0 -0
  80. /kotonebot/kaa/sprites/{e2a98bd2-56d1-47e9-806a-a36d06bd3f16.png → 53d082f9-9cac-4ca0-b166-3a3599c4f757.png} +0 -0
  81. /kotonebot/kaa/sprites/{bfa4b6bf-c032-46b8-9ce3-268717e4e364.png → 5479a383-3e75-4082-a118-fdae784228f4.png} +0 -0
  82. /kotonebot/kaa/sprites/{1e17f7b1-4f64-474c-aade-4b3de32c0de4.png → 564e9739-a90d-4c17-9d29-b3edb6aef1e9.png} +0 -0
  83. /kotonebot/kaa/sprites/{8bad2dbc-9f3a-443f-a3ff-048e70577a97.png → 5aac4900-ccd2-4a72-9135-0804fe14e6e2.png} +0 -0
  84. /kotonebot/kaa/sprites/{72a9238a-de6d-4665-85d4-265180d00db2.png → 5c926d27-63c7-466f-9e34-65144153e0d2.png} +0 -0
  85. /kotonebot/kaa/sprites/{fcbeb870-6853-4e2c-8a6e-54b4787e3a2e.png → 5d51ee71-a2fb-414a-ab48-c5d3c1a3b945.png} +0 -0
  86. /kotonebot/kaa/sprites/{06df0c16-bb7e-41b7-90fe-afc14379b90f.png → 62390db3-c5bc-4868-bfb3-958acceff9cd.png} +0 -0
  87. /kotonebot/kaa/sprites/{35f613e8-61af-41b0-a397-44ae7566a233.png → 634b1421-7f65-452c-a4e2-e40a5028938a.png} +0 -0
  88. /kotonebot/kaa/sprites/{2227a4ac-a933-4165-b594-2720a26f9e44.png → 6588da9e-a9b5-4313-9f67-e03f213f3fa4.png} +0 -0
  89. /kotonebot/kaa/sprites/{36039a1a-52e6-428d-9866-0f0f65a7298f.png → 66eee7a5-3d0e-430f-850b-7fff14b3671f.png} +0 -0
  90. /kotonebot/kaa/sprites/{3a41fe06-7f33-4c21-9edd-291191e3c563.png → 67176e48-eaa5-46dd-bbaf-85b1b324ba48.png} +0 -0
  91. /kotonebot/kaa/sprites/{0e332904-cace-4d02-9575-100a359c548f.png → 6774c674-5100-4422-a82b-deb9bd5d49ee.png} +0 -0
  92. /kotonebot/kaa/sprites/{6a272201-1311-41ee-b296-0a8d812d8173.png → 6e9ef52c-937f-47f1-9687-899a528d7599.png} +0 -0
  93. /kotonebot/kaa/sprites/{658eb246-1469-4a86-b7a7-5e66b3102084.png → 704bf40a-4125-4260-9dd7-fa8ac13f00df.png} +0 -0
  94. /kotonebot/kaa/sprites/{80ae6f18-cc26-4b31-9202-b5a0656b23ce.png → 71bbe862-b9f7-47ab-b4f1-f0b87732bd39.png} +0 -0
  95. /kotonebot/kaa/sprites/{229366ae-dbcd-4378-84a2-8a7eb1d1e084.png → 7516da41-7cbf-4c18-8630-3baecc225764.png} +0 -0
  96. /kotonebot/kaa/sprites/{12f47930-f691-4a3e-8c83-e47f63fb1f2b.png → 75f0339c-9acf-4971-a3c2-e302f56b1f93.png} +0 -0
  97. /kotonebot/kaa/sprites/{b6cda449-d5ab-4a38-9c85-c25e1b73f588.png → 76a65fb7-4429-4288-a164-bd121974ee6b.png} +0 -0
  98. /kotonebot/kaa/sprites/{dfe926f6-a3b3-48c2-9ebd-757f77d932a6.png → 783cbcad-eefc-4a04-910e-9ff4288d3c18.png} +0 -0
  99. /kotonebot/kaa/sprites/{651b2464-0c4a-4f3d-9452-5a40897b39e1.png → 78a12e3b-ac32-4e96-8998-30f92318a36b.png} +0 -0
  100. /kotonebot/kaa/sprites/{8b3cfcfc-fa00-4bc5-9ea4-b350f2c08cb0.png → 7cddb93a-175c-4875-a2fb-136cdfc365a7.png} +0 -0
  101. /kotonebot/kaa/sprites/{ef21cbe1-7263-4a68-ad8c-b9aac503978a.png → 7d817b98-53ff-491c-b608-b07a0c143009.png} +0 -0
  102. /kotonebot/kaa/sprites/{c89ce004-a437-4b94-9420-0d9bf2ed7e25.png → 8034f626-ae01-42c0-8f73-a3d1c9aaff5c.png} +0 -0
  103. /kotonebot/kaa/sprites/{b5a883c1-8086-4c60-a789-a7819c674645.png → 824c9efd-21ea-4e26-a1fa-9e909d8b98d6.png} +0 -0
  104. /kotonebot/kaa/sprites/{47d9fac4-2caf-4479-a97a-e519ddbfb3cf.png → 835e3ad1-8f73-4e2e-bdd5-9a5fb866858f.png} +0 -0
  105. /kotonebot/kaa/sprites/{7b8541a8-9e82-410b-b053-3ebc96b36604.png → 84795df2-e6d9-40fb-aef5-98fbf9c17399.png} +0 -0
  106. /kotonebot/kaa/sprites/{04622143-7f9e-47a8-86a5-be2b81d13cb6.png → 848c8b04-c953-473d-94b1-2a2d5cdbd9c4.png} +0 -0
  107. /kotonebot/kaa/sprites/{fa1eea22-b329-4c1c-8446-279c542f6da0.png → 8498ac20-4ec2-474b-961f-cbf488da9a23.png} +0 -0
  108. /kotonebot/kaa/sprites/{288a0541-a175-47b4-b75c-2e845e27cba6.png → 85f1cf4f-7d07-403a-917b-02b273680c21.png} +0 -0
  109. /kotonebot/kaa/sprites/{795961a5-78c5-4ac4-a250-b1879cd2f60d.png → 86db7d47-f634-4be4-b9e2-371e7868aded.png} +0 -0
  110. /kotonebot/kaa/sprites/{00707545-6ed3-4c3a-9c84-89cb75ac1adc.png → 88d89e04-2242-4ed7-be23-edd6535121ac.png} +0 -0
  111. /kotonebot/kaa/sprites/{fc7b1cdb-d0d0-4470-b5fd-218a8551dc9f.png → 8cb9d744-6b49-452b-b0b6-e441446050ef.png} +0 -0
  112. /kotonebot/kaa/sprites/{ed081194-272d-461a-93a1-ec476a896753.png → 8df4515c-ff60-432c-a624-ae3658bf7e0c.png} +0 -0
  113. /kotonebot/kaa/sprites/{57cee3e6-eee4-4023-85f3-52959fa372a0.png → 8e6b9237-f94a-4e21-9b2c-45e3d4833b6d.png} +0 -0
  114. /kotonebot/kaa/sprites/{f47d8096-63bf-42ed-8f4f-5f6f1d8772f4.png → 8e7b53fd-d962-43b7-a203-3d480c649c83.png} +0 -0
  115. /kotonebot/kaa/sprites/{45abba60-06d7-4921-b2a2-9ce790c2b25b.png → 8ed3f006-facb-4ba0-9034-24a3a7729012.png} +0 -0
  116. /kotonebot/kaa/sprites/{791e885e-6e27-498f-81ff-87a40582507d.png → 91e2c2d3-b629-4c49-97d5-ed99dada3243.png} +0 -0
  117. /kotonebot/kaa/sprites/{65dbaa8c-2053-4441-9c31-8fd8fc8c87d8.png → 92c1a9ba-994b-4635-b1b6-1fa157f227f6.png} +0 -0
  118. /kotonebot/kaa/sprites/{0bd59a8f-6fbd-4c92-8c1e-1d58716b6d84.png → 981e63c5-d615-44dd-9ad6-60f6b415cdaf.png} +0 -0
  119. /kotonebot/kaa/sprites/{7eff6c59-a7ed-43d5-8b67-083127e9e748.png → 98a8e860-39cf-416c-b435-64a33579c6e8.png} +0 -0
  120. /kotonebot/kaa/sprites/{78e27204-2544-419d-b66e-e9e7244f4460.png → 9932dfd8-7c97-47dd-b6bb-e8c8d593f762.png} +0 -0
  121. /kotonebot/kaa/sprites/{62676c2c-814a-4d8b-9bb2-232c3b434287.png → 9a275932-f760-4373-ab27-86c5caf19136.png} +0 -0
  122. /kotonebot/kaa/sprites/{b9e687ca-ba44-4aa1-a282-b7da6cffb2ba.png → 9a7f06a5-448b-4410-84fa-0a4c938620f7.png} +0 -0
  123. /kotonebot/kaa/sprites/{db86f5a5-0272-4a74-893e-077acbbecf23.png → 9cdd7af5-0e25-4226-8c7b-93c8c633c27b.png} +0 -0
  124. /kotonebot/kaa/sprites/{c3d5a935-6e77-4751-a0b1-b1ac3a3edf0a.png → a0ddc404-a653-4d76-842f-faf7f93851ed.png} +0 -0
  125. /kotonebot/kaa/sprites/{c86250ac-bde0-45bb-b696-f8b94e2d2d3b.png → a1087827-1065-4f35-b04f-854ddf2d7e70.png} +0 -0
  126. /kotonebot/kaa/sprites/{5cd3481b-2388-4461-b525-c2f78050822f.png → a3f07286-a699-4f5c-9912-835b3781b4f7.png} +0 -0
  127. /kotonebot/kaa/sprites/{9a816f64-b16e-4e8a-b4d8-d056c31c85f1.png → a4aabbbe-6400-4bcb-a95f-32a7d611bf5b.png} +0 -0
  128. /kotonebot/kaa/sprites/{8bdcc43b-876d-451f-b300-67c16c6f5c9f.png → a4b50bf5-7dfe-4bbb-8bd7-528c9147b71e.png} +0 -0
  129. /kotonebot/kaa/sprites/{2ee5d498-1370-4f09-b187-41dbe582f498.png → a4c42000-2421-4b02-b83e-60e1397304b0.png} +0 -0
  130. /kotonebot/kaa/sprites/{9d9dd078-9bb3-4f5f-9ef5-63c203bf02c9.png → a8aacbc9-1238-414c-b1e6-5ea1a01407c2.png} +0 -0
  131. /kotonebot/kaa/sprites/{a18a08f5-c752-4fa4-a451-b48f5ca11360.png → a99307de-c12f-4cf5-921b-b80bf03bbac3.png} +0 -0
  132. /kotonebot/kaa/sprites/{a921b8d5-93b7-4346-9ae4-d2e1def1ec1a.png → ac02de52-42fa-4767-81f8-97fbac3bd8a0.png} +0 -0
  133. /kotonebot/kaa/sprites/{80fac9c6-e6de-4fb5-9543-77797ffcde7a.png → aee9d67f-d6be-4cf5-9c30-331f6d5f0f84.png} +0 -0
  134. /kotonebot/kaa/sprites/{2fc0a912-8d9b-48a3-b942-a25274c83edd.png → b45b4340-65ce-49df-a265-9f3cd876fced.png} +0 -0
  135. /kotonebot/kaa/sprites/{ccbbecec-5cf5-4f9f-8358-6b3408689234.png → b53035c7-43a6-4d83-a51c-dd6b7cd14a1e.png} +0 -0
  136. /kotonebot/kaa/sprites/{cf615078-aedf-46af-a94d-9328a16fbc13.png → b54343ba-8b17-4d72-b379-805ae3062d86.png} +0 -0
  137. /kotonebot/kaa/sprites/{6a59aafc-4962-490e-8ab1-9ad59d22db3d.png → b94087df-db46-4ae3-bf93-8548a25a1a23.png} +0 -0
  138. /kotonebot/kaa/sprites/{03985ce5-781f-4c1b-8d49-c5f97010d5ff.png → bd101208-a87c-405c-987a-d46e1b6f0358.png} +0 -0
  139. /kotonebot/kaa/sprites/{98deb79d-e32b-4551-bc26-c4722d2b1307.png → be2c3ab5-9d63-47bc-93f1-110b9668d5e2.png} +0 -0
  140. /kotonebot/kaa/sprites/{aeff3068-5f5c-4685-a328-fe367d426c46.png → c41567a3-84bf-4e71-9eb1-f577c0348215.png} +0 -0
  141. /kotonebot/kaa/sprites/{c1504a57-77f0-46ca-a30b-162120489d5c.png → c5127f24-fa81-4d61-876f-ac0a377bf00e.png} +0 -0
  142. /kotonebot/kaa/sprites/{ccb8054c-345d-43c9-8b2c-7b2243ad6668.png → c542ba3e-e0c0-41a1-8cc7-dd7454b12400.png} +0 -0
  143. /kotonebot/kaa/sprites/{833ce8cb-01cd-4457-94b9-ff3f93d33f05.png → c6649b6a-7d03-454c-902b-7462092878df.png} +0 -0
  144. /kotonebot/kaa/sprites/{fd354169-e32a-45be-9a1e-da0136b91dc3.png → cf5dcb2b-c5bd-4e38-a2bb-2673db821f79.png} +0 -0
  145. /kotonebot/kaa/sprites/{f60a8a24-b358-4f3a-af2c-4e4a31c5d36e.png → d37153d2-f699-4608-abbf-43d6bd8b1469.png} +0 -0
  146. /kotonebot/kaa/sprites/{382cb218-9e58-406f-9a3b-a9d990fc0fff.png → d3bfc1c2-a202-42c2-9e19-61b949a340c7.png} +0 -0
  147. /kotonebot/kaa/sprites/{a975a75e-e774-481b-8ade-9b1229bc95dd.png → d5ad9b97-3175-4c49-a1f7-5da663125af3.png} +0 -0
  148. /kotonebot/kaa/sprites/{29449202-a6cc-4080-bb87-816481ec9506.png → d5c4ef47-257f-49a2-81e3-ba7ab6fa0f62.png} +0 -0
  149. /kotonebot/kaa/sprites/{94165d54-2c09-427f-9cb1-e23fa9b06a96.png → d7ceaf00-e488-4273-968c-315962bf4837.png} +0 -0
  150. /kotonebot/kaa/sprites/{a4935638-882c-4d3f-af77-e5888ad0b71e.png → d7e25596-8452-4eb3-aaa8-5997be3dd851.png} +0 -0
  151. /kotonebot/kaa/sprites/{7533e4fd-e411-4386-a0fb-aa8f2cbeb216.png → db4ca499-5cd3-4332-b232-28ddbedd4741.png} +0 -0
  152. /kotonebot/kaa/sprites/{f0370809-4383-4039-b8ec-f80a9216a7b3.png → e0effef4-869d-4a0c-8db3-1c41cd255555.png} +0 -0
  153. /kotonebot/kaa/sprites/{40fc17b0-718c-432d-b784-92a22c2f7512.png → e8407109-ffa8-496b-a499-e78db90db540.png} +0 -0
  154. /kotonebot/kaa/sprites/{ecc2500b-4916-4c47-a840-98233d53522b.png → e857f00d-81bd-4fbc-9043-c9252a075da3.png} +0 -0
  155. /kotonebot/kaa/sprites/{54e29f7f-c951-46a2-a068-6911dfcf1966.png → e872aa76-2947-4209-abd7-5ecb56fdc9d6.png} +0 -0
  156. /kotonebot/kaa/sprites/{77b0a64c-1e14-41d6-94af-8824982f2119.png → ea7dd69b-b02f-499d-acee-6bd35a033a73.png} +0 -0
  157. /kotonebot/kaa/sprites/{1b60b852-dc93-48a1-8b73-0d728d04e057.png → f1fcc488-584d-4c61-8489-8b1b539151a9.png} +0 -0
  158. /kotonebot/kaa/sprites/{cd8d48f2-77d2-4d0b-a81f-53a1549457e9.png → f62bfba7-3d6b-4bdd-9821-ca8370ee2ff4.png} +0 -0
  159. /kotonebot/kaa/sprites/{71e84fb3-9474-4bbc-8543-ffba5758dcc0.png → f7084b2c-5411-4180-9404-377240af1857.png} +0 -0
  160. /kotonebot/kaa/sprites/{1262d83a-8f2a-4f75-b70a-385a04d35ae1.png → f7c7f2cf-337b-4dd6-a90b-7f5c452a1640.png} +0 -0
  161. /kotonebot/kaa/sprites/{fb870576-1837-4267-bc0f-e0685bf7a136.png → fbba87fb-50e5-4c2f-9218-82f1ffb7a5ba.png} +0 -0
  162. /kotonebot/kaa/sprites/{4fd7d95e-7955-4a70-ad91-67a230c647a3.png → fc7e4b97-0d87-4de9-b7ac-87ca670b6ff2.png} +0 -0
  163. /kotonebot/kaa/sprites/{5b2e7826-0e1c-4fd8-965c-6a3498c59825.png → fe0a26ac-906c-4809-9de5-43cb4a467a9d.png} +0 -0
  164. /kotonebot/kaa/sprites/{08f593a9-d9eb-41ee-b2c0-010562e7ef10.png → ff232b25-39b4-4dcb-9e21-1d82b9e0bb7d.png} +0 -0
  165. {ksaa-2025.8.23.0.dist-info → ksaa-2025.9b1.dist-info}/WHEEL +0 -0
  166. {ksaa-2025.8.23.0.dist-info → ksaa-2025.9b1.dist-info}/entry_points.txt +0 -0
  167. {ksaa-2025.8.23.0.dist-info → ksaa-2025.9b1.dist-info}/licenses/LICENSE +0 -0
  168. {ksaa-2025.8.23.0.dist-info → ksaa-2025.9b1.dist-info}/top_level.txt +0 -0
@@ -11,6 +11,7 @@ from kotonebot import (
11
11
  Interval,
12
12
  )
13
13
  from kotonebot.kaa.config.schema import produce_solution
14
+ from kotonebot.kaa.tasks.start_game import wait_for_home
14
15
  from kotonebot.primitives import Rect
15
16
  from kotonebot.kaa.tasks import R
16
17
  from .p_drink import acquire_p_drink
@@ -150,6 +151,63 @@ def handle_skill_card_removal():
150
151
  break
151
152
  logger.debug("Handle skill card removal finished.")
152
153
 
154
+ @action('继续当前培育.进入培育', screenshot_mode='manual-inherit')
155
+ def resume_produce_pre() -> tuple[Literal['regular', 'pro', 'master'], int]:
156
+ """
157
+ 继续当前培育.进入培育\n
158
+ 该函数用于处理‘日期变更’等情况;单独执行此函数时,要确保代码已经处于培育状态。
159
+
160
+ 前置条件:游戏首页,且当前有进行中培育\n
161
+ 结束状态:培育中的任意一个页面
162
+ """
163
+ device.screenshot()
164
+ # 点击 プロデュース中
165
+ # [res/sprites/jp/daily/home_1.png]
166
+ logger.info('Click ongoing produce button.')
167
+ device.click(R.Produce.BoxProduceOngoing)
168
+ btn_resume = image.expect_wait(R.Produce.ButtonResume)
169
+ # 判断信息
170
+ mode_result = image.find_multi([
171
+ R.Produce.ResumeDialogRegular,
172
+ R.Produce.ResumeDialogPro,
173
+ R.Produce.ResumeDialogMaster
174
+ ])
175
+ if not mode_result:
176
+ raise ValueError('Failed to detect produce mode.')
177
+ if mode_result.index == 0:
178
+ mode = 'regular'
179
+ elif mode_result.index == 1:
180
+ mode = 'pro'
181
+ else:
182
+ mode = 'master'
183
+ logger.info(f'Produce mode: {mode}')
184
+ retry_count = 0
185
+ max_retries = 5
186
+ current_week = None
187
+ while retry_count < max_retries:
188
+ week_text = ocr.ocr(R.Produce.BoxResumeDialogWeeks, lang='en').squash().regex(r'\d+/\d+')
189
+ if week_text:
190
+ weeks = week_text[0].split('/')
191
+ logger.info(f'Current week: {weeks[0]}/{weeks[1]}')
192
+ if len(weeks) >= 2:
193
+ current_week = int(weeks[0])
194
+ break
195
+ retry_count += 1
196
+ logger.warning(f'Failed to detect weeks. week_text="{week_text}". Retrying... ({retry_count}/{max_retries})')
197
+ sleep(0.5)
198
+ device.screenshot()
199
+
200
+ if retry_count >= max_retries:
201
+ raise ValueError('Failed to detect weeks after multiple retries.')
202
+ if current_week is None:
203
+ raise ValueError('Failed to detect current_week.')
204
+ # 点击 再開する
205
+ # [kotonebot-resource/sprites/jp/produce/produce_resume.png]
206
+ logger.info('Click resume button.')
207
+ device.click(btn_resume)
208
+
209
+ return mode, current_week
210
+
153
211
  AcquisitionType = Literal[
154
212
  "PDrinkAcquire", # P饮料被动领取
155
213
  "PDrinkSelect", # P饮料主动领取
@@ -167,7 +225,31 @@ AcquisitionType = Literal[
167
225
  "NetworkError", # 网络中断弹窗
168
226
  "SkipCommu", # 跳过交流
169
227
  "Loading", # 加载画面
228
+ "DateChange", # 日期变更
170
229
  ]
230
+
231
+ def acquisition_date_change_dialog() -> AcquisitionType | None:
232
+ """
233
+ 检测是否执行了日期变更。\n
234
+ 如果出现了日期变更,则对日期变更直接进行处理(返回标题、进入游戏、重进培育)\n
235
+ 注:不更新屏幕截图。
236
+ """
237
+
238
+ # 日期变更(可以考虑加入版本更新,但因为我目前没有版本更新的720x1080素材,所以没法加)
239
+ logger.debug("Check date change dialog...")
240
+ if image.find(R.Daily.TextDateChangeDialog):
241
+ logger.info("Date change dialog found.")
242
+ # 点击确认
243
+ device.click(image.expect(R.Daily.TextDateChangeDialogConfirmButton))
244
+ # 进入游戏
245
+ # 注:wait_for_home()里的Loop类第一次进入循环体时,会自动执行device.screenshot()
246
+ wait_for_home()
247
+ # 重进培育
248
+ resume_produce_pre()
249
+ return "DateChange"
250
+
251
+ return None
252
+
171
253
  @measure_time()
172
254
  @action('处理培育事件', screenshot_mode='manual')
173
255
  def fast_acquisitions() -> AcquisitionType | None:
@@ -264,6 +346,12 @@ def fast_acquisitions() -> AcquisitionType | None:
264
346
  return "PItemSelect"
265
347
  device.click(10, 10)
266
348
 
349
+ # 日期变更
350
+ result = acquisition_date_change_dialog()
351
+ if result is not None:
352
+ return result
353
+ device.click(10, 10)
354
+
267
355
  return None
268
356
 
269
357
  def until_acquisition_clear():
@@ -242,12 +242,18 @@ def is_rest_available():
242
242
  def rest():
243
243
  """执行休息"""
244
244
  logger.info("Rest for this week.")
245
- (SimpleDispatcher('in_produce.rest')
246
- # 点击休息
247
- .click(R.InPurodyuusu.Rest)
248
- # 确定
249
- .click(R.InPurodyuusu.RestConfirmBtn, finish=True)
250
- ).run()
245
+
246
+ # 部分设备上,第二次click(确定)点击速度过快,导致卡死,所以这里需要添加一个sleep
247
+ device.click(image.expect(R.InPurodyuusu.Rest))
248
+ sleep(0.5)
249
+ device.click(image.expect(R.InPurodyuusu.RestConfirmBtn))
250
+ # 原方案
251
+ # (SimpleDispatcher('in_produce.rest')
252
+ # # 点击休息
253
+ # .click(R.InPurodyuusu.Rest)
254
+ # # 确定
255
+ # .click(R.InPurodyuusu.RestConfirmBtn, finish=True)
256
+ # ).run()
251
257
 
252
258
  @action('判断是否处于行动页面')
253
259
  def at_action_scene():
@@ -3,6 +3,7 @@ from typing import Optional, Literal
3
3
  from typing_extensions import assert_never
4
4
 
5
5
  from kotonebot.kaa.config.schema import produce_solution
6
+ from kotonebot.kaa.tasks.produce.common import resume_produce_pre
6
7
  from kotonebot.ui import user
7
8
  from kotonebot.kaa.tasks import R
8
9
  from kotonebot.kaa.config import conf
@@ -118,60 +119,23 @@ def select_set(index: int):
118
119
  logger.warning(f'Failed to navigate to set #{index}. Current set is #{final_current}. Retrying... ({retry_count}/{max_retries})')
119
120
 
120
121
  logger.error(f'Failed to navigate to set #{index} after {max_retries} retries.')
121
-
122
- @action('继续当前培育', screenshot_mode='manual-inherit')
123
- def resume_produce():
122
+
123
+ @action('继续当前培育.继续培育', screenshot_mode='manual-inherit')
124
+ def resume_produce_lst(
125
+ mode: Literal['regular', 'pro', 'master'],
126
+ current_week: int
127
+ ):
124
128
  """
125
- 继续当前培育
129
+ 继续当前培育.继续培育\n
130
+ 该函数正常情况不应该被单独调用。
126
131
 
127
- 前置条件:游戏首页,且当前有进行中培育\n
132
+ 前置条件:培育中的任意一个页面\n
128
133
  结束状态:游戏首页
134
+
135
+ :param mode: 培育模式
136
+ :param current_week: 培育的周数
129
137
  """
130
- device.screenshot()
131
- # 点击 プロデュース中
132
- # [res/sprites/jp/daily/home_1.png]
133
- logger.info('Click ongoing produce button.')
134
- device.click(R.Produce.BoxProduceOngoing)
135
- btn_resume = image.expect_wait(R.Produce.ButtonResume)
136
- # 判断信息
137
- mode_result = image.find_multi([
138
- R.Produce.ResumeDialogRegular,
139
- R.Produce.ResumeDialogPro,
140
- R.Produce.ResumeDialogMaster
141
- ])
142
- if not mode_result:
143
- raise ValueError('Failed to detect produce mode.')
144
- if mode_result.index == 0:
145
- mode = 'regular'
146
- elif mode_result.index == 1:
147
- mode = 'pro'
148
- else:
149
- mode = 'master'
150
- logger.info(f'Produce mode: {mode}')
151
- retry_count = 0
152
- max_retries = 5
153
- current_week = None
154
- while retry_count < max_retries:
155
- week_text = ocr.ocr(R.Produce.BoxResumeDialogWeeks, lang='en').squash().regex(r'\d+/\d+')
156
- if week_text:
157
- weeks = week_text[0].split('/')
158
- logger.info(f'Current week: {weeks[0]}/{weeks[1]}')
159
- if len(weeks) >= 2:
160
- current_week = int(weeks[0])
161
- break
162
- retry_count += 1
163
- logger.warning(f'Failed to detect weeks. week_text="{week_text}". Retrying... ({retry_count}/{max_retries})')
164
- sleep(0.5)
165
- device.screenshot()
166
-
167
- if retry_count >= max_retries:
168
- raise ValueError('Failed to detect weeks after multiple retries.')
169
- if current_week is None:
170
- raise ValueError('Failed to detect current_week.')
171
- # 点击 再開する
172
- # [kotonebot-resource/sprites/jp/produce/produce_resume.png]
173
- logger.info('Click resume button.')
174
- device.click(btn_resume)
138
+
175
139
  match mode:
176
140
  case 'regular':
177
141
  resume_regular_produce(current_week)
@@ -181,6 +145,19 @@ def resume_produce():
181
145
  resume_master_produce(current_week)
182
146
  case _:
183
147
  assert_never(mode)
148
+
149
+ @action('继续当前培育', screenshot_mode='manual-inherit')
150
+ def resume_produce():
151
+ """
152
+ 继续当前培育
153
+
154
+ 前置条件:游戏首页,且当前有进行中培育\n
155
+ 结束状态:游戏首页
156
+ """
157
+
158
+ mode, current_week = resume_produce_pre()
159
+
160
+ resume_produce_lst(mode, current_week)
184
161
 
185
162
  @action('执行培育', screenshot_mode='manual-inherit')
186
163
  def do_produce(
@@ -209,9 +186,13 @@ def do_produce(
209
186
  device.screenshot()
210
187
  # 点击培育按钮,然后判断是新开还是再开培育
211
188
  for _ in Loop(interval=0.6):
212
- if image.find(R.Produce.TitleIconProudce):
189
+ if image.find(R.Produce.LogoHajime): # Hajime培育界面
213
190
  # 新开
214
191
  break
192
+ elif image.find(R.Produce.LogoNia): # NIA培育界面
193
+ device.click(R.Produce.PointNiaToHajime)
194
+ sleep(0.5)
195
+ continue
215
196
  elif image.find(R.Produce.ButtonResume):
216
197
  # 再开
217
198
  resume_produce()
@@ -250,7 +231,7 @@ def do_produce(
250
231
  # [kotonebot-resource\sprites\jp\produce\screenshot_no_enough_ap_3.png]
251
232
  logger.info('AP insufficient. Try to use AP drink.')
252
233
  for _ in Loop():
253
- if image.find(R.Produce.ButtonUse):
234
+ if image.find(R.Produce.ButtonUse, colored=True):
254
235
  device.click()
255
236
  elif image.find(R.Produce.ButtonRefillAP):
256
237
  device.click()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ksaa
3
- Version: 2025.8.23.0
3
+ Version: 2025.9b1
4
4
  Summary: Kotones Auto Assistant(kaa) is a script for game 'Gakuen Idol M@ster' that automates the dailies and produces.
5
5
  Requires-Python: ~=3.10
6
6
  Description-Content-Type: text/markdown
@@ -110,7 +110,9 @@ kaa
110
110
  因此你最好每次都在同一个地方运行 kaa,否则可能会出现找不到配置文件的情况。
111
111
 
112
112
  ## 开发
113
- [DEVELOPMENT.md](./docs/DEVELOPMENT.md)
113
+ 环境配置见 [DEVELOPMENT.md](./docs/DEVELOPMENT.md)
114
+
115
+ 开发指南见 [QUICK_START.md](./docs/GUIDE.md)。
114
116
 
115
117
  ## 贡献
116
118
  欢迎 PR。