示例#1
0
        public bool Execute(params object[] Params)
        {
            if (Params.Length != 1)
            {
                return(false);
            }

            Habbo Player = (Habbo)Params[0];

            if (Player == null)
            {
                return(false);
            }

            foreach (Item Item in this.SetItems.Values.ToList())
            {
                if (Item == null || !Instance.GetRoomItemHandler().GetFloor.Contains(Item) || !Item.IsWired)
                {
                    continue;
                }

                IWiredItem WiredItem;
                if (Instance.GetWired().TryGet(Item.Id, out WiredItem))
                {
                    if (WiredItem.Type == WiredBoxType.EffectExecuteWiredStacks)
                    {
                        continue;
                    }
                    else
                    {
                        ICollection <IWiredItem> Effects = Instance.GetWired().GetEffects(WiredItem);
                        if (Effects.Count > 0)
                        {
                            foreach (IWiredItem EffectItem in Effects.ToList())
                            {
                                if (SetItems.ContainsKey(EffectItem.Item.Id) && EffectItem.Item.Id != Item.Id)
                                {
                                    continue;
                                }
                                else if (EffectItem.Type == WiredBoxType.EffectExecuteWiredStacks)
                                {
                                    continue;
                                }
                                else
                                {
                                    EffectItem.Execute(Player);
                                }
                            }
                        }
                    }
                }
                else
                {
                    continue;
                }
            }

            return(true);
        }
示例#2
0
        public bool Execute(params object[] Params)
        {
            if (Params.Length != 1)
            {
                return(false);
            }

            var player = (Habbo)Params[0];

            if (player == null)
            {
                return(false);
            }

            foreach (var item in SetItems.Values.ToList())
            {
                if (item == null || !Instance.GetRoomItemHandler().GetFloor.Contains(item) || !item.IsWired)
                {
                    continue;
                }

                IWiredItem wiredItem;
                if (Instance.GetWired().TryGet(item.Id, out wiredItem))
                {
                    if (wiredItem.Type == WiredBoxType.EffectExecuteWiredStacks)
                    {
                        continue;
                    }

                    var effects = Instance.GetWired().GetEffects(wiredItem);
                    if (effects.Count > 0)
                    {
                        foreach (var effectItem in effects.ToList())
                        {
                            if (SetItems.ContainsKey(effectItem.Item.Id) && effectItem.Item.Id != item.Id)
                            {
                                continue;
                            }
                            if (effectItem.Type == WiredBoxType.EffectExecuteWiredStacks)
                            {
                                continue;
                            }

                            effectItem.Execute(player);
                        }
                    }
                }
            }

            return(true);
        }
        private void ExecuteWiredStacks(Habbo Player)
        {
            foreach (Item Item in this.SetItems.Values.ToList())
            {
                if (Item == null || !Instance.GetRoomItemHandler().GetFloor.Contains(Item) || !Item.IsWired)
                {
                    continue;
                }

                IWiredItem WiredItem;
                if (Instance.GetWired().TryGet(Item.Id, out WiredItem))
                {
                    if (WiredItem.Type == WiredBoxType.EffectExecuteWiredStacks)
                    {
                        continue;
                    }
                    else
                    {
                        ICollection <IWiredItem> Effects = Instance.GetWired().GetEffects(WiredItem);
                        if (Effects.Count > 0)
                        {
                            foreach (IWiredItem EffectItem in Effects.ToList())
                            {
                                if (SetItems.ContainsKey(EffectItem.Item.Id) && EffectItem.Item.Id != Item.Id)
                                {
                                    continue;
                                }
                                else if (EffectItem.Type == WiredBoxType.EffectExecuteWiredStacks)
                                {
                                    continue;
                                }
                                else
                                {
                                    EffectItem.Execute(Player);
                                }
                            }
                        }
                    }
                }
                else
                {
                    continue;
                }
            }
        }
        public bool Execute(params object[] Params)
        {
            if (Params.Length == 0)
            {
                return(false);
            }

            Habbo Player = (Habbo)Params[0];

            if (Player == null)
            {
                return(false);
            }

            if (Player.CurrentRoom == null)
            {
                return(false);
            }

            RoomUser User = Player.CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Player.Username);

            if (User == null)
            {
                return(false);
            }

            List <Item> ItemsOnSquare = Instance.GetGameMap().GetAllRoomItemForSquare(User.X, User.Y);

            foreach (Item Item in ItemsOnSquare.ToList())
            {
                if (SetItems.ContainsKey(Item.Id))
                {
                    return(false);
                }
                else
                {
                    continue;
                }
            }

            return(true);
        }
示例#5
0
        public bool Execute(params object[] Params)
        {
            if (Params.Length == 0)
            {
                return(false);
            }

            var player = (Habbo)Params[0];

            if (player == null)
            {
                return(false);
            }
            if (player.CurrentRoom == null)
            {
                return(false);
            }

            var user = player.CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(player.Username);

            if (user == null)
            {
                return(false);
            }

            var itemsOnSquare = Instance.GetGameMap().GetAllRoomItemForSquare(user.X, user.Y);

            foreach (var item in itemsOnSquare.ToList())
            {
                if (!SetItems.ContainsKey(item.Id))
                {
                    continue;
                }

                return(true);
            }

            return(false);
        }
