private IEnumerable <ICard> SetupPlayerCards()
        {
            var potionItemTemplate = ItemTemplateRepository.Retrieve(ItemTemplateLookups.MinorHealthPotion);

            yield return(new ItemCard(new DefaultItem
            {
                ItemTemplate = potionItemTemplate,
                Modifications = new IModification[0],
                Variables = new DefaultItemVariables()
            }));

            yield return(new EffectCard(CardEffectsRepository.Retrieve(CardEffectLookups.MinorStrength)));

            var fireboltSpell = SpellRepository.Retrieve(SpellLookups.Firebolt);

            yield return(new SpellCard(fireboltSpell));

            var regenSpell = SpellRepository.Retrieve(SpellLookups.MinorRegen);

            yield return(new SpellCard(regenSpell));

            var cleaveAbility = AbilityRepository.Retrieve(AbilityLookups.Cleave);

            yield return(new AbilityCard(cleaveAbility));
        }
Exemple #2
0
        private void Awake()
        {
            GetStartScript = this;

            //Init non-unity systems
            QuestRepository.Init();
            ItemTemplateRepository.Init();

            _questStorage = new DbQuestStorage();
            _itemStorage  = new DbItemStorage();

            //Get objects
            var Player         = GameObject.FindGameObjectWithTag("Player");
            var CameraCenter   = GameObject.FindGameObjectWithTag("CameraCenter").transform;
            var PlayerAnimator = GameObject.FindGameObjectWithTag("PlayerAnimator");

            //Создаем контроллеры
            AnimController   = new AnimController(PlayerAnimator);
            InputController  = new InputController();
            CameraController = new CameraController(Camera.main.GetComponent <CameraModel>(), CameraCenter, Camera.main,
                                                    InputController);
            MovementController = new MovementController(Player.transform, Player.GetComponent <CharController>());
            StaminaController  = new StaminaController(ref Player.GetComponent <StaminaModel>().Stamina,
                                                       Player.GetComponent <StaminaModel>(), InputController, MovementController, AnimController);
            // enemyAttackController = new EnemyAttackController(targetDetector);
            HealthController = new HealthController(ref Player.GetComponent <HealthModel>().health,
                                                    Player.GetComponent <HealthModel>());
            QuestLogController  = new QuestLogController(_questStorage);
            InventoryController = new InventoryController(_itemStorage);

            //Находим необходимые контроллеры которые висят на объектах
            SwordStartController = FindObjectOfType <SwordStartController>();

            #region Добавляем контроллеры в коллекцию

            _allControllers.Add(InputController);
            _allControllers.Add(CameraController);
            _allControllers.Add(MovementController);
            _allControllers.Add(StaminaController);
            _allControllers.Add(AnimController);
            // AllControllers.Add(enemyAttackController);
            _allControllers.Add(HealthController);
            _allControllers.Add(QuestLogController);
            _allControllers.Add(InventoryController);

            #endregion
        }
