示例#1
0
 public void Build(ICardData cardData, Vector3 scale,
                   ICombatCard combat, IAbility ability)
 {
     Build(cardData, scale);
     Warrior = new WarriorCards(Moving, View, combat);
     Ability = ability;
 }
示例#2
0
        /// <summary>
        ///     Create and adds a card to the Library based on the data.
        /// </summary>
        /// <param name="cardData"></param>
        public void AddCard(ICardData cardData)
        {
            var card = RuntimeCardFactory.Instance.Get();

            card.SetData(cardData);
            Add(card);
        }
示例#3
0
        static void Main(string[] args)
        {
            var       wrapper = new Wrapper();
            ICardData data    = wrapper.GetCardData();

            ListProperties(data);

            for (int i = 0; i < (data.Cards as ICard[]).Count(); i++)
            {
                var card = (data.Cards as ICard[]).ElementAt(i);
                System.Console.WriteLine("--------Card " + i + "--------");
                ListProperties(card);

                if (card.CardStatus == CardStatus.Available)
                {
                    System.Console.Write("Save photo to temp folder and display? [y]: ");

                    var input = System.Console.ReadLine();
                    if (string.IsNullOrEmpty(input) || input == "y")
                    {
                        var photoPath = Path.GetTempFileName() + ".jpg";
                        card.SavePhoto(photoPath);
                        System.Console.WriteLine("Photo saved to " + photoPath);
                        System.Diagnostics.Process.Start(photoPath);
                    }
                }

                System.Console.WriteLine("-----------------------");
            }

            System.Console.WriteLine("Done... Press any key to exit");
            System.Console.ReadKey();
        }
示例#4
0
        private CardController AddCardInternal(ICardData cardData)
        {
            //TODO: use pool
            var cardController = new CardController();

            //TODO: use pool
            var cardState = new CardState();

            cardState.ManaCost.Value    = cardData.ManaCost;
            cardState.AttackValue.Value = cardData.AttackValue;
            cardState.HealthValue.Value = cardData.Health;

            var model = new CardModel(cardState, cardData);

            cardController.LoadModel(model);

            _cardsList.Add(cardController);

            cardController.HealthBellowOne += CardController_HealthBellowOne;

            if (_view != null)
            {
                var cardView = _view.AddCard();
                cardController.ConnectView(cardView);

                _cardViewsDictionary.Add(cardController, cardView);
            }

            return(cardController);
        }
示例#5
0
 private int CompareTo(ICardData x, ICardData y)
 {
     if (x.Initiative < y.Initiative)
     {
         return(-1);
     }
     return(1);
 }
示例#6
0
 public void SetAndUpdateView(ICardData data, PlayerId playerId, UiGameDataAccess access)
 {
     artwork.sprite  = data.Artwork;
     cardback.sprite = data.Cardback;
     carddetail.text = data.Description;
     id         = playerId;
     dataAccess = access;
 }
示例#7
0
        public void AddCard(ICardData cardData)
        {
            AddCardInternal(cardData);

            if (_view != null)
            {
                _view.Repositions(true);
            }
        }
 public OrderNewCardViewModel(ISecureStorage secureStorage, IConnectivity connectivity, ICardOrderService cardOrderService, ICardData cardData, IAppData appData, Func <EditAddressViewModel> createEditAddressViewModel)
 {
     this.secureStorage              = secureStorage;
     this.connectivity               = connectivity;
     this.cardOrderService           = cardOrderService;
     this.cardData                   = cardData;
     this.appData                    = appData;
     this.createEditAddressViewModel = createEditAddressViewModel;
 }
示例#9
0
    public void SetInitialValues(ICardData cardData)
    {
        this.cardData = cardData;
        name.SetKey(cardData.Name);
        description.SetKey(cardData.Description);
        fraction.SetKey(cardData.Fraction.Name);

        initiative.text = cardData.Initiative.ToString();
        attack.text     = cardData.Attack.ToString();
        defense.text    = cardData.Defense.ToString();
        health.text     = cardData.Health.ToString();
    }
示例#10
0
 public AppData(ISecureStorage secureStorage, IUserData userData, IUserCardsService userCardsService, IRatesService ratesService, IBucketService bucketService, IUserAssetsService userAssetsService, IRatesData ratesData, ICardData cardData, IBucketData bucketData)
 {
     this.secureStorage     = secureStorage;
     this.userData          = userData;
     this.userCardsService  = userCardsService;
     this.ratesService      = ratesService;
     this.bucketService     = bucketService;
     this.userAssetsService = userAssetsService;
     this.ratesData         = ratesData;
     this.cardData          = cardData;
     this.bucketData        = bucketData;
 }
