11 Replies - 1470 Views - Last Post: 13 May 2013 - 08:03 AM

#1 Delacar  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 39
  • Joined: 31-July 12

Done At Last

Posted 08 May 2013 - 04:04 PM

Hello there all, sorry for not posting in a while but life has been crazy for me. Well as the title says I have finished my first game, and boy was I stoked when it was done! Here is the code for main program:


#include <iostream>
#include <windows.h>
#include <string>
#include <cstdlib>
#include <ctime>
#include "GameHeader.h"

using namespace std;

int getchoice (int min, int max)
{
    int choice;
    do
    {
        cout << "Please enter one of the above numbers.\n";
        cin >> choice;
        cout << endl;
    }
    while(choice < min || choice > max);
    return choice;
}

int getchoice2 (int min, int max)
{
    int choice2;
    do
    {
        cout << "Please enter one of the above numbers.\n";
        cin >> choice2;
        cout << endl;
    }
    while(choice2 < min || choice2 > max);
    return choice2;
}

int getchoice3 (int min, int max)
{
    int choice3;
    do
    {
        cout << "Please enter one of the above numbers.\n";
        cin >> choice3;
        cout << endl;
    }
    while(choice3 < min || choice3 > max);
    return choice3;
}

int yourchoice (int min, int max)
{
    int gamechoice;
    do
    {
        cout << "Please enter one of the above numbers.\n";
        cin >> gamechoice;
        cout << endl;
    }
    while(gamechoice < min || gamechoice > max);
    return gamechoice;
}

char Map[20][20] = {"        ###        ",
                    "        #B#        ",
                    "      ### ###      ",
                    "     ##     ##     ",
                    "     #       #     ",
                    "   ###       ###   ",
                    " ###           ### ",
                    "##               ##",
                    "#                 #",
                    "#                 #",
                    "#                 #",
                    "#                 #",
                    "#                 #",
                    "#######  ####### ##",
                    "#  P  #  #        #",
                    "## = ##  #        #",
                    "#        #        #",
                    "##    #  #     #C##",
                    " ################# " };

char Map2[20][20] = {"        ###        ",
                     "        #B#        ",
                     "      ### ###      ",
                     "     ##     ##     ",
                     "     #       #     ",
                     "   ###       ###   ",
                     " ###           ### ",
                     "##               ##",
                     "#                 #",
                     "#                 #",
                     "#                 #",
                     "#                 #",
                     "#                 #",
                     "#######  ####### ##",
                     "#     #  #        #",
                     "## = ##  #        #",
                     "#        #      P #",
                     "##    #  #     # ##",
                     " ################# " };


int Gamespeed = 100;
int gamesleep = 1000;
int Level = 1;
bool stopgame = false;
bool loop = true;

