public bool IsEnterEnable(Character pTarget)
        {
            LineSkillPkStatistic target = m_pStatistic.Values.FirstOrDefault(x => x.Identity == pTarget.Identity);

            if (target == null)
            {
                return(true);                // ??
            }
            return(target.HitsTakenNow < 10);
        }
        public void Hit(Character pAtker, Character pTarget)
        {
            if (pAtker == null || pTarget == null || pTarget == pAtker)
            {
                return;
            }

            AwardPoint(pAtker, 1);
            AwardPoint(pTarget, -1);

            LineSkillPkStatistic target = m_pStatistic.Values.FirstOrDefault(x => x.Identity == pTarget.Identity);

            if (target?.HitsTakenNow >= 10)
            {
                pTarget.ChangeMap(430, 378, 1002);
                pTarget.Send("You've been hit 10 times and has been disqualified.");
            }
        }
        public bool Create()
        {
            if (!ServerKernel.Maps.TryGetValue(MAP_ID_U, out m_pMap))
            {
                ServerKernel.Log.SaveLog("ERROR MAP NOT FOUND LINE SKILL PK", true, LogType.ERROR);
                return(false);
            }

            var allRank = Repository.FetchByType(_RANK_TYPE_U);

            if (allRank != null)
            {
                foreach (var rank in allRank.Where(x => x.PlayerIdentity > 0))
                {
                    LineSkillPkStatistic obj = new LineSkillPkStatistic(rank);
                    m_pStatistic.TryAdd(rank.PlayerIdentity, obj);
                }
            }
            m_pState = EventState.IDLE;
            return(true);
        }
        private void AwardPoint(Character pRole, int point)
        {
            LineSkillPkStatistic stt;

            if (!m_pStatistic.TryGetValue(pRole.Identity, out stt))
            {
                stt = new LineSkillPkStatistic(pRole);
                m_pStatistic.TryAdd(pRole.Identity, stt);
            }

            if (point > 0)
            {
                stt.HitsDealt    += 1;
                stt.HitsDealtNow += 1;
            }
            else if (point < 0)
            {
                stt.HitsTaken    += 1;
                stt.HitsTakenNow += 1;
            }
        }