Пример #1
0
        /// <summary>
        /// Get facts about a side's performance in the game.
        /// </summary>
        /// <param name="side">The side to get facts about.</param>
        /// <returns>The game facts.</returns>
        public GameFacts GetGameFacts(MatchSide side)
        {
            //Create the game facts instance.
            GameFacts facts = new GameFacts(null);
            facts.MatchSide = side;

            //See which side to get data from.
            if (side == MatchSide.Home)
            {
                //Fill the facts instance with data.
                facts.Profile = (Profile)cmbHomeProfile.SelectedItem;
                facts.Team = facts.Profile.Team;
                facts.Shots = (int)nmrHomeShots.Value;
                facts.ShotsOnTarget = (int)nmrHomeShotsOnTarget.Value;
                facts.ShotAccuracy = facts.ShotsOnTarget == 0 ? 0 : (int)(100 * (float)facts.ShotsOnTarget / (float)facts.ShotsOnTarget);
                facts.PassAccuracy = (int)nmrHomePassAccuracy.Value;
                facts.Corners = (int)nmrHomeCorners.Value;
                facts.Possession = (100 - trkbPossession.Value);

                //The goals scored and the goals conceded.
                foreach (ListViewItem item in lstvHomeGoals.Items)
                {
                    //Find out which goals
                    facts.GoalsScored.Add((Goal)item.Tag);
                }
                foreach (ListViewItem item in lstvAwayGoals.Items) { facts.GoalsConceded.Add((Goal)item.Tag); }
            }
            else
            {
                //Fill the facts instance with data.
                facts.Profile = (Profile)cmbAwayProfile.SelectedItem;
                facts.Team = facts.Profile.Team;
                facts.Shots = (int)nmrAwayShots.Value;
                facts.ShotsOnTarget = (int)nmrAwayShotsOnTarget.Value;
                facts.ShotAccuracy = facts.ShotsOnTarget == 0 ? 0 : (int)(100 * (float)facts.ShotsOnTarget / (float)facts.ShotsOnTarget);
                facts.PassAccuracy = (int)nmrAwayPassAccuracy.Value;
                facts.Corners = (int)nmrAwayCorners.Value;
                facts.Possession = trkbPossession.Value;

                //The goals scored and the goals conceded.
                foreach (ListViewItem item in lstvAwayGoals.Items) { facts.GoalsScored.Add((Goal)item.Tag); }
                foreach (ListViewItem item in lstvHomeGoals.Items) { facts.GoalsConceded.Add((Goal)item.Tag); }
            }

            //Return the facts.
            return facts;
        }
        private void FillSituantionData(MatchSide side, List <Data.BattleSituation> list)
        {
            List <BattleSituation> sideSituations = sideBattleSituations[side];

            for (int index = 0; index < sideSituations.Count; index++)
            {
                BattleSituation battleSituation = sideSituations[index];

                Data.BattleSituation situation = new Data.BattleSituation();
                situation.fatality  = battleSituation.fatality;
                situation.kills     = battleSituation.kills;
                situation.mvpValue  = battleSituation.mvpValue;
                situation.playerId  = battleSituation.playerId;
                situation.resources = battleSituation.resources;

                list.Add(situation);
            }
        }
Пример #3
0
        public BattleViewController(BattleView v)
        {
            viewBase = v;
            _view    = v;

            dataManager = DataManager.GetInstance();
            side        = dataManager.GetMatchSide();

            //TODO:This code is temp code, when designer upgrade modelID use true modelID get towers.
            towerProtoData = GetTowerFromSide();

            instituteProtoData  = dataManager.instituteProtoData;
            instituteSkillData  = dataManager.instituteSkillProtoData;
            attributeEffectData = dataManager.attributeEffectProtoData;

            controllType = (BattleUIControlType)dataManager.unitOperationChoose;

            unitLargestAmount = GameConstants.PLAYER_CANDEPLOY_UNIT_MAXCOUNT;
        }
        public string GetBattleHeadIconStr(MatchSide side, int index)
        {
            string str = "";

            if (side == MatchSide.Blue)
            {
                if (blueBattlers.Count > index)
                {
                    return(blueBattlers[index].portrait);
                }
            }
            else if (side == MatchSide.Red)
            {
                if (redBattlers.Count > index)
                {
                    return(redBattlers[index].portrait);
                }
            }
            return(str);
        }
