// umm... roflmaozedong
//Harry Potter Fanfiction Adventure - rated T for suggestive themes and content
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
    int answer;
    int brilliantnerdysolution;
    string clubname;
    string enemyclubname;
    srand((unsigned)time(0));
    int problem = rand() % (5 - 1 + 1) + 1;
    
    cout << "Time for a Harry Potter fanfiction adventure! This time, you are\n";
    cout << "the author of several of these brilliant masterpieces. (Although,\n";
    cout << "if you are playing this game, then I am assuming this isn't your maiden\n"; // if you know what a maiden is
    cout << "voyage into the realm of fantasy, role-playing, and perpetual solitude.)\n";
    cin.get();
    cout << "Let's get started! What is the name of your fan-fiction club?\n";
    cout << "1. Dumbledore's Army\n"; // canon
    cout << "2. The Real"/* as in, real life? */ " Malfoys\n";// not canon
    cin >> answer;
    if (answer == 1)
    {
                 clubname = "Dumbledore's Army";
                 enemyclubname = "The Real Malfoys";
    }
    else
    {
                 clubname = "The Real Malfoys";
                 enemyclubname = "Dumbledore's Army";
                 }
    cout << "Wow. " << clubname << "? That's pretty lame. I guess I'm no one to judge...\n"; // i am the one writing this thing.
    cin.get();
    cout << "Whatever. So guess what happens! Right when you were about to publish some\n";
    cout << "of your unauthorized improvements to J.K. Rowling's popular and universally\n";
    cout << "translated series, disaster strikes!\n";
    cin.get();
    if (problem == 1)
    {
                cout << enemyclubname << " is 'uckin' with yo' shi'!\n";
                cout << "MERLIN'S ANUS! It's a dungbomb outside your common room! The Hippogriffs\n";
                cout << "will be most displeased! What are you going to do?\n";
                cin.get();
problem1:
                cout << "1. Try to smooth things over with the Hippogrifi\n";
                cout << "2. Attempt to disarm the dungbomb\n";
                cout << "3. Get a life. The Hippogree are just Beanie Babies and\n";
                cout << "the dungbomb is a softball.\n";
                cin >> brilliantnerdysolution;
                if (brilliantnerdysolution == 1)
                {
                                           cout << "As you expected, the Hippo's Griffs are not happy about\n";
                                           cout << "the foul-smelling odor of the dungbomb. Heck if they care that\n";
                                           cout << "the blame belongs to " << enemyclubname << "! Hippopotamuses have\n";
                                           cout << "never been reasonable, always quick to anger. If only\n";
                                           cout << "Mundungus Fletcher were here...\n";
                                           cin.get();
                                           cin.get();
                                           cout << "Their hot temper causes them to strike. Without the sword of Gryffindor or the\n";
                                           cout << "sacred arm of Ron Weasley, you are defenseless.\n";
                                           cout << "GAME OVER.\n";
                                           goto end;
                }
                else if (brilliantnerdysolution == 2)
                {
                                                cout << "Thanks to user mrsarthurweasley352's how-to article,\n";
                                                cout << "'How To Disarm a Dungbomb,'\n";
                                                cout << "you believe you are qualifed to do the very same.\n";
                                                cout << "You consider getting an MMORPG e-marriage to her, but then realize she's\n";
                                                cout << "already married to Arthur Weasley. Unless by\n";
                                                cout << "some coincidence her name is Arthur... weirder things have happened.\n";
                                                cin.get();
                                                cin.get();
                                                cout << "No amount of fan literature could have prepared you for the stress\n";
                                                cout << "involved in attempting to disarm the nuisance. You thank the nargles that\n";
                                                cout << "Moaning Myrtle isn't there to see you in this state.\n";
                                                cin.get();
                                                cin.get();
                                                cout << "Assembling a rudimentary disarming solution out of cat's hair, mom's hair,\n";
                                                cout << "and thin air, you manage to disarm the bomb!\n";
                                                cin.get();
                                                cin.get();
                                                cout << "Too bad you already smell like dung, having not showered in days.\n";
                                                cout << "A necessary sacrifice - the stirring conclusion\n";
                                                cout << "to your Cedric Diggory/Edward Cullen porno crossover is now ready for\n";
                                                cout << "mainstream consumption! YOU WIN!\n";
                                                goto end;
                }
                else
                {
                                                cout << "You're in too deep for a reality check now, bud.\n";
                                                cin.get();
                                                cin.get();
                                                goto problem1;
                }
    }
    else if (problem == 2)
    {
         cout << "Oh no! It seems as if " << enemyclubname << " has commissioned\n";
         cout << "Goblin mercenaries to steal your energy drinks!\n";
         cout << "'Precious nectar of life!' you exclaim, awkwardly. 'Thou hast\n";
         cout << "relieved me of mine Patronus, the Mountain Dew can!'\n";
         cin.get();
         cin.get();
problem2:
         cout << "What will you do to thwart this Mudblood sabotage?\n";
         cout << "1. Cast Sectumsempra\n";
         cout << "2. Take Felix Felicis\n";
         cout << "3. Throw away your troll dolls for once. You're 27 years old.\n";
         cin >> brilliantnerdysolution;
         if (brilliantnerdysolution == 1)
         {
            cout << "'Sectumsempra!' you shout. However, the gashes and wounds you hope to create\n";
            cout << "in your foes do not appear, as you have been blocked by a rival wizard.\n";
            cin.get();
            cin.get();
            cout << "'I, Severus Snape, am the Half-Blood Prince and I deny your usage\n";
            cout << "of my creepy spell.'\n";
            cout << "Cursing " << enemyclubname << " for their lack of canon\n";
            cout << "at allowing Snape to join, you watch helplessly as the well-groomed\n";
            cout << "troll dolls take your coveted Throwback away.\n";
            cin.get();
            cin.get();
            cout << "You lose. Better luck next time!\n";
            goto end;
         }
         else if (brilliantnerdysolution == 2)
         {
              cout << "Blinded by thirsty rage, you grope around helplessly for\n";
              cout << "your liquid luck. Finding the old pickle jar, you guzzle\n";
              cout << "its vinegary contents.\n";
              cin.get();
              cin.get();
              cout << "All of the sudden, the goblins turns into Zelda, Princess\n";
              cout << "Peach, and Queen Amidala.\n";
              cin.get();
              cout << "Your Mountain Dew turns into a much more romantic bottle of\n";
              cout << "sparkling grape juice.\n";
              cin.get();
              cout << "Your Radio Flyer wagon turns into a limo.\n";
              cin.get();
              cout << "Lastly, your lack of not ugly turns into a lack of a considerable\n";
              cout << "amount of ugly.\n";
              cin.get();
              cout << "'Brown chicken brown cow!' you wail.\n";
              cin.get();
              cout << "'You're not that lucky,' Zelda says. They all vanish. Your\n";
              cout << "Mountain Dew is safe though, and that's the real necessity!\n";
              cout << "Finally, you get your Fred/George homoerotica published. You win!\n";
              goto end;
         }
         else
         {
              cout << "Nope.\n";
              cin.get();
              cin.get();
              goto problem2;
         }
     }
