Пример #1
0
    private void Awake()
    {
#if Game
        _instance    = this;
        mGameManager = GameManager.Instance;
        //currentStage = new Stage(10, 5, new int[] { 1,2,3,4,5}, false, 0, 1, 1, true, false);
        currentStage     = mGameManager.currentStage;
        normalModelPanel = mGameManager.uiManager.mUIFacade.currentScenePanelDict[StringManager.NormalModelPanel] as NormalModelPanel;
        normalModelPanel.EnterPanel();
        mapMaker = GetComponent <MapMaker>();
        mapMaker.InitMapMaker();
        mapMaker.LoadMap(currentStage.mBigLevelID, currentStage.mLevelID);
        gameSpeed      = 1;
        coin           = 1000;
        monsterBuilder = new MonsterBuilder();
        towerBuild     = new TowerBuild();

        for (int i = 0; i < currentStage.mTowerIDList.Length; i++)
        {
            GameObject itemGo = mGameManager.GetGameOjectResource(FactoryType.UIFactory, "Btn_TowerBuild");
            itemGo.transform.GetComponent <ButtonTower>().towerID = currentStage.mTowerIDList[i];
            itemGo.transform.SetParent(towerListGo.transform);
            itemGo.transform.localPosition = Vector3.zero;
            itemGo.transform.localScale    = Vector3.one;
        }

        towerPriceDict = new Dictionary <int, int>
        {
            { 1, 100 },
            { 2, 120 },
            { 3, 140 },
            { 4, 160 },
            { 5, 160 },
        };

        contorllers = new RuntimeAnimatorController[12];
        for (int i = 0; i < contorllers.Length; i++)
        {
            contorllers[i] = GetRuntimeAnimatorController("Monster/" + mapMaker.bigLevelID + "/" + (i + 1));
        }
        level = new Level(mapMaker.roundInfoList.Count, mapMaker.roundInfoList);
        //level.HandleRound();
        normalModelPanel.topPage.UpdateCoinText();
        normalModelPanel.topPage.UpdateRoundText();
        isPause = true;
#endif
    }
Пример #2
0
    //Поиск врага
    private void FindEnemy()
    {
        #region Tower
        //Поиск ближайшей вражеской вышки
        var        enemiesTower  = GameObject.FindObjectsOfType <TowerBuild>();
        float      minTower      = FindRadius;
        TowerBuild minEnemyTower = null;

        foreach (var e in enemiesTower)
        {
            float dist = Vector3.Distance(e.transform.position, transform.position);
            if (minTower > dist)
            {
                minTower      = dist;
                minEnemyTower = e;
            }
        }
        #endregion

        #region Build
        var   enemyBuild1   = GameObject.FindObjectsOfType <Basis>();
        float minBuild      = FindRadius;
        Basis minEnemBuild1 = null;

        foreach (var e in enemyBuild1)
        {
            float dist = Vector3.Distance(e.transform.position, transform.position);
            if (minBuild > dist)
            {
                minBuild      = dist;
                minEnemBuild1 = e;
            }
        }
        #endregion

        if (minTower < minBuild)
        {
            enemyTow       = minEnemyTower;
            enemyTawertTmp = true;
        }
        else
        {
            enemyBuild = minEnemBuild1;
            enemyTmp   = true;
        }
    }
Пример #3
0
    void Start()
    {
        timer = 0.0f;
        //towerGun = gameObject.transform.GetChild(0).GetChild(0).gameObject;

        TowerBuilld = GameObject.Find("TowerPlacementController").GetComponent <TowerBuild>();
        dataStorage = GameObject.Find("Player").GetComponent <Datenspeicherung>();
        movement    = GameObject.Find("Player").transform.GetChild(1).GetComponent <PlayerController>();

        costs       = dataStorage.towerCosts2;
        attackSpeed = dataStorage.towerAttackSpeed2;
        range       = dataStorage.towerRange2;
        damage      = dataStorage.towerDamage2;

        sc           = this.gameObject.AddComponent <SphereCollider>();
        sc.isTrigger = true;
        sc.radius    = range;
        sc.enabled   = false;
    }
Пример #4
0
    void SitOnTower()
    {
        TowerBuild tower = work.GetComponent <TowerBuild>(); //создаем локальную башню, чтоб не пришлось по три раза геткомпонить

        onTower            = true;
        transform.position = new Vector2(tower.HunterPosition.position.x, transform.position.y);
        positionY          = tower.HunterPosition.position.y;
        distanceSeeing     = tower.radius;

        if (timerTowerSit > 0)
        {
            timerTowerSit -= Time.deltaTime;
            sit            = false;
            anim.SetBool("sit", false);
        }
        else
        {
            sit = true;
            anim.SetBool("sit", true);
        }
    }
Пример #5
0
 // Start is called before the first frame update
 void Start()
 {
     TowerBuild = GameObject.Find("TowerPlacementController").GetComponent <TowerBuild>();
 }
Пример #6
0
    // Update is called once per frame
    void Update()
    {
        if (startAction != GetComponent <Interact> ().interact)
        {
            startAction = GetComponent <Interact> ().interact;

            if (startAction)
            {
                // do the actions here (switch case is fine)
                switch (tag)
                {
                case "PlayerToggle":
                    Numbers.numPlayers = (Numbers.numPlayers == 1) ? 2 : 1;
                    break;

                case "UpLayerNum":
                    Numbers.numLayers = (Numbers.numLayers >= 50) ? 50 : Numbers.numLayers + 1;
                    break;

                case "DownLayerNum":
                    Numbers.numLayers = (Numbers.numLayers <= 2) ? 2 : Numbers.numLayers - 1;
                    break;

                case "ExitToWindows":
                    if (SceneManager.GetSceneByName("UIScene").isLoaded)
                    {
                        Application.Quit();
                    }
                    break;

                case "StartGame":
                    SceneManager.LoadScene("Scene1");
                    break;

                ///////////////////////////////////////////////////////////////
                case "Reset":
                    TowerBuild.restartTower();
                    break;

                case "MainMenu":
                    SceneManager.LoadScene("UIScene");
                    break;

                case "Undo":
                    GameState.undo();
                    break;

                case "Redo":
                    GameState.redo();
                    break;

                case "Rotate":
                    Transform cam = GameObject.FindGameObjectWithTag("MainCamera").transform;
                    cam.position = new Vector3(cam.position.x, cam.position.y, -1 * cam.position.z);
                    cam.Rotate(0, 180.0f, 0);
                    break;

                case "MoveUp":
                    Transform camera = GameObject.FindGameObjectWithTag("MainCamera").transform;
                    float     upby   = (camera.position.y >= 1.2) ? 0.0f : 0.05f;
                    camera.position = new Vector3(camera.position.x, camera.position.y + upby, camera.position.z);
                    break;

                case "MoveDown":
                    Transform camer  = GameObject.FindGameObjectWithTag("MainCamera").transform;
                    float     downby = (camer.position.y <= 0.25) ? 0.0f : -0.05f;
                    camer.position = new Vector3(camer.position.x, camer.position.y + downby, camer.position.z);
                    break;

                default:
                    //do nothing
                    break;
                }

                // reset startAction and interact for the widget
            }
        }
    }