Example #1
0
        /// <summary>筹措资金任务步骤数据</summary>
        /// <param name="voc">职业</param>
        /// <param name="ide">身份</param>
        public string GetRaiseCoin(int ide)
        {
            //类型_资金总数量_当前资金数量

            //获取当前身份筹措金钱区间
            var r = Variable.BASE_IDENTITY.FirstOrDefault(m => m.id == ide);

            if (r == null || string.IsNullOrEmpty(r.raiseCoin))
            {
                return(string.Empty);
            }

            var temp = r.raiseCoin;

            if (temp.IsNullOrEmpty() || !temp.Contains("-"))
            {
                return(string.Format("{0}_{1}_{2}", (int)TaskStepType.RAISE_COIN, 100000, 0));
            }

            var s   = temp.Split('-').Select(m => Convert.ToInt32(m)).ToList();
            var min = s[0];
            var max = s[1];
            //随机生成筹措资金
            var num = RNG.Next(min, max) * 1000; //金钱单位(文)

            var step_data = new TaskStepItem
            {
                step_type = (int)TaskStepType.RAISE_COIN,
                total     = num,
                count     = 0,
            };

            return(step_data.GetRaiseStepData());
        }
Example #2
0
        /// <summary>数据解析</summary>
        public TaskStepItem Ananalyze(string data)
        {
            if (string.IsNullOrEmpty(data))
            {
                return(null);
            }
            var step_item = new TaskStepItem();
            var temp      = data.Split('_');
            var t         = temp.Length;

            switch (t)
            {
                #region 筹措资金

            case 3:
            {
                //类型_资金总数量_当前资金数量
                step_item.step_type = Convert.ToInt32(temp[0]);
                step_item.total     = Convert.ToInt32(temp[1]);
                step_item.count     = Convert.ToInt32(temp[2]);
                break;
            }

                #endregion

                #region 买卖型任务

            case 6:
            {
                //任务类型_货物町_货物出售城市_货物编号_完成数量_当前数量
                step_item.step_type = Convert.ToInt32(temp[0]);
                step_item.inting    = Convert.ToInt32(temp[1]);
                step_item.ting      = Convert.ToInt32(temp[2]);
                step_item.goods     = Convert.ToInt32(temp[3]);
                step_item.total     = Convert.ToInt32(temp[4]);
                step_item.count     = Convert.ToInt32(temp[5]);
                break;
            }

                #endregion
            }
            return(step_item);
        }
Example #3
0
        /// <summary>货物跑商步骤数据(买卖类型任务--(商人))</summary>
        /// <param name="areas">玩家当前商圈集合</param>
        /// <returns>任务类型_货物出售城市_货物编号_完成数量_当前数量</returns>
        private string GetBusinessStepTask(Int64 user_id)
        {
            List <tg_user_area> areas = tg_user_area.GetEntityByUserId(user_id).ToList();

            if (!areas.Any())
            {
                areas = InitArea(user_id);
            }
            //根据商圈获取一个任务目的地町
            var ba = areas.Select(m => m.area_id);

            var tings = Variable.BASE_TING.Where(m => ba.Contains(m.areaId)).ToList();

            //随机一个自己商圈的町
            var index = RNG.Next(0, tings.Count() - 1);
            var ting  = tings[index];

            var list_all = new List <int>();

            foreach (var item in tings)
            {
                var l = SplitGoods(item.goods).Where(m => !list_all.Contains(m)).ToList();
                list_all.AddRange(l);
            }

            var target = SplitGoods(ting.goods);

            var list_random = list_all.Except(target).ToList();

            //随机一个自己商圈的非目的地町的货物
            index = RNG.Next(0, list_random.Count() - 1);
            var goods = list_random[index];

            //获取货物所在町
            var inting =
                (from item in tings where item.goods.Contains(goods.ToString()) select item.id).FirstOrDefault();

            //随机货物数量
            var r_n = Variable.BASE_RULE.FirstOrDefault(m => m.id == "2001");

            if (r_n == null)
            {
                return(null);
            }
            var t   = r_n.value.Split('-').Select(m => Convert.ToInt32(m)).ToList();
            var min = t[0];
            var max = t[1];
            var num = RNG.Next(min, max);

            var step_data = new TaskStepItem
            {
                step_type = (int)TaskStepType.BUSINESS,
                inting    = inting,
                ting      = ting.id,
                goods     = goods,
                total     = num,
                count     = 0,
            };

            return(step_data.GetBusinessStepData());
        }