Пример #5
0
        private int GetPoolByMark(ForceMark mark)
        {
            ForceMark myForceMark   = DataManager.GetInstance().GetForceMark();
            MatchSide myMatchSide   = DataManager.GetInstance().GetMatchSide();
            MatchSide unitMatchSide = GetSideFromMark(mark);

            if (myMatchSide == unitMatchSide)
            {
                if (myForceMark == mark)
                {
                    return(0);
                }
                else
                {
                    return(2);
                }
            }
            else
            {
                return(1);
            }
        }
Пример #6
0
        private void SetEnemySide(MatchSide side)
        {
            switch (side)
            {
            case MatchSide.NoSide:
                break;

            case MatchSide.Observe:
                break;

            case MatchSide.Red:
                enemySide = MatchSide.Blue;
                break;

            case MatchSide.Blue:
                enemySide = MatchSide.Red;
                break;

            default:
                break;
            }
        }
Пример #7
0
        private void MatchSucceedUIData(List <Matcher> matchers)
        {
            DataManager clientData = DataManager.GetInstance();

            allMatchers = matchers;
            clientData.SetMatchers(allMatchers);

            long      id         = clientData.GetPlayerAccountId();
            MatchSide myselfSide = matchers.Find(p => p.playerId == id).side;

            bool myselfReady = matchers.Find(p => p.playerId == id).ready;

            view.intoGameButton.interactable = !myselfReady;

            List <MatcherData> friendData = new List <UI.FightMatchController.MatcherData>();
            List <MatcherData> enemyData  = new List <UI.FightMatchController.MatcherData>();

            List <Matcher> friends = matchers.FindAll(p => p.side == myselfSide);
            List <Matcher> enemys  = matchers.FindAll(p => p.side != myselfSide);

            long myId = DataManager.GetInstance().GetPlayerId();

            foreach (Matcher friend in friends)
            {
                MatcherData data = new MatcherData(friend.name, friend.portrait, friend.ready, friend.playerId == myId, friend.playerId);
                friendData.Add(data);
            }

            foreach (Matcher enemy in enemys)
            {
                MatcherData data = new MatcherData(enemy.name, enemy.portrait, enemy.ready, false, enemy.playerId);
                enemyData.Add(data);
            }

            view.friendDatas = friendData;
            view.enemyDatas  = enemyData;

            view.InitSucceedItem();
        }
Пример #8
0
        public void Init()
        {
            noticeRoot = transform.Find("Ani/NoticeRoot").transform;
            killerHead = noticeRoot.Find("KillerHeadBg/KillerHead").GetComponent <Image>();
            //textBgImageBlue = noticeRoot.Find( "TextBgBlue" ).GetComponent<Image>();
            //textBgImageRed = noticeRoot.Find( "TextBgRed" ).GetComponent<Image>();
            desText                 = noticeRoot.Find("DesText").GetComponent <Text>();
            beKillerHead            = noticeRoot.Find("BeKillerHeadBg/BeKillerHead").GetComponent <Image>();
            killImage               = noticeRoot.Find("BeKillerHeadBg/KillImage").GetComponent <Image>();
            killerHeadFrameBgBlue   = noticeRoot.Find("KillerHeadFrameBgBlue").GetComponent <Image>();
            killerHeadFrameBgRed    = noticeRoot.Find("KillerHeadFrameBgRed").GetComponent <Image>();
            beKillerHeadFrameBgRed  = noticeRoot.Find("BeKillerHeadFrameBgRed").GetComponent <Image>();
            beKillerHeadFrameBgBlue = noticeRoot.Find("BeKillerHeadFrameBgBlue").GetComponent <Image>();

            DataManager client = DataManager.GetInstance();

            unitsProto = client.unitsProtoData;
            selfSide   = client.GetMatchSide();
            SetEnemySide(selfSide);

            desText.text = "";
            noticeRoot.gameObject.SetActive(false);
        }
            public DelegateProducingSequence Match(MethodDefinition containingMethod, Instruction i, MatchSide side)
            {
                DelegateProducingSequence MakeResult(Instruction[] instructions)
                {
                    return(new DelegateProducingSequence()
                    {
                        Instructions = instructions, CapturesLocals = CapturesLocal,
                        OriginalLambdaContainingMethod = containingMethod,
                        MethodLambdaWasEmittedAs = FindLambdaMethod(instructions)
                    });
                }

                switch (side)
                {
                case MatchSide.Start:
                {
                    return(IsStartOfSequence(i, InstructionMatchers, out var instructions) ? MakeResult(instructions.ToArray()) : null);
                }

                case MatchSide.End:
                {
                    return(IsEndOfSequence(i, InstructionMatchers, out var instructions) ? MakeResult(instructions.ToArray()) : null);
                }

                default:
                    throw new ArgumentOutOfRangeException(nameof(side), side, null);
                }
            }
