public TradingSpellController(NpcConversationStaticData p_data, Npc p_npc) { m_offers = new List <TradingSpellOffer>(); m_npc = p_npc; m_spells = new List <CharacterSpell>(); if (p_data.m_spellOffers != null) { foreach (NpcConversationStaticData.SpellOffer spellOffer in p_data.m_spellOffers) { TradingSpellOffer item = new TradingSpellOffer(spellOffer.m_id, spellOffer.m_conditions); m_offers.Add(item); } } }
public TradingInventoryController(NpcConversationStaticData p_data, Npc p_npc) { m_offers = new List <TradingItemOffer>(); m_inventory = new Inventory(ConfigManager.Instance.Game.TradingInventorySize); m_inventory.isOffer = true; m_npc = p_npc; if (p_data.m_offers != null) { foreach (NpcConversationStaticData.Offer offer in p_data.m_offers) { TradingItemOffer item = new TradingItemOffer(offer.m_id, offer.m_conditions); m_offers.Add(item); } } }
public NpcConversation(NpcConversationStaticData p_data) { m_staticData = p_data; foreach (NpcConversationStaticData.Dialog p_dialogData in p_data.m_dialogs) { Dialog dialog = new Dialog(p_dialogData); m_dialogs.Add(p_dialogData.m_id, dialog); if (p_dialogData.m_id == p_data.m_rootDialogID) { m_rootDialog = dialog; } m_neededTokens.AddRange(dialog.NeededTokens); } if (m_rootDialog == null) { throw new InvalidDataException("RootDialog not found or defined! RootDialogID=" + p_data.m_rootDialogID); } }
protected override void LoadStaticData() { m_staticData = StaticDataHandler.GetStaticData <NpcStaticData>(EDataType.NPC, StaticID); if (m_staticData == null) { LegacyLogger.Log("npc staticdata id " + StaticID + " not found"); } try { NpcConversationStaticData staticData = XmlStaticDataHandler <NpcConversationStaticData> .GetStaticData(StaticData.ConversationKey); if (staticData == null) { LegacyLogger.Log(String.Concat(new Object[] { "npc staticdata id: ", StaticID, ", Conversation staticdata ", StaticData.ConversationKey, " not found" })); } m_conversation = new NpcConversation(staticData); m_tradingInventory = new TradingInventoryController(staticData, this); m_tradingSpells = new TradingSpellController(staticData, this); } catch (Exception ex) { LegacyLogger.LogError(String.Concat(new Object[] { "Error load NPC data\nStaticId: ", StaticID, ", ConversationKey: ", StaticData.ConversationKey, "\n", ex })); } m_identifyController = new IdentifyInventoryController(this); m_repairController = new RepairInventoryController(); }