Thumbs upMysterious Crystal Behavior Fix

Posts 1–7 of 7 · Page 1 of 1
Mysterious Crystal Behavior Fix
I fixed the code for the mysterious crystal so that it properly heals every five seconds, I also fixed a few other bugs that I found with it.

Just copy this entire piece of code over the old Crystal behavior, and everything should be working fine.

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using wServer.realm;
using wServer.logic.attack;
using wServer.logic.movement;
using wServer.logic.loot;
using wServer.logic.taunt;
using wServer.logic.cond;

namespace wServer.logic
{
    partial class BehaviorDb
    {
        static _ Crystal = Behav()
            .Init(0x0935, Behaves("Mysterious Crystal",
               new RunBehaviors(
                   HpGreaterEqual.Instance(945000,
                   Cooldown.Instance(5000, Heal.Instance(1, 1000000, 0x0935))), /*This is the standard healing behavior. */ 
                   Once.Instance(new SetKey(-1, 1)),
        #region HpLesserPercent

                  /* These lines we're completely wrong, so I rewrote them.*/
            /*If.Instance(
              And.Instance(HpLesser.Instance(999000, NullBehavior.Instance), HpGreaterEqual.Instance(1000000, NullBehavior.Instance)),
                new SetKey(-1, 2)  //
            ),
            If.Instance(
              And.Instance(HpLesser.Instance(998000, NullBehavior.Instance), HpGreaterEqual.Instance(999000, NullBehavior.Instance)),
                new SetKey(-1, 3)  //
            ),
            If.Instance(
              And.Instance(HpLesser.Instance(997000, NullBehavior.Instance), HpGreaterEqual.Instance(998000, NullBehavior.Instance)),
                Once.Instance(new SetKey(-1, 7))   //break
            ),*/
            /* Cooldown.Instance(5000, HpLesserPercent.Instance(0.9f, new SetKey(-1, 2))), 
            Cooldown.Instance(5000, HpLesserPercent.Instance(0.85f, new SetKey(-1, 3))),
            Cooldown.Instance(5000, HpLesserPercent.Instance(0.8f, new SetKey(-1, 7))), */ 
            Cooldown.Instance(4000, HpLesser.Instance(995000, new SetKey(-1, 2))),
            Cooldown.Instance(4000, HpLesser.Instance(985000, new SetKey(-1, 3))),
            Cooldown.Instance(4000, HpLesser.Instance(945000, new SetKey(-1, 7))),

        #endregion
                IfEqual.Instance(-1, 1,
                  new QueuedBehavior(
                    Cooldown.Instance(100),
                    True.Instance(Rand.Instance(
                      new RandomTaunt(0.5, "Break the crystal for great rewards..."),
                      new RandomTaunt(0.5, "Help me...")
                      )
                    ),
                    CooldownExact.Instance(10000, new SetKey(-1, 1))
                    )
                ),
                IfEqual.Instance(-1, 2,
                  new QueuedBehavior(
                    Cooldown.Instance(0, Flashing.Instance(1000, 0xffffffff)),
                    Cooldown.Instance(1100, Flashing.Instance(1000, 0xffffffff)),
                    True.Instance(Rand.Instance(
                      new RandomTaunt(0.5, "Fire upon this crystal with all your might for 5 seconds"),
                      new RandomTaunt(0.5, "If your attacks are weak, the crystal magically heals"),
                      new RandomTaunt(0.5, "Gather a large group to smash it open")
                      )
                    ),
                    Cooldown.Instance(5000, new SetKey(-1, 1))
                    )
                ),
                IfEqual.Instance(-1, 3,
                  new QueuedBehavior(
                    Cooldown.Instance(100),
                    True.Instance(Rand.Instance(
                      new RandomTaunt(0.5, "Sweet treasure awaits for powerful adventurers!"),
                      new RandomTaunt(0.5, "Yes!  Smash my prison for great rewards!")
                      )
                    ),
                    Cooldown.Instance(5000, new SetKey(-1, 4))
                    )
                ),
                IfEqual.Instance(-1, 4,
                  new QueuedBehavior(
                    Cooldown.Instance(100),
                    True.Instance(Rand.Instance(
                      new RandomTaunt(0.5, "If you are not very strong, this could kill you"),
                      new RandomTaunt(0.5, "If you are not yet powerful, stay away from the Crystal"),
                      new RandomTaunt(0.5, "New adventurers should stay away"),
                      new RandomTaunt(0.5, "That's the spirit. Lay your fire upon me."),
                      new RandomTaunt(0.5, "So close...")
                      )
                    ),
                    Cooldown.Instance(5000, new SetKey(-1, 5))
                    )
                ),
                IfEqual.Instance(-1, 5,
                  new QueuedBehavior(
                    Cooldown.Instance(100),
                    True.Instance(Rand.Instance(
                      new RandomTaunt(0.5, "I think you need more people..."),
                      new RandomTaunt(0.5, "Call all your friends to help you break the crystal!")
                      )
                    ),
                    CooldownExact.Instance(10000, new SetKey(-1, 6))
                    )
                ),
                IfEqual.Instance(-1, 6,
                /*Changed runbehaviors to queuedbehavior here so that the ringattack would not be repeated infinitely*/
                  new RunBehaviors(
                  new QueuedBehavior(
                      new SimpleTaunt("Perhaps you need a bigger group. Ask others to join you!"),
                      Cooldown.Instance(0, Flashing.Instance(1000, 0xffffffff)),
                      RingAttack.Instance(16, 22, 16, projectileIndex: 0),
                      Cooldown.Instance(1100, Flashing.Instance(1000, 0xffffffff)),
                      CooldownExact.Instance(5000, new SetKey(-1, 1))
                    ))
                ),
                IfEqual.Instance(-1, 7,
                  new QueuedBehavior(
                    SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                    Once.Instance(new SimpleTaunt("You cracked the crystal! Soon we shall emerge!")),
                    Cooldown.Instance(1000, SetSize.Instance(95)),
                    Cooldown.Instance(1000, SetSize.Instance(90)),
                    Cooldown.Instance(1000, SetSize.Instance(85)),
                    Cooldown.Instance(1000, SetSize.Instance(80)),
                    Flashing.Instance(1000, 0xffffffff),
                    Flashing.Instance(1000, 0xffffffff),
                    CooldownExact.Instance(4000, new SetKey(-1, 8))
                    )
                ),
                IfEqual.Instance(-1, 8,
                  new QueuedBehavior(
                    Once.Instance(new SimpleTaunt("This your reward! Imagine what evil even Oryx needs to keep locked up!")),
                    Once.Instance(RingAttack.Instance(16, 22, 16, projectileIndex: 0)),
                    Once.Instance(SpawnMinionImmediate.Instance(0x0941, 0, 1, 1)),
                    Once.Instance(Despawn.Instance)
                    ))
                )
            ))
            .Init(0x0941, Behaves("Crystal Prisoner",
                  new RunBehaviors(
                    Once.Instance(new SimpleTaunt("I'm finally free! Yesss!!!")),
                    Once.Instance(SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable)),
                    SmoothWandering.Instance(1f, 1f),
                    Once.Instance(SpawnMinionImmediate.Instance(0x0943, 3, 3, 5)
                    ),
                    If.Instance(
                        EntityLesserThan.Instance(100, 3, 0x0943),  //IsEntityNotPresent.Instance(100, 0x0943),
                        Rand.Instance(
                            Reproduce.Instance(0x0943, 3, 100, 3)
                            )
                    )
                ),
                new QueuedBehavior(//here Is shooting start

        #region Circle Attack 1
                    Cooldown.Instance(4000),
                      new RunBehaviors(
                          UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                          SimpleAttack.Instance(5, projectileIndex: 3),
                          RingAttack.Instance(4, offset: 0 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 18 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 36 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                          RingAttack.Instance(4, offset: 54 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 72 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          SimpleAttack.Instance(5, projectileIndex: 3),
                          RingAttack.Instance(4, offset: 90 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                          RingAttack.Instance(4, offset: 108 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 126 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 144 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 162 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                          SimpleAttack.Instance(5, projectileIndex: 3),
                          RingAttack.Instance(4, offset: 180 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 198 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 216 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 234 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                          RingAttack.Instance(4, offset: 252 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          SimpleAttack.Instance(5, projectileIndex: 3),
                          RingAttack.Instance(4, offset: 270 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 288 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                          RingAttack.Instance(4, offset: 306 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 324 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 342 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(250),
                      new RunBehaviors(
                          UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                          RingAttack.Instance(4, offset: 360 * (float)Math.PI / 180)
                    ),
                    
        #endregion 

        #region Circle Attack 2

                    Cooldown.Instance(200),
                      new RunBehaviors(
                          UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                          SimpleAttack.Instance(5, projectileIndex: 3),
                          RingAttack.Instance(4, offset: 0 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 18 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 36 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                          RingAttack.Instance(4, offset: 54 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 72 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          SimpleAttack.Instance(5, projectileIndex: 3),
                          RingAttack.Instance(4, offset: 90 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                          RingAttack.Instance(4, offset: 108 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 126 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 144 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 162 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                          SimpleAttack.Instance(5, projectileIndex: 3),
                          RingAttack.Instance(4, offset: 180 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 198 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 216 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 234 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                          RingAttack.Instance(4, offset: 252 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          SimpleAttack.Instance(5, projectileIndex: 3),
                          RingAttack.Instance(4, offset: 270 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 288 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                          RingAttack.Instance(4, offset: 306 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 324 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(200),
                      new RunBehaviors(
                          RingAttack.Instance(4, offset: 342 * (float)Math.PI / 180)
                    ),
                    Cooldown.Instance(250),
                      new RunBehaviors(
                          UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                          RingAttack.Instance(4, offset: 360 * (float)Math.PI / 180)
                    ),

        #endregion

        #region Flashing + SetCondEff

                    SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                    Flashing.Instance(150, 0x0000FF0C),
                    Flashing.Instance(150, 0x0000FF0C),
                    Flashing.Instance(150, 0x0000FF0C),
                    Flashing.Instance(150, 0x0000FF0C),
                    Flashing.Instance(150, 0x0000FF0C),
                    Flashing.Instance(150, 0x0000FF0C),
                    Flashing.Instance(150, 0x0000FF0C),
                    Flashing.Instance(150, 0x0000FF0C),
                    /*Flashing.Instance(150, 0x0000FF0C),
                    Flashing.Instance(150, 0x0000FF0C),
                    Flashing.Instance(150, 0x0000FF0C),
                    Flashing.Instance(150, 0x0000FF0C),
                    Flashing.Instance(150, 0x0000FF0C),
                    Flashing.Instance(150, 0x0000FF0C),
                    Flashing.Instance(150, 0x0000FF0C),
                    Flashing.Instance(150, 0x0000FF0C),
                    Flashing.Instance(150, 0x0000FF0C),*/
                    Cooldown.Instance(3000),

        #endregion

        #region Spawn Clones

                    SpawnMinionImmediate.Instance(0x0942, 2, 4, 4),
                    TossEnemy.Instance(0, 5, 0x0942),
                    TossEnemy.Instance(60, 7, 0x0942),
                    TossEnemy.Instance(240, 5, 0x0942),
                    TossEnemy.Instance(300, 7, 0x0942),
                    Cooldown.Instance(2000),

        #endregion

        #region Invulnerable

                    SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                    Cooldown.Instance(5000, UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable)),

        #endregion

        #region Whoa nelly

                    SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                    Cooldown.Instance(2000),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 15, 1, 40, projectileIndex: 3),
                        MultiAttack.Instance(10, 15, 1, 220, projectileIndex: 3),
                        MultiAttack.Instance(10, 15, 1, 130, projectileIndex: 3),
                        //MultiAttack.Instance(10, 15, 1, 310, projectileIndex: 3),
                        MultiAttack.Instance(10, 15, 3, 40, projectileIndex: 2),
                        MultiAttack.Instance(10, 15, 3, 220, projectileIndex: 2),
                        MultiAttack.Instance(10, 15, 3, 130, projectileIndex: 2)
                        //MultiAttack.Instance(10, 15, 3, 310, projectileIndex: 2)
                    ),
                    Cooldown.Instance(2000),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 15, 1, 40, projectileIndex: 3),
                        MultiAttack.Instance(10, 15, 1, 220, projectileIndex: 3),
                        MultiAttack.Instance(10, 15, 1, 130, projectileIndex: 3),
                        //MultiAttack.Instance(10, 15, 1, 310, projectileIndex: 3),
                        MultiAttack.Instance(10, 15, 3, 40, projectileIndex: 2),
                        MultiAttack.Instance(10, 15, 3, 220, projectileIndex: 2),
                        MultiAttack.Instance(10, 15, 3, 130, projectileIndex: 2)
                        //MultiAttack.Instance(10, 15, 3, 310, projectileIndex: 2)
                    ),
                    UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                    Cooldown.Instance(2000),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 15, 1, 40, projectileIndex: 3),
                        MultiAttack.Instance(10, 15, 1, 220, projectileIndex: 3),
                        MultiAttack.Instance(10, 15, 1, 130, projectileIndex: 3),
                        //MultiAttack.Instance(10, 15, 1, 310, projectileIndex: 3),
                        MultiAttack.Instance(10, 15, 3, 40, projectileIndex: 2),
                        MultiAttack.Instance(10, 15, 3, 220, projectileIndex: 2),
                        MultiAttack.Instance(10, 15, 3, 130, projectileIndex: 2)
                        //MultiAttack.Instance(10, 15, 3, 310, projectileIndex: 2)
                    ),
                    Cooldown.Instance(2000),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 15, 1, 40, projectileIndex: 3),
                        MultiAttack.Instance(10, 15, 1, 220, projectileIndex: 3),
                        MultiAttack.Instance(10, 15, 1, 130, projectileIndex: 3),
                        //MultiAttack.Instance(10, 15, 1, 310, projectileIndex: 3),
                        MultiAttack.Instance(10, 15, 3, 40, projectileIndex: 2),
                        MultiAttack.Instance(10, 15, 3, 220, projectileIndex: 2),
                        MultiAttack.Instance(10, 15, 3, 130, projectileIndex: 2)
                        //MultiAttack.Instance(10, 15, 3, 310, projectileIndex: 2)
                    ),
                    Cooldown.Instance(2000),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 15, 1, 40, projectileIndex: 3),
                        MultiAttack.Instance(10, 15, 1, 220, projectileIndex: 3),
                        MultiAttack.Instance(10, 15, 1, 130, projectileIndex: 3),
                        //MultiAttack.Instance(10, 15, 1, 310, projectileIndex: 3),
                        MultiAttack.Instance(10, 15, 3, 40, projectileIndex: 2),
                        MultiAttack.Instance(10, 15, 3, 220, projectileIndex: 2),
                        MultiAttack.Instance(10, 15, 3, 130, projectileIndex: 2)
                        //MultiAttack.Instance(10, 15, 3, 310, projectileIndex: 2)
                    ),
                    Cooldown.Instance(2000),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 15, 1, 40, projectileIndex: 3),
                        MultiAttack.Instance(10, 15, 1, 220, projectileIndex: 3),
                        MultiAttack.Instance(10, 15, 1, 130, projectileIndex: 3),
                        //MultiAttack.Instance(10, 15, 1, 310, projectileIndex: 3),
                        MultiAttack.Instance(10, 15, 3, 40, projectileIndex: 2),
                        MultiAttack.Instance(10, 15, 3, 220, projectileIndex: 2),
                        MultiAttack.Instance(10, 15, 3, 130, projectileIndex: 2)
                        //MultiAttack.Instance(10, 15, 3, 310, projectileIndex: 2)
                    ),

        #endregion 
                    
        #region Confuse Circle

                    SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                    Cooldown.Instance(2000),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 40, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 60, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 50, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 70, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 40, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 60, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 50, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 70, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 40, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 60, projectileIndex: 1)
                    ),
                    UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 50, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 70, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 40, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 60, projectileIndex: 1)
                    ),
                    SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 50, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 70, projectileIndex: 1)
                    ),

                    SetSize.Instance(125),

                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 40, projectileIndex: 1)
                    ),

