private void btnSpawnItem_Click(object sender, EventArgs e) { Registry.SetValue(DiagManager.REG_PATH, "ItemChoice", cbSpawnItem.SelectedIndex); InvItem item = new InvItem(cbSpawnItem.SelectedIndex); ItemData entry = (ItemData)item.GetData(); if (entry.MaxStack > 1) { item.HiddenValue = entry.MaxStack; } if (GameManager.Instance.CurrentScene == DungeonScene.Instance) { DungeonScene.Instance.PendingDevEvent = DungeonScene.Instance.DropItem(item, DungeonScene.Instance.FocusedCharacter.CharLoc); } else if (GameManager.Instance.CurrentScene == GroundScene.Instance) { if (DataManager.Instance.Save.ActiveTeam.GetInvCount() < DataManager.Instance.Save.ActiveTeam.GetMaxInvSlots(ZoneManager.Instance.CurrentZone)) { GameManager.Instance.SE("Menu/Sort"); DataManager.Instance.Save.ActiveTeam.AddToInv(item); } else { GameManager.Instance.SE("Menu/Cancel"); } } else { GameManager.Instance.SE("Menu/Cancel"); } }
public void btnSpawnItem_Click() { lock (GameBase.lockObj) { DevForm.SetConfig("ItemChoice", chosenItem); InvItem item = new InvItem(chosenItem); ItemData entry = (ItemData)item.GetData(); if (entry.MaxStack > 1) { item.HiddenValue = entry.MaxStack; } if (GameManager.Instance.CurrentScene == DungeonScene.Instance) { DungeonScene.Instance.PendingDevEvent = DungeonScene.Instance.DropItem(item, DungeonScene.Instance.FocusedCharacter.CharLoc); } else if (GameManager.Instance.CurrentScene == GroundScene.Instance) { if (DataManager.Instance.Save.ActiveTeam.GetInvCount() < DataManager.Instance.Save.ActiveTeam.GetMaxInvSlots(ZoneManager.Instance.CurrentZone)) { GameManager.Instance.SE("Menu/Sort"); DataManager.Instance.Save.ActiveTeam.AddToInv(item); } else { GameManager.Instance.SE("Menu/Cancel"); } } else { GameManager.Instance.SE("Menu/Cancel"); } } }
//public IEnumerator<YieldInstruction> ArriveOnTile(Character character) //public IEnumerator<YieldInstruction> ArriveOnTile(Character character, bool checkItem, bool wantItem, bool noTrap) private IEnumerator <YieldInstruction> ProcessUseItem(GroundChar character, int invSlot, bool held) { InvItem invItem = null; if (held) { Character activeChar = DataManager.Instance.Save.ActiveTeam.Players[invSlot]; invItem = activeChar.EquippedItem; } else { invItem = DataManager.Instance.Save.ActiveTeam.GetInv(invSlot); } ItemData itemEntry = (ItemData)invItem.GetData(); switch (itemEntry.UsageType) { case ItemData.UseType.Learn: { ItemIndexState effect = itemEntry.ItemStates.GetWithDefault <ItemIndexState>(); int skill = effect.Index; Character player = (Character)character.Data; int learn = -1; yield return(CoroutineManager.Instance.StartCoroutine(DungeonScene.TryLearnSkill(player, skill, (int slot) => { learn = slot; }, () => { }))); if (learn > -1) { yield return(CoroutineManager.Instance.StartCoroutine(DungeonScene.LearnSkillWithFanfare(player, skill, learn))); } else { yield break; } } break; } if (held) { Character activeChar = DataManager.Instance.Save.ActiveTeam.Players[invSlot]; activeChar.EquippedItem = new InvItem(); } else { DataManager.Instance.Save.ActiveTeam.RemoveFromInv(invSlot); } }