コード例 #1
0
        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");
            }
        }
コード例 #2
0
        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");
            }
        }
コード例 #3
0
        /// <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);
        }