private void bot_Attack() //atak komputera { if (whichTeam) //jesli druzyna przyajciol { if (AllyTeam[currentAlly] is Warrior) //jesli warrior { AI_Attack.Attack((Warrior)current, EnemyTeam); //metoda losujaca/wybierajaca if (AI_Attack.Buff) //jesli nie byl to atak { Warrior tmp = (Warrior)AllyTeam[currentAlly]; //tutaj tak troche tmp.warShout(); //byle jak, uzywanie skilla, AllyTeam[currentAlly] = tmp; //oraz nowe przypisywanie do obecnie grajacej psotaci MessageBox.Show(current._Name + " used War Shout."); //wiadomosc pokazujaca co sie stalo } else//jesli to byl atack { EnemyTeam[AI_Attack.Enemy].healthChange(AI_Attack.DMG);//odejmuje wybranemu wrogowi obliczone obrazenia MessageBox.Show(current._Name + " hit " + EnemyTeam[AI_Attack.Enemy]._Name + " for " + AI_Attack.DMG + " damage."); }//wiadomosc pokazujaca co sie stalo } if (AllyTeam[currentAlly] is Mage)//reszta na tej samej zasadzie { AI_Attack.Attack((Mage)current, EnemyTeam); if (AI_Attack.Buff) { Mage tmp = (Mage)AllyTeam[currentAlly]; tmp.regenerate(); AllyTeam[currentAlly] = tmp; MessageBox.Show(AllyTeam[currentAlly]._Name + " regenerated mana."); } else { if (AI_Attack.Enemy != -1) { EnemyTeam[AI_Attack.Enemy].healthChange(AI_Attack.DMG); MessageBox.Show(current._Name + " hit " + EnemyTeam[AI_Attack.Enemy]._Name + " for " + DMG + " damage."); } else//z tym wyjatkiem, ze jesli indeks wroga jest -1 to jest uzywany blizzard {//na wszystkich wrogow for (int i = 0; i < EnemyTeam.Count; i++) { EnemyTeam[i].healthChange(AI_Attack.DMG); } MessageBox.Show(current._Name + " used Blizzard and hit every enemy for " + AI_Attack.DMG + " damage."); } } } if (AllyTeam[currentAlly] is Archer) { AI_Attack.Attack((Archer)current, EnemyTeam); EnemyTeam[AI_Attack.Enemy].healthChange(AI_Attack.DMG); MessageBox.Show(current._Name + " hit " + EnemyTeam[AI_Attack.Enemy]._Name + " for " + AI_Attack.DMG + " damage."); } if (AllyTeam[currentAlly] is Priest) { AI_Attack.Attack((Priest)current, AllyTeam, EnemyTeam); if (AI_Attack.Buff) { if (AI_Attack.Enemy == -1) {//tak samo jesli indeks jest na -1 to leczy samego sieibe AllyTeam[currentAlly].healthChange(AI_Attack.DMG); MessageBox.Show(current._Name + " healed himself for " + (-AI_Attack.DMG)); } else//jesli nie jest na -1 ale nie jest to rowniez atak to leczy {//przyajciela o wskazanym indeksie AllyTeam[AI_Attack.Enemy].healthChange(AI_Attack.DMG); MessageBox.Show(current._Name + " healed " + AllyTeam[AI_Attack.Enemy]._Name + " for " + (-AI_Attack.DMG)); } } else { EnemyTeam[AI_Attack.Enemy].healthChange(AI_Attack.DMG); MessageBox.Show(current._Name + " hit " + EnemyTeam[AI_Attack.Enemy]._Name + " for " + DMG + " damage."); } } } else//tak samo dal druzyny wrogow { if (EnemyTeam[currentEnemy] is Warrior) { AI_Attack.Attack((Warrior)current, AllyTeam); if (AI_Attack.Buff) { Warrior tmp = (Warrior)EnemyTeam[currentEnemy]; tmp.warShout(); EnemyTeam[currentEnemy] = tmp; MessageBox.Show(current._Name + " used War Shout."); } else { AllyTeam[AI_Attack.Enemy].healthChange(AI_Attack.DMG); MessageBox.Show(current._Name + " hit " + AllyTeam[AI_Attack.Enemy]._Name + " for " + AI_Attack.DMG + " damage."); } } if (EnemyTeam[currentEnemy] is Mage) { AI_Attack.Attack((Mage)current, AllyTeam); if (AI_Attack.Buff) { Mage tmp = (Mage)EnemyTeam[currentEnemy]; tmp.regenerate(); EnemyTeam[currentEnemy] = tmp; MessageBox.Show(EnemyTeam[currentEnemy]._Name + " regenerated mana."); } else { if (AI_Attack.Enemy != -1) { AllyTeam[AI_Attack.Enemy].healthChange(AI_Attack.DMG); MessageBox.Show(current._Name + " hit " + AllyTeam[AI_Attack.Enemy]._Name + " for " + AI_Attack.DMG + " damage."); } else { for (int i = 0; i < AllyTeam.Count; i++) { AllyTeam[i].healthChange(AI_Attack.DMG); } MessageBox.Show(current._Name + " used Blizzard and hit every enemy for " + AI_Attack.DMG + " damage."); } } } if (EnemyTeam[currentEnemy] is Archer) { AI_Attack.Attack((Archer)current, AllyTeam); AllyTeam[AI_Attack.Enemy].healthChange(AI_Attack.DMG); MessageBox.Show(current._Name + " hit " + AllyTeam[AI_Attack.Enemy]._Name + " for " + AI_Attack.DMG + " damage."); } if (EnemyTeam[currentEnemy] is Priest) { AI_Attack.Attack((Priest)current, EnemyTeam, AllyTeam); if (AI_Attack.Buff) { if (AI_Attack.Enemy == -1) { EnemyTeam[currentEnemy].healthChange(AI_Attack.DMG); MessageBox.Show(current._Name + " healed himself for " + (-AI_Attack.DMG)); } else { EnemyTeam[AI_Attack.Enemy].healthChange(AI_Attack.DMG); MessageBox.Show(current._Name + " healed " + EnemyTeam[AI_Attack.Enemy]._Name + " for " + (-AI_Attack.DMG)); } } else { AllyTeam[AI_Attack.Enemy].healthChange(AI_Attack.DMG); MessageBox.Show(current._Name + " hit " + AllyTeam[AI_Attack.Enemy]._Name + " for " + AI_Attack.DMG + " damage."); } } } uncheck_buttons_and_markers(); //i tutaj tak samo, odznaczanie damage_added_correctly = false; set(); //ustawianie paskow zyc i many check_dead(); //sprawdza czy ktos umarl if (ArenaGameProject.Menu.AllyWin | ArenaGameProject.Menu.EnemyWin) //sprawdza czy czy ktos wygrał czy nie { Close(); } else//poniewaz musi dokonczyc metode zamin zamknie Form'a, dlatego jest tu else { next_turn();//nastepna tura skill_check(); //ustawia skille, set_marker(); //ustawia znacznik if (current._isAI) { bot_Attack(); } } }