示例#11
0
        void CreateElement(CreatureElement creatureElement, ICardData data, Vector3Int cell)
        {
            var element = ObjectPooler.Instance.Get(boardElementPrefab);

            _boardElements.Add(element);
            var elementTransform = element.transform;
            var boardElement     = element.GetComponent <UiBoardElement>();

            elementTransform.SetParent(transform);
            elementTransform.position = TileMap.CellToWorld(cell);
            boardElement.SetElement(creatureElement);
        }
示例#12
0
        public BucketHomeViewModel(ICardsService cardsService, ISecureStorage secureStorage, IConnectivity connectivity, IAppData appData, ICardData cardData, IBucketData bucketData)
        {
            this.cardsService  = cardsService;
            this.connectivity  = connectivity;
            this.appData       = appData;
            this.cardData      = cardData;
            this.bucketData    = bucketData;
            this.secureStorage = secureStorage;
            Amount             = new Property <string>("Amount").RequiredString("Please specify amount").RequiredFormat(@"^\d*(\.\d+)?$", "Please specify a valid number");
            SendCommand        = new XCommand(async() => await Send(), CanSend);
            SendCommand.SetDependency(Amount);

            CardBalance   = appData.Cards.Any() ? $"$ {appData.Cards.First().Balance}" : "You do not have any cards. Order a card first.";
            BucketBalance = appData.BucketAmount;
        }
示例#13
0
        public MatchData(
            Decklist deckPlayer1,
            Decklist deckPlayer2,
            Vector2Int gridSizeX,
            Vector2Int crystalPosition,
            int crystalStrength)
        {
            playerDatas   = new Dictionary <PlayerKey, PlayerData>();
            cardInstances = new Dictionary <ICardInstance, PlayerKey>();
            fieldEntities = new Dictionary <Vector2Int, IFieldEntity>();

            player1Key = new PlayerKey();
            player2Key = new PlayerKey();

            List <ICardInstance> player1Instances = new List <ICardInstance>();
            List <ICardInstance> player2Instances = new List <ICardInstance>();

            foreach (DecklistEntry entry in deckPlayer1.cards)
            {
                ICardData     cardData     = Cards.DB[entry.cardName];
                ICardInstance cardInstance = Cards.CreateCardInstance(cardData, player1Key);

                cardInstances.Add(cardInstance, player1Key);
                player1Instances.Add(cardInstance);
            }
            foreach (DecklistEntry entry in deckPlayer2.cards)
            {
                ICardData     cardData     = Cards.DB[entry.cardName];
                ICardInstance cardInstance = Cards.CreateCardInstance(cardData, player2Key);

                cardInstances.Add(cardInstance, player1Key);
                player2Instances.Add(cardInstance);
            }
            DrawOrder drawOrderP1 = new DrawOrder(player1Instances);
            DrawOrder drawOrderP2 = new DrawOrder(player2Instances);

            playerDatas.Add(player1Key, new PlayerData(drawOrderP1, player1Key, 5, 5));
            playerDatas.Add(player2Key, new PlayerData(drawOrderP2, player2Key, 5, 5));

            _crystal = new Crystal(crystalStrength);

            new FieldEntity <Crystal>(this, _crystal, crystalPosition);
            this.crystalPosition = crystalPosition;
            currentState         = new MatchState(MatchStateType.Idle, player1Key, player2Key);
        }
示例#14
0
        internal static ICardInstance CreateCardInstance(ICardData cardData, PlayerKey player1Key)
        {
            Type          cardType     = cardData.type;
            ICardInstance cardInstance = null;

            if (cardType == typeof(Monster))
            {
                cardInstance = new CardInstance <Monster>(cardData);
            }
            else if (cardType == typeof(Spell))
            {
                cardInstance = new CardInstance <Spell>(cardData);
            }

            if (cardInstance == null)
            {
                throw new System.Exception("Invalid Card Type");
            }

            return(cardInstance);
        }
