155 lines
5.9 KiB
C#
155 lines
5.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using EFT.Interactive;
|
|
using EscapeFromTarkovCheat.Utils;
|
|
using UnityEngine;
|
|
|
|
namespace EscapeFromTarkovCheat.Data
|
|
{
|
|
class GameExfiltrationPoint
|
|
{
|
|
public ExfiltrationPoint ExfiltrationPoint { get; }
|
|
|
|
public Vector3 ScreenPosition => screenPosition;
|
|
|
|
public bool IsOnScreen { get; private set; }
|
|
|
|
public float Distance { get; private set; }
|
|
public string Name { get; set; }
|
|
public bool Eligible { get; private set; }
|
|
|
|
public string FormattedDistance => $"{Math.Round(Distance)}m";
|
|
|
|
private Vector3 screenPosition;
|
|
|
|
public GameExfiltrationPoint(ExfiltrationPoint exfiltrationPoint, bool eligible)
|
|
{
|
|
if (exfiltrationPoint == null)
|
|
throw new ArgumentNullException(nameof(exfiltrationPoint));
|
|
|
|
ExfiltrationPoint = exfiltrationPoint;
|
|
screenPosition = default;
|
|
Distance = 0f;
|
|
Name = exfiltrationPoint.Settings.Name.Localized();
|
|
Eligible = eligible;
|
|
}
|
|
|
|
public void RecalculateDynamics()
|
|
{
|
|
if (!GameUtils.IsExfiltrationPointValid(ExfiltrationPoint))
|
|
return;
|
|
|
|
screenPosition = GameUtils.WorldPointToScreenPoint(ExfiltrationPoint.transform.position);
|
|
IsOnScreen = GameUtils.IsScreenPointVisible(screenPosition);
|
|
Distance = Vector3.Distance(Main.MainCamera.transform.position, ExfiltrationPoint.transform.position);
|
|
}
|
|
|
|
private string ExtractionNameToSimpleName(string extractionName)
|
|
{
|
|
// Factory
|
|
if (extractionName.Contains("exit (3)"))
|
|
return "Cellars";
|
|
if (extractionName.Contains("exit (1)"))
|
|
return "Gate 3";
|
|
if (extractionName.Contains("exit (2)"))
|
|
return "Gate 0";
|
|
if (extractionName.Contains("exit_scav_gate3"))
|
|
return "Gate 3";
|
|
if (extractionName.Contains("exit_scav_camer"))
|
|
return "Blinking Light";
|
|
if (extractionName.Contains("exit_scav_office"))
|
|
return "Office";
|
|
|
|
// Woods
|
|
if (extractionName.Contains("eastg"))
|
|
return "East Gate";
|
|
if (extractionName.Contains("scavh"))
|
|
return "House";
|
|
if (extractionName.Contains("deads"))
|
|
return "Dead Mans Place";
|
|
if (extractionName.Contains("var1_1_constant"))
|
|
return "Outskirts";
|
|
if (extractionName.Contains("scav_outskirts"))
|
|
return "Outskirts";
|
|
if (extractionName.Contains("water"))
|
|
return "Outskirts Water";
|
|
if (extractionName.Contains("boat"))
|
|
return "The Boat";
|
|
if (extractionName.Contains("mountain"))
|
|
return "Mountain Stash";
|
|
if (extractionName.Contains("oldstation"))
|
|
return "Old Station";
|
|
if (extractionName.Contains("UNroad"))
|
|
return "UN Road Block";
|
|
if (extractionName.Contains("var2_1_const"))
|
|
return "UN Road Block";
|
|
if (extractionName.Contains("gatetofactory"))
|
|
return "Gate to Factory";
|
|
if (extractionName.Contains("RUAF"))
|
|
return "RUAF Gate";
|
|
|
|
// Shoreline
|
|
if (extractionName.Contains("roadtoc"))
|
|
return "Road to Customs";
|
|
if (extractionName.Contains("lighthouse"))
|
|
return "Lighthouse";
|
|
if (extractionName.Contains("tunnel"))
|
|
return "Tunnel";
|
|
if (extractionName.Contains("wreckedr"))
|
|
return "Wrecked Road";
|
|
if (extractionName.Contains("deadend"))
|
|
return "Dead End";
|
|
if (extractionName.Contains("housefence"))
|
|
return "Ruined House Fence";
|
|
if (extractionName.Contains("gyment"))
|
|
return "Gym Entrance";
|
|
if (extractionName.Contains("southfence"))
|
|
return "South Fence Passage";
|
|
if (extractionName.Contains("adm_base"))
|
|
return "Admin Basement";
|
|
|
|
// Customs
|
|
if (extractionName.Contains("administrationg"))
|
|
return "Administration Gate";
|
|
if (extractionName.Contains("factoryfar"))
|
|
return "Factory Far Corner";
|
|
if (extractionName.Contains("oldazs"))
|
|
return "Old Gate";
|
|
if (extractionName.Contains("milkp_sh"))
|
|
return "Shack";
|
|
if (extractionName.Contains("beyondfuel"))
|
|
return "Beyond Fuel Tank";
|
|
if (extractionName.Contains("railroadtom"))
|
|
return "Railroad to Mil Base";
|
|
if (extractionName.Contains("_pay_car"))
|
|
return "V-Exit";
|
|
if (extractionName.Contains("oldroadgate"))
|
|
return "Old Road Gate";
|
|
if (extractionName.Contains("sniperroad"))
|
|
return "Sniper Road Block";
|
|
if (extractionName.Contains("warehouse17"))
|
|
return "Warehouse 17";
|
|
if (extractionName.Contains("factoryshacks"))
|
|
return "Factory Shacks";
|
|
if (extractionName.Contains("railroadtotarkov"))
|
|
return "Railroad to Tarkov";
|
|
if (extractionName.Contains("trailerpark"))
|
|
return "Trailer Park";
|
|
if (extractionName.Contains("crossroads"))
|
|
return "Crossroads";
|
|
if (extractionName.Contains("railroadtoport"))
|
|
return "Railroad to Port";
|
|
|
|
// Interchange
|
|
if (extractionName.Contains("NW_Exfil"))
|
|
return "North West Extract";
|
|
if (extractionName.Contains("SE_Exfil"))
|
|
return "Emmercom";
|
|
return extractionName;
|
|
}
|
|
|
|
}
|
|
}
|