Example #1
0
        public static Models.ClassSpec Load(GomObject obj)
        {
            Models.ClassSpec spec = new Models.ClassSpec();

            spec.NodeId           = obj.Id;
            spec.Fqn              = obj.Name;
            spec.IsPlayerClass    = obj.Name.StartsWith("class.pc.");
            spec.AbilityPackageId = obj.Data.ValueOrDefault <ulong>("field_4000000A1D72EA3A", 0);
            spec.AlignmentDark    = (int)obj.Data.ValueOrDefault <float>("field_40000006A071472E", 0);
            spec.AlignmentLight   = (int)obj.Data.ValueOrDefault <float>("field_40000006A071472D", 0);
            spec.Icon             = obj.Data.ValueOrDefault <string>("chrClassDataIcon", null);
            spec.NameId           = obj.Data.ValueOrDefault <long>("chrClassDataNameId", 0); // Index into str.gui.classnames
            spec.Id   = (int)spec.NameId;
            spec.Name = classNames.GetText(spec.NameId, obj.Name);
            if (String.IsNullOrEmpty(spec.Name))
            {
                spec.Name = obj.Data.ValueOrDefault <string>("chrClassDataName", null);
            }

            idMap[obj.Id]     = spec;
            nameMap[obj.Name] = spec;

            spec.AbilityPackage = AbilityPackageLoader.Load(spec.AbilityPackageId);

            return(spec);
        }
        public static Conversation Load(Conversation cnv, GomObject obj)
        {
            if (obj == null)
            {
                return(null);
            }
            if (cnv == null)
            {
                return(null);
            }

            cnv.Fqn = obj.Name;
            // cnv.Id =

            var dialogNodeMap = obj.Data.Get <Dictionary <object, object> >("cnvTreeDialogNodes_Prototype");

            foreach (var dialogKvp in dialogNodeMap)
            {
                var dialogNode = LoadDialogNode(cnv, (GomObjectData)dialogKvp.Value);
                cnv.DialogNodes.Add(dialogNode);
                cnv.NodeLookup[dialogNode.NodeId] = dialogNode;
                cnv.QuestStarted.AddRange(dialogNode.QuestsGranted);
                cnv.QuestEnded.AddRange(dialogNode.QuestsEnded);
                cnv.QuestProgressed.AddRange(dialogNode.QuestsProgressed);
            }

            return(cnv);
        }
Example #3
0
        private static void LoadData()
        {
            GomObject table = DataObjectModel.GetObject(itmModifierPackageTablePrototypePath);
            Dictionary <object, object> tableData = table.Data.Get <Dictionary <object, object> >("itmModifierPackages");

            item_modpkgprototype_data = new Dictionary <long, Dictionary <string, object> >();
            foreach (var kvp in tableData)
            {
                long modId = (long)kvp.Key;
                Dictionary <string, object> map = (Dictionary <string, object>)((GomLib.GomObjectData)kvp.Value).Dictionary;

                item_modpkgprototype_data[modId] = map;

                //List<List<int>> qData = new List<List<int>>();

                /*foreach (List<object> stats in qlist)
                 * {
                 *  var lvlData = new List<int>();
                 *  foreach (long stat in stats)
                 *  {
                 *      lvlData.Add((int)stat);
                 *  }
                 *  qData.Add(lvlData);
                 * }*/
                //item_modpkgprototype_data.Add((int)quality, qData);
            }
        }
