public void Build(ICardData cardData, Vector3 scale, ICombatCard combat, IAbility ability) { Build(cardData, scale); Warrior = new WarriorCards(Moving, View, combat); Ability = ability; }
public WarriorCards(IMovingCard moving, CardBase cardBase, ICombatCard combat) { (this.Moving, this.View, Combat) = (moving, cardBase, combat); Enemies = new List <WarriorCards>(); }
void PutCardToCharacter(ICombatCard playedCardObject, CharacterGraphic character) { if (character == null) throw new System.Exception("Null character!"); playedCardObject.GetTransform().SetParent(character.appliedCardsGroup, false); playedCardObject.GetTransform().SetAsLastSibling(); }
IEnumerator CombatCardPlayed(ICombatCard playedCardObject) { uiToggler.DisablePlayerActionsDuringCardPlay(); CombatCard playedCard = playedCardObject.GetAssignedCard(); CharacterGraphic userGraphic = playedCard.GetUserChar(); //Visualize card play if (playedCard.targetType == CombatCard.TargetType.None) PutCardToCharacter(playedCardObject, userGraphic); if (playedCard.targetType == CombatCard.TargetType.AllEnemies || playedCard.targetType == CombatCard.TargetType.AllFriendlies) PutCardToCenter(playedCardObject); if (playedCard.targetType != CombatCard.TargetType.None && playedCard.targetType != CombatCard.TargetType.AllEnemies && playedCard.targetType != CombatCard.TargetType.AllFriendlies) { CharacterGraphic targetGraphic = null; targetGraphic = playedCard.targetChars[0]; PutCardToCharacter(playedCardObject, targetGraphic); } //Actual effects playedCard.PlayCard(); playedCard.userCharGraphic.RemovePlayedCombatCardFromHand(playedCard); yield return new WaitForSeconds(cardPlayAnimationTime); GameObject.Destroy(playedCardObject.GetTransform().gameObject); if (userGraphic.GetHealth() > 0) userGraphic.TurnFinished(); characterManager.CleanupCharactersWhoDied(); if (turnStatus == TurnStatus.Player) uiToggler.ReenablePlayerActions(); TransferTurn(); yield break; }
public void StartCombatCardPlay(ICombatCard cardObject) { CombatCard playedCard = cardObject.GetAssignedCard(); if (EligibleCombatCardType(playedCard)) { uiToggler.DisableTurnoverButton(); combatCardTargeter.CombatCardPlayStarted(cardObject); } }
public void PutCardToCenter(ICombatCard playedCardObject) { playedCardObject.GetTransform().SetParent(centerPlayArea, false); }
public void CombatCardPlayStarted(ICombatCard playedCard) { StartCoroutine("CombatCardPlayed", playedCard); }
public void TryPlayCardInHand(ICombatCard cardObject) { CombatManager.main.StartCombatCardPlay(cardObject); //CombatCardTargeter.main.try //if (CombatManager.main.TryPlayCombatCard(cardObject, handOwner)) //RemoveCardFromHand(cardObject.GetAssignedCard()); }
IEnumerator SelectCardUserByPlayer(ICombatCard playedCardGraphic) { CombatCard playedCard = playedCardGraphic.GetAssignedCard(); CharacterGraphic cardUserChar = null; characterManager.SetMercPortraitsEnabled(false); string centerMessageText = "Select character"; uiToggler.DisablePlayerActionsDuringCardPlay(); modeTextDisplayer.DisplayCenterMessage(centerMessageText); bool characterFound = false; while (true) { if (Input.GetMouseButton(1)) { uiToggler.EnableTurnoverButton(); uiToggler.ReenablePlayerActions(); break; } if (Input.GetMouseButton(0)) { if (characterManager.RaycastForCharacter(true, out cardUserChar)) { if (cardUserChar.CharacterMeetsCardRequirements(playedCard)) { characterFound = true; break; } } } yield return new WaitForFixedUpdate(); } if (characterFound) { while (Input.GetMouseButton(0)) yield return new WaitForFixedUpdate(); playedCard.SetUserChar(cardUserChar); PlayerCardTargetAssignment(playedCardGraphic, cardUserChar); } else { characterManager.SetMercPortraitsEnabled(true); modeTextDisplayer.HideCenterMessage(); } }
IEnumerator SelectCardTargetCharacterByPlayer(ICombatCard playedCardObject) { CombatCard playedCard = playedCardObject.GetAssignedCard(); CharacterGraphic targetChar = null; bool selectFriendly = false; bool selectOtherFriendly = false; string centerMessageText = "Select enemy"; if (playedCard.targetType == CombatCard.TargetType.SelectEnemy) { selectFriendly = false; centerMessageText = "Select enemy"; } if (playedCard.targetType == CombatCard.TargetType.SelectFriendly) { selectFriendly = true; characterManager.SetMercPortraitsEnabled(false); centerMessageText = "Select friendly"; } if (playedCard.targetType == CombatCard.TargetType.SelectFriendlyOther) { selectFriendly = true; selectOtherFriendly = true; characterManager.SetMercPortraitsEnabled(false); centerMessageText = "Select friendly"; } uiToggler.DisablePlayerActionsDuringCardPlay(); modeTextDisplayer.DisplayCenterMessage(centerMessageText); bool targetFound = false; while (true) { if (Input.GetMouseButton(1)) { uiToggler.EnableTurnoverButton(); uiToggler.ReenablePlayerActions(); break; } if (Input.GetMouseButton(0)) { if (selectOtherFriendly) { if (characterManager.RaycastForOtherFriendlyCharacter(selectedCharacter, out targetChar)) { targetFound = true; break; } } else if (characterManager.RaycastForCharacter(selectFriendly, out targetChar)) { targetFound = true; break; } } yield return new WaitForFixedUpdate(); } if (targetFound) { while (Input.GetMouseButton(0)) yield return new WaitForFixedUpdate(); playedCard.targetChars.Add(targetChar); combatManager.CombatCardPlayStarted(playedCardObject); } if (selectFriendly) characterManager.SetMercPortraitsEnabled(true); modeTextDisplayer.HideCenterMessage(); }
void PlayerCardTargetAssignment(ICombatCard cardObject,CharacterGraphic selectedCharacter) { CombatCard playedCard = cardObject.GetAssignedCard(); this.selectedCharacter = selectedCharacter; if (playedCard.targetType == CombatCard.TargetType.SelectFriendly | playedCard.targetType == CombatCard.TargetType.SelectFriendlyOther) { ManuallyAssignCardTarget(cardObject); return; } if (playedCard.targetType == CombatCard.TargetType.SelectEnemy) { if (playedCard.GetType().BaseType == typeof(MeleeCard) && meleeCardTargetOverrideEnemy != null) { AutoAssignCardTargetAndPlay(cardObject, selectedCharacter); return; } if (playedCard.GetType().BaseType == typeof(RangedCard) && rangedCardTargetOverrideEnemy != null) { AutoAssignCardTargetAndPlay(cardObject, selectedCharacter); return; } ManuallyAssignCardTarget(cardObject); return; } if (playedCard.targetType != CombatCard.TargetType.SelectFriendly && playedCard.targetType != CombatCard.TargetType.SelectFriendlyOther && playedCard.targetType != CombatCard.TargetType.SelectEnemy) AutoAssignCardTargetAndPlay(cardObject, selectedCharacter); }
void ManuallyAssignCardTarget(ICombatCard cardObject) { StartCoroutine("SelectCardTargetCharacterByPlayer", cardObject); }
void AutoAssignCardTargetAndPlay(ICombatCard cardObject, CharacterGraphic selectedCharacter) { characterManager.SetMercPortraitsEnabled(true); modeTextDisplayer.HideCenterMessage(); CombatCard playedCard = cardObject.GetAssignedCard(); AssignCardTargets(playedCard, selectedCharacter); combatManager.CombatCardPlayStarted(cardObject); }
public void CombatCardPlayStarted(ICombatCard cardObject) { //CombatCard playedCard = cardObject.GetAssignedCard(); //playedCard.SetUserChar(cardPlayer); //PlayerCardTargetAssignment(cardObject, cardPlayer); StartCoroutine(SelectCardUserByPlayer(cardObject)); }
public void HandCardClicked(ICombatCard cardGraphic) { handManager.TryPlayCardInHand(cardGraphic); }