/// <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)); }
/// <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); }
/// <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)); }