示例#1
0
    // Use this for initialization
    void Start()
    {
        gameObject.GetComponent <Canvas>().worldCamera = Camera.main;
        towerScript = actualTower.GetComponent <towerScript>();

        radialPanel.transform.position = actualTower.transform.position;

        upgrade = towerScript.upgrade ?
                  towerScript.upgrade.GetComponent <towerScript>().energy
                             : 0;
        downgrade   = towerScript.energy / 2;
        towerScript = actualTower.GetComponent <towerScript>();
        if (towerScript.upgrade)
        {
            upgradeCost.text = "" + upgrade;
            upgradeButton.onClick.AddListener(OnUpgradeClick);
        }
        else
        {
            upgradeCost.text = "";
            upgradeButton.gameObject.SetActive(false);
        }
        downgradeCost.text = "" + downgrade;
        downgradeButton.onClick.AddListener(OnDowngradeClick);
    }
示例#2
0
    public void PopMenu(GameObject tower)
    {
        if (isPopped)
        {
            CloseMenu();
        }
        selectedTower = tower;
        isPopped      = true;
        menuInstance  = Instantiate(radiusMenu, transform);
        menuInstance.transform.Find("UpgradeButton").gameObject.SetActive(true);
        UpgradeRadius radiusScript = menuInstance.GetComponent <UpgradeRadius>();
        towerScript   towerScript  = tower.GetComponent <towerScript>();

        if (towerScript.upgrade != null)
        {
            towerScript upgradeTowerScript = towerScript.
                                             upgrade.GetComponent <towerScript>();
            radiusScript.energyCost.text = upgradeTowerScript.energy.ToString();
        }
        else
        {
            menuInstance.transform.Find("UpgradeButton").gameObject.SetActive(false);
        }
        radiusScript.energyValue.text = (towerScript.energy / 2).ToString();
        RectTransform menuRectTransform =
            menuInstance.GetComponent <RectTransform>();

        menuRectTransform.position = tower.transform.position;
    }
示例#3
0
    public void setupPowerStation()
    {
        towerObject newTowerObj;

        // Reset conencted tower list
        //towersConnected.Clear(); //doesnt work yet

        GameObject[] towerList = GameObject.FindGameObjectsWithTag("tower");
        foreach (GameObject towerObj in towerList)
        {
            // If the tower is placed and not already powered
            towerScript towerObjCode = towerObj.GetComponent <towerScript>();
            if (towerObjCode.towerPlaced && !towerObjCode.towerPowered)
            {
                // If the tower is within range
                float distanceToEnemy = Vector2.Distance(centerPos, towerObjCode.centerPos);
                if (distanceToEnemy < range)
                {
                    // Store connected tower
                    newTowerObj       = new towerObject();
                    newTowerObj.tower = towerObj;
                    towersConnected.Add(newTowerObj);
                    //Debug.Log("Add(newTowerObj)");
                }
            }
        }
    }
示例#4
0
    public void OnBeginDrag(PointerEventData eventData)
    {
        GuiWeapon tmp = GetComponentInParent <GuiWeapon> ();

        if (tmp && tmp.move)
        {
            isDragable = true;
            current    = gameObject.transform.GetChild(0).gameObject;
            if (range != null)
            {
                range.enabled = true;
            }
            current_script = current.GetComponent <towerScript> ();
            PosS           = transform.position;
        }
        else if (GetComponentInParent <FireBall> () && GetComponentInParent <FireBall> ().move)
        {
            current    = gameObject.transform.GetChild(0).gameObject;
            isDragable = true;
            //GetComponentInParent<FireBall> ().move = false;
            PosS = transform.position;
        }
        else
        {
            isDragable = false;
        }
    }
