public void ChangeText(int id)
    {
        TurretBase TurretScript = BuildManager.instance.standardTurretPrefab.GetComponent <TurretBase>();

        if (id == 0)
        {
            TurretTextBox.text = "DAMAGE: " + "\nFIRERATE: " + TurretScript.fireRate.ToString() + "\nRANGE: " + TurretScript.range.ToString();
        }
    }
Beispiel #2
0
 public TurretBase Teleport(TurretBase currentBase)
 {
     if (bases != null)
     {
         List <TurretBase> basesWithoutCurrent = bases.Where(val => currentBase != val).ToList();
         TurretBase        newBase             = basesWithoutCurrent[Random.Range(0, basesWithoutCurrent.Count)];
         return(newBase);
     }
     return(null);
 }
    public Machinegun(int x, int y)
    {
        Turret.transform.position = new Vector2(x, y);

        TurretBase.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("TurretBase");
        TurretGun.GetComponent <SpriteRenderer>().sprite  = Resources.Load <Sprite>("TurretGun");

        Cost = 70;
        TurretGun.AddComponent <MachinegunScript>();
    }
Beispiel #4
0
    private void BuildTower()
    {
        GameObject turret     = GetTower();
        TurretBase turretBase = turret.GetComponent <TurretBase>();

        turretBase.SetHealth(GetTurretHealth());
        //turretBase.SetDamage(GetTurretDamage());
        Debug.Log("Uncomment olcak yer");
        //turretBase.SetFireRate(GetTurretFireRate(turretBase.GetFireRate())); uncomment olcak
        turret.transform.position = GetTurretPosition().position;
        turret.SetActive(true);
        currentTowerCount++;
    }
    private void Awake()
    {
        parent       = GetComponentInParent <TurretBase>();
        cluster      = GetComponentInParent <TurretCluster>();
        shield       = GetComponentInChildren <Shield>();
        bodyCollider = GetComponent <CapsuleCollider>();
        shooter      = GetComponentInChildren <TurretShooter>();

        sparks.gameObject.SetActive(false);

        disabler = GetComponent <Disabler>();
        disabler.OnDisableEvent += DisableTeleport;
        disabler.OnEnableEvent  += EnableTeleport;
    }
 int SetControll(GameObject takeObject)
 {
     if (takeObject != null) {
         moveObject = takeObject;
         if (takeObject.name.Contains("Tower")) {
             turretScript = moveObject.GetComponent<TurretBase>();
             turretScript.takenOver = true;
             return 1;
         } else if (takeObject.name.Contains("Cat")) {
             unitScript = moveObject.GetComponent<UnitBase>();
             unitScript.takenOver = true; moveSpeed = unitScript.moveSpeed;
             return 2;
         } else return 0;
     } else return 0;
 }
    public void Teleport()
    {
        TurretBase newParent = cluster.Teleport(parent);

        if (parent != null)
        {
            parent.PlayParticles();
        }
        if (newParent != null)
        {
            parent                  = newParent;
            transform.parent        = newParent.transform;
            transform.localPosition = Vector3.zero;
            transform.localRotation = Quaternion.identity;
        }
    }
Beispiel #8
0
    public Slowtower(int x, int y)
    {
        Turret.name  = "SlowTower";
        Turret.layer = LayerMask.NameToLayer("Tower");
        Turret.transform.position = new Vector2(x, y);

        TurretGun.AddComponent <CircleCollider2D>().isTrigger = true;
        TurretGun.GetComponent <CircleCollider2D>().radius    = 2f;

        Debug.Log(LayerMask.NameToLayer("Slowarea"));
        TurretGun.layer = LayerMask.NameToLayer("Slowarea");
        TurretBase.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("TurretBase");
        TurretGun.GetComponent <SpriteRenderer>().sprite  = Resources.Load <Sprite>("Slowturret");

        Cost = 100;
        TurretGun.AddComponent <SlowtowerScript>();
    }