int main()
{
    int ghp = 500, bghp = 700;
    int monsters = 1;
    const int gdef = 35;
    const int bgdef = 40;
    const int gdamage = 18;
    string name;
    string job;
    int gamechoice;
    int choice, php, attack1, attack2, damage, choice2, choice3, def;
    int item = 0;
    int potion = 100;
    int n = 0;

    system ("color 7E");

    intro();
    system ("PAUSE");
    system ("cls");

    story();

    cout << "Please type in a name for your character and press ENTER. \n";
    cin >> name;
    cout << endl << endl;

    cout << "Elf: \n";
    cout << name << " is it. Hmm, now can you tell me your job?\n\n";

    cout << "Chosse your job.\n\n";
    cout << "1: Fighter \n2: Archer \n3: Wizard \n\n";

    choice = getchoice (1, 3);

    switch(choice)
    {
        case 1:
        {
            /* fighters attack and defence bonus and hit points, that is to be used at a later time*/
            int Attack = 25;
            int defence = 50;
            int hp = 500;
            int Damage = 38;

            job = "Fighter";
            php = hp;
            attack1 = Attack;
            damage = Damage;
            def = defence;
            break;
        }
        case 2:
        {
            /* archers attack and defence bonus and hit points, that is to be used at a later time */
            int Attack = 35;
            int defence = 40;
            int hp = 400;
            int Damage = 22;

            job = "Archer";
            php = hp;
            attack1 = Attack;
            damage = Damage;
            def = defence;
            break;
        }
        case 3:
        {
            /* wizards attack and defence bonus and hit points, that is to be used at a later time.*/
            int Attack = 45;
            int defence = 30;
            int hp = 300;
            int Damage = 29;

            job = "Wizard";
            php = hp;
            attack1 = Attack;
            damage = Damage;
            def = defence;
            break;
        }
    }

    cout << "Elf: \n";
    cout << "I see so you are a " << job << " and your name is " << name << ". It seems that \n";
    cout << "your memory is unimpaired, I am glad to see that. My name is \n";
    cout << "Father Elethan, I'm the head healer here at the temple of Calinth.\n\n";

    cout << "Elethan:\n";
    cout << "Now I'm sure you have many questions to ask me.\n";
    cout << "1: Ask \n2: Don't Ask\n\n";

    gamechoice = yourchoice(1, 2);

    if (gamechoice == 1)
    {
        cout << name << ":\n";
                cout << "Yes, I have many questions.\n\n";
                system ("PAUSE");
                cout << endl;
    }

    switch (gamechoice)
    {
        case 1:
        {
            while(loop == true)
            {
                cout << "Elethan:\n";
                cout << "What would you like to know?\n";
                cout << "1: What happened to me?\n";
                cout << "2: Why did you want to know my name and job?\n";
                cout << "3: Will I live?\n";
                cout << "4: Where is Calinth?\n";
                cout << "5: I think that is all.\n\n";

                gamechoice = yourchoice(1, 5);

                switch (gamechoice)
                {
                    case 1:
                    {
                        cout << name << ":\n";
                        cout << "What happened to me, all I can remember is a wall of blue.\n\n";
                        system("PAUSE");
                        cout << endl;

                        cout << "Elethan:\n";
                        cout << "You were a passager aboard a merchant ship headed for Vlin. Your ship was\n";
                        cout << "caught in a hurricane and was blown against the rocks just off our shores. I\n";
                        cout << "assume that the wall of blue that you mentioned was the large wave that \n";
                        cout << "capsized the vessel. You and many others washed up on our shores a few days ago.\n\n";
                        system("PAUSE");
                        cout << endl;
                        break;
                        }

                        case 2:
                        {
                            cout << name << ":\n";
                            cout << "Why did you want to my name and job for, I don't see how that is \n";
                            cout << "any of your business.\n";
                            system ("PAUSE");
                            cout << endl;

                            cout << "Elethan:\n";
                            cout << "You are right, it is not my business. But one one of the crew from the vessel\n";
                            cout << "told me your name and job before he pass on, so I used that knowledge to see \n";
                            cout << "if your memory was unharmed. \n\n";
                            system ("PAUSE");
                            cout << endl;
                            break;
                        }

                        case 3:
                        {
                            cout << name << ":\n";
                            cout << "Will I live? From what you said earlier It does not sound like I will.\n\n";
                            system ("PAUSE");
                            cout << endl;

                            cout << "Elethan:\n";
                            cout << "Don't worry, your injuries aren't life threatening. But you will be the\n";
                            cout << "sole survivor, the rest have all pasted away. \n\n";
                            system ("PAUSE");
                            cout << endl;
                            break;
                        }

                        case 4:
                        {
                            cout << name << ":\n";
                            cout << "Where is Calinth. Arg, I can't remember it.\n\n";
                            system ("PAUSE");
                            cout << endl;

                            cout << "Elethan:\n";
                            cout << "Where is not the appropriate term, who is closer to the answer.\n";
                            cout << "He is the almighty, the creator, and the ruler on high. Calinth created all \n";
                            cout << "that you see, touch, hear, smell, and taste. To put it bluntly he is the God on high.\n\n";
                            system("PAUSE");
                            break;
                        }

                        case 5:
                        {
                            cout << name << ": \n";
                            cout << "I belive that is all the questions I have.\n\n";
                            system ("PAUSE");
                            cout << endl;

                            cout << "Elethan:\n";
                            cout << "Very well, I'll let you sleep now. You should be able to get\n";
                            cout << "up and move around tomorrow afternoon, sleep well.\n\n";
                            loop = false;
                            system ("PAUSE");
                            system ("color 00");
                            system("cls");
                            Sleep (gamesleep);
                            break;
                        }
                }
            }
            break;
        }
        case 2:
        {
            cout << name << ":\n";
            cout << "No I remember it all, from begin to end and it is not pretty.\n\n";

            system ("PAUSE");
            cout << endl << endl;

            cout << "Elethan:\n";
            cout << "You remember it all? From the external injures I would have thought there to be\n";
            cout << "a little internal damage, resulting in some memory lose. Your memory truely is\n";
            cout << "unimpaired. Haha don't take this wrong but you must have a thick skull. \n\n";

            cout << "Elethan:\n";
            cout << "I'll let you sleep now. You should be able to get\n";
            cout << "up and move around tomorrow afternoon, sleep well.\n\n";
            loop = false;
            system ("PAUSE");
            system ("color 0F");
            system("cls");
            Sleep (gamesleep);
            break;
        }

    }

cout << "AAAHHHH!! \nCALINTH SAVE US!!! \nRUN FOR YOUR LIVES!!!\n\n";
system("pause");
system ("cls");
system ("color 7E");
cout << "Your eyes fly open as you hear the screams from othes in the chaple.\n";
cout << "Mixed into the screams of the monks is the sounds of swords clashing and \n";
cout << "a guttural growling yell. \n\n";
cout << "As you start to get up a young monk comes rushing up. \n\n";
cout << "Young Monk:\n";
cout << "Please, you must help us! Goblins have attacked, and are bent on killing us all!";
cout << "Please you must save Ele....\n\n";
cout << "His plea is cut short as an arrow pierces his heart. \n";
cout << "Seeing the current danger to yourself you quickly roll off the healing alter.\n";
system("pause"); cout << endl << endl;

cout << "You hear an angry growl come from the goblin as his final arrow clatters \n";
cout << "harmlessly to the ground. Your wounds are still sore but now you must choose \n";
cout << "between fight or flight.\n";
system ("pause"); cout << endl << endl;

cout << "Choose\n";
cout << "1: Fight\n";
cout << "2: Flight\n";

gamechoice = yourchoice(1, 2);

switch (gamechoice)
{
    case 1:
    {
        cout << "Having choosen to fight you prepare to attack the goblin.\n";
        cout << "As the goblin comes around the healing alter you have a choice\n";
        cout << "you can sweep his legs or tackle him.\n\n";
        cout << "1: Sweep Legs\n";
        cout << "2: Tackle\n\n";

        gamechoice = yourchoice(1, 2);

        switch(gamechoice)
        {
            case 1:
            {
                cout << "As the goblin comes around the alter you kick out hard and strike \n";
                cout << "his knee, and with a loud snap the goblin's knee breaks. His long sword \n";
                cout << "clatters to the floor as he screams in pain. As the goblin falls you can \n";
                cout << "either finish him or just take his sword and search the chaple for survivors.\n\n";

                cout << "1: Finish Him\n2: Search\n\n";

                gamechoice = yourchoice(1, 2);

                switch(gamechoice)
                {
                    case 1:
                    {
                        cout << "With the goblin falling foward you kick hard again, striking him on\n";
                        cout << "the bottom of his nose. Blood spurts from the broken nose as he reels backwards\n";
                        cout << "and falls dead on it's back.\n";
                        system ("pause");
                        cout << endl;
                        break;
                    }

                    case 2:
                    {
                        cout << "The goblin howls with anger and pain as you pick up his sword.\n";
                        cout << "Looking down at the goblin you just shake your head in disgust.\n";
                        system ("pause");
                        break;
                    }

                }
                break;
            }

            case 2:
            {
                cout << "You charge in to the goblin and smash him against the wall. \n";
                cout << "Once you step back from the goblin it slides down the wall unconscious. \n";
                cout << "Shaking your head in disgust, you pick up his sword and head into the chaple.\n";
                system("pause");
                break;
            }
        }
        break;
    }

    case 2:
    {
        cout << "As thhe goblin comes around the healing alter you quickly leap\n";
        cout << "over it and dash down the hall. Half way down you feel a stabbing in your \n";
        cout << "chest, looking down you see the tip of an arrow sticking out. \n";
        system ("pause");
        system ("cls");
        stopgame = true;

        system ("color 0C");
        cout << "\t\t\t\tGAME OVER!!!!";
    }
}

cout << "Time to search for Elethan.\n";
system ("pause");

while(stopgame == false)
{

    while(Level == 1)
    {
        system ("color F8");
        system("cls");

        for (int y = 0; y < 20; y++)
        {
            cout << Map[y] << endl;
        }
        for (int y = 0; y < 20; y++)
        {
            for (int x = 0; x < 20; x++)
            {
                switch (Map[y][x])
                {
                    case '#':
                    {
                        Map[y][x] = 219;
                    }

                    case 'P':
                    {
                        if (GetAsyncKeyState(VK_UP) != 0)
                        {
                            int y2 = (y-1);

                            switch (Map[y2][x])
                            {
                                 case ' ':
                                 {
                                     Map[y][x] = ' ';
                                     y -= 1;
                                     Map[y2][x] = 'P';

                                 srand (time(0));

                                 int randombattle = rand();

                                 int battle = (randombattle % 50) +1;

                                 if (battle >= 39)
                                 {
                                     Level = 2;
                                     system ("cls");
                                 }
                                 } break;

                                 case 'B':
                                 {
                                    Level = 3;
                                    system ("cls");
                                 }break;

                                 case 'C':
                                 {
                                     cout << name << " has found a chest.\n";
                                     cout << "You have found a 4 Potions\n";
                                     item = 4;
                                     system ("PAUSE");
                                     Level = 4;
                                 }
                            }
                        }

                        if (GetAsyncKeyState(VK_DOWN) != 0)
                        {
                            int y2 = (y + 1);

                            switch (Map[y2][x])
                            {
                                case ' ':
                                {
                                    Map[y][x] = ' ';
                                    y += 1;
                                    Map[y2][x] = 'P';

                                 srand (time(0));

                                 int randombattle = rand();

                                 int battle = (randombattle % 50) +1;

                                 if (battle >= 40)
                                 {
                                     Level = 2;
                                     system ("cls");
                                 }
                                 } break;

                                 case 'B':
                                 {
                                    Level = 3;
                                    system ("cls");
                                 }break;

                                 case 'C':
                                 {
                                     cout << name << " has found a chest.\n";
                                     cout << "You have found a Potion\n";
                                     item = 4;
                                     system ("PAUSE");
                                     Level = 4;
                                     }

                            }
                        }

                        if (GetAsyncKeyState(VK_RIGHT) != 0)
                        {
                            int x2 = (x + 1);

                            switch (Map[y][x2])
                            {
                                case ' ':
                                {
                                    Map[y][x] = ' ';
                                    x += 1;
                                    Map[y][x2] = 'P';

                                 srand (time(0));

                                 int randombattle = rand();

                                 int battle = (randombattle % 50) +1;

                                 if (battle >= 40)
                                 {
                                     Level = 2;
                                     system ("cls");
                                 }
                                 } break;

                                 case 'B':
                                 {
                                    Level = 3;
                                    system ("cls");
                                 }break;

                                 case 'C':
                                 {
                                     cout << name << " has found a chest.\n";
                                     cout << "You have found a Potion\n";
                                     item = 4;
                                     system ("PAUSE");
                                     Level = 4;
                                 }

                            }
                        }

                        if (GetAsyncKeyState(VK_LEFT) != 0)
                        {
                            int x2 = (x - 1);

                            switch (Map[y][x2])
                            {
                                case ' ':
                                {
                                    Map[y][x] = ' ';
                                    x -= 1;
                                    Map[y][x2] = 'P';

                                 srand (time(0));

                                 int randombattle = rand();

                                 int battle = (randombattle % 50) +1;

                                 if (battle >= 40)
                                 {
                                     Level = 2;
                                     system ("cls");
                                 }
                                 } break;

                                 case 'B':
                                 {
                                    Level = 3;
                                    system ("cls");
                                 }break;

                                 case 'C':
                                 {
                                     cout << name << " has found a chest.\n";
                                     cout << "You have found a Potion\n";
                                     item = 4;
                                     system ("PAUSE");
                                     Level = 4;
                                 }

                            }
                        }

                    } break;
                }
            }
        }
       Sleep(Gamespeed);
    }

    while(Level == 4)
    {
        system ("color F8");
        system("cls");
        n = 1;

        for (int y = 0; y < 20; y++)
        {
            cout << Map2[y] << endl;
        }
        for (int y = 0; y < 20; y++)
        {
            for (int x = 0; x < 20; x++)
            {
                switch (Map2[y][x])
                {
                    case '#':
                    {
                        Map2[y][x] = 219;
                    }

                    case 'P':
                    {
                        if (GetAsyncKeyState(VK_UP) != 0)
                        {
                            int y2 = (y-1);

                            switch (Map2[y2][x])
                            {
                                 case ' ':
                                 {
                                     Map2[y][x] = ' ';
                                     y -= 1;
                                     Map2[y2][x] = 'P';

                                 srand (time(0));

                                 int randombattle = rand();

                                 int battle = (randombattle % 50) +1;

                                 if (battle >= 39)
                                 {
                                     Level = 2;
                                     system ("cls");
                                 }
                                 } break;

                                 case 'B':
                                 {
                                    Level = 3;
                                    system ("cls");
                                 }break;

                                 case 'C':
                                 {
                                     cout << name << " has found a chest.\n";
                                     cout << "You have found a Potion\n";
                                     ++item;
                                 }
                            }
                        }

                        if (GetAsyncKeyState(VK_DOWN) != 0)
                        {
                            int y2 = (y + 1);

                            switch (Map2[y2][x])
                            {
                                case ' ':
                                {
                                    Map2[y][x] = ' ';
                                    y += 1;
                                    Map2[y2][x] = 'P';

                                 srand (time(0));

                                 int randombattle = rand();

                                 int battle = (randombattle % 50) +1;

                                 if (battle >= 40)
                                 {
                                     Level = 2;
                                     system ("cls");
                                 }
                                 } break;

                                 case 'B':
                                 {
                                    Level = 3;
                                    system ("cls");
                                 }break;

                                 case 'C':
                                 {
                                     cout << name << " has found a chest.\n";
                                     cout << "You have found a Potion\n";
                                     ++item;
                                 }

                            }
                        }

                        if (GetAsyncKeyState(VK_RIGHT) != 0)
                        {
                            int x2 = (x + 1);

                            switch (Map2[y][x2])
                            {
                                case ' ':
                                {
                                    Map2[y][x] = ' ';
                                    x += 1;
                                    Map2[y][x2] = 'P';

                                 srand (time(0));

                                 int randombattle = rand();

                                 int battle = (randombattle % 50) +1;

                                 if (battle >= 40)
                                 {
                                     Level = 2;
                                     system ("cls");
                                 }
                                 } break;

                                 case 'B':
                                 {
                                    Level = 3;
                                    system ("cls");
                                 }break;

                                 case 'C':
                                 {
                                     cout << name << " has found a chest.\n";
                                     cout << "You have found a Potion\n";
                                     ++item;
                                 }

                            }
                        }

                        if (GetAsyncKeyState(VK_LEFT) != 0)
                        {
                            int x2 = (x - 1);

                            switch (Map2[y][x2])
                            {
                                case ' ':
                                {
                                    Map2[y][x] = ' ';
                                    x -= 1;
                                    Map2[y][x2] = 'P';

                                 srand (time(0));

                                 int randombattle = rand();

                                 int battle = (randombattle % 50) +1;

                                 if (battle >= 40)
                                 {
                                     Level = 2;
                                     system ("cls");
                                 }
                                 } break;

                                 case 'B':
                                 {
                                    Level = 3;
                                    system ("cls");
                                 }break;

                                 case 'C':
                                 {
                                     cout << name << " has found a chest.\n";
                                     cout << "You have found a Potion\n";
                                     ++item;
                                 }

                            }
                        }

                    } break;
                }
            }
        }
       Sleep(Gamespeed);
    }


    while (Level == 2)
    {
        cout << "\t\t\tBATTLE!!!!\n\n";
        system ("color 7C");
    system ("pause");
    system ("cls");
    system ("color 7E");
    cout << "\t\t Goblin's Hit Points " << ghp << "\n\n\n";
    cout << "\t\t " << name << "'s Hit Points " << php << endl << endl;

    while (true)
    {

        if(choice <= 2)
        {
            cout << "1: Attack \n2: Ability\n3: Item\n";
        }

        if (choice == 3)
        {
            cout << "1: Magic Ball \n2: Magic\n3: Item\n";
        }

        choice2 = getchoice2 (1, 3);

        switch (choice2)
        {
            case 1:
            {
                srand(time(0));

                int randomNumber = rand();

                int attack = (randomNumber % 100) + 1;

            /*this takes the random number generanted and the attack bonus of
            the character you have choosen and then adds them together to make
            your attack score for that round.*/
                attack2 = attack + attack1;

                if (attack2 >= gdef)
                {

                    ghp = ghp - damage;
                    cout << "Goblin has been hit!\n";
                    cout << "The Goblin has taken " << damage << " points of damage!\n\n";
                    cout << "\t\t Goblin's Hit Ponits: " << ghp << endl << endl << endl;
                }

                else
                {
                    cout << name << " has missed the target!\n\n";
                    cout << "\t\t Goblin's Hit Points: " << ghp << "\n\n\n";
                }

                break;
            }
            case 2:
            {
                if (choice == 1)
                {
                    cout << "1: Tornado Stike \n";
                    cout << "2: Death Blow \n";
                }

                if (choice == 2)
                {
                    cout << "1: Splinter Shot \n";
                    cout << "2: Vital Shot \n";
                }

                if (choice == 3)
                {
                    cout << "1: Dual Magic Ball \n";
                    cout << "2: Death \n";
                }

                choice3 = getchoice3(1, 2);

                switch (choice3)
                {
                    case 1:
                    {
                        if (choice == 1 && choice3 == 1)
                        {
                            cout << name << " uses Tornado Strike!\n";
                        }

                        if (choice == 2 && choice3 == 1)
                        {
                            cout << name << " uses Splinter Shot!\n";
                        }

                        if (choice == 3 && choice3 == 1)
                        {
                            cout << name << " uses Dual Magic Ball!\n";
                        }

                        srand(time(0));

                        int randomNumber = rand();

                        int attack = (randomNumber % 100) + 1;

                        if (attack >= gdef)
                        {
                            ghp = ghp - (2 * damage);
                            cout << "Goblin has been hit!\n";
                            cout << "Goblin has taken " << (2 * damage) << " points of damage!\n\n";
                            cout << "\t\t Goblin's Hit Points: " << ghp << "\n\n\n";
                        }

                        else
                        {
                            cout << name << " has missed the target!" << endl << endl;
                            cout << "\t\t Goblin's Hit Points: " << ghp << "\n\n\n";
                        }

                        break;
                    }
                    case 2:
                    {
                        if (choice == 1 && choice3 == 2)
                        {
                            cout << name << " uses Death Blow!\n";
                        }

                        if (choice == 2 && choice3 == 2)
                        {
                            cout << name << " uses Vital Shot!\n";
                        }

                        if (choice == 3 && choice3 == 2)
                        {
                            cout << name << " uses Death!\n";
                        }

                        srand(time(0));

                        int instantdeath = rand();

                        int attack = (instantdeath % 10) + 1;

                        if(attack >= 8)
                        {
                            cout << "The Goblin has been slain!\n\n";
                            ghp = 0;
                            system ("PAUSE");
                        }

                        else
                            cout << name << " has missed the Goblin.\n\n";

                        break;
                    }
                }
                break;
            }
            case 3:
            {
                if(item > 0)
                {
                    cout << name << " has used a potion.\n\n";
                    php = php + potion;
                    --item;
                    cout << "100 HP restored!\n\n";
                }

                else
                    cout << name << " has  no potions to use.\n\n";
            }
            break;
        }

        if (ghp <= 0)
        {
            break;
        }

        /*goblins turn*/
        srand(time(0));

        int Randomnumber = rand();

        int gchoice = (Randomnumber % 50) + 1;

        if(gchoice <= 25)
        {
            srand(time(0));

            int randomNumber = rand();

            int attack = (randomNumber % 100) + 1;

            if (attack >= def)
            {
                php = php - gdamage;
                cout << name << " has been hit!\n";
                cout << name << " has taken " << gdamage << " points of damage!\n\n";
                cout << "\t\t " << name << "'s Hit Ponits: " << php << endl << endl << endl;
            }

            else
                cout << "Goblin has missed " << name << "!\n\n";
                cout << "\t\t " << name << "'s Hit Ponits: " << php << "\n\n\n";
        }

        if (gchoice > 25)
        {
            srand(time(0));

            int Randomnumber = rand();

            int gchoice2 = (Randomnumber % 50) + 1;

            if (gchoice2 <= 25)
            {
                srand(time(0));

                int randomNumber = rand();

                int attack = (randomNumber % 100) + 1;

                if (attack >= def)
                {
                    cout << "Goblin uses Cross Slash! \n";
                    php = php - (2 * gdamage);
                    cout << name << " has been hit!\n";
                    cout << name <<" has taken " << (2 * gdamage) << " points of damage!\n\n";
                    cout << "\t\t " << name << "'s Hit Points: " << php << "\n\n\n";
                }

                else
                    cout << "Goblin has missed " << name << "!\n\n";
                    cout << "\t\t " << name << "'s Hit Ponits: " << php << "\n\n\n";

            }

            if (gchoice > 25)
            {
                cout << "Goblin uses Goblin Punch!\n";
                php = php - 20;
                cout << name << " has been hit!\n";
                cout << name << " has taken 20 points of damage!\n\n";
                cout << "\t\t " << name << "'s Hit Points: " << php << "\n\n\n";
            }
        }

        if (php <= 0)
        {
            break;
        }
    }

    if (ghp <= 0)
    {
        system("cls");
        cout << name << " is the victor!\n";

        if (choice == 1)
        {
            php = 500;
        }

        if (choice == 2)
        {
            php = 400;
        }

        if (choice == 3)
        {
            php = 300;
        }
        if (n == 0)
        {
            Level = 1;
        }

        if (n == 1)
        {
            Level = 4;
        }
            ghp = 500;

    system ("PAUSE");

    if (php <= 0)
    {
        cout << name << " has been slain!\n";
        cout << "By a goblin really?\n";
        cout << name << " you really suck.\n";
        system("PAUSE");
        Level = 0;
        stopgame = true;
    }

    }
    }

    while(Level == 3)
        {
            elethan();
            system ("pause");
            system ("cls");

                   cout << "\t\t\tBOSS BATTLE!!!!\n\n";
                   system ("color 7C");
    system ("pause");
    system ("cls");
    system ("color 7E");
    int death = 1;
    cout << "\t\t Goblin Chief's Hit Points " << bghp << "\n\n\n";
    cout << "\t\t " << name << "'s Hit Points " << php << endl << endl;

    while (true)
    {

        if(choice <= 2)
        {
            cout << "1: Attack \n2: Ability\n3: Item\n";
        }

        if (choice == 3)
        {
            cout << "1: Magic Ball \n2: Magic\n3: Item\n";
        }

        choice2 = getchoice2 (1, 3);

        switch (choice2)
        {
            case 1:
            {
                srand(time(0));

                int randomNumber = rand();

                int attack = (randomNumber % 100) + 1;

            /*this takes the random number generanted and the attack bonus of
            the character you have choosen and then adds them together to make
            your attack score for that round.*/
                attack2 = attack + attack1;

                if (attack2 >= bgdef)
                {

                    bghp = bghp - damage;
                    cout << "Goblin Chief has been hit!\n";
                    cout << "The Goblin Chief has taken " << damage << " points of damage!\n\n";
                    cout << "\t\t Goblin Chief's Hit Ponits: " << bghp << endl << endl << endl;
                }

                else
                {
                    cout << name << " has missed the target!\n\n";
                    cout << "\t\t Goblin Chief's Hit Points: " << bghp << "\n\n\n";
                }

                break;
            }
            case 2:
            {
                if (choice == 1)
                {
                    cout << "1: Tornado Stike \n";
                    cout << "2: Death Blow \n";
                }

                if (choice == 2)
                {
                    cout << "1: Splinter Shot \n";
                    cout << "2: Vital Shot \n";
                }

                if (choice == 3)
                {
                    cout << "1: Dual Magic Ball \n";
                    cout << "2: Death \n";
                }

                choice3 = getchoice3(1, 3);

                switch (choice3)
                {
                    case 1:
                    {
                        if (choice == 1 && choice3 == 1)
                        {
                            cout << name << " uses Tornado Strike!\n";
                        }

                        if (choice == 2 && choice3 == 1)
                        {
                            cout << name << " uses Splinter Shot!\n";
                        }

                        if (choice == 3 && choice3 == 1)
                        {
                            cout << name << " uses Dual Magic Ball!\n";
                        }

                        srand(time(0));

                        int randomNumber = rand();

                        int attack = (randomNumber % 100) + 1;

                        if (attack >= bgdef)
                        {
                            bghp = bghp - (2 * damage);
                            cout << "Goblin Chief has been hit!\n";
                            cout << "Goblin Chief has taken " << (2 * damage) << " points of damage!\n\n";
                            cout << "\t\t Goblin Chief's Hit Points: " << bghp << "\n\n\n";
                        }

                        else
                        {
                            cout << name << " has missed the target!" << endl << endl;
                            cout << "\t\t Goblin Chief's Hit Points: " << bghp << "\n\n\n";
                        }

                        break;
                    }
                    case 2:
                    {
                        if (choice == 1 && choice3 == 2)
                        {
                            cout << name << " uses Death Blow!\n";
                        }

                        if (choice == 2 && choice3 == 2)
                        {
                            cout << name << " uses Vital Shot!\n";
                        }

                        if (choice == 3 && choice3 == 2)
                        {
                            cout << name << " uses Death!\n";
                        }

                        srand(time(0));

                        int randomNumber = rand();

                        int attack = ((randomNumber % 10) + 1);

                        if (death = 0)
                        {
                            if (attack >= 8)
                            {
                                bghp = 0;
                                cout << "The Goblin Chief has been slain!\n\n";
                            }

                            else
                                cout << name << " has missed the target!\n\n";
                        }

                        else
                            cout << "Goblin Chief is unphased.\n\n";

                        break;
                    }
                }
                break;
            }

            case 3:
            {
                if(item > 0)
                {
                    cout << name << " has used a potion.\n";
                    php = php + potion;
                    --item;
                    cout << "100 HP restored!\n\n";
                }

                else
                    cout << name << " has  no potions to use.\n\n";
            }
            break;
        }

        if (bghp <= 0)
        {
            break;
        }

        /*goblins turn*/
        srand(time(0));

        int Randomnumber = rand();

        int gchoice = (Randomnumber % 50) + 1;

        if(gchoice <= 25)
        {
            srand(time(0));

            int randomNumber = rand();

            int attack = (randomNumber % 100) + 1;

            if (attack >= def)
            {
                php = php - gdamage;
                cout << name << " has been hit!\n";
                cout << name << " has taken " << gdamage << " points of damage!\n\n";
                cout << "\t\t " << name << "'s Hit Ponits: " << php << endl << endl << endl;
            }

            else
                cout << "Goblin Chief has missed " << name << "!\n\n";
                cout << "\t\t " << name << "'s Hit Ponits: " << php << "\n\n\n";
        }

        if (gchoice > 25)
        {
            srand(time(0));

            int Randomnumber = rand();

            int gchoice2 = (Randomnumber % 50) + 1;

            if (gchoice2 <= 25)
            {
                srand(time(0));

                int randomNumber = rand();

                int attack = (randomNumber % 100) + 1;

                if (attack >= def)
                {
                    cout << "Goblin Chief uses Cross Slash! \n";
                    php = php - (2 * gdamage);
                    cout << name << " has been hit!\n";
                    cout << name <<" has taken " << (2 * gdamage) << " points of damage!\n\n";
                    cout << "\t\t " << name << "'s Hit Points: " << php << "\n\n\n";
                }

                else
                    cout << "Goblin Chief has missed " << name << "!\n\n";
                    cout << "\t\t " << name << "'s Hit Ponits: " << php << "\n\n\n";

            }

            if (gchoice > 25)
            {
                cout << "Goblin Cheif uses Goblin Punch!\n";
                php = php - 40;
                cout << name << " has been hit!\n";
                cout << name << " has taken 40 points of damage!\n\n";
                cout << "\t\t " << name << "'s Hit Points: " << php << "\n\n\n";
            }
        }

        if (php <= 0)
        {
            break;
        }
    }

    if (bghp <= 0)
    {
        cout << name << " is the victor!\n";
        system ("PAUSE");
        --monsters;
        Level = 0;

    }

    if (php <= 0)
    {
        cout << name << " has been slain!\n";
        cout << "By a goblin really?\n";
        cout << name << " you really suck.\n";
        system("PAUSE");
        Level = 0;
        stopgame = true;
    }



        }


    if (monsters == 0)
        {
            stopgame = true;
        }

if (stopgame == true && monsters == 0)
{
    system("cls");
    cout << "As the goblin falls to his knees you turn toward Elethan and see him \n";
    cout << "getting to his feet. Just as you are about to speak, Elethan's eyes \n";
    cout << "fill with fear. ";

    if(choice == 1)
    {
        cout << "Reacting on impulse you spin around, bringing\n";
        cout << "your sword up at a diagonal blocking the goblin's\n";
        cout << "hack. As his sword slides off your sword you spin\n";
        cout << "and slash. A soft thud followed by a resounding \n";
        cout << "crash from behind tells you that the goblin is now minus a head.\n\n";
    }

    if (choice == 2)
    {
        cout << "Reacting on impulse you drop your bow and spin around, \n";
        cout << "raising a hand you catch the goblin's wrists stopping \n";
        cout << "the incoming hack. With a quick lunge forward you snatch\n";
        cout << "the goblins dagger from his belt and thrust it between his \n";
        cout << "ribs deep into his heart. With a slight push he falls with\n";
        cout << "a resounding crash.\n/n";
    }

    if (choice == 3)
    {
        cout << "Reacting on impusle you spin around and raise both your \n";
        cout << "hands, forming the flames from the sconces into a fire ball\n";
        cout << "as you go. As you face the goblin you release the fire ball\n";
        cout << "into his chest, and watch as the goblin sent out the chapel \n";
        cout << "door brightly lit.\n\n";
    }

    cout << "Elethan:\n";
    cout << name << ", I owe you my life as does everyone in the chapel. \n";
    cout << "Now I know why you were the sole surviver from your ship, you \n";
    cout << "you were meant to save others. Thank you for what you have done,\n";
    cout << "now I must tend to the injured, I sure your journey will take \n";
    cout << "you to others in need. But please come back and visit us from \n";
    cout << "time to time. \n\n";
        system ("pause");
        system ("cls");
        system ("color 02");
        cout << "You have beat the the game, \nCongratulations!";
}

if (stopgame == true && php <= 0)
{
    system ("cls");
    system ("color 7C");
    cout << "\t\t\t\tGAME OVER!!!!!!";
}

}

        return 0;
}





