Ejemplo n.º 1
0
 public override TimedMethod[] BasicAttack()
 {
     TimedMethod[] apathyPart;
     if (Attacks.EvasionCheck(Party.GetEnemy(), GetAccuracy()))
     {
         apathyPart = Party.GetEnemy().status.CauseApathy(1);
     }
     else
     {
         apathyPart = new TimedMethod[] { new TimedMethod("Null"), new TimedMethod("Null") };
     }
     TimedMethod[] attackPart;
     Attacks.SetAudio("Cheese", 20);
     if (Party.BagContains(new Metronome()))
     {
         attackPart = Attacks.Attack(this, Party.GetEnemy(), strength + 3, strength + 3, GetAccuracy(), true, true, false);
     }
     else
     {
         attackPart = Attacks.Attack(this, Party.GetEnemy());
     }
     TimedMethod[] moves = new TimedMethod[attackPart.Length + 3];
     moves[0] = new TimedMethod(0, "Audio", new object[] { "Big Swing" });
     attackPart.CopyTo(moves, 1);
     moves[moves.Length - 2] = apathyPart[0];
     moves[moves.Length - 1] = apathyPart[1];
     return(moves);
 }
Ejemplo n.º 2
0
 public override void Enact()
 {
     text = "This desk still holds a secretary. You can barely see the person through flying papers. You hear shouts of \"Patient X's records\"";
     Character[] fight = new Character[] { new SecurityHologram() };
     fight[0].SetPassive(new ForceField(fight[0])); fight[0].GainEvasion(40); fight[0].GainDexterity(2);
     options1 = new LinkedList <TimedMethod>();
     options1.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new BattleEvent(fight, "The secretary shouts \"BEGONE!\""
                                                                                      + " The desk computer's security system activates under the paperwork. You'll have a hard time reaching the machine's core") }));
     optionText1 = "Ask about patient x";
     options2    = new LinkedList <TimedMethod>();
     options2.AddLast(new TimedMethod(0, "DamageAll", new object[] { 2 }));
     options2.AddLast(new TimedMethod(0, "AllStatusChange", new object[] { "Blind", 6 }));
     options2.AddLast(new TimedMethod("Resolve"));
     optionText2 = "Weather the storm of paper (2 damage and blind to party)";
     if (Party.BagContains(new PaperPlane()))
     {
         options3 = new LinkedList <TimedMethod>();
         options3.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new TextEvent("You throw the paper plane just out of the secretary's reach."
                                                                                        + " Now that paper isn't being thrown everywhere, you get through the checkpoint safely and even catch the plane"
                                                                                        + "as the secretary gives up on it") }));
         optionText3 = "Paper Plane: Cause a distraction";
     }
     if (Party.ContainsQuirk(new Overconfident(null)) >= 0)
     {
         options4 = new LinkedList <TimedMethod>();
         options4.AddLast(new TimedMethod(0, "Heal", new object[] { 6 }));
         options4.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new TextEvent(
                                                                              Party.members[Party.ContainsQuirk(new Overconfident(null))].ToString() + " is very sure of their abilities and begins looking."
                                                                              + " Moments later, the secretary exclaims AHA! and stops throwing things around. \"All thanks to me,\" says your party member."
                                                                              + " You have your doubts") }));
         optionText4 = "Overconfident: I can find patient X's paperwork";
     }
 }
