public Spawn(Vector3 pos, ColorUtils.Colors color, bool[] cannons, bool shielded, bool rotated) { this.position = pos; this.color = color; this.cannons = cannons; this.shielded = shielded; this.rotated = rotated; }
public void SpawnEnemy(Vector3 position, Colors color, bool[] cannons, bool isShielded, bool rotates) { if (color == bgScript.color) { //Debug.Log("attempt to spawn blocked color:"+color+":"+bgScript.color); //#TODO Fix with better pick color = ColorUtils.GetRandomColorForBackground (color, randomzier); } var enemy = Instantiate (enemyPrefab) as Transform; enemy.tag = "enemy_ship"; enemy.position = position; List<Transform> disabledCannons = new List<Transform> (); var enemyMovement = enemy.GetComponent<StraightEnemyScript> (); if (enemyMovement != null) { enemyMovement.rotates = rotates; } for (int i=0; i<enemy.childCount; i++) { var child = enemy.GetChild (i); var renderer = child.GetComponent<SpriteRenderer> (); renderer.color = ColorUtils.ConvertToColor (color); } int cannonIndex = 0; //this is terrible. for (int i=0; i<enemy.childCount; i++) { var child = enemy.GetChild (i); var renderer = child.GetComponent<SpriteRenderer> (); renderer.color = ColorUtils.ConvertToColor (color); if (!renderer.enabled) { if (cannons[cannonIndex]) { renderer.enabled = true; } else { disabledCannons.Add (child); } cannonIndex++; } } foreach (var collider in (enemy as Transform).GetComponentsInChildren<EnemyCollision> ()) { collider.EnemyColor = color; collider.isShielded = isShielded; collider.Enemy = (enemy as Transform).gameObject; collider.DisabledCannons = disabledCannons; collider.sound = sound; } if (isShielded) { var hull = (enemy as Transform).FindChild ("Hull"); hull.GetComponent<SpriteRenderer> ().sprite = Resources.Load<Sprite> ("Textures/EnemyShip-Shielded"); } }
public void consumeEvent() { var currEvent = currentStage.First (); currentStage.RemoveAt (0); if (currEvent is SpawnSet) { foreach (var spawn in ((SpawnSet)currEvent).spawns) { if (spawn.color != Colors.player) { spawner.SpawnEnemy (spawn.position, spawn.color, spawn.cannons, spawn.shielded, spawn.rotated); } else { spawner.SpawnAsteroid (spawn.position); } eventTimer.Interval = currEvent.delay; } } else if (currEvent is BackgroundShift) { if (sounds != null) { Debug.Log ("playing transition"); sounds.Play (SoundScript.SoundList.Transitions); } var bg = (BackgroundShift)currEvent; bgColor = bg.color; bgTimer.Start (); eventTimer.Interval = currEvent.delay; } else if (currEvent is Boss) { eventTimer.Stop (); bossOut = true; bossTimer.Start (); spawner.SpawnBoss ((Boss)currEvent); eventTimer.Interval = currEvent.delay; } else if (currEvent is MusicEvent) { var music = (MusicEvent)currEvent; sounds.StopMusic(); switch(music.songID) { case 1 : sounds.PlayMusic(SoundScript.BackgroundSound.BlueSong); break; case 2 : sounds.PlayMusic(SoundScript.BackgroundSound.GreenSong); break; case 3 : sounds.PlayMusic(SoundScript.BackgroundSound.RedSong); break; case 4 : sounds.PlayMusic(SoundScript.BackgroundSound.BossSong); break; } eventTimer.Interval = music.delay; } if (currentStage.Count == 0) { eventTimer.Stop (); } }
Colors GetCompositeColor(Colors baseColor) { var bgManager = GameObject.FindGameObjectWithTag ("BG-Color"); var bgScript = bgManager.GetComponent<BackgroundScript>(); if(bgScript != null) { var bgColor = bgScript.color; return ColorUtils.GetCompositeColor(baseColor, bgColor); } return baseColor; }
public Color ConvertToColor(Colors gameColor) { switch (gameColor) { case Colors.blue: return Color.blue; case Colors.green: return Color.green; case Colors.red: return Color.red; case Colors.player: return Color.black; default: return Color.gray; } }
//-------------------------------- // 3 - Shooting from another script //-------------------------------- /// <summary> /// Create a new projectile if possible /// </summary> public void Attack(Colors color, int magnitude, float speedMultiplier) { if (CanAttack) { shootCooldown = shootingRate; // Create laser sound if(sound != null) { sound.Play(SoundScript.SoundList.Lasers); } // Create a new shot var shotTransform = Instantiate(shotPrefab) as Transform; // Assign position shotTransform.position = new Vector3( transform.position.x, transform.position.y /*+ transform.localScale.y/2*/ , transform.position.z+1 ); // The is enemy property Shot shot = shotTransform.gameObject.GetComponent<Shot>(); if (shot != null) { shot.ShotColor = (int)color; shot.direction = this.transform.up; shot.Magnitude = magnitude; shot.speed.Scale(new Vector2(speedMultiplier, speedMultiplier)); } var sprite = shotTransform.gameObject.GetComponent<SpriteRenderer>(); if(sprite != null) { sprite.color = ConvertToColor(color); if(magnitude > 1) { shotTransform.localScale = Vector3.Scale(shotTransform.localScale, new Vector3( 1 + (magnitude-1)*0.50f, 1 + (magnitude-1)*0.50f)); } } } }
public Color ConvertToColor(Colors gameColor) { if (Options.Entries ["ColorBlindMode"]) { switch (gameColor) { case Colors.blue: return new Color(0.9F,0.9F,0.9F); case Colors.green: return new Color(0.8F,0.8F,0.8F); case Colors.red: return new Color(0.6F,0.6F,0.6F); case Colors.player: return Color.black; case Colors.cyan: return new Color(0.5F,0.5F,0.5F); case Colors.magenta: return new Color(0.7F,0.7F,0.7F); case Colors.yellow: return new Color(0.4F,0.4F,0.4F); default: return Color.white; } } else { switch (gameColor) { case Colors.blue: return Color.blue; case Colors.green: return Color.green; case Colors.red: return Color.red; case Colors.player: return Color.black; case Colors.cyan: return Color.cyan; case Colors.magenta: return Color.magenta; case Colors.yellow: return Color.yellow; default: return Color.white; } } }
// Use this for initialization void Start() { color = Colors.player; }
public void ChangeColor(Colors newColor) { changeColor = true; color = newColor; }
static Spawn BuildSingleSpawn(Vector3 position, bool[]cannons, bool shields, bool asteroids, bool rotators, Colors color, double chance) { if (shields && chance <= 0.1) { return new Spawn (position, color, cannons, true, false); } if (asteroids && chance <= 0.12 && chance >= 0.1) { return new Spawn (position, Colors.player, cannons, false, false); } if (rotators && chance <= 0.32 && chance >= 0.12) { return new Spawn (position, color, cannons, false, true); } return new Spawn (position, color, cannons, false, false); }
public BackgroundShift(Colors color, int delay) : base(delay) { this.color = color; }