示例#5
0
 void refreshTS()
 {
     MenuRadial.SetActive(true);
     TS = current.GetComponent <towerScript>();
     if (TS.downgrade != null)
     {
         int cost = TS.downgrade.GetComponent <towerScript>().energy / 2;
         MenuRadial.transform.GetChild(0).GetChild(1).GetChild(1).GetComponent <Text>().text = cost.ToString();
         MenuRadial.transform.GetChild(0).GetChild(1).gameObject.SetActive(true);
     }
     else
     {
         int cost = TS.energy / 2;
         MenuRadial.transform.GetChild(0).GetChild(1).GetChild(1).GetComponent <Text>().text = cost.ToString();
         // MenuRadial.transform.GetChild(0).GetChild(1).GetChild(1).gameObject.SetActive(false);
     }
     if (TS.upgrade != null)
     {
         MenuRadial.transform.GetChild(0).GetChild(0).GetChild(1).GetComponent <Text>().text = TS.upgrade.GetComponent <towerScript>().energy.ToString();
         MenuRadial.transform.GetChild(0).GetChild(0).gameObject.SetActive(true);
     }
     else
     {
         MenuRadial.transform.GetChild(0).GetChild(0).gameObject.SetActive(false);
     }
     MenuRadial.transform.GetChild(0).transform.position = screenPos;
     // Debug.Log("current.transform.position " + current.transform.position);
     // Debug.Log("screenPos " + screenPos);
 }
示例#6
0
    public void buttonActionHandler()
    {
        n++;
        //Debug.Log("Button clicked " + n + " times.");

        if (!buttonPressed)
        {
            buttonPressed = true;
            //uiButton.GetComponentInChildren<Text>().text = "Selected";

            // Grab cursor pos for initial tower
            Ray     ray            = Camera.main.ScreenPointToRay(Input.mousePosition);
            Vector3 cursonPosition = ray.GetPoint(-ray.origin.z / ray.direction.z);

            // Create instance of tower
            GameObject genericTower = (GameObject)Instantiate(towerObject);
            towerInstance = genericTower.GetComponent(typeof(towerScript)) as towerScript;
            towerInstance.init(cursonPosition);

            resetOtherButtons();
        }
        else
        {
            buttonPressed = false;
        }
    }
示例#7
0
    public void DowngradeTower()
    {
        GameObject  tower       = upgradeMenu.selectedTower;
        towerScript towerScript = tower.GetComponent <towerScript>();

        towerScript.DowngradeSelf();
        CloseMenu();
    }
    // Use this for initialization
    void Start()
    {
        spawners = GameObject.FindGameObjectsWithTag("spawner");
        action   = GameObject.Find("RealEnd/ActionButton").GetComponent <ButtonScript> ();
        menu     = GameObject.Find("Menu").GetComponent <MenuScript> ();
        pause    = GameObject.Find("Pause").GetComponent <MenuScript> ();
        end      = GameObject.Find("End").GetComponent <MenuScript> ();
        last     = GameObject.Find("RealEnd").GetComponent <MenuScript> ();
        if (this == pause)
        {
            pause.transform.position += new Vector3(1000, 0, 0);
        }
        else if (this == end)
        {
            end.transform.position += new Vector3(1000, 0, 0);
        }
        else if (this == last)
        {
            last.gameObject.GetComponent <Canvas> ().planeDistance = 0;
        }

        playerHp     = GameObject.Find("MenuPlayer/LifePlayer/Text").GetComponent <Text> ();
        playerEnergy = GameObject.Find("MenuPlayer/EnergyPlayer/Text").GetComponent <Text> ();
        tower0[0]    = GameObject.Find("MenuTowers/CanvasTower1/InfosTower/EnergyTower/Text").GetComponent <Text> ();
        tower0[1]    = GameObject.Find("MenuTowers/CanvasTower1/InfosTower/DamageTower/Text").GetComponent <Text> ();
        tower0[2]    = GameObject.Find("MenuTowers/CanvasTower1/InfosTower/RangeTower/Text").GetComponent <Text> ();
        tower0[3]    = GameObject.Find("MenuTowers/CanvasTower1/InfosTower/WaitTower/Text").GetComponent <Text> ();
        tower1[0]    = GameObject.Find("MenuTowers/CanvasTower2/InfosTower/EnergyTower/Text").GetComponent <Text> ();
        tower1[1]    = GameObject.Find("MenuTowers/CanvasTower2/InfosTower/DamageTower/Text").GetComponent <Text> ();
        tower1[2]    = GameObject.Find("MenuTowers/CanvasTower2/InfosTower/RangeTower/Text").GetComponent <Text> ();
        tower1[3]    = GameObject.Find("MenuTowers/CanvasTower2/InfosTower/WaitTower/Text").GetComponent <Text> ();
        tower2[0]    = GameObject.Find("MenuTowers/CanvasTower0/InfosTower/EnergyTower/Text").GetComponent <Text> ();
        tower2[1]    = GameObject.Find("MenuTowers/CanvasTower0/InfosTower/DamageTower/Text").GetComponent <Text> ();
        tower2[2]    = GameObject.Find("MenuTowers/CanvasTower0/InfosTower/RangeTower/Text").GetComponent <Text> ();
        tower2[3]    = GameObject.Find("MenuTowers/CanvasTower0/InfosTower/WaitTower/Text").GetComponent <Text> ();


        towerScript gat1 = GameObject.Find("gatling_1").GetComponent <towerScript> ();
        towerScript roc1 = GameObject.Find("rocket_1").GetComponent <towerScript> ();
        towerScript can1 = GameObject.Find("canon_1").GetComponent <towerScript> ();


        playerHp.text     = gameManager.gm.playerHp.ToString();
        playerEnergy.text = gameManager.gm.playerEnergy.ToString();
        tower0[0].text    = gat1.energy.ToString();
        tower0[1].text    = gat1.damage.ToString();
        tower0[2].text    = gat1.range.ToString();
        tower0[3].text    = gat1.fireRate.ToString();
        tower1[0].text    = roc1.energy.ToString();
        tower1[1].text    = roc1.damage.ToString();
        tower1[2].text    = roc1.range.ToString();
        tower1[3].text    = roc1.fireRate.ToString();
        tower2[0].text    = can1.energy.ToString();
        tower2[1].text    = can1.damage.ToString();
        tower2[2].text    = can1.range.ToString();
        tower2[3].text    = can1.fireRate.ToString();
    }
