public TurretController(TurretModel model, Vector3 spawnPosition, Transform node)
 {
     _model         = model;
     _view          = TurretFactory.InstantiateView(spawnPosition, node, _model.PrefabName, this);
     _fireCountdown = 0f;
     _aimType       = new NearestPriority();
 }
Example #2
0
 public TurretFieldWeapon(TurretFieldWeaponAsset asset, TurretView view)
 {
     m_View   = view;
     m_Damage = asset.Damage;
     m_Radius = asset.Radius;
     m_Nodes  = Game.Player.Grid.GetNodesInCircle(m_View.transform.position, asset.Radius);
 }
 public TurretProjectileWeapon(TurretProjectileWeaponAsset asset, TurretView view)
 {
     m_Asset            = asset;
     m_View             = view;
     m_TimeBetweenShots = 1f / m_Asset.RateOfFire;
     m_MaxDistance      = m_Asset.MaxDistance;
 }
Example #4
0
    private void Awake()
    {
        hoverable = GetComponent <Hoverable>();
        view      = GetComponent <TurretView>();

        hoverable.OnMouseOver += OnHoverableMouseOver;
        hoverable.OnMouseExit += OnHoverableMouseExit;
    }
 public TurretFieldWeapon(TurretFieldWeaponAsset asset, TurretView view)
 {
     m_Asset          = asset;
     m_View           = view;
     m_MaxDistance    = asset.MaxDistance;
     m_Damage         = asset.Damage;
     m_AvailableNodes = Game.Player.Grid.GetNodesInCircle(m_View.ProjectileOrigin.position, m_MaxDistance);
 }
 public TurretProjectileWeapon(TurretProjectileWeaponAsset asset, TurretView view)
 {
     m_Asset            = asset;
     m_View             = view;
     m_TimeBetweenShots = 1f / m_Asset.RateOfFire;
     m_MaxDistance      = asset.MaxDistance;
     m_AvailableNodes   = Game.Player.Grid.GetNodesInCircle(m_View.ProjectileOrigin.position, m_MaxDistance);
 }
Example #7
0
 public TurretProjectileWeapon(TurretProjectileWeaponAsset asset, TurretView view)
 {
     m_Asset            = asset;
     m_TimeBetweenShots = 1f / m_Asset.RateOfFire;
     m_MaxDistance      = m_Asset.MaxDistance;
     m_View             = view;
     m_NodeCircle       = Game.Player.Grid.GetNodesInCircle(view.transform.position, m_MaxDistance);
 }
        public override ITurretWeapon GetWeapon(TurretView view)
        {
            Transform sphereTransform = view.ProjectileOrigin.transform;

            sphereTransform.localScale *= Radius;
            FieldSphereView sphereView = Instantiate(m_SphereViewPrefab, sphereTransform);

            return(new TurretFieldWeapon(this, view, sphereView));
        }
Example #9
0
 public TurretLaserWeapon(TurretLaserWeaponAsset asset, TurretView view)
 {
     m_Asset          = asset;
     m_View           = view;
     m_MaxDistance    = asset.MaxDistance;
     m_Damage         = asset.Damage;
     m_AvailableNodes = Game.Player.Grid.GetNodesInCircle(m_View.ProjectileOrigin.position, m_MaxDistance);
     m_LineRenderer   = Object.Instantiate(asset.LineRendererPrefab, m_View.transform);
 }
Example #10
0
 public TurretLazerWeapon(TurretView view, TurretLazerWeaponAsset asset)
 {
     m_View         = view;
     m_Damage       = asset.DamagePerSecond;
     m_MaxDistance  = asset.MaxDistance;
     m_LineRenderer = UnityEngine.Object.Instantiate(asset.LineRendererPrefab, view.ProjectileOrigin);
     m_LineRenderer.gameObject.SetActive(false);
     m_NodesInCircle = Game.Player.Grid.GetNodeInCircle(m_View.transform.position, m_MaxDistance);
 }
Example #11
0
 public TurretLaserWeapon(TurretLaserWeaponAsset asset, TurretView view, LineRenderer lineRenderer)
 {
     m_LineRenderer = lineRenderer;
     m_Damage       = asset.Damage;
     m_View         = view;
     m_Asset        = asset;
     m_MaxDistance  = m_Asset.MaxDistance;
     m_Nodes        = Game.Player.Grid.GetNodesInCircle(m_View.ProjectileOrigin.transform.position, m_MaxDistance);
 }
Example #12
0
 void Start()
 {
     self       = GetComponent <TurretConfig>();
     self.owner = transform.parent.parent.GetComponentInParent <PlayerConfig>();
     model      = self.model;
     targeting  = self.targeting;
     view       = self.view;
     InvokeRepeating("UpdateTarget", self.updateRate, self.updateRate);
 }
Example #13
0
 public TurretLazerWeapon(TurretLazerWeaponAsset asset, TurretView view)
 {
     m_Asset        = asset;
     m_MaxDistance  = m_Asset.MaxDistance;
     m_Damage       = m_Asset.Damage;
     m_View         = view;
     m_NodeCircle   = Game.Player.Grid.GetNodesInCircle(view.transform.position, m_MaxDistance);
     m_LineRenderer = Object.Instantiate(asset.LineRendererPrefab, m_View.ProjectileOrigin.transform, true);
     m_LineRenderer.positionCount = 2;
 }