Example #4
0
        public static Models.Encounter Load(Models.Encounter enc, GomObject obj)
        {
            if (obj == null)
            {
                return(null);
            }
            if (enc == null)
            {
                return(null);
            }

            enc.Fqn    = obj.Name;
            enc.NodeId = obj.Id;

            enc.Spawners = new Dictionary <string, string>();

            if (obj.Data.ContainsKey("spnEncounterSpawnerIdsToFqns"))
            {
                Dictionary <object, object> spawnerIdToFqn = obj.Data.ValueOrDefault <Dictionary <object, object> >("spnEncounterSpawnerIdsToFqns", null);
                foreach (var kvp in spawnerIdToFqn)
                {
                    enc.Spawners.Add(kvp.Key.ToString().ToLower(), kvp.Value.ToString());
                }
            }

            ulong hydraScriptId = obj.Data.ValueOrDefault <ulong>("field_4000000A4FA14A26", 0);

            if (hydraScriptId > 0)
            {
                //enc.HydraScript = HydraScriptLoader.Load(hydraScriptId);
            }

            return(enc);
        }
        public static Models.AbilityPackage Load(GomObject obj)
        {
            if (obj == null)
            {
                return(null);
            }

            if (nameMap.ContainsKey(obj.Name))
            {
                return(nameMap[obj.Name]);
            }

            Models.AbilityPackage pkg = new Models.AbilityPackage();
            pkg.Id     = obj.Name;
            pkg.NodeId = obj.Id;

            IDictionary <object, object> ablList = obj.Data.ValueOrDefault <IDictionary <object, object> >("ablPackageAbilitiesList", null);

            if (ablList != null)
            {
                PackageAbilityLoader pkgAblLoader = new PackageAbilityLoader();
                foreach (var kvp in ablList)
                {
                    // Load PackageAbility from kvp.Value
                    var pkgAbl = pkgAblLoader.Load((GomObjectData)kvp.Value);

                    // Add PackageAbility to pkg
                    pkg.PackageAbilities.Add(pkgAbl);
                }
            }

            nameMap[obj.Name] = pkg;
            idMap[obj.Id]     = pkg;
            return(pkg);
        }
Example #6
0
        public static Models.Quest Load(Models.Quest qst, GomObject obj)
        {
            if (obj == null)
            {
                return(qst);
            }
            if (qst == null)
            {
                return(null);
            }

            qst.Fqn    = obj.Name;
            qst.NodeId = obj.Id;

            var textMap = (Dictionary <object, object>)obj.Data.ValueOrDefault <Dictionary <object, object> >("locTextRetrieverMap", null);

            qst.TextLookup = textMap;

            long questGuid = obj.Data.ValueOrDefault <long>("qstQuestDefinitionGUID", 0);

            qst.Id             = (ulong)(questGuid >> 32);
            qst.RequiredLevel  = (int)obj.Data.ValueOrDefault <long>("qstReqMinLevel", 0);
            qst.IsRepeatable   = obj.Data.ValueOrDefault <bool>("qstIsRepeatable", false);
            qst.XpLevel        = (int)obj.Data.ValueOrDefault <long>("qstXpLevel", 0);
            qst.Difficulty     = QuestDifficultyExtensions.ToQuestDifficulty((ScriptEnum)obj.Data.ValueOrDefault <ScriptEnum>("qstDifficulty", null));
            qst.CanAbandon     = obj.Data.ValueOrDefault <bool>("qstAllowAbandonment", false);
            qst.Icon           = obj.Data.ValueOrDefault <string>("qstMissionIcon", null);
            qst.IsHidden       = obj.Data.ValueOrDefault <bool>("qstIsHiddenQuest", false);
            qst.IsClassQuest   = obj.Data.ValueOrDefault <bool>("qstIsClassQuest", false);
            qst.IsBonus        = obj.Data.ValueOrDefault <bool>("qstIsBonusQuest", false);
            qst.BonusShareable = obj.Data.ValueOrDefault <bool>("qstIsBonusQuestShareable", false);
            qst.CategoryId     = obj.Data.ValueOrDefault <long>("qstCategoryDisplayName", 0);
            qst.Category       = QuestCategoryExtensions.ToQuestCategory(qst.CategoryId);

            LoadBranches(qst, obj);
            var items   = (List <object>)obj.Data.ValueOrDefault <List <object> >("qstItemVariableDefinition_ProtoVarList", null);
            var bools   = (List <object>)obj.Data.ValueOrDefault <List <object> >("qstSimpleBoolVariableDefinition_ProtoVarList", null);
            var strings = (List <object>)obj.Data.ValueOrDefault <List <object> >("qstStringIdVariableDefinition_ProtoVarList", null);

            LoadRequiredClasses(qst, obj);

            long nameId     = questGuid + 0x58;
            var  nameLookup = (GomObjectData)textMap[nameId];

            qst.Name = StringTable.TryGetString(qst.Fqn, nameLookup);

            if (qst.Name.StartsWith("CUT", StringComparison.InvariantCulture))
            {
                qst.IsHidden = true;
            }

            TorLib.Icons.AddCodex(qst.Icon);

            return(qst);
        }