示例#6
0
        public bool Execute(params object[] Params)
        {
            var Player = (Habbo)Params[0];

            if (Player == null)
            {
                return(false);
            }

            var Item = (Item)Params[1];

            if (Item == null)
            {
                return(false);
            }

            if (!SetItems.ContainsKey(Item.Id))
            {
                return(false);
            }

            var Effects    = Instance.GetWired().GetEffects(this);
            var Conditions = Instance.GetWired().GetConditions(this);

            foreach (var Condition in Conditions)
            {
                if (!Condition.Execute(Player))
                {
                    return(false);
                }

                if (Instance != null)
                {
                    Instance.GetWired().OnEvent(Condition.Item);
                }
            }

            //Check the ICollection to find the random addon effect.
            var HasRandomEffectAddon = Effects.Count(x => x.Type == WiredBoxType.AddonRandomEffect) > 0;

            if (HasRandomEffectAddon)
            {
                //Okay, so we have a random addon effect, now lets get the IWiredItem and attempt to execute it.
                var RandomBox = Effects.FirstOrDefault(x => x.Type == WiredBoxType.AddonRandomEffect);
                if (!RandomBox.Execute())
                {
                    return(false);
                }

                //Success! Let's get our selected box and continue.
                var SelectedBox = Instance.GetWired().GetRandomEffect(Effects.ToList());
                if (!SelectedBox.Execute())
                {
                    return(false);
                }

                //Woo! Almost there captain, now lets broadcast the update to the room instance.
                if (Instance != null)
                {
                    Instance.GetWired().OnEvent(RandomBox.Item);
                    Instance.GetWired().OnEvent(SelectedBox.Item);
                }
            }
            else
            {
                foreach (var Effect in Effects)
                {
                    if (!Effect.Execute(Player))
                    {
                        return(false);
                    }

                    if (Instance != null)
                    {
                        Instance.GetWired().OnEvent(Effect.Item);
                    }
                }
            }

            return(true);
        }
示例#7
0
        public bool Execute(params object[] Params)
        {
            var player = (Habbo)Params[0];

            if (player == null)
            {
                return(false);
            }

            var item = (Item)Params[1];

            if (item == null)
            {
                return(false);
            }

            if (!SetItems.ContainsKey(item.Id))
            {
                return(false);
            }

            var effects    = Instance.GetWired().GetEffects(this);
            var conditions = Instance.GetWired().GetConditions(this);

            foreach (var condition in conditions.ToList())
            {
                if (!condition.Execute(player))
                {
                    return(false);
                }

                Instance?.GetWired().OnEvent(condition.Item);
            }

            var hasRandomEffectAddon = effects.Count(x => x.Type == WiredBoxType.AddonRandomEffect) > 0;

            if (hasRandomEffectAddon)
            {
                var randomBox = effects.FirstOrDefault(x => x.Type == WiredBoxType.AddonRandomEffect);
                if (randomBox != null && !randomBox.Execute())
                {
                    return(false);
                }

                var selectedBox = Instance.GetWired().GetRandomEffect(effects.ToList());
                if (!selectedBox.Execute())
                {
                    return(false);
                }

                if (Instance == null)
                {
                    return(true);
                }

                Instance.GetWired().OnEvent(randomBox?.Item);
                Instance.GetWired().OnEvent(selectedBox.Item);
            }
            else
            {
                foreach (var effect in effects.ToList())
                {
                    if (!effect.Execute(player))
                    {
                        return(false);
                    }

                    Instance?.GetWired().OnEvent(effect.Item);
                }
            }

            return(true);
        }
        public bool Execute(params object[] Params)
        {
            Habbo Player = (Habbo)Params[0];

            if (Player == null)
            {
                return(false);
            }

            RoomUser User = Player.CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Player.Username);

            if (User == null)
            {
                return(false);
            }

            Item Item = (Item)Params[1];

            if (Item == null)
            {
                return(false);
            }

            //if (User.Z != Item.TotalHeight + Item.GetZ && !Item.Data.IsSeat && Item.Data.InteractionType != InteractionType.BED)
            //    return false;

            if (!User.isRolling && User.Z != Item.TotalHeight && !Item.Data.IsSeat)
            {
                return(false);
            }

            if (!SetItems.ContainsKey(Item.Id))
            {
                return(false);
            }

            ICollection <IWiredItem> Effects    = Instance.GetWired().GetEffects(this);
            ICollection <IWiredItem> Conditions = Instance.GetWired().GetConditions(this);

            foreach (IWiredItem Condition in Conditions.ToList())
            {
                if (!Condition.Execute(Player))
                {
                    return(false);
                }

                if (Instance != null)
                {
                    Instance.GetWired().OnEvent(Condition.Item);
                }
            }

            //Check the ICollection to find the random addon effect.
            bool HasRandomEffectAddon = Effects.Where(x => x.Type == WiredBoxType.AddonRandomEffect).ToList().Count() > 0;

            if (HasRandomEffectAddon)
            {
                //Okay, so we have a random addon effect, now lets get the IWiredItem and attempt to execute it.
                IWiredItem RandomBox = Effects.FirstOrDefault(x => x.Type == WiredBoxType.AddonRandomEffect);
                if (!RandomBox.Execute())
                {
                    return(false);
                }

                //Success! Let's get our selected box and continue.
                IWiredItem SelectedBox = Instance.GetWired().GetRandomEffect(Effects.ToList());
                if (!SelectedBox.Execute())
                {
                    return(false);
                }

                //Woo! Almost there captain, now lets broadcast the update to the room instance.
                if (Instance != null)
                {
                    Instance.GetWired().OnEvent(RandomBox.Item);
                    Instance.GetWired().OnEvent(SelectedBox.Item);
                }
            }
            else
            {
                foreach (IWiredItem Effect in Effects.ToList())
                {
                    if (!Effect.Execute(Player))
                    {
                        return(false);
                    }

                    if (Instance != null)
                    {
                        Instance.GetWired().OnEvent(Effect.Item);
                    }
                }
            }

            return(true);
        }