protected void btnAddAltEnergy_Click(object sender, EventArgs e) { if (ddlAltEnergy.SelectedIndex == 0) { LogMessage("Select Alternative Energy"); ddlAltEnergy.Focus(); return; } AttributeResult obAttributeResult = ConservationAttributeData.AddAltEnergy(DataUtils.GetInt(hfConserveId.Value), DataUtils.GetInt(ddlAltEnergy.SelectedValue.ToString())); ddlAltEnergy.SelectedIndex = -1; cbAddAltEnergy.Checked = false; BindAltEnergyGrid(); if (obAttributeResult.IsDuplicate && !obAttributeResult.IsActive) { LogMessage("Alternative Energy already exist as in-active"); } else if (obAttributeResult.IsDuplicate) { LogMessage("Alternative Energy already exist"); } else { LogMessage("New Alternative Energy added successfully"); } }
protected void btnAddLegalMechanism_Click(object sender, EventArgs e) { if (ddlLegalMechanism.SelectedIndex == 0) { LogMessage("Select Legal Mechanism"); ddlLegalMechanism.Focus(); return; } AttributeResult obAttributeResult = ConservationAttributeData.AddLegalMechanism(DataUtils.GetInt(hfConserveId.Value), DataUtils.GetInt(ddlLegalMechanism.SelectedValue.ToString())); ddlLegalMechanism.SelectedIndex = -1; cbAddLegalMechanism.Checked = false; BindLegalMechanismGrid(); if (obAttributeResult.IsDuplicate && !obAttributeResult.IsActive) { LogMessage("Legal Mechanism already exist as in-active"); } else if (obAttributeResult.IsDuplicate) { LogMessage("Legal Mechanism already exist"); } else { LogMessage("New Legal Mechanism added successfully"); } }
/// <summary> /// 初始化单组对战 /// </summary> /// <param name="playerID"></param> public static MsgPack InitBattlePack(PlayerID playerID) { MsgPack battleMsg = new MsgPack(); if (battleGroupDict.ContainsKey(playerID)) { BattleGroup curBattleGroup = battleGroupDict[playerID]; //创建SpeedItemList,添加在场所有单位 List <SpeedItem> speedItemLists = new List <SpeedItem>(); foreach (CampInfo c in curBattleGroup.campInfo) { foreach (CardMsg card in c.CardItems) { SpeedItem item = new SpeedItem(); item.camp = c.Camp; item.card = card; speedItemLists.Add(item); } } //SpeedItemList中元素依速度降序排序 speedItemLists.Sort((x, y) => { return(y.card.Speed.CompareTo(x.card.Speed)); }); foreach (SpeedItem s in speedItemLists) { Console.WriteLine("camp: " + s.camp + " pos: " + s.card.BornPos + " speed: " + s.card.Speed + " maxHp: " + s.card.MaxHp); } //创建消息包 bool isBattleEnd = false; BattleGroupPack battleGroupPack = new BattleGroupPack(); while (!isBattleEnd) { Round round = new Round(); for (int j = 0; j < speedItemLists.Count; j++) { Console.WriteLine("============================Step start=================== "); Console.WriteLine("camp: " + speedItemLists[j].camp + " selfPos: " + speedItemLists[j].card.BornPos); int targetIndex = Radar.GetTargetIndex(speedItemLists, Radar.RadarType.front_first, speedItemLists[j].camp, speedItemLists[j].card.BornPos); float atk = speedItemLists[j].card.Atk; float def = speedItemLists[targetIndex].card.Def; float damage = Math.Max(10, atk - def); speedItemLists[targetIndex].card.MaxHp = Math.Max(0, speedItemLists[targetIndex].card.MaxHp - damage); //speedItemLists[targetIndex].card.MaxHp = Math.Max(0, speedItemLists[targetIndex].card.MaxHp - 5); #region == Pack Round Msg == AttributeResult attributeRes = new AttributeResult(); attributeRes.Camp = speedItemLists[targetIndex].camp; attributeRes.ResAttr = CardAttribute.CsCardMaxhp; attributeRes.Value = damage; Console.WriteLine("Damage is: " + damage); StepResult stepRes = new StepResult(); stepRes.AttrResList.Add(attributeRes); stepRes.AtkType = AtkType.CsAtktypeAtk; Step step = new Step(); step.AtkItem = new ActiveItem(); step.DefItem = new ActiveItem(); step.AtkItem.Camp = speedItemLists[j].camp; step.AtkItem.Card = speedItemLists[j].card; step.DefItem.Camp = speedItemLists[targetIndex].camp; step.DefItem.Card = speedItemLists[targetIndex].card; step.StepResList.Add(stepRes); round.Steps.Add(step); Console.WriteLine("Camp: " + speedItemLists[targetIndex].camp + " maxHp is: " + speedItemLists[targetIndex].card.MaxHp); #endregion if (speedItemLists[targetIndex].card.MaxHp == 0) { Console.WriteLine("Remove: " + speedItemLists[targetIndex].camp + " " + speedItemLists[targetIndex].card.BornPos); speedItemLists.RemoveAt(targetIndex); } int playerCount = 0; int enemyCount = 0; foreach (var it in speedItemLists) { if (it.camp == Camps.CsCampPlayer) { playerCount++; } if (it.camp == Camps.CsCampEnemy) { enemyCount++; } } Console.WriteLine("playerCount: " + playerCount + " enemyCount: " + enemyCount); if ((playerCount == 0) || (enemyCount == 0)) { isBattleEnd = true; break; } Console.WriteLine("===========Step end========== "); Console.WriteLine(); } battleGroupPack.Rounds.Add(round); } battleMsg.MsgType = MsgType.CsBattlestartRes; battleMsg.MsgFrom = PlayerID.CsServe; battleMsg.MsgTo = playerID; battleMsg.GroupPack = battleGroupPack; } return(battleMsg); }