// Start is called before the first frame update
    void Start()
    {
        properties = transform.GetComponent <TowerProperties>();

        targets       = new Transform[Boards.boards.Length];
        lines         = new GameObject[Boards.boards.Length];
        fireCountdown = new float[Boards.boards.Length];
        firePoint     = transform.parent.Find("FirePoint");


        /* for (int i = 0; i < lines.Length; i++){
         *  lines[i] = new GameObject();
         *  lines[i].transform.position = transform.position;
         *  lines[i].AddComponent<LineRenderer>();
         *  LineRenderer lr = lines[i].GetComponent<LineRenderer>();
         *  lr.startColor = Color.red;
         *  lr.endColor = Color.red;
         *  lr.startWidth = 0.1f;
         *  lr.endWidth = 0.1f;
         *  lr.SetPosition(0, firePoint.position);
         *  lr.SetPosition(1, firePoint.position);
         * } */



        InvokeRepeating("UpdateTarget", 0f, 0.5f);
    }
Esempio n. 2
0
    public override void Apply(TowerProperties p, ShotProperties s)
    {
        PawnProperties props = p as PawnProperties;

        Debug.Log("Tower Properties: " + p.GetType() + " " + (props == null) + " " + this.name + " ShotProperties: " + s.GetType());
        effect(p as PawnProperties, s);
    }
Esempio n. 3
0
        public void OnButtonSpawnTower(TowerProperties tower)
        {
            if (CannotAffordTower(tower))
            {
                OnDisplayMessage?.Invoke("not enough money.");
                return;
            }

            switch (TowerPlacementState)
            {
            case TowerPlacementState.NotPlacingTower:
                TowerPlacementState = TowerPlacementState.PlacingTower;
                SpawnTower(tower);
                break;

            case TowerPlacementState.PlacingTower:
                Destroy(_currentTowerGO);
                SpawnTower(tower);
                break;

            case TowerPlacementState.CannotPlaceTower:
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
    // Start is called before the first frame update
    void Start()
    {
        properties = transform.GetComponent <TowerProperties>();
        graphics   = GameMaster.boardGraphics;

        targets       = new Transform[Boards.boards.Length];
        lines         = new GameObject[Boards.boards.Length];
        fireCountdown = new float[Boards.boards.Length];
        firePoint     = transform.Find("FirePoint");



        /* boardRanges = new float[4];
         * boardFireRates = new float[4];
         * boardDamages = new float[4];
         * boardBulletPrefabs = new GameObject[4]; */

        /* for (int i = 0; i < lines.Length; i++){
         *  lines[i] = new GameObject();
         *  lines[i].transform.position = transform.position;
         *  lines[i].AddComponent<LineRenderer>();
         *  LineRenderer lr = lines[i].GetComponent<LineRenderer>();
         *  lr.startColor = Color.red;
         *  lr.endColor = Color.red;
         *  lr.startWidth = 0.1f;
         *  lr.endWidth = 0.1f;
         *  lr.SetPosition(0, firePoint.position);
         *  lr.SetPosition(1, firePoint.position);
         * }  */



        InvokeRepeating("UpdateTarget", 1f, 0.5f);
    }
Esempio n. 5
0
        public void ShowTowerInformation(TowerProperties towerProperties)
        {
            _towerInformationPanel.SetActive(true);

            _towerName.text        = towerProperties.TowerName;
            _towerCost.text        = $"<b>Cost:</b> {towerProperties.Cost.ToString()}";
            _towerSpeed.text       = $"<b>Speed:</b> {towerProperties.Speed}";
            _towerDescription.text = towerProperties.Description;
        }
Esempio n. 6
0
    protected virtual void Start()
    {
        if (properties == null)
        {
            baseTower = GameData.instance.GetTower(type, level);

            TowerProperties baseProperties = new TowerProperties();
            baseProperties.Load(type, level);
            properties = new TowerPropertiesQueue();
            properties.Initialize(baseProperties, Time.time);
        }
        SetRange();

        online = true;
        //assign the towerRange to the sphere collider radius
        this.GetComponent <SphereCollider>().radius = 2 * (float)properties.active.range;

        extradamage  = 0;
        nextFireTime = Time.time + (float)properties.active.rateOfFire;

        healthBar = UIManager.instance.GetHealthBar();
        healthBar.UpdateName("Tower: " + type);
        healthBar.UpdateGUI(transform.position, properties.active.hp / properties.active.maxHp, 4);
    }
Esempio n. 7
0
 public override Tower Instantiate(TowerProperties properties)
 {
     return(new ClientTower(properties, bulletPrefab));
 }
Esempio n. 8
0
 public ClientTower(TowerProperties properties, GameObject bulletPrefab) : base(properties)
 {
     this.bulletPrefab = bulletPrefab;
 }
Esempio n. 9
0
 private void SpawnTower(TowerProperties tower)
 {
     _currentTowerGO     = Instantiate(_baseTowerPrefab, Vector3.zero, Quaternion.identity);
     _curTowerController = _currentTowerGO.GetComponent <TowerController>();
     _curTowerController.InitializeTower(tower);
 }
Esempio n. 10
0
 private bool CannotAffordTower(TowerProperties tower)
 {
     return(_gameController.Money < tower.Cost);
 }
Esempio n. 11
0
 public override void Apply(TowerProperties p, ShotProperties s)
 {
     effect(p as KnightProperties, s as SplitShotProperties);
 }
Esempio n. 12
0
 public abstract void Apply(TowerProperties p, ShotProperties s);
Esempio n. 13
0
 public override void Apply(TowerProperties p, ShotProperties s)
 {
     effect(p as CastleProperties, s);
 }
Esempio n. 14
0
 public override void Apply(TowerProperties p, ShotProperties s)
 {
     effect(p as BishopProperties, s);
 }
Esempio n. 15
0
 public override void Apply(TowerProperties p, ShotProperties s)
 {
     effect(p as QueenProperties, s as NanoBotProperties);
 }