//TODO: null checks private static void InitScans(ChainedPuzzleManager instance) { foreach (CustomBioScan scan in ConfigManager.CustomContent.ScanHolder.Scans) { Log.Debug($"Adding scan with ID of [{scan.PersistentID}]"); //Base instance GameObject scanBase = instance.m_puzzleComponentPrefabs[scan.BaseScan]; GameObject scanPrefab = UnityEngine.Object.Instantiate(scanBase); scanPrefab.transform.position = new Vector3(10000, 10000, 10000); //Setup Scanner CP_PlayerScanner playerScanner = scanPrefab.GetComponent <CP_PlayerScanner>(); playerScanner.m_reduceSpeed = scan.ReduceSpeed; playerScanner.m_reduceWhenNoPlayer = scan.ReduceWhenNoPlayer; playerScanner.m_scanRadius = scan.ScanRadius; playerScanner.m_scanSpeeds = scan.PlayersInScanMulti; playerScanner.m_playerRequirement = (PlayerRequirement)scan.PlayerRequirement; //Setup Graphics CP_Bioscan_Graphics scanGx = scanPrefab.GetComponent <CP_Bioscan_Graphics>(); scanGx.m_radius = scan.BioScanGraphics.Radius; scanGx.m_colors = ConvertToColorMode(scan.BioScanGraphics.colorModeColor); scanGx.SetText(scan.BioScanGraphics.ScanText); CP_Bioscan_Core core = scanPrefab.GetComponent <CP_Bioscan_Core>(); core.m_playerAgents = new Il2CppSystem.Collections.Generic.List <PlayerAgent>(); instance.m_puzzleComponentPrefabs.Add(scan.PersistentID, scanPrefab); } }
static bool Prefix(CP_Bioscan_Core __instance) { if (__instance.gameObject.transform.position.x > 9000 && __instance.gameObject.transform.position.y > 9000 && __instance.gameObject.transform.position.z > 9000) { return(false); } return(true); }
void Awake() { OffshootMain.log.LogDebug("Triggered"); core = GetComponent <CP_Bioscan_Core>(); core.add_OnPuzzleDone((Action <int>)((number) => { Patch_StateChange.TriggerEnd(); })); }