Ejemplo n.º 3
0
 public override void Enact()
 {
     text        = "This auditorium is host to a possessed orchestra echoing dissonantly";
     options1    = new LinkedList <TimedMethod>();
     optionText1 = "Walk through normally";
     options1.AddLast(new TimedMethod(0, "GainSP", new object[] { -5 }));
     options1.AddLast(new TimedMethod(0, "AllStatChange", new object[] { "GainDefense", -2 }));
     options1.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new TextEvent("The orchestra notices you and plays a particularly "
                                                                                    + "unnerving and haunting tune the entire way through, speeding up as you start running (SP -5, Party defense -2)") }));
     options2    = new LinkedList <TimedMethod>();
     optionText2 = "FIGHT THE ORCHESTRA";
     Character[] enemies = new Character[] { new Conductor(), new MusicMajor(), new MusicMajor(), new MusicMajor() };
     enemies[1].SetRecruitable(false); enemies[2].SetRecruitable(false); enemies[3].SetRecruitable(false);
     options2.AddLast(new TimedMethod(0, "Battle", new object[] { enemies }));
     if (Party.PartyContains(new MusicMajor()) >= 0)
     {
         options3 = new LinkedList <TimedMethod>();
         options3.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new TextEvent(Party.members[Party.PartyContains(new MusicMajor())].ToString()
                                                                                        + " starts playing with the orchestra, distracting them from the rest of the party long enough to escape the room") }));
         optionText3 = "Music Major: play along";
     }
     if (Party.BagContains(new Tuba()))
     {
         options4 = new LinkedList <TimedMethod>();
         options4.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new TextEvent("The poorly played tuba bounced off the walls."
                                                                                        + " Everyone feels a little deafer, but they didn't have to hear the screeching violins") }));
         optionText4 = "Tuba: Drown out their sound";
     }
 }
 public override void Enact()
 {
     text = "This used to be the dishwashing room, but something's... not right. The lights are off, broken glass is on the floor, and a..."
            + "bubbling is heard from the center";
     options1 = new LinkedList <TimedMethod>();
     Character[] slime = new Character[] { new Slime() };
     slime[0].SetMaxHP(50); slime[0].SetHealth(50); slime[0].SetPower(8); slime[0].SetDefense(-8); slime[0].SetQuirk(new Catalyst(slime[0]));
     options1.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new BattleEvent(slime, "As you near the center of the room, a towering"
                                                                                      + " slime looms in front of you. Prepare yourself") }));
     optionText1 = "There is no other way forward";
     options2    = new LinkedList <TimedMethod>();
     options2.AddLast(new TimedMethod("Escape"));
     optionText2 = "Time to go";
     if (Party.BagContains(new SlimeGoo()))
     {
         options3 = new LinkedList <TimedMethod>();
         Character[] slimes = new Character[] { new Slime(), new Slime(), new Slime(), new Slime() };
         foreach (Character c in slimes)
         {
             c.SetMaxHP(15); c.SetHealth(15); c.SetPower(8); c.SetDefense(-8); c.SetQuirk(new Regeneration(c));
         }
         options3.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new BattleEvent(slimes,
                                                                                          "The slime goo shoots towards the center of the room into a much larger slime. "
                                                                                          + "It has an unstable reaction as the large slime splits into four. Will this be easier than its combined shape?") }));
         optionText3 = "Slime Goo: It calls for its kind";
     }
 }
    public override void Enact()
    {
        text = "The heating of circuits is heard at the far corner of this dark room as you see a robotic version of your school's mascot."
               + " ID cards are strewn about the place. The bot powers up its LASER GUN";
        ItemEvent reward = new ItemEvent(new Item[] { new AccuracyPotion(), new Antibiotics(), new Sword(), new Pizza() }, "It seems "
                                         + "the robot was guarding something important");

        options1 = new LinkedList <TimedMethod>();
        options1.AddLast(new TimedMethod(0, "DamageAll", new object[] { 8 }));
        options1.AddLast(new TimedMethod(0, "CauseEvent", new object[] { reward }));
        optionText1 = "What is behind it? (8 damage to party)";
        options2    = new LinkedList <TimedMethod>();
        options2.AddLast(new TimedMethod(0, "DamageAll", new object[] { 2 }));
        options2.AddLast(new TimedMethod("Resolve"));
        optionText2 = "Scatter and run! (2 damage to party)";
        if (Party.PartyContains(new CJMajor()) >= 0)
        {
            options3 = new LinkedList <TimedMethod>();
            options3.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new TextEvent(Party.members[Party.PartyContains(new CJMajor())].ToString()
                                                                                           + " electrocutes the robot with the tazer before it can fire", reward) }));
            optionText3 = "Criminal Justice Major: fire first";
        }
        if (Party.BagContains(new Exam()))
        {
            options4 = new LinkedList <TimedMethod>();
            options4.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new TextEvent("You present the exam to the robot. Seeing the perfect score,"
                                                                                           + " it powers down, allowing access to the room behind it", reward) }));
            optionText4 = "Exam: present the exam as proof of intelligence";
        }
    }
 public override TimedMethod[] BasicAttack()
 {
     TimedMethod[] healPart = new TimedMethod[] { new TimedMethod("Null"), new TimedMethod("Null") };
     if (Attacks.EvasionCheck(Party.GetEnemy(), GetAccuracy()))
     {
         Heal(2);
         healPart = new TimedMethod[] { new TimedMethod(0, "AudioAfter", new object[] { "Heal", 15 }),
                                        new TimedMethod(0, "CharLogSprite", new object[] { "2", Party.playerSlot - 1, "healing", true }) };
     }
     TimedMethod[] attackPart;
     Attacks.SetAudio("Blunt Hit", 10);
     if (Party.BagContains(new Metronome()))
     {
         attackPart = Attacks.Attack(this, Party.GetEnemy(), strength + 3, strength + 3, GetAccuracy(), true, true, false);
     }
     else
     {
         attackPart = Attacks.Attack(this, Party.GetEnemy());
     }
     TimedMethod[] moves = new TimedMethod[attackPart.Length + 3];
     moves[0] = new TimedMethod(0, "AudioAfter", new object[] { "Small Swing", 10 });
     moves[1] = healPart[0];
     moves[2] = healPart[1];
     attackPart.CopyTo(moves, 3);
     return(moves);
 }
 public override TimedMethod[] BasicAttack()
 {
     System.Random rng = new System.Random();
     TimedMethod[] blindPart;
     if (rng.Next(10) < 6 && Attacks.EvasionCheck(Party.GetEnemy(), GetAccuracy()))
     {
         blindPart = Party.GetEnemy().status.Blind(2);
     }
     else
     {
         blindPart = new TimedMethod[] { new TimedMethod("Null"), new TimedMethod("Null") };
     }
     TimedMethod[] attackPart;
     Attacks.SetAudio("Knife", 15);
     if (Party.BagContains(new Metronome()))
     {
         attackPart = Attacks.Attack(this, Party.GetEnemy(), strength + 3, strength + 3, GetAccuracy(), true, true, false);
     }
     else
     {
         attackPart = Attacks.Attack(this, Party.GetEnemy());
     }
     TimedMethod[] moves = new TimedMethod[attackPart.Length + 3];
     moves[0] = new TimedMethod(0, "Audio", new object[] { "Knife Throw" });
     attackPart.CopyTo(moves, 1);
     moves[moves.Length - 2] = blindPart[0];
     moves[moves.Length - 1] = blindPart[1];
     return(moves);
 }
