Metoda nie zmienia zmiennej

0

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;
            }
        }

    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1