Exemple #1
0
        public Composite CreateBehavior_ShootPirates()
        {
            var       cannon      = new VehicleWeapon(3, _weaponArticulation, CannonballMuzzleVelocity, CannonballGravity);
            const int readyAuraId = 81513;
            const int aimAuraId   = 81514;
            WoWUnit   charmedUnit = null;

            WoWUnit selectedTarget = null;

            return(new PrioritySelector(
                       ctx => selectedTarget = BestTarget,
                       new Decorator(
                           r => selectedTarget != null,
                           new PrioritySelector(
                               ctx => charmedUnit = Me.CharmedUnit,
                               new Decorator(
                                   ctx => !charmedUnit.HasAura(readyAuraId),
                                   new Action(ctx => Lua.DoString("CastPetAction({0})", 1))),
                               // aim weapon and fire.
                               new Decorator(
                                   ctx => cannon.WeaponAim(selectedTarget),
                                   new Sequence(
                                       new Action(ctx => Lua.DoString("CastPetAction({0})", 2)),
                                       new WaitContinue(2, ctx => charmedUnit.HasAura(aimAuraId), new ActionAlwaysSucceed()),
                                       new Action(ctx => cannon.WeaponFire())))))));
        }
        private Composite CreateBehavior_ShootCatapult()
        {
            WoWUnit target = null;

            return(new PrioritySelector(
                       ctx => target = BestTarget,
                       new Decorator(
                           ctx => target != null && _catapult.WeaponAim(target),
                           new Action(ctx => _catapult.WeaponFire()))));
        }
Exemple #3
0
        public Composite CreateBehavior_Shoot()
        {
            var       cannon      = new VehicleWeapon(3, _weaponArticulation, CannonballMuzzleVelocity, CannonballGravity);
            const int readyAuraId = 81513;
            const int aimAuraId   = 81514;
            WoWUnit   charmedUnit = null;

            const uint boatId = 43561;
            WoWUnit    boat   = null;

            return(new PrioritySelector(
                       ctx => boat = ObjectManager.GetObjectsOfTypeFast <WoWUnit>().FirstOrDefault(u => u.Entry == boatId),
                       new Decorator(
                           r => boat != null,
                           new PrioritySelector(
                               ctx => charmedUnit = Me.CharmedUnit,
                               new Decorator(ctx => !charmedUnit.HasAura(readyAuraId), new Action(ctx => Lua.DoString("CastPetAction({0})", 1))),
                               new Decorator(
                                   ctx => cannon.WeaponAim(boat),
                                   new Sequence(
                                       new Action(ctx => Lua.DoString("CastPetAction({0})", 2)),
                                       new WaitContinue(2, ctx => charmedUnit.HasAura(aimAuraId), new ActionAlwaysSucceed()),
                                       new Action(ctx => cannon.WeaponFire())))))));
        }