Ejemplo n.º 8
0
    public override TimedMethod[] BasicAttack()
    {
        System.Random rng = new System.Random();
        TimedMethod[] stunPart;
        if (rng.Next(10) < 5 && Attacks.EvasionCheck(Party.GetEnemy(), GetAccuracy()))
        {
            stunPart = Party.GetEnemy().status.Stun(2);
        }
        else
        {
            stunPart = new TimedMethod[] { new TimedMethod("Null"), new TimedMethod("Null") };
        }
        Democracy castPassive = (Democracy)passive;

        castPassive.attacked = true;
        TimedMethod[] attackPart;
        Attacks.SetAudio("Blunt Hit", 10);
        if (Party.BagContains(new Metronome()))
        {
            attackPart = Attacks.Attack(this, Party.GetEnemy(), strength + 3, strength + 3, GetAccuracy(), true, true, false);
        }
        else
        {
            attackPart = Attacks.Attack(this, Party.GetEnemy());
        }
        TimedMethod[] moves = new TimedMethod[attackPart.Length + 3];
        moves[0] = new TimedMethod(0, "Audio", new object[] { "Big Swing" });
        attackPart.CopyTo(moves, 1);
        moves[moves.Length - 2] = stunPart[0];
        moves[moves.Length - 1] = stunPart[1];
        return(moves);
    }
Ejemplo n.º 9
0
    public override void Enact()
    {
        text = "You find this lab is occupied. Its resident holds up a needle. \"Would you like to have your DNA scrambled for science?"
               + " Of course there's something in it for you, too: this stick of celery\"";
        ItemEvent reward = new ItemEvent(new Item[] { new AccuracyPotion(), new Antibiotics(), new Sword(), new Pizza() }, "It seems "
                                         + "the robot was guarding something important");

        options1 = new LinkedList <TimedMethod>();
        options1.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new SelectMember("Who is the test subject? (will become unstable)",
                                                                                          new TimedMethod[] { new TimedMethod(0, "ChangeQuirk", new object[] { new Unstable(null) }), new TimedMethod(0, "Item", new object[] {
                    new Item[] { new Celery() }
                }) }) }));
        optionText1 = "Accept!";
        options2    = new LinkedList <TimedMethod>();
        options2.AddLast(new TimedMethod("Resolve"));
        optionText2 = "Refuse!";
        if (Party.PartyContains(new PsychMajor()) >= 0)
        {
            options3 = new LinkedList <TimedMethod>();
            options3.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new TextEvent(Party.members[
                                                                                               Party.PartyContains(new PsychMajor())].ToString()
                                                                                           + " cites some book of inhumane activities. The researcher shouts to their peers \"IT'S THE FUZZ! RUN!\"",
                                                                                           new ItemEvent(new Item[] { new Celery(), new MysteryGoo() }, "After they've fled, your party member reveals to not"
                                                                                                         + " actually care about use of the DNA scrambler and invites you to take it with you")) }));
            optionText3 = "Psychology Major: Accuse of immoral expirimentation";
        }
        if (Party.BagContains(new MysteryGoo()))
        {
            options4 = new LinkedList <TimedMethod>();
            options4.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new ItemEvent(new Item[] { new Celery(), new Celery() },
                                                                                           "\"Wow! This is a great insight! You deserve 2 sticks of celery!") }));
            optionText4 = "Mystery Goo: Offer new ingrediants";
        }
    }
