/// <summary> 获取玩家活动数据 </summary> // type:1 东军胜 2 西军胜 3 平 private tg_activity_building GetEndData(BuildActivity.UserGoods ug, int type) { var wintype = 0; switch (type) { case 1: wintype = ug.camp == (int)CampType.East ? (int)ActivityRewardType.WIN : (int)ActivityRewardType.LOSE; break; case 2: wintype = ug.camp == (int)CampType.West ? (int)ActivityRewardType.WIN : (int)ActivityRewardType.LOSE; break; case 3: wintype = (int)ActivityRewardType.DRAW; break; //平 } var acgoods = new tg_activity_building() { endtime = DateTime.Now.Ticks, fame = ug.fame, makebuild = ug.totalbasebuild, wood = ug.totalwood, torch = ug.totaltorch, wintype = type, user_id = ug.user_id }; var teamreward = Variable.BASE_BUILDING_REWARD.LastOrDefault(q => q.type == wintype && q.fame <= ug.fame); //活动团队奖励表 if (teamreward == null) { return(acgoods); } acgoods.team_fame = teamreward.fameReward; acgoods.team_money = teamreward.money; return(acgoods); }
/// <summary> 城池耐久度减少 </summary> private ASObject DurabilityUpdate(Int64 userid, int camp, bool istrue, BuildActivity.UserGoods ac) { ac.torch -= Variable.Activity.BuildActivity.CostFire; if (camp == (int)CampType.West) //东军城池耐久度 { if (Variable.Activity.BuildActivity.EastCityBlood == 0) { return(BuildData((int)ResultType.SUCCESS, istrue, ac, Variable.Activity.BuildActivity.EastCityBlood)); } Variable.Activity.BuildActivity.EastCityBlood -= Variable.Activity.BuildActivity.ReduceBlood; if (Variable.Activity.BuildActivity.EastCityBlood < 0) //耐久度最小为0 { Variable.Activity.BuildActivity.EastCityBlood = 0; } } else { if (Variable.Activity.BuildActivity.WestCityBlood == 0) { return(BuildData((int)ResultType.SUCCESS, istrue, ac, Variable.Activity.BuildActivity.WestCityBlood)); } Variable.Activity.BuildActivity.WestCityBlood -= Variable.Activity.BuildActivity.ReduceBlood; if (Variable.Activity.BuildActivity.WestCityBlood < 0) //耐久度最小为0 { Variable.Activity.BuildActivity.WestCityBlood = 0; } } Common.GetInstance().PushDurability(userid, camp == (int)CampType.East ? 2 : 1); //推送城池血量更新 return(BuildData((int)ResultType.SUCCESS, istrue, ac, camp == (int)CampType.East ? Variable.Activity.BuildActivity.WestCityBlood : Variable.Activity.BuildActivity.EastCityBlood)); }
/// <summary> 增加声望 </summary> public void AddFame(int fame, BuildActivity.UserGoods goods) { goods.fame += fame; if (goods.fame > Variable.Activity.BuildActivity.FameFull) { goods.fame = Variable.Activity.BuildActivity.FameFull; } }
/// <summary> 组装数据 </summary> private ASObject BuildData(int result, Boolean istrue, BuildActivity.UserGoods goods) { var dic = new Dictionary <string, object>() { { "result", result }, { "type", istrue ? 1 : 0 }, { "wood", goods == null?0: goods.wood }, { "baseBuild", goods == null?0: goods.basebuild }, { "fame", goods == null?0: goods.fame }, }; return(new ASObject(dic)); }
/// <summary> 组装数据 </summary> private ASObject BuildData(int result, Boolean istrue, BuildActivity.UserGoods goods, int durability) { var dic = new Dictionary <string, object>() { { "result", result }, { "type", istrue ? 1 : 0 }, { "durability", durability }, { "torch", goods == null?0: goods.torch }, { "fame", goods == null?0: goods.fame }, }; return(new ASObject(dic)); }
/// <summary> /// 将用户数据添加到全局 /// </summary> /// <param name="userid"></param> /// <param name="camp"></param> /// <returns></returns> private BuildActivity.UserGoods AddUserGoods(Int64 userid, Int32 camp) { if (Variable.Activity.BuildActivity.userGoods.ContainsKey(userid)) { return(Variable.Activity.BuildActivity.userGoods[userid]); } var ac = new BuildActivity.UserGoods { user_id = userid, camp = camp }; Variable.Activity.BuildActivity.userGoods.TryAdd(userid, ac); return(ac); }
/// <summary> 组装返回数据 </summary> private ASObject BuildData(int result, IEnumerable <view_scene_user> otherplayers, BuildActivity.UserGoods goods) { var dic1 = new Dictionary <string, object>() { { "cityHp", Variable.Activity.BuildActivity.EastCityBlood }, { "npcHp", Variable.Activity.BuildActivity.EastBoosBlood }, //{"cityHp", Variable.Activity.BuildActivity.EastCityBlood}, //测试数据 //{"npcHp",0},//测试数据 }; var dic2 = new Dictionary <string, object>() { { "cityHp", Variable.Activity.BuildActivity.WestCityBlood }, { "npcHp", Variable.Activity.BuildActivity.WestBoosBlood }, // {"npcHp",0}, //测试数据 }; var dic = new Dictionary <string, object>() { { "result", result }, { "playerList", otherplayers.Any() ? Common.GetInstance().ConvertListASObject(otherplayers) : null }, { "dataA", new ASObject(dic1) }, { "dataB", new ASObject(dic2) }, { "wood", goods.wood }, { "torch", goods.torch }, { "baseBuild", goods.basebuild }, { "fame", goods.fame }, }; return(new ASObject(dic)); }
/// <summary> 倒计时时间验证 </summary> private Boolean CheckTime(BuildActivity.UserGoods goods) { return(DateTime.Now >= goods.MakeBuildTime.AddSeconds(Variable.Activity.BuildActivity.MakeBuildTime)); }