Here is the header code:

#include <iostream>
#include "GameHeader.h"

using namespace std;

void intro (void)
{
    cout << "\t\t\t Dungeon Adventure \n\n";

    cout << "This is the first edition of Chapel Adventure (name will change).\n";
    cout << "In the game you must press the corresponding number to the choice you wish to \n";
    cout << "make and then press enter.\n\n";
    cout << "Map Index\n";
    cout << "B = Boss\nP = Player\nC = Chest\n\n";
}

void story (void)
{
   cout << "    There is a cold chill on your back and your mind is filled with a blank \n";
   cout << "darkness. You can hear voices nearby whispering, but you can not determine \n";
   cout << "what is being said. As you open your eyes they are met by a warm orange glow \n";
   cout << "as if by a fire or candles. Soon as your vision clears a ceiling of stone \n";
   cout << "appears, not rough like a cave but more homey, like a chapel. \n";
   cout << "More and more of your senses return and you become aware of a dull pain \n";
   cout << "throughout most of your body. You raise your head and let out a groan as your \n";
   cout << "vision blurs and your head swims. Raising a hand to your head you feel a \n";
   cout << "bandage wrapped around your forehead. The voices have stopped and now the \n";
   cout << "the sound of foot steps from the left meets your ears. A hand gently forces \n";
   cout << "you to lay back down. \n\n";
   cout << "???: \n";
   cout << "Please don't try to get up, your wounds are still healing from your accident. \n";
   cout << "Your head was injured pretty badly, you are lucky to be alive. \n\n";
   cout << "Your vision clears as you turn your head to see has spoken to you. Beside you \n";
   cout << "stands an Elven monk with a cup in his hand.\n\n";
   cout << "Elf\n";
   cout << "Here drink this, it will help clear your head and heal some of your numberous \n";
   cout << "wounds. Once you have finished that please tell me your name human.\n\n";
}

