public static void PreWeaponTrackingUpdate() { string[] argArray = new string[WeaponItemNames.Count]; WeaponItemNames.Values.CopyTo(argArray, 0); IObject[] list = GlobalGame.GetObjectsByName(argArray); for (int i = 0; i < list.Length; i++) { IObject obj = list[i]; bool found = false; for (int j = 0; j < WeaponTrackingList.Count; j++) { if (WeaponTrackingList[j].Object == obj) { found = true; break; } } if (found) { continue; } TWeapon weapon = PlayerDropWeaponUpdate(obj.GetWorldPosition(), ((IObjectWeaponItem)obj).WeaponItem); if (weapon == null) { weapon = new TWeapon(((IObjectWeaponItem)obj).WeaponItem); } weapon.Object = obj; WeaponTrackingList.Add(weapon); } }
public static TWeapon PlayerPickUpWeaponUpdate(Vector2 pos, WeaponItem id) { if (WeaponTrackingList.Count == 0) { return(null); } float dist = 16; TWeapon weapon = null; int index = 0; for (int i = 0; i < WeaponTrackingList.Count; i++) { if (!WeaponTrackingList[i].Object.RemovalInitiated) { continue; } float currentDist = (pos - WeaponTrackingList[i].Position).Length(); if (WeaponTrackingList[i].Weapon == id && currentDist <= dist) { weapon = WeaponTrackingList[i]; dist = currentDist; index = i; } } if (weapon == null) { return(null); } WeaponTrackingList.RemoveAt(index); return(weapon); }
public void RemoveWeapons() { for (int i = 0; i < WeaponTrackingList.Count; i++) { WeaponTrackingList[i].Remove(); } WeaponTrackingList.Clear(); }
public static void PostWeaponTrackingUpdate() { for (int i = 0; i < WeaponTrackingList.Count; i++) { if (WeaponTrackingList[i].Object == null || WeaponTrackingList[i].Object.RemovalInitiated) { WeaponTrackingList.RemoveAt(i); i--; } else { WeaponTrackingList[i].Position = WeaponTrackingList[i].Object.GetWorldPosition(); WeaponTrackingList[i].Update(); } } }