private void Init(int level, float scale, float duration) { BulletLevel = level; Scale = scale; Duration = duration; var scaleIn = new ScaleTo(this, InitialScale, Scale, ScaleTime); ScaleIn = new EaseIn3(scaleIn); Delay = new Delay(this, Duration); var scaleOut = new ScaleTo(this, Scale, InitialScale, ScaleTime); ScaleOut = new EaseOut3(scaleOut); Behavior = new Sequence(ScaleIn, EnableProjectiles, Delay, DisableProjectiles, ScaleOut); }
protected override void OnInit() { var initialSize = GetComponent <Renderer>().bounds.size; float spawnMinX = SpaceUtil.WorldMap.Left.x + initialSize.x; float spawnMinY = (SpaceUtil.WorldMap.Bottom.y + SpaceUtil.WorldMap.Center.y) * 0.5f; SpawnMin = new Vector2(spawnMinX, spawnMinY); float spawnMaxX = SpaceUtil.WorldMap.Right.x - initialSize.x; float spawnMaxY = (SpaceUtil.WorldMap.Center.y + SpaceUtil.WorldMap.Top.y) * 0.5f; SpawnMax = new Vector2(spawnMaxX, spawnMaxY); var activateCanCollide = new GameTaskFunc(this, () => CanCollide = true); float fullBrightAlpha = Alpha; var entranceFadeIn = new FadeTo(this, 0f, fullBrightAlpha, FadeTime); var entranceScaleIn = new ScaleTo(this, float.Epsilon, LocalScale, FadeTime); var entranceSequence = new Sequence(entranceFadeIn, entranceScaleIn, activateCanCollide); var fadeOut = new FadeTo(this, fullBrightAlpha, TravelAlpha, FadeTime); var fadeOutEase = new EaseIn3(fadeOut); var scaleOut = new ScaleTo(this, LocalScale, TravelSizeScale, FadeTime); var scaleOutEase = new EaseIn3(scaleOut); var fadeOutConcurrence = new ConcurrentGameTask(fadeOutEase, scaleOutEase); TravelMove = MoveTo.Default(this, 1.0f); TravelMoveEase = new EaseInOut(TravelMove); var fadeIn = new FadeTo(this, TravelAlpha, fullBrightAlpha, FadeTime); var scaleIn = new ScaleTo(this, TravelSizeScale, LocalScale, FadeTime); var fadeInConcurrence = new ConcurrentGameTask(fadeIn, scaleIn); TravelSequence = new Sequence(fadeOutConcurrence, TravelMoveEase, fadeInConcurrence, activateCanCollide); CanCollide = false; LocalScale = float.Epsilon; transform.position = SpaceUtil.WorldMap.Center; RunTask(entranceSequence); }
protected override void OnPermanentVelocityBulletInit() { Scale = SpaceUtil.WorldMap.Height; var scaleIn = new ScaleTo(this, float.Epsilon, Scale, ScaleInTime); var scaleEase = new EaseIn3(scaleIn); MoveToCenter = new MoveTo(this, Vector3.zero, new Vector3(1f, 1f), ScaleInTime); var scaleAndMove = new ConcurrentGameTask(scaleEase, MoveToCenter); var calmExplosion = new GameTaskFunc(this, () => IsExploding = false); var fade = new FadeTo(this, 0, FadeTime); var fadeEase = new EaseOut(fade); Sequence = new Sequence(scaleAndMove, calmExplosion, fadeEase); //ManagedMiscSprites = new List<ValkyrieSprite>(); ManagedEnemies = new TrackedPooledObjectSet <Enemy>(); ManagedEnemyBullets = new TrackedPooledObjectSet <EnemyBullet>(); ManagedPlayerBullets = new TrackedPooledObjectSet <PlayerBullet>(); ManagedPickups = new TrackedPooledObjectSet <Pickup>(); }