else if (problem == 3)
{
        cout << "Some outsider Lord of the Rings fanboys are trying to ram your\n";
        cout << "door down with a makeshift Hammer of the Underworld. Shuddering at\n";
        cout << "how pathetic and nerdy some people can be, you remember the fantasy\n";
        cout << "food chain: 'Harry Potter > Star Wars > Lord of the Rings > Twilight.'\n";
        cin.get();
        cin.get();
        cout << "All of their nerdiness aside, they must be stopped. They must want to\n";
        cout << "steal your latest work and change 'Ron Weasley' to 'Legolas's body.'\n";
problem3:
        cout << "What can you do?\n";
        cout << "1. Throw some Warhammer 40K Nazgul at them\n";
        cout << "2. Wave your phoenix wand fangoriously\n";
        cout << "3. Call the police\n";
        cin >> brilliantnerdysolution;
        if (brilliantnerdysolution == 1)
        {
                                   cout << "Cringing at what must be done, you realize that\n";
                                   cout << "Hogwarts's greater good is more important than\n";
                                   cout << "your Warhammer models that are so 2005. Not to mention\n";
                                   cout << "that they are just Nazgul and not anything cool like Inferi.\n";
                                   cin.get();
                                   cin.get();
                                   cout << "While your aim is weak and nerdy, four out of the nine\n";
                                   cout << "manage to hit their mark.\n";
                                   cin.get();
                                   cout << "'May the Black Breath come upon you!' you shout with the\n";
                                   cout << "anguish of Smeagol possessed. The sissy LOTR nerds leave,\n";
                                   cout << "their flame of the west forever extinguished. Aragorn is gonna be T.O.'d...\n";
                                   cin.get();
                                   cout << "Congratulations! You win, and can finish off your Ron/Hermione\n";
                                   cout << "dinner date novella!\n";
                                   goto end;
        }
        else if (brilliantnerdysolution == 2)
        {
                                        cout << "Groping around in your pocket, you dig down deep and pull\n";
                                        cout << "out your Harry Potter and the Philosopher's Stone commemorative\n";
                                        cout << "Harry Potter Phoenix Wand Special Edition. You forgive yourself for\n";
                                        cout << "taking it out of the box prematurely.\n";
                                        cin.get();
                                        cin.get();
                                        cout << "Unfortunately, a 6'7'' girl dressed as Aragorn draws her (his?)\n";
                                        cout << "Anduril, the obvious counter to a wand. Such a mighty blade cannot\n";
                                        cout << "be bested. They break into your house, thanks to the might of Grond, and\n";
                                        cout << "steal the rough draft of your Ron Weasley/Hermione Granger dinner and a movie\n";
                                        cout << "plotline. Hermione is in for a rude awakening... Legolas is not a tender lover.\n";
                                        cin.get();
                                        cout << "You lose. Better luck next time.\n";
                                        goto end;
        }
        else
        {
                                        cout << "The police don't respect you and neither does your own mother.\n";
                                        goto problem3;
        }
}         
else if (problem == 4)
{
                      cout << "GASP! Voldy Voldy YOU KNOW WHO is on your doorstep!\n";
                      cout << "Probably because you said his name while singing 'The Mysterious\n";
                      cout << "Ticking Noise!' You curse your lack of a memory, remembering that\n";
                      cout << "the book series was a prediction of a dystopian future and\n";
                      cout << "RL is probably still somewhere in the middle of the 7th one. It's TABOO!\n";
                      cin.get();
                      cin.get();
                      cout << "What can you do?\n";
                      cout << "1. Cruciatus\n";
                      cout << "2. Imperius\n";
                      cout << "3. Avada Kedavra\n";
                      cout << "4. Water hose\n";
                      cin >> brilliantnerdysolution;
                      if (brilliantnerdysolution == 1)
                      {
                                   cout << "Against your better judgement, you cast the unforgivable\n";
                                   cout << "curse, Cruciatus. 'Crucio!' you shriek.\n";
                                   cin.get();
                                   cin.get();
                                   cout << "'You have to mean it!' the old man says, prancing around\n";
                                   cout << "on your patio. 'YOU HAVE TO MEAN IT!!!' he repeats, in all caps\n";
                                   cout << "and with three exclamation points.\n";
                                   cin.get();
                                   cin.get();
                                   cout << "The ordeal is sending you into a panic. His rants remind you too much\n";
                                   cout << "of Bellatrix Lestrange and are especially weird since you have never met\n";
                                   cout << "a 65-year-old fanfictionographer.\n";
                                   cin.get();
                                   cin.get();
                                   cout << "Thinking of Sirius's untimely demise, you curl up into a ball and panic.\n";
                                   cout << "'Voldemort' takes off his pants and runs wild through your neighborhood.\n";
                                   cout << "You lose. Better luck next time.\n";
                                   goto end;
                      }           
                      else if (brilliantnerdysolution == 2)
                      {
                           cout << "Like Harry had to finally do in book 7 (warning, spoiler just happened), you\n";
                           cout << "attempt to cast Imperius. You note that it's kind of like the ending of Push\n";
                           cout << "(warning, spoiler would have happened if anyone saw that movie) by trying to\n";
                           cout << "control the dark wizard's mind.\n";
                           cin.get();
                           cin.get();
                           cout << "Once you think you have established a hold on him, you command him to\n";
                           cout << "jump around, croaking like a bullfrog. To your astonishment, he does just that!\n";
                           cin.get();
                           cin.get();
                           cout << "Amused, you try to turn him into a dog. Unfortunately, the message doesn't\n";
                           cout << "get through to him this time. He jumps through your window and your pet owl,\n";
                           cout << "Dudley, escapes. You realize that he is just crazy and turned into\n";
                           cout << "a frog of his own accord.\n";
                           cin.get();
                           cin.get();
                           cout << "You hope to be like him someday, but for now, YOU LOSE.\n";
                           goto end;
                      }
                      else if (brilliantnerdysolution == 3)
                      {
                           cout << "Shedding a tear for those who have been slain at the dark wizard's\n";
                           cout << "wand, you realize what must be done.\n";
                           cin.get();
                           cin.get();
                           cout << "AVADA!\n";
                           cin.get();
                           cout << "KEDAVRA!\n";
                           cin.get();
                           cout << "Voldemort collapses before your eyes. No horcruxes for this poser!\n";
                           cin.get();
                           cout << "Looking around, you notice " << enemyclubname << " is in the vicinity\n";
                           cout << "'We got you now! We have proof you assaulted the elderly!\n";
                           cin.get();
                           cin.get();
                           cout << "Groaning, you await the police quietly and brace yourself for your\n";
                           cout << "your imminent beatdown. You lose.\n";
                           goto end;
                      }
                      else if (brilliantnerdysolution == 4)
                      {
                           cout << "You look a little closer and realize it's not the legit Voldy,\n";
                           cout << "just some psycho guy that " << enemyclubname << " tricked into harassing you.\n";
                           cin.get();
                           cin.get();
                           cout << "You run around back to get your water hose, but it doesn't reach all the way\n";
                           cout << "to the front door.\n";
                           cin.get();
                           cout << "You decide to lure him into your backyard so then you can scare him away.\n";
                           cout << "'This is a risky undertaking, indeed!' you say, unaware of how lame that\n";
                           cout << "sounded.\n";
                           cin.get();
                           cout << "'Here Voldy Voldy Voldy!' you squeal. The old man heeds your call and leaps\n";
                           cout << "over your fence, landing in a handspring. 'That was weird.' You set the hose\n";
                           cout << "to 'effing jet stream' and let 'er rip!\n";
                           cin.get();
                           cout << "'Arf arf arf!' he howls, and with his tail between his legs, he departs.\n";
                           cin.get();
                           cout << "Not after peeing on your Mom's flowerbed. Oh well, they're not your flowers!\n";
                           cout << "You still win!\n";
                           goto end;
                      }
     }    
