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())))); }
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()))))))); }