Ejemplo n.º 10
0
 public override void Enact()
 {
     text = "You are ambushed! A group of like-dressed people behind you speak in unison: \"We represent the googoo party."
            + " We must stop the meepmeep party from gaining any political power. To get support, we bar any from passing unless they read"
            + " This manifest\n. One waves a 300 page book around";
     options1 = new LinkedList <TimedMethod>();
     options1.AddLast(new TimedMethod(0, "Battle", new object[] { new Character[] { new PoliticalScientist(), new PoliticalScientist(),
                                                                                    new PoliticalScientist(), new PoliticalScientist() } }));
     optionText1 = "They're cultists? (fight)";
     options2    = new LinkedList <TimedMethod>();
     options2.AddLast(new TimedMethod(0, "SpendTime", new object[] { 2 }));
     options2.AddLast(new TimedMethod(0, "Apathize", new object[] { 3 }));
     options2.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new TextEvent("You read the book. It is boring and takes forever."
                                                                                    + " Everyone feels less hope for humanity") }));
     optionText2 = "Read the manifest!";
     if (Party.PartyContains(new PoliticalScientist()) >= 0)
     {
         options3 = new LinkedList <TimedMethod>();
         options3.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new ItemEvent(new Item[] { new Textbook() },
                                                                                        Party.members[Party.PartyContains(new PoliticalScientist())].ToString() + " speaks a string of gibberish."
                                                                                        + " The group says \"googoo forever, comrade.\" You receive a copy of the manifest") }));
         optionText3 = "Political Scientist: I know a secret message";
     }
     if (Party.BagContains(new VotedBadge()))
     {
         options4 = new LinkedList <TimedMethod>();
         options4.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new TextEvent("\"Oh. Buzz off. Who votes early like that? Lame.\""
                                                                                        + " The group walks off to bother someone else") }));
         optionText4 = "VotedBadge: We voted already";
     }
 }
    public override TimedMethod[] BasicAttack()
    {
        TimedMethod guardPart = new TimedMethod("Null");

        if (Attacks.EvasionCheck(Party.GetEnemy(), GetAccuracy()))
        {
            guardPart = new TimedMethod(0, "CharLogDelay", new object[] { "-1", Party.enemySlot - 1, "guard", false });
            Party.GetEnemy().GainGuard(-1);
        }
        TimedMethod[] attackPart;
        Attacks.SetAudio("Metal Hit", 10);
        if (Party.BagContains(new Metronome()))
        {
            attackPart = Attacks.Attack(this, Party.GetEnemy(), strength + 3, strength + 3, GetAccuracy(), true, true, false);
        }
        else
        {
            attackPart = Attacks.Attack(this, Party.GetEnemy());
        }
        TimedMethod[] moves = new TimedMethod[attackPart.Length + 2];
        moves[0] = new TimedMethod(0, "Audio", new object[] { "Big Swing" });
        moves[moves.Length - 1] = guardPart;
        attackPart.CopyTo(moves, 1);
        return(moves);
    }
