void Start() { model.greenMana.DistinctUntilChanged() .SubscribeToText(view.greenMana); model.blueMana.DistinctUntilChanged() .SubscribeToText(view.blueMana); model.redMana.DistinctUntilChanged() .SubscribeToText(view.redMana); var trigger = gameObject.AddComponent <ObservableEventTrigger>(); trigger.OnDropAsObservable() .Where(_ => !GameManager.Instance.isChoicePrompting) //.Where(e=> e.pointerDrag.GetComponent<CardSpellController>()!=null) .Do(_ => Debug.Log("OnDropMana")) .Subscribe(e => { CardMovement cardToPlay = e.pointerDrag.GetComponent <CardMovement>(); if (cardToPlay == null) { return; } cardToPlay.parentAfterDrag = this.transform; cardToPlay.positionAfterDrag = transform.position + hiddenOffset; CardSpellController spellCard = e.pointerDrag.GetComponent <CardSpellController>(); if (spellCard == null) { return; } hand.Play(spellCard); //ここでdestoryするとenddragが発動しない }); }
public void OnDrop(PointerEventData eventData) { if (eventData.pointerDrag == null) { return; } if (FieldType != FieldType.playerActive) { return; } CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>(); if (card) { Debug.Log(GameManager.Instance.ToString()); (card.GetComponent <WarriorCardVM>().CardObject as Warrior).JoinToFight(); card.DefaultParent = transform; Debug.Log($"Card {card.GetComponent<UnitCardVM>().CardObject.ToString()} join to fight"); Debug.Log($"hand:"); foreach (Unit warrior in GameManager.Instance.Game.HandWarriors) { Debug.Log(warrior.ToString()); } Debug.Log($"activeField:"); foreach (Unit warrior in GameManager.Instance.Game.ActiveWarriors) { Debug.Log(warrior.ToString()); } } }
void Start() { model.cards.ObserveCountChanged() .DistinctUntilChanged() .SubscribeToText(view.trashCounter); var trigger = gameObject.AddComponent <ObservableEventTrigger>(); trigger.OnDropAsObservable() .Where(_ => GameManager.Instance.isDiscarding) .Subscribe(e => { Debug.Log("Trash OnDrop"); CardMovement card = e.pointerDrag.GetComponent <CardMovement>(); if (card != null) { card.parentAfterDrag = this.transform; card.positionAfterDrag = this.transform.position + hiddenOffset; CardController discardedCard = card.GetComponent <CardController>(); model.cards.Add(discardedCard); hand.DiscardForCosts(discardedCard); } }); }
public void OnDrop(PointerEventData data) { CardMovement dragObj = data.pointerDrag.GetComponent<CardMovement>(); if (dragObj != null) { dragObj.parentTransform = this.transform; Debug.Log("ttt"); GameObject clone = GODic[data.pointerDrag.tag]; Instantiate(clone, clone.transform.position, Quaternion.identity, parent); } }
// Описывая функцию OnDrop мы реализует наследуемый IDropHandler интерфейс, // функция срабатывает в момент после того как мы "опустили" карту на стол public void OnDrop(PointerEventData eventData) { // Узнаем игровое поле, на которое упала карта // и присваиваем его упавшей карте как стандартное CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>(); if (card) { card.Parent = this.transform; } }
public void OnDrop(PointerEventData eventData)//OnEndDragより先に起きる { Debug.Log("OnDrop"); CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>(); if (card != null) { card.parentAfterDrag = this.transform; card.positionAfterDrag = this.transform.position; } }
public void OnDrop(PointerEventData data) { Debug.Log(gameObject.name); CardMovement dragObj = data.pointerDrag.GetComponent <CardMovement>(); if (dragObj != null) { dragObj.parentTransform = this.transform; Debug.Log(gameObject.name + "に" + data.pointerDrag.name + "をドロップ(move)"); } }
public void SelectCardToKeep(CardMovement card) { if (keep.Contains(card)) { keep.Remove(card); card.SetPosition(new Vector3(card.transform.localPosition.x, card.transform.localPosition.y + selectionHeight)); } else { keep.Add(card); card.SetPosition(new Vector3(card.transform.localPosition.x, card.transform.localPosition.y - selectionHeight)); } }
public void OnDrop(PointerEventData data) { CommandCount.Add(); CardMovement dragObj = data.pointerDrag.GetComponent <CardMovement>(); if (dragObj != null) { dragObj.parentTransform = this.transform; Debug.Log(gameObject.name + "に" + data.pointerDrag.name + "をドロップ(field)"); if (dragObj.CompareTag("right")) { C.GetComponent <UnityChanAttempt>().RightRun(); // C.transform.Translate(1,0,0); } if (dragObj.CompareTag("left")) { if (C.transform.position.x <= -8) { Instantiate(childObject, new Vector3(400, 250, 0), Quaternion.identity, parent); } else { C.GetComponent <UnityChanAttempt>().LeftRun(); // C.transform.Translate(-1,0,0); } } if (dragObj.CompareTag("up")) { C.GetComponent <UnityChanAttempt>().Jump(); // C.transform.Translate(0,1,0); } if (dragObj.CompareTag("down")) { C.transform.Translate(0, -1, 0); } if (dragObj.CompareTag("rightRun")) { StartCoroutine(C.GetComponent <UnityChanAttempt>().Runx()); } if (dragObj.CompareTag("leftRun")) { StartCoroutine(C.GetComponent <UnityChanAttempt>().Runy()); } if (dragObj.CompareTag("if")) { C.GetComponent <UnityChanAttempt>().ActivateOnCollisionStay(); } } }
public void OnPointerEnter(PointerEventData eventData) { if (eventData.pointerDrag == null || Type == FieldType.SELF_HAND) { return; } CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>(); if (card) { card.DefaultTempCardParent = transform; } }
public void OnPointerExit(PointerEventData eventData) { if (eventData.pointerDrag == null) { return; } CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>(); if (card && card.DefaultTempCardParent == transform) { card.DefaultTempCardParent = card.DefaultParent; } }
public void PlaceReceivedCard(CardMovement cardMover, int handCardCount, Action previousAction, Action nextAction) { var cardPositionInHand = DetermineReceivedCardPlace(handCardCount); Action <Transform> postAction = cardTransform => { //card.transform.Rotate(Quaternion.identity); //card.transform.eulerAngles = frontFlipRotation; CardRotationResolver.Rotate(cardTransform); nextAction(); }; previousAction(); StartCoroutine(cardMover.Move(cardPositionInHand, postAction)); }
public void OnPointerExit(PointerEventData eventData) { //проверяется, перетягивается ли какой-нибудь объект if (eventData.pointerDrag == null) { return; } CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>(); if (card && card.defaultTempCardParent == transform) { card.defaultTempCardParent = card.defaultParent; } }
// Реализовываем наследуемые IPointerEnterHandler, IPointerExitHandler // описывая следующие две функции соответсвенно, они реагируют на начало // нашего контакта с картой и на момент когда этот контакт теряем public void OnPointerEnter(PointerEventData eventData) { // Если мы не перемещаем карту, выходим ничего не делая if (!eventData.pointerDrag) { return; } // Даем знать промежуточной карте ее текущее игровом поле CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>(); if (card) { card.dischargeCardParent = this.transform; } }
GameOverReason CheckGameOver(CardMovement card) { CardData.Settings cardData = card.GetCardData(); if (cardData == null) { return(GameOverReason.OutOfCards); } if (cardManager._yearsPassed > MAX_AGE) { return(GameOverReason.Aged); } if (cardManager.loveLevel <= 0) { return(GameOverReason.NoLove); } if (cardManager.loveLevel >= MAX_LEVEL) { return(GameOverReason.FullLove); } if (cardManager.moneyLevel <= 0) { return(GameOverReason.NoMoney); } if (cardManager.moneyLevel >= MAX_LEVEL) { return(GameOverReason.FullMoney); } if (cardManager.healthLevel <= 0) { return(GameOverReason.NoHealth); } if (cardManager.healthLevel >= MAX_LEVEL) { return(GameOverReason.FullHealth); } if (cardManager.familyLevel <= 0) { return(GameOverReason.NoFun); } if (cardManager.familyLevel >= MAX_LEVEL) { return(GameOverReason.FullFun); } return(GameOverReason.Alive); }
public async Task <IActionResult> MoveCardAsync([FromBody] CardMovement cardMovement) { Column NewColumn = await _context.Columns.FindAsync(cardMovement.NewColumnID); Card ToMove = await _context.Cards.FindAsync(cardMovement.CardID); Column OldColumn = await _context.Columns.FindAsync(ToMove.ColumnId); ToMove.ColumnId = NewColumn.ID; OldColumn.Cards.Remove(ToMove); NewColumn.Cards.Append(ToMove); await _context.SaveChangesAsync(); return(Ok(new { card = ToMove.ID, column = NewColumn.ID })); }
public void OnPointerExit(PointerEventData eventData) { if (!eventData.pointerDrag) { return; } CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>(); // Дополнительное условие, которое возвращает карту на свое старое место, // в случае если мы ее опустим не в игровом поле if (card && card.tempCardParent == this.transform) { card.tempCardParent = card.Parent; } }
public void OnPointerEnter(PointerEventData eventData) { //проверяется, перетягивается ли какой-нибудь объект if (eventData.pointerDrag == null || Type == FieldType.ENEMY_FIELD || Type == FieldType.ENEMY_HAND || Type == FieldType.SELF_HAND) { return; } CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>(); if (card) { card.defaultTempCardParent = transform; } }
public void OnDrop(PointerEventData eventData) { if (Type != FieldType.SELF_FIELD) { return; } CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>(); if (card && card.gameManager.playerFieldCards.Count < 6 && !card.GetComponent <CardInfo>().card.IsPLaced) { card.gameManager.playerHandCards.Remove(card.GetComponent <CardInfo>()); card.gameManager.playerFieldCards.Add(card.GetComponent <CardInfo>()); card.DefaultParent = transform; card.GetComponent <CardInfo>().card.IsPLaced = true; } }
// Описывая функцию OnDrop мы реализует наследуемый IDropHandler интерфейс, // функция срабатывает в момент после того как мы "опустили" карту на стол public void OnDrop(PointerEventData eventData) { // Узнаем игровое поле, на которое упала карта // и присваиваем его упавшей карте как стандартное CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>(); if (card) { card.valet.SetActive(true); card.tempCard.transform.SetParent(GameObject.Find("Canvas").transform); card.tempCard.transform.localPosition = new Vector3(-2000, -2000); card.dischargeCard.transform.SetParent(GameObject.Find("Canvas").transform); card.dischargeCard.transform.localPosition = new Vector3(-2000, -2000); GameObject.Find("Manager").GetComponent <AudioSource>().Play(); card.Die(); } }
// Start is called before the first frame update public void Initialize(Card[] cardList) { Cleanup(); for (var i = 0; i < cardList.Length; i++) { var cardConfiguration = cardConfigurations.Find(x => x.card.type == cardList[i].type); CardMovement cardMovement = Instantiate(cardPrefab).GetComponent <CardMovement>(); cardMovement.transform.SetParent(this.transform); cardMovement.Initialize(cardConfiguration); cardMovement.sprite.sortingOrder = -(cards.Count + Math.Abs(i - 5)); cards.Add(cardMovement); cardMovement.Played += CardMovementOnPlayed; } collider = this.GetComponent <BoxCollider>(); PositionCards(); }
public void OnPointerEnter(PointerEventData eventData) { if (eventData.pointerDrag == null) { return; } if (FieldType != FieldType.playerActive) { return; } CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>(); if (card) { card.TempCardTransform = transform; } }
public void OnDrop(PointerEventData eventData) { if (Type != FieldType.SELF_FIELD) { return; } //Получаем объект (карту), которую мы переносим над областью игрового полz CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>(); if (card) //&& card.LogicManager.PlayerFieldCards.Count <= 5 && // card.LogicManager.IsPlayerTurn) { //card.LogicManager.PlayerFieldCards.Remove(card.GetComponent<CardInfo>()); //card.LogicManager.PlayerFieldCards.Add(card.GetComponent<CardInfo>()); //устанавливаем в качестве дефолтного родителя себя card.defaultParent = transform; } }
public void OnPointerExit(PointerEventData eventData) { if (!eventData.pointerDrag) { return; } CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>(); // Дополнительное условие, которое возвращает карту на свое старое место, // в случае если мы ее опустим не в игровом поле if (card) { card.dischargeCardParent = GameObject.Find("Canvas").transform; card.dischargeCardParent.localPosition = new Vector3(-2000, -2000); card.dischargeCard.transform.SetParent(GameObject.Find("Canvas").transform); card.dischargeCard.transform.localPosition = new Vector3(-2000, -2000); } }
public void OnDrop(PointerEventData data) { Debug.Log(gameObject.name); CardMovement dragObj = data.pointerDrag.GetComponent <CardMovement>(); if (dragObj != null) { dragObj.parentTransform = this.transform; Debug.Log(gameObject.name + "に" + data.pointerDrag.name + "をドロップ(while)"); if (dragObj.tag == "if") { C.GetComponent <UnityChanAttempt>().ActivateOnCollisionStayOnWhile(); } else { ToDoTaskName = dragObj.tag; } } }
public void OnDrop(PointerEventData eventData)//OnEndDragより先に起きる { Debug.Log("OnDrop"); CardMovement card = eventData.pointerDrag.GetComponent <CardMovement>(); if (card != null) { //既存の建物を破壊 //DemolishBuilding(); card.parentAfterDrag = this.transform; card.positionAfterDrag = this.transform.position; this.building = card.GetComponent <CardBuildingController>(); hand.Build(building); GameManager.Instance.isBuilding = false; Debug.Log("GetBuilding: " + this.building); //Debug.Log("Handcount: " + hand.model.cards.Count); } }
void OnCardSwiped(CardMovement swipedCard) { CardData.Outcome outcome = swipedCard.GetSwipeOutcome(); cardManager.ComputeSwipeOutcome(outcome); FillParametersDisplay(); DisplayPlayerData(); ResetSelectors(); CardData.Settings card = cardManager.PickCard(); CardMovement nextCard = (swipedCard == cardGOs [0]) ? cardGOs [1] : cardGOs [0]; GameOverReason overReason = CheckGameOver(nextCard); if (overReason == GameOverReason.Alive) { swipedCard.SetCardData(card); DisplayCardData(nextCard); } else { GameOver.SetupGameOver(overReason, cardManager._initialAge + cardManager._yearsPassed); Scenes.LoadScene(Scenes.GameOver); } }
void Update() { Vector3 mousePosition = Input.mousePosition; mouseWorldPosition = Camera.main.ScreenToWorldPoint(mousePosition); mouseWorldPosition.z = 0; card?.OnMouseMove(mouseWorldPosition); if (isEnabled) { Ray ray = Camera.main.ScreenPointToRay(mousePosition); if (Physics.Raycast(ray, 50f, LayerMask.GetMask("CardManager"))) { cardsManager.OnMouseHover(mousePosition); } if (Input.GetMouseButtonDown(0)) { if (Physics.Raycast(ray, out RaycastHit hit, 50f, LayerMask.GetMask("Card"))) { card = hit.transform.GetComponent <CardMovement>(); if (card != null) { audioSurce.Play(); StartCoroutine(card.DelayedCardMovement(mouseWorldPosition)); } } } } if (Input.GetMouseButtonUp(0) && card != null) { card.inertia = true; card = null; } }
private void Awake()//Awake > Start (処理speed) { view = GetComponent <CardView>(); movement = GetComponent <CardMovement>(); }
private void Awake() { view = GetComponent <CardView>(); movement = GetComponent <CardMovement>(); }