Example #14
0
        public TurretFieldWeapon(TurretFieldWeaponAsset asset, TurretView view)
        {
            m_View  = view;
            m_Field = Object.Instantiate(asset.FieldPrefab, m_View.transform.position, Quaternion.identity);
            Renderer renderer = m_Field.GetComponent <Renderer>();
            Color    color    = new Color(100, 100, 100, 0.5f);

            renderer.material.color = color;
            m_rangeNodes            = Game.Player.Grid.GetNodesInCircle(m_View.ProjectileOrigin.position, m_MaxDistance);
        }
        private void SpawnTurret(TurretAsset asset, Node node)
        {
            TurretView view = Object.Instantiate(asset.ViewPrefab);
            TurretData data = new TurretData(asset, node);

            data.AttachView(view);
            Game.Player.TurretSpawned(data);

            node.IsOccupied = true; // TryOccupy()
            m_Grid.UpdatePathfinding();
        }
Example #16
0
        private void SpawnTurret(TurretAsset asset, Vector2Int coordinate, Node selectedNode)
        {
            TurretView view = Object.Instantiate(asset.ViewPrefab);
            TurretData data = new TurretData(asset, selectedNode);

            data.AttachView(view);
            Game.Player.TurretSpawned(data);
            if (!m_Grid.TryOccupyNode(coordinate, true))
            {
                Debug.Log("Something has gone wrong");
            }
            m_Grid.UpdatePathFinding();
        }
Example #17
0
        private void TrySpawnTurret(TurretAsset asset, Node node)
        {
            bool wasOccupied = Game.Player.Grid.TryOccupyNode(node);

            if (wasOccupied)
            {
                m_Market.BuyTurret(asset);
                TurretView view = Object.Instantiate(asset.ViewPrefab);
                TurretData data = new TurretData(asset, node);
                data.AttachView(view);
                Game.Player.TurretSpawned(data);
            }
        }
Example #18
0
    public static TurretView InstantiateView(Vector3 startPoint, Transform node, string prefabName, TurretController tc)
    {
        GameObject prefab = ((GameObject)Resources.Load("prefabs/" + prefabName, typeof(GameObject)));
        GameObject view   = Instantiate(prefab, startPoint, node.transform.rotation);

        TurretView turretView = view.GetComponent <TurretView>();

        Debug.Log(view);
        turretView.Controller = tc;
        turretView.Instance   = view;

        return(turretView);
    }
Example #19
0
        private void SpawnTurret(TurretAsset asset, Node node)
        {
            TurretView view = Object.Instantiate(asset.ViewPrefab);
            TurretData data = new TurretData(asset, node);

            data.AttachView(view);

            if (m_Grid.ChangeNodeOccupationStatus(node, true))
            {
                m_Grid.UpdatePathfinding();
            }

            Game.Player.TurretSpawned(data);
        }
Example #20
0
        public TurretAreaWeapon(TurretAreaWeaponAsset asset, TurretView view, AreaView areaView)
        {
            m_Asset       = asset;
            m_View        = view;
            m_AreaView    = areaView;
            m_MaxDistance = m_Asset.MaxDistance;
            m_Damage      = m_Asset.Damage;
            Vector3 position = m_View.transform.position;

            m_NodeCircle = Game.Player.Grid.GetNodesInCircle(position, m_MaxDistance);
            AreaView instantiatedArea = AreaView.Instantiate(m_AreaView, view.transform);

            instantiatedArea.transform.localScale = Vector3.one * (m_MaxDistance * 20f);
        }
Example #21
0
 public override ITurrentWeapon GetWeapon(TurretView view)
 {
     return(new TurretProjectileWeapon(this, view));
 }
Example #22
0
 public abstract ITurrentWeapon GetWeapon(TurretView view);
Example #23
0
 void Awake()
 {
     model     = GetComponent <TurretModel>();
     targeting = GetComponent <TurretTargeting>();
     view      = GetComponent <TurretView>();
 }
Example #24
0
 public override ITurretWeapon GetWeapon(TurretView view)
 {
     return(new TurretLazerWeapon(this, view));
 }
Example #25
0
 public TurretLazerWeapon(TurretLazerWeaponAsset asset, TurretView view)
 {
     m_View         = view;
     m_LineRenderer = Object.Instantiate(asset.LineRendererPrefab, m_View.transform.position, Quaternion.identity);
     m_rangeNodes   = Game.Player.Grid.GetNodesInCircle(m_View.ProjectileOrigin.position, m_MaxDistance);
 }
Example #26
0
 public override ITurretWeapon GetWeapon(TurretView view)
 {
     return(new TurretAreaWeapon(this, view, AreaView));
 }
Example #27
0
 public override ITurretWeapon GetWeapon(TurretView view)
 {
     return(new TurretFieldWeapon(view, this));
 }
Example #28
0
 public TurretFieldWeapon(TurretView view, TurretFieldWeaponAsset asset)
 {
     m_View        = view;
     m_Damage      = asset.DamagePerSecond;
     m_MaxDistance = asset.MaxDistance;
 }
 public override ITurrentWeapon GetWeapon(TurretView view)
 {
     return(new TurretLaserWeapon(this, view, Instantiate(LineRendererPrefab)));
 }
 public override ITurrentWeapon GetWeapon(TurretView view)
 {
     return(new TurretFieldWeapon(this, view));
 }