Example #1
0
        public DisposableList <Bitmap> CardTemplate(CardStructure structure, CardType type, Race race, bool extra,
                                                    string?name, CardSubType subType, bool twoHanded, Condition condition, string?modifiers, string?center, string?text, string?flavorText, string?scrapped,
                                                    string?lvl, string?winText, string?loseText)
        {
            var bitmaplist = new DisposableList <Bitmap>();

            switch (structure)
            {
            case CardStructure.Normal:
                switch (type)
                {
                case CardType.Action:
                    bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Action()));
                    break;

                case CardType.Monster1:

                case CardType.Monster2:

                case CardType.Monster3:

                case CardType.Monster4:

                case CardType.Monster5:
                    bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Spell()));
                    break;

                case CardType.Equipment1:

                case CardType.Equipment2:

                case CardType.Equipment3:
                    bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Equipment()));
                    break;

                case CardType.Companion:
                    bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Soilder()));
                    break;

                case CardType.Library:
                    bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Spell()));
                    break;

                case CardType.Bar:
                    bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Class()));
                    break;

                case CardType.Duell:
                    bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Duell()));
                    break;

                case CardType.Curse:
                    bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Desaster()));
                    break;

                case CardType.Blessing:
                    bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Animal()));
                    break;

                case CardType.Disaster:
                    bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Desaster()));
                    break;

                case CardType.Class:

                case CardType.Tavern:
                    bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Class()));
                    break;

                case CardType.Spell:
                    bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Spell()));
                    break;

                case CardType.Empty:
                    break;
                }
                bitmaplist.Add(() => _picturesFromArchive.Boarder());
                break;

            case CardStructure.Monster:
                switch (race)
                {
                case Race.Human:
                    bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Spell()));
                    break;

                case Race.Soldier:
                    bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Soilder()));
                    break;

                case Race.Vampire:
                    bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Action()));
                    break;

                case Race.Animal:
                    bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Animal()));
                    break;

                case Race.God:
                    bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.God()));
                    break;

                case Race.Monster:
                    bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Equipment()));
                    break;

                case Race.All:
                    bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Class()));
                    break;

                case Race.Rock:
                    bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Rock()));
                    break;

                case Race.Empty:
                    break;
                }
                bitmaplist.Add(() => _picturesFromArchive.Boarder());
                bitmaplist.Add(() => _picturesFromArchive.Win());
                break;
            }

            bitmaplist.Add(() => _drawText.DrawTextASBitmap(structure, name, subType, twoHanded, condition, modifiers, center, text, flavorText, scrapped,
                                                            lvl, winText, loseText, race));

            if (extra)
            {
                bitmaplist.Add(() => _picturesFromArchive.Extra());
            }

            return(bitmaplist);
        }