예제 #1
0
        private void LightSkillsForSelect(SkillInfo skillInfo, GameObject senderObj)
        {
            CloseAbilityViewPopup();

            draggingBlock.SetActive(true);

            var leftAbilitiesBlock       = GetLeftAbilitiesBlock(skillInfo);
            var leftAbilitiesSourceItems = GetLeftSourceItems(skillInfo);

            leftBlockCopy = Instantiate(leftAbilitiesBlock, draggingBlock.transform);
            leftBlockCopy.GetComponent <RectTransform>().anchorMax = Vector2.one * 0.5f;
            leftBlockCopy.GetComponent <RectTransform>().anchorMin = Vector2.one * 0.5f;
            leftBlockCopy.GetComponent <RectTransform>().sizeDelta = mainAbilityLeftBlock.GetComponent <RectTransform>().sizeDelta;
            leftBlockCopy.transform.position = leftAbilitiesBlock.transform.position;

            AbilitySelectedItem[] copySelItems = leftBlockCopy.GetComponentsInChildren <AbilitySelectedItem>();
            for (int i = 0; i < copySelItems.Length && i < leftAbilitiesSourceItems.Length; i++)
            {
                var ab = copySelItems[i];

                ab.SetSourceItem(leftAbilitiesSourceItems[i], i);
                ab.SetOneListener(this);
                ab.SetLighted(true);
            }

            GameObject copyDraggedAbility = Instantiate(senderObj, draggingBlock.transform);

            copyDraggedAbility.transform.position = senderObj.transform.position;
            rightItemCopy = copyDraggedAbility.GetComponent <AbilityDraggingItem>();
            rightItemCopy.SetOneListener(this);

            selectedSkillInfo = skillInfo;
        }
예제 #2
0
        private void ApplyAbilityTo(AbilitySelectedItem selItem)
        {
            userData.SetSkillByIndex(selectedSkillInfo.Id, selItem.SourceItemIndex);
            selItem.SourceItem.Setup(contentFactory.GetSpriteById(selectedSkillInfo.Id));

            GameObject.Destroy(leftBlockCopy); leftBlockCopy            = null;
            GameObject.Destroy(rightItemCopy.gameObject); rightItemCopy = null;
            draggingBlock.SetActive(false);
        }
예제 #3
0
        public AbilityDraggingItem CreateDraggingAbility(SkillInfo skillInfo, Transform root)
        {
            var skillSprite = GetSpriteById(skillInfo.Id);

            GameObject          newSkillObj = Instantiate(abilityDraggingItemPrefab, root);
            AbilityDraggingItem ret         = newSkillObj.GetComponent <AbilityDraggingItem>();

            ret.Setup(skillInfo, skillSprite);

            return(ret);
        }
예제 #4
0
        public override void OnStartState(IStateMachine stateMachine, params object[] args)
        {
            base.OnStartState(stateMachine, args);
            this.Inject();

            leftBlockCopy = null;
            rightItemCopy = null;
            abilityViewPopup.SetOneListener(this);

            CloseAbilityViewPopup();

            skinPerson = contentFactory.GetPlayerPerson();
            skinPerson.SetActive(false);

            SetupMainAbilities();
            SetupActiveAbilities();
        }
예제 #5
0
        private void SetupMainAbilities()
        {
            ClearAbilities(curMainAbilities);

            abilityMainIcon.Setup(contentFactory.GetSpriteById(userData.GetCurrentCharacter().skill_set.main_skill));

            var appConfig       = MainContainer.Container.Resolve <AppConfig>();
            var availableSkills = appConfig.Skills.Where(s => s.IsEnabled && s.Type == SkillType.Main).ToList();

            //TODO: just for test
            userData.SetSkillConfig(appConfig);

            foreach (var skill in availableSkills)
            {
                AbilityDraggingItem newItem = contentFactory.CreateDraggingAbility(skill, mainAbilityRoot);
                newItem.SetOneListener(this);
                curMainAbilities.Add(newItem.gameObject);
            }
        }
예제 #6
0
        private void SetupActiveAbilities()
        {
            ClearAbilities(curActiveAbilities);

            var activeSkills = userData.GetCurrentCharacter().skill_set.active_skills;

            for (int i = 0; i < activeAbilityIcons.Length && i < activeSkills.Length; i++)
            {
                activeAbilityIcons[i].Setup(contentFactory.GetSpriteById(activeSkills[i]));
            }


            var appConfig       = MainContainer.Container.Resolve <AppConfig>();
            var availableSkills = appConfig.Skills.Where(s => s.IsEnabled && s.Type != SkillType.Main && s.Type != SkillType.Passive).ToList();

            foreach (var skill in availableSkills)
            {
                AbilityDraggingItem newItem = contentFactory.CreateDraggingAbility(skill, activeAbilitiesRoot);
                newItem.SetOneListener(this);
                curActiveAbilities.Add(newItem.gameObject);
            }
        }