コード例 #1
0
    public override TimedMethod[] Lecture()
    {
        TimedMethod[] sleepPart;
        TimedMethod[] totalSleep = new TimedMethod[] { new TimedMethod("Null"), new TimedMethod("Null"), new TimedMethod("Null"),
                                                       new TimedMethod("Null"), new TimedMethod("Null"), new TimedMethod("Null"), new TimedMethod("Null"), new TimedMethod("Null"),
                                                       new TimedMethod("Null"), new TimedMethod("Null"), new TimedMethod("Null"), new TimedMethod("Null"), new TimedMethod("Null"),
                                                       new TimedMethod("Null"), new TimedMethod("Null"), new TimedMethod("Null") };
        int index = 0;

        foreach (Character c in Party.members)
        {
            if (c != null && c.GetAlive() && Attacks.EvasionCycle(this, c))
            {
                sleepPart = c.status.Sleep();
                Status.NullifyAttack(c); Status.NullifyDefense(c);
                totalSleep[index + 2] = new TimedMethod(0, "CharLogSprite", new object[] { "atk reset", c.partyIndex, "nullAttack", true });
                totalSleep[index + 3] = new TimedMethod(0, "CharLogSprite", new object[] { "def reset", c.partyIndex, "nullDefense", true });
            }
            else
            {
                sleepPart = new TimedMethod[] { new TimedMethod("Null"), new TimedMethod("Null") };
            }
            totalSleep[index]     = sleepPart[0];
            totalSleep[index + 1] = sleepPart[1];
            index += 4;
        }
        return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Filibuster" }),
                                   new TimedMethod(60, "Log", new object[] { ToString() + " lectured" }), totalSleep[0], totalSleep[1], totalSleep[2], totalSleep[3],
                                   totalSleep[4], totalSleep[5], totalSleep[6], totalSleep[7], totalSleep[8], totalSleep[9], totalSleep[10], totalSleep[11],
                                   totalSleep[12], totalSleep[13], totalSleep[14], totalSleep[15] });
    }
コード例 #2
0
    public virtual TimedMethod[] Lecture()
    {
        TimedMethod[] totalSleep = new TimedMethod[] { new TimedMethod("Null"), new TimedMethod("Null"), new TimedMethod("Null"),
                                                       new TimedMethod("Null"), new TimedMethod("Null"), new TimedMethod("Null"), new TimedMethod("Null"), new TimedMethod("Null") };
        int index = 0;

        TimedMethod[] sleepPart;
        foreach (Character c in Party.members)
        {
            if (c != null && c.GetAlive() && Attacks.EvasionCycle(this, c))
            {
                sleepPart = c.status.Sleep();
            }
            else
            {
                sleepPart = new TimedMethod[] { new TimedMethod("Null"), new TimedMethod("Null") };
            }
            totalSleep[index]     = sleepPart[0];
            totalSleep[index + 1] = sleepPart[1];
            index += 2;
        }
        return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Filibuster" }),
                                   new TimedMethod(60, "Log", new object[] { ToString() + " lectured" }), totalSleep[0], totalSleep[1], totalSleep[2], totalSleep[3],
                                   totalSleep[4], totalSleep[5], totalSleep[6], totalSleep[7] });
    }
コード例 #3
0
    public TimedMethod[] Filibuster()
    {
        TimedMethod[] totalSleep = new TimedMethod[] { new TimedMethod("Null"), new TimedMethod("Null"), new TimedMethod("Null"),
                                                       new TimedMethod("Null"), new TimedMethod("Null"), new TimedMethod("Null"), new TimedMethod("Null"), new TimedMethod("Null") };
        int index = 0;

        TimedMethod[] sleepPart;
        foreach (Character c in Party.members)
        {
            if (c != null && c.GetAlive() && Attacks.EvasionCycle(this, c))
            {
                sleepPart = c.status.Sleep();
            }
            else
            {
                sleepPart = new TimedMethod[] { new TimedMethod(0, "CharLog", new object[] { "miss", c.partyIndex, true }), new TimedMethod("Null") };
            }
            totalSleep[index]     = sleepPart[0];
            totalSleep[index + 1] = sleepPart[1];
            index += 2;
        }
        return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Filibuster" }),
                                   new TimedMethod(60, "Log", new object[] { "The Politician filibustered" }), totalSleep[0], totalSleep[1], totalSleep[2], totalSleep[3],
                                   totalSleep[4], totalSleep[5], totalSleep[6], totalSleep[7] });
    }
