Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
    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");
        }
    }
Ejemplo n.º 3
0
    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 ();
        }
    }
Ejemplo n.º 4
0
    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;
    }
Ejemplo n.º 5
0
 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;
     }
 }
Ejemplo n.º 6
0
    //--------------------------------
    // 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));
        }
          }
        }
    }
Ejemplo n.º 7
0
 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;
       }
     }
 }
Ejemplo n.º 8
0
 // Use this for initialization
 void Start()
 {
     color = Colors.player;
 }
Ejemplo n.º 9
0
 public void ChangeColor(Colors newColor)
 {
     changeColor = true;
     color = newColor;
 }
Ejemplo n.º 10
0
 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);
 }
Ejemplo n.º 11
0
 public BackgroundShift(Colors color, int delay)
     : base(delay)
 {
     this.color = color;
 }