void elethan (void)
{
    cout << "At the entrance to the chaple you see Elethan locked in battle with \n";
    cout << "the Goblin Chief. Whether you want to help or not the only way out is through\n";
    cout << "the Goblin Chief. As you near, the goblin charges forward throwing Elethan\n";
    cout << "backwards. Nearing him you can see that Elethan has just had the wind knocked \n";
    cout << "out of him. With the Goblin Chief bearing down on Elethan you step forward and \n";
    cout << "intercept the goblin. \n\n";
}




and here is the last bit of code:

#ifndef GameHeader
#define GameHeader

void intro (void);

void story (void);

void elethan (void);

#endif




Please copy all the code and play my game. There isn't really a story (well to me my "story" sucks) and it is the most basic game I have played. Please offer any ideas for a better story, how to improve the game, or how to clean up the code a bit. Also please rate the game and story on a scale of 1 to 10. When time allows for it I will be trying to add audio and graphics, and with any luck maybe some scenes (though that is most likely some way down the game development road) to improve it. Thanks for all the help and support all of you have give me! :)/>

Is This A Good Question/Topic? 0
  • +

Replies To: Done At Last

#2 macosxnerd101  Icon User is online

  • Self-Trained Economist
  • member icon




Reputation: 10568
  • View blog
  • Posts: 39,126
  • Joined: 27-December 08