else if (problem == 5)
{
                      cout << "You wake up to a mysterious ticking noise! How can you stop it?\n";
problem5:
                      cout << "1. Do a song and dance number with your Hogwarts buddies\n";
                      cout << "2. Throw a pipebomb somewhere\n";
                      cout << "3. Hit the snooze button\n";
                      cin >> brilliantnerdysolution;
                      if (brilliantnerdysolution == 1)
                      {
                                                 cout << "Everyone bursts into song! Love ensues.\n";
                                                 cout << "'Snape. Snape. Severus Snape.' 'DUMBELDORE!'\n";
                                                 cout << "'Hermione.' 'Ron WEASLEY!' 'Harry Potter, uh!\n";
                                                 cin.get();
                                                 cout << "Your elderly nerdy grandpa starts taking his pants off,\n";
                                                 cout << "declaring it to be 'NAKIE TIME!'\n";
                                                 cout << "All heck breaks loose, and there is an explosion of fear\n";
                                                 cout << "amongst the other Hogwarts-goers!\n";
                                                 cin.get();
                                                 cout << "Your mother, dressed as Mrs. Weasley, draws a wand,\n";
                                                 cout << "which is really a gun.\n";
                                                 cin.get();
                                                 cout << "In the ensuing ruckus, you are able to duck out and publish\n";
                                                 cout << "some primo stuff. Snape/Hans Gruber! You hear a gunshot upstairs,\n";
                                                 cout << "but the important matters have been handled. You win!\n";
                                                 goto end;
                      }
                      else if (brilliantnerdysolution == 2)
                      {
                                                      cout << "Deciding to fight fire with fire, you begin to\n";
                                                      cout << "assemble a mysterious ticking noise of your own.\n";
                                                      cout << "Using a spellbook you bought on eBay, you grab a\n";
                                                      cout << "phoenix feather, a one-piece tightsuit of leather\n";
                                                      cout << "and some stormy weather.\n";
                                                      cin.get();
                                                      cin.get();
                                                      cout << "The combination is too volatile! You throw it by some\n";
                                                      cout << "internet and puppets to get it out of your hair.\n";
                                                      cin.get();
                                                      cin.get();
                                                      cout << "Unfortunately, the explosion travels through cyberspace\n";
                                                      cout << "and blows you up all the way to death. Better luck next time.\n";
                                                      goto end;
                      }
                      else
                      {
                                                      cout << "You hit the snooze button on your clock.\n";
                                                      cin.get();
                                                      cout << "Waking up again, the ticking noise is still going.\n";
                                                      goto problem5;
                      }
}
                                                 
end:
    cin.get();
    cin.get();
    return 0; 
}                                            
    
/* well, it's finally done. if you are reading this, feel free to add more battles and upload them
however you want. the syntax is pretty easy to follow, all you have to do is add another number
to the random number generator (e.g. instead of 5, 6. that number increases with the number of battles. leave the 
rest of that function intact. and follow the syntax for the battle programming. just do me a favor
and proofread it and stuff, and try to keep the same tone so it's uniform. if you're someone i don't even know,
especially give credit. -Adam Wisbrock */


