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);
     }
 }
Exemple #4
0
        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();
        }