Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 3
0
        public Flock(IFlockConfiguration configuration, Presence presence)
        {
            Configuration = configuration;
            Presence      = presence;

            SpawnOrigin = SpawnOriginSelector(presence);
        }
Ejemplo n.º 4
0
            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);
            }
        }
Ejemplo n.º 6
0
        private void SpawnRandomFlock(IFlockConfiguration flockConfiguration)
        {
            var flock = CreateAndAddFlock(flockConfiguration);

            flock.SpawnAllMembers();
        }
Ejemplo n.º 7
0
 public NormalFlock(IFlockConfiguration configuration, Presence presence) : base(configuration, presence)
 {
     respawnMultiplierLow = configuration.RespawnMultiplierLow;
 }
Ejemplo n.º 8
0
 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);
 }