public async Task <IActionResult> Edit(int id, [Bind("ID,Description,Colour,Quantity")] Headgear headgear) { if (id != headgear.ID) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(headgear); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!HeadgearExists(headgear.ID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(headgear)); }
public async Task <IActionResult> Create([Bind("ID,Description,Colour,Quantity")] Headgear headgear) { if (ModelState.IsValid) { _context.Add(headgear); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(headgear)); }
public void EnemyDeath(EnemyData data, bool suicide = false) { QuickPopUp.QuickPopUpAllowed = true; BattleUiLerper.StartReverseLerp(); StartCoroutine(_EnemyDeath()); IEnumerator _EnemyDeath() { Followers.Remove(data); AttackArea.SetActive(false); if (Player.Health.Value <= 0) { OnPlayerDeath(); yield break; } if (data.OneAndDoneAttacker && suicide) { PlayerAnimations.Instance.ResetAttack(); yield return(new WaitForSeconds(1)); // Wait for suicide animation to complete PlayerAnimations.Instance.Spin(() => { _Done(new List <Item>()); }); yield break; } SoundManager.Instance.PlaySound(SoundManager.Instance.Celebrate, 0.8f); bool celebrateDone = false; bool bubblesDone = false; List <Item> items = data.Drops.GetItems(true); foreach (Item item in items) { if (item is Weapon) { Weapon weapon = item as Weapon; weapon.Level = data.Level; } if (item is Armor) { Armor armor = item as Armor; armor.Level = data.Level; } if (item is Headgear) { Headgear hg = item as Headgear; hg.Level = data.Level; } } // Wait for player celebration to be done and all items to be picked up PlayerAnimations.Instance.ResetAttack(); PlayerAnimations.Instance.Celebrate(() => { celebrateDone = true; if (bubblesDone && celebrateDone) { _Done(items); } }); ItemDropBubbleManager.Instance.AddItems(items, null, () => { bubblesDone = true; if (bubblesDone && celebrateDone) { _Done(items); } }); } void _Done(List <Item> items) { PlayerAnimations.Instance.Spin(() => { // Enable world to be interactable again // Turn off enemy fight. EnemyDisplay.Instance.gameObject.SetActive(false); // Call combat end event (nah) DeadEnemyController.Instance.AddDeadEnemy( EnemyDisplay.Instance.RectTransform.anchoredPosition.x, EnemyDisplay.Instance.RectTransform.anchoredPosition.y, data); GameEventHandler.Singleton.OnEnemyKilled(data); Inventory.AddItems(items); World.Enable(); PlayerClickController.Instance.SetEnabled(true); // Note: If the boss quest is to fight a chicken and you kill any chicken (not just the boss) then the quest gets completed if (CurrentQuest.Value is BossQuest quest && quest.Enemy.ID == data.ID) { quest.Finish(); } Fighting = false; }); } }
private void DropRewardAndAdvanceConversation(ActiveQuestBase q) { List <Item> todrops = new List <Item>(); foreach (var reward in q.QuestRewards) { Item it = reward.it; if (it.ShouldCreateNewInstanceWhenPlayerObtained()) { if (it is Weapon) { Weapon w = ScriptableObject.Instantiate(it) as Weapon; w.OnAfterObtained(); w.Level = reward.Level; if (reward.RandomRoll != -1) { w.Random = reward.RandomRoll; w.SetValuesBasedOnRandom(); } it = w; } else if (it is Armor) { Armor a = ScriptableObject.Instantiate(it) as Armor; a.OnAfterObtained(); a.Level = reward.Level; if (reward.RandomRoll != -1) { a.Random = reward.RandomRoll; a.SetValuesBasedOnRandom(); } it = a; } else if (it is Headgear) { Headgear a = ScriptableObject.Instantiate(it) as Headgear; a.OnAfterObtained(); a.Level = reward.Level; if (reward.RandomRoll != -1) { a.RandomRoll = reward.RandomRoll; a.SetValuesBasedOnRandom(); } it = a; } } todrops.Add(it); } if (todrops.Count == 0) { AdvanceQuestAfterConversation(q); } else { DraggableWorld.Disable2(); ScrollArrow.SetActive(false); ItemDropManager.AddItems(todrops, null, () => { ScrollArrow.SetActive(true); DraggableWorld.Enable2(); AdvanceQuestAfterConversation(q); Inventory.AddItems(todrops); }); } }
private void Awake() { nullHeadgear = Resources.Load <Headgear>(NullEquipmentsRef.noHeadgear); }
public void EquipHeadgear(Headgear hg) { MaxHealth.Value += Headgear.Value.ExtraHealth; }
public void SetData(Item item, int amount, Action <InventoryItemDisplay> onclick = null, Sprite spriteOverride = null, bool showText = true) { ItemSprite.color = Color.white; LevelText.gameObject.SetActive(false); DamageText.gameObject.SetActive(false); Item = item; if (item == null) { ItemSprite.color = Color.clear; ItemSprite.sprite = null; AmountText.gameObject.SetActive(false); } else { if (item.Rarity == Rarity.Common) { Background.color = ConfigObject.GetColorFromRarity(Rarity.Common); } else if (item.Rarity == Rarity.Uncommon) { Background.color = ConfigObject.GetColorFromRarity(Rarity.Uncommon); } else if (item.Rarity == Rarity.Rare) { Background.color = ConfigObject.GetColorFromRarity(Rarity.Rare); } else if (item.Rarity == Rarity.VeryRare) { Background.color = ConfigObject.GetColorFromRarity(Rarity.VeryRare); } else if (item.Rarity == Rarity.Legendary) { Background.color = ConfigObject.GetColorFromRarity(Rarity.Legendary); } else if (item.Rarity == Rarity.Mythical) { Background.color = ConfigObject.GetColorFromRarity(Rarity.Mythical); } ItemSprite.sprite = spriteOverride ?? item.Image; AmountText.text = "x" + amount.ToString(); AmountText.gameObject.SetActive(amount > 1); if (item is Weapon) { Weapon w = (Weapon)item; DamageText.text = $"<size=50%>DAM</size>\n<color=#c42c36>{w.RawDamage}</color>"; DamageText.gameObject.SetActive(true); } if (item is Armor) { Armor a = (Armor)item; DamageText.text = $"<size=50%>ARM</size>\n<color=#13b2f2>{a.ARMValue}</color>"; DamageText.gameObject.SetActive(true); } if (item is Headgear) { Headgear hg = (Headgear)item; DamageText.text = $"<size=50%>HP</size>\n<color=#7bcf5c>{hg.ExtraHealth}</color>"; DamageText.gameObject.SetActive(true); } } if (!showText) { AmountText.gameObject.SetActive(false); DamageText.gameObject.SetActive(false); LevelText.gameObject.SetActive(false); } OnClick = onclick; }