Re: Done At Last

Posted 08 May 2013 - 04:09 PM

Moved to Share Your Project.
Was This Post Helpful? 0
  • +
  • -

#3 modi123_1  Icon User is online

  • Suitor #2
  • member icon



Reputation: 9208
  • View blog
  • Posts: 34,589
  • Joined: 12-June 08

Re: Done At Last

Posted 08 May 2013 - 04:39 PM

By chance would you tell us where to copy and paste the code? What I need to setup to run this game? Speaking of - any screen shots?
Was This Post Helpful? 0
  • +
  • -

#4 jimblumberg  Icon User is online

  • member icon


Reputation: 4074
  • View blog
  • Posts: 12,568
  • Joined: 25-December 09

Re: Done At Last

Posted 08 May 2013 - 04:50 PM

Quote

Please copy all the code and play my game.

Sorry but your game won't compile for me, it barfs at this line:
#include <windows.h>


Jim
Was This Post Helpful? 0
  • +
  • -

#5 Delacar  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 39
  • Joined: 31-July 12

Re: Done At Last

Posted 09 May 2013 - 03:24 AM

View Postjimblumberg, on 08 May 2013 - 06:50 PM, said:

Quote

Please copy all the code and play my game.

Sorry but your game won't compile for me, it barfs at this line:
#include <windows.h>