示例#9
0
    void PickTarget()
    {
        towerScript closestTower = get_tower();

        if (closestTower != null)
        {
            Target = closestTower.transform;
        }
    }
示例#10
0
    private void Start()
    {
        towerScript towerScript = tower.GetComponent <towerScript>();

        towerCost      = towerScript.energy;
        spriteRenderer = GetComponent <SpriteRenderer>();
        print(rangeCircle.localScale);
        rangeCircle.localScale *= towerScript.range / 2;
    }
示例#11
0
    public void UpgradeTower()
    {
        GameObject  tower       = upgradeMenu.selectedTower;
        towerScript towerScript = tower.GetComponent <towerScript>();

        if (towerScript.CanUpgrade())
        {
            towerScript.UpgradeSelf();
            CloseMenu();
        }
    }
示例#12
0
 // Use this for initialization
 void Start()
 {
     move       = true;
     bkp_energy = gM_obj.playerEnergy;
     logo       = GetComponentInChildren <Image> ();
     ToweClass  = GetComponentInChildren <towerScript> ();
     energy.GetComponent <Text>().text = ToweClass.energy.ToString();
     damage.GetComponent <Text>().text = ToweClass.damage.ToString();
     dps.GetComponent <Text>().text    = ToweClass.fireRate.ToString();
     range.GetComponent <Text>().text  = ToweClass.range.ToString();
 }
示例#13
0
    // targets tower
    towerScript get_tower()
    {
        towerScript result           = null;
        float       closest_distance = 50000000;
        Vector3     myposition       = transform.position;

        foreach (towerScript tower in towerScript.AllTowers)
        {
            bool opponettower      = true;
            bool toweronplayerteam = tower.m_teamAllegiance == Allegiance.BLUE;
            bool toweronenemyteam  = tower.m_teamAllegiance == Allegiance.RED;
            //tells mionion if on tower team and targets that tower
            if (toweronplayerteam)
            {
                if (miniononplayerteam)
                {
                    opponettower = false;
                }
                else
                {
                    opponettower = true;
                }
            }
            else if (toweronenemyteam)
            {
                if (miniononplayerteam)
                {
                    opponettower = true;
                }
                else
                {
                    opponettower = false;
                }
            }
            else
            {
                opponettower = true;
            }


            if (opponettower == true)
            {
                Vector3 towerpos = tower.transform.position;
                float   distance = Vector3.Distance(myposition, towerpos);
                if (distance < closest_distance)
                {
                    closest_distance = distance;
                    result           = tower;
                }
            }
        }
        return(result);
    }
