Example #1
0
 private void BeginDrag(UISlot uiSlot)
 {
     if (uiSlot is BaseItemSlot)
     {
         BaseItemSlot itemSlot = uiSlot as BaseItemSlot;
         if (itemSlot.Item != null)
         {
             dragItemSlot                     = itemSlot;
             draggableIcon.sprite             = itemSlot.Item.Icon;
             draggableIcon.transform.position = Input.mousePosition;
             draggableIcon.gameObject.SetActive(true);
         }
     }
     else if (uiSlot is BaseSkillSlot)
     {
         BaseSkillSlot skillSlot = uiSlot as BaseSkillSlot;
         if (skillSlot.Skill != null)
         {
             dragSkillSlot                    = skillSlot;
             draggableIcon.sprite             = skillSlot.Skill.Icon;
             draggableIcon.transform.position = Input.mousePosition;
             draggableIcon.gameObject.SetActive(true);
         }
     }
 }
 private void EventHelper(BaseSkillSlot skillSlot, Action <BaseSkillSlot> action)
 {
     if (action != null)
     {
         action(skillSlot);
     }
 }
Example #3
0
        static private SlotLevel GetLevel(BaseSkillSlot slot)
        {
            if (!slot.ParentBranch.ParentTree.BreakthroughSkill.TryAssign(out var breakthroughSlot))
            {
                return(SlotLevel.Basic);
            }

            switch (slot.ParentBranch.Index.CompareTo(breakthroughSlot.ParentBranch.Index))
            {
            case -1: return(SlotLevel.Basic);

            case 0: return(SlotLevel.Breakthrough);

            case +1: return(SlotLevel.Advanced);

            default: return(0);
            }
        }
Example #4
0
    private void Drop(UISlot dropUISlot)
    {
        if (dropUISlot is BaseItemSlot)
        {
            BaseItemSlot dropItemSlot = dropUISlot as BaseItemSlot;
            if (dragItemSlot == null)
            {
                return;
            }

            if (dropItemSlot.CanAddStack(dragItemSlot.Item))
            {
                AddStacks(dropItemSlot);
            }
            else if (dropItemSlot.CanReceiveItem(dragItemSlot.Item) && dragItemSlot.CanReceiveItem(dropItemSlot.Item))
            {
                SwapItems(dropItemSlot);
            }
        }
        else if (dropUISlot is BaseSkillSlot)
        {
            BaseSkillSlot dropSkillSlot = dropUISlot as BaseSkillSlot;
            if (dragSkillSlot == null)
            {
                return;
            }

            if (dropSkillSlot is UsableSkillSlot)
            {
                ActiveSkill holdSkill = dragSkillSlot.Skill as ActiveSkill;
                if (dragSkillSlot is UsableSkillSlot)
                {
                    SkillWindow.RemoveSkill(holdSkill);
                    if (dropSkillSlot.Skill)
                    {
                        SkillWindow.EquipSkill(dropSkillSlot.Skill as ActiveSkill, 0, dragSkillSlot as UsableSkillSlot);
                    }
                }
                SkillWindow.EquipSkill(holdSkill, 0, dropUISlot as UsableSkillSlot);
            }
        }
    }
        /// <summary>
        /// Internal use for setting a required slot.
        /// </summary>
        /// <param name="comp">The component that this SkillSlot is setting. Not the required slot.</param>
        public void SetRequiredSlot(BaseSkillSlot comp)
        {
            bool success = false;
            var  reqrow  = RequiredSkillSlot.x;
            var  reqcol  = RequiredSkillSlot.y;

            if (comp.transform.root.Find("Row" + reqrow) is Transform reqrowTrans &&
                reqrowTrans.Find("Col" + reqcol) is Transform reqcolTrans)
            {
                var reqslot = reqcolTrans.GetComponent <BaseSkillSlot>();
                if (reqslot)
                {
                    At.SetField(comp, "m_requiredSkillSlot", reqslot);
                    success = true;
                }
            }

            if (!success)
            {
                SL.Log("Could not set required slot. Maybe it's not set yet?");
            }
        }
Example #6
0
 private void EndDrag(UISlot itemSlot)
 {
     dragItemSlot  = null;
     dragSkillSlot = null;
     draggableIcon.gameObject.SetActive(false);
 }
Example #7
0
        // for creating a SkillSlot on a transform
        public static SkillSlot CreateSkillSlot(Transform row, string name, int refSkillID, int requiredMoney, BaseSkillSlot requiredSlot = null, bool isBreakthrough = false, int column = 1)
        {
            var slotObj = new GameObject(name);

            slotObj.transform.parent = row;

            var slot = slotObj.AddComponent <SkillSlot>();

            At.SetValue(ResourcesPrefabManager.Instance.GetItemPrefab(refSkillID) as Skill, typeof(SkillSlot), slot, "m_skill");
            At.SetValue(requiredMoney, typeof(SkillSlot), slot, "m_requiredMoney");
            At.SetValue(column, typeof(BaseSkillSlot), slot as BaseSkillSlot, "m_columnIndex");

            if (requiredSlot != null)
            {
                At.SetValue(requiredSlot, typeof(BaseSkillSlot), slot, "m_requiredSkillSlot");
            }

            if (isBreakthrough)
            {
                slot.IsBreakthrough = true;
            }

            return(slot);
        }