Beispiel #1
0
        //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);
            }
        }