示例#14
0
    void Start()
    {
        gameManager = GameObject.Find("GameManager")
                      .GetComponent <gameManager>();
        towerScript = tower.GetComponent <towerScript>();

        // Tower stats
        damage.text   = "" + towerScript.damage;
        price.text    = "" + towerScript.energy;
        fireRate.text = "" + towerScript.fireRate;
        range.text    = "" + towerScript.range;
    }
示例#15
0
    public void addTower(gameManager playerInfo, GameObject spawn)
    {
        if (!tower)
        {
            towerScript towerInfo = spawn.GetComponent <towerScript>();

            if (playerInfo.playerEnergy - towerInfo.energy >= 0)
            {
                tower = (GameObject)GameObject.Instantiate(spawn, transform.position, Quaternion.identity);
                playerInfo.playerEnergy -= towerInfo.energy;
            }
        }
    }
示例#16
0
    public void OnEndDrag(PointerEventData eventData)
    {
        int          i = 0;
        RaycastHit2D bkp;

        if (isDragable)
        {
            Ray            ray  = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit2D[] hits = Physics2D.RaycastAll(ray.origin, ray.direction, Mathf.Infinity);
            foreach (RaycastHit2D hit in hits)
            {
                if (hit.collider != null)
                {
                    Debug.Log(hit.collider.tag);
                    if (hit.collider.tag == "empty")
                    {
                        bkp = hit;
                        i++;
                    }
                    if (hit.collider.tag == "tower")
                    {
                        i--;
                    }
                    if (current_script == null && current)
                    {
                        GetComponentInParent <FireBall> ().move = false;
                        current.transform.position = new Vector3(0, 0, 0);
                        GameObject tp = Instantiate(current, hits[0].collider.gameObject.transform.position, gameObject.transform.rotation) as GameObject;
                        tp.SetActive(true);
                        current            = null;
                        transform.position = PosS;
                        return;
                    }
                }
            }
            if (i == 1 && current_script && gM_obj.playerEnergy >= current_script.energy)
            {
                gM_obj.playerEnergy -= current_script.energy;
                if (range != null)
                {
                    range.enabled = false;
                }
                current.transform.position = new Vector3(0, 0, 0);
                Instantiate(current, bkp.collider.gameObject.transform.position, gameObject.transform.rotation);
            }

            current            = null;
            current_script     = null;
            transform.position = PosS;
        }
    }
示例#17
0
 private void computeTowerData()
 {
     towerData = tower.GetComponent <towerScript>();
     if (towerData.upgrade != null)
     {
         upgradeCost = towerData.upgrade.GetComponent <towerScript>().energy;
     }
     else
     {
         upgradeCost = 0;
     }
     sellText.text    = towerData.energy.ToString();
     upgradeText.text = upgradeCost > 0 ? upgradeCost.ToString() : "NONE";
 }
示例#18
0
    void Start()
    {
        downBarManagerUI       = downBarUI.GetComponent <ManagerUI>();
        itemUITowerIcon        = towerIcon.GetComponent <ItemUI>();
        towerScriptTowerPrefab = itemUITowerIcon.towerPrefab.GetComponent <towerScript>();
        damageText.text        = towerScriptTowerPrefab.damage.ToString();
        rangeText.text         = towerScriptTowerPrefab.range.ToString();
        energyText.text        = towerScriptTowerPrefab.energy.ToString();
        waitText.text          = towerScriptTowerPrefab.fireRate.ToString();

        /*if (downBarManagerUI.canDownEnergy(towerScriptTowerPrefab.energy))
         *  isCanDownEnergy = true;*/

        //Debug.Log("tettttt :"+towerScriptTowerPrefab.damage);
    }
示例#19
0
 void ShootRayAndPositionMenu()
 {
     RaycastHit2D[] hits = Physics2D.RaycastAll(shootVec, Vector2.zero);
     foreach (RaycastHit2D hit in hits)
     {
         if (hit && hit.collider.gameObject.CompareTag("tower") && hit.collider.gameObject.transform.parent.gameObject.GetComponent <towerScript>())
         {
             towerObj = hit.collider.gameObject.transform.parent.gameObject;
             tower    = towerObj.GetComponent <towerScript>();
             panelRadialMenu.gameObject.transform.position = hit.collider.gameObject.transform.position;
             SetupMenu();
             return;
         }
     }
     panelRadialMenu.gameObject.SetActive(false);
 }
