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)); }
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 }
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); } }
public ItemTemplateController(IItemTemplateRepository itemTemplateRepository) { _itemTemplateRepository = itemTemplateRepository as ItemTemplateRepository; }
public Item GetItemById(int id) { return(new Item(ItemTemplateRepository.GetById(id))); }