Example #7
0
        public static void LoadReferences(Models.GameObject obj, GomObject gom)
        {
            var npc = (Npc)obj;

            ulong npcCharacterCompanionOverride = gom.Data.ValueOrDefault <ulong>("npcCharacterCompanionOverride", 0);

            if (npcCharacterCompanionOverride > 0)
            {
                npc.CompanionOverride = Load(npcCharacterCompanionOverride);
            }
            // No references to load
        }
Example #8
0
        public static Models.MapNote Load(ulong nodeId)
        {
            Models.MapNote result;
            if (idMap.TryGetValue(nodeId, out result))
            {
                return(result);
            }

            GomObject obj = DataObjectModel.GetObject(nodeId);

            Models.MapNote mpn = new Models.MapNote();
            return(Load(mpn, obj));
        }
Example #9
0
        public static Models.MapNote Load(string fqn)
        {
            Models.MapNote result;
            if (nameMap.TryGetValue(fqn, out result))
            {
                return(result);
            }

            GomObject obj = DataObjectModel.GetObject(fqn);

            Models.MapNote mpn = new Models.MapNote();
            return(Load(mpn, obj));
        }
Example #10
0
        public static Models.Quest Load(string fqn)
        {
            Quest result;

            if (nameMap.TryGetValue(fqn, out result))
            {
                return(result);
            }

            GomObject obj = DataObjectModel.GetObject(fqn);
            Quest     qst = new Quest();

            return(Load(qst, obj));
        }
        public static Models.AdvancedClass Load(GomObject obj)
        {
            Models.AdvancedClass ac = new Models.AdvancedClass();
            ac.NodeId   = obj.Id;
            ac.Fqn      = obj.Name;
            ac.NameId   = obj.Data.ValueOrDefault <long>("chrAdvancedClassDataNameId", 0);
            ac.Id       = (int)ac.NameId;
            ac.Name     = classNames.GetText(StringOffset + ac.NameId, ac.Fqn);
            ac.Packages = new List <Models.AbilityPackage>();
            ulong classSpecNodeId = obj.Data.ValueOrDefault <ulong>("chrAdvancedClassDataClassSpec", 0);

            ac.ClassSpec = ClassSpecLoader.Load(classSpecNodeId);
            return(ac);
        }
Example #12
0
        public static Models.Quest Load(ulong nodeId)
        {
            Quest result;

            if (idMap.TryGetValue(nodeId, out result))
            {
                return(result);
            }

            GomObject obj = DataObjectModel.GetObject(nodeId);
            Quest     qst = new Quest();

            return(Load(qst, obj));
        }
Example #13
0
        public static Models.Placeable Load(string fqn)
        {
            Placeable result;

            if (nameMap.TryGetValue(fqn, out result))
            {
                return(result);
            }

            GomObject obj = DataObjectModel.GetObject(fqn);
            Placeable plc = new Placeable();

            return(Load(plc, obj));
        }
Example #14
0
        public static Models.Codex Load(ulong nodeId)
        {
            Codex result;

            if (idMap.TryGetValue(nodeId, out result))
            {
                return(result);
            }

            GomObject obj = DataObjectModel.GetObject(nodeId);
            Codex     cdx = new Codex();

            return(Load(cdx, obj));
        }
