Ejemplo n.º 1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="fighter"></param>
 /// <param name="weapon"></param>
 public void CheckWeapon(AbstractFighter fighter, ItemTemplateDAO weapon)
 {
     foreach (var challenge in m_challenges)
     {
         challenge.CheckWeapon(fighter, weapon);
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 ///
 /// </summary>
 private void AddToSell(ItemTemplateDAO item)
 {
     listViewSellList.Items.Add(new ListViewItem(new string[] {
         item.Id.ToString(),
         item.Name
     })
     {
         Tag = item
     });
 }
 /// <summary>
 /// 
 /// </summary>
 private void AddToSell(ItemTemplateDAO item)
 {
     listViewSellList.Items.Add(new ListViewItem(new string[] {
         item.Id.ToString(),
         item.Name
     })
     {
         Tag = item
     });
 }
 /// <summary>
 /// 
 /// </summary>
 private void CheckCraftable()
 {
     m_craftItem = (m_caseItems.Count > 0) ? Skill.Craftables.Find(entry => entry.MatchCraft(m_templateQuantity)) : null;
 }
Ejemplo n.º 5
0
 /// <summary>
 ///
 /// </summary>
 private void CheckCraftable()
 {
     m_craftItem = (m_caseItems.Count > 0) ? Skill.Craftables.Find(entry => entry.MatchCraft(m_templateQuantity)) : null;
 }
Ejemplo n.º 6
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="fighter"></param>
 /// <param name="weaponTemplate"></param>
 public virtual void CheckWeapon(AbstractFighter fighter, ItemTemplateDAO weaponTemplate)
 {
 }
Ejemplo n.º 7
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="fighter"></param>
 /// <param name="weapon"></param>
 public void CheckWeapon(AbstractFighter fighter, ItemTemplateDAO weapon)
 {
     foreach (var challenge in m_challenges)
             challenge.CheckWeapon(fighter, weapon);
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="fighter"></param>
 /// <param name="weaponTemplate"></param>
 public virtual void CheckWeapon(AbstractFighter fighter, ItemTemplateDAO weaponTemplate)
 {
 }
Ejemplo n.º 9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="item"></param>
        /// <param name="slot"></param>
        /// <param name="quantity"></param>
        public void MoveItem(ItemDAO item, ItemSlotEnum slot, int quantity = 1)
        {
            if (slot == item.Slot)
            {
                return;
            }

            if (quantity > item.Quantity || quantity < 1)
            {
                quantity = item.Quantity;
            }

            if (item.IsEquiped && !ItemDAO.IsEquipedSlot(slot))
            {
                if (item.IsBoostEquiped)
                {
                    Entity.Statistics.UnMerge(StatsType.TYPE_BOOST, item.Statistics);
                }
                else
                {
                    Entity.Statistics.UnMerge(StatsType.TYPE_ITEM, item.Statistics);
                }

                if (item.Slot == ItemSlotEnum.SLOT_WEAPON)
                {
                    Entity.Dispatch(WorldMessage.JOB_TOOL_EQUIPPED());
                }

                item.SlotId         = (int)slot;
                m_entityLookRefresh = true;
                bool merged = AddItem(MoveQuantity(item, 1));

                RemoveSet(item);

                // send new stats
                if (Entity.Type == EntityTypeEnum.TYPE_CHARACTER)
                {
                    Entity.MovementHandler.Dispatch(WorldMessage.ENTITY_OBJECT_ACTUALIZE(Entity));

                    CachedBuffer = true;
                    if (!merged)
                    {
                        Dispatch(WorldMessage.OBJECT_MOVE_SUCCESS(item.Id, item.SlotId));
                    }
                    Dispatch(WorldMessage.ACCOUNT_STATS((CharacterEntity)Entity));
                    if (item.Template.SetId != 0)
                    {
                        Dispatch(WorldMessage.ITEM_SET(item.Template.Set, Items.Where(entry => entry.Template.SetId == item.Template.SetId && entry.IsEquiped)));
                    }
                    CachedBuffer = false;
                }
                return;
            }
            else if (!item.IsEquiped && ItemDAO.IsEquipedSlot(slot))
            {
                if (!ItemTemplateDAO.CanPlaceInSlot((ItemTypeEnum)item.Template.Type, slot))
                {
                    base.Dispatch(WorldMessage.OBJECT_MOVE_ERROR());
                    return;
                }

                // level required
                if (Entity.Level < item.Template.Level)
                {
                    base.Dispatch(WorldMessage.OBJECT_MOVE_ERROR_REQUIRED_LEVEL());
                    return;
                }

                // Already equiped template
                if (HasTemplateEquiped(item.TemplateId))
                {
                    base.Dispatch(WorldMessage.OBJECT_MOVE_ERROR_ALREADY_EQUIPED());
                    return;
                }

                if (Entity.Type == EntityTypeEnum.TYPE_CHARACTER)
                {
                    if (!item.SatisfyConditions((CharacterEntity)Entity))
                    {
                        base.Dispatch(WorldMessage.INFORMATION_MESSAGE(InformationTypeEnum.ERROR, InformationEnum.ERROR_CONDITIONS_UNSATISFIED));
                        return;
                    }
                }

                var equipedItem = Items.Find(entry => entry.SlotId == (int)slot && entry.Id != item.Id);

                // already equiped in slot ? remove it
                if (equipedItem != null)
                {
                    MoveItem(equipedItem, ItemSlotEnum.SLOT_INVENTORY);
                }

                m_entityLookRefresh = true;
                var newItem = MoveQuantity(item, 1);
                newItem.SlotId = (int)slot;
                AddItem(newItem, false);

                AddSet(newItem);

                if (item.IsBoostEquiped)
                {
                    Entity.Statistics.Merge(StatsType.TYPE_BOOST, item.Statistics);
                }
                else
                {
                    Entity.Statistics.Merge(StatsType.TYPE_ITEM, item.Statistics);
                }

                // send new stats
                if (Entity.Type == EntityTypeEnum.TYPE_CHARACTER)
                {
                    Entity.MovementHandler.Dispatch(WorldMessage.ENTITY_OBJECT_ACTUALIZE(Entity));

                    base.CachedBuffer = true;
                    Entity.MovementHandler.Dispatch(WorldMessage.ENTITY_OBJECT_ACTUALIZE(Entity));
                    base.Dispatch(WorldMessage.ACCOUNT_STATS((CharacterEntity)Entity));
                    if (item.Template.SetId != 0)
                    {
                        base.Dispatch(WorldMessage.ITEM_SET(item.Template.Set, Items.Where(entry => entry.Template.SetId == item.Template.SetId && entry.IsEquiped)));
                    }
                    if (newItem.Slot == ItemSlotEnum.SLOT_WEAPON)
                    {
                        var character = (CharacterEntity)Entity;
                        character.CharacterJobs.ToolEquipped(item.TemplateId);
                    }
                    base.CachedBuffer = false;
                }
            }
            else
            {
                var newItem = MoveQuantity(item, quantity);
                newItem.SlotId = (int)slot;
                if (!AddItem(newItem, false))
                {
                    base.Dispatch(WorldMessage.OBJECT_MOVE_SUCCESS(item.Id, item.SlotId));
                }
            }
        }