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(); } }
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; }
private void Update() { if (Input.GetMouseButtonDown(0)) { if (!TransformService.ContainPos(potionImage.transform as RectTransform, Input.mousePosition, cam)) { if (uiPotionInfo.gameObject.activeSelf) { uiPotionInfo.OnHide(); } } } }
// 파라미터로 받은 캐릭터의 (드래그한)위치가 캐릭터리스트에 있는 캐릭터들 중 하나의 위치에 오면 그 위치에 있는 캐릭터를 반환 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); }
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(); }
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(); }
// 캐릭터 이외의 곳을 클릭했을 때 캐릭터 정보를 꺼주는 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(); } } } }
private static void Transform() { var myService = new TransformService(); _transformResult = myService.Transform(_extractionResult); }
private void MoveForPrepare() { TransformService.SetParentAndMoveRelativeToParent(this.transform, inPrepareParent); }
private void MoveForBattle() { TransformService.SetParentAndMoveRelativeToParent(this.transform, inBattleParent); }
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; } }