void Loaded() { lineNum = new Dictionary <string, int>(); openPanels = new Dictionary <ulong, string>(); _allData = new Dictionary <ulong, AccuracyData>(); _globalData = new AccuracyData(); }
AccuracyData GetAccData(ulong playerId) { AccuracyData data; if (_allData.ContainsKey(playerId)) { data = _allData[playerId]; } else { data = new AccuracyData(); _allData.Add(playerId, data); } return(data); }
void CreateUI(BasePlayer player) { CuiElementContainer containerMain = new CuiElementContainer(); AccuracyData data = _allData[player.userID]; #region main panel // Headers mainElementAccuracy = containerMain.Add(new CuiPanel { Image = { Color = "0 0 0 0.5" }, RectTransform = { AnchorMin = "0.005 0.940", AnchorMax = "0.200 0.960" //left digit is viewheight from left, right digit is Y axis, viewheight from bottom }, CursorEnabled = false, }, "Hud", mainPanelAccuracyNameHeader); containerMain.Add(new CuiLabel { Text = { Text = "Overall Accuracy", FontSize = 11, Align = TextAnchor.MiddleCenter }, RectTransform = { AnchorMin = $"0.05 0.050", AnchorMax = $"0.95 0.950" } }, mainElementAccuracy); // Panels mainElementAccuracy = containerMain.Add(new CuiPanel { Image = { Color = "0 0 0 0.5" }, RectTransform = { AnchorMin = "0.005 0.680", AnchorMax = "0.200 0.937" //left digit is viewheight from left, right digit is Y axis, viewheight from bottom }, CursorEnabled = false, }, "Hud", mainPanelAccuracyName); _UILineNum(mainElementAccuracy); double box1 = 0.070; AddCuiLabel(containerMain, 12, mainElementAccuracy, $"Avg Distance", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"{data.distanceAvg().ToString()}m", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"Shots", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"{data.shots.ToString()}", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"Landed", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"{data.shotsLanded.ToString()}", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"{data.Rate()}", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"Missed", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"{data.Missed().ToString()}", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"{data.MissedRate()}", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"Head", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"{data.Head.ToString()}", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"{data.Rate(HitArea.Head)}", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"Chest", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"{data.Chest.ToString()}", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"{data.Rate(HitArea.Chest)}", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"Stomach", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"{data.Stomach.ToString()}", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"{data.Rate(HitArea.Stomach)}", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"Arm", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"{data.Arm.ToString()}", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"{data.Rate(HitArea.Arm)}", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"Leg", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"{data.Leg.ToString()}", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"{data.Rate(HitArea.Leg)}", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"Foot", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"{data.Foot.ToString()}", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"{data.Rate(HitArea.Foot)}", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"Hand", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"{data.Hand.ToString()}", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy, $"{data.Rate(HitArea.Hand)}", 3, box1); #endregion #region Buttons mainElementAccuracy = containerMain.Add(new CuiPanel { Image = { Color = "0 0 0 0.5" }, RectTransform = { AnchorMin = "0.005 0.637", AnchorMax = "0.200 0.677" //left digit is viewheight from left, right digit is Y axis, viewheight from bottom }, CursorEnabled = false, }, "Hud", mainPanelButtons); CreateButton(ref containerMain, mainElementAccuracy, UIColors["buttongrey"], "Reset", 12, "0.020 0.050", "0.326 0.950", "Accuracy_ResetStats"); CreateButton(ref containerMain, mainElementAccuracy, ShowExtraStats(player) ? UIColors["buttongreen"] : UIColors["buttonred"], "Extra Stats", 12, "0.346 0.050", "0.672 0.950", "Accuracy_ToggleExtraStats"); CreateButton(ref containerMain, mainElementAccuracy, InfiniteAmmo(player) ? UIColors["buttongreen"] : UIColors["buttonred"], "Infinite Ammo", 12, "0.692 0.050", "0.980 0.950", "Accuracy_ToggleInfiniteAmmo"); #endregion if (ShowExtraStats(player)) { #region 25m panel // 25 meters AddExtraPanel(containerMain, 1, 1, "<=25m Accuracy", mainPanelAccuracyNameHeader25, mainPanelAccuracyName25, out mainElementAccuracy25); box1 = 0.15; AddCuiLabel(containerMain, 12, mainElementAccuracy25, $"Shots", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy25, $"{data.data_25m.shots.ToString()}", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy25, $"", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy25, $"Landed", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy25, $"{data.data_25m.shotsLanded.ToString()}", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy25, $"{data.data_25m.Rate()}", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy25, $"Missed", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy25, $"{data.data_25m.Missed().ToString()}", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy25, $"{data.data_25m.MissedRate()}", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy25, $"", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy25, $"Head", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy25, $"{data.data_25m.Head.ToString()}", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy25, $"{data.data_25m.Rate(HitArea.Head)}", 3, box1); #endregion #region 50m panel // 25 meters AddExtraPanel(containerMain, 1, 2, "25-50m Accuracy", mainPanelAccuracyNameHeader50, mainPanelAccuracyName50, out mainElementAccuracy50); AddCuiLabel(containerMain, 12, mainElementAccuracy50, $"Shots", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy50, $"{data.data_50m.shots.ToString()}", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy50, $"", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy50, $"Landed", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy50, $"{data.data_50m.shotsLanded.ToString()}", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy50, $"{data.data_50m.Rate()}", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy50, $"Missed", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy50, $"{data.data_50m.Missed().ToString()}", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy50, $"{data.data_50m.MissedRate()}", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy50, $"", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy50, $"Head", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy50, $"{data.data_50m.Head.ToString()}", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy50, $"{data.data_50m.Rate(HitArea.Head)}", 3, box1); #endregion #region 100m panel // 100 meters AddExtraPanel(containerMain, 1, 3, "50-100m Accuracy", mainPanelAccuracyNameHeader100, mainPanelAccuracyName100, out mainElementAccuracy100); AddCuiLabel(containerMain, 12, mainElementAccuracy100, $"Shots", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy100, $"{data.data_100m.shots.ToString()}", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy100, $"", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy100, $"Landed", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy100, $"{data.data_100m.shotsLanded.ToString()}", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy100, $"{data.data_100m.Rate()}", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy100, $"Missed", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy100, $"{data.data_100m.Missed().ToString()}", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy100, $"{data.data_100m.MissedRate()}", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy100, $"", 3, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy100, $"Head", 1, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy100, $"{data.data_100m.Head.ToString()}", 2, box1); AddCuiLabel(containerMain, 12, mainElementAccuracy100, $"{data.data_100m.Rate(HitArea.Head)}", 3, box1); #endregion } openPanels.Add(player.userID, mainElementAccuracy); CuiHelper.AddUi(player, containerMain); }