public CGCardObject(CardData data, CardGameManager cgManager, CGPlayerLogic owner) { // Load card object data from card data m_cardName = data.cardName; m_channelCost = data.channelCost; m_attributes = data.cardAttributes; m_turnsRemaining = m_channelCost; // Create an instance of the card script if (data.cardScriptName == "") { Debug.LogError("No script specified for card: " + m_cardName); } else { m_script = System.Activator.CreateInstance(System.Type.GetType(data.cardScriptName), new object[] { }) as CardScript; m_script.SetScriptData(data, cgManager, this); } m_owner = owner; m_controller = owner; // Create unique card ID m_cardID = m_allCardIDs.Count; m_allCardIDs.Add(m_allCardIDs.Count); m_data = data; }
public void SetScriptData(CardData data, CardGameManager cgManager, CGCardObject card) { m_data = data; m_cgManager = cgManager; m_card = card; m_attributes = m_data.cardAttributes; }
void Awake() { if (instance == null) { instance = this; } else { Destroy(gameObject); } }
public CGPlayerLogic(CardGameManager cgManager, int playerID) { m_hand = new CGHandLogicZone(this, cgManager); m_deck = new CGDeckLogicZone(this, cgManager); m_spells = new CGSpellLogicZone(this, cgManager); m_graveyard = new CGGraveyardLogicZone(this, cgManager); m_cgManager = cgManager; m_ID = playerID; m_hasDeck = false; FillDeckRandom(); }
public CGPlayerLogic(CardGameManager cgManager, int playerID) { m_hand = new CGHandLogicZone(this, cgManager); m_deck = new CGDeckLogicZone(this, cgManager); m_spells = new CGSpellLogicZone(this, cgManager); m_graveyard = new CGLogicZone(this, cgManager); m_cgManager = cgManager; m_ID = playerID; CardData[] deck = new CardData[30]; Object[] allCards = Resources.LoadAll("CardDB/Cards"); for (int i = 0; i < 30; i++) { int randomIndex = Random.Range(0, allCards.Length); deck[i] = (CardData)allCards[randomIndex]; //Debug.Log("Added " + deck[i].cardName + " to deck"); } m_deck.Populate(deck); }
public void SetUp(CardGameManager GM, CardGameState GS, TurnInfo TI) { TheCardGameManager = GM; TheCardGameState = GS; TheTurnInformation = TI; }
public CGLogicZone(CGPlayerLogic player, CardGameManager cgManager) { m_cards = new List <CGCardObject>(); m_player = player; m_cgManager = cgManager; }
void InitialiseGame() { m_cgManager = new CardGameManager(m_connection); m_cgManager.RunGameLogic(); }
public CGSpellLogicZone(CGPlayerLogic player, CardGameManager cgManager) : base(player, cgManager) { }
public override void ExecuteCommand(CardGameManager cgm) { cgm.PlayCardFromHand(m_playerID, m_cardID); }
public CGGraveyardLogicZone(CGPlayerLogic player, CardGameManager cgManager) : base(player, cgManager) { }
static void Main(string[] args) { int port; ParseArgs(out port, args); ServerConnectionManager.Instance.InitializeServer(IPAddress.Any, port); Debug.Log("Waiting for connection..."); ServerConnectionManager.Instance.ConnectToClient(0); Debug.Log("Waiting for connection..."); ServerConnectionManager.Instance.ConnectToClient(1); Debug.Log("Both players connected! Starting game..."); CGC_SetPlayerID setPlayer0 = new CGC_SetPlayerID(0); ServerConnectionManager.Instance.TransmitStream(setPlayer0.PackCommand(), 0); CGC_SetPlayerID setPlayer1 = new CGC_SetPlayerID(1); ServerConnectionManager.Instance.TransmitStream(setPlayer1.PackCommand(), 1); bool playing = true; CardGameManager cgManager = new CardGameManager(); cgManager.RunGameLogic(); while (playing) { SGCommand player1Command = ServerConnectionManager.Instance.ReceiveStream(0); if (player1Command != null) { player1Command.ExecuteCommand(cgManager); } SGCommand player2Command = ServerConnectionManager.Instance.ReceiveStream(1); if (player2Command != null) { player2Command.ExecuteCommand(cgManager); } bool connected = ServerConnectionManager.Instance.Connected(); playing = connected; } /* TO-DO list * 1. Replace all "CGVisualManager.instance.AddCommand(command)" calls with transmitting * the appropriate bitstream to each client * 2. Replace all the scripts in the unity project with these ones * 3. Re-build this project using the scripts in the unity folder so both projects use the same files * 4. Write a servercommand system similar to CGCommand for * sending requests back to the server * 5. Document how everything works! * 6. Add wait in main server loop * * * * */ }
public GameRunner(CardGameManager icgm){ cgm = icgm; }
public override void ExecuteCommand(CardGameManager cgm) { cgm.CastSpellFromChannel0(m_cardID, m_targetID, m_playerID); }
public string[] QuestionWords; // 10 public void Awake() { Instance = this; CanDraw = false; }
public void Awake() { _instance = this; cardLib = GetComponent<CardLib>(); }
public override void ExecuteCommand(CardGameManager cgm) { }
public abstract void ExecuteCommand(CardGameManager cgm);
public override void ExecuteCommand(CardGameManager cgm) { cgm.AssignDeck(m_deck, m_playerID); }