Exemplo n.º 1
0
    // 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);
        }
    }
Exemplo n.º 2
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();
            }
        }
    }
Exemplo n.º 3
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);
    }
    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);
        }
    }
Exemplo n.º 5
0
 private void Start()
 {
     _mayShot       = true;
     type           = initialType;
     projectileInfo = GameParams.GetProjectileInfo(type);
 }
Exemplo n.º 6
0
 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);
         }
     }
 }