ksaa 2025.7.7.0__py3-none-any.whl → 2025.7.9.0__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.
- kotonebot/backend/context/context.py +19 -6
- kotonebot/kaa/common.py +2 -976
- kotonebot/kaa/config/__init__.py +62 -0
- kotonebot/kaa/config/const.py +255 -0
- kotonebot/kaa/config/migrations/__init__.py +28 -0
- kotonebot/kaa/config/migrations/_idol.py +106 -0
- kotonebot/kaa/config/migrations/_v1_to_v2.py +203 -0
- kotonebot/kaa/config/migrations/_v2_to_v3.py +126 -0
- kotonebot/kaa/config/migrations/_v3_to_v4.py +29 -0
- kotonebot/kaa/config/migrations/_v4_to_v5.py +26 -0
- kotonebot/kaa/config/migrations/_v5_to_v6.py +134 -0
- kotonebot/kaa/config/produce.py +255 -0
- kotonebot/kaa/config/schema.py +236 -0
- kotonebot/kaa/config/upgrade.py +63 -0
- kotonebot/kaa/game_ui/commu_event_buttons.py +3 -0
- kotonebot/kaa/game_ui/schedule.py +1 -1
- kotonebot/kaa/main/gr.py +804 -168
- kotonebot/kaa/main/kaa.py +19 -13
- kotonebot/kaa/metadata.py +31 -0
- kotonebot/kaa/resources/__pycache__/__init__.cpython-310.pyc +0 -0
- kotonebot/kaa/tasks/R.py +126 -126
- kotonebot/kaa/tasks/daily/acquire_activity_funds.py +1 -1
- kotonebot/kaa/tasks/daily/acquire_presents.py +1 -1
- kotonebot/kaa/tasks/daily/assignment.py +1 -1
- kotonebot/kaa/tasks/daily/capsule_toys.py +1 -1
- kotonebot/kaa/tasks/daily/club_reward.py +1 -1
- kotonebot/kaa/tasks/daily/contest.py +1 -1
- kotonebot/kaa/tasks/daily/mission_reward.py +1 -1
- kotonebot/kaa/tasks/daily/purchase.py +1 -1
- kotonebot/kaa/tasks/daily/upgrade_support_card.py +1 -1
- kotonebot/kaa/tasks/end_game.py +1 -1
- kotonebot/kaa/tasks/produce/cards.py +1 -1
- kotonebot/kaa/tasks/produce/common.py +3 -2
- kotonebot/kaa/tasks/produce/in_purodyuusu.py +9 -7
- kotonebot/kaa/tasks/produce/non_lesson_actions.py +3 -2
- kotonebot/kaa/tasks/produce/produce.py +27 -22
- kotonebot/kaa/tasks/start_game.py +1 -1
- {ksaa-2025.7.7.0.dist-info → ksaa-2025.7.9.0.dist-info}/METADATA +1 -1
- {ksaa-2025.7.7.0.dist-info → ksaa-2025.7.9.0.dist-info}/RECORD +169 -157
- /kotonebot/kaa/sprites/{21fe29c2-f49b-473f-8ac3-896b4d3c72f5.png → 02cf0df9-37d6-4387-b8eb-c92589264c2a.png} +0 -0
- /kotonebot/kaa/sprites/{d07f0d30-465e-4b4e-803f-a81aeabdd1e8.png → 02d4e179-912e-4e1f-ba7d-ea37fe87279e.png} +0 -0
- /kotonebot/kaa/sprites/{87a59b06-0ac7-4a35-93c4-3705bf9e774a.png → 037cb117-8521-4670-b3ec-ee0e260c1d62.png} +0 -0
- /kotonebot/kaa/sprites/{835a1f3e-5a06-4490-bc2e-c6d3d8edc1fd.png → 04be14b5-4169-4b3e-ab14-224db52c9a39.png} +0 -0
- /kotonebot/kaa/sprites/{6faf9942-994d-418a-ae42-25c5fcffa79e.png → 06bb9a6e-1dbe-48db-91d7-51d9fc3ffcce.png} +0 -0
- /kotonebot/kaa/sprites/{308818b7-a252-45a6-868d-553c078b3752.png → 08444afd-90d4-43ac-b3ee-128a5bdef4a2.png} +0 -0
- /kotonebot/kaa/sprites/{f957edb2-3534-4d1d-a9be-70b478b2ff63.png → 0910c5f3-7f72-4385-967c-4bf226c9861b.png} +0 -0
- /kotonebot/kaa/sprites/{20748b0c-889f-4706-857b-48fc921a88e3.png → 0b332c2c-aa57-4f10-aa55-8e981f2e7c27.png} +0 -0
- /kotonebot/kaa/sprites/{e007420c-b92b-414c-96a3-d556e3c25cb2.png → 0c4ee900-3e44-4e37-a199-32d66daa2025.png} +0 -0
- /kotonebot/kaa/sprites/{688d653e-7ee7-4d41-ac79-b4efd6c3cadd.png → 0cfd52cc-1f38-4804-bc1f-8da9cc51d969.png} +0 -0
- /kotonebot/kaa/sprites/{4d3e267c-552c-4a65-840a-dc72a61c8db1.png → 131d5c1b-70b3-47d3-b6d6-318045629037.png} +0 -0
- /kotonebot/kaa/sprites/{d5899bda-b311-469d-b4fb-963799ef1720.png → 133dbdd9-23fa-4157-9f9e-fd1728207bd0.png} +0 -0
- /kotonebot/kaa/sprites/{f2d614b3-d3bf-4340-b261-f4c385a59e4e.png → 17d2730b-e56e-4956-973d-5f822490a2c5.png} +0 -0
- /kotonebot/kaa/sprites/{d7d6ace9-35f1-4c71-b4c1-9de938b254f4.png → 231b3e86-cfc5-4e08-803b-63ed680ab1ad.png} +0 -0
- /kotonebot/kaa/sprites/{5efa51e6-5cb7-4843-9397-8d71c6175fcf.png → 2569011c-3bad-416c-b358-ceaf313507e8.png} +0 -0
- /kotonebot/kaa/sprites/{466524da-0d9e-424f-82eb-d6e6d3145bd3.png → 26dd326a-a6da-4350-8140-217e9d6a6109.png} +0 -0
- /kotonebot/kaa/sprites/{2712893d-0219-43e1-8de7-c2761456719e.png → 29119167-eb9c-4c35-9c63-9c9967f85163.png} +0 -0
- /kotonebot/kaa/sprites/{99b58811-42ff-415b-9229-f5c75cbe1a1a.png → 2b8385d8-ea7e-4675-9d16-57b905a18d90.png} +0 -0
- /kotonebot/kaa/sprites/{b974e1ac-1f24-4498-aa84-62cb5c0984e7.png → 2cd2047f-91af-4632-8cb2-eb2fc4b4c808.png} +0 -0
- /kotonebot/kaa/sprites/{e6a16a1e-e821-45f0-bc64-f2e0dab7efd7.png → 314bc3ab-8c73-4517-ae7c-75d21ac61448.png} +0 -0
- /kotonebot/kaa/sprites/{8308964d-96d1-4b7e-b0fa-b20163311153.png → 33e4e6c9-d245-4174-8303-04019ce20136.png} +0 -0
- /kotonebot/kaa/sprites/{774ca489-09c2-414e-b27b-f32d3bf6894d.png → 34cce4b7-53fe-4ea2-82d8-d31fe7b9abcd.png} +0 -0
- /kotonebot/kaa/sprites/{cdc6e5e2-5b38-4471-b23f-17ec229268db.png → 3820d53e-5b87-4a35-9472-e90498225853.png} +0 -0
- /kotonebot/kaa/sprites/{f26d4e09-2511-48e4-9c69-ba413ddf65e1.png → 38e35291-2a94-4261-9b58-80d7b17165c9.png} +0 -0
- /kotonebot/kaa/sprites/{bcb990e6-58ae-460d-859a-812b4121e716.png → 3ae6e096-42e4-4ac4-ad79-6f2529925c16.png} +0 -0
- /kotonebot/kaa/sprites/{80c45554-0758-47eb-b9d7-d8c10f462ae5.png → 3c41fb45-6400-4818-9066-e03d60d2a895.png} +0 -0
- /kotonebot/kaa/sprites/{b2f31f86-b7ae-4eb1-8042-d14c5b226714.png → 3e9adf0f-f6c5-4d68-9667-97ea2f82bb51.png} +0 -0
- /kotonebot/kaa/sprites/{18369504-36b1-4b10-93e6-878c2cae6c8f.png → 3ef649e7-c03a-40d1-9a76-653faaf799df.png} +0 -0
- /kotonebot/kaa/sprites/{23464a7b-dc7a-439c-86b7-04a5dd506412.png → 43226a61-3d61-4acb-afbb-812bf9e97843.png} +0 -0
- /kotonebot/kaa/sprites/{1762b8dc-abb8-402e-88b9-22111b054d27.png → 443a5dbf-e2fb-4d34-bb09-c21e1437f715.png} +0 -0
- /kotonebot/kaa/sprites/{76f43a30-b76d-4648-91b6-49f2786e668d.png → 459851f5-fa20-45c4-a6d2-1018b3976fcd.png} +0 -0
- /kotonebot/kaa/sprites/{bbfb7670-2537-4a92-9a39-487d174f27a0.png → 46c520e7-7b97-43be-8cc2-21e478b5d844.png} +0 -0
- /kotonebot/kaa/sprites/{6d4337f4-e30c-44eb-bab9-220a46c0c96f.png → 4867e835-c805-463e-9a53-1e677e3d140f.png} +0 -0
- /kotonebot/kaa/sprites/{2f4f3d81-2a8c-49d3-84a8-4d1205237ed4.png → 48ebb790-2310-436d-a31c-dba4db034cbc.png} +0 -0
- /kotonebot/kaa/sprites/{c692a9b3-8a2a-42f1-8f63-ad8bd553272d.png → 4b8ebe86-7a0d-474a-abac-b4a45fda5e88.png} +0 -0
- /kotonebot/kaa/sprites/{6f638005-aa18-4804-a5fe-269de4d1ad9e.png → 4c235498-622f-4f74-9ebb-df3fcd3306ab.png} +0 -0
- /kotonebot/kaa/sprites/{05d933de-6274-4d46-a81b-860de1981ebc.png → 4f3d2710-5626-4471-9b21-cd01b8c542d1.png} +0 -0
- /kotonebot/kaa/sprites/{dfb1d18d-b768-46c4-9d31-b654ba7a2b6d.png → 4f4e3cf3-b1d9-436b-9477-5f2244c20d6b.png} +0 -0
- /kotonebot/kaa/sprites/{1cede0b7-5042-481c-b507-957dd98ec17a.png → 4f891dc4-71c0-4492-a8d1-0c52978e75e1.png} +0 -0
- /kotonebot/kaa/sprites/{30ff50f2-7ab2-4a1d-88db-fd6deaba328e.png → 4ff46fa5-fe9e-4103-8012-451adc14dc43.png} +0 -0
- /kotonebot/kaa/sprites/{e798ff2f-6f30-4536-923a-a65433817423.png → 5399e464-1ee6-406b-acab-7826e30f3fd9.png} +0 -0
- /kotonebot/kaa/sprites/{51eac702-ca23-4aba-b75a-cdb03a93a117.png → 540a64f4-8111-4df4-abfe-0e62e0f8c7af.png} +0 -0
- /kotonebot/kaa/sprites/{c9e507d5-94dd-4ff3-b995-70c6cb360095.png → 5422d945-aa90-443e-bf79-f8ab93ec9411.png} +0 -0
- /kotonebot/kaa/sprites/{31dd40b0-1c07-4d6c-aabe-fd3e4895f4df.png → 585c7846-f353-448f-8eb9-1ceafec94555.png} +0 -0
- /kotonebot/kaa/sprites/{e87f0760-4bc9-4d7f-91e2-5452ba0fcd9d.png → 5a87228a-ec5d-4ffc-951a-1454c9c03bdc.png} +0 -0
- /kotonebot/kaa/sprites/{b73fa422-bf9c-43aa-ad80-ae92286042e6.png → 5b14a452-ea54-4804-8ec0-3cd916cd8e88.png} +0 -0
- /kotonebot/kaa/sprites/{467fe027-96ba-48b1-963b-75a5c41277c4.png → 5cc8ccda-2cf7-4956-b67d-15327bc75ed6.png} +0 -0
- /kotonebot/kaa/sprites/{e614c8e1-1d7b-4535-a8ba-cbf09fd5b163.png → 5e27d1c5-cc3f-4aee-8d79-69c09206fa3d.png} +0 -0
- /kotonebot/kaa/sprites/{c1336997-ea27-4d53-9c64-826ca7eca11f.png → 64938ad2-442f-41eb-a544-4d2611e8012f.png} +0 -0
- /kotonebot/kaa/sprites/{f9b38a5e-72cb-4b18-8817-18473effd41d.png → 65223004-722e-4003-af09-c7769e8a7cb2.png} +0 -0
- /kotonebot/kaa/sprites/{6f06519d-4f33-4418-b4cb-35a7356cc121.png → 659a1775-7001-4add-96e9-292693a26b60.png} +0 -0
- /kotonebot/kaa/sprites/{e64c9477-35f7-4f05-995f-f3f38bb7db66.png → 6626694b-1394-44af-b76b-791c5bb2428b.png} +0 -0
- /kotonebot/kaa/sprites/{5cff1e6f-81ea-4d4a-88ba-209cf3bbb165.png → 6a202eb6-dd41-4675-a840-99dde2b2efa4.png} +0 -0
- /kotonebot/kaa/sprites/{10713c56-e462-4543-8a51-02f220ed6943.png → 6b2e887b-e113-4280-9779-6795c2782c58.png} +0 -0
- /kotonebot/kaa/sprites/{6df0db09-9159-43b5-a6b9-43a2dfdafdab.png → 6eb959e1-ee64-4fa6-a20f-8ee4e51f2c6a.png} +0 -0
- /kotonebot/kaa/sprites/{7dd1c478-719f-4432-891f-9543064fd1fc.png → 7098fbf7-b8cc-4933-bfec-12a2ac98e38c.png} +0 -0
- /kotonebot/kaa/sprites/{c7e90767-3661-4e86-8c54-8e1d1e83d113.png → 712e9223-4dd2-4ff6-887b-4182fd243d78.png} +0 -0
- /kotonebot/kaa/sprites/{acd1a611-f93d-4d32-8070-dc325b42eeb9.png → 7256a95e-24b8-40fd-bd8e-73a1572c3f93.png} +0 -0
- /kotonebot/kaa/sprites/{6490c5b2-2ed8-44d6-93b8-72d88434b49e.png → 73f89439-c4e3-4263-8fa7-229cde98aa99.png} +0 -0
- /kotonebot/kaa/sprites/{2154ebd3-9c89-4355-b4f4-a5e18ecf728d.png → 74efd362-4cc1-4b9f-8032-e5bc45c2af5c.png} +0 -0
- /kotonebot/kaa/sprites/{a586f586-85e9-439e-ab3f-905d6cbe6746.png → 756ac796-ce43-4ddb-989e-13bf07cbe3b7.png} +0 -0
- /kotonebot/kaa/sprites/{78c0f6b4-c09d-4b44-9b5e-35e1e40dd748.png → 77193249-7e2a-4652-ab6d-a463350ca226.png} +0 -0
- /kotonebot/kaa/sprites/{0eb4e53c-f0af-4c86-870c-b1db087d53db.png → 784a91b2-4d24-461f-8bd3-2f02b9bc193f.png} +0 -0
- /kotonebot/kaa/sprites/{f18c683d-1eb2-4279-a05c-c411683354df.png → 83c67f2a-0f73-4238-a5a8-8ebb839ed99a.png} +0 -0
- /kotonebot/kaa/sprites/{3ddd0976-7c8b-4c67-bac7-a0cc1af3bfad.png → 86b3bab1-c5f6-48b2-b810-c3ec55c32314.png} +0 -0
- /kotonebot/kaa/sprites/{bfd495eb-7ec2-47d7-aff2-59c1a663be5d.png → 872838c5-47c6-4f78-b105-0a72b5459f16.png} +0 -0
- /kotonebot/kaa/sprites/{b720a22b-a2f1-4686-969d-2a2edd8fb96b.png → 93f03304-5609-4f4f-9ac8-a46e7b883960.png} +0 -0
- /kotonebot/kaa/sprites/{4e040068-e2ae-4348-80a2-f113c2426d46.png → 97e96ecf-e51b-4a09-ab11-3c164196747f.png} +0 -0
- /kotonebot/kaa/sprites/{5367d7ad-5a27-42e4-a7d9-5bf27102f502.png → 992473c3-df0a-4c72-8134-f2aac9e7b0f6.png} +0 -0
- /kotonebot/kaa/sprites/{c686d99a-248a-460b-a4fe-2fa5b8e9660b.png → 9d86ab77-de0b-433d-9b0e-5aba283309a6.png} +0 -0
- /kotonebot/kaa/sprites/{5d5db2d4-2648-40fe-bd17-05aea9afbc7d.png → 9eb202c8-c61a-4918-beb9-b0f03739b0b3.png} +0 -0
- /kotonebot/kaa/sprites/{f3e4e9ec-ddd6-42c4-9638-b93ff4e6b514.png → a4e02797-2c5d-4860-aaa4-c20c43be7500.png} +0 -0
- /kotonebot/kaa/sprites/{2d4001e6-137e-40b2-94b0-ba3ae9e397e4.png → a5c582f5-3627-44be-b574-a4e4287376e0.png} +0 -0
- /kotonebot/kaa/sprites/{b2743383-a3e4-43ff-82a3-3c7c6450fc50.png → a914da74-9752-42be-913b-86514eb4b589.png} +0 -0
- /kotonebot/kaa/sprites/{9d94c24c-5aab-4fb6-8fa7-902cebac134c.png → aacb651b-9a3d-42a1-9fc0-9187dc8cded7.png} +0 -0
- /kotonebot/kaa/sprites/{7315c6b9-6fda-4790-8e9a-c8c4220834e1.png → ae146d94-5e69-4970-b175-d7c8c4f9a9cd.png} +0 -0
- /kotonebot/kaa/sprites/{acd01a53-c689-4ffd-ae45-744a37c70197.png → ae57e1fb-c42f-4401-93a1-76d4591b5fad.png} +0 -0
- /kotonebot/kaa/sprites/{d108794a-60b8-4637-bced-84f46140eaac.png → b1878d2b-4908-4342-b395-864aafa5c54b.png} +0 -0
- /kotonebot/kaa/sprites/{fffa0118-dd3a-4d01-8c4e-d43182778391.png → b26e3c78-a6be-4ad1-8992-c3245b1a6f9b.png} +0 -0
- /kotonebot/kaa/sprites/{f5917c99-185e-4bd9-b367-972c77accb44.png → b3a41d58-f375-4882-bebb-57f72322d016.png} +0 -0
- /kotonebot/kaa/sprites/{59997849-5a5a-4589-a4ff-e91a789fc68d.png → b4905122-7d97-4561-a14a-b8a9a5cd9227.png} +0 -0
- /kotonebot/kaa/sprites/{2d0ed04f-777a-4a69-9a58-0be791260dca.png → b534423c-2024-4234-9886-f49e17dd96e7.png} +0 -0
- /kotonebot/kaa/sprites/{898325da-307d-4108-ab4c-25d9ae94ee24.png → b6680d31-8552-4111-bc39-0867c06bf94a.png} +0 -0
- /kotonebot/kaa/sprites/{5587551f-011c-4f94-86e8-7e81d08c4be2.png → b6c637bf-5fdd-4e68-b4d8-b403bf611f3b.png} +0 -0
- /kotonebot/kaa/sprites/{4abd8e80-83ef-4d1a-b143-e6ad0ac189ab.png → b9e19bda-3793-4cf4-928a-fc43642b32e6.png} +0 -0
- /kotonebot/kaa/sprites/{9e861b2e-f896-4738-b0d0-9b703395720d.png → bc1c640a-87d8-47af-9fcc-8681acac7b27.png} +0 -0
- /kotonebot/kaa/sprites/{54d71b39-a3f2-4f20-a294-b6b5ef9c56f3.png → bc25ed87-50a7-4aa8-b743-505450677b00.png} +0 -0
- /kotonebot/kaa/sprites/{4112f697-094b-4046-bfac-409f156784b0.png → bcf2f87a-de7f-4fb9-aa6c-0b4f6bff921e.png} +0 -0
- /kotonebot/kaa/sprites/{54f5e4d6-44f9-4249-bf80-aaaacf0a8d52.png → bdd0e8f8-3d35-48e8-b735-66eaf2ece2e6.png} +0 -0
- /kotonebot/kaa/sprites/{1e398be7-49ac-4eb6-b828-b935f042037a.png → bec6c0cf-40f6-446d-85b3-c692d3322a51.png} +0 -0
- /kotonebot/kaa/sprites/{af0f65a5-8d32-4211-86df-66b3fa609462.png → bf19069d-e044-4f76-93f7-f2ecd3214e47.png} +0 -0
- /kotonebot/kaa/sprites/{4eb9a3a1-da46-493b-a17d-5eb9ef53524c.png → c1274e01-2cc7-432f-b244-65ffe8269656.png} +0 -0
- /kotonebot/kaa/sprites/{177ee196-1013-487e-9944-64c4a9b803ef.png → c65d71af-ffb3-4992-b954-c59ae48615b8.png} +0 -0
- /kotonebot/kaa/sprites/{f9e8cde8-fda0-4436-8072-6bc32c3c0b8e.png → c67852a2-30a9-4fd6-a4c2-83870a658998.png} +0 -0
- /kotonebot/kaa/sprites/{3de5ce1b-f72b-450a-a1de-5a841fbd507a.png → c705eece-67d8-4017-a4d9-a7f1337f67be.png} +0 -0
- /kotonebot/kaa/sprites/{5200fbda-653d-4b6f-84d8-15793cc53684.png → c86a3385-407e-40d5-b519-1927406d5b09.png} +0 -0
- /kotonebot/kaa/sprites/{08f93e03-18c9-42e3-9a2f-7d7954f585b0.png → ca42ca0c-3829-4e43-88c9-db4939cfa982.png} +0 -0
- /kotonebot/kaa/sprites/{3e9bdd08-3a74-40b3-8320-05ed4e8fe5d7.png → cba7528d-ae17-4a37-b388-6f86e1a590f4.png} +0 -0
- /kotonebot/kaa/sprites/{1cd922b1-cd9c-4b60-b7e7-014c59217cb0.png → cc1767ec-77db-49ac-8c9e-f48d1fb7b071.png} +0 -0
- /kotonebot/kaa/sprites/{2ffd9c12-0520-4f9c-92b1-bfdef0681583.png → ce282e51-7067-4293-ad26-24dbba172a08.png} +0 -0
- /kotonebot/kaa/sprites/{1d714b45-6b20-40ba-8e0b-e7c106f0c8f3.png → d1e5672d-df91-4316-984c-48550c5d1931.png} +0 -0
- /kotonebot/kaa/sprites/{126f5161-3567-4c76-8e91-371392e39a9c.png → d2d99405-7927-47fc-be4c-a7591b339a6c.png} +0 -0
- /kotonebot/kaa/sprites/{489feedd-f44e-4714-ad24-b53630dfcf27.png → d356fc84-a8c0-4d0f-a3ed-c7ff5ccd276c.png} +0 -0
- /kotonebot/kaa/sprites/{0089161a-0dac-41da-97af-b9200339a383.png → d477e49c-37cc-4e71-a8e6-6633f044260a.png} +0 -0
- /kotonebot/kaa/sprites/{2ed453f3-9c31-4c96-95dd-1a6aa68302f7.png → d4b1e48b-bf9c-4f44-9ddb-3af8eb4ea464.png} +0 -0
- /kotonebot/kaa/sprites/{6a45398a-4240-4fb7-8926-fa1254125bbf.png → d6d6229a-2345-4fe7-b2c5-109fcdb37c39.png} +0 -0
- /kotonebot/kaa/sprites/{adf0eea7-a052-410b-b479-8c672ae38268.png → d953cdee-08b5-45fb-908b-2644220b0f07.png} +0 -0
- /kotonebot/kaa/sprites/{3091351b-ab63-4688-8082-32545052d7a8.png → de069910-6085-45a9-ba96-64bc7aeead77.png} +0 -0
- /kotonebot/kaa/sprites/{7c40ea85-87f6-4531-a25a-896dd70b49d1.png → dea4c704-5739-423f-a15c-f31a4a93d64f.png} +0 -0
- /kotonebot/kaa/sprites/{dd431a8a-3ffa-43d6-96c6-4e84aa946b72.png → debc6a94-9bf1-46d7-b0b0-0c55cb367f12.png} +0 -0
- /kotonebot/kaa/sprites/{06e7d3f6-1ab8-4714-8ab5-8af71dcbfa78.png → e0555145-9446-4ebe-965b-f46b458e5681.png} +0 -0
- /kotonebot/kaa/sprites/{025f1786-cd28-4a08-ad81-178d267dbb1a.png → e19c5f10-5f93-4431-9bf3-4f92512eab6e.png} +0 -0
- /kotonebot/kaa/sprites/{2146a037-c3ad-4c33-834c-ddd7f3b7876c.png → e353b4cb-ea6d-4fc4-91ec-c19582e9507c.png} +0 -0
- /kotonebot/kaa/sprites/{d43f214a-4db4-4222-941c-3d3216a0c0c3.png → e6554fee-c6fd-49ee-8c32-b4932fc701da.png} +0 -0
- /kotonebot/kaa/sprites/{0913f34e-1790-4afb-af31-9a5e94d54b05.png → e916a5ca-287c-4cbe-93ca-22b439c5ffab.png} +0 -0
- /kotonebot/kaa/sprites/{899ad2c0-7b23-4b77-aed4-34ba4911672b.png → ed4a2db1-ab2e-4b36-8d6f-5b7961501475.png} +0 -0
- /kotonebot/kaa/sprites/{e93a983d-b869-45e4-8a5c-cd1c9d511b11.png → ed4a318e-f69a-4fb9-9853-9746f01c6015.png} +0 -0
- /kotonebot/kaa/sprites/{4670fd78-3748-4df3-968b-25c8246da92b.png → efe68984-8dbc-417e-924c-87c6860c58ef.png} +0 -0
- /kotonebot/kaa/sprites/{e6d0979a-cd27-4933-b528-7777be525ace.png → f165bf01-9e9d-4afb-87d9-4a26318140cf.png} +0 -0
- /kotonebot/kaa/sprites/{fc44214e-ef8a-4ea1-baec-35674ce0c4d6.png → f2846992-402e-4f50-b74e-91d6f3b8994d.png} +0 -0
- /kotonebot/kaa/sprites/{bad07ebd-c8e7-4721-ab74-a38fa30e0401.png → f4227a80-f62d-4daf-83d0-c7b5500088ee.png} +0 -0
- /kotonebot/kaa/sprites/{97e33fa0-1442-418d-b393-3b916312c9e1.png → f496a454-5cf5-4b6b-aedb-1dad58c85035.png} +0 -0
- /kotonebot/kaa/sprites/{119f04e2-3871-46a8-9d5c-808c641f7aae.png → f4af8fb2-6270-4b75-8b24-d0e49daebac1.png} +0 -0
- /kotonebot/kaa/sprites/{0a3c0a4e-a979-401c-9bf3-a389e8a74e7b.png → f60c40a1-750b-41ac-9d24-2d7ffce44166.png} +0 -0
- /kotonebot/kaa/sprites/{c639b2f6-35f2-4924-9e81-878637c176a6.png → f6c3bd48-fe1e-4fe3-bf58-13422b5b4a99.png} +0 -0
- /kotonebot/kaa/sprites/{84c0f8bf-c670-47d4-8d5c-06de599f7c40.png → ffaffa14-22dd-4397-8dc1-7b94fd4cf06b.png} +0 -0
- {ksaa-2025.7.7.0.dist-info → ksaa-2025.7.9.0.dist-info}/WHEEL +0 -0
- {ksaa-2025.7.7.0.dist-info → ksaa-2025.7.9.0.dist-info}/entry_points.txt +0 -0
- {ksaa-2025.7.7.0.dist-info → ksaa-2025.7.9.0.dist-info}/licenses/LICENSE +0 -0
- {ksaa-2025.7.7.0.dist-info → ksaa-2025.7.9.0.dist-info}/top_level.txt +0 -0
|
@@ -4,7 +4,7 @@ from typing import Literal
|
|
|
4
4
|
from datetime import timedelta
|
|
5
5
|
|
|
6
6
|
from kotonebot.kaa.tasks import R
|
|
7
|
-
from kotonebot.kaa.
|
|
7
|
+
from kotonebot.kaa.config import conf
|
|
8
8
|
from ..actions.scenes import at_home, goto_home
|
|
9
9
|
from kotonebot import task, device, image, action, ocr, contains, cropped, rect_expand, color, sleep, regex
|
|
10
10
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import logging
|
|
3
3
|
|
|
4
4
|
from kotonebot.kaa.tasks import R
|
|
5
|
-
from kotonebot.kaa.
|
|
5
|
+
from kotonebot.kaa.config import conf
|
|
6
6
|
from kotonebot.kaa.game_ui.scrollable import Scrollable
|
|
7
7
|
from ..actions.scenes import at_home, goto_home
|
|
8
8
|
from kotonebot.backend.image import TemplateMatchResult
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import logging
|
|
3
3
|
|
|
4
4
|
from kotonebot.kaa.tasks import R
|
|
5
|
-
from kotonebot.kaa.
|
|
5
|
+
from kotonebot.kaa.config import conf
|
|
6
6
|
from kotonebot.kaa.game_ui import toolbar_menu
|
|
7
7
|
from ..actions.scenes import at_home, goto_home
|
|
8
8
|
from kotonebot import task, device, image, sleep, ocr
|
|
@@ -3,7 +3,7 @@ import logging
|
|
|
3
3
|
from gettext import gettext as _
|
|
4
4
|
|
|
5
5
|
from kotonebot.kaa.tasks import R
|
|
6
|
-
from kotonebot.kaa.
|
|
6
|
+
from kotonebot.kaa.config import conf
|
|
7
7
|
from kotonebot.kaa.game_ui import WhiteFilter
|
|
8
8
|
from ..actions.scenes import at_home, goto_home
|
|
9
9
|
from ..actions.loading import wait_loading_end
|
|
@@ -4,7 +4,7 @@ import logging
|
|
|
4
4
|
from kotonebot.kaa.tasks import R
|
|
5
5
|
|
|
6
6
|
from kotonebot.primitives import Rect
|
|
7
|
-
from kotonebot.kaa.
|
|
7
|
+
from kotonebot.kaa.config import conf, Priority
|
|
8
8
|
from ..actions.loading import wait_loading_end
|
|
9
9
|
from ..actions.scenes import at_home, goto_home
|
|
10
10
|
from kotonebot import device, image, color, task, action, rect_expand, sleep
|
|
@@ -4,7 +4,7 @@ from typing import Optional
|
|
|
4
4
|
|
|
5
5
|
from kotonebot.backend.loop import Loop
|
|
6
6
|
from kotonebot.kaa.tasks import R
|
|
7
|
-
from kotonebot.kaa.
|
|
7
|
+
from kotonebot.kaa.config import conf, DailyMoneyShopItems
|
|
8
8
|
from kotonebot.primitives.geometry import Point
|
|
9
9
|
from kotonebot.util import Countdown, cropped
|
|
10
10
|
from kotonebot import task, device, image, action, sleep
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import logging
|
|
3
3
|
|
|
4
4
|
from kotonebot.kaa.tasks import R
|
|
5
|
-
from kotonebot.kaa.
|
|
5
|
+
from kotonebot.kaa.config import conf
|
|
6
6
|
from kotonebot.kaa.game_ui.scrollable import Scrollable
|
|
7
7
|
from ..actions.scenes import at_home, goto_home
|
|
8
8
|
from kotonebot import task, device, image, sleep
|
kotonebot/kaa/tasks/end_game.py
CHANGED
|
@@ -7,7 +7,7 @@ import threading
|
|
|
7
7
|
|
|
8
8
|
from kotonebot.ui import user
|
|
9
9
|
from ..kaa_context import instance
|
|
10
|
-
from kotonebot.kaa.
|
|
10
|
+
from kotonebot.kaa.config import Priority, conf
|
|
11
11
|
from kotonebot import task, action, config, device
|
|
12
12
|
|
|
13
13
|
logger = logging.getLogger(__name__)
|
|
@@ -7,7 +7,7 @@ import numpy as np
|
|
|
7
7
|
from cv2.typing import MatLike
|
|
8
8
|
|
|
9
9
|
from kotonebot.kaa.tasks import R
|
|
10
|
-
from kotonebot.kaa.
|
|
10
|
+
from kotonebot.kaa.config import conf
|
|
11
11
|
from kotonebot.kaa.game_ui import dialog
|
|
12
12
|
from kotonebot.kaa.util.trace import trace
|
|
13
13
|
from kotonebot.primitives import RectTuple, Rect
|
|
@@ -9,11 +9,12 @@ from kotonebot import (
|
|
|
9
9
|
sleep,
|
|
10
10
|
Interval,
|
|
11
11
|
)
|
|
12
|
+
from kotonebot.kaa.config.schema import produce_solution
|
|
12
13
|
from kotonebot.primitives import Rect
|
|
13
14
|
from kotonebot.kaa.tasks import R
|
|
14
15
|
from .p_drink import acquire_p_drink
|
|
15
16
|
from kotonebot.util import measure_time
|
|
16
|
-
from kotonebot.kaa.
|
|
17
|
+
from kotonebot.kaa.config import conf
|
|
17
18
|
from kotonebot.kaa.tasks.actions.loading import loading
|
|
18
19
|
from kotonebot.kaa.game_ui import CommuEventButtonUI, dialog, badge
|
|
19
20
|
from kotonebot.kaa.tasks.actions.commu import handle_unread_commu
|
|
@@ -188,7 +189,7 @@ def fast_acquisitions() -> AcquisitionType | None:
|
|
|
188
189
|
|
|
189
190
|
# 跳过未读交流
|
|
190
191
|
logger.debug("Check skip commu...")
|
|
191
|
-
if
|
|
192
|
+
if produce_solution().data.skip_commu and handle_unread_commu(img):
|
|
192
193
|
return "SkipCommu"
|
|
193
194
|
device.click(10, 10)
|
|
194
195
|
|
|
@@ -2,6 +2,7 @@ import logging
|
|
|
2
2
|
from typing_extensions import assert_never
|
|
3
3
|
from typing import Literal
|
|
4
4
|
|
|
5
|
+
from kotonebot.kaa.config.schema import produce_solution
|
|
5
6
|
from kotonebot.kaa.game_ui.schedule import Schedule
|
|
6
7
|
from kotonebot.kaa.tasks import R
|
|
7
8
|
from ..actions import loading
|
|
@@ -12,7 +13,8 @@ from ..actions.commu import handle_unread_commu
|
|
|
12
13
|
from kotonebot.errors import UnrecoverableError
|
|
13
14
|
from kotonebot.util import Countdown, Interval, cropped
|
|
14
15
|
from kotonebot.backend.dispatch import DispatcherContext
|
|
15
|
-
from kotonebot.kaa.
|
|
16
|
+
from kotonebot.kaa.config import ProduceAction, RecommendCardDetectionMode
|
|
17
|
+
from kotonebot.kaa.config import conf
|
|
16
18
|
from ..produce.common import until_acquisition_clear, commu_event, fast_acquisitions
|
|
17
19
|
from kotonebot import ocr, device, contains, image, regex, action, sleep, wait
|
|
18
20
|
from ..produce.non_lesson_actions import (
|
|
@@ -192,7 +194,7 @@ def practice():
|
|
|
192
194
|
|
|
193
195
|
def threshold_predicate(card_count: int, result: CardDetectResult):
|
|
194
196
|
border_scores = (result.left_score, result.right_score, result.top_score, result.bottom_score)
|
|
195
|
-
is_strict_mode =
|
|
197
|
+
is_strict_mode = produce_solution().data.recommend_card_detection_mode == RecommendCardDetectionMode.STRICT
|
|
196
198
|
if is_strict_mode:
|
|
197
199
|
return (
|
|
198
200
|
result.score >= 0.05
|
|
@@ -224,7 +226,7 @@ def exam(type: Literal['mid', 'final']):
|
|
|
224
226
|
logger.info("Exam started")
|
|
225
227
|
|
|
226
228
|
def threshold_predicate(card_count: int, result: CardDetectResult):
|
|
227
|
-
is_strict_mode =
|
|
229
|
+
is_strict_mode = produce_solution().data.recommend_card_detection_mode == RecommendCardDetectionMode.STRICT
|
|
228
230
|
total = lambda t: result.score >= t
|
|
229
231
|
def borders(t):
|
|
230
232
|
# 卡片数量小于三时无遮挡,以及最后一张卡片也总是无遮挡
|
|
@@ -422,7 +424,7 @@ def produce_end():
|
|
|
422
424
|
# [screenshots/produce_end/end_follow.png]
|
|
423
425
|
elif image.find(R.InPurodyuusu.ButtonCancel):
|
|
424
426
|
logger.info("Follow producer dialog found. Click to close.")
|
|
425
|
-
if
|
|
427
|
+
if produce_solution().data.follow_producer:
|
|
426
428
|
logger.info("Follow producer")
|
|
427
429
|
device.click(image.expect_wait(R.InPurodyuusu.ButtonFollowNoIcon))
|
|
428
430
|
else:
|
|
@@ -506,12 +508,12 @@ def week_normal(week_first: bool = False):
|
|
|
506
508
|
action: ProduceAction | None = None
|
|
507
509
|
# SP 课程
|
|
508
510
|
if (
|
|
509
|
-
|
|
511
|
+
produce_solution().data.prefer_lesson_ap
|
|
510
512
|
and handle_sp_lesson()
|
|
511
513
|
):
|
|
512
514
|
action = ProduceAction.DANCE
|
|
513
515
|
else:
|
|
514
|
-
actions =
|
|
516
|
+
actions = produce_solution().data.actions_order
|
|
515
517
|
for action in actions:
|
|
516
518
|
logger.debug("Checking action: %s", action)
|
|
517
519
|
if action := handle_action(action):
|
|
@@ -539,7 +541,7 @@ def week_normal(week_first: bool = False):
|
|
|
539
541
|
def week_final_lesson():
|
|
540
542
|
until_action_scene()
|
|
541
543
|
action: ProduceAction | None = None
|
|
542
|
-
actions =
|
|
544
|
+
actions = produce_solution().data.actions_order
|
|
543
545
|
for action in actions:
|
|
544
546
|
logger.debug("Checking action: %s", action)
|
|
545
547
|
if action := handle_action(action, True):
|
|
@@ -5,10 +5,11 @@
|
|
|
5
5
|
"""
|
|
6
6
|
from logging import getLogger
|
|
7
7
|
|
|
8
|
+
from kotonebot.kaa.config.schema import produce_solution
|
|
8
9
|
from kotonebot.kaa.game_ui import dialog
|
|
9
10
|
|
|
10
11
|
from kotonebot.kaa.tasks import R
|
|
11
|
-
from kotonebot.kaa.
|
|
12
|
+
from kotonebot.kaa.config import conf
|
|
12
13
|
from ..produce.common import fast_acquisitions
|
|
13
14
|
from kotonebot.kaa.game_ui.commu_event_buttons import CommuEventButtonUI
|
|
14
15
|
from kotonebot.util import Countdown, Interval
|
|
@@ -66,7 +67,7 @@ def enter_study():
|
|
|
66
67
|
R.InPurodyuusu.TextSelfStudyVocal
|
|
67
68
|
]):
|
|
68
69
|
logger.info("授業 type: Self study.")
|
|
69
|
-
target =
|
|
70
|
+
target = produce_solution().data.self_study_lesson
|
|
70
71
|
if target == 'dance':
|
|
71
72
|
logger.debug("Clicking on lesson dance.")
|
|
72
73
|
device.double_click(image.expect(R.InPurodyuusu.TextSelfStudyDance))
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import logging
|
|
2
|
-
from itertools import cycle
|
|
3
2
|
from typing import Optional, Literal
|
|
4
3
|
from typing_extensions import assert_never
|
|
5
4
|
|
|
5
|
+
from kotonebot.kaa.config.schema import produce_solution
|
|
6
6
|
from kotonebot.ui import user
|
|
7
7
|
from kotonebot.kaa.tasks import R
|
|
8
|
-
from kotonebot.kaa.
|
|
8
|
+
from kotonebot.kaa.config import conf
|
|
9
9
|
from kotonebot.kaa.game_ui import dialog
|
|
10
10
|
from ..actions.scenes import at_home, goto_home
|
|
11
11
|
from kotonebot.backend.loop import Loop, StatedLoop
|
|
@@ -150,7 +150,7 @@ def resume_produce():
|
|
|
150
150
|
max_retries = 5
|
|
151
151
|
current_week = None
|
|
152
152
|
while retry_count < max_retries:
|
|
153
|
-
week_text = ocr.ocr(R.Produce.BoxResumeDialogWeeks).squash().regex(r'\d+/\d+')
|
|
153
|
+
week_text = ocr.ocr(R.Produce.BoxResumeDialogWeeks, lang='en').squash().regex(r'\d+/\d+')
|
|
154
154
|
if week_text:
|
|
155
155
|
weeks = week_text[0].split('/')
|
|
156
156
|
logger.info(f'Current week: {weeks[0]}/{weeks[1]}')
|
|
@@ -191,7 +191,7 @@ def do_produce(
|
|
|
191
191
|
|
|
192
192
|
前置条件:可导航至首页的任意页面\n
|
|
193
193
|
结束状态:游戏首页\n
|
|
194
|
-
|
|
194
|
+
|
|
195
195
|
:param memory_set_index: 回忆编成编号。
|
|
196
196
|
:param idol_skin_id: 要培育的偶像。如果为 None,则使用配置文件中的偶像。
|
|
197
197
|
:param mode: 培育模式。
|
|
@@ -242,7 +242,7 @@ def do_produce(
|
|
|
242
242
|
result = False
|
|
243
243
|
break
|
|
244
244
|
if not result:
|
|
245
|
-
if
|
|
245
|
+
if produce_solution().data.use_ap_drink:
|
|
246
246
|
# [kotonebot-resource\sprites\jp\produce\screenshot_no_enough_ap_1.png]
|
|
247
247
|
# [kotonebot-resource\sprites\jp\produce\screenshot_no_enough_ap_2.png]
|
|
248
248
|
# [kotonebot-resource\sprites\jp\produce\screenshot_no_enough_ap_3.png]
|
|
@@ -351,11 +351,11 @@ def do_produce(
|
|
|
351
351
|
|
|
352
352
|
# 4. 选择道具 [screenshots/produce/screenshot_produce_start_4_end.png]
|
|
353
353
|
# TODO: 如果道具不足,这里加入推送提醒
|
|
354
|
-
if
|
|
354
|
+
if produce_solution().data.use_note_boost:
|
|
355
355
|
if image.find(R.Produce.CheckboxIconNoteBoost):
|
|
356
356
|
device.click()
|
|
357
357
|
sleep(0.1)
|
|
358
|
-
if
|
|
358
|
+
if produce_solution().data.use_pt_boost:
|
|
359
359
|
if image.find(R.Produce.CheckboxIconSupportPtBoost):
|
|
360
360
|
device.click()
|
|
361
361
|
sleep(0.1)
|
|
@@ -389,28 +389,33 @@ def produce():
|
|
|
389
389
|
return
|
|
390
390
|
import time
|
|
391
391
|
count = conf().produce.produce_count
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
392
|
+
idol = produce_solution().data.idol
|
|
393
|
+
memory_set = produce_solution().data.memory_set
|
|
394
|
+
support_card_set = produce_solution().data.support_card_set
|
|
395
|
+
mode = produce_solution().data.mode
|
|
395
396
|
# 数据验证
|
|
396
397
|
if count < 0:
|
|
397
398
|
user.warning('配置有误', '培育次数不能小于 0。将跳过本次培育。')
|
|
398
399
|
return
|
|
400
|
+
if idol is None:
|
|
401
|
+
user.warning('配置有误', '未设置要培育的偶像。将跳过本次培育。')
|
|
402
|
+
return
|
|
399
403
|
|
|
400
|
-
idol_iterator = cycle(idols)
|
|
401
|
-
memory_set_iterator = cycle(memory_sets)
|
|
402
404
|
for i in range(count):
|
|
403
405
|
start_time = time.time()
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
406
|
+
if produce_solution().data.auto_set_memory:
|
|
407
|
+
memory_set_to_use = None
|
|
408
|
+
else:
|
|
409
|
+
memory_set_to_use = memory_set
|
|
410
|
+
if produce_solution().data.auto_set_support_card:
|
|
411
|
+
support_card_set_to_use = None
|
|
407
412
|
else:
|
|
408
|
-
|
|
413
|
+
support_card_set_to_use = support_card_set
|
|
409
414
|
logger.info(
|
|
410
415
|
f'Produce start with: '
|
|
411
|
-
f'idol: {idol}, mode: {mode}, memory_set: #{
|
|
416
|
+
f'idol: {idol}, mode: {mode}, memory_set: #{memory_set_to_use}, support_card_set: #{support_card_set_to_use}'
|
|
412
417
|
)
|
|
413
|
-
if not do_produce(idol, mode,
|
|
418
|
+
if not do_produce(idol, mode, memory_set_to_use):
|
|
414
419
|
user.info('AP 不足', f'由于 AP 不足,跳过了 {count - i} 次培育。')
|
|
415
420
|
logger.info('%d produce(s) skipped because of insufficient AP.', count - i)
|
|
416
421
|
break
|
|
@@ -427,11 +432,11 @@ if __name__ == '__main__':
|
|
|
427
432
|
from kotonebot.kaa.main import Kaa
|
|
428
433
|
|
|
429
434
|
conf().produce.enabled = True
|
|
430
|
-
conf().produce.mode = 'pro'
|
|
431
435
|
conf().produce.produce_count = 1
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
436
|
+
produce_solution().data.mode = 'pro'
|
|
437
|
+
# produce_solution().data.idol = 'i_card-skin-hski-3-002'
|
|
438
|
+
produce_solution().data.memory_set = 1
|
|
439
|
+
produce_solution().data.auto_set_memory = False
|
|
435
440
|
# do_produce(PIdol.月村手毬_初声, 'pro', 5)
|
|
436
441
|
produce()
|
|
437
442
|
# a()
|
|
@@ -5,7 +5,7 @@ import ctypes
|
|
|
5
5
|
import logging
|
|
6
6
|
|
|
7
7
|
from kotonebot.kaa.tasks import R
|
|
8
|
-
from kotonebot.kaa.
|
|
8
|
+
from kotonebot.kaa.config import Priority, conf
|
|
9
9
|
from .actions.loading import loading
|
|
10
10
|
from kotonebot.util import Countdown, Interval
|
|
11
11
|
from .actions.scenes import at_home, goto_home
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ksaa
|
|
3
|
-
Version: 2025.7.
|
|
3
|
+
Version: 2025.7.9.0
|
|
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
|