public Projectile GetProjectile(GameParams.ProjectileType type)
    {
        Projectile result = null;

        switch (type)
        {
        case GameParams.ProjectileType.Basic:
        case GameParams.ProjectileType.Twinned:
        case GameParams.ProjectileType.Triple:
            result = baseProjectiles[idx1];
            idx1   = (idx1 + 1) % baseProjectiles.Count;
            return(result);

        case GameParams.ProjectileType.HomingMissile:
        case GameParams.ProjectileType.Missile:
            result = missileProjectiles[idx2];
            idx2   = (idx2 + 1) % missileProjectiles.Count;
            return(result);

        case GameParams.ProjectileType.Laser:
            result = laserProjectiles[idx3];
            idx3   = (idx3 + 1) % laserProjectiles.Count;
            return(result);
        }
        return(result);
    }
예제 #2
0
    public void SetWeapon(GameParams.ProjectileType weaponType)
    {
        var info = GameParams.GetProjectileInfo(weaponType);

        weapon.type   = weaponType;
        shipMesh.mesh = info.mesh;
        var mat = new Material(info.material);

        mat.color         = GetColor(color);
        shipRend.material = mat;
        HUD.Instance.weaponIcon.sprite = info.icon.sprite;//, HUD.Instance.weaponIcon.sprite.rect, HUD.Instance.weaponIcon.sprite.pivot);
    }
예제 #3
0
 public void Init(Vector3 velocity, float lifeTime, string ownerName, GameParams.ProjectileType type)
 {
     this.type             = type;
     this.ownerName        = ownerName;
     this.transform.parent = null;
     rb.velocity           = velocity;
     _initialized          = true;
     StartCoroutine(WaitAndDie(lifeTime));
     GameContext.Instance.projectiles.Add(this);
     if (type == GameParams.ProjectileType.HomingMissile)
     {
         TargetName = GetBetterTarget();
     }
     if (spawnProto != null)
     {
         Instantiate(spawnProto, this.transform.position, this.transform.rotation);
     }
 }
 private void Awake()
 {
     projectileType = (GameParams.ProjectileType)Random.Range(0, 6);
 }
예제 #5
0
 private void Start()
 {
     _mayShot       = true;
     type           = initialType;
     projectileInfo = GameParams.GetProjectileInfo(type);
 }