Ejemplo n.º 1
0
    void SwapCharacters(UICharacter source, UICharacter destination)
    {
        Transform sourceTransform      = source.transform;
        Transform destinationTransform = destination.transform;

        Transform sourceParent      = sourceTransform.parent;
        Transform destinationParent = destinationTransform.parent;

        sourceTransform.SetParent(destinationParent);
        destinationTransform.SetParent(sourceParent);

        Vector3 sourcePosition      = sourceTransform.position;
        Vector3 destinationPosition = destinationTransform.position;

        sourceTransform.position      = destinationPosition;
        destinationTransform.position = sourcePosition;

        source.FollowCharacter();
        destination.FollowCharacter();

        TransformService.SetFullSize(source.transform as RectTransform);
        TransformService.SetFullSize(destination.transform as RectTransform);

        foreach (var arranger in arrangers)
        {
            arranger.UpdateChildren();
        }
    }
Ejemplo n.º 2
0
    private void EndDrag(UICharacter uiCharacter)
    {
        if (TransformService.ContainPos(uiCharacterArea.transform as RectTransform, uiCharacter.transform.position))
        {
            isMovetoBattleArea = true;
        }
        else if (TransformService.ContainPos(uiPrepareArea.transform as RectTransform, uiCharacter.transform.position))
        {
            isMovetoBattleArea = false;
        }

        uiInGameCharacterInfo.OnHide();
        uiSellArea.OnHide();

        if (isSelling)
        {
            selledCharacterInfo = uiCharacter.DeleteCharacterBySell();
            uiSellArea.gameObject.GetComponent <Image>().color = Color.white;
        }

        //if(!IsNotChanged())
        //{
        //    if (IsPlaceableSpaceFull())
        //    {
        //        if (IsMoveFromPrepareAreaToEmptyBattleArea())
        //        {
        //            SwapCharacters(invisibleCharacter, swappedCharacter);
        //            SwapCharacters(invisibleCharacter, uiCharacter);
        //            isSwapped = false;
        //            return;
        //        }
        //    }
        //}

        //UpdateCurrentPlacedCharacters();
        //SwapCharacters(invisibleCharacter, uiCharacter);
        //UpdateSynergyService(uiCharacter);
        //SetCharacterImage(uiCharacter);


        if (IsPlaceableSpaceFull())
        {
            if (IsMoveFromPrepareAreaToEmptyBattleArea())
            {
                SwapCharacters(invisibleCharacter, swappedCharacter);
                SwapCharacters(invisibleCharacter, uiCharacter);
                isSwapped = false;

                Debug.Log("In!!");
                return;
            }
        }

        SwapCharacters(invisibleCharacter, uiCharacter);
        UpdateCurrentPlacedCharacters(uiCharacter);
        UpdateSynergyService(uiCharacter);
        SetCharacterImage(uiCharacter);

        isSwapped = false;
    }
Ejemplo n.º 3
0
 private void Update()
 {
     if (Input.GetMouseButtonDown(0))
     {
         if (!TransformService.ContainPos(potionImage.transform as RectTransform, Input.mousePosition, cam))
         {
             if (uiPotionInfo.gameObject.activeSelf)
             {
                 uiPotionInfo.OnHide();
             }
         }
     }
 }
Ejemplo n.º 4
0
    // 파라미터로 받은 캐릭터의 (드래그한)위치가 캐릭터리스트에 있는 캐릭터들 중 하나의 위치에 오면 그 위치에 있는 캐릭터를 반환
    public UICharacter GetCharacterByPosition(UICharacter draggedUICharacter)
    {
        UICharacter targetCharacter = null;

        for (int i = 0; i < uiCharacters.Count; ++i)
        {
            if (TransformService.ContainPos(uiCharacters[i].transform as RectTransform, draggedUICharacter.transform.position))
            {
                targetCharacter = uiCharacters[i];
                break;
            }
        }

        return(targetCharacter);
    }
Ejemplo n.º 5
0
    private void BeginDrag(UICharacter uiCharacter)
    {
        if (TransformService.ContainPos(uiCharacterArea.transform as RectTransform, uiCharacter.transform.position))
        {
            isMoveFromBattleArea = true;
        }
        else if (TransformService.ContainPos(uiPrepareArea.transform as RectTransform, uiCharacter.transform.position))
        {
            isMoveFromBattleArea = false;
        }

        parentWhenBeginDrag = uiCharacter.GetComponentInParent <UISlot>();
        SwapCharacters(invisibleCharacter, uiCharacter);
        uiCharacter.SetDefaultImage();
        originalSize = uiCharacter.character.GetSize();
        uiSellArea.UpdatePrice(uiCharacter.characterInfo);
        uiSellArea.OnShow();
    }
