ksaa 2025.9.post2__py3-none-any.whl → 2025.11b1__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 (153) hide show
  1. kaa/config/schema.py +18 -6
  2. kaa/errors.py +16 -1
  3. kaa/main/dmm_host.py +60 -60
  4. kaa/main/gr.py +21 -4
  5. kaa/resources/__pycache__/__init__.cpython-310.pyc +0 -0
  6. kaa/resources/game.db +0 -0
  7. kaa/resources/game_ver.txt +0 -0
  8. kaa/resources/idol_cards/i_card-skin-amao-3-015_0.png +0 -0
  9. kaa/resources/idol_cards/i_card-skin-amao-3-015_1.png +0 -0
  10. kaa/resources/idol_cards/i_card-skin-kcna-3-014_0.png +0 -0
  11. kaa/resources/idol_cards/i_card-skin-kcna-3-014_1.png +0 -0
  12. kaa/resources/idol_cards/i_card-skin-ttmr-3-015_0.png +0 -0
  13. kaa/resources/idol_cards/i_card-skin-ttmr-3-015_1.png +0 -0
  14. kaa/sprites/44097699-487f-4932-846a-095a427f4ed8.png +0 -0
  15. kaa/sprites/c5356ad6-0f1e-42be-b090-059f33ea7cee.png +0 -0
  16. kaa/tasks/R.py +132 -128
  17. kaa/tasks/daily/purchase.py +1 -1
  18. kaa/tasks/produce/produce.py +10 -0
  19. kaa/tasks/start_game.py +59 -4
  20. {ksaa-2025.9.post2.dist-info → ksaa-2025.11b1.dist-info}/METADATA +5 -4
  21. {ksaa-2025.9.post2.dist-info → ksaa-2025.11b1.dist-info}/RECORD +153 -145
  22. /kaa/sprites/{47cbfa79-0b33-4ccc-b762-21e3a141a7bc.png → 01247ebe-8d63-4573-90f4-d8dc2b7ca14c.png} +0 -0
  23. /kaa/sprites/{6bcebf50-764b-4bf2-be8e-ba241d8550d7.png → 01256311-237c-476f-96ce-4136dc4bfbd3.png} +0 -0
  24. /kaa/sprites/{f2913d0b-342c-4de0-8235-fe3f1c580d2e.png → 023b8f4c-15ab-4845-b141-446c861ad475.png} +0 -0
  25. /kaa/sprites/{9966acd5-973a-4afb-a006-c1fa66cfe679.png → 043e753e-db15-45ba-8513-53c3fc9c7f3c.png} +0 -0
  26. /kaa/sprites/{cde4da05-d654-4217-8443-752bc0709742.png → 0562f69f-0300-4a2b-8252-63f3e7180e4c.png} +0 -0
  27. /kaa/sprites/{e881ee18-154e-4f0c-91fe-4699d156671d.png → 0af1d573-1dc7-427e-997d-173308ea3649.png} +0 -0
  28. /kaa/sprites/{f258af39-e8be-4e19-aafc-bfedce9793c0.png → 13cb0309-b713-4725-b10b-26afe46eb9c0.png} +0 -0
  29. /kaa/sprites/{c23c29cc-ef42-46d8-8b58-283b74a254cc.png → 16a0fd47-e85b-4848-8894-9d071ea993ac.png} +0 -0
  30. /kaa/sprites/{74e4c222-0006-4295-99d0-a01aa8b94dc2.png → 179c0fff-ebd2-4a16-8db2-297552cca218.png} +0 -0
  31. /kaa/sprites/{94121408-8cd2-46fc-bf27-33b207e4cba8.png → 1ad89ee4-1bb1-41d2-a92c-79caf6baa38a.png} +0 -0
  32. /kaa/sprites/{1bf95df3-255f-4e89-9b17-0af77f4affd6.png → 1befe09b-cb77-417a-b21e-7746804d4e03.png} +0 -0
  33. /kaa/sprites/{6dead493-c4e6-4ba9-ac56-abe8c511abbd.png → 1cf03f98-63e9-467c-804d-c74dd97b69bd.png} +0 -0
  34. /kaa/sprites/{9ea3c9b4-80f3-44b9-90e3-cfc406f814be.png → 2204967a-a0ee-4dd3-aecb-4d531e8e954c.png} +0 -0
  35. /kaa/sprites/{ac194536-54e4-49e7-992c-fc82ba401f10.png → 2234f709-1703-4589-905c-175f4db09b1b.png} +0 -0
  36. /kaa/sprites/{609a340b-2cfa-4cef-9e55-fb60c7cabdbb.png → 2289d38f-dc98-4310-9f34-4cf5023f8545.png} +0 -0
  37. /kaa/sprites/{484594b4-06a2-4ec3-8a85-e7af3b012125.png → 22dc4cfe-8c66-4461-8660-e2d11bbe6154.png} +0 -0
  38. /kaa/sprites/{be2985ff-c3ac-4d94-9751-c652dd561db2.png → 23b9cda9-8be8-438e-8e54-57d91a4bd875.png} +0 -0
  39. /kaa/sprites/{0a430b29-9841-407a-a102-ea6420beeaae.png → 256ffeba-8e9e-4cc5-8a1c-9eaee427f1a5.png} +0 -0
  40. /kaa/sprites/{f136dd9f-43c8-44cc-b081-1f86d7ce38d4.png → 2a8626df-056c-46a2-aaf3-0060a5aef6a3.png} +0 -0
  41. /kaa/sprites/{8e648675-1a52-4926-92cf-64c7cb5c2a59.png → 2b6d2eb0-bcf7-4bea-b037-6293d9c6d728.png} +0 -0
  42. /kaa/sprites/{5bb33faa-8236-4e17-92bd-ad709795f261.png → 2cec1d6a-9e8c-49b3-b885-0b0d7c4b95ee.png} +0 -0
  43. /kaa/sprites/{3fe4ec28-3b2a-4042-ace1-ceec5c8f48b1.png → 2d0e9d49-365a-4bcb-a416-38b87defaa3c.png} +0 -0
  44. /kaa/sprites/{3867054e-a686-4dab-89fb-6a9def58dfe1.png → 30e12bf1-8fa5-4de1-8d7b-28fa0fec0cb6.png} +0 -0
  45. /kaa/sprites/{52aba1bd-1e82-46a7-8003-0aac11586a38.png → 31e3ac2b-ecd4-4c37-88bc-985ef32e73a3.png} +0 -0
  46. /kaa/sprites/{b379d704-fc45-42f9-a45c-d81a6c5ee951.png → 31f2de0a-567b-425a-9be6-536e4532d813.png} +0 -0
  47. /kaa/sprites/{436b9822-c946-4d2e-a432-8f3159705b37.png → 338d7e71-98ce-4cd1-9954-bf7155150780.png} +0 -0
  48. /kaa/sprites/{0ec56b89-81f2-478d-907e-b04aab199e86.png → 35341839-4469-4ab6-aa40-33642fe43e82.png} +0 -0
  49. /kaa/sprites/{1f6805bb-dff1-4d4c-82bf-74563056cc81.png → 37215a56-f8e1-4f22-a148-9894136f6ab1.png} +0 -0
  50. /kaa/sprites/{bd5b168a-de03-46b3-b1b7-9fa9667f4642.png → 39f6d657-3b3e-40aa-849b-7ad87a0be1d0.png} +0 -0
  51. /kaa/sprites/{920ea830-31a8-4256-b247-7b9507030783.png → 3aed50a2-d640-4178-9b8a-4dd7973eebf1.png} +0 -0
  52. /kaa/sprites/{4396a9b8-b7f0-45f3-8a8f-85773a10eecb.png → 3b4dc708-1d34-4a88-9fe3-d8de2ec1d5c8.png} +0 -0
  53. /kaa/sprites/{eda88516-ac6b-4f26-b074-f8e6e2ae42a5.png → 3b4f90c9-6de7-4ac3-8e41-5f8757bf3f3e.png} +0 -0
  54. /kaa/sprites/{8c4f60d1-d707-4ae5-bd94-d96661ea7bbc.png → 3e087b8d-420d-48ff-b526-29c4a65d8cbe.png} +0 -0
  55. /kaa/sprites/{3af1e6de-e718-4a09-8ee9-88be21cd4b3d.png → 3fa5f81c-9223-44ba-bf07-71932350e845.png} +0 -0
  56. /kaa/sprites/{901b48f9-d7b7-46c2-85fa-b07e427ffdaa.png → 424a0ef5-102d-4734-a731-2b3b3c7c9682.png} +0 -0
  57. /kaa/sprites/{e38a2f35-9ac5-4363-bd6d-09893907ea71.png → 43a367e1-91dd-495e-8c30-41903f75a99a.png} +0 -0
  58. /kaa/sprites/{a694f6e8-6ef9-4761-816a-ad586ce93654.png → 464b1dd8-ca2e-41e9-a5b5-90545c584db7.png} +0 -0
  59. /kaa/sprites/{d1a6547e-7c58-4500-a7f4-cf462f44395f.png → 49bde219-f9a3-41b5-84b8-e417160a0f40.png} +0 -0
  60. /kaa/sprites/{c16ae471-7d60-4c1f-9981-1090414a7ea0.png → 4a081370-b0a1-4067-8470-e3007cc68a12.png} +0 -0
  61. /kaa/sprites/{97329116-4d2e-40d7-af96-938afdac4e60.png → 51b95c81-4ff9-434c-ade2-3518e63337cb.png} +0 -0
  62. /kaa/sprites/{562deb0a-99bd-4e95-80ff-f933a73c28ad.png → 5431dc38-c257-40b3-8f7b-8bceaa7fe587.png} +0 -0
  63. /kaa/sprites/{e7709d81-890b-438f-8acb-50492d63022e.png → 55c3af20-58dc-4407-a383-312a57417c39.png} +0 -0
  64. /kaa/sprites/{42bfc60c-0249-4910-ad04-80e559b52c6b.png → 572a921d-633f-4465-b177-7a0d9ad7e099.png} +0 -0
  65. /kaa/sprites/{df54b1e4-035c-4937-9360-19b4733826e6.png → 5734e48a-1e58-42de-be7b-b7db67db4a01.png} +0 -0
  66. /kaa/sprites/{69f15152-8ee9-4e39-9bfa-6cd1b051bc1e.png → 57c81080-7b53-4286-8fa5-848ad63e4774.png} +0 -0
  67. /kaa/sprites/{cee6ca8f-219c-448d-9ba6-d6722f27b600.png → 5906d986-d0e5-452d-a7c4-ddeb7af8751d.png} +0 -0
  68. /kaa/sprites/{9c6378a9-62ed-4881-bc6f-2166bbb470c7.png → 5930140e-effe-4bcf-b0be-c20d3990d833.png} +0 -0
  69. /kaa/sprites/{9c827df9-2e47-4bec-95b7-8ccad6377a28.png → 5bf2a814-df85-4d0a-b4b5-8883ac2ee434.png} +0 -0
  70. /kaa/sprites/{55a2ba58-2412-4c39-9c6e-2627092623a2.png → 5c310fe5-7e92-4167-9eba-6e8e14a2863a.png} +0 -0
  71. /kaa/sprites/{7678902c-57df-4cf8-87ef-11c85f02214b.png → 5ffd3f29-db4f-4f66-b9ed-be5a70b7ebf9.png} +0 -0
  72. /kaa/sprites/{935d8115-245f-42ff-ad74-55f4e6d140b1.png → 645909d7-b960-46c7-b208-db44b6b7feec.png} +0 -0
  73. /kaa/sprites/{76d5d7f7-b23d-4802-8f91-7058f7adcffd.png → 68d9f340-a3d2-4708-8eb1-c1ed857decda.png} +0 -0
  74. /kaa/sprites/{2beaba86-119e-4a1c-8cf4-e03c4d0d957a.png → 68e20ebf-02fd-46a1-88d7-b4472824e7bc.png} +0 -0
  75. /kaa/sprites/{d11f07b1-f2e9-4c41-9ad9-81529121afd4.png → 694879e8-ecca-45e2-8ea4-1b447fd43ace.png} +0 -0
  76. /kaa/sprites/{b581ae5b-cb67-4bf9-8ffe-72b8ba56d887.png → 6c926e92-9af9-402d-8512-6417ca116928.png} +0 -0
  77. /kaa/sprites/{0803c844-7085-4492-ad68-0ce3b11f9840.png → 70768479-5d7a-4941-8774-ad556c47bee2.png} +0 -0
  78. /kaa/sprites/{bca22a82-f72b-46ca-be06-c1e18b7ad27c.png → 72634cb3-4c76-4ca2-8898-ebb837ec19e3.png} +0 -0
  79. /kaa/sprites/{eebbccac-25a9-465e-b7c8-3bfdaf0bf0b9.png → 736a9daf-05d6-46ba-810b-5a8f509152d1.png} +0 -0
  80. /kaa/sprites/{603c5369-9247-404d-bc6d-4719d11de6ea.png → 756f4ca7-acac-48e1-8bcd-1c5cd8937e3a.png} +0 -0
  81. /kaa/sprites/{0c211c20-096e-4572-8e74-3867904db1f6.png → 799fe395-2264-4bc5-b515-813dadda8fe1.png} +0 -0
  82. /kaa/sprites/{d0652541-e289-4bcd-98ec-a88715f5adef.png → 7d7df15f-707e-4e27-826f-21e42af1dae0.png} +0 -0
  83. /kaa/sprites/{39815c36-38c5-4066-aff5-2177c232b4f4.png → 7daaca55-e3fd-4e12-bf31-872105ceb726.png} +0 -0
  84. /kaa/sprites/{fc77cc87-f8eb-4b33-834c-ee5d2af5ca44.png → 802db04f-77c2-46a4-a6eb-f81d48ea03ce.png} +0 -0
  85. /kaa/sprites/{5a892ef3-543b-4fad-bdca-5358314d6be7.png → 81686816-c723-47d1-9824-a68d9ebe1bd4.png} +0 -0
  86. /kaa/sprites/{da615a2f-3334-462c-8535-40067ad1c857.png → 847226a3-b7d2-4156-b732-9215a3e14f3a.png} +0 -0
  87. /kaa/sprites/{e2944d47-159f-4200-b476-8d5db41d30c0.png → 847eb5c0-0350-4b7c-9c9c-43c796709795.png} +0 -0
  88. /kaa/sprites/{9f81bc0f-da2c-4321-a185-b2d8a3f0d390.png → 84cabff2-7a1b-4018-b74b-46f4db06304f.png} +0 -0
  89. /kaa/sprites/{7f90beb9-8712-4a53-a818-ff7a5e82d71d.png → 87f3c1ae-5117-4871-a7d6-3f5ff0c9f9fb.png} +0 -0
  90. /kaa/sprites/{36e6c1ea-8de5-4640-8340-b8f532ef40c0.png → 889a4153-b713-49cb-a4d5-e302bcdd002d.png} +0 -0
  91. /kaa/sprites/{7dc79a8b-bd59-4c93-a638-e49bca276c00.png → 8bd22fe1-b544-4d2e-b74a-34f3cf0eb512.png} +0 -0
  92. /kaa/sprites/{76262c30-a2ee-45ba-8279-ca682cee0bd6.png → 8be81341-a74d-42c8-8231-5d1854bc08e7.png} +0 -0
  93. /kaa/sprites/{80fa9c6e-fe05-4d3e-ae50-6b7e9a237e0b.png → 8e019262-ad23-4cbb-84da-86b34775a91e.png} +0 -0
  94. /kaa/sprites/{2bb41b59-61f8-4109-a550-faa6a14708de.png → 8e4d8a0f-4a9d-4562-9234-63806b11d85f.png} +0 -0
  95. /kaa/sprites/{9a0172aa-9489-4985-9c65-c5f6db0a0325.png → 8e5e968b-edad-4c03-abc8-3f2a7e8879ae.png} +0 -0
  96. /kaa/sprites/{689eebfd-984c-45c9-812f-26cf9c756bed.png → 8ed51be4-815c-4a3d-805e-030fdfa341e2.png} +0 -0
  97. /kaa/sprites/{62cc930f-acc2-424a-975f-164009a555f8.png → 8f7b55d8-0143-4d27-bef8-560d4d510500.png} +0 -0
  98. /kaa/sprites/{bfaf3273-76bf-457a-88b7-6816af742a30.png → 9008fbb2-f23f-424f-9be7-5bae6a3697ab.png} +0 -0
  99. /kaa/sprites/{f5145781-949e-4012-9ea9-b0a277dac72b.png → 913dbd4e-ebb1-4c9f-b145-9960cde59c17.png} +0 -0
  100. /kaa/sprites/{3d57da0a-b166-4acd-9a8a-b247ba5ad13a.png → 91a50322-52d9-4516-9e46-bc121f20667d.png} +0 -0
  101. /kaa/sprites/{b2c8ac50-87a3-4cdd-a895-9704a9674163.png → 91b30f5e-31b2-4756-a3f7-f0f82a335442.png} +0 -0
  102. /kaa/sprites/{101a9c54-ab8c-4b5d-a4e0-686b93b4e1d9.png → 92c3de1b-eed1-45b9-82e0-c9e97bb479e7.png} +0 -0
  103. /kaa/sprites/{30604b47-7c8b-4dd5-b926-fd33bad575c7.png → 94d54ba7-0ccf-4fd9-a5bf-488bac1364c8.png} +0 -0
  104. /kaa/sprites/{15801cb7-24f6-4504-921b-5e5a37bdc064.png → 962aa0b9-1dd3-4260-a4fb-c069c26e5a84.png} +0 -0
  105. /kaa/sprites/{3504b421-58f2-4ca0-869e-764335d60406.png → 96704aa3-b5ad-4e34-bb88-fad766415362.png} +0 -0
  106. /kaa/sprites/{545068ad-6f17-40d8-99e1-d26bd5700c67.png → 978873bb-e4d0-451b-9126-6977144f5395.png} +0 -0
  107. /kaa/sprites/{6dd4ca2b-69ca-4099-9e69-2144ce9a4d28.png → 9991b19c-7330-42c4-9d7d-db3cb00103b7.png} +0 -0
  108. /kaa/sprites/{4fc6fae5-386d-434c-893d-5450bd5a6396.png → 9e7eaa8e-3178-44da-a5ec-34b889f8facf.png} +0 -0
  109. /kaa/sprites/{ad63136d-2360-45e6-b7ef-00e01612c7ce.png → 9f7150bc-c0b8-48d6-862c-456aaf518b2b.png} +0 -0
  110. /kaa/sprites/{7df273dc-69f7-45b9-a782-b221783f851b.png → a5694c76-3c5d-462e-81d5-1e0e6cef0ec9.png} +0 -0
  111. /kaa/sprites/{151dc2ce-fce4-4741-ac6e-cc8213f54137.png → aa1624ff-88b0-447b-8e2b-8a50fd9e4062.png} +0 -0
  112. /kaa/sprites/{66ccbeba-3291-4f1c-8669-d691f24ea9ed.png → ab237c6d-c4d8-4716-8ef7-99b8e995c9a7.png} +0 -0
  113. /kaa/sprites/{d051b4c3-354e-4d69-95f6-14f5017ed79e.png → ad94041c-f30b-40b9-b11a-1a26e9962274.png} +0 -0
  114. /kaa/sprites/{a8bef06b-9287-4f54-b96e-19463031d26f.png → ae1e70bc-f735-4749-8c23-95735b91897a.png} +0 -0
  115. /kaa/sprites/{95e11d11-f330-4906-a128-6492f95176e8.png → b59c0e9b-1f20-4194-ab37-286f505fa656.png} +0 -0
  116. /kaa/sprites/{5ee1b47b-f20d-431b-a0bb-d203b9f3e15b.png → bfdc9b53-2fe5-43f1-8588-7ab71217d31c.png} +0 -0
  117. /kaa/sprites/{be04f096-c46b-4784-8e6c-c1217764f6dd.png → c1d502eb-c77f-45cb-86b5-11b4a8a3aef5.png} +0 -0
  118. /kaa/sprites/{48eb2e27-7419-4136-9642-7af1a6f83ed9.png → c69dcdcf-42a7-420e-aa8e-bb8639ea80b6.png} +0 -0
  119. /kaa/sprites/{1aa14c42-8682-4a75-b4a2-4715481a2381.png → cb6dffd9-6474-4d09-aee6-26352ea51d31.png} +0 -0
  120. /kaa/sprites/{916391a4-09b7-409c-ba25-391b61a65e62.png → cba0646d-dffe-4c5b-a44d-1f8d827624a6.png} +0 -0
  121. /kaa/sprites/{c24394f6-ed02-4fb4-8d58-40a7e51b259d.png → cd00a2d7-af48-48b1-b2e1-5360ceed249f.png} +0 -0
  122. /kaa/sprites/{011c52b9-613d-4865-afd3-1f0ddab2bc5b.png → cd0e8663-2ea1-436a-b9fb-3caa0c3ed9e8.png} +0 -0
  123. /kaa/sprites/{fd16e035-699c-4dc9-9721-61443cd6fd63.png → cfe3563d-a24b-4197-a0cb-5628bd990c08.png} +0 -0
  124. /kaa/sprites/{6f79221a-8c47-423e-ac72-27d97c559d63.png → d1ea0ea6-4a6a-4036-b140-922c95a648b5.png} +0 -0
  125. /kaa/sprites/{606d4740-8af9-40f6-af18-ad9f73cecf68.png → d644faa3-ff16-417f-928c-4c62b040bfdb.png} +0 -0
  126. /kaa/sprites/{f3400d73-4f61-4027-b5d8-03765a63a186.png → d7750f81-de10-4d6f-9cc7-35223bda9d70.png} +0 -0
  127. /kaa/sprites/{2987cb9c-5975-41b3-87f7-cc26efdcee74.png → d81b1325-e57a-4f22-93e1-6ad4baa28935.png} +0 -0
  128. /kaa/sprites/{dd59548d-0800-49d3-8701-b2b2e8512c36.png → da48db0d-09d9-47c3-9e08-8b69ad547be6.png} +0 -0
  129. /kaa/sprites/{e16b116c-6a2c-4e5d-8105-8dfc8c4c730f.png → db6707a2-2964-4919-9992-4d801fa43dae.png} +0 -0
  130. /kaa/sprites/{8d99cd97-ae34-488f-b62e-54d54f75e4e8.png → dc97fea3-898f-4135-9c40-ad41570ab4ae.png} +0 -0
  131. /kaa/sprites/{4995d301-375b-4d23-a6e5-b26a771fcbe4.png → dce410ee-fa56-41c4-b75e-e1bff79cd94f.png} +0 -0
  132. /kaa/sprites/{15da6f78-d89f-480c-9cce-c95e009fd15a.png → dd7bd6cd-90f1-4773-9b68-5df7f2f84da5.png} +0 -0
  133. /kaa/sprites/{f6e26f3c-2548-4507-8651-53917e0fe82a.png → dd873ac0-ffba-4335-9cf2-2162c6835ed8.png} +0 -0
  134. /kaa/sprites/{9092a171-66f0-47dc-99dd-bb5d7359077a.png → e13fc34b-accc-4986-865d-f8d8410b45e9.png} +0 -0
  135. /kaa/sprites/{ccad6a54-73f6-48b8-a86f-16b9e0f46e41.png → e4dc3b35-195c-415f-9484-c2459bd8675a.png} +0 -0
  136. /kaa/sprites/{574b2741-c4ac-4ee4-a544-f4f499e4a21e.png → e5e49b44-dcc2-4e77-9180-0d2beaa3f9ad.png} +0 -0
  137. /kaa/sprites/{56bcde1a-5cd7-493d-a2cd-2a63394c0c36.png → e7f2734f-9fdc-4521-8d7e-8b0fe270a223.png} +0 -0
  138. /kaa/sprites/{ed7adff5-1604-4ade-ac2b-a30167ef457c.png → e9310e38-a418-4561-bf33-eb3e6dccf477.png} +0 -0
  139. /kaa/sprites/{e630b33a-e73e-4271-96b9-860b94fb48ca.png → e933cd55-e47a-4327-89d7-b25995cb4a3f.png} +0 -0
  140. /kaa/sprites/{333a1e30-82d3-45b9-8e48-4c127bcb5ec6.png → ea430652-e263-4a15-bb6f-8a8807be6c8f.png} +0 -0
  141. /kaa/sprites/{d62dab9b-d36d-490e-bca5-bfd4b66911d7.png → ec3cad5f-e0c9-4577-8499-79b50248344e.png} +0 -0
  142. /kaa/sprites/{24b3cf5c-0586-41cc-abfb-df48de07fa77.png → edcec31d-d5de-4f22-b666-3e3c656e06d8.png} +0 -0
  143. /kaa/sprites/{297fb9e0-9553-40fb-ad08-f5ab718ef119.png → f0462447-5226-4819-a39b-19ab90583f83.png} +0 -0
  144. /kaa/sprites/{7df9b645-ff88-4459-8ba7-450da538cfd9.png → f0aef696-2106-46a4-8b7f-9f16b6c89d3f.png} +0 -0
  145. /kaa/sprites/{06ee3b1e-5c99-4ebf-8a23-d6f59cda32b8.png → f32a41a2-c482-41ba-b718-28f048f5148c.png} +0 -0
  146. /kaa/sprites/{436ec8e4-aa4a-4b1f-940a-2ab55baa098d.png → f635499a-943d-47da-952a-1feb58daa25b.png} +0 -0
  147. /kaa/sprites/{4a5e8c39-4e80-4202-9886-be1a58073fd6.png → f6b042a8-a91e-4811-99f9-18bbb5197468.png} +0 -0
  148. /kaa/sprites/{a9029026-7a7e-4f8e-9620-bd451bfdf284.png → fcc72120-2a77-4c26-a27e-e1027c6088c0.png} +0 -0
  149. /kaa/sprites/{b37685c3-74a8-4393-ad79-c445ab2d77be.png → fdf0da06-f088-424f-9941-8c883fea3db3.png} +0 -0
  150. {ksaa-2025.9.post2.dist-info → ksaa-2025.11b1.dist-info}/WHEEL +0 -0
  151. {ksaa-2025.9.post2.dist-info → ksaa-2025.11b1.dist-info}/entry_points.txt +0 -0
  152. {ksaa-2025.9.post2.dist-info → ksaa-2025.11b1.dist-info}/licenses/LICENSE +0 -0
  153. {ksaa-2025.9.post2.dist-info → ksaa-2025.11b1.dist-info}/top_level.txt +0 -0
