Untitled
csharp
25 days ago
3.1 kB
2
Indexable
Never
using FlamingTorchGames.CardGameFramework; using System.Collections; using System.Collections.Generic; using UnityEngine; public class BaseMainPhase : GameTurnPhaseBase { public override void OnEnter(Game game) { base.OnEnter(game); var startTurnDrawSize = 5; DrawCard(game, startTurnDrawSize); } private void DrawCard(Game game, int drawSize){ var gameZoneDeck = game.GetGameZone(game.ActivePlayer.ID, "ZONE_HAND_DECK"); var numberOfCardsInDeck = gameZoneDeck.cards.Count; for(var i=0; i <drawSize; i++){ var card = gameZoneDeck.GetCard(i); //GET MORE CARDS if (i > numberOfCardsInDeck - 1){ var gameZoneDiscard = game.GetGameZone(game.ActivePlayer.ID, "ZONE_HAND_DISCARD"); var numberOfCards = gameZoneDiscard.cards.Count; for(var j = 0; j< numberOfCards ; j++){ gameZoneDiscard.Shuffle(game); } //CARDS IN DISCARD TO DECK for(var k = 0; k < numberOfCards; k++) { game.RunAfterEventsAreDone((eventGame) => { eventGame.MoveCard(game.ActivePlayer.ID, "ZONE_HAND_DISCARD", game.ActivePlayer.ID, "ZONE_HAND_DECK", -1, -1, null); }); } } //GET DRAWSIZE if(card != null){ var hasDrawAbility = game.GetCardCharacteristic(card, "HAS_DRAW_ABILITY").boolValue; if(hasDrawAbility){ var drawValue = game.GetCardCharacteristic(card, "DRAW_VALUE").intValue; var colorValue = game.GetCardCharacteristic(card, "MAGIC_COLOR").stringValue; drawSize += drawValue; //DRAW game.RunAfterEventsAreDone((eventGame) => { eventGame.MoveCard(game.ActivePlayer.ID, "ZONE_HAND_DECK", game.ActivePlayer.ID, "ZONE_HAND", 0, -1, null); }); //REMOVE FROM HAND game.RunAfterEventsAreDone((eventGame) => { eventGame.MoveCard(game.ActivePlayer.ID, "ZONE_HAND", game.ActivePlayer.ID, "ZONE_HAND_DISCARD", -1, -1, null); }); AddColor(colorValue); } else { //DRAW game.RunAfterEventsAreDone((eventGame) => { eventGame.MoveCard(game.ActivePlayer.ID, "ZONE_HAND_DECK", game.ActivePlayer.ID, "ZONE_HAND", 0, -1, null); }); } } } } private void AddColor(string color){ GameManager gameManager = GameManager.Instance; PlayerManagement player = gameManager.GetPlayer(); player.AddColor(color); } }