#include "warrior.h"        // конфиг персонажа и его пикселей
#include "nobraingaming.h"  // конфиг игрока, количество глаз, рук, пальцев и извилин
#include "main.h"           // конфиг ведра, на котором запустили WoW
#include "string.h"
unsigned char global_cooldown = 0; // (gc)
unsigned short timer_gc;
unsigned char aggro = WAR_AGRO1; // типа какой то регистр из warrior.h, отвечающий за накрутку агро от нажатия кнопок
unsigned char pokinut_telo = 0;
void PC_Keyboard_TxCallBack(Keyboard_HandleTypeDef *key1){ // ждём прерывание от клавиатуры чтобы запустить таймер гкд
   if(key1->Instance == PC_Keyboard1) {
      global_cooldown = 1;
   }
}
void PC_Timer_PeriodElapsedCallBack(Timer_HandleTypeDef *tim1){ // ждём прерывание от таймера чтобы сбросить гкд
   if(tim1->Instance == PC_Timer1) {
      PC_Timer_Stop_IT(&tim1);
      timer_gc = 0
   }
}
void voen_rotation(unsigned char level, unsigned short gearscore, unsigned char iq){
   typedef __PACKED_STRUCT {
     unsigned char charge;
     unsigned char knopka1;
     unsigned char knopka2;
     unsigned char knopka3;
   } Voen_rotation;
   Voen_rotation v_r = {
     .charge = (level/10);
     .knopka1 = gearscore*(level/2)*(1/iq);
     .knopka2 = 1;
     .knopka3 = iq;
   }
   if(global_cooldown == 0 && timer_gc == 0) {
     PC_Keyboard_Master_Transmit_IT(&key1, (unsigned short*)&Voen_rotation, sizeof(Voen_rotation), KEYBOARD_FIRST_AND_LAST_FRAME);
   }
}
int main(void){
// тут типа запуск компа, вова, инвайт в рейд, сами придумывайте название функций и их работу
  while(1) {
     voen_rotation(80, 6744, 47);
     if(global_cooldown == 1){
         global_cooldown = 0;
         timer_gc = 1;
         Timer1->ARR == 1500; // 1500 мс ( ARR - типа регистр таймера из main.h)
         PC_Timer_Start_IT(&tim1);
     }
     switch(aggro){
        case 0...99: break;
        case 100: 
          pokinut_telo = 1; PC_Timer_Stop_IT(&tim1); timer_gc = 0
          PC_Keyboard_Master_Transmit_IT(&key1, pokinut_telo, sizeof(pokinut_telo), KEYBOARD_FIRST_AND_LAST_FRAME);
          break; // здоровья умершим
     }
  }
}