Ejemplo n.º 12
0
 public override void Enact()
 {
     text = "This barren room's speaker lets an unknown voice reach you \"Honorable adventurers, doth thou wish the power of lame electric device"
            + " or the power of PIZZA?\" You know this person's alignment";
     Character[] fight = new Character[] { new SecurityHologram() };
     fight[0].SetPassive(new ForceField(fight[0])); fight[0].GainEvasion(40); fight[0].GainDexterity(2);
     options1 = new LinkedList <TimedMethod>();
     options1.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new ItemEvent(new Item[] { new Defibrilator() }, "A defibrilator drops"
                                                                                    + " through the loudspeaker. You hear faint chuckling, but it might just be internal") }));
     optionText1 = "Choose the lame electric device";
     options2    = new LinkedList <TimedMethod>();
     options2.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new ItemEvent(new Item[] { new Pizza() }, "A pizza drops "
                                                                                    + "through the loudspeaker. You don't feel any more powerful") }));
     optionText2 = "Choose the pizza";
     if (Party.BagContains(new Pizza()))
     {
         options3 = new LinkedList <TimedMethod>();
         options3.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new ItemEvent(new Item[] { new Defibrilator(), new Automatic(), new Sword() },
                                                                                        "\"WHAAAAT?\" For some reason, the person on the other side dumps the lame electric device and their weapons down the loudspeaker"
                                                                                        + " \"Use the power welllllll.\"") }));
         optionText3 = "Pizza: I already have the power";
     }
     if (Party.ContainsQuirk(new Berserk(null)) >= 0)
     {
         options4 = new LinkedList <TimedMethod>();
         options4.AddLast(new TimedMethod(0, "Item", new object[] { new Item[] { new Defibrilator(), new Pizza() } }));
         options4.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new BattleEvent(new Character[] { new PizzaCultist() },
                                                                                          Party.members[Party.ContainsQuirk(new Berserk(null))].ToString() + " throws the operating table at the loudspeaker."
                                                                                          + " The resident cultist falls to the floor.") }));
         optionText4 = "Berserk: Attack the cultist";
     }
 }
    public override TimedMethod[] BasicAttack()
    {
        TimedMethod[] attackPart;
        Attacks.SetAudio("Knife", 6);
        if (Party.BagContains(new Metronome()))
        {
            attackPart = Attacks.Attack(this, Party.GetEnemy(), strength + 3, strength + 3, GetAccuracy(), true, true, false);
        }
        else
        {
            attackPart = Attacks.Attack(this, Party.GetEnemy());
        }
        GainEvasion(3);
        TimedMethod evadePart = new TimedMethod("Null");

        if (!GetGooped())
        {
            evadePart = new TimedMethod(0, "CharLogSprite", new object[] { "3", Party.playerSlot - 1, "evasion", true });
        }
        TimedMethod[] moves = new TimedMethod[attackPart.Length + 2];
        moves[0] = new TimedMethod(0, "Audio", new object[] { "Small Swing" });
        moves[1] = evadePart;
        attackPart.CopyTo(moves, 2);
        return(moves);
    }
 public override TimedMethod[] BasicAttack()
 {
     System.Random rng = new System.Random();
     TimedMethod[] poisonPart;
     if (rng.Next(10) < 3 && Attacks.EvasionCheck(Party.GetEnemy(), GetAccuracy()))
     {
         poisonPart = Party.GetEnemy().status.Poison(1);
     }
     else
     {
         poisonPart = new TimedMethod[] { new TimedMethod("Null"), new TimedMethod("Null") };
     }
     Attacks.SetAudio("Acid", 10);
     TimedMethod[] attackPart;
     if (Party.BagContains(new Metronome()))
     {
         attackPart = Attacks.Attack(this, Party.GetEnemy(), strength + 3, strength + 3, GetAccuracy(), true, true, false);
     }
     else
     {
         attackPart = Attacks.Attack(this, Party.GetEnemy());
     }
     TimedMethod[] moves = new TimedMethod[attackPart.Length + 4];
     moves[0] = new TimedMethod(0, "Audio", new object[] { "Missile" });
     moves[1] = new TimedMethod(0, "AudioAfter", new object[] { "Glass Break", 20 });
     attackPart.CopyTo(moves, 2);
     moves[moves.Length - 2] = poisonPart[0];
     moves[moves.Length - 1] = poisonPart[1];
     return(moves);
 }
Ejemplo n.º 15
0
 public override void Enact()
 {
     text = "You enter the building's library, and are immediately told to shush by the student librarian. The path forward is littered with"
            + "creaky wooden floorboards";
     options1    = new LinkedList <TimedMethod>();
     optionText1 = "Walk carefully";
     if (new System.Random().Next(2) == 0)
     {
         options1.AddLast(new TimedMethod(0, "SpendTime", new object[] { 3 }));
         options1.AddLast(new TimedMethod(0, "Apathize", new object[] { 1 }));
         options1.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new TextEvent("You are very close to the exit but you step on the wrong"
                                                                                        + " piece of the floor and a resounding creak echos throughout the room. The librarion seems to teleport in front of you and gives"
                                                                                        + " a very long and silent lecture (Time passed + party gains apathy)") }));
     }
     else
     {
         options1.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new TextEvent("You make it through the library,"
                                                                                        + " but feel the librarian's distrustful gaze the entire time") }));
     }
     options2    = new LinkedList <TimedMethod>();
     optionText2 = "Try to recruit";
     options2.AddLast(new TimedMethod(0, "SpendTime", new object[] { 3 }));
     options2.AddLast(new TimedMethod(0, "Apathize", new object[] { 1 }));
     options2.AddLast(new TimedMethod(0, "Ally", new object[] { new EnglishMajor() }));
     options2.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new TextEvent("The librarian walks over to your group and spends quite some"
                                                                                    + " time silently gesturing to books and looking angry. Suddenly they just start walking towards the exit. It worked?"
                                                                                    + " (Time passed + party gains apathy + new recruit)") }));
     if (Party.BagContains(new Textbook()))
     {
         options3 = new LinkedList <TimedMethod>();
         options3.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new TextEvent("The librarian seems to relax when seeing a giant book"
                                                                                        + " and you cross the room without any trouble") }));
         optionText3 = "Textbook: act like you're reading it";
     }
 }
