private mg_jr_Level LoadLevelAfterExisting(mg_jr_LevelDefinition _pattern) { _pattern.UseDeffinition(); GameObject gameObject = new GameObject(string.Concat("mg_jr_Level_", _pattern.EnvironmentType, "_", _pattern.Difficulty)); mg_jr_Level mg_jr_Level2 = gameObject.AddComponent <mg_jr_Level>(); mg_jr_Level2.LevelDefinition = _pattern; EnvironmentVariant variant = m_environmentManager.CurrentEnvironment.Variant; foreach (mg_jr_LevelDefinition.ObjectSpawnDefinition objectSpawnDefinition in _pattern.ObjectSpawnDefinitions) { GameObject pooledResource = m_resources.GetPooledResource(objectSpawnDefinition.XmlResourceName, variant); pooledResource.transform.parent = gameObject.transform; pooledResource.transform.position = objectSpawnDefinition.PositionInLevel; pooledResource.name = pooledResource.name + "_" + objectSpawnDefinition.Name; } Vector3 position; if (m_activeLevels.Count == 0) { float num = _pattern.Size.y * 0.5f - Camera.main.orthographicSize; position = new Vector3(Camera.main.RightEdgeInWorld(), Camera.main.TopEdgeInWorld() + num, 0f); } else { mg_jr_Level value = m_activeLevels.Last.Value; position = value.TopRightCornerInWorld(); } gameObject.transform.position = position; gameObject.transform.parent = base.transform; m_activeLevels.AddLast(mg_jr_Level2); return(mg_jr_Level2); }
private void Awake() { mg_JetpackReboot active = MinigameManager.GetActive <mg_JetpackReboot>(); mg_jr_Resources resources = active.Resources; Vector3 position = new Vector3(-16f, active.VisibleWorldBounds.max.y, 0f); base.transform.position = position; m_highestLinePosition = active.VisibleWorldBounds.max.y; m_lowestLinePosition = active.VisibleWorldBounds.min.y; float num = m_highestLinePosition - m_lowestLinePosition; m_lineSpacing = num / (float)(m_maxLineFX - 2); for (int i = 0; i < m_maxLineFX; i++) { GameObject pooledResource = resources.GetPooledResource(mg_jr_ResourceList.GAME_PREFAB_EFFECT_SPEEDLINE); Animator component = pooledResource.GetComponent <Animator>(); Assert.NotNull(component, "SpeedLine needs an animator"); pooledResource.transform.position = new Vector3(base.transform.position.x, m_highestLinePosition - (float)i * m_lineSpacing, 0f); pooledResource.transform.parent = base.transform; SpriteRenderer component2 = pooledResource.GetComponent <SpriteRenderer>(); component2.sortingOrder = mg_jr_SpriteDrawingLayers.Instance.SpriteOrder(mg_jr_SpriteDrawingLayers.DrawingLayers.FX_OVERLAY_0); m_speedLines.Add(component); } m_speedLines = m_speedLines.OrderBy((Animator item) => Random.Range(0, m_speedLines.Count)).ToList(); }
public virtual void Explode() { mg_JetpackReboot active = MinigameManager.GetActive <mg_JetpackReboot>(); mg_jr_Resources resources = active.Resources; GameObject pooledResource = resources.GetPooledResource(mg_jr_ResourceList.GAME_PREFAB_EFFECT_OBSTACLE_EXPLOSION); Bounds bounds = WidestBounds(); if (bounds.size.x < 1.5f) { pooledResource.transform.localScale = new Vector3(0.5f, 0.5f, 0.5f); } SpriteRenderer component = pooledResource.GetComponent <SpriteRenderer>(); Assert.NotNull(component, "Explosion effect must have a spriterenderer"); component.sortingOrder = mg_jr_SpriteDrawingLayers.Instance.SpriteOrder(mg_jr_SpriteDrawingLayers.DrawingLayers.OBSTACLE_0); Vector3 center = component.bounds.center; Vector3 vector = pooledResource.transform.position - center; pooledResource.transform.position = bounds.center + vector; pooledResource.transform.parent = active.GameLogic.transform; if (Random.value >= 0.5f) { active.PlaySFX(mg_jr_Sound.OBSTACLE_EXPLODE_01.ClipName()); } else { active.PlaySFX(mg_jr_Sound.OBSTACLE_EXPLODE_02.ClipName()); } resources.ReturnPooledResource(base.gameObject); }