Jim


Hi Jim, you say that it wouldn't compile for you? That is strange it compiled in my IDE (I used Codeblocks). Let me ask you some questions, first, did you make a console application (probably should have mentioned that in my post :oops:/>/> ) and paste in the code, and second, what compiler did you use (I know that it shouldn't matter but I have noticed (like between Visual Studio 2010 Express and codeblocks) some programs won't compile properly with some tweaking). If you have done what asked in my first question then the only thing that I can think of to do is is to change the < around windows.h to quotation marks instead. Hope this helps you guys recreate my game.
Was This Post Helpful? 0
  • +
  • -

#6 jimblumberg  Icon User is online

  • member icon


Reputation: 4074
  • View blog
  • Posts: 12,568
  • Joined: 25-December 09

Re: Done At Last

Posted 09 May 2013 - 07:37 AM

The line I posted should give you a good indication of why it doesn't work for me.

Quote

did you make a console application (probably should have mentioned that in my post :oops:/>/> ) and paste in the code,

Yes.

Quote

what compiler did you use

I used g++ version 4.8.0, although the version really doesn't matter. Also note that Code::Blocks is an Integrated Development Environment (IDE) not a compiler.

Quote

If you have done what asked in my first question then the only thing that I can think of to do is is to change the < around windows.h to quotation marks instead.

