public static int CreateScore(DuelData winner, DuelData loser)
        {
            double pointone = (double)Math.Max(winner.Points, 1.0);
            double pointtwo = (double)Math.Max(loser.Points, 1.0);
            double scone = pointtwo / pointone;
            scone = Math.Min(scone, 2.0);

            if (scone > 0.02)
                return Math.Min(3, (int)Math.Ceiling((scone * pointtwo * 0.08)));

            return 0;
        }
        public static void UpdateScore(Mobile winner, Mobile loser, int type)
        {
            m_PrizeMoneyArray[type]++;

            if (winner.NetState != null && loser.NetState != null && winner.NetState.Address != loser.NetState.Address)
            {
                List<DuelData> list = m_DuelDataListArray[type];
                Dictionary<Mobile, DuelData> dict = m_DuelDataDictionaryArray[type];
                DuelData winnerdata = null;
                DuelData loserdata = null;

                if (!dict.TryGetValue(loser, out loserdata))
                {
                    loserdata = new DuelData(loser, 2);
                    list.Add(loserdata);
                    dict[loser] = loserdata;
                }

                if (!dict.TryGetValue(winner, out winnerdata))
                {
                    winnerdata = new DuelData(winner, 2);
                    list.Add(winnerdata);
                    dict[winner] = winnerdata;
                }

                int score = CreateScore(winnerdata, loserdata);

                loserdata.Points -= score;
                loserdata.Losses++;
                winnerdata.Points += score;
                winnerdata.Wins++;

                UpDateRank(m_DuelDataListArray[type]);
            }
        }
        private static void DuelDataDeserializer(GenericReader reader)
        {
            int version = reader.ReadInt();

            for (int i = 0; i < 7; i++)
            {
                List<DuelData> list = new List<DuelData>();
                Dictionary<Mobile, DuelData> dict = new Dictionary<Mobile, DuelData>();

                int count = reader.ReadInt();
                int rank = 1;
                for (int j = 0; j < count; j++)
                {
                    DuelData dd = new DuelData();

                    dd.Deserialize(reader);
                    dd.Rank = rank;
                    rank++;
                    if (dd.Part != null)
                    {
                        list.Add(dd);
                        dict[dd.Part] = dd;
                    }
                }

                m_DuelDataListArray[i] = list;
                m_DuelDataDictionaryArray[i] = dict;

                m_PrizeMoneyArray[i] = reader.ReadInt();
                m_ItemArray[i] = reader.ReadItem();
            }
            LastPayout = reader.ReadDateTime();
        }
        public static void UpdateScore(Mobile coward, int type)
        {
            List<DuelData> list = m_DuelDataListArray[type];
            Dictionary<Mobile, DuelData> dict = m_DuelDataDictionaryArray[type];
            DuelData cowarddata = null;

            if (dict.TryGetValue(coward, out cowarddata))
            {
                if (cowarddata.Points >= -5)
                    cowarddata.Points -= 1;
            }
            else
            {
                cowarddata = new DuelData(coward, -1);
                list.Add(cowarddata);
                dict[coward] = cowarddata;
            }
            UpDateRank(m_DuelDataListArray[type]);
        }