private void CheckCardCount(Player_Behavior participant) { if (participant.GetHand().GetNumberOfCards() == 0) { participant.GetPlayerState().SetPassing(); } }
static public void BattleBuddiesIon(GameObject current_card, Player_Behavior combatant) { List <GameObject> playfield = combatant.GetPlayField().GetComponent <SP_CardPile>().GetCardsInCardPile(); foreach (GameObject card in playfield) { CQBCard cardCharacteristics = card.GetComponent <CQBCard>(); if (cardCharacteristics.GetAbility() == Modifiers.CardModifiers.BattleBuddiesAssault && !cardCharacteristics.IsBuddy()) { int AssaultIndex = card.transform.GetSiblingIndex(); int AssaultSiblingIndex = card.transform.GetSiblingIndex() + 1; int IonIndex = current_card.transform.GetSiblingIndex(); CQBCard currentCharacteristics = current_card.GetComponent <CQBCard>(); GameObject IonSibling = combatant.GetHand().gameObject.transform.GetChild(AssaultSiblingIndex).gameObject; currentCharacteristics.ActivatePositiveSymbol(); currentCharacteristics.ActivatePositiveCost(currentCharacteristics.GetBasePower() + 3); currentCharacteristics.SetBuddy(); cardCharacteristics.ActivatePositiveSymbol(); cardCharacteristics.ActivatePositiveCost(cardCharacteristics.GetBasePower() + 3); cardCharacteristics.SetBuddy(); if (AssaultSiblingIndex != IonIndex) { AssaultSiblingIndex = IonIndex; IonIndex = AssaultIndex + 1; IonSibling.transform.SetSiblingIndex(AssaultSiblingIndex); current_card.transform.SetSiblingIndex(IonIndex); } } } }
private void ApplyCardModifiers(GameObject card, Player_Behavior player, Player_Behavior opponent) { Modifiers.EnviroModifier enviroModifier = SelectedBoard.GetComponent <Board>().GetModifier(); if (enviroModifier == Modifiers.EnviroModifier.NoCapital && card.GetComponent <CQBCard>().GetUnitType() == CQBCard.UnitType.CAPITAL) { card.transform.SetParent(player.GetDiscard().transform); } else { if (card.GetComponent <CardModifier>().HasAbility() && !card.GetComponent <CQBCard>().Suppressed()) { Modifiers.CardModifiers ability = card.GetComponent <CardModifier>().GetModifier(); switch (ability) { case Modifiers.CardModifiers.BattleBuddiesAssault: ModifierCharacteristics.BattleBuddiesAssault(card, player); break; case Modifiers.CardModifiers.BattleBuddiesIon: ModifierCharacteristics.BattleBuddiesIon(card, player); break; case Modifiers.CardModifiers.HunterPack: ModifierCharacteristics.HunterPack(card, player); break; case Modifiers.CardModifiers.Anti_Fighter: ModifierCharacteristics.Anti_Fighter(opponent); break; case Modifiers.CardModifiers.Anti_Frigate: ModifierCharacteristics.Anti_Frigate(opponent); break; case Modifiers.CardModifiers.Anti_Capital: ModifierCharacteristics.Anti_Capital(opponent); break; case Modifiers.CardModifiers.Quick_Deploy: ModifierCharacteristics.Quick_Deploy(player); break; case Modifiers.CardModifiers.CAP: ModifierCharacteristics.CAP(card, player); break; case Modifiers.CardModifiers.DECOY: ModifierCharacteristics.Decoy(card, player); break; case Modifiers.CardModifiers.SPY: card.transform.SetParent(opponent.GetPlayField().transform); player.GetDeck().DealCards(2, player.GetHand().gameObject); ApplyModifiers(player); break; } } } }
private void ApplyModifiers(Player_Behavior combatant) { List <GameObject> cards = combatant.GetHand().GetCardsInCardPile(); foreach (GameObject card in cards) { if (!card.GetComponent <CQBCard>().Is_Modified_Enviro()) { ProcessEnviroModifier(card); } } }
static public void Anti_Capital(Player_Behavior opponent) { List <GameObject> opponentPlayfield = opponent.GetPlayField().GetComponent <SP_CardPile>().GetCardsInCardPile(); foreach (GameObject card in opponentPlayfield) { CQBCard cardCharacteristics = card.GetComponent <CQBCard>(); if (cardCharacteristics.GetUnitType() == CQBCard.UnitType.CAPITAL) { cardCharacteristics.SetPower(cardCharacteristics.GetCurrentPower() / 3); return; } } }
static public void Bomber(Player_Behavior opponent) { List <GameObject> opponentPlayfield = opponent.GetPlayField().GetComponent <SP_CardPile>().GetCardsInCardPile(); foreach (GameObject card in opponentPlayfield) { CQBCard cardCharacteristics = card.GetComponent <CQBCard>(); if (cardCharacteristics.GetUnitType() == CQBCard.UnitType.FRIGATE && !cardCharacteristics.GetDebuff()) { cardCharacteristics.SetPower(cardCharacteristics.GetCurrentPower() / 2); cardCharacteristics.SetDebuff(); return; } } }
// Use this for initialization void Start() { //Initialize components myRigidbody = GetComponent <Rigidbody2D> (); mySpriteRenderer = GetComponent <SpriteRenderer> (); eyeSpriteRenderer = transform.GetChild(0).GetComponent <SpriteRenderer> (); attackSpriteRenderer = transform.GetChild(3).GetComponent <SpriteRenderer> (); soundController = GetComponent <Player_SoundControl> (); myBehavior = GetComponent <Player_Behavior> (); myAnimation = GetComponent <Player_Animation> (); myAStack = GetComponent <Player_AbilityStack> (); //Initialize player and bullet sprites InitializeSprites(); }
private void DetermineNewStates() { if (Player.GetPlayerState().isPlayersPassing() && !Opponent.GetPlayerState().isPlayersPassing()) { Opponent.GetPlayerState().SetBattleState(1); CheckCardCount(Opponent); CurrentTurnToken.GetComponent <TurnToken>().ActivateOpponentTurn(); CurrentPlayer = Opponent; NextPlayer = Player; } else if (!Player.GetPlayerState().isPlayersPassing() && Opponent.GetPlayerState().isPlayersPassing()) { Player.GetPlayerState().SetBattleState(1); CheckCardCount(Player); CurrentTurnToken.GetComponent <TurnToken>().ActivatePlayerTurn(); CurrentPlayer = Player; NextPlayer = Opponent; } else if (!Player.GetPlayerState().isPlayersTurn() && Opponent.GetPlayerState().isPlayersTurn()) { Opponent.GetPlayerState().SetBattleState(0); Player.GetPlayerState().SetBattleState(1); CheckCardCount(Player); CurrentTurnToken.GetComponent <TurnToken>().ActivatePlayerTurn(); CurrentPlayer = Player; NextPlayer = Opponent; } else if (Player.GetPlayerState().isPlayersTurn() && !Opponent.GetPlayerState().isPlayersTurn()) { int current_card_count = Player.GetHand().GetNumberOfCards(); if (player_cards != current_card_count) { player_cards = current_card_count; Player.GetPlayerState().SetBattleState(0); Opponent.GetPlayerState().SetBattleState(1); CheckCardCount(Opponent); CurrentTurnToken.GetComponent <TurnToken>().ActivateOpponentTurn(); CurrentPlayer = Opponent; NextPlayer = Player; } } }
private void RollForInitiative() { int toss = Random.Range(1, 100); if (toss % 2 == 0) { Player.GetPlayerState().SetBattleState(1); CurrentTurnToken.GetComponent <TurnToken>().ActivatePlayerTurn(); CurrentPlayer = Player; NextPlayer = Opponent; Opponent.GetPlayerState().SetBattleState(0); } else { Player.GetPlayerState().SetBattleState(0); Opponent.GetPlayerState().SetBattleState(1); CurrentTurnToken.GetComponent <TurnToken>().ActivateOpponentTurn(); CurrentPlayer = Opponent; NextPlayer = Player; } }
static public void JunkYard(Player_Behavior player, Player_Behavior opponent) { Random.InitState((int)Time.realtimeSinceStartup * 1000); int roll = Random.Range(1, 100); if (roll <= JUNKYARDCHANCE) { Player_Behavior combatant; roll = Random.Range(1, 100); if (roll % 2 == 0) { combatant = player; } else { combatant = opponent; } List <GameObject> cards = combatant.GetPlayField().GetComponent <SP_CardPile>().GetCardsInCardPile(); roll = Random.Range(0, cards.Count - 1); cards[roll].transform.SetParent(combatant.GetDiscard().transform); } }
private void ApplyCardModifiers(GameObject card, Player_Behavior player, Player_Behavior opponent) { Modifiers.EnviroModifier enviroModifier = SelectedBoard.GetComponent <Board>().GetModifier(); if (enviroModifier == Modifiers.EnviroModifier.NoCapital && card.GetComponent <CQBCard>().GetUnitType() == CQBCard.UnitType.CAPITAL) { card.transform.SetParent(player.GetDiscard().transform); } else { if (card.GetComponent <CQBCard>().HasAbility() && !card.GetComponent <CQBCard>().Suppressed()) { Modifiers.CardModifiers ability = card.GetComponent <CQBCard>().GetAbility(); switch (ability) { case Modifiers.CardModifiers.BattleBuddiesAssault: ModifierCharacteristics.BattleBuddiesAssault(card, player); break; case Modifiers.CardModifiers.BattleBuddiesIon: ModifierCharacteristics.BattleBuddiesIon(card, player); break; case Modifiers.CardModifiers.HunterPack: break; case Modifiers.CardModifiers.Anti_Strike: break; case Modifiers.CardModifiers.Bomber: break; case Modifiers.CardModifiers.Quick_Deploy: break; } } } }
private string DetermineRoundWinner() { int player = playerCounter.GetCurrentPoints(); int opponent = opponentCounter.GetCurrentPoints(); RoundTokenPile pile; string outcome = ""; if (player > opponent) { outcome = "Player Won The Round!"; pile = Opponent.GetTokens(); pile.DisableToken(); Player.IncreaseScore(); RoundWinner = Player; //PlayerDeck.DealCards(1, Player.GetHand().gameObject); } else if (player < opponent) { outcome = "Opponent Won The Round!"; pile = Player.GetTokens(); pile.DisableToken(); Opponent.IncreaseScore(); RoundWinner = Opponent; //OpponentDeck.DealCards(1, Opponent.GetHand().gameObject); } else { outcome = "DRAW"; pile = Player.GetTokens(); pile.DisableToken(); pile = Opponent.GetTokens(); pile.DisableToken(); RoundWinner = null; } games_played++; return(outcome); }
static public void Quick_Deploy(Player_Behavior player) { List <GameObject> cards = player.GetDeck().GetCards(); int deployed = 0; for (int i = 0; i < cards.Count && deployed < MAXQUICKDEPLOY; i++) { if (cards[i].GetComponent <CQBCard>().GetUnitType() == CQBCard.UnitType.FIGHTER) { cards[i].GetComponent <CQBCard>().ActivatePlayable(); cards[i].transform.SetParent(player.GetPlayField().transform); deployed++; } } cards = player.GetHand().GetCardsInCardPile(); for (int i = 0; i < cards.Count && deployed < MAXQUICKDEPLOY; i++) { if (cards[i].GetComponent <CQBCard>().GetUnitType() == CQBCard.UnitType.FIGHTER) { cards[i].transform.SetParent(player.GetPlayField().transform); deployed++; } } }
static public void HunterPack(GameObject current_card, Player_Behavior combatant) { List <GameObject> playfield = combatant.GetPlayField().GetComponent <SP_CardPile>().GetCardsInCardPile(); int siblingIndex = 0; int new_power; int index; List <GameObject> pack = new List <GameObject>(); foreach (GameObject card in playfield) { if (current_card != card && current_card.GetComponent <CardModifier>().GetModifier() == card.GetComponent <CardModifier>().GetModifier()) { pack.Add(card); } } if (pack.Count > 0) { new_power = pack[0].GetComponent <CQBCard>().GetCurrentPower() + current_card.GetComponent <CQBCard>().GetCurrentPower(); current_card.GetComponent <CQBCard>().ActivatePositiveCost(new_power); foreach (GameObject pack_mate in pack) { pack_mate.GetComponent <CQBCard>().ActivatePositiveCost(new_power); siblingIndex++; } siblingIndex = pack[pack.Count - 1].transform.GetSiblingIndex(); index = current_card.transform.GetSiblingIndex() - 1; if (siblingIndex != index) { GameObject tempSibling = pack[pack.Count - 1].transform.parent.gameObject.transform.GetChild(siblingIndex).gameObject; tempSibling.transform.SetSiblingIndex(index); current_card.transform.SetSiblingIndex(siblingIndex); } } }
static public void SPY(GameObject current_card, Player_Behavior player, Player_Behavior opponent) { player.GetDeck().DealCards(2, player.GetHand().gameObject); current_card.transform.SetParent(opponent.GetPlayField().transform); }
static public void CAP(GameObject current_card, Player_Behavior player) { Debug.Log("TODO"); }