Changing the <> to " " wouldn't help. The <> are the correct solution.

Have you figured out my problem yet?

One of the biggest things you left off is the operating system you require for your program to run. Since you use so many operating system specific items you really should specify the operating system. You know not everyone uses the same operating systems. For example I don't do Windows, so your operating system specific header is not present on my machine. Also most of your system() calls won't work on my machine. By the way using system() calls is considered a very bad practice and many Windows anti-virus programs report programs using these calls as possible malicious software. Since your using Windows you should investigate the Windows API for functions to replace these system calls.

Jim
Was This Post Helpful? 1
  • +
  • -

#7 Delacar  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 39
  • Joined: 31-July 12

Re: Done At Last

Posted 09 May 2013 - 03:02 PM

View Postjimblumberg, on 09 May 2013 - 09:37 AM, said:

The line I posted should give you a good indication of why it doesn't work for me.

Quote

did you make a console application (probably should have mentioned that in my post :oops:/>/>/>/> ) and paste in the code,

Yes.

Quote

what compiler did you use

I used g++ version 4.8.0, although the version really doesn't matter. Also note that Code::Blocks is an Integrated Development Environment (IDE) not a compiler.

Quote

If you have done what asked in my first question then the only thing that I can think of to do is is to change the < around windows.h to quotation marks instead.

Changing the <> to " " wouldn't help. The <> are the correct solution.

Have you figured out my problem yet?

One of the biggest things you left off is the operating system you require for your program to run. Since you use so many operating system specific items you really should specify the operating system. You know not everyone uses the same operating systems. For example I don't do Windows, so your operating system specific header is not present on my machine. Also most of your system() calls won't work on my machine. By the way using system() calls is considered a very bad practice and many Windows anti-virus programs report programs using these calls as possible malicious software. Since your using Windows you should investigate the Windows API for functions to replace these system calls.

Jim


I'm such a dolt, I completely forgot that there are other operating system's. Yes, I used windows, unfortunately I have only used windows and don't know any type of coding for any other operating system. I am a (for all practical purposes) beginner (or even lower haha). I am unfamiliar with g++, so I don't know how it works or anything like that. As to what you said about the Windows anti-virus programs I didn't have a problem (I'm using Microsoft Security Essentials and Malwarebytes), but I was using codeblocks and used the built in compiler to test it out. However, thanks for pointing out a very bad practice and a suggestion on how to fix it. I wish that that I could tell you a way to fix it so you play my game, but I don't sorry. Maybe someone with more coding experience can help you, as to my experience I have been coding on and off roughly for a year (if you add up all hours I have spent coding I might have 10 months worth experience but most of my learning is of the code in the game). Once again sorry for not being much help.
Was This Post Helpful? 0
  • +
  • -