kaa/config/schema.py CHANGED
@@ -3,6 +3,7 @@ from pydantic import BaseModel, ConfigDict
3
3
 
4
4
  from kotonebot import config
5
5
  from kaa.config.produce import ProduceSolution, ProduceSolutionManager
6
+ from kaa.errors import NoProduceSolutionSelectedError
6
7
  from .const import (
7
8
  ConfigEnum,
8
9
  Priority,
@@ -77,6 +78,14 @@ class ProduceConfig(ConfigBaseModel):
77
78
  """培育的次数。"""
78
79
  produce_timeout_cd: int = 60
79
80
  """推荐卡检测用时上限;若超时,则随机选择卡片打出。单位为秒,最少为20sec,DMM用户可以设置为30sec"""
81
+ enable_fever_month: Literal['on', 'off', 'ignore'] = 'ignore'
82
+ """
83
+ 是否自动启用强化月间。
84
+
85
+ * on: 自动启用
86
+ * off: 自动禁用
87
+ * ignore: 不改变当前状态
88
+ """
80
89
 
81
90
  class MissionRewardConfig(ConfigBaseModel):
82
91
  enabled: bool = False
@@ -125,21 +134,24 @@ class StartGameConfig(ConfigBaseModel):
125
134
 
126
135
  kuyo_package_name: str = 'org.kuyo.game'
127
136
  """Kuyo包名"""
128
-
137
+
129
138
  disable_gakumas_localify: bool = False
130
139
  """
131
140
  自动检测并禁用 Gakumas Localify 汉化插件。
132
-
141
+
133
142
  (目前仅对 DMM 版有效。)
134
143
  """
135
-
144
+
136
145
  dmm_game_path: str | None = None
137
146
  """
138
147
  DMM 版游戏路径。若不填写,会自动检测。
139
-
148
+
140
149
  例:`F:\\Games\\gakumas\\gakumas.exe`
141
150
  """
142
151
 
152
+ dmm_bypass: bool = False
153
+ """绕过 DMM 启动器直接启动游戏(实验性)"""
154
+
143
155
  class EndGameConfig(ConfigBaseModel):
144
156
  exit_kaa: bool = False
145
157
  """退出 kaa"""
@@ -157,7 +169,7 @@ class EndGameConfig(ConfigBaseModel):
157
169
  """
158
170
  恢复 Gakumas Localify 汉化插件状态至启动前。通常与
159
171
  `disable_gakumas_localify` 配对使用。
160
-
172
+
161
173
  (目前仅对 DMM 版有效。)
162
174
  """
163
175
 
@@ -253,6 +265,6 @@ def produce_solution() -> ProduceSolution:
253
265
  """获取当前培育方案"""
254
266
  id = conf().produce.selected_solution_id
255
267
  if id is None:
256
- raise ValueError("No produce solution selected")
268
+ raise NoProduceSolutionSelectedError()
257
269
  # TODO: 这里需要缓存,不能每次都从磁盘读取
258
270
  return ProduceSolutionManager().read(id)
kaa/errors.py CHANGED
@@ -63,4 +63,19 @@ class GameUpdateNeededError(KaaUserFriendlyError):
63
63
  super().__init__(
64
64
  '游戏本体需要更新。kaa 暂不支持自动更新,请前往 Play Store 手动更新游戏。',
65
65
  'https://www.baidu.com/s?wd=%E5%BF%AB%E5%8E%BB%E6%9B%B4%E6%96%B0%E6%B8%B8%E6%88%8F%E5%95%8A%EF%BC%8C%E8%BF%98%E7%82%B9%E4%BB%80%E4%B9%88%E6%89%93%E5%BC%80%E5%B8%AE%E5%8A%A9'
66
- )
66
+ )
67
+
68
+ class NoProduceSolutionSelectedError(KaaUserFriendlyError):
69
+ def __init__(self):
70
+ super().__init__(
71
+ '未选择培育方案。请前往「设置」,在「当前使用的培育方案」选择一个培育方案后再重新运行。',
72
+ 'https://www.kdocs.cn/l/cetCY8mGKHLj?linkname=LasxpznR6b'
73
+ )
74
+
75
+ class DmmGameLaunchError(KaaUserFriendlyError):
76
+ def __init__(self, reason: str):
77
+ self.reason = reason
78
+ super().__init__(
79
+ f'绕过 DMM 启动器失败,原因:{reason}',
80
+ 'https://www.kdocs.cn/l/cetCY8mGKHLj?linkname=pSw7QcH1Kx'
81
+ )
kaa/main/dmm_host.py CHANGED
@@ -1,60 +1,60 @@
1
- from typing_extensions import override
2
-
3
- from kotonebot.client import Device
4
- from kotonebot.client.host import HostProtocol, Instance
5
- from kotonebot.client.host.windows_common import WindowsRecipes, WindowsHostConfigs, CommonWindowsCreateDeviceMixin
6
-
7
-
8
- DmmHostConfigs = WindowsHostConfigs
9
- DmmRecipes = WindowsRecipes
10
-
11
- # TODO: 可能应该把 start_game 和 end_game 里对启停的操作移动到这里来
12
- class DmmInstance(CommonWindowsCreateDeviceMixin, Instance[DmmHostConfigs]):
13
- def __init__(self):
14
- super().__init__('dmm', 'gakumas')
15
-
16
- @override
17
- def refresh(self):
18
- raise NotImplementedError()
19
-
20
- @override
21
- def start(self):
22
- raise NotImplementedError()
23
-
24
- @override
25
- def stop(self):
26
- raise NotImplementedError()
27
-
28
- @override
29
- def running(self) -> bool:
30
- raise NotImplementedError()
31
-
32
- @override
33
- def wait_available(self, timeout: float = 180):
34
- raise NotImplementedError()
35
-
36
- @override
37
- def create_device(self, impl: DmmRecipes, host_config: DmmHostConfigs) -> Device:
38
- """为 DMM 实例创建 Device。"""
39
- return super().create_device(impl, host_config)
40
-
41
- class DmmHost(HostProtocol[DmmRecipes]):
42
- instance = DmmInstance()
43
- """DmmInstance 单例。"""
44
-
45
- @staticmethod
46
- def installed() -> bool:
47
- # TODO: 应该检查 DMM 和 gamkumas 的安装情况
48
- raise NotImplementedError()
49
-
50
- @staticmethod
51
- def list() -> list[Instance]:
52
- raise NotImplementedError()
53
-
54
- @staticmethod
55
- def query(*, id: str) -> Instance | None:
56
- raise NotImplementedError()
57
-
58
- @staticmethod
59
- def recipes() -> 'list[DmmRecipes]':
60
- return ['windows', 'remote_windows']
1
+ from typing_extensions import override
2
+
3
+ from kotonebot.client import Device
4
+ from kotonebot.client.host import HostProtocol, Instance
5
+ from kotonebot.client.host.windows_common import WindowsRecipes, WindowsHostConfigs, CommonWindowsCreateDeviceMixin
6
+
7
+
8
+ DmmHostConfigs = WindowsHostConfigs
9
+ DmmRecipes = WindowsRecipes
10
+
11
+ # TODO: 可能应该把 start_game 和 end_game 里对启停的操作移动到这里来
12
+ class DmmInstance(CommonWindowsCreateDeviceMixin, Instance[DmmHostConfigs]):
13
+ def __init__(self):
14
+ super().__init__('dmm', 'gakumas')
15
+
16
+ @override
17
+ def refresh(self):
18
+ raise NotImplementedError()
19
+
20
+ @override
21
+ def start(self):
22
+ raise NotImplementedError()
23
+
24
+ @override
25
+ def stop(self):
26
+ raise NotImplementedError()
27
+
28
+ @override
29
+ def running(self) -> bool:
30
+ raise NotImplementedError()
31
+
32
+ @override
33
+ def wait_available(self, timeout: float = 180):
34
+ raise NotImplementedError()
35
+
36
+ @override
37
+ def create_device(self, impl: DmmRecipes, host_config: DmmHostConfigs) -> Device:
38
+ """为 DMM 实例创建 Device。"""
39
+ return super().create_device(impl, host_config)
40
+
41
+ class DmmHost(HostProtocol[DmmRecipes]):
42
+ instance = DmmInstance()
43
+ """DmmInstance 单例。"""
44
+
45
+ @staticmethod
46
+ def installed() -> bool:
47
+ # TODO: 应该检查 DMM 和 gamkumas 的安装情况
48
+ raise NotImplementedError()
49
+
50
+ @staticmethod
51
+ def list() -> list[Instance]:
52
+ raise NotImplementedError()
53
+
54
+ @staticmethod
55
+ def query(*, id: str) -> Instance | None:
56
+ raise NotImplementedError()
57
+
58
+ @staticmethod
59
+ def recipes() -> 'list[DmmRecipes]':
60
+ return ['windows', 'remote_windows']
kaa/main/gr.py CHANGED
@@ -59,7 +59,7 @@ ConfigKey = Literal[
59
59
  'select_which_contestant', 'when_no_set',
60
60
 
61
61
  # produce
62
- 'produce_enabled', 'selected_solution_id', 'produce_count', 'produce_timeout_cd',
62
+ 'produce_enabled', 'selected_solution_id', 'produce_count', 'produce_timeout_cd', 'enable_fever_month',
63
63
  'mission_reward_enabled',
64
64
 
65
65
  # club reward
@@ -77,7 +77,7 @@ ConfigKey = Literal[
77
77
  # start game
78
78
  'start_game_enabled', 'start_through_kuyo',
79
79
  'game_package_name', 'kuyo_package_name',
80
- 'disable_gakumas_localify', 'dmm_game_path',
80
+ 'disable_gakumas_localify', 'dmm_game_path', 'dmm_bypass',
81
81
 
82
82
  # end game
83
83
  'exit_kaa', 'kill_game', 'kill_dmm',
@@ -1530,6 +1530,14 @@ class KotoneBotUI:
1530
1530
  info=ProduceConfig.model_fields['produce_timeout_cd'].description
1531
1531
  )
1532
1532
 
1533
+ enable_fever_month = gr.Radio(
1534
+ label="自动启用强化月间",
1535
+ choices=[("不操作", "ignore"), ("自动启用", "on"), ("自动禁用", "off")],
1536
+ value=self.current_config.options.produce.enable_fever_month,
1537
+ info=ProduceConfig.model_fields['enable_fever_month'].description,
1538
+ interactive=True
1539
+ )
1540
+
1533
1541
  # 绑定启用状态变化事件
1534
1542
  def on_produce_enabled_change(enabled):
1535
1543
  return gr.Group(visible=enabled)
@@ -1548,12 +1556,14 @@ class KotoneBotUI:
1548
1556
  config.produce.selected_solution_id = data.get('selected_solution_id')
1549
1557
  config.produce.produce_count = data.get('produce_count', 1)
1550
1558
  config.produce.produce_timeout_cd = data.get('produce_timeout_cd', 60)
1559
+ config.produce.enable_fever_month = data.get('enable_fever_month', 'ignore')
1551
1560
 
1552
1561
  return set_config, {
1553
1562
  'produce_enabled': produce_enabled,
1554
1563
  'selected_solution_id': solution_dropdown,
1555
1564
  'produce_count': produce_count,
1556
- 'produce_timeout_cd': produce_timeout_cd
1565
+ 'produce_timeout_cd': produce_timeout_cd,
1566
+ 'enable_fever_month': enable_fever_month
1557
1567
  }
1558
1568
 
1559
1569
 
@@ -2236,6 +2246,11 @@ class KotoneBotUI:
2236
2246
  info=StartGameConfig.model_fields['dmm_game_path'].description,
2237
2247
  placeholder="例:F:\\Games\\gakumas\\gakumas.exe"
2238
2248
  )