Beispiel #9
0
    public Laserbeam(int x, int y)
    {
        Turret.name    = "Laserbeam";
        TurretGun.name = "Laserbeam";

        Turret.transform.position = new Vector2(x, y);

        TurretGun.AddComponent <LineRenderer>().material   = Resources.Load <Material>("laser");
        TurretGun.GetComponent <LineRenderer>().startWidth = 0.06f;
        TurretGun.GetComponent <LineRenderer>().endWidth   = 0.06f;
        TurretGun.GetComponent <LineRenderer>().startColor = Color.white;
        TurretGun.GetComponent <LineRenderer>().endColor   = Color.cyan;

        TurretBase.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("TurretBase");
        TurretGun.GetComponent <SpriteRenderer>().sprite  = Resources.Load <Sprite>("Laserbeam");

        Cost = 70;
        TurretGun.AddComponent <LaserbeamScript>();
    }
Beispiel #10
0
    void OnMouseDown()
    {
        if (!EventSystem.current.IsPointerOverGameObject())
        {
            GameObject turretToBuild = buildManager.getTurretToBuild();
            if (turret != null)
            {
                buildManager.selectNode(this);
                return;
            }
            else if (turretToBuild == null)
            {
                buildManager.DeselectNode();
                return;
            }

            TurretBase turretScript = turretToBuild.GetComponent <TurretBase>();
            if (turretToBuild != null && turretScript != null && GameMaster.goldamount >= turretScript.cost)
            {
                if (buildManager.getTurretToBuild() == null)
                {
                    return;
                }

                if (!buildManager.CanBuild)
                {
                    return;
                }

                turret = (GameObject)Instantiate(turretToBuild, new Vector3(transform.position.x, transform.position.y, -1), transform.rotation);
                gameMaster.GetComponent <GameMaster>().goldupdate(-turretScript.cost);
            }
        }
        if (Input.GetMouseButton(1))
        {
            buildManager.setTurretToBuild(null);
            rend.material.color = startColor;
        }
    }
Beispiel #11
0
        public void InstallTurret(TurretItem TurretItem, ActorData ship)
        {
            if (turret != null)
            {
                //theres a turret here allready uninstall it
                UninstallTurret(ship);
            }
            if (TurretItem.Size != slotSize)
            {
                Debug.Log("Cant install, wrong size");
                return;
            }
            if (TurretItem.name == spesifficType.ToString() || spesifficType == SpesifficType.Universal)
            {
                Debug.Log("Can install");
                this.turret = TurretItem;

                new TurretEvents().TurretInstallSuccsessEvent(TurretItem, ship);

                if (TurretItem is WeaponTurret)
                {
                    GameObject g = Instantiate(Resources.Load("Weapons/TurretBaseObjects/WeaponTurretObject") as GameObject, transform);
                    g.GetComponent <WeaponTurretHandler>().InstallTurret(TurretItem as WeaponTurret);
                    turretObj = g.GetComponent <WeaponTurretHandler>();
                }

                if (TurretItem is MiningTurret)
                {
                    GameObject g = Instantiate(Resources.Load("Weapons/TurretBaseObjects/MiningTurretObject") as GameObject, transform);
                    g.GetComponent <MiningTurretHandler>().InstallTurret(TurretItem as MiningTurret);
                    turretObj = g.GetComponent <MiningTurretHandler>();
                }
            }
            else
            {
                Debug.Log("Cant install: " + TurretItem.name + " On Turret slot type: " + spesifficType.ToString());
            }
        }
    // Start is called before the first frame update
    void Start()
    {
        Cost = 100f;
        SetStats(10, TurretType.BUFF);
        Collider[] hitColliders = Physics.OverlapSphere(transform.position, 5);
        int        i            = 0;

        while (i < hitColliders.Length)
        {
            if (hitColliders[i].CompareTag("Turret") && hitColliders[i].gameObject != gameObject)
            {
                affectedTurrets.Add(hitColliders[i].gameObject);
            }

            i++;
        }

        foreach (GameObject turret in affectedTurrets)
        {
            TurretBase t = turret.GetComponent <TurretBase>();
            t.damage = t.damage * 1.5f;
        }
    }
