// void RefreshAddBehaviorButton() // { // addBehaviorButtonTransform.SetAsLastSibling(); // } public Card ReplaceCard(ICardAssignmentModel assignment, CardContainer container) { int index = model.GetIndexOf(container.GetCard().GetCardAssignment()); cardManager.UnassignCard(container.GetCard().GetCardAssignment()); return(AcceptAssignedCard(assignment, index)); }
internal void DeleteCardsMatching(ICardAssignmentModel assignedModel) { List <CardContainer> toRemove = new List <CardContainer>( from container in containers where container.GetCard().GetCardAssignment() == assignedModel select container); toRemove.ForEach(container => RemoveCardContainer(container)); }
public Card AcceptAssignedCard(ICardAssignmentModel assignedCard, int index = -1) { Debug.Assert(assignedCard != null, "AcceptAssignedCard called with null assignment"); ICardModel unassignedCard = assignedCard.GetCard(); // We need to unassign it. But make sure we keep the property assignments. PropEditor[] props = assignedCard.GetProperties(); cardManager.UnassignCard(assignedCard); return(AcceptCard(unassignedCard, index, props)); }
private Card AddCardFromModel(ICardAssignmentModel assignment) { Card card = Instantiate(cardPrefab); card.Populate(assignment); card.AddListener((eventCard, eventType, eventData) => { switch (eventType) { case Card.EventType.POINTER_DOWN: cardManager.OnPointerDownCard(eventCard); break; case Card.EventType.POINTER_UP: cardManager.OnPointerUpCard(eventCard); break; case Card.EventType.BEGIN_DRAG: cardManager.BeginDrag(); break; default: break; } }); card.OnClick = () => onCardClicked?.Invoke(card); // Create container for the card CardContainer newContainer = Instantiate(cardContainerPrefab, transform).GetComponentInChildren <CardContainer>(); int index = this.model.GetIndexOf(card.GetCardAssignment()); newContainer.rectTransform.transform.SetSiblingIndex(index); newContainer.SetSize(CardManager.BASE_CARD_SIZE); newContainer.scaleOnFocus = false; newContainer.deck = this; newContainer.onPointerDown += () => cardManager.OnPointerDownCard(newContainer.GetCard()); newContainer.onPointerUp += (dragging) => cardManager.OnPointerUpCard(newContainer.GetCard()); newContainer.onPointerEnter += () => cardManager.OnPointerEnterContainer(newContainer); newContainer.onBeginDrag += cardManager.BeginDrag; containers.Add(newContainer); newContainer.SetCard(card); newContainer.TriggerAddEffect(); ResortCards(); return(card); }
internal void UnassignCard(ICardAssignmentModel assignedModel) { if (!assignedModel.IsValid()) { return; } //I think this was redundant // if (focusCard != null && focusCard.GetAssignedCard() == assignedModel) // { // focusCard.RequestDestroy(); // } foreach (var slot in cardSlots) { slot.DeleteCardsMatching(assignedModel); } assignedModel.Unassign(); }
public void Populate(ICardAssignmentModel assignment, bool withDetail = false) { if (assignment == null || !assignment.IsValid()) { return; } this.Populate(assignment.GetCard()); this.assignment = assignment; if (withDetail) { props.Setup(assignment.GetAssignedBehavior().GetProperties()); props.onValueChanged += (fd) => { onPropChanged?.Invoke(fd); MaybeUpdateRuntimeCardStatus(force: true); }; } }
public virtual void Populate(ICardModel card, bool withDetail = false) { if (card == null || !card.IsValid()) { return; } // Debug this.name = $"Card '{card.GetTitle()}'"; this.card = card; this.assignment = null; cardUI.nameField.text = card.GetTitle(); cardUI.descriptionField.text = card.GetDescription(); if (withDetail) { props.SetupPreview(card.GetUnassignedBehaviorItem()); } customFlag.SetActive(!card.IsBuiltin()); ReloadCardImage(); }
/* * * //TODO: THIS DOES NOT WORK * IEnumerator HideRoutine() * { * float timer = 0; * while (timer < HIDE_ANIMATION_DURATION) * { * timer += Time.unscaledDeltaTime; * float percent = Mathf.Clamp01(timer / HIDE_ANIMATION_DURATION); * canvasGroup.alpha = 1 - percent; * yield return null; * } * * gameObject.SetActive(false); * } */ public void Populate(ICardAssignmentModel assignedCard, CardContainer container) { if (assignedCard == null || !assignedCard.IsValid()) { return; } this.cardContainer = container; card.Populate(assignedCard, true); if (assignedCard.GetCard().IsBuiltin()) { codeText.SetText("Duplicate and edit javascript"); previewButton.gameObject.SetActive(true); } else { codeText.SetText("Edit javascript"); previewButton.gameObject.SetActive(false); } trashButton.gameObject.SetActive(true); noPropertiesObject.SetActive(!card.HasAnyProps()); UpdateAddToSlotButton(); }
public int GetIndexOf(ICardAssignmentModel assignedModel) { return(0); }
public Card ReplaceCard(ICardAssignmentModel assignedCard) { return(deck.ReplaceCard(assignedCard, this)); }
public int GetIndexOf(ICardAssignmentModel assignedModel) { List <string> deckUseIds = new List <string>((string[])deckEditor.data); return(deckUseIds.IndexOf(assignedModel.GetId())); }
public void OpenCardDetail(ICardAssignmentModel assignedModel, CardContainer container, float openDuration) { cardDetail.Open(openDuration); cardDetail.Populate(assignedModel, container); pointerState = PointerState.Detail; }