2249
+ dmm_bypass = gr.Checkbox(
2250
+ label="绕过 DMM 启动器直接启动游戏(实验性)",
2251
+ value=self.current_config.options.start_game.dmm_bypass,
2252
+ info=StartGameConfig.model_fields['dmm_bypass'].description
2253
+ )
2239
2254
  start_game_enabled.change(
2240
2255
  fn=lambda x: gr.Group(visible=x),
2241
2256
  inputs=[start_game_enabled],
@@ -2249,6 +2264,7 @@ class KotoneBotUI:
2249
2264
  config.start_game.kuyo_package_name = data['kuyo_package_name']
2250
2265
  config.start_game.disable_gakumas_localify = data['disable_gakumas_localify']
2251
2266
  config.start_game.dmm_game_path = data['dmm_game_path'] if data['dmm_game_path'] else None
2267
+ config.start_game.dmm_bypass = data['dmm_bypass']
2252
2268
 
2253
2269
  return set_config, {
2254
2270
  'start_game_enabled': start_game_enabled,
@@ -2256,7 +2272,8 @@ class KotoneBotUI:
2256
2272
  'game_package_name': game_package_name,
2257
2273
  'kuyo_package_name': kuyo_package_name,
2258
2274
  'disable_gakumas_localify': disable_gakumas_localify,
2259
- 'dmm_game_path': dmm_game_path
2275
+ 'dmm_game_path': dmm_game_path,
2276
+ 'dmm_bypass': dmm_bypass
2260
2277
  }
2261
2278
 
2262
2279
 
kaa/resources/game.db CHANGED
Binary file
Binary file