Beispiel #13
0
        internal void OnAddedToSceneTasks()
        {
            try {
                if (Ai.MarkedForClose)
                {
                    Log.Line($"OnAddedToSceneTasks and AI MarkedForClose - Subtype:{MyCube.BlockDefinition.Id.SubtypeName} - grid:{MyCube.CubeGrid.DebugName} - CubeMarked:{MyCube.MarkedForClose}({Entity?.MarkedForClose}) - GridMarked:{MyCube.CubeGrid.MarkedForClose}({Entity?.GetTopMostParent()?.MarkedForClose}) - GridMatch:{MyCube.CubeGrid == Ai.MyGrid} - AiContainsMe:{Ai.WeaponBase.ContainsKey(MyCube)} - MyGridInAi:{Ai.Session.GridToMasterAi.ContainsKey(MyCube.CubeGrid)}[{Ai.Session.GridTargetingAIs.ContainsKey(MyCube.CubeGrid)}]");
                }
                Ai.UpdatePowerSources = true;
                RegisterEvents();
                if (!Ai.GridInit)
                {
                    Ai.GridInit = true;
                    var fatList = Session.GridToInfoMap[MyCube.CubeGrid].MyCubeBocks;

                    for (int i = 0; i < fatList.Count; i++)
                    {
                        var cubeBlock = fatList[i];
                        if (cubeBlock is MyBatteryBlock || cubeBlock.HasInventory)
                        {
                            Ai.FatBlockAdded(cubeBlock);
                        }
                    }

                    SubGridInit();
                }

                var maxTrajectory = 0d;

                for (int i = 0; i < Platform.Weapons.Length; i++)
                {
                    var weapon = Platform.Weapons[i];
                    weapon.InitTracking();

                    double weaponMaxRange;
                    DpsAndHeatInit(weapon, out weaponMaxRange);

                    if (maxTrajectory < weaponMaxRange)
                    {
                        maxTrajectory = weaponMaxRange;
                    }

                    if (weapon.Ammo.CurrentAmmo > weapon.ActiveAmmoDef.AmmoDef.Const.MagazineSize)
                    {
                        weapon.Ammo.CurrentAmmo = weapon.ActiveAmmoDef.AmmoDef.Const.MagazineSize;
                    }

                    if (Session.IsServer && weapon.TrackTarget)
                    {
                        Session.AcqManager.Monitor(weapon.Acquire);
                    }
                }

                if (maxTrajectory + Ai.MyGrid.PositionComp.LocalVolume.Radius > Ai.MaxTargetingRange)
                {
                    Ai.MaxTargetingRange    = maxTrajectory + Ai.MyGrid.PositionComp.LocalVolume.Radius;
                    Ai.MaxTargetingRangeSqr = Ai.MaxTargetingRange * Ai.MaxTargetingRange;
                }

                Ai.OptimalDps   += PeakDps;
                Ai.EffectiveDps += EffectiveDps;


                if (!Ai.WeaponBase.TryAdd(MyCube, this))
                {
                    Log.Line($"failed to add cube to gridAi");
                }

                Ai.CompChange(true, this);

                Ai.IsStatic = Ai.MyGrid.Physics?.IsStatic ?? false;
                Ai.Construct.Refresh(Ai, Constructs.RefreshCaller.Init);

                if (!FunctionalBlock.Enabled)
                {
                    for (int i = 0; i < Platform.Weapons.Length; i++)
                    {
                        Session.FutureEvents.Schedule(Platform.Weapons[i].DelayedStart, null, 1);
                    }
                }

                TurretBase?.SetTarget(Vector3D.MaxValue);

                Status = !IsWorking ? Start.Starting : Start.ReInit;
            }
            catch (Exception ex) { Log.Line($"Exception in OnAddedToSceneTasks: {ex} AiNull:{Ai == null} - SessionNull:{Session == null} EntNull{Entity == null} MyCubeNull:{MyCube?.CubeGrid == null}"); }
        }
Beispiel #14
0
        protected override void Start()
        {
            base.Start();

            _turretBase = GetComponentInChildren <TurretBase>();
        }
Beispiel #15
0
 public void Launch(EnemyBase enemy, TurretBase turret)
 {
     target      = enemy;
     this.turret = turret;
 }
Beispiel #16
0
 void Awake()
 {
     lineRenderer = GetComponent <LineRenderer>();
     turret       = GetComponentInParent <TurretBase>();
 }