Example #15
0
        public static Models.Codex Load(string fqn)
        {
            Codex result;

            if (nameMap.TryGetValue(fqn, out result))
            {
                return(result);
            }

            GomObject obj = DataObjectModel.GetObject(fqn);
            Codex     cdx = new Codex();

            return(Load(cdx, obj));
        }
Example #16
0
        public static Models.Encounter Load(string fqn)
        {
            Encounter result;

            if (nameMap.TryGetValue(fqn, out result))
            {
                return(result);
            }

            GomObject obj = DataObjectModel.GetObject(fqn);
            Encounter enc = new Encounter();

            return(Load(enc, obj));
        }
Example #17
0
        public static Models.Ability Load(string fqn)
        {
            Ability result;

            if (nameMap.TryGetValue(fqn, out result))
            {
                return(result);
            }

            GomObject obj = DataObjectModel.GetObject(fqn);

            Models.Ability abl = new Ability();
            return(Load(abl, obj));
        }
Example #18
0
        public static Models.Ability Load(ulong nodeId)
        {
            Ability result;

            if (idMap.TryGetValue(nodeId, out result))
            {
                return(result);
            }

            GomObject obj = DataObjectModel.GetObject(nodeId);

            Models.Ability abl = new Ability();
            return(Load(abl, obj));
        }
Example #19
0
        public static Models.Schematic Load(string fqn)
        {
            Schematic result;

            if (nameMap.TryGetValue(fqn, out result))
            {
                return(result);
            }

            GomObject obj = DataObjectModel.GetObject(fqn);
            Schematic sch = new Schematic();

            return(Load(sch, obj));
        }
Example #20
0
        public static Models.Npc Load(ulong nodeId)
        {
            Npc result;

            if (idMap.TryGetValue(nodeId, out result))
            {
                return(result);
            }

            GomObject obj = DataObjectModel.GetObject(nodeId);
            Npc       npc = new Npc();

            return(Load(npc, obj));
        }
Example #21
0
        public static Models.Npc Load(string fqn)
        {
            Npc result;

            if (nameMap.TryGetValue(fqn, out result))
            {
                return(result);
            }

            GomObject obj = DataObjectModel.GetObject(fqn);
            Npc       npc = new Npc();

            return(Load(npc, obj));
        }
Example #22
0
        public static Models.Schematic Load(ulong nodeId)
        {
            Schematic result;

            if (idMap.TryGetValue(nodeId, out result))
            {
                return(result);
            }

            GomObject obj = DataObjectModel.GetObject(nodeId);
            Schematic sch = new Schematic();

            return(Load(sch, obj));
        }
Example #23
0
        public static Placeable Load(ulong nodeId)
        {
            Placeable result;

            if (idMap.TryGetValue(nodeId, out result))
            {
                return(result);
            }

            GomObject obj = DataObjectModel.GetObject(nodeId);
            Placeable plc = new Placeable();

            return(Load(plc, obj));
        }
Example #24
0
        public static Encounter Load(ulong nodeId)
        {
            Encounter result;

            if (idMap.TryGetValue(nodeId, out result))
            {
                return(result);
            }

            GomObject obj = DataObjectModel.GetObject(nodeId);
            Encounter enc = new Encounter();

            return(Load(enc, obj));
        }
Example #25
0
        public static Models.Conversation Load(string fqn)
        {
            Conversation result;

            if (nameMap.TryGetValue(fqn, out result))
            {
                return(result);
            }

            GomObject    obj = DataObjectModel.GetObject(fqn);
            Conversation cnv = new Conversation();

            return(Load(cnv, obj));
        }
Example #26
0
        public static Models.Conversation Load(ulong nodeId)
        {
            Conversation result;

            if (idMap.TryGetValue(nodeId, out result))
            {
                return(result);
            }

            GomObject    obj = DataObjectModel.GetObject(nodeId);
            Conversation cnv = new Conversation();

            return(Load(cnv, obj));
        }
