public static bool UseWand_OnAction(string args) { if (MacroHandlers._wandEffects == null) { MacroHandlers._wandEffects = MacroHandlers.CreateWandEffectTable(); } WandEffect effect; if (MacroHandlers._wandEffects.TryGetValue(args, out effect)) { Mobile player = World.Player; if (player != null) { Item pickUp = WandRepository.Find(effect); if (pickUp != null) { if (pickUp.Parent == player) { pickUp.Use(); } else { Item equip1 = player.FindEquip(Layer.OneHanded); if (equip1 != null) { Item backpack = player.Backpack; if (backpack != null) { new MoveContext(equip1, equip1.Amount, (IEntity)backpack, false).Enqueue(); } } Item equip2 = player.FindEquip(Layer.TwoHanded); if (equip2 != null) { Item backpack = player.Backpack; if (backpack != null) { new MoveContext(equip2, equip2.Amount, (IEntity)backpack, false).Enqueue(); } } new EquipContext(pickUp, pickUp.Amount, player, false).Enqueue(); new UseContext((IEntity)pickUp, false).Enqueue(); } } else { Engine.AddTextMessage("Wand not found.", Engine.DefaultFont, Hues.Load(38)); } } } return(true); }
public WandController() { WandRepository repository = new WandRepository(); _service = new WandService(repository); }
public WandService(WandRepository wandRepository) { _wandRepository = wandRepository; }