コード例 #1
0
        public List<PokemonFactory> ChampionFactory()
        {
            List<PokemonFactory> factories = new List<PokemonFactory>();

            SQLiteCommand command = new SQLiteCommand("select * from champion_factories", connection);
            SQLiteDataReader reader = command.ExecuteReader();

            while (reader.Read())
            {
                int type_1 = (int)(long)reader["type_1_id"];
                int type_2 = (int)(long)reader["type_2_id"];
                StatRange hp_range = new StatRange((int)(long)reader["hp_min"], (int)(long)reader["hp_max"]);
                StatRange attack_range = new StatRange((int)(long)reader["attack_min"], (int)(long)reader["attack_max"]);
                StatRange defense_range = new StatRange((int)(long)reader["defense_min"], (int)(long)reader["defense_max"]);
                StatRange special_attack_range = new StatRange((int)(long)reader["special_attack_min"], (int)(long)reader["special_attack_max"]);
                StatRange special_defense_range = new StatRange((int)(long)reader["special_defense_min"], (int)(long)reader["special_defense_max"]);
                StatRange speed_range = new StatRange((int)(long)reader["speed_min"], (int)(long)reader["speed_max"]);
                string name = (string)reader["name"];

                PokemonFactory factory = new PokemonFactory(type_1, type_2, hp_range, attack_range, defense_range, special_attack_range, special_defense_range, speed_range, name);

                factories.Add(factory);
            }

            return factories;
        }
コード例 #2
0
ファイル: Model.cs プロジェクト: jangocheng/TaskMQ
 public void checkExpired()
 {
     lock (currentRanges)
         for (int i = 0; i < currentRanges.Length; i++)
         {
             StatRange r = currentRanges[i];
             FlushExpired(i, r);
         }
 }
コード例 #3
0
ファイル: Model.cs プロジェクト: jangocheng/TaskMQ
 public void inc()
 {
     lock (currentRanges)
         for (int i = 0; i < currentRanges.Length; i++)
         {
             StatRange r = currentRanges[i];
             r = FlushExpired(i, r);
             r.inc();
         }
 }
コード例 #4
0
ファイル: Model.cs プロジェクト: jangocheng/TaskMQ
        public void CreateRanges(int[] secRanges, FlushCB f = null)
        {
            currentRanges = new StatRange[secRanges.Length];
            lastRanges    = new StatRange[secRanges.Length];
            for (int i = 0; i < secRanges.Length; i++)
            {
                lastRanges[i] = currentRanges[i] = new StatRange(secRanges[i]);
            }

            flushCallback = f;
        }
コード例 #5
0
 public PokemonFactory(int type_1, int type_2, StatRange hp_range, StatRange attack_range, StatRange defense_range, StatRange special_attack_range, StatRange special_defense_range, StatRange speed_range, string name)
 {
     this.type_1 = type_1;
     this.type_2 = type_2;
     this.hp_range = hp_range;
     this.attack_range = attack_range;
     this.defense_range = defense_range;
     this.special_attack_range = special_attack_range;
     this.special_defense_range = defense_range;
     this.speed_range = speed_range;
     this.name = name;
 }
コード例 #6
0
ファイル: Broker.cs プロジェクト: jangocheng/TaskMQ
        public StatisticContainer GetChannelsStatistic()
        {
            StatisticContainer statc = new StatisticContainer();
            foreach (BrokerStat sm in MessageChannels.GetStatistics())
            {
                if (sm == null)
                    continue;
                StatRange range = sm.GetFlushedMinRange();

                statc.FlushedMinRanges.Add(new MetaStatRange() { Name = sm.Name, range = range });
            }
            return statc;
        }
コード例 #7
0
ファイル: Model.cs プロジェクト: jangocheng/TaskMQ
        private StatRange FlushExpired(int i, StatRange r)
        {
            if (r.Expired)
            {
                // flush and create new
                if (flushCallback != null)
                {
                    flushCallback(r, this.MatchData);
                }

                logger.Info("{0} {1}/{2}sec.", matchString(), r.Counter, r.secondsInterval);
                lastRanges[i] = r;
                r             = currentRanges[i] = new StatRange(r);
            }
            return(r);
        }
コード例 #8
0
    public List <StatModifier> GenerateStatSet()
    {
        List <StatModifier> statModifiers = new List <StatModifier>();

        List <StatRange> cloneRanges = statRanges.GetRange(0, statRanges.Count);

        for (int i = 0; i < statNo; i++)
        {
            int       selection = Random.Range(0, cloneRanges.Count);
            StatRange stat      = cloneRanges[selection];

            statModifiers.Add(new StatModifier(stat.GenerateStatValue(), stat.statName));
            cloneRanges.RemoveAt(selection);
        }

        return(statModifiers);
    }
コード例 #9
0
        private void FlushCallBack(StatRange range, Dictionary <string, object> match)
        {
            MongoRange r = new MongoRange
            {
                Counter         = range.Counter,
                Left            = range.Left,
                MatchElements   = match,
                SecondsInterval = range.secondsInterval
            };

            try
            {
                PersistenceChunks.Save(r);
            }
            catch (Exception e)
            {
                logger.Exception(e, "FlushCallBack", "can't save statistic chunk");
            }
        }
コード例 #10
0
ファイル: Model.cs プロジェクト: jangocheng/TaskMQ
        public void CreateRanges(int[] secRanges, MongoRange[] pranges, FlushCB f = null)
        {
            currentRanges = new StatRange[secRanges.Length];
            lastRanges    = new StatRange[secRanges.Length];
            for (int i = 0; i < secRanges.Length; i++)
            {
                StatRange sr = new StatRange(secRanges[i]);
                for (int j = 0; j < pranges.Length; j++)
                {
                    if (pranges[j].SecondsInterval == secRanges[i])
                    {
                        sr.Restore(pranges[j]);
                        break;
                    }
                }
                lastRanges[i] = currentRanges[i] = sr;
            }

            flushCallback = f;
        }
コード例 #11
0
ファイル: baseService.cs プロジェクト: SmartFire/TaskMQ
        public object Get(StatisticRequest r)
        {
            StatisticResponseHeartbit h = new StatisticResponseHeartbit();

            h.Channels = new List <ItemCounter>();

            StatisticContainer statCont = QueueService.ModProducer.broker.GetChannelsStatistic();

            foreach (MetaStatRange mrange in statCont.FlushedMinRanges)
            {
                StatRange range = mrange.range;
                h.Channels.Add(new ItemCounter()
                {
                    Name  = mrange.Name,
                    Count = r.GetThroughput ? (int)range.PerMinute : (int)range.Counter,
                    Left  = range.Left.ToString()
                });
            }

            return(h);
        }