public GameState() { cardFactory = new CardFactory(); hero = new Player(this, LocationPlayer.HERO); villain = new Player(this, LocationPlayer.VILLAIN); stack = new Pile(new Location(LocationPile.STACK, LocationPlayer.NOONE)); }
public PlayerHandFactoryUnitTests() { // Arrange ICardFactory cardFactory = new CardFactory(new CardFactorySettings()); _showDownSettings = new ShowdownSettings { HandSize = 5 }; ISimpleValidation <PlayerHandFactoryModel> validator = new PlayerHandFactoryModelValidation(_showDownSettings); _playerHandFactory = new PlayerHandFactory(validator, cardFactory); }
public virtual void Setup(Card cardData) { card = cardData; nameLabel.text = card.name; viewLabel.text = card.view; foreach (var o in colorAccents) { o.color = CardFactory.GetAccentsColorOfFraction(card.fraction); } viewBacking.color = CardFactory.GetViewBackingAccentsColorOfFraction(card.fraction); descLabel.text = cardData.description.Replace("NEWLINE", "\n"); }
public void Skill1Test2() { /// <summary> /// スキル1 /// 『運命に抗う者』【起】〖1回合1次〗[翻面1,自分の手札から『ルキナ』を1枚退避エリアに置く]カードを2枚引き、自分の手札を1枚選び、デッキの1番上に置く。このユニットがクラスチェンジしている場合、代わりにカードを3枚引き、自分の手札を2枚選び、デッキの1番上に好きな順番で置く。 /// </summary> /// 转职 Game.Initialize(); Game.SetTestMode(); var player = Game.Player; var rival = Game.Rival; Game.TurnPlayer = player; var card = CardFactory.CreateCard(100, player); player.FrontField.AddCard(card); var bond1 = CardFactory.CreateCard(90, player); var bond2 = CardFactory.CreateCard(90, player); var bond3 = CardFactory.CreateCard(100, player); player.Bond.AddCard(bond1); player.Bond.AddCard(bond2); player.Bond.AddCard(bond3); var hand1 = CardFactory.CreateCard(100, player); var hand2 = CardFactory.CreateCard(100, player); player.Hand.AddCard(hand1); player.Hand.AddCard(hand2); var deck1 = CardFactory.CreateCard(100, player); var deck2 = CardFactory.CreateCard(100, player); var deck3 = CardFactory.CreateCard(100, player); var deck4 = CardFactory.CreateCard(100, player); var deck5 = CardFactory.CreateCard(100, player); player.Deck.AddCard(deck1); player.Deck.AddCard(deck2); player.Deck.AddCard(deck3); player.Deck.AddCard(deck4); player.Deck.AddCard(deck5); Game.DoLevelUp(hand1, true);//转职 Assert.IsTrue(player.Hand.Count == 2); Assert.IsTrue(player.Deck.Count == 4); Request.SetNextResult(); //翻面 Request.SetNextResult(); //选择丢弃 Request.SetNextResult(); //放回卡组 Game.DoActionSkill(hand1.GetUsableActionSkills()[0]); Assert.IsTrue(player.Hand.Count == 2); Assert.IsTrue(player.Deck.Count == 3); }
public AsyncState CardDealing(int numberOfPairs) { if (HelpButton != null) { HelpButton.interactable = true; } IsFinishGameRound = false; var asyncChain = Planner.Chain(); asyncChain.AddAction(Debug.Log, "Dealing started"); IsDealing = true; var movePosition = new Vector3(-1.0f, 0.0f, 0f); var moveOffset = Vector3.right * 0.8f; for (var i = 0; i < numberOfPairs * 2; i++) { CardBehaviour card = null; var instancePosition = new Vector3(0f, 0.2f, 10f); var instanceRotation = _cardPrefab.transform.rotation; if (CardsPool.Count > i && !CardsPool[i].GameObject.activeSelf) { CardsPool[i].Transform.position = instancePosition; CardsPool[i].Transform.rotation = instanceRotation; card = CardsPool[i].GameObject.GetComponent <CardBehaviour>(); card.SetImage(GetImage(i)); card.gameObject.SetActive(true); asyncChain.AddFunc(card.MoveToTable, movePosition); movePosition += moveOffset; continue; } var cardFactory = new CardFactory(); var cardObject = cardFactory.CreateCard(instancePosition, instanceRotation); CardsPool.Add(cardObject); card = cardObject.GameObject.GetComponent <CardBehaviour>(); card.SetImage(GetImage(i)); asyncChain.AddFunc(card.MoveToTable, movePosition); movePosition += moveOffset; } asyncChain.AddFunc(_difficultyController.ShowCardsInBeginning, CardsPool); asyncChain.AddAction(Debug.Log, "Dealing finished"); asyncChain.onComplete += () => IsDealing = false; return(asyncChain); }
public static void Main() { PlayerRepository playerRepository = new PlayerRepository(); CardRepository cardRepository = new CardRepository(); PlayerFactory playerFactory = new PlayerFactory(); CardFactory cardFactory = new CardFactory(); IManagerController managerController = new ManagerController(playerRepository, cardRepository, cardFactory, playerFactory); Engine engine = new Engine(managerController); engine.Run(); }
public static GameObject loadCard(CardData data) { RectTransform holder = CardFactory.GetHolder("Holder"); GameObject go = GameObject.Instantiate(Resources.Load <GameObject> ("Prefabs/BaseCard"), holder.transform); BaseCard card = go.GetComponent <BaseCard> (); RectTransform goRect = go.GetComponent <RectTransform> (); goRect.position = holder.position; goRect.localScale = new Vector3(0.4152496f, 0.4152496f, 0.4152496f); card.data = data; card.tag = "Card"; return(go); }
// Use this for initialization void Start() { if (card != null) { if (card.type == CardType.LOCATION) { container.sizeDelta = new Vector2(container.sizeDelta.x, 320f); } Card newCard = CardFactory.CreateCard(card.name); newCard.SetParent(container); } }
public void Skill1Test() { /// <summary> /// スキル1 /// 『英雄の凱歌』【起】[翻面3,自分の手札から『マルス』を1枚退避エリアに置く]次の相手のターン終了まで、すべての味方の戦闘力は+30される。 /// </summary> Game.Initialize(); Game.SetTestMode(); var player = Game.Player; Game.TurnPlayer = player; // 己方配置 var maersi = CardFactory.CreateCard(47, player); player.FrontField.AddCard(maersi); var cost = CardFactory.CreateCard(47, player); player.Hand.AddCard(cost); var myUnit1 = CardFactory.CreateCard(84, player);//50攻 player.FrontField.AddCard(myUnit1); var myUnit2 = CardFactory.CreateCard(3, player);//70攻 player.FrontField.AddCard(myUnit2); var bond1 = CardFactory.CreateCard(1, player); player.Bond.AddCard(bond1); var bond2 = CardFactory.CreateCard(2, player); player.Bond.AddCard(bond2); var bond3 = CardFactory.CreateCard(4, player); player.Bond.AddCard(bond3); Assert.IsTrue(maersi.Power == 70); Assert.IsTrue(myUnit1.Power == 50); Assert.IsTrue(myUnit2.Power == 70); Request.SetNextResult(new List <Card>() { bond1, bond2, bond3 }); //设定要翻的费 Request.SetNextResult(); //丢同名 Game.DoActionSkill(maersi.GetUsableActionSkills()[0]); Assert.IsTrue(maersi.Power == 100); Assert.IsTrue(myUnit1.Power == 80); Assert.IsTrue(myUnit2.Power == 100); }
private List <Combination> GetFusionByMonster(List <string> fusionsList) { var fusions = new List <Combination>(); for (int i = 0; i < fusionsList.Count; i++) { var currentLine = fusionsList[i]; if (currentLine.StartsWith("----")) { continue; } if (fusionsList[i + 2].StartsWith("======")) { return(fusions); } if (currentLine == "" && fusionsList[i + 2].StartsWith("-------------------")) { //var monster = new Monster(fusionsList[i + 1], CardType.Base); //fusions.Add(new Association(monster)); var mstr = new Monster(GetShortName(fusionsList[i + 1]), CardCategory.Base); CardsList.Add(mstr); int[] numbers = GetMonsterStats(fusionsList[i + 1]); mstr.Attack = numbers[0]; mstr.Defense = numbers[1]; fusions.Add(new Combination(mstr)); i++; continue; } if (currentLine.Contains('=')) { var instances = currentLine.Split('='); List <Card> monsters = new List <Card>(); var isFirst = true; for (int j = 0; j < instances.Length; j++) { var Type = CheckCardType(instances[j], isFirst); var cardName = GetShortName(instances[j]); monsters.Add(CardFactory.CreateCard(cardName, Type, GetMonsterStats(instances[j]))); isFirst = false; } //var type = CheckCardType(instances); //var firstInstance = CardFactory.CreateCard(instances[0], type[0]); //var secondInstance = CardFactory.CreateCard(instances[1], type[1]); AddNewCombination(fusions, monsters[0], monsters[1]); } } return(fusions); }
void Awake() { instance = this; }
void Awake () { if (Instance != null && Instance != this){ Destroy(gameObject); } Instance = this; }