示例#20
0
    public bool placeBaseFinal()
    {
        // Check to see if selected cell has a tower already built at that location
        GameObject[] towerList = GameObject.FindGameObjectsWithTag("tower");
        foreach (GameObject towerObj in towerList)
        {
            towerScript towerObjCode = towerObj.GetComponent <towerScript>();
            if ((towerObjCode.currentCell == currentCell) && (towerObjCode.towerPlaced))
            {
                // Replace existing tower tile
                //Debug.Log(prevTile.name);
                prevTile = CustomTile.CreateCustomTile(prevTileSprite);
                towerLevelMap.SetTile(currentCell, prevTile);
                return(false);
            }
        }

        // Do the same check for power stations



        // Only place tower if we have the coin
        Text coinValue     = GameObject.Find("coinValue").GetComponent <Text>();
        int  coinRemaining = (int.Parse(coinValue.text) - cost);

        if (coinRemaining > 0)
        {
            coinValue.text = coinRemaining.ToString();
        }
        else
        {
            return(false);
        }

        // Flag that the tower has been placed
        stationPlaced = true;

        // remove the range marker
        stationRangeMarkerVisible = false;

        // Tell path generator to update path if the tower is placed on the path
        GameObject.Find("pathGenerator").GetComponent <pathGeneratorScript>().newTowerLocation(currentCell);

        return(true);
    }
示例#21
0
    public void UpdateTowerData(towerScript towerObj)
    {
        this.towerObj = towerObj;

        // Update text values with data from tower object
        towerName.text   = towerObj.towerName;
        damageValue.text = towerObj.towerDamage.ToString();
        speedValue.text  = towerObj.towerSpeed.ToString();
        rangeValue.text  = towerObj.towerRange.ToString();
        levelValue.text  = towerObj.towerLevel.ToString();

        if (towerObj.towerPowered)
        {
            damageValuePowered.text = "+" + towerObj.towerPoweredDamageBoost.ToString();
            speedValuePowered.text  = "-" + towerObj.towerPoweredSpeedBoost.ToString();
            rangeValuePowered.text  = "---";
        }

        upgradeCostValue.text = towerObj.towerUpgradeCost.ToString();
    }
示例#22
0
    // Use this for initialization
    void Start()
    {
        if (!towerPrefab)
        {
            return;
        }
        towerScript tower = towerPrefab.GetComponent <towerScript>();

        energy.text   = tower.energy.ToString();
        damage.text   = tower.damage.ToString();
        range.text    = tower.range.ToString();
        fireRate.text = tower.fireRate.ToString();
        if (tower.type == towerScript.Type.canon)
        {
            flyImage.sprite = noFly;
        }
        else
        {
            flyImage.sprite = fly;
        }
        towerImage.sprite = towerSprite;
    }
