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); }
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); }
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); }
private void Start() { _mayShot = true; type = initialType; projectileInfo = GameParams.GetProjectileInfo(type); }