Ejemplo n.º 16
0
 public override TimedMethod[] BasicAttack()
 {
     TimedMethod[] statusPart = new TimedMethod[] { new TimedMethod("Null"), new TimedMethod("Null") };
     if (Attacks.EvasionCheck(Party.GetEnemy(), GetAccuracy()))
     {
         if (GetPoisoned())
         {
             statusPart[0] = new TimedMethod(0, "CharLogSprite", new object[] { "Cured", Party.playerSlot - 1, "poison", true });
         }
         if (GetGooped())
         {
             statusPart[1] = new TimedMethod(0, "CharLogSprite", new object[] { "Cleaned", Party.playerSlot - 1, "goop", true });
         }
         status.poisoned = 0;
         status.gooped   = false;
     }
     TimedMethod[] attackPart;
     Attacks.SetAudio("Knife", 20);
     if (Party.BagContains(new Metronome()))
     {
         attackPart = Attacks.Attack(this, Party.GetEnemy(), strength + 3, strength + 3, GetAccuracy(), true, true, false);
     }
     else
     {
         attackPart = Attacks.Attack(this, Party.GetEnemy());
     }
     TimedMethod[] moves = new TimedMethod[attackPart.Length + 3];
     moves[0] = new TimedMethod(0, "Audio", new object[] { "Knife Throw" });
     moves[1] = statusPart[0];
     moves[2] = statusPart[1];
     attackPart.CopyTo(moves, 3);
     return(moves);
 }
 //The method called when pressing the attack button
 public virtual TimedMethod[] BasicAttack()
 {
     if (Party.BagContains(new Metronome()))
     {
         return(Attacks.Attack(this, Party.GetEnemy(), strength + 2, strength + 2, GetAccuracy(), true, true, false));
     }
     return(Attacks.Attack(this, Party.GetEnemy()));
 }
 public override TimedMethod[] Use()
 {
     Attacks.SetAudio("Blunt Hit", 15);
     if (Party.BagContains(new Metronome()))
     {
         return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Big Swing" }), new TimedMethod(0, "StagnantAttack", new object[] {
                 true, Party.GetPlayer().GetStrength() + 3, Party.GetPlayer().GetStrength() + 3, Party.GetPlayer().GetAccuracy(), true, true, false
             }) });
     }
     else
     {
         return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Big Swing" }), new TimedMethod(0, "StagnantAttack", new object[] {
                 true, Party.GetPlayer().GetStrength() + 5, Party.GetPlayer().GetStrength() + 5, Party.GetPlayer().GetAccuracy(), true, true, false
             }) });
     }
 }