Example #27
0
        private static void LoadData()
        {
            GomObject table = DataObjectModel.GetObject(itmRatingsTablePath);
            Dictionary <object, object> tableData = table.Data.Get <Dictionary <object, object> >("itmRatings");

            item_rating_data = new Dictionary <int, Dictionary <Models.ItemQuality, int> >();
            foreach (var kvp in tableData)
            {
                int lvl        = (int)(long)kvp.Key;
                var ratingData = (Dictionary <object, object>)kvp.Value;
                var qMap       = new Dictionary <Models.ItemQuality, int>();
                foreach (var qr in ratingData)
                {
                    var quality = Models.ItemQualityExtensions.ToItemQuality((ScriptEnum)qr.Key);
                    var rating  = (int)(long)qr.Value;
                    qMap.Add(quality, rating);
                }
                item_rating_data.Add(lvl, qMap);
            }

            //var rows = Utilities.ReadDataTable(itmRatingsTablePath, (row) =>
            //{
            //    return new
            //    {
            //        Level = row.Element("level").AsInt(),
            //        Cheap = row.Element("itmQualityCheap").AsInt(),
            //        Standard = row.Element("itmQualityStandard").AsInt(),
            //        Premium = row.Element("itmQualityPremium").AsInt(),
            //        Prototype = row.Element("itmQualityPrototype").AsInt(),
            //        Artifact = row.Element("itmQualityArtifact").AsInt(),
            //        Legendary = row.Element("itmQualityLegendary").AsInt(),
            //        Legacy = row.Element("itmQualityLegacy").AsInt()
            //    };
            //});
            //item_rating_data = new Dictionary<int, Dictionary<Models.ItemQuality, int>>();
            //foreach (var row in rows)
            //{
            //    var qMap = new Dictionary<ItemQuality, int>();
            //    qMap.Add(Models.ItemQuality.Cheap, row.Cheap);
            //    qMap.Add(Models.ItemQuality.Standard, row.Standard);
            //    qMap.Add(Models.ItemQuality.Premium, row.Premium);
            //    qMap.Add(Models.ItemQuality.Prototype, row.Prototype);
            //    qMap.Add(Models.ItemQuality.Artifact, row.Artifact);
            //    qMap.Add(Models.ItemQuality.Legendary, row.Legendary);
            //    qMap.Add(Models.ItemQuality.Legacy, row.Legacy);
            //    qMap.Add(Models.ItemQuality.Quest, row.Quest);
            //    item_rating_data.Add(row.Level, qMap);
            //}
        }
Example #28
0
        private static void LoadBranches(Quest qst, GomObject obj)
        {
            var branches = (List <object>)obj.Data.ValueOrDefault <List <object> >("qstBranches", null);

            qst.Branches = new List <QuestBranch>();
            if (branches != null)
            {
                foreach (var br in branches)
                {
                    var branch = QuestBranchLoader.Load((GomObjectData)br, qst);
                    branch.Quest = qst;
                    qst.Branches.Add(branch);
                }
            }
        }
Example #29
0
        public static Models.Item Load(string fqn)
        {
            Item result;

            if (nameMap.TryGetValue(fqn, out result))
            {
                return(result);
            }

            GomObject obj = DataObjectModel.GetObject(fqn);

            if (obj == null)
            {
                return(null);
            }
            Models.Item itm = new Item();
            return(Load(itm, obj));
        }
Example #30
0
        public static Models.Item Load(ulong nodeId)
        {
            Item result;

            if (idMap.TryGetValue(nodeId, out result))
            {
                return(result);
            }

            GomObject obj = DataObjectModel.GetObject(nodeId);

            if (obj == null)
            {
                return(null);
            }
            Models.Item itm = new Item();
            return(Load(itm, obj));
        }