public void RemoveCard(CardWrapper CardToRemove) { Cards.Remove(CardToRemove); ShrinkCards(); UpdateHandData(); }
public void CreateInvisibleCard(CardWrapper FromCard) { InvisibleCard = MonoBehaviour.Instantiate(BattlePrefabsConfig.Get().CardWrapperPrefab); InvisibleCard.SetParent(GetTransform()); InvisibleCard.SetState(CardState.Hand, FromCard.GetOriginalSkill()); InvisibleCard.gameObject.SetActive(false); }
public void AddCard(CardWrapper NewCard) { Cards.Add(NewCard); NewCard.SetState(CardState.Hand, NewCard.GetOriginalSkill()); NewCard.SetParent(GetTransform()); ShrinkCards(); UpdateHandData(); }
public bool TryInsertVisibleCard(CardWrapper NewCard) { if (!Cards.Contains(InvisibleCard)) { return(false); } ReplaceWith(InvisibleCard, NewCard); return(true); }
public bool TryInsertInvisibleCard(CardWrapper NewCard) { if (Cards.Count == 0) { return(TryAddCard(InvisibleCard)); } float newCardStartPosition = NewCard.WorldBounds.min.x; if (newCardStartPosition > Cards.Last().WorldBounds.center.x) { return(TryAddCard(InvisibleCard)); } float previousCardEndPosition = WorldBounds.min.x; float previousCardHandMinusPreBattleSize = 0; int i = 0; foreach (CardWrapper card in Cards) { if (card == InvisibleCard) { previousCardEndPosition += previousCardHandMinusPreBattleSize; continue; } float currentCardSize = card.WorldBounds.size.x; float currentCardHandSize = card.HandCard.WorldBounds.size.x; float currentCardStartPosition = previousCardEndPosition; float currentHandCardEndPosition = currentCardStartPosition + currentCardHandSize; float currentHandCardCenterPosition = currentCardStartPosition + currentCardHandSize / 2.0f; if (newCardStartPosition < currentHandCardEndPosition) { int index = newCardStartPosition < currentHandCardCenterPosition ? i : i + 1; Cards.Remove(InvisibleCard); if (!TryInsertCard(InvisibleCard, index) && !TryAddCard(InvisibleCard)) { UpdateCardsLayout(true); return(false); } return(true); } previousCardEndPosition += currentCardSize; previousCardHandMinusPreBattleSize = currentCardHandSize - currentCardSize; i++; } return(false); }
private void GenerateEnemiesTimeline() { EnemyTimeline = GenerateTimeline(BattlePrefabsConfig.Get().TimelinePrefab); EnemyTimeline.Initialize(BattleSystem.Get().BattleBoard.EnemyTimeline); foreach (Skill skill in BattleSystem.Get().GetCurrentEnemySkillSet()) { CardWrapper cardWrapper = MonoBehaviour.Instantiate(BattlePrefabsConfig.Get().CardWrapperPrefab); cardWrapper.SetState(CardState.Hand, skill); EnemyTimeline.AddCard(cardWrapper, false); } EnemyTimeline.MaxLength = EnemyTimeline.Length; EnemyTimeline.Size = EnemyTimeline.GetContentSize(); EnemyTimeline.GetTransform().localScale = new Vector3(1, -1, 1); }