                    SetSize.Instance(150),

                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 60, projectileIndex: 1)
                    ),

                    SetSize.Instance(175),

                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 50, projectileIndex: 1)
                    ),

                    SetSize.Instance(200),

                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 70, projectileIndex: 1)
                    ),

                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 40, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 60, projectileIndex: 1)
                    ),
                    UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 50, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 70, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 40, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 60, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 50, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 70, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 40, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 60, projectileIndex: 1)
                    ),
                    SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 50, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 70, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 40, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 60, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 50, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 70, projectileIndex: 1)
                    ),
                    SetSize.Instance(175),

                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 40, projectileIndex: 1)
                    ),

                    SetSize.Instance(150),

                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 60, projectileIndex: 1)
                    ),

                    SetSize.Instance(125),

                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 50, projectileIndex: 1)
                    ),

                    SetSize.Instance(100),

                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 70, projectileIndex: 1)
                    ),
                    UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 40, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 60, projectileIndex: 1)
                    ),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 50, projectileIndex: 1)
                    ),
                    SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
                    Cooldown.Instance(500),
                      new RunBehaviors(
                        MultiAttack.Instance(10, 40, 10, 70, projectileIndex: 1)
                    )

        #endregion

                ),
                loot: new LootBehavior(LootDef.Empty,
                    Tuple.Create(100, new LootDef(0, 8, 0, 8,
                        Tuple.Create(0.02, (ILoot)new ItemLoot("Crystal Wand")),
                        Tuple.Create(0.02, (ILoot)new ItemLoot("Crystal Sword")),
                        Tuple.Create(0.5, (ILoot)new StatPotionLoot(StatPotion.Att)),
                        Tuple.Create(0.5, (ILoot)new StatPotionLoot(StatPotion.Def)),
                        Tuple.Create(0.5, (ILoot)new StatPotionLoot(StatPotion.Dex)),
                        Tuple.Create(0.5, (ILoot)new StatPotionLoot(StatPotion.Spd)),
                        Tuple.Create(0.5, (ILoot)new StatPotionLoot(StatPotion.Vit)),
                        Tuple.Create(0.5, (ILoot)new StatPotionLoot(StatPotion.Wis))
                        
                        )))
            ))
            .Init(0x0942, Behaves("Crystal Prisoner Clone",
                new RunBehaviors(
                    Cooldown.Instance(1000, SimpleAttack.Instance(10, projectileIndex: 0)),
                    Cooldown.Instance(7500, Despawn.Instance)
                ),
                IfNot.Instance(
                    Chasing.Instance(2, 10, 3, 0x0941),
                    SimpleWandering.Instance(2f)
                    )
            ))
            .Init(0x0943, Behaves("Crystal Prisoner Steed",
                new RunBehaviors(
                    Cooldown.Instance(1000, SimpleAttack.Instance(10, projectileIndex: 0))
                ),
                IfNot.Instance(
                    Chasing.Instance(2, 10, 5, 0x0941),
                    SimpleWandering.Instance(2f)
                    )
            ));
    }
}
More stuff coming soon.
Credits to this guy who made the basic code?
I wasn't sure who did it, but I'd be happy to credit you, except mpgh doesn't allow editing after 24 hours.

So you'll have to settle with a "yay for ossimc!!!"
@ossimc82 for spending time on making this. How do you possibly download the code and NOT know who it's from?
Because I just got it from Trapped's github, and that's a big mix of different people's work
Quote Originally Posted by Lunati View Post
Because I just got it from Trapped's github, and that's a big mix of different people's work
Well, now I know that From now on I'll give credit where it's due
Posts 1–7 of 7 · Page 1 of 1
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Talk with us