예제 #1
0
        public static void WriteInstanceStubs()
        {
            var dir = ToolConfig.DefaultAddonSourceDir + "Instances/";

            RealmDBMgr.Initialize();
            ContentMgr.Initialize();
            World.InitializeWorld();
            InstanceMgr.Initialize();

            foreach (var instance in InstanceMgr.InstanceInfos)
            {
                var className = instance.Id.ToString();
                var baseClass = typeof(BaseInstance).Name;
                var file      = dir + className + ".cs";
                if (!File.Exists(file))
                {
                    using (var writer = new CodeFileWriter(file, "WCell.Addons.Default.Instances",
                                                           className,
                                                           "class",
                                                           ": " + baseClass,
                                                           "WCell.RealmServer.Instances"))
                    {
                    }
                }
            }
        }
예제 #2
0
        public static void WriteAllEnums()
        {
            RealmDBMgr.Initialize();
            ContentMgr.Initialize();
            World.InitializeWorld();
            SpellHandler.LoadSpells();
            FactionMgr.Initialize();
            SpellHandler.Initialize2();
            AreaTriggerMgr.Initialize();

            WriteZoneEnum();
            WriteMapEnum();
            WriteSkillEnums();
            WriteRangeEnum();
            WriteFactionEnums();
            WriteSpellFocusEnum();
            WriteSpellId();
            WriteSpellMechanicEnum();
            WriteTalentEnums();
            WriteItemId();
            WriteItemSetId();
            WriteNpcId();
            WriteCreatureFamilyId();
            WriteGOEntryId();
            WriteRealmCategory();
            WriteTotemCategories();
            WriteAreaTriggers();

            //NPCMgr.ForceInitialize();
            //WriteRideEnum();
        }
예제 #3
0
        public static void Init()
        {
            RealmDBMgr.Initialize();
            var mgr = RealmServer.RealmServer.InitMgr;

            RealmAddonMgr.Initialize(mgr);
            mgr.PerformInitialization();

            ContentMgr.Initialize();

            SpellHandler.LoadSpells();
            FactionMgr.Initialize();
            SpellHandler.Initialize2();
        }
예제 #4
0
        public static void CreateMaps()
        {
            if (Maps != null)
            {
                return;
            }

            RealmDBMgr.Initialize();
            ContentMgr.Initialize();
            SpellHandler.LoadSpells();
            SpellHandler.Initialize2();

            World.InitializeWorld();
            World.LoadDefaultMaps();
            ArchetypeMgr.EnsureInitialize();                            // for default spells

            NPCMgr.LoadNPCDefs();                                       // for trainers

            Maps = new Dictionary <string, HashSet <Spell> > [(int)ClassId.End];

            FindTalents();
            FindAbilities();

            foreach (var spell in SpellHandler.ById)
            {
                if (spell != null && spell.Ability != null && LineSkills.Contains(spell.Ability.Skill.Id))
                {
                    AddSpell(spell, true);
                }
            }

            // remove empty lines
            foreach (var dict in Maps)
            {
                if (dict != null)
                {
                    foreach (var pair in dict.ToArray())
                    {
                        if (pair.Value.Count == 0)
                        {
                            dict.Remove(pair.Key);
                        }
                    }
                }
            }
        }
예제 #5
0
        public static void WriteSpellId()
        {
            RealmDBMgr.Initialize();
            ContentMgr.Initialize();
            World.InitializeWorld();
            SpellHandler.LoadSpells();
            FactionMgr.Initialize();
            SpellHandler.Initialize2();

            var noSpell = new Spell {
                Name = "None", Effects = new SpellEffect[0]
            };

            SpellHandler.ById[0] = noSpell;
            WriteEnum("SpellId", " : uint", "Spells", SpellHandler.ById, false,
                      (spell) => { return(true); },
                      (spell) => { return(spell.FullName + spell.RankDesc); },
                      (spell) =>
            {
                TalentEntry talent = spell.Talent;

                var descs = new List <string>();

                if (spell.IsPassive)
                {
                    descs.Add("Passive");
                }

                if (talent != null)
                {
                    descs.Add("Talent");
                }
                else if (spell.Ability != null &&
                         spell.Ability.Skill != null && spell.Ability.Skill.Category != SkillCategory.Invalid)
                {
                    descs.Add(spell.Ability.Skill.Category.ToString());
                }

                if (spell.IsTeachSpell)
                {
                    descs.Add("Teachspell");
                }
                if (spell.Level > 0)
                {
                    descs.Add("Level: " + spell.Level);
                }

                string desc = string.Join(", ", descs.ToArray());

                if (!string.IsNullOrEmpty(spell.Description))
                {
                    if (desc.Length > 0)
                    {
                        desc += "\n";
                    }
                    desc += spell.Description;
                }

                return(desc);
            },
                      (spell, name) => { return(null); },
                      (spell) => { return(spell.Id.ToString()); });
        }