public Flock CreateAndAddFlock(IFlockConfiguration configuration) { var flock = CreateFlock(configuration); AddFlock(flock); return(flock); }
public void Insert(IFlockConfiguration item) { const string query = @"insert npcflock (name,presenceid,flockmembercount,definition,spawnoriginX,spawnoriginY,spawnrangeMin,spawnrangeMax,respawnseconds,totalspawncount,homerange,note,respawnmultiplierlow) values (@name,@presenceID,@flockMemberCount,@definition,@spawnOriginX,@spawnOriginY,@spawnRangeMin,@spawnRangeMax,@respawnSeconds,@totalSpawnCount,@homeRange,@note,@respawnMultiplierLow); select cast(scope_identity() as int)"; var id = Db.Query().CommandText(query) .SetParameter("@name", item.Name) .SetParameter("@presenceID", item.PresenceID) .SetParameter("@flockMemberCount", item.FlockMemberCount) .SetParameter("@definition", item.EntityDefault.Definition) .SetParameter("@spawnOriginX", item.SpawnOrigin.intX) .SetParameter("@spawnOriginY", item.SpawnOrigin.intY) .SetParameter("@spawnRangeMin", item.SpawnRange.Min) .SetParameter("@spawnRangeMax", item.SpawnRange.Max) .SetParameter("@respawnSeconds", item.RespawnTime.Seconds) .SetParameter("@totalSpawnCount", item.TotalSpawnCount) .SetParameter("@homeRange", item.HomeRange) .SetParameter("@respawnMultiplierLow", item.RespawnMultiplierLow) .SetParameter("@note", item.Note) .ExecuteScalar <int>().ThrowIfEqual(0, ErrorCodes.SQLInsertError); if (item is FlockConfiguration fc) { fc.ID = id; } }
public Flock(IFlockConfiguration configuration, Presence presence) { Configuration = configuration; Presence = presence; SpawnOrigin = SpawnOriginSelector(presence); }
public RandomFlockSpawner(RandomPresence presence, IRandomFlockSelector randomFlockSelector) { _presence = presence; _randomFlockConfiguration = randomFlockSelector.SelectRandomFlockByPresence(presence); _spawnTimer = new TimeTracker(_randomFlockConfiguration.RespawnTime); _presence.Log($"next random spawn for flock:{_randomFlockConfiguration.ID} {_randomFlockConfiguration.Name} {DateTime.Now}{_randomFlockConfiguration.RespawnTime}"); }
public void Update(IFlockConfiguration item) { const string query = @"update npcflock set [name]=@name, presenceid=@presenceID, flockmembercount=@flockMemberCount, definition=@definition, spawnoriginX=@spawnOriginX, spawnoriginY=@spawnOriginY, spawnrangeMin=@spawnRangeMin, spawnrangeMax=@spawnRangeMax, respawnseconds=@respawnSeconds, totalspawncount=@totalSpawnCount, homerange=@homeRange, respawnmultiplierlow=@respawnMultiplierLow where id=@ID"; var res = Db.Query().CommandText(query) .SetParameter("@ID", item.ID) .SetParameter("@name", item.Name) .SetParameter("@presenceID", item.PresenceID) .SetParameter("@flockMemberCount", item.FlockMemberCount) .SetParameter("@definition", item.EntityDefault.Definition) .SetParameter("@spawnOriginX", item.SpawnOrigin.intX) .SetParameter("@spawnOriginY", item.SpawnOrigin.intY) .SetParameter("@spawnRangeMin", item.SpawnRange.Min) .SetParameter("@spawnRangeMax", item.SpawnRange.Max) .SetParameter("@respawnSeconds", item.RespawnTime.Seconds) .SetParameter("@totalSpawnCount", item.TotalSpawnCount) .SetParameter("@homeRange", item.HomeRange) .SetParameter("@respawnMultiplierLow", item.RespawnMultiplierLow) .SetParameter("@note", item.Note) .ExecuteNonQuery(); if (res == 0) { throw new PerpetuumException(ErrorCodes.SQLUpdateError); } }
private void SpawnRandomFlock(IFlockConfiguration flockConfiguration) { var flock = CreateAndAddFlock(flockConfiguration); flock.SpawnAllMembers(); }
public NormalFlock(IFlockConfiguration configuration, Presence presence) : base(configuration, presence) { respawnMultiplierLow = configuration.RespawnMultiplierLow; }
public Flock CreateFlock(IFlockConfiguration flockConfiguration) { return(FlockFactory(flockConfiguration, this)); }
public void Delete(IFlockConfiguration item) { Db.Query().CommandText("delete npcflock where id=@ID") .SetParameter("@ID", item.ID) .ExecuteNonQuery().ThrowIfEqual(0, ErrorCodes.SQLDeleteError); }