Exemple #3
0
        private ILootTable GenerateLootTable()
        {
            var potionItemTemplate = ItemTemplateRepository.Retrieve(ItemTemplateLookups.MinorHealthPotion);
            var potionItem         = new DefaultItem
            {
                ItemTemplate  = potionItemTemplate,
                Modifications = new IModification[0],
                Variables     = new DefaultItemVariables()
            };

            var cleaveAbility   = AbilityRepository.Retrieve(AbilityLookups.Cleave);
            var cleaveLootEntry = new CustomLootTableEntry {
                Ability = cleaveAbility
            };

            cleaveLootEntry.Variables.DropRate(0.02f);

            var attackAbility   = AbilityRepository.Retrieve(AbilityLookups.Attack);
            var attackLootEntry = new CustomLootTableEntry {
                Ability = attackAbility
            };

            attackLootEntry.Variables.DropRate(0.04f);

            var healAbility   = AbilityRepository.Retrieve(AbilityLookups.Heal);
            var healLootEntry = new CustomLootTableEntry {
                Ability = healAbility
            };

            healLootEntry.Variables.DropRate(0.02f);

            var fireboltSpell     = SpellRepository.Retrieve(SpellLookups.Firebolt);
            var fireboltLootEntry = new CustomLootTableEntry {
                Spell = fireboltSpell
            };

            fireboltLootEntry.Variables.DropRate(0.03f);

            var regenSpell     = SpellRepository.Retrieve(SpellLookups.Firebolt);
            var regenLootEntry = new CustomLootTableEntry {
                Spell = regenSpell
            };

            regenLootEntry.Variables.DropRate(0.03f);

            var lootEntries = new List <ILootTableEntry>
            {
                potionItem.GenerateCustomLootTableEntry(0.10f),
                cleaveLootEntry,
                attackLootEntry,
                healLootEntry,
                fireboltLootEntry,
                regenLootEntry
            };

            var allCardEffects = CardEffectsRepository.FindAll(new GetAllQuery <CardEffects>());

            foreach (var cardEffect in allCardEffects)
            {
                var lootEntry = new CustomLootTableEntry {
                    CardEffects = cardEffect
                };
                lootEntry.Variables.DropRate(0.05f);
                lootEntries.Add(lootEntry);
            }

            return(new DefaultLootTable
            {
                AvailableLoot = lootEntries,
                Randomizer = Randomizer,
            });
        }
 public void SetUp()
 {
     _itemTemplateRepository = new ItemTemplateRepository(RepositoryDbContext);
 }
    void Start()
    {
        // методы инвентаря пока не реализованы
        // var invCont = BaseScripts.StartScript.GetStartScript.InventoryController;
        // var bag = invCont.Bag;

        // поэтому извлекаем предметы напрямую из бд
        var table = DatabaseWrapper.DatabaseWrapper.GetTable($"select id from 'item_template';");

        trueListItems = new List <Item>();
        for (int i = 0; i < table.Rows.Count; i++)
        {
            var itemDTO = ItemTemplateRepository.GetById(table.Rows[i].GetInt(ITEM_TEMPLATE_ID));
            trueListItems.Add(new Item(itemDTO));
        }

        // раскомментировать, если не работает бд
        trueListItems.Add(new Item(
                              new ItemDto
        {
            IconId     = 1,
            Name       = "Test Sword",
            FlavorText = "Some text",
            SlotType   = InventorySlots.MainHand,
            Quality    = ItemQuality.Common
        }
                              ));

        trueListItems.Add(new Item(
                              new ItemDto
        {
            IconId     = 2,
            Name       = "Test Sword 1",
            FlavorText = "Some text 1",
            SlotType   = InventorySlots.MainHand,
            Quality    = ItemQuality.Uncommon
        }
                              ));

        var d = new Dictionary <Character.Stats, int>();

        d.Add(Character.Stats.Constitution, 10);
        trueListItems.Add(new Item(
                              new ItemDto
        {
            IconId     = 3,
            Name       = "Test Ring",
            FlavorText = "Some text 3",
            SlotType   = InventorySlots.Finger,
            Quality    = ItemQuality.Legendary,
            BonusStats = d,
            Flags      = ItemFlags.Passive
        }
                              ));

        var stackableItem = new Item(
            new ItemDto
        {
            IconId     = 4,
            Name       = "Test Grass",
            FlavorText = "Some text 4",
            SlotType   = InventorySlots.NonEquipable,
            Quality    = ItemQuality.Common,
            MaxStack   = 5,
            MaxCount   = 20,
            Type       = ItemClasses.Consumable
        }
            );

        // AddItemCount увеличивает количество только на 1
        stackableItem.AddItemCount();
        stackableItem.AddItemCount();
        stackableItem.AddItemCount();
        stackableItem.AddItemCount();
        trueListItems.Add(stackableItem);


        // создаем слоты для предметов
        int k = 0;

        foreach (var item in trueListItems)
        {
            var slot = _heap.GetFreeSlot();
            slot.name = slot.name + k++;
            var iView = Instantiate(InventoryItemView, slot.gameObject.transform);
            iView.name = item.Name;
            iView.SetItem(item);
            slot.AttachNewItemView(iView);
        }
    }
Exemple #6
0
 public ItemTemplateController(IItemTemplateRepository itemTemplateRepository)
 {
     _itemTemplateRepository = itemTemplateRepository as ItemTemplateRepository;
 }
Exemple #7
0
 public Item GetItemById(int id)
 {
     return(new Item(ItemTemplateRepository.GetById(id)));
 }