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; } }