Example #1
0
        /// <summary> 拒绝同盟 </summary>
        /// <param name="temp">盟友信息</param>
        /// <returns></returns>
        private ASObject Refuse(tg_war_partner temp, double count)
        {
            var istrue = tg_war_partner.GetPartnerExist(temp.user_id, temp.partner_id); //验证对方是否有数据

            if (istrue)
            {
                temp.state            = (int)WarPertnerType.DIPLOMACY_IN; //标记处理过
                temp.request_end_time = 0;
                if (temp.Update() > 0)
                {
                    var wp = view_war_partner.GetEntityById(temp.id);
                    var d  = EntityToVo.ToDiplomacyVo(wp, count);
                    return(BulidData(d, 1));
                }
            }
            else
            {
                var wp = view_war_partner.GetEntityById(temp.id);
                var d  = EntityToVo.ToDiplomacyVo(wp, count);
                if (temp.Delete() > 0)
                {
                    return(BulidData(d, 0));
                }
            }
            return(CommonHelper.ErrorResult(ResultType.DATABASE_ERROR));
        }
Example #2
0
        /// <summary>根据己方盟友数据保存对方盟友数据 </summary>
        /// <param name="model">己方盟友数据</param>
        /// <returns></returns>
        private bool SaveWarPartner(tg_war_partner model, int count, bool flag)
        {
            var number = Convert.ToInt32((new Share.War()).GetTactics(model.partner_id, (int)WarTacticsType.FOREIGN)); //内政策略外交效果提升
            var temp   = tg_war_partner.GetEntityByUserId(model.partner_id, model.user_id);

            if (temp == null)
            {
                temp = new tg_war_partner
                {
                    time       = model.time,
                    user_id    = model.partner_id,
                    friendly   = model.friendly - count + number,
                    partner_id = model.user_id,
                };
                if (flag)
                {
                    temp.state = model.state;
                }
                return(temp.Insert() > 0);
            }
            temp.time = model.time;
            if (flag)
            {
                temp.state = model.state;
            }
            temp.friendly = model.friendly - count + number;
            return(temp.Update() > 0);
        }
Example #3
0
        /// <summary> 插入盟友数据 </summary>
        /// <param name="userid">接受方用户id</param>
        /// <param name="partnerid">发送请求方用户id</param>
        /// <param name="type">请求同盟还是外交</param>
        ///  <param name="time">请求过期时间</param>
        /// <returns></returns>
        private tg_war_partner Insert(Int64 userid, Int64 partnerid, int type, double charm, Int64 time)
        {
            var model = new tg_war_partner
            {
                partner_id       = partnerid,
                state            = type,
                user_id          = userid,
                charm            = charm,
                request_end_time = time,
            };

            model.Insert();
            return(model);
        }
Example #4
0
        /// <summary> 检测请求是否失效 </summary>
        private bool IsFailure(tg_war_partner temp)
        {
            var time = Common.GetInstance().CurrentTime();

            if (temp.request_end_time >= time)
            {
                return(false);
            }
            var istrue = tg_war_partner.GetPartnerExist(temp.user_id, temp.partner_id);

            if (!istrue)
            {
                return(temp.Delete() > 0);
            }
            temp.state = (int)WarPertnerType.DIPLOMACY_IN; //标记处理过
            return(temp.Update() > 0);
        }
Example #5
0
        /// <summary> 同意建交 </summary>
        /// <param name="temp">己方盟友数据</param>
        /// <param name="count">占有率</param>
        /// <returns></returns>
        private ASObject Agree(tg_war_partner temp, double count)
        {
            if (IsFailure(temp))
            {
                return(CommonHelper.ErrorResult(ResultType.WAR_DIPLOMACY_ERROR));
            }
            bool flag   = false;
            var  number = 0;

            switch (temp.state)
            {
            case (int)WarPertnerType.REQUEST_ALLIANCE_IN:     //同盟请求
            {
                if (temp.friendly < 100)
                {
                    return(CommonHelper.ErrorResult(ResultType.WAR_DIPLOMACY_NOTFULL));
                }
                var rv = Variable.BASE_RULE.FirstOrDefault(m => m.id == "32016");
                if (rv == null)
                {
                    return(CommonHelper.ErrorResult(ResultType.BASE_TABLE_ERROR));
                }
                var value = Convert.ToInt32(rv.value);
                temp.time  = (DateTime.Now.AddMinutes(value).Ticks - 621355968000000000) / 10000;
                temp.state = (int)WarPertnerType.ALLIANCE_IN;
                flag       = true;
                break;
            }

            case (int)WarPertnerType.REQUEST_DIPLOMACY_IN:     //外交请求
            {
                if (temp.friendly >= 100)
                {
                    return(CommonHelper.ErrorResult(ResultType.WAR_DIPLOMACY_FULL));
                }
                var rule = Variable.BASE_RULE.FirstOrDefault(m => m.id == "32037");
                if (rule == null)
                {
                    return(CommonHelper.ErrorResult(ResultType.BASE_TABLE_ERROR));
                }
                var str     = rule.value.Replace("charm", Convert.ToString(temp.charm));
                var express = CommonHelper.EvalExpress(str);

                number = Convert.ToInt32((new Share.War()).GetTactics(temp.user_id, (int)WarTacticsType.FOREIGN));         //内政策略外交效果提升

                var c = Convert.ToInt32(express) + number;
                temp.friendly += c;
                temp.charm     = 0;
                if (temp.friendly > 100)
                {
                    temp.friendly = 100;
                }
                temp.state = (int)WarPertnerType.DIPLOMACY_IN;
                break;
            }

            default: { return(CommonHelper.ErrorResult(ResultType.FRONT_DATA_ERROR)); }
            }
            temp.request_end_time = 0;
            temp.Update();

            if (!SaveWarPartner(temp, number, flag))
            {
                return(CommonHelper.ErrorResult(ResultType.DATABASE_ERROR));                                    //更新对方对己方的盟友信息
            }
            if (flag)
            {
                //推送同盟据点信息
                SendPartnerCitys(temp.user_id, temp.partner_id, temp.time); //将盟友的据点推给自己
                SendPartnerCitys(temp.partner_id, temp.user_id, temp.time); //将自己的据点推给盟友
            }

            var wp = view_war_partner.GetEntityById(temp.id);
            var d  = EntityToVo.ToDiplomacyVo(wp, count);

            return(BulidData(d, 1));
        }