private void ApplyItemSetEffects(ItemSetRecord itemSet, int count, bool equiped) { if (equiped) { if (count >= 2) { if (count >= 3) { ItemEffectsProvider.RemoveEffects(Character, itemSet.GetSetEffects(count - 2)); } ItemEffectsProvider.AddEffects(Character, itemSet.GetSetEffects(count - 1)); OnSetUpdated(itemSet, count - 1); } } else { if (count >= 1) { if (count >= 2) { ItemEffectsProvider.AddEffects(Character, itemSet.GetSetEffects(count - 1)); } ItemEffectsProvider.RemoveEffects(Character, itemSet.GetSetEffects(count)); OnSetUpdated(itemSet, count); } } }
public static void ItemSetCommand(string value, WorldClient client) { ItemSetRecord set = ItemSetRecord.ItemsSets.Find(x => x.Items.Contains(ushort.Parse(value))); if (set != null) { foreach (ushort item in set.Items) { client.Character.Inventory.AddItem(item, 1); } } else { client.Character.Reply("Set dosent exist"); } }
public int MaximumItemSetCount() { int max = 0; foreach (var item in GetEquipedItems()) { var itemSet = ItemSetRecord.GetItemSet(item.GId); if (itemSet != null) { int current = CountItemSetEquiped(itemSet); if (current > max) { max = current; } } } return(max - 1); }
/// <summary> /// Compte le nombre d'items équipés d'une panoplie /// </summary> /// <param name="itemSet"></param> /// <returns></returns> private int CountItemSetEquiped(ItemSetRecord itemSet) { return(this.GetEquipedItems().Count(entry => itemSet.Items.Contains(entry.GId))); }
/// <summary> /// Lorsque la panoplie a été modifiée /// </summary> /// <param name="set"></param> /// <param name="num"></param> private void OnSetUpdated(ItemSetRecord set, int num) { Character.Client.Send(new SetUpdateMessage((ushort)set.Id, set.Items.ToArray(), set.GetSetEffects(num).ConvertAll(x => (ObjectEffectInteger)x.GetObjectEffect()).ToArray())); }