идея интересная. в принципе даже вполне осуществимая в моем варианте. Вот только немного затруднительная. Дело в том что у меня есть оружие, но оно не оружие как таковое а карточка с параметрами. У меня выстрел подразумевает получение урона игроком, то есть оружие по сути не стреляет. можно конечно поместить кулдаун на получение урона, но это вроде то же самое что и ваш вариант.
Одна из лучших моих идей подразумевала под собой процесс выстрела, но я не могу придумать как организовать повторную инициацию выстрела после его окончания. То есть хотелось бы организовать что-то вроде

Код:
function vistrel(col: number){
// процесс выстрела
vistrel(col-1);
}
Вот только я не уверен что такая конструкция допустима в плане работы и в плане чистоты кода. Или я ошибаюсь?