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); }
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"; } }
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); }
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); }
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"; } }
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); }
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); }
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"; } }
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 }) }); } }
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"; } }
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); }
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")); }
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); }
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] }); }