Ejemplo n.º 6
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            var logService           = new LogService(new Log());
            var handleService        = new HandleService(logService);
            var transformService     = new TransformService(handleService);
            var captureScreenService = new CaptureWindowService(handleService, logService);
            var cropImageService     = new CropImageService(transformService, logService);
            var saveImageService     = new SaveImageService(cropImageService);

            handleService.MainLoop("Diablo III64");

            var window = new MainWindow
            {
                DataContext = new MainViewModel(captureScreenService, saveImageService)
            };

            window.Show();
        }
Ejemplo n.º 7
0
    // 캐릭터 이외의 곳을 클릭했을 때 캐릭터 정보를 꺼주는 Update문
    private void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            var characterAreaListWithCharacters = uiCharacterArea.GetUICharacterListWithCharacters();
            var prepareAreaListWithCharacters   = uiPrepareArea.GetUICharacterListWithCharacters();

            List <UICharacter> characterListWithCharacters = new List <UICharacter>();
            characterListWithCharacters.AddRange(characterAreaListWithCharacters);
            characterListWithCharacters.AddRange(prepareAreaListWithCharacters);

            var uiCharacter = characterListWithCharacters.Find(t => TransformService.ContainPos(t.transform as RectTransform, Input.mousePosition, cam));
            if (uiCharacter == null)
            {
                if (uiInGameCharacterInfo.gameObject.activeSelf)
                {
                    uiInGameCharacterInfo.OnHide();
                }
            }
        }
    }
Ejemplo n.º 8
0
        private static void Transform()
        {
            var myService = new TransformService();

            _transformResult = myService.Transform(_extractionResult);
        }
 private void MoveForPrepare()
 {
     TransformService.SetParentAndMoveRelativeToParent(this.transform, inPrepareParent);
 }
Ejemplo n.º 10
0
 private void MoveForBattle()
 {
     TransformService.SetParentAndMoveRelativeToParent(this.transform, inBattleParent);
 }
Ejemplo n.º 11
0
    private void Drag(UICharacter uiCharacter)
    {
        Arranger whichArrangersCharacter;

        whichArrangersCharacter = arrangers.Find(t => TransformService.ContainPos(t.transform as RectTransform, uiCharacter.transform.position));

        if (whichArrangersCharacter != null)
        {
            UICharacter targetCharacter = whichArrangersCharacter.GetCharacterByPosition(uiCharacter);

            if (targetCharacter != null)
            {
                if (!isSwapped)
                {
                    // 첫 번째로 다른 자리로 드래그했으면
                    if (targetCharacter != invisibleCharacter)
                    {
                        SwapCharacters(invisibleCharacter, targetCharacter);
                        SetCharacterImage(targetCharacter);
                        swappedCharacter = targetCharacter;
                        isSwapped        = true;
                    }
                }
                else
                {
                    // 드래그하다가 원래 자리로
                    if (targetCharacter == swappedCharacter)
                    {
                        SwapCharacters(invisibleCharacter, targetCharacter);
                        SetCharacterImage(targetCharacter);
                        isSwapped = false;
                    }
                    // 다른 자리로 드래그 후 또 다른 자리로 갔을 경우
                    else if (targetCharacter != invisibleCharacter)
                    {
                        SwapCharacters(invisibleCharacter, swappedCharacter);
                        SetCharacterImage(swappedCharacter);
                        SwapCharacters(invisibleCharacter, targetCharacter);
                        SetCharacterImage(targetCharacter);
                        swappedCharacter = targetCharacter;
                    }
                }

                // 캐릭터 크기 조정
                if (TransformService.ContainPos(uiCharacterArea.transform as RectTransform, uiCharacter.transform.position))
                {
                    uiCharacter.character.SetSize(CharacterService.SIZE_IN_BATTLE_AREA);
                }
                else if (TransformService.ContainPos(uiPrepareArea.transform as RectTransform, uiCharacter.transform.position))
                {
                    uiCharacter.character.SetSize(CharacterService.SIZE_IN_PREPARE_AREA);
                }
            }
        }
        else
        {
            // 드래그 중에 CharacterArea 또는 PrepareArea 이외의 공간에 있는 경우
            if (isSwapped)
            {
                uiCharacter.character.SetSize(originalSize);
                SwapCharacters(swappedCharacter, invisibleCharacter);
                SetCharacterImage(swappedCharacter);
                isSwapped = false;
            }
        }

        // Sell에 드래그했을 때
        if (TransformService.ContainPos(uiSellArea.transform as RectTransform, uiCharacter.transform.position))
        {
            isSelling = true;
            uiSellArea.gameObject.GetComponent <Image>().color = Color.red;
        }
        else
        {
            isSelling = false;
            uiSellArea.gameObject.GetComponent <Image>().color = Color.white;
        }
    }