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