private void SpawnRift() { var rift = (Rift)_entityServices.Factory.CreateWithRandomEID(DefinitionNames.RIFT); rift.SetDespawnTime(TimeSpan.FromHours(3)); rift.RemovedFromZone += OnRiftRemovedFromZone; // generate a stronghold teleport and make it random chance. // make sure we have at least one stronghold enabled. if (_zonemanager.Zones.OfType <StrongHoldZone>().Count() > 0) { int rand = r.Next(0, 10); if (rand == 2 && !StrongHoldRiftGenerated) { rift.DestinationStrongholdZone = GetRandomStrongHoldZone(); rift.OriginZone = this._zone.Id; } } var spawnPosition = _spawnPositionFinder.FindSpawnPosition().ToPosition(); if (_zone is StrongHoldZone) { //TODO: Fixme for I should be a DB table for valid spawn locations on strongholds spawnPosition = new Position(1120, 1039); } rift.AddToZone(_zone, spawnPosition, ZoneEnterType.NpcSpawn); Logger.Info(string.Format("Rift spawned on zone {0} {1} ({2}) Stronghold Zone ID: {3}", _zone.Id, rift.ED.Name, rift.CurrentPosition, rift.DestinationStrongholdZone)); }
private void SpawnRift() { var rift = (Rift)_entityServices.Factory.CreateWithRandomEID(DefinitionNames.RIFT); rift.SetDespawnTime(TimeSpan.FromHours(3)); rift.RemovedFromZone += OnRiftRemovedFromZone; var spawnPosition = _spawnPositionFinder.FindSpawnPosition().ToPosition(); rift.AddToZone(_zone, spawnPosition, ZoneEnterType.NpcSpawn); Logger.Info("Rift spawned. " + rift.ED.Name + " (" + rift.CurrentPosition + ")"); }