Ejemplo n.º 19
0
 public override TimedMethod[] BasicAttack()
 {
     TimedMethod[] attackPart;
     Attacks.SetAudio("Knife", 6);
     if (Party.BagContains(new Metronome()))
     {
         attackPart = Attacks.Attack(this, Party.GetEnemy(), strength + 3, strength + 3, GetAccuracy(), true, true, true);
     }
     else
     {
         attackPart = Attacks.Attack(this, Party.GetEnemy(), strength, strength + 5, GetAccuracy(), true, true, true);
     }
     TimedMethod[] moves = new TimedMethod[attackPart.Length + 1];
     moves[0] = new TimedMethod(0, "Audio", new object[] { "Small Swing" });
     attackPart.CopyTo(moves, 1);
     return(moves);
 }
    public override void Enact()
    {
        text = "A student is in a classroom with an asleep and possessed professor. The professor must have been about to write"
               + " the answer to something before she fell asleep, and the student won't leave the room without it";
        Event ally = new Event();

        ally.text     = "With the situation resolved, the student offers to join you";
        ally.options1 = new LinkedList <TimedMethod>();
        ally.options1.AddLast(new TimedMethod(0, "Ally", new object[] { new Character[] { new MathMajor() } }));
        ally.optionText1 = "Recruit the math major";
        ally.options2    = new LinkedList <TimedMethod>();
        ally.options2.AddLast(new TimedMethod("Resolve"));
        ally.optionText2 = "Refuse";
        options1         = new LinkedList <TimedMethod>();
        options1.AddLast(new TimedMethod(0, "NextEvent", new object[] { ally }));
        options1.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new BattleEvent(new Character[] { new Instructor() },
                                                                                         "You wake up the professor, who finishes writing the answer. But because she's possessed she attacks you right after") }));
        optionText1 = "Wake up the instructor";
        options2    = new LinkedList <TimedMethod>();
        if (new System.Random().Next(2) == 0)
        {
            options2.AddLast(new TimedMethod(0, "Apathize", new object[] { 2 }));
            options2.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new TextEvent("\"How can you spend tax-money on college if you"
                                                                                           + " won't discover the secrets of the universe?...\" Your party feels apathetic") }));
        }
        else
        {
            options2.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new TextEvent("The student listens to you and claims they know"
                                                                                           + " the answer anyway", ally) }));
        }
        optionText2 = "Reason with the student";
        if (Party.BagContains(new Pencil()))
        {
            options3 = new LinkedList <TimedMethod>();
            options3.AddLast(new TimedMethod(0, "CauseEvent", new object[] { ally }));
            optionText3 = "Pencil: Let the student work the problem while they travel with you";
        }
        if (Party.PartyContains(new EnglishMajor()) >= 0)
        {
            options4 = new LinkedList <TimedMethod>();
            options4.AddLast(new TimedMethod(0, "CauseEvent", new object[] { ally }));
            optionText4 = "English Major: Read the textbook to reach the answer";
        }
    }
 public override TimedMethod[] BasicAttack()
 {
     TimedMethod[] attackPart;
     Attacks.SetAudio("Sword", 10);
     if (Party.BagContains(new Metronome()))
     {
         attackPart = Attacks.Attack(this, Party.GetEnemy(), strength + 3, strength + 3, GetAccuracy(), true, true, false);
     }
     else
     {
         attackPart = Attacks.Attack(this, Party.GetEnemy());
     }
     GainGuard(1);
     TimedMethod[] moves = new TimedMethod[attackPart.Length + 2];
     moves[0] = new TimedMethod(0, "Audio", new object[] { "Big Swing" });
     moves[1] = new TimedMethod(0, "CharLogSprite", new object[] { "1", Party.playerSlot - 1, "guard", true });
     attackPart.CopyTo(moves, 2);
     return(moves);
 }
    public override void Enact()
    {
        text = "A possessed guest is sitting across from some old sculptures, and turns to stop the party."
               + "\"One of these is real, but the other is a fake replicated by the American Government. Surely you know which one is genuine?";
        Event right = new Event();

        right.text     = "\"Exactly! There is some hope for the younger generation after all!\" The guest heals you for your troubles";
        right.options1 = new LinkedList <TimedMethod>();
        right.options1.AddLast(new TimedMethod(0, "Heal", new object[] { 4 }));
        right.options1.AddLast(new TimedMethod("Resolve"));
        right.optionText1 = "4 healing for party";
        Event wrong = new BattleEvent(new Character[] { new Tenured() },
                                      "\"Wrong. Insolence towards your ancestors has grave consequences.\" The guest prepares for battle");

        options1    = new LinkedList <TimedMethod>();
        options2    = new LinkedList <TimedMethod>();
        optionText1 = "The bronze sculpture";
        optionText2 = "The stone sculpture";
        if (new System.Random().Next(2) == 0)
        {
            options1.AddLast(new TimedMethod(0, "CauseEvent", new object[] { right }));
            options2.AddLast(new TimedMethod(0, "CauseEvent", new object[] { wrong }));
        }
        else
        {
            options1.AddLast(new TimedMethod(0, "CauseEvent", new object[] { wrong }));
            options2.AddLast(new TimedMethod(0, "CauseEvent", new object[] { right }));
        }
        if (Party.PartyContains(new HistoryMajor()) >= 0)
        {
            options3 = new LinkedList <TimedMethod>();
            options3.AddLast(new TimedMethod(0, "CauseEvent", new object[] { right }));
            optionText3 = "History Major: Well clearly, based on the ancient...";
        }
        if (Party.BagContains(new Smartphone()))
        {
            options4 = new LinkedList <TimedMethod>();
            options4.AddLast(new TimedMethod(0, "CauseEvent", new object[] { new TextEvent(
                                                                                 "You take out the smartphone, but the guest's face turns scary.", wrong) }));
            optionText4 = "Smartphone: Look it up online";
        }
    }
