Esempio n. 1
0
        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;
 }