Example #1
0
        public static SkillViewModel MapDbModelToViewModel(Database.Skill dbModel)
        {
            var viewModel = new SkillViewModel();

            viewModel.Id         = dbModel.Id;
            viewModel.SkillName  = dbModel.SkillName;
            viewModel.SkillImage = dbModel.SkillImage;

            return(viewModel);
        }
Example #2
0
        public static Database.Skill MapInsertModelToDbModel(SkillViewModel model, Database.Skill newDomainModel = null)
        {
            if (newDomainModel == null)
            {
                newDomainModel    = new Database.Skill();
                newDomainModel.Id = Guid.NewGuid();
            }

            newDomainModel.SkillName  = model.SkillName;
            newDomainModel.SkillImage = model.SkillImage;
            return(newDomainModel);
        }
Example #3
0
        public Skill(Skills owner, SkillInfo info, Database.Skill v)
        {
            m_Owner = owner;
            m_Info  = info;

            m_Base = (ushort)v.Base;
            m_Cap  = (ushort)v.Cap;
            m_Lock = (SkillLock)(byte)v.Lock;



            if (m_Lock < SkillLock.Up || m_Lock > SkillLock.Locked)
            {
                Console.WriteLine("Bad skill lock -> {0}.{1}", owner.Owner, m_Lock);
                m_Lock = SkillLock.Up;
            }
        }
