/// <summary>
        /// load keep from Db object and load keep component and object of keep
        /// </summary>
        /// <param name="keep"></param>
        public virtual void Load(DBKeep keep)
        {
            CurrentRegion = WorldMgr.GetRegion((ushort)keep.Region);
            InitialiseTimers();
            LoadFromDatabase(keep);
            GameEventMgr.AddHandler(CurrentRegion, RegionEvent.PlayerEnter, new DOLEventHandler(SendKeepInit));
            KeepArea area = null;

            //see if any keep areas for this keep have already been added via DBArea
            foreach (AbstractArea a in CurrentRegion.GetAreasOfSpot(keep.X, keep.Y, keep.Z))
            {
                if (a is KeepArea && a.Description == keep.Name)
                {
                    log.Debug("Found a DBArea entry for " + keep.Name + ", loading that instead of creating a new one.");
                    area      = a as KeepArea;
                    area.Keep = this;
                    break;
                }
            }

            if (area == null)
            {
                area = new KeepArea(this);
                area.CanBroadcast = true;
                area.CheckLOS     = true;
                CurrentRegion.AddArea(area);
            }
            area.Keep = this;
            this.Area = area;
        }
 /// <summary>
 /// load keep from DB
 /// </summary>
 /// <param name="keep"></param>
 public virtual void LoadFromDatabase(DataObject keep)
 {
     m_dbkeep             = keep as DBKeep;
     InternalID           = keep.ObjectId;
     m_difficultyLevel[0] = m_dbkeep.AlbionDifficultyLevel;
     m_difficultyLevel[1] = m_dbkeep.MidgardDifficultyLevel;
     m_difficultyLevel[2] = m_dbkeep.HiberniaDifficultyLevel;
     if (m_dbkeep.ClaimedGuildName != null && m_dbkeep.ClaimedGuildName != "")
     {
         Guild myguild = GuildMgr.GetGuildByName(m_dbkeep.ClaimedGuildName);
         if (myguild != null)
         {
             this.m_guild = myguild;
             this.m_guild.ClaimedKeeps.Add(this);
             StartDeductionTimer();
         }
     }
     if (Level < ServerProperties.Properties.MAX_KEEP_LEVEL && m_guild != null)
     {
         StartChangeLevel((byte)ServerProperties.Properties.MAX_KEEP_LEVEL);
     }
     else if (Level <= ServerProperties.Properties.MAX_KEEP_LEVEL && Level > ServerProperties.Properties.STARTING_KEEP_LEVEL && m_guild == null)
     {
         StartChangeLevel((byte)ServerProperties.Properties.STARTING_KEEP_LEVEL);
     }
 }
Ejemplo n.º 3
0
        private GameKeepComponent CreateKeepWall()
        {
            var dbKeep = new DBKeep();
            var keep   = new GameKeep();

            keep.DBKeep = dbKeep;
            var keepComponent = new GameKeepComponent();

            keepComponent.Skin             = GuardPositionAtKeepWallTemplate.ComponentSkin;
            keepComponent.ComponentHeading = GuardPositionAtKeepWallTemplate.ComponentRotation;
            return(keepComponent);
        }