示例#15
0
#pragma warning restore 0649

        private IEnumerator Start()
        {
            var imageLoader = new TextureLoader(this);

            var cardDatas = new ICardData[_databaseContainer.CardContainers.Length];

            for (var index = 0; index < _databaseContainer.CardContainers.Length; index++)
            {
                var container = _databaseContainer.CardContainers[index];

                var cardData = new CardData()
                {
                    Name = container.Name, Description = container.Description, ManaCost = container.ManaCost, AttackValue = container.AttackValue, Health = container.HealthValue
                };

                var waiting = true;
                imageLoader.LoadTexture(texture =>
                {
                    cardData.Icon = texture;
                    waiting       = false;
                });

                while (waiting)
                {
                    yield return(null);
                }

                cardDatas[index] = cardData;
            }

            var sceneView = FindObjectOfType <SceneView>();

            var sceneController = new SceneController(cardDatas, this);

            sceneController.ConnectView(sceneView);

            sceneController.StartGame();
        }
示例#16
0
        public void OnEnable()
        {
            if (attributeFormats == null)
            {
                attributeFormats = AttributeFormats.Load();
            }
            data = (ICardData)target;
            foreach (AttributeFormat format in attributeFormats)
            {
                string className = char.ToUpper(format.type[0]) + format.type.Substring(1);
                //displayed name bei m ist Collectiblox.Monster
                //warum ist t null?
                //Funktioniert in Unity wegen Serialisierungs-Magie nicht...
                //Type t = Type.GetType("Collectiblox.Monster");
                //Type m = typeof(Monster);

                //https://answers.unity.com/questions/206665/typegettypestring-does-not-work-in-unity.html
                if (!System.AppDomain.CurrentDomain.GetAssemblies()
                    .Any(a => a.GetType("Collectiblox." + className) != null))
                {
                    ClassFileCreator.CreateClassFile(format, null);
                }
            }
        }
示例#17
0
 public Card(string name, ICardData data)
 {
     Name = name;
     Data = data;
 }
示例#18
0
 public GameDataSetting(ICardData cardData, IGameData gameData, int optionToWin)
 {
     this.cardData    = cardData;
     this.gameData    = gameData;
     this.optionToWin = optionToWin;
 }
示例#19
0
 void OnSetData(ICardData data) => SetText(GetText());
示例#20
0
 public CardPool(ICardData data) => SetData(data);
示例#21
0
 public DeckController(IContainer container, ICardData cardData)
 {
     this.container = container;
     this.cardData = cardData;
 }
示例#22
0
 public CardCountViewComponent(ICardData cardData)
 {
     this.cardData = cardData;
 }
示例#23
0
 public void SetAndUpdateView(ICardData data, PlayerId playerId, UiGameDataAccess access)
 {
     artwork.sprite = data.Artwork;
     id             = playerId;
     dataAccess     = access;
 }
示例#24
0
 void OnSetData(ICardData data)
 {
     SetSprite(GetSprite(), ShowSprite());
     SetSpriteColor(GetSpriteColor());
 }
示例#25
0
        public void BuildDeckOfXPoints(ICardData cards, IDeck deck, int points)
        {
            List<Card> avail = cards.Cards.ToList();

            while (points > 0)
            {
                var canChoose = avail.Where(c => c.Points <= points).ToList();

                if (canChoose.Count == 0)
                    return;

                int index = _randomNumberGenerator.Next(0, canChoose.Count);

                avail.Remove(canChoose[index]).Should().Be(true);

                deck.AddCard(canChoose[index]);

                points -= canChoose[index].Points;
            }
        }
示例#26
0
 public CombatCardMoon(ICardUIParameters parameters, ICardData cardData, Action <TypeSpecificityEnum> startSpecificity)
     : base(parameters, cardData, startSpecificity)
 {
 }
示例#27
0
 public CardPool(ICardData data)
 {
     SetData(data);
 }
示例#28
0
 public CardInstance(ICardData cardData)
 {
     baseData = Cards.DB[cardData.cardName];
     data     = (T)Cards.DB[cardData.cardName];
 }
示例#29
0
 public CreatureElement(ICardData data, PlayerId ownerId)
 {
     OwnerId = ownerId;
     SetData(data);
 }
示例#30
0
 public void SetData(ICardData data)
 {
     Data = data;
     UpdateData();
 }
示例#31
0
 /// <summary>
 ///     Set the data inside a card.
 /// </summary>
 /// <param name="data"></param>
 public void SetData(ICardData data) => Data = data;
示例#32
0
 public void SetAndUpdateView(ICardData data)
 {
     Data = data;
     UpdateUi();
 }
示例#33
0
        public static AttackableCard GetCard(ICardData cd, String n)
        {
            return (AttackableCard) cd.Cards.Where(c => c.Name.IndexOf(n, StringComparison.OrdinalIgnoreCase) >= 0).First();

        }