void Start() { _moduleId = _moduleIdCounter++; _swirlsActive = new Transform[49]; _swirlsVisible = new Transform[49]; for (int i = 0; i < 49; i++) { _swirlsActive[i] = Instantiate(SwirlTemplate); _swirlsActive[i].parent = SwirlContainer.transform; _swirlsActive[i].localPosition = new Vector3(0, 0, 0); var scale = Rnd.Range(.99f, 1.05f); _swirlsActive[i].localScale = new Vector3(scale, scale, scale); _swirlsActive[i].GetComponent <MeshRenderer>().material.mainTexture = SwirlTextures[i / 7]; _swirlsVisible[i] = _swirlsActive[i]; } Destroy(SwirlTemplate.gameObject); var ser = Bomb.GetSerialNumber(); if (!_infos.ContainsKey(ser)) { _infos[ser] = new BlackHoleBombInfo(); } _info = _infos[ser]; _info.Modules.Add(this); _lastTime = (int)Bomb.GetTime(); _lastSolved = 0; _digitsEntered = 0; _digitsExpected = 7; StartCoroutine(MoveSwirls()); StartCoroutine(ComputeSolutionCode(ser)); Selectable.OnInteract = HoleInteract; Selectable.OnInteractEnded = HoleInteractEnded; }
void Start() { _moduleId = _moduleIdCounter++; _planetTextures = new Texture[12][]; for (int i = 0; i < 12; i++) { _planetTextures[i] = new Texture[7]; } foreach (var tx in PlanetTextures) { var p1 = tx.name.IndexOf('-'); var p2 = tx.name.LastIndexOf('-'); _planetTextures[int.Parse(tx.name.Substring(p1 + 1, p2 - p1 - 1))][int.Parse(tx.name.Substring(p2 + 1))] = tx; } _swirlsActive = new Transform[49]; _swirlsVisible = new Transform[49]; for (int i = 0; i < 49; i++) { var ct = Instantiate(ContainerTemplate).transform; ct.parent = SwirlContainer.transform; ct.localPosition = new Vector3(0, 0, 0); var scale = Rnd.Range(.99f, 1.05f); ct.localScale = new Vector3(scale, scale, scale); ct.gameObject.SetActive(true); var mr = Instantiate(ImageTemplate); mr.material.mainTexture = SwirlTextures[i / 7]; mr.material.renderQueue = 2700 + i; mr.transform.parent = ct; mr.transform.localPosition = new Vector3((250 - 201 - 70 / 2) / 500f, (250 - 31 - 32 / 2) / 500f, 0); mr.transform.localScale = new Vector3(70f / 500, 32f / 500, 1); mr.gameObject.SetActive(true); _swirlsActive[i] = _swirlsVisible[i] = ct; } StartCoroutine(MoveSwirls()); var serialNumber = Bomb.GetSerialNumber(); if (!_infos.ContainsKey(serialNumber)) { _infos[serialNumber] = new BlackHoleBombInfo(); } _info = _infos[serialNumber]; _info.Modules.Add(this); _lastTime = (int)Bomb.GetTime(); _lastSolved = 0; _digitsEntered = 0; _digitsExpected = 7; Selectable.OnInteract = HoleInteract; Selectable.OnInteractEnded = HoleInteractEnded; Bomb.OnBombExploded += delegate { _infos.Clear(); }; Bomb.OnBombSolved += delegate { // This check is necessary because this delegate gets called even if another bomb in the same room got solved instead of this one if (Bomb.GetSolvedModuleNames().Count == Bomb.GetSolvableModuleNames().Count) { _infos.Remove(serialNumber); } }; StartCoroutine(initialize(serialNumber)); }