/// <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); } }
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); }