Witam. Zacząłem od jakiegoś czasu naukę C++. W celach naukowych tworzę grę konsolową. Mam jednak problem z tworzeniem broni. Metoda, którą napisałem tworzy broń, następnie wyświetla jej parametry do gracza i on decyduje czy zachować broń. Jeżeli gracz zgodzi się automatycznie jego atak zostaje zmieniony na równy atakowi broni. Z jednak jakiegoś powodu tak się nie dzieje. Jestem nowy więc proszę o wyrozumiałość.
Tutaj kod
Classes.h
class person
{
public:
string name;
string weapon;
int hp;
int damage;
int damageC;
int lvl;
int exp;
int needexp;
};
class Weapon
{
public:
string name;
int damage;
int damageC;
int range;
int noise;
void create_weapon(person object);
};
classes.cpp
void Weapon::create_weapon(person object)
{
int number_weapon;
number_weapon = 0;
number_weapon = rand()%1+1; //Zmienione aby mieć 100% szansy aby odszukać broń
if(number_weapon == 1 )
{
number_weapon = 0;
number_weapon = rand()%5+object.lvl+1;
damage = object.lvl + number_weapon;
number_weapon = rand()%damage+object.lvl+1;
damageC = damage + number_weapon;
cout<<"Znalazles bron! Jej obrazenia wynosza: "<<damage<<" a krytyczne: "<<damageC<<endl;
cout<<"Czy chcesz ja zmienic z obecna bronia?"<<endl;
cout<<"[1] Tak"<<endl;
cout<<"[2] Nie"<<endl;
char choose;
choose = getch();
switch(choose)
{
case '1':
{
object.damage = damage;
object.damageC = damageC;
object.weapon = "---";
system("CLS");
cout<<"Pomyslnie zalozono bron"<<endl;
number_weapon = 0;
break;
}
case '2':
{
number_weapon = 0;
system("CLS");
break;
}
}
}
}