#8 andrewsw  Icon User is offline

  • Fire giant boob nipple gun!
  • member icon

Reputation: 3480
  • View blog
  • Posts: 11,875
  • Joined: 12-December 12

Re: Done At Last

Posted 09 May 2013 - 03:13 PM

I'm no expert but it appears windows.h is for all the system() calls, but all they do is pause, clear the screen or set a colour. I assume you could remove windows.h and find the os-independent methods to pause, etc.. Would cin.get() replace system("pause")?

Quote

To use cin.get() to pause execution, you might have to call cin.sync() first.

This post has been edited by andrewsw: 09 May 2013 - 03:15 PM

Was This Post Helpful? 0
  • +
  • -

#9 Delacar  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 39
  • Joined: 31-July 12

Re: Done At Last

Posted 10 May 2013 - 03:58 AM

View Postandrewsw, on 09 May 2013 - 05:13 PM, said:

I'm no expert but it appears windows.h is for all the system() calls, but all they do is pause, clear the screen or set a colour. I assume you could remove windows.h and find the os-independent methods to pause, etc.. Would cin.get() replace system("pause")?

Quote

To use cin.get() to pause execution, you might have to call cin.sync() first.


Hi andrewsw, I have never used or seen the cin.get() code, so I'm not sure if it would work. As to the windows.h, that has to stay in the code because it allows for the use of the arrow keys on the key board (I follow a tutorial and used it to build my maps). Thanks for the suggestion, I'll have to look into that:)
Was This Post Helpful? 0
  • +
  • -

#10 jimblumberg  Icon User is online

  • member icon


Reputation: 4074
  • View blog
  • Posts: 12,568
  • Joined: 25-December 09

Re: Done At Last

Posted 10 May 2013 - 06:58 AM

Quote

I'm no expert but it appears windows.h is for all the system() calls, but all they do is pause, clear the screen or set a colour. I assume you could remove windows.h and find the os-independent methods to pause, etc.. Would cin.get() replace system("pause")?


The system() function is defined in the <cstdlib> include file so that should not be an issue with the system() call. The calls probably won't produce the desired results on any operating system other than Windows, but that's another issue altogether.

The <windows.h> include file is required for the API calls being made in main():
                        if (GetAsyncKeyState(VK_DOWN) != 0)
 ...

                                 srand (time(0));

The GetAsyncKeyState() function is part of the Windows API so <windows.h> would be required for this.

I also noticed that you are calling srand() multiple times in your program. That is usually a problem. This function should probably only be called once and only once in your program. If you call this function multiple times you reseed the random number generator each time and if you call it too fast you won't get any randomness in your numbers,

Your program could also use quite a few additional functions, your main() is much too long in my opinion. And since this program, at this time, is just using main() there is probably not a good reason to be using the global variables.

Oh, and by the way I wasn't really concerned that I couldn't run your game. I was just trying to show you that you should inform people of the requirements for your game. In this case you should be informing them of the compilers that you have tested with your program and the operating system you have used. Remember, when you use operating system specific functions like Sleep(), GetAsyncKeyState() you limit yourself to this one operating system.

If you truly want to make this program so anyone can compile and use on any operating system you'll need to find and use a library that is available on the various operating systems. For example curses/ncurses/PDcurses has been ported to Windows (PDcurses), and works with Linux and I believe OSX.



Jim

This post has been edited by jimblumberg: 10 May 2013 - 07:45 AM

Was This Post Helpful? 1
  • +
  • -

#11 Delacar  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 39
  • Joined: 31-July 12

Re: Done At Last

Posted 12 May 2013 - 11:16 AM

View Postjimblumberg, on 10 May 2013 - 08:58 AM, said:

Quote

I'm no expert but it appears windows.h is for all the system() calls, but all they do is pause, clear the screen or set a colour. I assume you could remove windows.h and find the os-independent methods to pause, etc.. Would cin.get() replace system("pause")?


The system() function is defined in the <cstdlib> include file so that should not be an issue with the system() call. The calls probably won't produce the desired results on any operating system other than Windows, but that's another issue altogether.

The <windows.h> include file is required for the API calls being made in main():
                        if (GetAsyncKeyState(VK_DOWN) != 0)
 ...

                                 srand (time(0));

The GetAsyncKeyState() function is part of the Windows API so <windows.h> would be required for this.

I also noticed that you are calling srand() multiple times in your program. That is usually a problem. This function should probably only be called once and only once in your program. If you call this function multiple times you reseed the random number generator each time and if you call it too fast you won't get any randomness in your numbers,

Your program could also use quite a few additional functions, your main() is much too long in my opinion. And since this program, at this time, is just using main() there is probably not a good reason to be using the global variables.

Oh, and by the way I wasn't really concerned that I couldn't run your game. I was just trying to show you that you should inform people of the requirements for your game. In this case you should be informing them of the compilers that you have tested with your program and the operating system you have used. Remember, when you use operating system specific functions like Sleep(), GetAsyncKeyState() you limit yourself to this one operating system.

If you truly want to make this program so anyone can compile and use on any operating system you'll need to find and use a library that is available on the various operating systems. For example curses/ncurses/PDcurses has been ported to Windows (PDcurses), and works with Linux and I believe OSX.



Jim


Thanks for the tip on system specific functions. My plan is to eventually make a game that any os can play and some console games like ps3, xbox, and wii, but my experience in coding is low and all I have done is windows code. I have played many games, but the type of games I want to make is RPGs like Final Fantasy. As to using srand() so many times it was the only way that I knew to make A: a random battle, B: give the player's attacks a chance of missing, and C: give the monster's attacks a chance of missing. If you have any tips on how to give randomness for the actions I mentioned that would be great:)
Was This Post Helpful? 0
  • +
  • -

#12 jimblumberg  Icon User is online

  • member icon


Reputation: 4074
  • View blog
  • Posts: 12,568
  • Joined: 25-December 09

Re: Done At Last

Posted 13 May 2013 - 08:03 AM

You should only call srand() once, usually at the beginning of main(). This function seeds() the random number generator, then you call rand to get your random numbers.

Jim
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1