Example #1
0
        private bool _CheckStageBufferToOddsRule(FarmBuffer data)
        {
            var natrue = new NatureBufferChancesTable().Get().ToDictionary(x => x.Key);

            var hiLoRate = data.BufferTempValue.HiLoRate;

            var randNumber = _Visitor.FindIRandom(RandomData.RULE.ODDS, 3).NextInt(0, 1000);

            if (hiLoRate <= natrue[-3].Value)
            {
                if (randNumber < 750)
                {
                    // 有75% 不翻倍
                    return(false);
                }
            }
            else if (hiLoRate <= natrue[-2].Value)
            {
                if (randNumber < 500)
                {
                    // 有50% 不翻倍
                    return(false);
                }
            }
            else if (hiLoRate <= natrue[-1].Value)
            {
                if (randNumber < 250)
                {
                    // 有25% 不翻倍
                    return(false);
                }
            }
            else if (hiLoRate <= natrue[0].Value)
            {
                if (randNumber < 100)
                {
                    // 有10% 不翻倍
                    return(false);
                }
            }

            return(true);
        }
        public int Run(long buffer_value, int base_value)
        {
            var natureValue = 0;

            var datas = new NatureBufferChancesTable().Get().ToDictionary(x => x.Key);

            // 沒有的話要回傳最小值
            if (!datas.Any(data => buffer_value > (data.Key * base_value)))
            {
                return((int)datas.First().Value.Value);
            }

            // 比對最大值
            foreach (var data in datas.Where(data => buffer_value > (data.Key * base_value)))
            {
                natureValue = (int)data.Value.Value;
            }

            return(natureValue);
        }
Example #3
0
        public int Run(long buffer_value, int base_value)
        {
            var natureValue = 0;

            var datas = new NatureBufferChancesTable().Get()
                                                    .ToDictionary(x => x.Key);

            // �S�����ܭn�^�dz̤p��
            if(!datas.Any(data => buffer_value > (data.Key * base_value)))
            {
                return (int)datas.First()
                                .Value.Value;
            }

            // ���̤j��
            foreach(var data in datas.Where(data => buffer_value > (data.Key * base_value)))
            {
                natureValue = (int)data.Value.Value;
            }

            return natureValue;
        }
Example #4
0
        /// <summary>
        ///     比對漁場資料
        /// </summary>
        private bool _CheckStageRate()
        {
            var normal = _Visitor.Farm.FindDataRoot(_Visitor.FocusBlockName, FarmDataRoot.BufferNode.BUFFER_NAME.NORMAL);
            var natrue = new NatureBufferChancesTable().Get()
                                                        .ToDictionary(x => x.Key);

            var hiLoRate = normal.TempValueNode.HiLoRate;

            var randNumber = _Visitor.FindIRandom(RandomData.RULE.ODDS, 3)
                                    .NextInt(0, 1000);

            if(hiLoRate <= natrue[-3].Value)
            {
                if(randNumber < 750)
                {
                    // 有75% 不翻倍
                    return false;
                }
            }
            else if(hiLoRate <= natrue[-2].Value)
            {
                if(randNumber < 500)
                {
                    // 有50% 不翻倍
                    return false;
                }
            }
            else if(hiLoRate <= natrue[-1].Value)
            {
                if(randNumber < 250)
                {
                    // 有25% 不翻倍
                    return false;
                }
            }
            else if(hiLoRate <= natrue[0].Value)
            {
                if(randNumber < 100)
                {
                    // 有10% 不翻倍
                    return false;
                }
            }

            return true;
        }