Asynchronous execution: Use asyncio.create_subprocess_exec to start processes and wait for them to complete asynchronously.
File reading optimization: Reading a file line by line inside an asynchronous function.
Asynchronous task management: Use asyncio.gather to execute commands in parallel if the -j flag is enabled. This approach allows multiple processes to run in parallel, effectively managing their termination, which should improve script performance.
Additions
Describe new functionality added by your code, e.g.
Tribal smoke bombs
New tribal smoke bomb sprite
Tribal smoke bomb recipes at smithing bench and crafting spot using prometheum
Changes
Describe adjustments to existing features made in this merge, e.g.
Increased regular smoke bomb radius
References
Links to the associated issues or other related pull requests, e.g.
Closes #[ISSUE_NUMBER]
Contributes towards #[ISSUE_NUMBER]
Reasoning
Why did you choose to implement things this way, e.g.
Tribals need ways to close distance with pirate raiders
Smoke bombs allow this while enhancing combat micro
Thematically appropriate as we already allow tribal prometheum handling
Easy to implement
Buffed regular smoke grenades as they are rarely utilized and to justify additional investment
Alternatives
Describe alternative implementations you have considered, e.g.
Tribal catapult that launches melee animals into siege camps:
Additional use for animals
Anachronistic
Breaks realism theme
Testing
Check tests you have performed:
[ ] Compiles without warnings
[ ] Game runs without errors
[ ] (For compatibility patches) ...with and without patched mod loaded
added:
Additions
Describe new functionality added by your code, e.g.
Changes
Describe adjustments to existing features made in this merge, e.g.
References
Links to the associated issues or other related pull requests, e.g.
Reasoning
Why did you choose to implement things this way, e.g.
Alternatives
Describe alternative implementations you have considered, e.g.
Testing
Check tests you have performed: