Exemplo n.º 1
0
        public List <Location> getAllActive()
        {
            String sql = "SP_GETALLLOCATIONACTIVE";

            try
            {
                SqlCommand oCommand = new SqlCommand(sql);
                oCommand.CommandType = System.Data.CommandType.StoredProcedure;
                DataTable       oDataTable   = DAO.getInstance().executeQuery(oCommand);
                List <Location> listLocation = new List <Location>();
                foreach (DataRow oDataRow in oDataTable.Rows)
                {
                    Location     oLocation     = new Location();
                    Headquarters oHeadquarters = new Headquarters();
                    oLocation.code            = Convert.ToInt32(oDataRow[0].ToString());
                    oLocation.building        = oDataRow[1].ToString();
                    oLocation.module          = oDataRow[2].ToString();
                    oHeadquarters.code        = Convert.ToInt32(oDataRow[3].ToString());
                    oHeadquarters.description = oDataRow[4].ToString();
                    oLocation.State           = Convert.ToInt32(oDataRow[5].ToString());
                    oLocation.oHeadquarters   = oHeadquarters;
                    listLocation.Add(oLocation);
                }
                return(listLocation);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally { }
        }
Exemplo n.º 2
0
        public List <Headquarters> getAllActive()
        {
            String sql = "SP_GETALLHEADQUARTERSACTIVE";

            try
            {
                SqlCommand oCommand = new SqlCommand(sql);
                oCommand.CommandType = System.Data.CommandType.StoredProcedure;
                DataTable           oDataTable       = DAO.getInstance().executeQuery(oCommand);
                List <Headquarters> listHeadquarters = new List <Headquarters>();
                foreach (DataRow oDataRow in oDataTable.Rows)
                {
                    Headquarters oHeadquarters = new Headquarters();
                    oHeadquarters.code        = Convert.ToInt32(oDataRow[0].ToString());
                    oHeadquarters.description = oDataRow[1].ToString();
                    oHeadquarters.state       = Convert.ToInt32(oDataRow[2].ToString());
                    listHeadquarters.Add(oHeadquarters);
                }
                return(listHeadquarters);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally { }
        }
Exemplo n.º 3
0
        public Headquarters getHeadquarters(Int32 pCode)
        {
            String sql = "SP_GETPHEADQUARTERS";

            try
            {
                SqlCommand oCommand = new SqlCommand(sql);
                oCommand.CommandType = System.Data.CommandType.StoredProcedure;
                oCommand.Parameters.AddWithValue("@ID", pCode);
                DataTable    oDataTable    = DAO.getInstance().executeQuery(oCommand);
                Headquarters oHeadquarters = new Headquarters();
                foreach (DataRow oDataRow in oDataTable.Rows)
                {
                    oHeadquarters.code        = Convert.ToInt32(oDataRow[0].ToString());
                    oHeadquarters.description = oDataRow[1].ToString();
                    oHeadquarters.state       = Convert.ToInt32(oDataRow[2].ToString());
                }
                return(oHeadquarters);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally { }
        }
Exemplo n.º 4
0
        public Location getLocation(Int32 pCode)
        {
            String sql = "SP_GETPLOCATION";

            try
            {
                SqlCommand oCommand = new SqlCommand(sql);
                oCommand.CommandType = System.Data.CommandType.StoredProcedure;
                oCommand.Parameters.AddWithValue("@ID", pCode);
                DataTable    oDataTable    = DAO.getInstance().executeQuery(oCommand);
                Location     oLocation     = new Location();
                Headquarters oHeadquarters = new Headquarters();
                foreach (DataRow oDataRow in oDataTable.Rows)
                {
                    oLocation.code            = Convert.ToInt32(oDataRow[0].ToString());
                    oLocation.building        = oDataRow[1].ToString();
                    oLocation.module          = oDataRow[2].ToString();
                    oHeadquarters.code        = Convert.ToInt32(oDataRow[3].ToString());
                    oHeadquarters.description = oDataRow[4].ToString();
                    oLocation.State           = Convert.ToInt32(oDataRow[5].ToString());
                    oLocation.oHeadquarters   = oHeadquarters;
                }
                return(oLocation);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally { }
        }
Exemplo n.º 5
0
        protected void btnSave_Click(object sender, ImageClickEventArgs e)
        {
            Int32 records = 0;

            if (validateData())
            {
                Entities.Headquarters oHeadquarters = new Headquarters();
                oHeadquarters.code        = Convert.ToInt32(txtCode.Text);
                oHeadquarters.description = txtDescription.Text;
                oHeadquarters.state       = Convert.ToInt32(cboState.SelectedValue);
                if (HeadquartersBLL.getInstance().exists(oHeadquarters.code))
                {
                    records = HeadquartersBLL.getInstance().modify(oHeadquarters);
                }
                else
                {
                    records = HeadquartersBLL.getInstance().insert(oHeadquarters);
                }

                blockControls();
                loadData();

                if (records > 0)
                {
                    lblMessage.Text = "Datos almacenados correctamente";
                }
            }
        }
        public void Army_ReportsNewSoldier()
        {
            var hq   = new Headquarters();
            var army = new Army(hq);

            army.EnlistSoldier(new Soldier("Private Ryan"));

            Assert.NotEqual(default(Guid), army.FrontMan.Id);
        }
Exemplo n.º 7
0
 public ActionResult Edit([Bind(Include = "id_Headquarters,name_Headquarters,Address,State")] Headquarters headquarters)
 {
     if (ModelState.IsValid)
     {
         db.Entry(headquarters).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(headquarters));
 }
Exemplo n.º 8
0
        public ActionResult Create([Bind(Include = "id_Headquarters,name_Headquarters,Address,State")] Headquarters headquarters)
        {
            if (ModelState.IsValid)
            {
                db.Headquarters.Add(headquarters);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(headquarters));
        }
Exemplo n.º 9
0
    private void OnTriggerStay(Collider col)
    {
        Headquarters hq = col.gameObject.GetComponent <Headquarters>();

        if (hq)
        {
            Debug.Log("got to HQ!");
            hq.GetComponent <Entity>().Damage(damage);
            Destroy(this.gameObject);
        }
    }
Exemplo n.º 10
0
 public static void ClassInitialize(TestContext context)
 {
     headquarters = new Headquarters
     {
         HeadquartersId = "headquarters id",
         Country        = "China",
         Province       = "Shanghai",
         City           = "Shanghai",
         Address        = "No. 800 Dongchuan Road"
     };
 }
Exemplo n.º 11
0
    public static void Main(string[] args)
    {
        Inspector    inspector1   = new Inspector("Greg Lestrade");
        Inspector    inspector2   = new Inspector("Sherlock Holmes");
        Headquarters headquarters = new Headquarters();

        inspector1.Subscribe(headquarters);
        inspector2.Subscribe(headquarters);
        headquarters.SendMessage(new Message("Catch Moriarty!"));
        headquarters.EndTransmission();
        Console.ReadKey();
    }
Exemplo n.º 12
0
        // GET: Headquarters/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Headquarters headquarters = db.Headquarters.Find(id);

            if (headquarters == null)
            {
                return(HttpNotFound());
            }
            return(View(headquarters));
        }
        public void AddHeadquarterToList(ObjectId id, string city)
        {
            if (Headquarters == null)
            {
                Headquarters = new SortedSet <BusinessHeadquaters>();
            }
            var headquater = new BusinessHeadquaters
            {
                Id   = id,
                City = city
            };

            Headquarters.Add(headquater);
        }
Exemplo n.º 14
0
        private void PopulateFailingViewer()
        {
            this.IsShowingFailingProjects = true;
            this._projectList             = EntityContentSelector.SelectProject();
            var hqList = EntityContentSelector.SelectHeadquarters();

            foreach (Project p in this._projectList)
            {
                Headquarters hq = hqList.Where(h => h.BuildingName == p.BuildingName).ToList()[0];
                if (p.Budget * 0.10F < hq.Rent)
                {
                    this.ProjectList.Items.Add(p);
                }
            }
        }
Exemplo n.º 15
0
        public List <ClassRoom> getAllActiveBySchedule(int periodId, int programid, Entities.Schedule oSchedule, int[] days)
        {
            String sql = "SP_CLASSROOMBYSCHEDULE";

            try
            {
                SqlCommand oCommand = new SqlCommand(sql);
                oCommand.CommandType = System.Data.CommandType.StoredProcedure;
                oCommand.Parameters.AddWithValue("@period", periodId);
                oCommand.Parameters.AddWithValue("@program", programid);
                oCommand.Parameters.AddWithValue("@inicialHour", oSchedule.startTime);
                oCommand.Parameters.AddWithValue("@finalhour", oSchedule.endTime);
                oCommand.Parameters.AddWithValue("@day1", Convert.ToInt32(days[0]));
                oCommand.Parameters.AddWithValue("@day2", Convert.ToInt32(days[1]));
                oCommand.Parameters.AddWithValue("@day3", Convert.ToInt32(days[2]));
                oCommand.Parameters.AddWithValue("@day4", Convert.ToInt32(days[3]));
                oCommand.Parameters.AddWithValue("@day5", Convert.ToInt32(days[4]));
                oCommand.Parameters.AddWithValue("@day6", Convert.ToInt32(days[5]));
                oCommand.Parameters.AddWithValue("@day7", Convert.ToInt32(days[6]));
                DataTable        oDataTable    = DAO.getInstance().executeQuery(oCommand);
                List <ClassRoom> listClassRoom = new List <ClassRoom>();
                foreach (DataRow oDataRow in oDataTable.Rows)
                {
                    ClassRoom      oClassRoom      = new ClassRoom();
                    Location       oLocation       = new Location();
                    Headquarters   oHeadquarters   = new Headquarters();
                    ClassRoomsType oClassRoomsType = new ClassRoomsType();
                    oClassRoom.code             = Convert.ToInt32(oDataRow[0].ToString());
                    oClassRoom.num_room         = oDataRow[1].ToString();
                    oClassRoomsType.description = oDataRow[2].ToString();
                    oLocation.code             = Convert.ToInt32(oDataRow[3].ToString());
                    oLocation.building         = oDataRow[4].ToString();
                    oLocation.module           = oDataRow[5].ToString();
                    oHeadquarters.description  = oDataRow[6].ToString();
                    oLocation.oHeadquarters    = oHeadquarters;
                    oClassRoom.oClassRoomsType = oClassRoomsType;
                    oClassRoom.oLocation       = oLocation;
                    listClassRoom.Add(oClassRoom);
                }
                return(listClassRoom);
            }
            catch (Exception)
            {
                throw;
            }
            finally { }
        }
Exemplo n.º 16
0
        public List <ClassRoom> getAllByProgram(Int32 pCode)
        {
            String sql = "SP_GETALLCLASSROOMBYPROGRAM";

            try
            {
                SqlCommand oCommand = new SqlCommand(sql);
                oCommand.CommandType = System.Data.CommandType.StoredProcedure;
                oCommand.Parameters.AddWithValue("@PROGRAM_ID", pCode);
                DataTable        oDataTable    = DAO.getInstance().executeQuery(oCommand);
                List <ClassRoom> listClassRoom = new List <ClassRoom>();
                foreach (DataRow oDataRow in oDataTable.Rows)
                {
                    ClassRoom      oClassRoom      = new ClassRoom();
                    Program        oProgram        = new Program();
                    Location       oLocation       = new Location();
                    Headquarters   oHeadquarters   = new Headquarters();
                    ClassRoomsType oClassRoomsType = new ClassRoomsType();
                    oClassRoom.code             = Convert.ToInt32(oDataRow[0].ToString());
                    oClassRoom.num_room         = oDataRow[1].ToString();
                    oClassRoom.size             = Convert.ToInt32(oDataRow[2].ToString());
                    oProgram.code               = Convert.ToInt32(oDataRow[3].ToString());
                    oProgram.name               = oDataRow[4].ToString();
                    oClassRoomsType.code        = Convert.ToInt32(oDataRow[5].ToString());
                    oClassRoomsType.description = oDataRow[6].ToString();
                    oLocation.code              = Convert.ToInt16(oDataRow[7].ToString());
                    oHeadquarters.code          = Convert.ToInt16(oDataRow[8].ToString());
                    oHeadquarters.description   = oDataRow[9].ToString();
                    oLocation.building          = oDataRow[10].ToString();
                    oLocation.module            = oDataRow[11].ToString();
                    oLocation.oHeadquarters     = oHeadquarters;
                    oClassRoom.state            = Convert.ToInt16(oDataRow[12].ToString());
                    oClassRoom.oProgram         = oProgram;
                    oClassRoom.oClassRoomsType  = oClassRoomsType;
                    oClassRoom.oLocation        = oLocation;
                    listClassRoom.Add(oClassRoom);
                }
                return(listClassRoom);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally { }
        }
Exemplo n.º 17
0
        public Int32 modify(Headquarters pHeadquarters)
        {
            String oSql = "SP_MODIFYHEADQUARTERS";

            try
            {
                SqlCommand oCommand = new SqlCommand(oSql);
                oCommand.CommandType = CommandType.StoredProcedure;
                oCommand.Parameters.AddWithValue("@ID", pHeadquarters.code);
                oCommand.Parameters.AddWithValue("@NAME", pHeadquarters.description);
                oCommand.Parameters.AddWithValue("@STATE", pHeadquarters.state);
                return(DAO.getInstance().executeSQL(oCommand));
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally { }
        }
Exemplo n.º 18
0
        public void Army_WarWonGetsNumberOfVictoriesIncreased()
        {
            var winnerHq = new Headquarters();

            var loserHqMock = Substitute.For <IHeadquarters>();

            loserHqMock.ReportEnlistment(Arg.Any <string>()).Returns(Guid.NewGuid());

            var winners = new Army(winnerHq);

            winners.EnlistSoldier(new Soldier("Private Ryan"));

            var losers = new Army(loserHqMock);

            losers.EnlistSoldier(new Soldier("Himmler"));

            winners.Engage(losers);

            winnerHq.NumberOfVictories.Should().Be(1);
        }
Exemplo n.º 19
0
        public void TestSaveData()
        {
            var headquarters = new Headquarters
            {
                HeadquartersId = "",
                Country        = "China",
                Province       = "Shanghai",
                City           = "Shanghai",
                Address        = "No. 800 Dongchuan Road"
            };
            var brand = new Brand
            {
                Id              = "00000000000000000000000000000001",
                BrandName       = "Choless",
                WebSite         = "www.choless.com",
                Headquarters    = headquarters,
                EstablishedTime = new DateTime(2018, 3, 3, 12, 12, 0),
                Description     = "A company to make less choices."
            };

            TestDataLoader.SaveData(brand);
            Assert.Fail();
        }
Exemplo n.º 20
0
        public Order(Village village, string name, int quantity = 1)
        {
            id           = GetId();
            headquarters = new Headquarters();
            timberCamp   = new TimberCamp();
            clayPit      = new ClayPit();
            ironMine     = new IronMine();
            farm         = new Farm();
            warehouse    = new Warehouse();
            rallyPoint   = new RallyPoint();
            barracks     = new Barracks();
            statue       = new Statue();
            wall         = new Wall();
            hospital     = new Hospital();
            market       = new Market();
            tavern       = new Tavern();
            academy      = new Academy();
            hallOfOrders = new HallOfOrders();

            spearman      = new Spearman();
            swordsman     = new Swordsman();
            archer        = new Archer();
            heavyCavalry  = new HeavyCavalry();
            axeFighter    = new AxeFighter();
            lightCavalry  = new LightCavalry();
            mountedArcher = new MountedArcher();
            ram           = new Ram();
            catapult      = new Catapult();


            barracksInfos      = new List <PartialBarracksInfo>();
            farmInfos          = new List <PartialFarmInfo>();
            waitInfos          = new List <PartialWaitInfo>();
            barracksToDateTime = new Dictionary <int, DateTime>();
            stringToEntity     = new Dictionary <string, Entity>()
            {
                { "Headquarters", headquarters },
                { "TimberCamp", timberCamp },
                { "ClayPit", clayPit },
                { "IronMine", ironMine },
                { "Farm", farm },
                { "Warehouse", warehouse },
                { "RallyPoint", rallyPoint },
                { "Barracks", barracks },
                { "Statue", statue },
                { "Wall", wall },
                { "Hospital", hospital },
                { "Market", market },
                { "Tavern", tavern },
                { "Academy", academy },
                { "HallOfOrders", hallOfOrders },

                { "Spearman", spearman },
                { "Swordsman", swordsman },
                { "Archer", archer },
                { "HeavyCavalry", heavyCavalry },
                { "AxeFighter", axeFighter },
                { "LightCavalry", lightCavalry },
                { "MountedArcher", mountedArcher },
                { "Ram", ram },
                { "Catapult", catapult },

                { "init", null }
            };
            barracksToLimit = new Dictionary <int, int>()
            {
                { 1, 5 },
                { 2, 10 },
                { 3, 15 }
            };
            for (int i = 4; i <= 25; i++)
            {
                barracksToLimit.Add(i, int.MaxValue);
            }
            this.name     = name;
            this.quantity = quantity;
            entity        = stringToEntity[name];
            bar           = new OrderBar(this.village = village);
        }
Exemplo n.º 21
0
    private void Update()
    {
        if (!hq)
        {
            Headquarters hqObj = GameObject.FindObjectOfType <Headquarters>();
            if (hqObj)
            {
                hq = hqObj.gameObject;
            }
        }


        if (IsWaveInProgress() && currentWave)
        {
            //Draw the Visual Arrow for the paths
            if (!pathArrowVisual)
            {
                pathArrowVisual = new GameObject("Path Visual");
                LineRenderer lineRederer = pathArrowVisual.AddComponent <LineRenderer>();
                pathArrowVisual.transform.eulerAngles = new Vector3(90, 0, 0);
                lineRederer.material        = new Material(Shader.Find("Diffuse"));
                lineRederer.alignment       = LineAlignment.TransformZ;
                lineRederer.material.color  = Color.blue;
                lineRederer.widthMultiplier = 0.1f;
                Debug.Log(GetPath().ToArray());
                List <Vector3> pathPoints = GetPath();
                lineRederer.positionCount = pathPoints.Count;

                for (int j = 0; j < pathPoints.Count; j++)
                {
                    lineRederer.SetPosition(j, new Vector3(pathPoints[j].x, 0.05f, pathPoints[j].z));
                }
            }
            int i = 0;
            waveTimer += Time.deltaTime;
            foreach (Wave.WaveClump wClump in currentWave.waveClumps)
            {
                if (wClump.activateTime <= waveTimer && activeClumpsFlag[i] == false)
                {
                    Debug.Log("clump incoming");
                    activeClumps.Add(new Wave.WaveClump(wClump.count, wClump.enemy, wClump.timeInterval, wClump.activateTime));
                    activeClumpsFlag[i] = true;
                }
                i++;
            }
            foreach (Wave.WaveClump wClump in activeClumps)
            {
                if (wClump.Tick(Time.deltaTime))
                {
                    Instantiate(wClump.GetEnemy(), spawnPosition.position, Quaternion.identity);
                    waveJustStarted = false;
                }
            }
        }
        else
        {
            if (pathArrowVisual)
            {
                Destroy(pathArrowVisual);
            }
        }
    }
Exemplo n.º 22
0
    private void Update()
    {
        //check if wave started
        waveInProgress = waveManager.IsWaveInProgress();

        //get pause input
        if (Input.GetKeyDown(KeyCode.Escape) && (playerMode != PlayerMode.victory || playerMode != PlayerMode.defeat))
        {
            Pause();
        }
        //check if we are paused
        if (paused)
        {
            playerMode     = PlayerMode.paused;
            Time.timeScale = 0;
        }
        else if (!paused && Time.timeScale == 0)
        {
            playerMode     = PlayerMode.normal;
            Time.timeScale = 1;
        }

        //check if we lost
        if (!hq && playerMode != PlayerMode.placeHQ)
        {
            Time.timeScale = 1;
            playerMode     = PlayerMode.defeat;
        }
        //check if wave in progress
        if (playerMode != PlayerMode.defeat)
        {
            if (waveInProgress)
            {
                playerMode = PlayerMode.waveInProgres;
            }
            else if (playerMode == PlayerMode.waveInProgres)
            {
                playerMode = PlayerMode.normal;
            }
        }
        //check if we won
        if (playerMode != PlayerMode.waveInProgres && waveManager.wavesComplete())
        {
            playerMode = PlayerMode.victory;
        }



        //get mouse position for this frame.
        mousePosNow = Input.mousePosition;


        //get mouse pos once hold
        if (Input.GetMouseButtonDown(1))
        {
            mousePosSinceHeld = Input.mousePosition;
        }

        //normal mode
        //______________________________________________________________________________________________________________________________________
        if (playerMode == PlayerMode.normal)
        {
            if (selectedBuildable)
            {
                SwitchMode(PlayerMode.build);
            }
            else if (selectedEntity)
            {
                SwitchMode(PlayerMode.selected);
            }

            //select building enabled if normal mode or selected mode
            RaycastHit h;
            Ray        r = mainCam.ScreenPointToRay(Input.mousePosition);

            if (Physics.Raycast(r, out h))
            {
                Entity hoveringOverEntity = h.transform.GetComponent <Entity>();

                if (hoveringOverEntity && hoveringOverEntity.GetTeam() == team)
                {
                    if (Input.GetKeyUp(KeyCode.Mouse0))
                    {
                        selectedEntity = hoveringOverEntity.gameObject;
                    }
                }
            }
        }
        //build mode
        //______________________________________________________________________________________________________________________________________
        else if (playerMode == PlayerMode.build)
        {
            if (selectedBuildable == null)
            {
                if (buildableGhostObject)
                {
                    Destroy(buildableGhostObject);
                }

                SwitchMode(PlayerMode.normal);
            }

            //instantiate buildableghost
            if (!buildableGhostObject)
            {
                buildableGhostObject = Instantiate(buildableGhostPrefab);
                buildableGhostObject.transform.localScale = Vector3.one * selectedBuildable.GetComponent <Entity>().GetPlacementSize();
            }

            //get position of mouse on terrain and check if mouse0 is clicked to try and build a Buildable
            if (buildableGhostObject)
            {
                RaycastHit h;
                Ray        r = mainCam.ScreenPointToRay(Input.mousePosition);

                if (Physics.Raycast(r, out h))
                {
                    Vector3 positionOfMouse3D = GetNearestPointOnGridXZ(h.point, 1f) + Vector3.up * buildableGhostObject.transform.localScale.y / 2;
                    buildableGhostObject.transform.position = positionOfMouse3D;

                    if (Input.GetKeyUp(KeyCode.Mouse0))
                    {
                        TryBuild(positionOfMouse3D, buildableGhostObject.GetComponent <BuildableGhost>(), resourceManager, selectedBuildable.GetComponent <Entity>());
                    }
                }
            }

            //exit buildmode on right click
            if (Input.GetKeyUp(KeyCode.Mouse1) && !HasMouseMovedSinceHeldDown())
            {
                selectedBuildable = null;
            }
        }

        //selected mode
        //___________________________________________________________________________________________________________________________________________
        else if (playerMode == PlayerMode.selected)
        {
            if (selectedEntity == null)
            {
                if (selectedIndicator)
                {
                    Destroy(selectedIndicator);
                }
                SwitchMode(PlayerMode.normal);
            }

            else
            {
                if (!selectedIndicator)
                {
                    selectedIndicator = Instantiate(selectedIndicatorPrefab, selectedEntity.transform.position + Vector3.up * 1f, Quaternion.identity);
                }
            }

            //clear selected on right click
            if (Input.GetKeyUp(KeyCode.Mouse1) && !HasMouseMovedSinceHeldDown())
            {
                selectedEntity = null;
            }

            //select building enabled if normal mode or selected mode
            RaycastHit h;
            Ray        r = mainCam.ScreenPointToRay(Input.mousePosition);

            if (Physics.Raycast(r, out h))
            {
                Entity hoveringOverEntity = h.transform.GetComponent <Entity>();

                if (hoveringOverEntity && hoveringOverEntity.GetTeam() == team)
                {
                    if (Input.GetKeyUp(KeyCode.Mouse0))
                    {
                        selectedEntity = hoveringOverEntity.gameObject;
                    }
                }
            }
        }

        //Wave mode
        //___________________________________________________________________________________________________________________________________________
        else if (playerMode == PlayerMode.waveInProgres)
        {
            if (buildableGhostObject)
            {
                Destroy(buildableGhostObject);
            }
        }

        //defeat mode
        //___________________________________________________________________________________________________________________________________________
        else if (playerMode == PlayerMode.defeat)
        {
        }

        //Victory mode
        //___________________________________________________________________________________________________________________________________________
        else if (playerMode == PlayerMode.victory)
        {
        }

        //place HQ mode
        //___________________________________________________________________________________________________________________________________________
        else if (playerMode == PlayerMode.placeHQ)
        {
            selectedBuildable = hqPrefab;

            Headquarters hqObj = GameObject.FindObjectOfType <Headquarters>();
            if (hqObj)
            {
                hq = hqObj.GetComponent <Entity>();
                if (buildableGhostObject)
                {
                    Destroy(buildableGhostObject);
                }
                selectedBuildable = null;
                SwitchMode(PlayerMode.normal);
            }

            //instantiate buildableghost
            if (!buildableGhostObject)
            {
                buildableGhostObject = Instantiate(buildableGhostPrefab);
                buildableGhostObject.transform.localScale = Vector3.one * selectedBuildable.GetComponent <Entity>().GetPlacementSize();
            }

            //get position of mouse on terrain and check if mouse0 is clicked to try and build a Buildable
            if (buildableGhostObject)
            {
                RaycastHit h;
                Ray        r = mainCam.ScreenPointToRay(Input.mousePosition);

                if (Physics.Raycast(r, out h))
                {
                    Vector3 positionOfMouse3D = GetNearestPointOnGridXZ(h.point, 1f) + Vector3.up * buildableGhostObject.transform.localScale.y / 2;
                    buildableGhostObject.transform.position = positionOfMouse3D;

                    if (Input.GetKeyUp(KeyCode.Mouse0))
                    {
                        TryBuild(positionOfMouse3D, buildableGhostObject.GetComponent <BuildableGhost>(), resourceManager, selectedBuildable.GetComponent <Entity>());
                    }
                }
            }
        }

        //get mouse position for next frame.
        mousePosLastFrame = Input.mousePosition;
    }
        public static void LevelUp()
        {
            Headquarters hq = Company.Current.Headquarters;

            hq.SetLevel(hq.Level + 1);
        }