/// <summary> /// 战斗并返回所有怪物状态 /// </summary> /// <param name="FighterFrom">用户精灵</param> /// <param name="skill">技能</param> /// <param name="FighterToList"></param> /// <returns></returns> public V_xy_sp_userView UserStartFight(V_xy_sp_userView userView, string skillName, ref string batmsgAll) { V_xy_sp_userspirit FighterFrom = userView.Spirit; V_xy_sp_skill skill = userView.Spirit.spSkillList[0].skill; List <V_xy_sp_spirit> FighterToList = userView.Task.SpiritsList; List <V_xy_sp_spirit> FighterToResult = new List <V_xy_sp_spirit>(); FighterFrom.SpiritMagic = FighterFrom.SpiritMagic - skill.ExpendValue; int maxInjuryCount = 0; foreach (V_xy_sp_spirit spirit in FighterToList) { if (spirit.SpiritLife <= 0) { continue; //生命值低于0跳过 } if (skill.isGroupinjury == 1 && maxInjuryCount == FighterToList.Count) { //如果是群攻并且攻击次数已到最大次数,不攻击 FighterToResult.Add(spirit); continue; } else if (maxInjuryCount == 1) { //如果非群攻,不攻击 FighterToResult.Add(spirit); continue; } string batmsg = string.Empty; SkillInjury(FighterFrom, skill, spirit, ref batmsg); batmsgAll = batmsgAll + System.Environment.NewLine + batmsg; maxInjuryCount++; FighterToResult.Add(spirit); //所有怪物已阵亡 if (spirit == FighterToList.LastOrDefault()) { if (spirit.SpiritLife <= 0) { xy_sp_taskBLL tkBll = new xy_sp_taskBLL(); string NextTaskID = tkBll.GetNextTaskIDByTaskID(FighterFrom.CurrentTaskID); userView.Task.IsClear = "1"; userView.NextTask = tkBll.getTaskContext(NextTaskID); } } } userView.Task.SpiritsList = FighterToResult; return(userView); }
/// <summary> /// 更新 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool Edit(V_xy_sp_skill model) { if (model == null) { return(false); } using (xy_sp_skillDAL dal = new xy_sp_skillDAL()){ xy_sp_skill entitys = ModelToEntity(model); return(dal.Edit(entitys)); } }
/// <summary> /// 新增 /// </summary> /// <param name="model"></param> /// <returns></returns> public string Add(V_xy_sp_skill model) { if (model == null) { return(string.Empty); } using (xy_sp_skillDAL dal = new xy_sp_skillDAL()){ xy_sp_skill entity = ModelToEntity(model); entity.SkillID = string.IsNullOrEmpty(model.SkillID) ? Guid.NewGuid().ToString("N") : model.SkillID; return(dal.Add(entity)); } }
public IHttpActionResult Post([FromBody] Request <V_xy_sp_skill> request) { V_xy_sp_skill model = request.Data as V_xy_sp_skill; if (string.IsNullOrEmpty(model.SkillID)) { bll.Add(model); } else { bll.Edit(model); } return(Ok("ok")); }
private V_xy_sp_spirit SkillInjury(V_xy_sp_userspirit FighterFrom, V_xy_sp_skill skill, V_xy_sp_spirit FighterTo, ref string batmsg) { V_xy_sp_spirit Fightersult = new V_xy_sp_spirit(); switch (skill.SkillType) { case "1": //物理伤害 //我方增加经验 updateEnemy(FighterFrom, FighterTo, skill, ref batmsg); break; default: updateEnemy(FighterFrom, FighterTo, skill, ref batmsg); break; } Fightersult = FighterTo; return(Fightersult); }
/// <summary> /// Model转Entity /// </summary> /// <param name="model"></param> /// <returns></returns> public xy_sp_skill ModelToEntity(V_xy_sp_skill model) { if (model != null) { xy_sp_skill entity = new xy_sp_skill() { SkillID = model.SkillID, SkillName = model.SkillName, SkillDescription = model.SkillDescription, SkillPathPrompt = model.SkillPathPrompt, SkillType = model.SkillType, SkillGainValue = model.SkillGainValue, ExpendType = model.ExpendType, ExpendValue = model.ExpendValue, isGroupinjury = model.isGroupinjury, injuryCount = model.injuryCount, NeedLevel = model.NeedLevel, }; return(entity); } return(null); }
/// <summary> /// Entity转Model /// </summary> /// <param name="entity"></param> /// <returns></returns> public V_xy_sp_skill EntityToModel(xy_sp_skill entity) { if (entity != null) { V_xy_sp_skill model = new V_xy_sp_skill() { SkillID = entity.SkillID, SkillName = entity.SkillName, SkillDescription = entity.SkillDescription, SkillPathPrompt = entity.SkillPathPrompt, SkillType = entity.SkillType, SkillGainValue = entity.SkillGainValue, ExpendType = entity.ExpendType, ExpendValue = entity.ExpendValue, isGroupinjury = entity.isGroupinjury, injuryCount = entity.injuryCount, NeedLevel = entity.NeedLevel, }; return(model); } return(null); }
public IHttpActionResult Get(string ID) { V_xy_sp_skill model = bll.Get(p => p.SkillID == ID); return(Ok(model)); }
/// <summary> /// 我方对怪物的伤害杀死的情况 /// </summary> /// <param name="FighterFrom"></param> /// <param name="FighterTo"></param> private void updateEnemy(V_xy_sp_userspirit FighterFrom, V_xy_sp_spirit FighterTo, V_xy_sp_skill skill, ref string batmsg) { var LifeLeftValue = FighterTo.SpiritLife - skill.SkillGainValue; if (LifeLeftValue <= 0)//敌人已死亡 { batmsg = "\"" + FighterFrom.SpiritName + "\"使用\"" + skill.SkillName + "\"杀死了\"" + FighterTo.SpiritName; //更新等级和经验 xy_sp_userspiritBLL uspBll = new xy_sp_userspiritBLL(); decimal Experience = FighterTo.SpiritExperience.Value; batmsg += " 获得" + Experience + "点经验 "; FighterFrom.SpiritExperience += Experience; //等级 if (FighterFrom.SpiritExperience > LevelExperience(FighterFrom.SpiritLevel.Value)) { FighterFrom.SpiritLevel = FighterFrom.SpiritLevel + 1; batmsg += System.Environment.NewLine + " 恭喜你升到" + FighterFrom.SpiritLevel + "级"; FighterFrom.SpiritExperience = FighterFrom.SpiritExperience - LevelExperience(FighterFrom.SpiritLevel.Value); } uspBll.Edit(FighterFrom); //我方获取敌方装备 xy_sp_userspiritpackageBLL spBll = new xy_sp_userspiritpackageBLL(); foreach (var item in FighterTo.spiritEquipmentList) { V_xy_sp_userspiritpackage packageItem = new V_xy_sp_userspiritpackage(); packageItem.UserSpiritID = FighterFrom.UserSpiritID; packageItem.EquipmentID = item.EquipmentID; spBll.Add(packageItem); batmsg += System.Environment.NewLine + " 本次战斗意外获得:" + item.EquipmentName; } } else { batmsg = "\"" + FighterFrom.SpiritName + "\"使用\"" + skill.SkillName + "\"攻击\"" + FighterTo.SpiritName + "\"造成\"" + skill.SkillGainValue + "\"点物理伤害"; } //更新怪物生命值 FighterTo.SpiritLife = LifeLeftValue; }