public THHPlayer(THHGame game, int id, string name, MasterCardDefine master, IEnumerable <CardDefine> deck) : base(id, name) { this.master = game.createCard(master); addPile(new Pile(game, PileName.MASTER, 1)); getPile(PileName.MASTER).add(game, this.master); skill = game.createCardById(master.skillID); addPile(new Pile(game, PileName.SKILL, 1)); this[PileName.SKILL].add(game, skill); this.deck = new Pile(game, PileName.DECK); if (deck != null) { this.deck.add(game, deck.Select(d => game.createCard(d)).ToArray()); } addPile(this.deck); init = new Pile(game, PileName.INIT, maxCount: 4); addPile(init); hand = new Pile(game, PileName.HAND, maxCount: 10); addPile(hand); field = new Pile(game, PileName.FIELD, maxCount: 7); addPile(field); grave = new Pile(game, PileName.GRAVE); addPile(grave); warp = new Pile(game, PileName.WARP); addPile(warp); addPile(new Pile(game, PileName.ITEM)); }
/// <summary> /// /// </summary> /// <param name="id"></param> /// <param name="name"></param> /// <param name="master"></param> /// <param name="deck">注意,牌库的第一张是牌库的底端</param> /// <returns></returns> public THHPlayer createPlayer(int id, string name, MasterCardDefine master, IEnumerable <CardDefine> deck) { if (players.Any(p => p.id == id)) { throw new ArgumentException("已经存在ID为" + id + "的玩家"); } THHPlayer player = new THHPlayer(this, id, name, master, deck); addPlayer(player); return(player); }
public THHPlayer(THHGame game, int id, string name, MasterCardDefine master, IEnumerable <CardDefine> deck) : base(id, name) { this.master = game.createCard(master); addPile(new Pile(game, "Master", new Card[] { this.master }, 1)); skill = game.createCardById(master.skillID); addPile(new Pile(game, "Skill", new Card[] { skill }, 1)); this.deck = new Pile(game, "Deck", deck.Select(d => game.createCard(d)).ToArray()); addPile(this.deck); init = new Pile(game, "Init", maxCount: 4); addPile(init); hand = new Pile(game, "Hand", maxCount: 10); addPile(hand); field = new Pile(game, "Field", maxCount: 7); addPile(field); grave = new Pile(game, "Grave"); addPile(grave); }