// Update is called once per frame void Update() { var cam = Camera.main; CheckBonusesAmount(); for (int i = 0; i < GameContext.Instance.bonuses.Count; i++) { Vector3 screenPos = cam.WorldToScreenPoint(GameContext.Instance.bonuses[i].transform.position); bonuses[i].rectTransform.position = screenPos; try { var wb = GameContext.Instance.bonuses[i] as WeaponBonus; Debug.Log(wb.projectileType); var info = GameParams.GetProjectileInfo(wb.projectileType); bonuses[i].sprite = info.icon.sprite; } catch (System.Exception e) { bonuses[i].sprite = hpSprite.sprite; } // bonuses[i].transform.localScale = new Vector3((float)(GameContext.Instance.ships[i].health) / (float)GameParams.SPACESHIP_MAX_HP, 1, 0); } }
private void OnTriggerEnter(Collider other) { var ship = other.GetComponent <SpaceShip>(); if (ship != null) { if (ship.GetOwner() != ownerName) { var hp = ship.GetHP(); var result = ship.Damage(GameParams.GetProjectileInfo(type).damage); if (result <= 0) { ScoreCounter.AddScore(ownerName, 100); } else { ScoreCounter.AddScore(ownerName, hp - result); } Destruct(); } } else { if (other.name.Contains("Planet")) { Destruct(); } if (other.name.Contains("Asteroid")) { other.GetComponent <Asteroid>().Destruct(); Destruct(); } } }
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); }
private void Start() { _instance = this; this.transform.position = new Vector3(100, 100, 100); var proto = GameParams.GetProjectileInfo(GameParams.ProjectileType.Basic).projectileProto; for (int i = 0; i < baseProjectilesLimit; i++) { var pr = Instantiate(proto, this.transform); pr.transform.localPosition = Vector3.zero; baseProjectiles.Add(pr); } proto = GameParams.GetProjectileInfo(GameParams.ProjectileType.Laser).projectileProto; for (int i = 0; i < laserProjectilesLimit; i++) { var pr = Instantiate(proto, this.transform); pr.transform.localPosition = Vector3.zero; laserProjectiles.Add(pr); } proto = GameParams.GetProjectileInfo(GameParams.ProjectileType.Missile).projectileProto; for (int i = 0; i < missileProjectilesLimit; i++) { var pr = Instantiate(proto, this.transform); pr.transform.localPosition = Vector3.zero; missileProjectiles.Add(pr); } for (int i = 0; i < healthBonusesLimit; i++) { var pr = Instantiate(healthBonusProto, this.transform); pr.transform.localPosition = Vector3.zero; bonuses.Add(pr); } for (int i = 0; i < weaponBonusesLimit; i++) { var pr = Instantiate(weaponBonusProto, this.transform); pr.transform.localPosition = Vector3.zero; bonuses.Add(pr); } }
private void Start() { _mayShot = true; type = initialType; projectileInfo = GameParams.GetProjectileInfo(type); }
private void Update() { if (type == GameParams.ProjectileType.HomingMissile) { int idx = GameContext.Instance.ships.FindIndex(s => s.ownerName == TargetName); if (idx >= 0) { rb.velocity = (rb.velocity + (GameContext.Instance.ships[idx].position - this.transform.position) * GameParams.HOMING_COEFF).normalized * GameParams.GetProjectileInfo(GameParams.ProjectileType.HomingMissile).velocity; //rb.AddForce((GameContext.Instance.ships[idx].position - (this.transform.position + rb.velocity)).normalized * 125); } } }