Ejemplo n.º 23
0
    public override TimedMethod[] BasicAttack()
    {
        TimedMethod[] attackPart;
        Attacks.SetAudio("Metal Hit", 10);
        if (Party.BagContains(new Metronome()))
        {
            attackPart = Attacks.Attack(this, Party.GetEnemy(), strength + 3, strength + 3, GetAccuracy(), true, true, false);
        }
        else
        {
            attackPart = Attacks.Attack(this, Party.GetEnemy());
        }
        TimedMethod ifHit = new TimedMethod("Null");

        GainCharge(1);
        TimedMethod[] moves = new TimedMethod[attackPart.Length + 2];
        moves[0] = new TimedMethod(0, "AudioAfter", new object[] { "Small Swing", 5 });
        moves[1] = new TimedMethod(0, "CharLogSprite", new object[] { "1", Party.playerSlot - 1, "charge", true });
        attackPart.CopyTo(moves, 2);
        return(moves);
    }
Ejemplo n.º 24
0
    public void Recruit()
    {
        string message;

        if (enemy.GetRecruitable() && Party.enemyCount == 1)
        {
            System.Random rnd = new System.Random();
            if (rnd.Next(2) == 1 || Party.autoRecruit)
            {
                message = "You recruited " + enemy.type;
                messageLog.SendMessage("SetMessage", message);
                menu.SetActive(false);
                delay += 60;
                methodQueue.Enqueue(new TimedMethod("RecruitSuccess"));
                return;
            }
            else
            {
                message = enemy.ToString() + " Didn't feel like it";
                if (Party.BagContains(new VotedBadge()))
                {
                    delay += 60;
                    methodQueue.Enqueue(new TimedMethod("Win"));
                }
            }
        }
        else if (!enemy.GetRecruitable())
        {
            message = "Cannot recruit the rich";
        }
        else
        {
            message = "They won't split from their group";
        }
        messageLog.SendMessage("SetMessage", message);
        menu.SetActive(false);
        methodQueue.Enqueue(new TimedMethod(60, "EndTurn"));
    }
Ejemplo n.º 25
0
    public override TimedMethod[] BasicAttack()
    {
        TimedMethod[] attackPart;
        Attacks.SetAudio("Blunt Hit", 15);
        if (Party.BagContains(new Metronome()))
        {
            attackPart = Attacks.Attack(this, Party.GetEnemy(), strength + 3, strength + 3, GetAccuracy(), true, true, false);
        }
        else
        {
            attackPart = Attacks.Attack(this, Party.GetEnemy());
        }
        TimedMethod switchPart = new TimedMethod(0, "Log", new object[] { "" });

        if (Party.playerCount > 1)
        {
            int steps = new System.Random().Next(Party.playerCount - 1);
            for (int i = 0; i < 4; i++)
            {
                if (Party.members[i] != null && Party.members[i].GetAlive() && i != Party.playerSlot - 1)
                {
                    if (steps == 0)
                    {
                        switchPart = new TimedMethod(60, "SwitchTo", new object[] { i + 1 });
                    }
                    else
                    {
                        steps--;
                    }
                }
            }
        }
        TimedMethod[] moves = new TimedMethod[attackPart.Length + 2];
        moves[0] = new TimedMethod(0, "AudioAfter", new object[] { "Big Swing", 10 });
        attackPart.CopyTo(moves, 1);
        moves[moves.Length - 1] = switchPart;
        return(moves);
    }
Ejemplo n.º 26
0
 public TimedMethod[] Rob()
 {
     if (briefcase)
     {
         briefcase = false;
         return(DestroyBriefcase());
     }
     TimedMethod[] stealPart;
     if (Attacks.EvasionCheck(Party.GetPlayer(), GetAccuracy()))
     {
         stealPart = Party.StealItem();
         if (Party.BagContains(new Briefcase()))
         {
             briefcase = true;
         }
     }
     else
     {
         stealPart = new TimedMethod[] { new TimedMethod(0, "Log", new object[] { "" }) };
     }
     return(new TimedMethod[] { new TimedMethod(60, "Log", new object[] { ToString() + " mugged you" }),
                                new TimedMethod(0, "AudioNumbered", new object[] { "Attack", 3, 4 }),
                                new TimedMethod(0, "StagnantAttack", new object[] { false, 2, 8, GetAccuracy(), true, true, false }), stealPart[0] });
 }