示例#23
0
    void PlaceBlock(Ray ray, VoxelType type)
    {
        if (type != VoxelType.Strong && type != VoxelType.Weak)
        {
            return;
        }
        RaycastHit hitInfo;

        if (Physics.Raycast(ray, out hitInfo, ReachDistance, ReachMask))
        {
            if (hitInfo.collider is BoxCollider)
            {
                Voxel voxel = VoxelWorld.Inst.GetVoxelFromCollider(hitInfo.collider as BoxCollider);
                if (voxel != null)
                {
                    float   threshold = 0.1f;
                    IntVec3 offset    = new IntVec3(0, 0, 0);
                    if (hitInfo.normal.y > threshold)
                    {
                        offset.Y = 1;
                    }
                    else if (hitInfo.normal.x > threshold)
                    {
                        offset.X = 1;
                    }
                    else if (hitInfo.normal.z > threshold)
                    {
                        offset.Z = 1;
                    }
                    else if (hitInfo.normal.y < -threshold)
                    {
                        offset.Y = -1;
                    }
                    else if (hitInfo.normal.x < -threshold)
                    {
                        offset.X = -1;
                    }
                    else if (hitInfo.normal.z < -threshold)
                    {
                        offset.Z = -1;
                    }
                    IntVec3 placePos = voxel.Position.Offset(offset);
                    if (VoxelWorld.Inst.IsVoxelWorldIndexValid(placePos.X, placePos.Y, placePos.Z))
                    {
                        Voxel   placeVoxel = VoxelWorld.Inst.GetVoxel(placePos);
                        Vector3 VoxelPos   = new Vector3(placeVoxel.Position.X, placeVoxel.Position.Y, placeVoxel.Position.Z);
                        if (placeVoxel.TypeDef.Type == VoxelType.Air)
                        {
                            towerScript[] towers = GameObject.FindObjectsOfType <towerScript>();
                            for (int i = 0; i < towers.Length; i++)
                            {
                                towerScript tower           = towers[i];
                                float       distanceToTower = (tower.transform.position - VoxelPos).magnitude;
                                if (distanceToTower < TowerBufferDist)
                                {
                                    return;
                                }
                            }
                            if (type == VoxelType.Strong)
                            {
                                if (Energy >= StrongCost)
                                {
                                    placeVoxel.SetType(type);
                                    VoxelWorld.Inst.Refresh();
                                    PlayPlaceSound();
                                    Energy -= StrongCost;
                                }
                            }
                            else
                            {
                                if (Energy >= WeakCost)
                                {
                                    placeVoxel.SetType(type);
                                    VoxelWorld.Inst.Refresh();
                                    PlayPlaceSound();
                                    Energy -= WeakCost;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
示例#24
0
    // Handles logic to launch submenuscript. If the user selects a tile, we check to see
    // if a tower exists at that tile and enable the menu.
    void Update()
    {
        Vector2       localMousePosition;
        RectTransform rt;

        if (Input.GetMouseButtonDown(0))
        {
            // Hide menu anytime we click elsewhere
            if (towerMenuInstance.menuVisible)
            {
                localMousePosition = towerMenuInstance.transform.InverseTransformPoint(Input.mousePosition);
                rt = towerMenu.GetComponent(typeof(RectTransform)) as RectTransform;
                if (!rt.rect.Contains(localMousePosition))
                {
                    //Debug.Log("Hide sub menu.");
                    towerMenuInstance.hideMenu();

                    if (currentSelectedTower != null)
                    {
                        // Hide range circle
                        currentSelectedTower.towerRangeMarkerVisible = false;

                        currentSelectedTower = null;
                    }
                }

                // Break so we do not relocate the menu until use has clicked elsewhere
                return;
            }

            if (stationMenuInstance.menuVisible)
            {
                localMousePosition = stationMenuInstance.transform.InverseTransformPoint(Input.mousePosition);
                rt = powerStationMenu.GetComponent(typeof(RectTransform)) as RectTransform;
                if (!rt.rect.Contains(localMousePosition))
                {
                    //Debug.Log("Hide sub menu.");
                    stationMenuInstance.hideMenu();

                    //if (currentSelectedTower != null)
                    //{
                    // Hide range circle
                    //currentSelectedTower.towerRangeMarkerVisible = false;

                    //currentSelectedTower = null;
                    //}
                }

                // Break so we do not relocate the menu until use has clicked elsewhere
                return;
            }

            Ray        ray            = Camera.main.ScreenPointToRay(Input.mousePosition);
            Vector3    cursonPosition = ray.GetPoint(-ray.origin.z / ray.direction.z);
            Vector3Int cellSelected   = towerLevelMap.WorldToCell(cursonPosition);

            // Check to see if selected cell has a tower built at that location
            GameObject[] towerList = GameObject.FindGameObjectsWithTag("tower");
            foreach (GameObject towerObj in towerList)
            {
                towerScript towerObjCode = towerObj.GetComponent <towerScript>();
                if (towerObjCode == null)
                {
                    continue;
                }

                if (towerObjCode.currentCell == cellSelected)
                {
                    if (towerObjCode.towerBuildComplete)
                    {
                        //Debug.Log("Show sub menu.");
                        currentSelectedTower = towerObjCode;

                        // Update menu data
                        towerMenuInstance.UpdateTowerData(towerObjCode);
                        towerMenuInstance.showMenu();

                        // Move menu to selected tower
                        Vector3 newMenuPos = Camera.main.WorldToScreenPoint(towerLevelMap.GetCellCenterWorld(cellSelected));
                        newMenuPos.x += 120;
                        newMenuPos.y += 40;
                        towerMenuInstance.transform.position = newMenuPos;

                        // Show range circle
                        towerObjCode.towerRangeMarkerVisible = true;
                    }
                }
            }

            // Check to see if selected cell has a power station built at that location
            GameObject[] stationList = GameObject.FindGameObjectsWithTag("station");
            foreach (GameObject powerStationObj in stationList)
            {
                powerStationScript powerStationObjCode = powerStationObj.GetComponent <powerStationScript>();
                if (powerStationObjCode == null)
                {
                    continue;
                }

                if (powerStationObjCode.currentCell == cellSelected)
                {
                    if (powerStationObjCode.stationRunning)
                    {
                        //Debug.Log("Show sub menu.");
                        //currentSelectedTower = towerObjCode;

                        // Update menu data
                        //towerMenuInstance.UpdateTowerData(towerObjCode);
                        stationMenuInstance.showMenu();

                        // Move menu to selected tower
                        Vector3 newMenuPos = Camera.main.WorldToScreenPoint(towerLevelMap.GetCellCenterWorld(cellSelected));
                        newMenuPos.x += 120;
                        newMenuPos.y += 40;
                        stationMenuInstance.transform.position = newMenuPos;

                        // Show range circle
                        //towerObjCode.towerRangeMarkerVisible = true;
                    }
                }
            }
        }
    }
    //    public void moveImage () {
    //    }
    void HitGameObject()
    {
        if (Input.GetMouseButton (0)) {
            if (!startDrag) {
                getCollider ();
            } else {
                currentPos = Camera.main.ScreenToWorldPoint (Input.mousePosition);
                currentPos.z = 0;
                image.gameObject.transform.position = currentPos;
            }
        } else if (Input.GetMouseButtonUp (0) && startDrag) {
            Debug.Log (image.gameObject.name);

            startDrag = false;
            Debug.Log (weapon.type);
            //Debug.Log (weapon.damage);
            //Debug.Log (weapon.range);

            clone = (towerScript)Instantiate (weapon, currentPos, Quaternion.identity);
            //Debug.Log ("weapon dragged");
            image.gameObject.transform.position = initialPos;
        }
    }
示例#26
0
    void Update()
    {
        PickTarget();

        //RotateView();
        Vector3 targetPos = Target != null ? Target.position : Vector3.zero;

        TurnTowardTarget(targetPos);

        towerScript closesttower = get_tower();

        if (closesttower != null)
        {
            //distance to tower that would destroy sheep
            float closesttower_distance = (closesttower.transform.position - this.transform.position).magnitude;

            if (closesttower_distance < 3)
            {
                GameObject.Destroy(this.gameObject);
                closesttower.towerHasBeenAttacked(this);
            }
        }

        // the jump state needs to read here to make sure it is not missed
        if (!m_Jump)
        {
            m_Jump = true;
        }

        if (!m_PreviouslyGrounded && m_CharacterController.isGrounded)
        {
            //StartCoroutine(m_JumpBob.DoBobCycle());
            //PlayLandingSound();
            m_MoveDir.y = 0f;
            m_Jumping   = false;
        }
        if (!m_CharacterController.isGrounded && !m_Jumping && m_PreviouslyGrounded)
        {
            m_MoveDir.y = 0f;
        }

        m_PreviouslyGrounded = m_CharacterController.isGrounded;

        // Optionally kill minions if enough time has passed
        if (enableDeathTimer)
        {
            totalLifeTime -= Time.deltaTime;

            if (totalLifeTime <= 0.0f)
            {
                GameObject.Destroy(this.gameObject);
                return;
            }
        }

        // Hack fix for minions falling out of the world, kill them
        if (this.transform.position.y < 0)
        {
            GameObject.Destroy(this.gameObject);
        }
    }
 /// <summary>
 /// Start is called on the frame when a script is enabled just before
 /// any of the Update methods is called the first time.
 /// </summary>
 void Start()
 {
     towerBehaviour  = tower.GetComponent <towerScript>();
     towerInfos.text = "Cost: " + towerBehaviour.energy + "\nDamages: " + towerBehaviour.damage +
                       "\nFire Rate: " + towerBehaviour.fireRate + "\nRange: " + towerBehaviour.range;
 }