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