Пример #10
0
 public void SetMatchSide(MatchSide side)
 {
     battle.side = side;
 }
Пример #11
0
        public void SendChatMessage(string str, BattleChatType type)
        {
            if (dataManager.CurBattleIsPVE())
            {
                return;
            }

            BattleChatC2S message = new BattleChatC2S();

            List <long> enemyPlayerID = new List <long>();

            if (friendlyPlayerID == -1)
            {
                List <Battler> list     = dataManager.GetBattlers();
                MatchSide      side     = dataManager.GetMatchSide();
                long           playerID = dataManager.GetPlayerId();

                for (int i = 0; i < list.Count; i++)
                {
                    if (list[i].side == side && list[i].playerId != playerID)
                    {
                        friendlyPlayerID   = list[i].playerId;
                        friendlyPlayerName = list[i].name;
                    }
                    else if (list[i].side != side)
                    {
                        enemyPlayerID.Add(list[i].playerId);
                        enemyNames.Add(list[i].name);
                    }
                }
            }

            if (type == BattleChatType.party)
            {
                message.battleChatType = BattleChatType.party;
                message.playerId.Add(friendlyPlayerID);
            }
            else if (type == BattleChatType.everyone)
            {
                message.battleChatType = BattleChatType.everyone;

                if (friendlyPlayerID != -1)
                {
                    message.playerId.Add(friendlyPlayerID);
                }

                for (int i = 0; i < enemyPlayerID.Count; i++)
                {
                    message.playerId.Add(enemyPlayerID[i]);
                }
            }
            else
            {
                //TODO: If have more type chat channel add here.
                DebugUtils.LogError(DebugUtils.Type.Chat, "Please check chat Type.");
            }

            message.chatContent = str;

            byte[] stream = ProtobufUtils.Serialize(message);
            NetworkManager.SendRequest(ServerType.SocialServer, MsgCode.BattleChatsMessage, stream);
        }
Пример #12
0
 public static string SideName(MatchSide side)
 {
     return(SideName(side.Number - 1));
 }
Пример #13
0
 private bool SetHeadIcon(MatchSide side, int index)
 {
     if (side == MatchSide.Blue)
     {
         if (index == 0)
         {
             if (blueHeadList0.Count <= 0)
             {
                 blueHeadList0 = controler.GetUnitHeadIcon(MatchSide.Blue, 0);
             }
             if (blueHeadList0.Count <= 0)
             {
                 return(false);
             }
             for (int i = 0; i < blueUnitCard.Length; i++)
             {
                 SetImageIcon(blueUnitCard[i], blueHeadList0[i]);
             }
         }
         else if (index == 1)
         {
             if (blueHeadList1.Count <= 0)
             {
                 blueHeadList1 = controler.GetUnitHeadIcon(MatchSide.Blue, 1);
             }
             if (blueHeadList1.Count <= 0)
             {
                 return(false);
             }
             for (int i = 0; i < blueUnitCard.Length; i++)
             {
                 SetImageIcon(blueUnitCard[i], blueHeadList1[i]);
             }
         }
     }
     else if (side == MatchSide.Red)
     {
         if (index == 0)
         {
             if (redHeadList0.Count <= 0)
             {
                 redHeadList0 = controler.GetUnitHeadIcon(MatchSide.Red, 0);
             }
             if (redHeadList0.Count <= 0)
             {
                 return(false);
             }
             for (int i = 0; i < redUnitCard.Length; i++)
             {
                 SetImageIcon(redUnitCard[i], redHeadList0[i]);
             }
         }
         else if (index == 1)
         {
             if (redHeadList1.Count <= 0)
             {
                 redHeadList1 = controler.GetUnitHeadIcon(MatchSide.Red, 1);
             }
             if (redHeadList1.Count <= 0)
             {
                 return(false);
             }
             for (int i = 0; i < redUnitCard.Length; i++)
             {
                 SetImageIcon(redUnitCard[i], redHeadList1[i]);
             }
         }
     }
     return(true);
 }
Пример #14
0
 public CardInstance(Card card, MatchSide side)
 {
     Card  = card;
     Life  = card.Life;
     _side = side;
 }