ksaa 2025.7.13.0__py3-none-any.whl → 2025.7.27.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/bot.py +60 -12
- kotonebot/backend/context/task_action.py +9 -46
- kotonebot/backend/dispatch.py +1 -104
- kotonebot/backend/flow_controller.py +3 -1
- kotonebot/errors.py +37 -2
- kotonebot/interop/win/message_box.py +314 -0
- kotonebot/interop/win/task_dialog.py +469 -0
- kotonebot/kaa/config/produce.py +8 -6
- kotonebot/kaa/config/schema.py +2 -0
- kotonebot/kaa/errors.py +38 -0
- kotonebot/kaa/main/gr.py +135 -34
- kotonebot/kaa/main/kaa.py +0 -1
- kotonebot/kaa/metadata.py +26 -0
- kotonebot/kaa/resources/__pycache__/__init__.cpython-310.pyc +0 -0
- kotonebot/kaa/resources/game.db +0 -0
- kotonebot/kaa/resources/game_ver.txt +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-012_0.png +0 -0
- kotonebot/kaa/resources/idol_cards/i_card-skin-shro-3-012_1.png +0 -0
- kotonebot/kaa/tasks/R.py +126 -126
- kotonebot/kaa/tasks/daily/contest.py +39 -8
- kotonebot/kaa/tasks/daily/purchase.py +3 -3
- kotonebot/kaa/tasks/end_game.py +4 -3
- kotonebot/kaa/tasks/produce/in_purodyuusu.py +35 -32
- kotonebot/kaa/tasks/produce/produce.py +2 -1
- kotonebot/kaa/tasks/start_game.py +2 -0
- kotonebot/ui/user.py +43 -13
- {ksaa-2025.7.13.0.dist-info → ksaa-2025.7.27.0.dist-info}/METADATA +2 -1
- {ksaa-2025.7.13.0.dist-info → ksaa-2025.7.27.0.dist-info}/RECORD +158 -153
- /kotonebot/kaa/sprites/{582e8afb-81d9-433b-9297-2741f78224c0.png → 039771df-9741-4f4e-9793-9017386ac68e.png} +0 -0
- /kotonebot/kaa/sprites/{3995bbdb-4b0c-4327-b299-7d105a78e977.png → 0c826d2e-41ce-474b-ad99-f4561baf03de.png} +0 -0
- /kotonebot/kaa/sprites/{96669532-4774-4c2e-bda0-ea94f3b1d41b.png → 0fb240b0-1bb5-4aee-8ad3-a24062ee9a20.png} +0 -0
- /kotonebot/kaa/sprites/{4f36ddbb-967e-41d5-9bdb-05bb8f906227.png → 10636534-51ee-4698-b582-e56751bebb4d.png} +0 -0
- /kotonebot/kaa/sprites/{cafb66c1-10d3-4612-80f9-f9e183d509c6.png → 1218bb7e-2cab-477e-aa51-f71aa4f52a7d.png} +0 -0
- /kotonebot/kaa/sprites/{985e8bd4-7658-4da1-beb3-c53220ec1c25.png → 1917a430-d216-4359-8f62-0b62108f58c1.png} +0 -0
- /kotonebot/kaa/sprites/{065de266-800e-4ebf-bab1-a37038e531d8.png → 1f56fbc1-47f5-4dc3-b91b-6e49e4ea00dc.png} +0 -0
- /kotonebot/kaa/sprites/{77a55e26-3901-4be0-9edb-a434c6e5e719.png → 25797538-2dc6-436c-b64a-597ae6d5db6e.png} +0 -0
- /kotonebot/kaa/sprites/{488c8e34-9a36-4335-8a69-c9288e3344d7.png → 27d59ead-0f94-4554-8c9a-cd3aeb606fea.png} +0 -0
- /kotonebot/kaa/sprites/{c0b5a0a7-0cb7-4d2c-8105-42b434437610.png → 2822bf2b-b350-437b-b330-0e8c122bfbe7.png} +0 -0
- /kotonebot/kaa/sprites/{8e0b582b-68d3-4a4f-93e1-dec23e8e6abf.png → 287ec12a-c1fb-4b8f-a77c-acc99821eabd.png} +0 -0
- /kotonebot/kaa/sprites/{ba45d490-da2e-4c2f-badf-7058f1802ad3.png → 290aaff5-71eb-4d71-87db-3757d3e9794b.png} +0 -0
- /kotonebot/kaa/sprites/{59d453f1-a2df-4138-9e4e-277f6b636bde.png → 29fcf4cb-883f-475e-a68f-107cffc83f1c.png} +0 -0
- /kotonebot/kaa/sprites/{6d7d40e7-8f54-40b5-a900-784e2ced0df5.png → 2ac90dcf-2284-437e-a61e-51934f937f8f.png} +0 -0
- /kotonebot/kaa/sprites/{14e920fb-7410-4927-96e1-c40211069182.png → 2e3410a1-49b5-4f65-8f26-bb1df213c2b8.png} +0 -0
- /kotonebot/kaa/sprites/{0d10fa02-b8e7-405a-a463-83f472807a39.png → 30bc31e4-40b3-4bcb-bb36-1dd5a8c59a32.png} +0 -0
- /kotonebot/kaa/sprites/{476c4b40-a024-4253-bd57-b775b1559c44.png → 34eaf943-a8b5-4358-aadc-62ff656ab542.png} +0 -0
- /kotonebot/kaa/sprites/{83d759a1-04fc-40d3-93d6-d31b4be70e5d.png → 37f1d878-467f-4ba0-bc59-bb327797191b.png} +0 -0
- /kotonebot/kaa/sprites/{ca37b366-0a29-436c-8c22-78daf4148bfe.png → 3aa13898-1a50-4234-b9ec-f35878f05592.png} +0 -0
- /kotonebot/kaa/sprites/{0b166ce2-85b0-4207-b4ee-e720462cf9ab.png → 3ca43ccf-8748-439f-80f7-a95978a6b1f2.png} +0 -0
- /kotonebot/kaa/sprites/{a5b80b05-f6a2-407e-bf93-27b88bd982d1.png → 3efe8341-33bc-492e-8a0f-69a507502b43.png} +0 -0
- /kotonebot/kaa/sprites/{0edc4c9d-9249-4bf0-86ad-c9fee3ee06f7.png → 3f6b5de5-c942-4ef1-8b04-5ee6859bb27b.png} +0 -0
- /kotonebot/kaa/sprites/{9e5202cc-ef3c-433e-8cbb-afa5842f0a34.png → 432aad91-9cc5-4518-bbfd-6cbed522dac6.png} +0 -0
- /kotonebot/kaa/sprites/{deca8ee5-616a-4652-8a37-dab4f34951b6.png → 452e213a-9762-42ec-8e2b-2cabc3eb254d.png} +0 -0
- /kotonebot/kaa/sprites/{32fa7671-2413-400f-9bad-3fd7859840e4.png → 46a8bf3e-7149-4d9b-8b31-a6b9c3d6b166.png} +0 -0
- /kotonebot/kaa/sprites/{44713a59-3d15-427a-af43-27efdc1b2b20.png → 48293a53-d05b-4198-995f-103531f26923.png} +0 -0
- /kotonebot/kaa/sprites/{b4db5745-d7d0-4afb-8962-9f71fc4188c8.png → 4c0dc941-6ecf-45b4-91f8-3fb10e770512.png} +0 -0
- /kotonebot/kaa/sprites/{34050b3d-1684-403d-95b1-8ad7ff2a85bb.png → 50986ada-ff64-405f-911d-f6c3655fb658.png} +0 -0
- /kotonebot/kaa/sprites/{6c2ba024-4e1e-4a07-9b58-277a1873c279.png → 535db21f-b22e-4a05-a7e8-81e3664305b8.png} +0 -0
- /kotonebot/kaa/sprites/{8a8f4be3-9538-4ead-9002-009432dce534.png → 5410568f-2e3c-49b2-8112-f43c52342298.png} +0 -0
- /kotonebot/kaa/sprites/{46189b9d-16fd-4385-9654-2a6fa95bc933.png → 5aa47ea4-79de-4547-9320-cf8c614c7366.png} +0 -0
- /kotonebot/kaa/sprites/{cf33f626-5944-4dfe-bb46-2976c187f2a9.png → 5d1627a0-f803-4736-8c3c-7bf1f0de0aa0.png} +0 -0
- /kotonebot/kaa/sprites/{c03c6076-7935-42e7-a2e5-5f74015e92e2.png → 5eaa9fa9-0bce-47ce-8f28-d5ba32c566c3.png} +0 -0
- /kotonebot/kaa/sprites/{721caff2-926b-4778-a20b-77c9fee8f45a.png → 650eee06-c926-4e91-bd2c-38f3068938c0.png} +0 -0
- /kotonebot/kaa/sprites/{cf007582-08d0-4fc7-bc7c-113e211b226a.png → 652c9b9f-316e-46b2-a2d4-8dc8d5e6116f.png} +0 -0
- /kotonebot/kaa/sprites/{92ac2224-ce9d-4ba0-aafc-c627ba97c163.png → 6621d884-5ba5-4356-bd50-94239ec5395a.png} +0 -0
- /kotonebot/kaa/sprites/{a9ec257b-d82f-4ebf-9b46-1af8836d5768.png → 66de3573-9562-4cd8-82df-5d6be6b1f213.png} +0 -0
- /kotonebot/kaa/sprites/{7a72a3ad-666c-478e-a249-2ca7e35f84cb.png → 6b71968e-97d3-4fad-89d0-ffb7743446a9.png} +0 -0
- /kotonebot/kaa/sprites/{b04f4554-d6ea-4f99-822c-657ad1b9cd1e.png → 6c7cb85e-0aac-40d8-9b55-d9b455c89985.png} +0 -0
- /kotonebot/kaa/sprites/{43648de0-a0dc-4d0b-b081-ddb4a6aae9c4.png → 6cba0d0c-a67b-470d-9abe-1c55b14310ba.png} +0 -0
- /kotonebot/kaa/sprites/{75972e14-44b8-4ac7-9bfa-a0e0ed563b05.png → 6d59fa9e-b988-47e3-99b5-e06510f98e45.png} +0 -0
- /kotonebot/kaa/sprites/{fb00d537-d921-4a5f-9bc7-8aac1b68a71d.png → 6eb8e6a5-b361-4c4f-b161-e2ccd5ef277d.png} +0 -0
- /kotonebot/kaa/sprites/{69601752-7606-4af4-9252-097be36eec84.png → 6ed77f5b-e4ce-4722-934e-3c5ec34b6d5a.png} +0 -0
- /kotonebot/kaa/sprites/{db2fb64d-3e2d-4cd4-ac3a-a993e9784697.png → 6f4d32df-2a01-40e8-bfd1-9e83c6864789.png} +0 -0
- /kotonebot/kaa/sprites/{9ff3e793-1c21-45c6-88b5-24543f300f81.png → 6f56551e-bfa3-4efe-b95a-411e54885ceb.png} +0 -0
- /kotonebot/kaa/sprites/{c2a12970-cfff-4772-a4ec-127f4309f2b5.png → 725d6877-7260-4ca3-91d3-da4e9ccbf206.png} +0 -0
- /kotonebot/kaa/sprites/{a7b99e72-68c1-4b11-994f-a3238bee5fa3.png → 74bb6050-8d6d-48aa-8e71-31e92304b5af.png} +0 -0
- /kotonebot/kaa/sprites/{9579ad74-b049-4e27-a07c-12537c5ee051.png → 760655f5-1d32-437c-81fc-306e80fabfd8.png} +0 -0
- /kotonebot/kaa/sprites/{4660a922-bb9a-4543-b11a-d7b3be41e42e.png → 763968fd-f7ab-4a46-a0ef-6a496b21d3dd.png} +0 -0
- /kotonebot/kaa/sprites/{e214cd8e-b79f-42e5-959a-64f745f35896.png → 77b7b404-bc0c-4637-96b0-7344f782989e.png} +0 -0
- /kotonebot/kaa/sprites/{897a1e29-c5e2-4c26-a348-6fd7d63c9f09.png → 79cddeac-828b-49a1-b860-b422e2c8d2ea.png} +0 -0
- /kotonebot/kaa/sprites/{f270ddb2-fabc-4dd6-818a-c818a44893ed.png → 7b74cacf-b8b4-4915-a71a-1dab321dab60.png} +0 -0
- /kotonebot/kaa/sprites/{917cd398-166e-4abe-a769-6d74cfbb611e.png → 7d931bd2-5cfc-4e4c-83c0-498b5e17d15c.png} +0 -0
- /kotonebot/kaa/sprites/{b34c399b-ea60-4de2-86ee-003d308594c2.png → 7dc4ea14-42a9-4b2f-a164-99da3dbb000b.png} +0 -0
- /kotonebot/kaa/sprites/{ee7c3730-b678-4ffe-a7e5-5637016ce5b4.png → 7dc5f386-2db3-4405-9796-34f1b8a6755f.png} +0 -0
- /kotonebot/kaa/sprites/{fc23b108-7717-4b16-9e91-aacd5ddcc2ce.png → 843174a9-6cff-45ba-9573-67904691a30f.png} +0 -0
- /kotonebot/kaa/sprites/{dd268b19-354f-4e39-a4b4-0578719a40e1.png → 85ca40d2-f02e-45a4-9db0-c483f6ae1db5.png} +0 -0
- /kotonebot/kaa/sprites/{8d093e5a-3ce8-4e67-9e5d-7d91f2dd3b00.png → 88207e47-1f50-485f-9984-54cea01d740a.png} +0 -0
- /kotonebot/kaa/sprites/{618b8738-c9ae-4def-951f-a3627b26a980.png → 88e01e80-50e2-4b0f-834c-86f6a3508287.png} +0 -0
- /kotonebot/kaa/sprites/{e7fb4631-aad6-4fad-934c-72396737a98a.png → 89b364ae-9050-4671-b595-632ba0efc78b.png} +0 -0
- /kotonebot/kaa/sprites/{9fd3858a-c2a7-468d-b224-ca6386a08d1e.png → 8d1a63f3-7ec4-405c-9d78-d176018389dc.png} +0 -0
- /kotonebot/kaa/sprites/{a49babfb-a958-4de0-b2c5-2c64ce8641fa.png → 8f941a44-bbe8-4d3d-82b3-7b14c2356998.png} +0 -0
- /kotonebot/kaa/sprites/{d9ac597e-8d6d-4ab3-b865-e68a83563d25.png → 95962144-c639-4902-ad2d-be11ccc5eaab.png} +0 -0
- /kotonebot/kaa/sprites/{0951b840-439e-4289-991e-51b5b2df0bb2.png → 96c79132-d55f-43d2-bdb3-6fe55734b6d5.png} +0 -0
- /kotonebot/kaa/sprites/{ffd7676f-6b57-42d2-9631-bc758d2e0a31.png → 9895c28f-eba2-4e37-911b-6c0f05f7d72b.png} +0 -0
- /kotonebot/kaa/sprites/{4ca16d51-1b1c-4174-98df-dce028749eb0.png → 98df22d6-1ff2-4c9a-87e7-f70e9f91019e.png} +0 -0
- /kotonebot/kaa/sprites/{48d52db5-9d6f-4d6d-a8a9-56ec3e03cf2e.png → 9b01dbe2-5043-40af-858c-33bbbf4ccc22.png} +0 -0
- /kotonebot/kaa/sprites/{d7b786c8-7887-4870-a719-f703945cc6f1.png → 9dc9f428-6e6d-4362-b4d4-dce50d9e732e.png} +0 -0
- /kotonebot/kaa/sprites/{c9f0ddc4-832c-42f0-b46d-a2b4326d1a1c.png → 9df02971-cdd8-4464-abf9-8035bc233d2f.png} +0 -0
- /kotonebot/kaa/sprites/{79d26ab2-499d-46a5-b15d-a0d0845fc535.png → 9e7bf71b-fe8d-43cf-8bdd-6cfb1fb1b597.png} +0 -0
- /kotonebot/kaa/sprites/{5cda82c5-6026-4a4b-9447-30779ef07e51.png → a043ed15-0ceb-49b5-b3df-d03274677340.png} +0 -0
- /kotonebot/kaa/sprites/{48a169b5-e3ad-41c8-9895-5fff217a24a3.png → a200b1e4-2ebc-4c15-bdf2-2575408877f8.png} +0 -0
- /kotonebot/kaa/sprites/{13ebdaaf-dee5-48be-963e-c2e6915b2b00.png → a718a6f9-db30-4a9c-9d2b-b83055cf36ae.png} +0 -0
- /kotonebot/kaa/sprites/{b1e6c930-f659-4ea8-a694-a4590160b438.png → a7ada2b7-1366-40c8-864e-fbb42d248124.png} +0 -0
- /kotonebot/kaa/sprites/{fa8ee7e4-ee13-497e-856b-e210f6b1f114.png → aa42da27-2c6a-4731-9678-edd3aefde4a7.png} +0 -0
- /kotonebot/kaa/sprites/{f621f114-11c3-4957-a86c-cb474721d660.png → aaa770da-fc42-4e4a-978c-8fef22c0ebf9.png} +0 -0
- /kotonebot/kaa/sprites/{9529c488-2256-4a3d-baed-4928c151b1b1.png → af54e00c-b768-4497-829b-6bfac16f4efc.png} +0 -0
- /kotonebot/kaa/sprites/{4ee4dde9-378f-4ef3-b1f3-29bbb3d9e073.png → afe94aea-47e2-4310-8e25-3e7cadc5a75d.png} +0 -0
- /kotonebot/kaa/sprites/{387b6503-d6c8-40ab-8cad-2a81021b6103.png → b0a88b9e-358f-4f35-b823-d6c025a516cf.png} +0 -0
- /kotonebot/kaa/sprites/{e6e33419-ee43-48d1-98c6-a64f07b9e9e9.png → b4ede50d-7edb-4461-bee6-77d13456fa30.png} +0 -0
- /kotonebot/kaa/sprites/{abeb625a-74c1-45dc-a6c9-2a123dee1ab4.png → b503e883-c9d2-46c0-9de2-158770abb32b.png} +0 -0
- /kotonebot/kaa/sprites/{d251bb28-4d34-4db9-85eb-554a56ac8184.png → b60b3563-20b4-46ad-b36b-3113d9e07d4c.png} +0 -0
- /kotonebot/kaa/sprites/{88cb2321-ac35-4fe6-a467-19ba5ef3af35.png → b9ded3ea-9701-441d-a593-e73e44d5fa3f.png} +0 -0
- /kotonebot/kaa/sprites/{a622194f-000b-48d9-871f-89e2ba9a249d.png → b9f285e4-eb97-47f0-9ca5-28ca558acf58.png} +0 -0
- /kotonebot/kaa/sprites/{e2d11737-e1e2-4056-bd85-7d242c9c3023.png → bbee032e-7fc1-4b4d-b1db-cc54b24c20c8.png} +0 -0
- /kotonebot/kaa/sprites/{7b58df80-77e7-4a81-84b5-3d7e61f4237e.png → bc68fbda-8e6d-4368-b322-49a6854d81e3.png} +0 -0
- /kotonebot/kaa/sprites/{33dfe24e-9cc8-43c9-98a8-999e850b778a.png → bf8d6419-472c-4941-8d69-9bb01af5c71a.png} +0 -0
- /kotonebot/kaa/sprites/{d1fff69a-474d-416f-a53f-2a88a4d552c7.png → c3548011-dc57-4542-a855-1e7f9d7762f7.png} +0 -0
- /kotonebot/kaa/sprites/{8acb588c-200f-4927-bb50-2f01c7fbf0f5.png → c46f1705-b4d5-4f39-b138-391a85fb0302.png} +0 -0
- /kotonebot/kaa/sprites/{661760df-f790-47cb-8ddf-21b684a1096d.png → c58be1dd-1981-42ee-8de3-e365102884e5.png} +0 -0
- /kotonebot/kaa/sprites/{5b382fe1-da9d-4644-b4e7-aa2759b36b9d.png → c8321b5a-8f65-4465-892a-a3432efba5ac.png} +0 -0
- /kotonebot/kaa/sprites/{6cc3d385-7c1a-4df2-92dd-0bc7f4931f2c.png → c95ee1bb-1e53-4568-ba92-9606071ad3a6.png} +0 -0
- /kotonebot/kaa/sprites/{10d7c07d-9731-4b2a-bc92-bfb822616303.png → ca9f52b1-42c0-4091-bc29-efc0da9606e0.png} +0 -0
- /kotonebot/kaa/sprites/{ebef3530-94ab-4ba7-b43e-5b3249286d51.png → ccba7903-9882-4982-ab84-355667d8419a.png} +0 -0
- /kotonebot/kaa/sprites/{d2fe6a19-df40-43f9-8e75-2376e9987290.png → d0dd43b7-5571-4e47-af51-796b4a6a1cfe.png} +0 -0
- /kotonebot/kaa/sprites/{84b25f6f-aeb4-41b0-bb61-9e028ee1173f.png → d274bf4d-f4ff-4270-9a5f-87685a0c6817.png} +0 -0
- /kotonebot/kaa/sprites/{f85c9e53-870d-46e4-9963-c5245d0c5628.png → d3565383-91b0-4b33-87a9-3468dfd56e52.png} +0 -0
- /kotonebot/kaa/sprites/{17d9408b-b429-402c-9d06-f2a0b2b1abe2.png → d552db90-8e22-427c-b004-1799adbcc6ba.png} +0 -0
- /kotonebot/kaa/sprites/{2228a02e-fec3-4bb7-ad29-d7ef0d7b7a90.png → d5943dc2-12df-42bb-84bc-d6958260cb75.png} +0 -0
- /kotonebot/kaa/sprites/{b06ebc30-305e-4f8a-8a3c-1d91aab4f9c0.png → d5be0aac-6f00-4961-b21c-4075bd6ca528.png} +0 -0
- /kotonebot/kaa/sprites/{db041968-9811-494c-ae2c-1b31d4e1773c.png → d65cf124-6c8e-41e4-80dc-0c63b41d5636.png} +0 -0
- /kotonebot/kaa/sprites/{69d32f6c-e982-4418-94f9-5a625dc06584.png → d79069c1-3b8e-4df7-8b14-4eeaa44241e1.png} +0 -0
- /kotonebot/kaa/sprites/{edcb7ca8-9e3f-4232-b6c9-b7189a62d2ec.png → db3ab847-948d-4ee0-b5cb-c57c0caa24fd.png} +0 -0
- /kotonebot/kaa/sprites/{f2b784ee-eeca-4633-9083-4cb996c26f66.png → dbc449e9-404e-435b-8b0f-3c853c7f0efe.png} +0 -0
- /kotonebot/kaa/sprites/{6151e500-a626-44db-89d5-a7b15d99f9aa.png → dc3f2602-1f20-460a-b408-693001aa70bc.png} +0 -0
- /kotonebot/kaa/sprites/{28b29b73-758c-41ef-8829-4b93d7a6f424.png → dcb63213-c81e-4eb7-82f1-a16a838299fe.png} +0 -0
- /kotonebot/kaa/sprites/{fd7ce00d-d45c-468b-a918-f5ded551a17d.png → df004f6b-683d-41e8-848f-2a838c585f43.png} +0 -0
- /kotonebot/kaa/sprites/{d1f662b1-7aa2-4ccc-a8bf-6e7a94ae2427.png → dfab89de-7365-4bc8-b332-6f62733123a2.png} +0 -0
- /kotonebot/kaa/sprites/{524134df-5ade-4eb0-903f-dbae8d2a6e00.png → e0a34a9a-69b6-4732-9b1c-7a2c6445cb76.png} +0 -0
- /kotonebot/kaa/sprites/{88bcca49-4150-4820-8b47-049f7f1aa604.png → e0cea27c-5b4e-4831-8fcf-65bccb9e5950.png} +0 -0
- /kotonebot/kaa/sprites/{09ca39cd-c964-4258-a860-6a327e31713c.png → e311e99e-ae64-442a-aed1-6fac29687d18.png} +0 -0
- /kotonebot/kaa/sprites/{80ca25c8-03b6-4ed8-bf0b-36f6ad71ffd4.png → e8e25d3c-569e-4eae-a707-3afa8c5f46ec.png} +0 -0
- /kotonebot/kaa/sprites/{740c5975-00d7-42a7-ad95-cee0d59db3f0.png → e9afeef0-fcbe-4d97-8b39-c57ab24a3f84.png} +0 -0
- /kotonebot/kaa/sprites/{31f239cb-58f7-4fe9-95e4-15572afa9855.png → ec9656c3-a984-47db-8661-e1ae8751d288.png} +0 -0
- /kotonebot/kaa/sprites/{5e00a181-041a-4456-8850-773f68de8573.png → ee4862f3-f298-446e-a68b-bd97259052e6.png} +0 -0
- /kotonebot/kaa/sprites/{eb56ba19-433e-4bab-9e47-7a2702c83954.png → ef585824-7bfa-427a-a185-4317c0bcb4f6.png} +0 -0
- /kotonebot/kaa/sprites/{fd3b7b22-7011-4267-8365-64a4933073a4.png → ef861253-914d-436e-aa01-731a5dd11e38.png} +0 -0
- /kotonebot/kaa/sprites/{b07b112c-08c8-45ff-b980-105d263ff1c4.png → f0b983cd-8bce-4b67-9214-493364244c26.png} +0 -0
- /kotonebot/kaa/sprites/{5ca735d9-04b0-40a4-8eda-adbf9d0ded34.png → f2906fc0-9192-48ca-bc5d-52e922b04d8d.png} +0 -0
- /kotonebot/kaa/sprites/{f88ee970-84ea-46b2-99e0-d3fe1cde908e.png → f3890caa-fa8b-43bc-ba30-82c5bbe1d12a.png} +0 -0
- /kotonebot/kaa/sprites/{2b845193-37f8-4e17-9fd2-52765977b1fa.png → f4c3a6f9-1149-4530-af30-c56d7e3d02b9.png} +0 -0
- /kotonebot/kaa/sprites/{995b71e0-ce5d-48b7-b1a1-35443a37c295.png → fa3bdcef-dfba-4cf2-a06f-e6078c07fb7d.png} +0 -0
- /kotonebot/kaa/sprites/{af04e2ac-bffa-4bfb-9580-c934e403d578.png → fab770fd-e250-4dd4-b9d2-80966ad452ac.png} +0 -0
- /kotonebot/kaa/sprites/{51c39af7-efe6-4763-a85c-f1275e7cf4e8.png → fb2f308f-a025-4606-b789-0455c7cf0af8.png} +0 -0
- /kotonebot/kaa/sprites/{96044a90-a417-4042-a359-ddfd374afd0c.png → fcc71fcd-b28e-4247-beb6-6f5422218c54.png} +0 -0
- /kotonebot/kaa/sprites/{8f1413b8-fe01-4a37-9c10-0dcabf092367.png → fe42018b-4987-4389-8d44-fb0cfd0f4dab.png} +0 -0
- {ksaa-2025.7.13.0.dist-info → ksaa-2025.7.27.0.dist-info}/WHEEL +0 -0
- {ksaa-2025.7.13.0.dist-info → ksaa-2025.7.27.0.dist-info}/entry_points.txt +0 -0
- {ksaa-2025.7.13.0.dist-info → ksaa-2025.7.27.0.dist-info}/licenses/LICENSE +0 -0
- {ksaa-2025.7.13.0.dist-info → ksaa-2025.7.27.0.dist-info}/top_level.txt +0 -0
kotonebot/kaa/main/gr.py
CHANGED
|
@@ -14,6 +14,7 @@ from typing import List, Dict, Tuple, Literal, Generator, Callable, Any, get_arg
|
|
|
14
14
|
import cv2
|
|
15
15
|
import gradio as gr
|
|
16
16
|
|
|
17
|
+
from kotonebot.kaa.errors import ProduceSolutionNotFoundError
|
|
17
18
|
from kotonebot.kaa.main import Kaa
|
|
18
19
|
from kotonebot.kaa.db import IdolCard
|
|
19
20
|
from kotonebot.backend.context.context import vars
|
|
@@ -51,7 +52,7 @@ ConfigKey = Literal[
|
|
|
51
52
|
'mini_live_reassign', 'mini_live_duration',
|
|
52
53
|
'online_live_reassign', 'online_live_duration',
|
|
53
54
|
'contest_enabled',
|
|
54
|
-
'select_which_contestant',
|
|
55
|
+
'select_which_contestant', 'when_no_set',
|
|
55
56
|
|
|
56
57
|
# produce
|
|
57
58
|
'produce_enabled', 'selected_solution_id', 'produce_count',
|
|
@@ -497,8 +498,8 @@ class KotoneBotUI:
|
|
|
497
498
|
run_btn = gr.Button("启动", scale=2)
|
|
498
499
|
pause_btn = gr.Button("暂停", scale=1)
|
|
499
500
|
|
|
500
|
-
#
|
|
501
|
-
gr.Markdown("###
|
|
501
|
+
# 快速设置控制区域
|
|
502
|
+
gr.Markdown("### 快速设置")
|
|
502
503
|
with gr.Row(elem_classes=["quick-controls-row"]):
|
|
503
504
|
purchase_quick = gr.Checkbox(
|
|
504
505
|
label="商店",
|
|
@@ -561,6 +562,20 @@ class KotoneBotUI:
|
|
|
561
562
|
elem_classes=["quick-checkbox"]
|
|
562
563
|
)
|
|
563
564
|
|
|
565
|
+
def _get_end_action_value() -> str:
|
|
566
|
+
if self.current_config.options.end_game.shutdown:
|
|
567
|
+
return "关机"
|
|
568
|
+
if self.current_config.options.end_game.hibernate:
|
|
569
|
+
return "休眠"
|
|
570
|
+
return "什么都不做"
|
|
571
|
+
|
|
572
|
+
end_action_dropdown = gr.Dropdown(
|
|
573
|
+
label="完成后:",
|
|
574
|
+
choices=["什么都不做", "关机", "休眠"],
|
|
575
|
+
value=_get_end_action_value(),
|
|
576
|
+
interactive=True
|
|
577
|
+
)
|
|
578
|
+
|
|
564
579
|
if self._kaa.upgrade_msg:
|
|
565
580
|
gr.Markdown('### 配置升级报告')
|
|
566
581
|
gr.Markdown(self._kaa.upgrade_msg)
|
|
@@ -589,7 +604,7 @@ class KotoneBotUI:
|
|
|
589
604
|
def on_pause_click(evt: gr.EventData) -> str:
|
|
590
605
|
return self.toggle_pause()
|
|
591
606
|
|
|
592
|
-
#
|
|
607
|
+
# 快速设置控制的事件处理函数
|
|
593
608
|
def save_quick_setting(field_name: str, value: bool, display_name: str):
|
|
594
609
|
"""保存快速设置并立即应用"""
|
|
595
610
|
try:
|
|
@@ -638,7 +653,7 @@ class KotoneBotUI:
|
|
|
638
653
|
outputs=[pause_btn]
|
|
639
654
|
)
|
|
640
655
|
|
|
641
|
-
#
|
|
656
|
+
# 绑定快速设置控制的事件
|
|
642
657
|
purchase_quick.change(
|
|
643
658
|
fn=lambda x: save_quick_setting('purchase', x, '商店'),
|
|
644
659
|
inputs=[purchase_quick]
|
|
@@ -680,13 +695,42 @@ class KotoneBotUI:
|
|
|
680
695
|
inputs=[upgrade_support_card_quick]
|
|
681
696
|
)
|
|
682
697
|
|
|
698
|
+
# 处理完成后操作下拉框
|
|
699
|
+
def save_quick_end_action(action: str):
|
|
700
|
+
try:
|
|
701
|
+
if action == "关机":
|
|
702
|
+
self.current_config.options.end_game.shutdown = True
|
|
703
|
+
self.current_config.options.end_game.hibernate = False
|
|
704
|
+
elif action == "休眠":
|
|
705
|
+
self.current_config.options.end_game.shutdown = False
|
|
706
|
+
self.current_config.options.end_game.hibernate = True
|
|
707
|
+
else: # 什么都不做
|
|
708
|
+
self.current_config.options.end_game.shutdown = False
|
|
709
|
+
self.current_config.options.end_game.hibernate = False
|
|
710
|
+
|
|
711
|
+
save_config(self.config, "config.json")
|
|
712
|
+
|
|
713
|
+
# 尝试热重载配置
|
|
714
|
+
if self.reload_config():
|
|
715
|
+
gr.Success(f"✓ 完成后操作已设置为 {action}")
|
|
716
|
+
else:
|
|
717
|
+
gr.Warning("⚠ 设置已保存,但重新加载失败")
|
|
718
|
+
except Exception as e:
|
|
719
|
+
gr.Error(f"✗ 保存失败:{str(e)}")
|
|
720
|
+
|
|
721
|
+
end_action_dropdown.change(
|
|
722
|
+
fn=save_quick_end_action,
|
|
723
|
+
inputs=[end_action_dropdown]
|
|
724
|
+
)
|
|
725
|
+
|
|
683
726
|
# 添加定时器,分别更新按钮状态和任务状态
|
|
684
727
|
def update_run_button_status():
|
|
685
728
|
text, interactive = self.get_button_status()
|
|
686
729
|
return gr.Button(value=text, interactive=interactive)
|
|
687
730
|
|
|
688
731
|
def update_quick_checkboxes():
|
|
689
|
-
"""
|
|
732
|
+
"""更新快速设置区域控件的状态,确保与设置同步"""
|
|
733
|
+
end_action_val = _get_end_action_value()
|
|
690
734
|
return [
|
|
691
735
|
gr.Checkbox(value=self.current_config.options.purchase.enabled),
|
|
692
736
|
gr.Checkbox(value=self.current_config.options.assignment.enabled),
|
|
@@ -698,6 +742,7 @@ class KotoneBotUI:
|
|
|
698
742
|
gr.Checkbox(value=self.current_config.options.presents.enabled),
|
|
699
743
|
gr.Checkbox(value=self.current_config.options.capsule_toys.enabled),
|
|
700
744
|
gr.Checkbox(value=self.current_config.options.upgrade_support_card.enabled),
|
|
745
|
+
gr.Dropdown(value=end_action_val),
|
|
701
746
|
]
|
|
702
747
|
|
|
703
748
|
gr.Timer(1.0).tick(
|
|
@@ -713,7 +758,7 @@ class KotoneBotUI:
|
|
|
713
758
|
outputs=[
|
|
714
759
|
purchase_quick, assignment_quick, contest_quick, produce_quick,
|
|
715
760
|
mission_reward_quick, club_reward_quick, activity_funds_quick, presents_quick,
|
|
716
|
-
capsule_toys_quick, upgrade_support_card_quick
|
|
761
|
+
capsule_toys_quick, upgrade_support_card_quick, end_action_dropdown
|
|
717
762
|
]
|
|
718
763
|
)
|
|
719
764
|
gr.Timer(1.0).tick(
|
|
@@ -962,12 +1007,6 @@ class KotoneBotUI:
|
|
|
962
1007
|
interactive=True
|
|
963
1008
|
)
|
|
964
1009
|
|
|
965
|
-
keep_screenshots = gr.Checkbox(
|
|
966
|
-
label="保留截图数据",
|
|
967
|
-
value=self.current_config.keep_screenshots,
|
|
968
|
-
info=UserConfig.model_fields['keep_screenshots'].description,
|
|
969
|
-
interactive=True
|
|
970
|
-
)
|
|
971
1010
|
|
|
972
1011
|
target_screenshot_interval = gr.Number(
|
|
973
1012
|
label="最小截图间隔(秒)",
|
|
@@ -1032,14 +1071,12 @@ class KotoneBotUI:
|
|
|
1032
1071
|
# Common settings for all backend types
|
|
1033
1072
|
self.current_config.backend.screenshot_impl = data['screenshot_method']
|
|
1034
1073
|
self.current_config.backend.target_screenshot_interval = data['target_screenshot_interval']
|
|
1035
|
-
self.current_config.keep_screenshots = data['keep_screenshots'] # This is a UserConfig field
|
|
1036
1074
|
|
|
1037
1075
|
return set_config, {
|
|
1038
1076
|
'adb_ip': adb_ip,
|
|
1039
1077
|
'adb_port': adb_port,
|
|
1040
|
-
'screenshot_method': screenshot_impl,
|
|
1078
|
+
'screenshot_method': screenshot_impl,
|
|
1041
1079
|
'target_screenshot_interval': target_screenshot_interval,
|
|
1042
|
-
'keep_screenshots': keep_screenshots,
|
|
1043
1080
|
'check_emulator': check_emulator,
|
|
1044
1081
|
'emulator_path': emulator_path,
|
|
1045
1082
|
'adb_emulator_name': adb_emulator_name,
|
|
@@ -1214,6 +1251,20 @@ class KotoneBotUI:
|
|
|
1214
1251
|
interactive=True,
|
|
1215
1252
|
info=ContestConfig.model_fields['select_which_contestant'].description
|
|
1216
1253
|
)
|
|
1254
|
+
|
|
1255
|
+
when_no_set_choices = [
|
|
1256
|
+
("通知我并跳过竞赛", "remind"),
|
|
1257
|
+
("提醒我并等待手动编成", "wait"),
|
|
1258
|
+
("使用自动编成并提醒我", "auto_set"),
|
|
1259
|
+
("使用自动编成", "auto_set_silent")
|
|
1260
|
+
]
|
|
1261
|
+
when_no_set = gr.Dropdown(
|
|
1262
|
+
choices=when_no_set_choices,
|
|
1263
|
+
value=self.current_config.options.contest.when_no_set,
|
|
1264
|
+
label="竞赛队伍未编成时",
|
|
1265
|
+
interactive=True,
|
|
1266
|
+
info=ContestConfig.model_fields['when_no_set'].description
|
|
1267
|
+
)
|
|
1217
1268
|
contest_enabled.change(
|
|
1218
1269
|
fn=lambda x: gr.Group(visible=x),
|
|
1219
1270
|
inputs=[contest_enabled],
|
|
@@ -1223,10 +1274,12 @@ class KotoneBotUI:
|
|
|
1223
1274
|
def set_config(config: BaseConfig, data: dict[ConfigKey, Any]) -> None:
|
|
1224
1275
|
config.contest.enabled = data['contest_enabled']
|
|
1225
1276
|
config.contest.select_which_contestant = data['select_which_contestant']
|
|
1226
|
-
|
|
1277
|
+
config.contest.when_no_set = data['when_no_set']
|
|
1278
|
+
|
|
1227
1279
|
return set_config, {
|
|
1228
1280
|
'contest_enabled': contest_enabled,
|
|
1229
|
-
'select_which_contestant': select_which_contestant
|
|
1281
|
+
'select_which_contestant': select_which_contestant,
|
|
1282
|
+
'when_no_set': when_no_set
|
|
1230
1283
|
}
|
|
1231
1284
|
|
|
1232
1285
|
def _create_produce_settings(self) -> ConfigBuilderReturnValue:
|
|
@@ -1317,7 +1370,7 @@ class KotoneBotUI:
|
|
|
1317
1370
|
if selected_solution_id:
|
|
1318
1371
|
try:
|
|
1319
1372
|
current_solution = solution_manager.read(selected_solution_id)
|
|
1320
|
-
except
|
|
1373
|
+
except ProduceSolutionNotFoundError:
|
|
1321
1374
|
pass
|
|
1322
1375
|
|
|
1323
1376
|
if current_solution is None:
|
|
@@ -1596,6 +1649,8 @@ class KotoneBotUI:
|
|
|
1596
1649
|
gr.Group(visible=False), # memory_sets_group
|
|
1597
1650
|
gr.Dropdown(visible=False), # memory_sets
|
|
1598
1651
|
gr.Checkbox(visible=False), # auto_set_support
|
|
1652
|
+
gr.Group(visible=False), # support_card_sets_group
|
|
1653
|
+
gr.Dropdown(visible=False), # support_card_sets
|
|
1599
1654
|
gr.Checkbox(visible=False), # use_pt_boost
|
|
1600
1655
|
gr.Checkbox(visible=False), # use_note_boost
|
|
1601
1656
|
gr.Checkbox(visible=False), # follow_producer
|
|
@@ -1637,7 +1692,7 @@ class KotoneBotUI:
|
|
|
1637
1692
|
gr.Checkbox(value=solution.data.skip_commu, visible=True),
|
|
1638
1693
|
gr.Button(visible=True), # save_solution_btn
|
|
1639
1694
|
]
|
|
1640
|
-
except
|
|
1695
|
+
except ProduceSolutionNotFoundError:
|
|
1641
1696
|
gr.Warning(f"培育方案 {solution_id} 不存在")
|
|
1642
1697
|
return on_solution_change(None)
|
|
1643
1698
|
except Exception as e:
|
|
@@ -1655,12 +1710,15 @@ class KotoneBotUI:
|
|
|
1655
1710
|
solution_choices = [(f"{sol.name} - {sol.description or '无描述'}", sol.id) for sol in solutions]
|
|
1656
1711
|
|
|
1657
1712
|
gr.Success("新培育方案创建成功")
|
|
1658
|
-
|
|
1659
|
-
|
|
1713
|
+
|
|
1714
|
+
# 更新培育 Tab 下拉框并保持设置 Tab 当前选中值
|
|
1715
|
+
updated_dropdown_produce = gr.Dropdown(choices=solution_choices, value=new_solution.id)
|
|
1660
1716
|
if settings_dropdown is not None:
|
|
1661
|
-
|
|
1717
|
+
current_selected = self.current_config.options.produce.selected_solution_id
|
|
1718
|
+
updated_dropdown_settings = gr.Dropdown(choices=solution_choices, value=current_selected)
|
|
1719
|
+
return [updated_dropdown_produce, updated_dropdown_settings]
|
|
1662
1720
|
else:
|
|
1663
|
-
return
|
|
1721
|
+
return updated_dropdown_produce
|
|
1664
1722
|
except Exception as e:
|
|
1665
1723
|
gr.Error(f"创建培育方案失败:{str(e)}")
|
|
1666
1724
|
if settings_dropdown is not None:
|
|
@@ -1677,6 +1735,14 @@ class KotoneBotUI:
|
|
|
1677
1735
|
else:
|
|
1678
1736
|
return gr.Dropdown()
|
|
1679
1737
|
|
|
1738
|
+
# 若尝试删除当前正在使用的培育方案,则拒绝并提示
|
|
1739
|
+
if solution_id == self.current_config.options.produce.selected_solution_id:
|
|
1740
|
+
gr.Warning("不可删除选中方案。请先在设置中选择其他方案,保存后再删除此方案。")
|
|
1741
|
+
if settings_dropdown is not None:
|
|
1742
|
+
return [gr.Dropdown(), gr.Dropdown()]
|
|
1743
|
+
else:
|
|
1744
|
+
return gr.Dropdown()
|
|
1745
|
+
|
|
1680
1746
|
try:
|
|
1681
1747
|
solution_manager.delete(solution_id)
|
|
1682
1748
|
|
|
@@ -1685,8 +1751,12 @@ class KotoneBotUI:
|
|
|
1685
1751
|
solution_choices = [(f"{sol.name} - {sol.description or '无描述'}", sol.id) for sol in solutions]
|
|
1686
1752
|
|
|
1687
1753
|
gr.Success("培育方案删除成功")
|
|
1688
|
-
#
|
|
1689
|
-
|
|
1754
|
+
# 删除方案后,保持当前培育方案的选择不变
|
|
1755
|
+
current_selected = self.current_config.options.produce.selected_solution_id
|
|
1756
|
+
if current_selected not in [sol.id for sol in solutions]:
|
|
1757
|
+
current_selected = None # 已不存在
|
|
1758
|
+
|
|
1759
|
+
updated_dropdown = gr.Dropdown(choices=solution_choices, value=current_selected)
|
|
1690
1760
|
if settings_dropdown is not None:
|
|
1691
1761
|
return [updated_dropdown, updated_dropdown]
|
|
1692
1762
|
else:
|
|
@@ -2166,6 +2236,37 @@ class KotoneBotUI:
|
|
|
2166
2236
|
'expose_to_lan': expose_to_lan
|
|
2167
2237
|
}
|
|
2168
2238
|
|
|
2239
|
+
def _create_debug_settings(self) -> ConfigBuilderReturnValue:
|
|
2240
|
+
"""调试设置:仅在调试时使用"""
|
|
2241
|
+
with gr.Column():
|
|
2242
|
+
gr.Markdown("### 调试设置")
|
|
2243
|
+
gr.Markdown('<div style="color: red;">仅供调试使用。正常运行时务必关闭下面所有的选项。</div>')
|
|
2244
|
+
|
|
2245
|
+
keep_screenshots = gr.Checkbox(
|
|
2246
|
+
label="保留截图数据",
|
|
2247
|
+
value=self.current_config.keep_screenshots,
|
|
2248
|
+
info=UserConfig.model_fields['keep_screenshots'].description,
|
|
2249
|
+
interactive=True
|
|
2250
|
+
)
|
|
2251
|
+
|
|
2252
|
+
trace_recommend_card_detection = gr.Checkbox(
|
|
2253
|
+
label="跟踪推荐卡检测",
|
|
2254
|
+
value=self.current_config.options.trace.recommend_card_detection,
|
|
2255
|
+
info=TraceConfig.model_fields['recommend_card_detection'].description,
|
|
2256
|
+
interactive=True
|
|
2257
|
+
)
|
|
2258
|
+
|
|
2259
|
+
def set_config(config: BaseConfig, data: dict[ConfigKey, Any]) -> None:
|
|
2260
|
+
# 保留截图数据属于 UserConfig
|
|
2261
|
+
self.current_config.keep_screenshots = data['keep_screenshots']
|
|
2262
|
+
# 跟踪推荐卡检测属于 BaseConfig.trace
|
|
2263
|
+
config.trace.recommend_card_detection = data['trace_recommend_card_detection']
|
|
2264
|
+
|
|
2265
|
+
return set_config, {
|
|
2266
|
+
'keep_screenshots': keep_screenshots,
|
|
2267
|
+
'trace_recommend_card_detection': trace_recommend_card_detection
|
|
2268
|
+
}
|
|
2269
|
+
|
|
2169
2270
|
def _create_settings_tab(self) -> None:
|
|
2170
2271
|
with gr.Tab("设置"):
|
|
2171
2272
|
gr.Markdown("## 设置")
|
|
@@ -2200,18 +2301,18 @@ class KotoneBotUI:
|
|
|
2200
2301
|
# 升级支援卡设置
|
|
2201
2302
|
capsule_toys_settings = self._create_capsule_toys_settings()
|
|
2202
2303
|
|
|
2203
|
-
# 跟踪设置
|
|
2204
|
-
trace_settings = self._create_trace_settings()
|
|
2205
|
-
|
|
2206
|
-
# 杂项设置
|
|
2207
|
-
misc_settings = self._create_misc_settings()
|
|
2208
|
-
|
|
2209
2304
|
# 启动游戏设置
|
|
2210
2305
|
start_game_settings = self._create_start_game_settings()
|
|
2211
2306
|
|
|
2212
2307
|
# 关闭游戏设置
|
|
2213
2308
|
end_game_settings = self._create_end_game_settings()
|
|
2214
2309
|
|
|
2310
|
+
# 杂项设置
|
|
2311
|
+
misc_settings = self._create_misc_settings()
|
|
2312
|
+
|
|
2313
|
+
# 调试设置(放在最后)
|
|
2314
|
+
debug_settings = self._create_debug_settings()
|
|
2315
|
+
|
|
2215
2316
|
save_btn = gr.Button("保存设置")
|
|
2216
2317
|
result = gr.Markdown()
|
|
2217
2318
|
|
|
@@ -2229,8 +2330,8 @@ class KotoneBotUI:
|
|
|
2229
2330
|
capsule_toys_settings,
|
|
2230
2331
|
start_game_settings,
|
|
2231
2332
|
end_game_settings,
|
|
2232
|
-
|
|
2233
|
-
|
|
2333
|
+
misc_settings,
|
|
2334
|
+
debug_settings
|
|
2234
2335
|
] # list of (set_func, { 'key': component, ... })
|
|
2235
2336
|
all_components = [list(ret[1].values()) for ret in all_return_values] # [[c1, c2], [c3], ...]
|
|
2236
2337
|
all_components = list(chain(*all_components)) # [c1, c2, c3, ...]
|
kotonebot/kaa/main/kaa.py
CHANGED
|
@@ -146,7 +146,6 @@ class Kaa(KotoneBot):
|
|
|
146
146
|
raise ValueError('Backend instance is not set.')
|
|
147
147
|
_set_instance(self.backend_instance)
|
|
148
148
|
from kotonebot import device
|
|
149
|
-
logger.info('Device resolution: %s', device.screen_size)
|
|
150
149
|
logger.info('Set target resolution to 720x1280.')
|
|
151
150
|
device.orientation = 'portrait'
|
|
152
151
|
device.target_resolution = (720, 1280)
|
kotonebot/kaa/metadata.py
CHANGED
|
@@ -1,6 +1,32 @@
|
|
|
1
1
|
WHATS_NEW = """
|
|
2
2
|
# 更新日志
|
|
3
3
|
## kaa
|
|
4
|
+
### v2025.7.27.0
|
|
5
|
+
脚本:
|
|
6
|
+
* [修复] 修复竞赛总是卡在跳过页面(#738ec9e)
|
|
7
|
+
* [修复] 修复 DMM 版启动游戏的过程中无法中断的问题(#ceaaed7)
|
|
8
|
+
* [新增] 即使执行任务出错也会执行关闭游戏任务(#9c9e4af)
|
|
9
|
+
* [新增] 优化培育方案错误与选人未找到错误的提示(#b51f9cd)
|
|
10
|
+
* [新增] 竞赛未编成时支持暂停与通知(#3be8485)
|
|
11
|
+
|
|
12
|
+
框架:
|
|
13
|
+
* [新增] Task 新增 pre、post、regular、manual 四种 run_at 类型(#0b7054e)
|
|
14
|
+
* [新增] 新增 MessageBox 与 TaskDialog 的 Win32API 封装(#3e544e9)
|
|
15
|
+
* [新增] 支持任务执行中只跳过或停止当前任务(#a167cbf)
|
|
16
|
+
* [重构] 移除了废弃的 dispatcher 与 action 分发器重载(#09252c5)
|
|
17
|
+
|
|
18
|
+
### v2025.7.20.0
|
|
19
|
+
脚本:
|
|
20
|
+
* [修复] 修复商店购买中购买推荐商品时点击推荐标签不生效的问题(#b07d4d3)
|
|
21
|
+
* [修复] 修复 DMM 上由于输出分辨率到日志中导致的启动失败问题(#4deea1d)
|
|
22
|
+
* [修复] 修复严格模式下长时间卡在四张卡的推荐卡检测上(#acfb554)
|
|
23
|
+
|
|
24
|
+
界面:
|
|
25
|
+
* [修复] 修复新建培育方案时会自动修改当前选中的方案的问题(#3e67627)
|
|
26
|
+
* [修复] 修复删除培育时的报错问题(#1b385c0)
|
|
27
|
+
* [新增] 将保留截图数据与跟踪推荐卡两个选项统一移动到调试设置中(#f929046)
|
|
28
|
+
* [新增] 首页快速功能区域新增完成后操作(#b8ade2f)
|
|
29
|
+
|
|
4
30
|
### v2025.7.13.0
|
|
5
31
|
脚本:
|
|
6
32
|
* [新增] 上传报告时一并打包配置文件(#a8a5566)
|
|
Binary file
|
kotonebot/kaa/resources/game.db
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|