Example #4
0
        protected void SaveMobiles()
        {
            Stopwatch watch = Stopwatch.StartNew();
            Dictionary <Serial, Mobile> mobiles = World.Mobiles;
            List <Database.Mobile>      mobs    = new List <Database.Mobile>();
            List <Database.Skill>       vsk     = new List <Database.Skill>();
            List <Database.MobIndex>    mindex  = new List <Database.MobIndex>();
            int skillid = 0;

            foreach (Mobile m in World.BuffMobiles)
            {
                var typename = m.GetType();

                Database.Mobile v = new Database.Mobile();

                for (int i = 0; i < m.Skills.Length; i++)
                {
                    if (m.Skills[i] != null && m.Skills[i].Base != 0)
                    {
                        Database.Skill vskill = new Database.Skill();
                        skillid++;
                        vskill.Id     = skillid;
                        vskill.Base   = ((double)m.Skills[i].Base) * 10;
                        vskill.Cap    = (int)m.Skills[i].Cap;
                        vskill.Lock   = (byte)m.Skills[i].Lock;
                        vskill.Name   = m.Skills[i].Name;
                        vskill.Parent = m.Serial.Value;
                        vsk.Add(vskill);
                    }
                }


                foreach (Item mitem in m.Items)
                {
                    v.m_Items += mitem.Serial.Value + ";";
                }

                v.mType = typename.FullName;

                v.mTypeRef         = m.m_TypeRef;
                v.Id               = m.Serial.Value;
                v.Serial           = m.Serial.Value;
                v.m_IgnoreMobiles  = m.IgnoreMobiles;
                v.m_AccessLevel    = (byte)m.AccessLevel;
                v.m_AutoPageNotify = m.AutoPageNotify;
                v.m_BaseSoundID    = m.BaseSoundID;
                v.m_Blessed        = m.Blessed;
                v.m_Body           = m.Body;
                v.m_CanSwim        = m.CanSwim;
                v.m_CantWalk       = m.CantWalk;
                if (m.Corpse != null)
                {
                    v.m_Corpse = m.Corpse.Serial.Value;
                }
                v.m_CreationTime = m.CreationTime;
                v.m_Criminal     = m.Criminal;
                v.m_Dex          = m.Dex;
                v.m_Direction    = (byte)m.Direction;
                v.m_DisarmReady  = m.DisarmReady;
                v.m_EmoteHue     = m.EmoteHue;
                v.m_Fame         = m.Fame;
                v.m_Hidden       = m.Hidden;
                v.m_Hits         = m.Hits;
                if (m.Holding != null)
                {
                    v.m_Holding = m.Holding.Serial.Value;
                }
                v.m_Hue = m.Hue;
                v.m_Int = m.Int;

                v.m_Karma             = m.Karma;
                v.m_Language          = m.Language;
                v.m_Locationx         = m.Location.X;
                v.m_Locationy         = m.Location.Y;
                v.m_Locationz         = m.Location.Z;
                v.m_MagicDamageAbsorb = m.MagicDamageAbsorb;
                v.m_Mana = m.Mana;
                if (m.Map != null)
                {
                    v.m_Map = (byte)m.Map.MapIndex;
                }
                v.m_Name         = m.Name;
                v.m_NameHue      = m.NameHue;
                v.m_Player       = m.Player;
                v.m_SpeechHue    = m.SpeechHue;
                v.m_Squelched    = m.Squelched;
                v.m_Stam         = m.Stam;
                v.m_StatCap      = m.StatCap;
                v.m_Str          = m.Str;
                v.m_StunReady    = m.StunReady;
                v.m_VirtualArmor = m.VirtualArmor;
                v.m_Warmode      = m.Warmode;
                v.m_WhisperHue   = m.WhisperHue;
                v.m_YellHue      = m.YellHue;
                // v.Poison = (byte)m.Poison;

                //-------------------------
                if (m.Player)
                {
                    v.Account = m.Account.Username;
                }
                else
                {
                    v.Account = "NPC";
                }
                v.m_BAC         = m.BAC;
                v.m_BaseSoundID = m.BaseSoundID;
                v.m_Blessed     = m.Blessed;
                if (m.LastDexGain < DateTime.UtcNow)
                {
                    v.m_LastDexGain = DateTime.UtcNow;
                }
                else
                {
                    v.m_LastDexGain = m.LastDexGain;
                }
                if (m.LastStrGain < DateTime.UtcNow)
                {
                    v.m_LastStrGain = DateTime.UtcNow;
                }
                else
                {
                    v.m_LastStrGain = m.LastDexGain;
                }
                if (m.LastIntGain < DateTime.UtcNow)
                {
                    v.m_LastIntGain = DateTime.UtcNow;
                }
                else
                {
                    v.m_LastIntGain = m.LastDexGain;
                }
                v.m_Hair             = (byte)m.HairItemID;
                v.m_FacialHair       = (byte)m.FacialHairItemID;
                v.m_Race             = (byte)m.Race.RaceIndex;
                v.m_ShortTermMurders = m.ShortTermMurders;
                v.m_FollowersMax     = m.FollowersMax;
                if (m.GuildFealty != null)
                {
                    v.m_GuildFealty = m.GuildFealty.Serial.Value;
                }
                if (m.Guild != null)
                {
                    v.m_Guild = m.Guild.Id;
                }

                v.m_DisplayGuildTitle = m.DisplayGuildTitle;
                v.m_Hunger            = m.Hunger;
                v.m_Kills             = m.Kills;
                v.m_GuildTitle        = m.GuildTitle;
                v.m_Female            = m.Female;
                v.m_Player            = m.Player;
                v.m_Title             = m.Title;
                v.m_Profile           = m.Profile;
                v.m_ProfileLocked     = m.ProfileLocked;
                v.m_LogoutLocationx   = m.LogoutLocation.X;
                v.m_LogoutLocationy   = m.LogoutLocation.Y;
                v.m_LogoutLocationz   = m.LogoutLocation.Z;
                if (m.LogoutMap != null)
                {
                    v.m_LogoutMap = (byte)m.LogoutMap.MapIndex;
                }
                else
                {
                    v.m_LogoutMap = (byte)(0xFF);
                }
                v.m_StrLock = (byte)m.StrLock;
                v.m_DexLock = (byte)m.DexLock;
                v.m_IntLock = (byte)m.IntLock;
                v.m_Hidden  = m.Hidden;

                MemoryStream  strim = new MemoryStream();
                GenericWriter bin   = new BinaryFileWriter(strim, true);
                m.Serialize(bin);
                bin.Close();
                v.Data = Convert.ToBase64String(strim.ToArray());
                strim.Close();
                mobs.Add(v);
                m.FreeCache();
            }

            for (int i = 0; i < World.m_MobileTypes.Count; ++i)
            {
                Database.MobIndex a = new Database.MobIndex();

                a.MobTypes = (World.m_MobileTypes[i].FullName);
                a.Id       = i;
                mindex.Add(a);
            }

            using (Database.UODataContext writedb = new Database.UODataContext(Core.SQLConnect))
            {
                Database.LinqExtension.Truncate(writedb.Mobiles);    //drop mobiles table
                Database.LinqExtension.Truncate(writedb.Skills);     //drop skills table
                Database.LinqExtension.Truncate(writedb.MobIndexes); //drop mobile index table
                writedb.BulkInsertAll(mobs);                         //bulk insert mobs
                writedb.BulkInsertAll(vsk);                          //bulk insert skillz
                writedb.BulkInsertAll(mindex);
            }
            watch.Stop();
            Console.WriteLine("SQL mobile data created: " + watch.Elapsed.TotalSeconds);
        }