Ты не сможешь описать все условия. Проще научится самому думать когда и как сливать.
Нужно что-то типа такого еще:
для ХБ:
"если угля 2+, значит слить 1 ХБ под следующий 4т16"
"если до ДС меньше 10 секунд, а углей меньше 2 - прекратить слив ХБ под баннер или 4т16"
условие, чтоб всунуть в прок Крови 2 ХБ (подсчет скорости каста и определить требуемый стак)
остался 1 уголь, ДС висит ровно на каст ХБ и начала стакаться кровь, проигнорировать ДС, выпустить ХБ, чтоб конец каста на 10м стаке.
.............
для ШБ:
расчет урон ШБ (количество проков и время их остаточного действия+крит шанс+мастери) <> урон ХБ(количество проков и время их остаточного действия+крит шанс+мастери+скорость каста).
На самом деле условий могут быть сотни, и ты не сможешь их все всунуть в код.
Всякие нефритовые духи, нашивка на плащ, триксы, перчатки инженера, последняя секунда метагема, кд тринкетов, общее хп цели, коэффициент свитча рейда, использование Хаоса и тд и тп.
Идеальные условия использования не создать, а если ты будешь ориентироваться только на то, что создал - то результат все равно будет хуже, если бы сам думал.
Ну а если тебя интересуют только то, что спросил - я уже написал выше.