コード例 #4
0
 public override TimedMethod[] Use()
 {
     TimedMethod[] sleepPart = new TimedMethod[] { new TimedMethod(60, "Log", new object[] { "Miss" }), new TimedMethod("Null") };
     if (Attacks.EvasionCycle(Party.GetPlayer().GetAccuracy() * 2, Party.GetEnemy()))
     {
         sleepPart = Party.GetEnemy().status.Sleep();
     }
     return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Hypnotize" }),
                                sleepPart[0], sleepPart[1] });
 }
コード例 #5
0
 public TimedMethod[] Poison()
 {
     TimedMethod[] poisonPart = new TimedMethod[] { new TimedMethod(60, "Log", new object[] { "miss" }), new TimedMethod("Null") };
     if (Attacks.EvasionCycle(this, Party.GetPlayer()))
     {
         poisonPart = Party.GetPlayer().status.Poison(2);
     }
     return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Fumes" }),
                                new TimedMethod(60, "Log", new object[] { "The Megalomaniac sprayed poison fumes" }), poisonPart[0], poisonPart[1] });
 }
コード例 #6
0
 public TimedMethod[] Grade()
 {
     if (Attacks.EvasionCycle(this, Party.GetPlayer()))
     {
         Party.UseSP(3);
         return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Poison" }),
                                    new TimedMethod(60, "Log", new object[] { ToString() + " returned grades. -3 SP" }) });
     }
     return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Poison" }),
                                new TimedMethod(60, "Log", new object[] { ToString() + " returned grades, but " + Party.GetPlayer().ToString() + " didn't care" }) });
 }
コード例 #7
0
 public override TimedMethod[] UseSupport(int i)
 {
     TimedMethod[] apathyPart = new TimedMethod[] { new TimedMethod(60, "Log", new object[] { "miss" }), new TimedMethod("Null") };
     if (Attacks.EvasionCycle(Party.members[i], Party.GetEnemy()))
     {
         apathyPart = Party.GetEnemy().status.CauseApathy(3);
     }
     return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Filibuster" }), new TimedMethod(60, "Log", new object[] {
             Party.members[i].ToString() + " recited so much Pi it could lower self-esteem"
         }), apathyPart[0], apathyPart[1] });
 }
コード例 #8
0
 public TimedMethod[] Disrupt()
 {
     if (Attacks.EvasionCycle(this, Party.GetPlayer()))
     {
         TimedMethod[] stunPart = Party.GetPlayer().status.Stun(3);
         return(new TimedMethod[] { new TimedMethod(60, "Log", new object[] { ToString() + " fired a disruptive wave" }),
                                    new TimedMethod(0, "Audio", new object[] { "Laser Shot" }), new TimedMethod(0, "Audio", new object[] { "Tazer" }),
                                    stunPart[0], stunPart[1] });
     }
     return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Laser Shot" }),
                                new TimedMethod(60, "Log", new object[] { ToString() + " missed a disruptive wave" }) });
 }
コード例 #9
0
 public override TimedMethod[] Use()
 {
     if (Attacks.EvasionCycle(Party.GetPlayer(), Party.GetEnemy()))
     {
         TimedMethod[] goopPart = Party.GetEnemy().status.Goop();
         return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Slime" }), goopPart[0], goopPart[1] });
     }
     else
     {
         return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Slime" }), new TimedMethod(60, "Log", new object[] { "miss" }) });
     }
 }
コード例 #10
0
 public override TimedMethod[] Use()
 {
     if (Attacks.EvasionCycle(Party.GetPlayer(), Party.GetEnemy()))
     {
         string message = Party.GetEnemy() + " lost attack";
         Status.NullifyAttack(Party.GetEnemy());
         return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Trumpet" }),
                                    new TimedMethod(60, "Log", new object[] { Party.GetEnemy() + " lost attack" }),
                                    new TimedMethod(0, "CharLogSprite", new object[] { "atk reset", Party.enemySlot - 1, "nullAttack", false }) });
     }
     return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Trumpet" }), new TimedMethod(60, "Log", new object[] { "miss" }) });
 }
コード例 #11
0
    public TimedMethod[] Meal(string food)
    {
        string message = "";

        TimedMethod[] statusPart = new TimedMethod[] { new TimedMethod(60, "Log", new object[] { "Miss" }), new TimedMethod("Null") };
        TimedMethod   audioPart  = new TimedMethod("Null");

        switch (food)
        {
        case "eat": message     = ToString() + " ate some food";
            Heal(8); statusPart = new TimedMethod[] { new TimedMethod(0, "CharLogSprite", new object[] { "8", Party.enemySlot - 1, "healing", false }),
                                                      new TimedMethod("Null") };
            audioPart = new TimedMethod(0, "Audio", new object[] { "Eat" });
            break;

        case "poison": message = ToString() + " chucked raw chicken";
            if (Attacks.EvasionCycle(this, Party.GetPlayer()))
            {
                statusPart = Party.GetPlayer().status.Poison(1);
            }
            audioPart = new TimedMethod(0, "Audio", new object[] { "Missile" });
            break;

        case "attack": message = ToString() + " chucked bread";
            if (Attacks.EvasionCycle(this, Party.GetPlayer()))
            {
                Party.GetPlayer().GainCharge(-6);
                statusPart[0] = new TimedMethod(0, "CharLogSprite", new object[] { "-6", Party.playerSlot - 1, "charge", true });
                statusPart[1] = new TimedMethod(0, "Audio", new object[] { "Nullify" });
            }
            audioPart = new TimedMethod(0, "Audio", new object[] { "Missile" });
            break;

        case "defense": message = ToString() + " chucked jello";
            if (Attacks.EvasionCycle(this, Party.GetPlayer()))
            {
                Party.GetPlayer().GainGuard(-6);
                statusPart[0] = new TimedMethod(0, "CharLogSprite", new object[] { "-6", Party.playerSlot - 1, "guard", true });
                statusPart[1] = new TimedMethod(0, "Audio", new object[] { "Slime" });
            }
            audioPart = new TimedMethod(0, "Audio", new object[] { "Missile" });
            break;

        case "stun": message = ToString() + " chucked pepper";
            if (Attacks.EvasionCycle(this, Party.GetPlayer()))
            {
                statusPart = Party.GetPlayer().status.Stun(3);
            }
            audioPart = new TimedMethod(0, "Audio", new object[] { "Powder" });
            break;
        }
        return(new TimedMethod[] { audioPart, new TimedMethod(60, "Log", new object[] { message }), statusPart[0], statusPart[1] });
    }
コード例 #12
0
 public TimedMethod[] Hypnotize()
 {
     if (Attacks.EvasionCycle(GetAccuracy() * 2, Party.GetPlayer()))
     {
         TimedMethod[] possessPart = Party.GetPlayer().status.Possess();
         return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Possession" }),
                                    new TimedMethod(60, "Log", new object[] { "The Megalomaniac activated the evil device" }),
                                    possessPart[0], possessPart[1], new TimedMethod(0, "SwitchTo", new object[] { 1 }) });
     }
     return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Possession" }),
                                new TimedMethod(60, "Log", new object[] { "The Megalomaniac activated the evil device and you dodged its nature" }) });
 }
コード例 #13
0
 public TimedMethod[] Veto()
 {
     if (Attacks.EvasionCycle(this, Party.GetPlayer()))
     {
         Status.NullifyAttack(Party.GetPlayer()); Status.NullifyDefense(Party.GetPlayer());
         return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Nullify" }),
                                    new TimedMethod(60, "Log", new object[] { "The Politician used the veto. Stats were countered" }),
                                    new TimedMethod(0, "CharLogSprite", new object[] { "atk reset", Party.playerSlot - 1, "nullAttack", false }),
                                    new TimedMethod(0, "CharLogSprite", new object[] { "def reset", Party.playerSlot - 1, "nullDefense", false }) });
     }
     return(new TimedMethod[] { new TimedMethod(60, "Log", new object[] { "The Politician used the veto. It failed" }) });
 }
コード例 #14
0
 public override TimedMethod[] Use()
 {
     if (Attacks.EvasionCycle(Party.GetPlayer(), Party.GetEnemy()))
     {
         Party.GetEnemy().SetDefense(Party.GetEnemy().GetDefense() - 2);
         return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Oil" }),
                                    new TimedMethod(60, "Log", new object[] { Party.GetEnemy().ToString() + " was covered in oil" }),
                                    new TimedMethod(0, "CharLogSprite", new object[] { "-2", Party.enemySlot - 1, "defense", false }) });
     }
     return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Oil" }),
                                new TimedMethod(60, "Log", new object[] { Party.GetEnemy().ToString() + " was not covered in oil" }) });
 }
コード例 #15
0
 public TimedMethod[] Contraband()
 {
     TimedMethod[] poisonPart;
     if (Attacks.EvasionCycle(this, Party.GetPlayer()))
     {
         poisonPart = Party.GetPlayer().status.Poison(3);
     }
     else
     {
         poisonPart = new TimedMethod[] { new TimedMethod("Null"), new TimedMethod("Null") };
     }
     return(new TimedMethod[] { new TimedMethod(60, "Log", new object[] { "The CEO used contraband" }), poisonPart[0], poisonPart[1] });
 }
コード例 #16
0
 public TimedMethod[] Bargain()
 {
     if (Attacks.EvasionCycle(this, Party.GetPlayer()))
     {
         return(new TimedMethod[] { new TimedMethod(0, "AudioAfter", new object[] { "Steal", 20 }),
                                    new TimedMethod(60, "Log", new object[] { ToString() + " made a bargain" }), Party.StealItem()[0] });
     }
     else
     {
         return(new TimedMethod[] { new TimedMethod(0, "AudioAfter", new object[] { "Steal", 20 }),
                                    new TimedMethod(60, "Log", new object[] { ToString() + " failed to make a bargain" }) });
     }
 }
コード例 #17
0
 public TimedMethod[] Anasthesia()
 {
     if (Attacks.EvasionCycle(this, Party.GetPlayer()))
     {
         TimedMethod[] sleepPart = Party.GetPlayer().status.Sleep();
         return(new TimedMethod[] { new TimedMethod(60, "Log", new object[] { ToString() + " injected anasthesia" }),
                                    new TimedMethod(0, "Audio", new object[] { "Clean" }), sleepPart[0], sleepPart[1] });
     }
     else
     {
         return(new TimedMethod[] { new TimedMethod(60, "Log", new object[] { ToString() + " missed anasthesia" }),
                                    new TimedMethod(0, "Audio", new object[] { "Clean" }) });
     }
 }
コード例 #18
0
 public override TimedMethod[] Use()
 {
     Party.AddItem(new Flask());
     if (Attacks.EvasionCycle(Party.GetPlayer(), Party.GetEnemy()))
     {
         TimedMethod[] poisonPart = Party.GetEnemy().status.Poison(2);
         return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Clean" }), new TimedMethod(0, "AudioAfter", new object[] { "Acid", 10 }),
                                    poisonPart[0], poisonPart[1] });
     }
     else
     {
         return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Clean" }), new TimedMethod(60, "Log", new object[] { "miss" }) });
     }
 }
コード例 #19
0
 public virtual TimedMethod[] TomatoSpell()
 {
     TimedMethod[] goopPart;
     if (Attacks.EvasionCycle(this, Party.GetPlayer()))
     {
         goopPart = Party.GetPlayer().status.Goop();
     }
     else
     {
         goopPart = new TimedMethod[] { new TimedMethod(60, "Log", new object[] { "It missed completely" }), new TimedMethod("Null") };
     }
     return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Cheese" }),
                                new TimedMethod(60, "Log", new object[] { ToString() + " cast TOMATO SPELL!" }), goopPart[0], goopPart[1] });
 }
コード例 #20
0
 public virtual TimedMethod[] CheeseSpell()
 {
     TimedMethod[] blindPart;
     if (Attacks.EvasionCycle(this, Party.GetPlayer()))
     {
         blindPart = Party.GetPlayer().status.Blind(6);
     }
     else
     {
         blindPart = new TimedMethod[] { new TimedMethod(60, "Log", new object[] { "It missed completely" }), new TimedMethod("Null") };
     }
     return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Cheese" }),
                                new TimedMethod(60, "Log", new object[] { ToString() + " cast CHEESE SPELL!" }), blindPart[0], blindPart[1] });
 }
コード例 #21
0
    public override TimedMethod[] Use()
    {
        TimedMethod[] nullPart = new TimedMethod[] { new TimedMethod("Null"), new TimedMethod("Null") };
        if (Attacks.EvasionCycle(Party.GetPlayer(), Party.GetEnemy()))
        {
            Status.NullifyAttack(Party.GetEnemy()); Status.NullifyDefense(Party.GetEnemy());
            nullPart[0] = new TimedMethod(0, "CharLogSprite", new object[] { "atk reset", Party.enemySlot - 1, "nullAttack", false });
            nullPart[1] = new TimedMethod(0, "CharLogSprite", new object[] { "def reset", Party.enemySlot - 1, "nullDefense", false });
        }
        string message = Party.GetPlayer().GetName() + " blasted the tuba!";

        return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Trumpet" }), new TimedMethod(60, "Log", new object[] { message }),
                                   nullPart[0], nullPart[1] });
    }
コード例 #22
0
 public TimedMethod[] Violin()
 {
     TimedMethod[] sleepPart;
     if (Attacks.EvasionCycle(this, Party.GetPlayer()))
     {
         sleepPart = Party.GetPlayer().status.Sleep();
     }
     else
     {
         sleepPart = new TimedMethod[] { new TimedMethod(60, "Log", new object[] { "Ineffective" }), new TimedMethod("Null") };
     }
     return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Violin" }),
                                new TimedMethod(60, "Log", new object[] { ToString() + " played a slow violin piece" }), sleepPart[0], sleepPart[1] });
 }
コード例 #23
0
 public TimedMethod[] Overdose()
 {
     if (Attacks.EvasionCycle(this, Party.GetPlayer()))
     {
         TimedMethod[] poisonPart = Party.GetPlayer().status.Poison(2);
         return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Drink" }),
                                    new TimedMethod(60, "Log", new object[] { ToString() + " prescribed an overdose" }), poisonPart[0], poisonPart[1] });
     }
     else
     {
         return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Glass Break" }),
                                    new TimedMethod(60, "Log", new object[] { ToString() + " prescribed an overdose...but the handwriting was too poor" }) });
     }
 }
コード例 #24
0
 public override TimedMethod[] UseSupport(int i)
 {
     TimedMethod[] goopPart;
     if (Attacks.EvasionCycle(Party.members[i], Party.GetEnemy()))
     {
         goopPart = Party.GetEnemy().status.Goop();
     }
     else
     {
         goopPart = new TimedMethod[] { new TimedMethod(60, "Log", new object[] { "Miss" }), new TimedMethod("Null") };
     }
     return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Big Swing" }),
                                new TimedMethod(0, "SwitchTo", new object[] { i + 1 }), goopPart[0], goopPart[1] });
 }
コード例 #25
0
 public TimedMethod[] Restrain()
 {
     if (Attacks.EvasionCycle(this, Party.GetPlayer()))
     {
         TimedMethod[] goopPart = Party.GetPlayer().status.Goop();
         return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Big Swing" }),
                                    new TimedMethod(60, "Log", new object[] { ToString() + " used a straight jacket" }), goopPart[0], goopPart[1] });
     }
     else
     {
         return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Big Swing" }),
                                    new TimedMethod(60, "Log", new object[] { ToString() + " missed a straight jacket" }) });
     }
 }
コード例 #26
0
 public TimedMethod[] Sleep()
 {
     TimedMethod[] sleepPart;
     if (Attacks.EvasionCycle(this, Party.GetPlayer()))
     {
         sleepPart = Party.GetPlayer().status.Sleep();
     }
     else
     {
         sleepPart = new TimedMethod[] { new TimedMethod(60, "Log", new object[] { "And nothing happened" }), new TimedMethod("Null") };
     }
     return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Hypnosis" }),
                                new TimedMethod(60, "Log", new object[] { ToString() + " let the pendulum sway" }), sleepPart[0], sleepPart[1] });
 }
コード例 #27
0
 public TimedMethod[] Poison()
 {
     TimedMethod[] poisonPart;
     if (Attacks.EvasionCycle(this, Party.GetPlayer()))
     {
         poisonPart = Party.GetPlayer().status.Poison(2);
     }
     else
     {
         poisonPart = new TimedMethod[] { new TimedMethod(60, "Log", new object[] { "miss" }), new TimedMethod("Null") };
     }
     return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Oil" }),
                                new TimedMethod(60, "Log", new object[] { ToString() + " threw a toxic brew" }), poisonPart[0], poisonPart[1] });
 }
コード例 #28
0
 public TimedMethod[] Insult()
 {
     TimedMethod[] statPart = new TimedMethod[] { new TimedMethod("Null"), new TimedMethod("Null") };
     if (Attacks.EvasionCycle(this, Party.GetPlayer()))
     {
         Party.GetPlayer().GainGuard(-6);
         Party.GetPlayer().GainCharge(-6);
         statPart[0] = new TimedMethod(0, "CharLogSprite", new object[] { "-6", Party.playerSlot - 1, "charge", true });
         statPart[1] = new TimedMethod(0, "CharLogSprite", new object[] { "-6", Party.playerSlot - 1, "guard", true });
     }
     GainCharge(5);
     return(new TimedMethod[] { new TimedMethod(0, "Audio", new object[] { "Poison" }),
                                new TimedMethod(60, "Log", new object[] { ToString() + " called you a failure, worthless, ect" }),
                                new TimedMethod(0, "CharLogSprite", new object[] { "5", Party.enemySlot - 1, "charge", false }), statPart[0], statPart[1] });
 }
コード例 #29
0
 public TimedMethod[] MindGames()
 {
     if (Attacks.EvasionCycle(this, Party.GetPlayer()))
     {
         Party.GetPlayer().GainCharge(-3);
         Party.GetPlayer().status.Stun(2);
         GainEvasion(5);
         GainGuard(3);
         return(new TimedMethod[] { new TimedMethod(60, "Log", new object[] { ToString() + " gave a sinister threat" }) });
     }
     else
     {
         return(new TimedMethod[] { new TimedMethod(60, "Log", new object[] { ToString() + " gave a sinister threat...but it was futile" }) });
     }
 }
コード例 #30
0
 public TimedMethod[] Oil()
 {
     if (Attacks.EvasionCycle(this, Party.GetPlayer()))
     {
         Party.GetPlayer().GainDefense(-2);
         return(new TimedMethod[] { new TimedMethod(0, "AudioAfter", new object[] { "Oil", 10 }),
                                    new TimedMethod(60, "Log", new object[] { ToString() + " dumped oil. Defense down" }),
                                    new TimedMethod(0, "CharLogSprite", new object[] { -2, Party.playerSlot - 1, "defense", true }) });
     }
     else
     {
         return(new TimedMethod[] { new TimedMethod(0, "AudioAfter", new object[] { "Drink", 10 }),
                                    new TimedMethod(60, "Log", new object[] { ToString() + " dumped oil. It missed" }) });
     }
 }