Example #1
0
    public void CheckMove()
    {
        GameMng.I.mouseRaycast(true);

        if (GameMng.I.hit.collider != null)
        {
            GameMng.I.cleanActList();
            GameMng.I._range.rangeTileReset();  // 범위 타일 위치 초기화
            GameMng.I.distanceOfTiles = Vector2.Distance(GameMng.I.selectedTile._unitObj.transform.position, GameMng.I.targetTile.transform.position);
            if (GameMng.I.hit.collider.tag.Equals("Tile") && GameMng.I.distanceOfTiles <= 1.5f && Tile.isEmptyTile(GameMng.I.targetTile))
            {
                act = ACTIVITY.ACTING;
                reversalUnit(GameMng.I.selectedTile._unitObj.transform, GameMng.I.targetTile.transform);
                GameMng.I.selectedTile._unitObj._anim.SetTrigger("isRunning");
                NetworkMng.getInstance.SendMsg(string.Format("MOVE_UNIT:{0}:{1}:{2}:{3}", GameMng.I.selectedTile.PosX, GameMng.I.selectedTile.PosY, GameMng.I.targetTile.PosX, GameMng.I.targetTile.PosY));
                StartCoroutine("Moving");
            }
            else                                     // 범위가 아닌 다른 곳을 누름
            {
                Debug.Log("else로 빠짐");
                act = ACTIVITY.NONE;
                //GameMng.I.selectedTile = GameMng.I.targetTile;
                //GameMng.I.targetTile = null;
            }
        }
    }
Example #2
0
    /**
     * @brief 건물 파괴될때 호출됨 로컬
     */
    public void DestroyBuilt()
    {
        if (GameMng.I.selectedTile == null)
        {
            act = ACTIVITY.NONE; return;
        }

        NetworkMng.getInstance.SendMsg(string.Format("DESTROY_BUILT:{0}:{1}", GameMng.I.selectedTile.PosX, GameMng.I.selectedTile.PosZ));

        if (GameMng.I.selectedTile._builtObj._code == (int)BUILT.ATTACK_BUILDING)
        {
            GameMng.I._range.AttackrangeTileReset();
            GameMng.I.RemoveDelegate(GameMng.I.selectedTile._builtObj.GetComponent <Turret>().Attack);
        }

        GameMng.I.selectedTile._builtObj.DestroyMyself();

        act = ACTIVITY.NONE;

        GameMng.I.selectedTile._builtObj = null;

        GameMng.I._hextile.TilecodeClear(GameMng.I.selectedTile);

        GameMng.I._range.SelectTileSetting(true);

        GameMng.I.setMainInterface();

        GameMng.I.cleanActList();
        GameMng.I.cleanSelected();

        NetworkMng.getInstance.SendMsg("TURN");
    }
Example #3
0
    public IEnumerator MovingUnit(int posX, int posY, int toX, int toY)
    {
        bool isRun = true;

        reversalUnit(GameMng.I.mapTile[posY, posX]._unitObj.transform, GameMng.I.mapTile[toY, posX].transform);
        GameMng.I.mapTile[posY, posX]._unitObj._anim.SetTrigger("isRunning");
        while (isRun)
        {
            if (Vector2.Distance(GameMng.I.mapTile[posY, posX]._unitObj.transform.localPosition, GameMng.I.mapTile[toY, toX].transform.localPosition) >= 0.01f)
            {
                GameMng.I.mapTile[posY, posX]._unitObj.transform.localPosition = Vector2.Lerp(GameMng.I.mapTile[posY, posX]._unitObj.transform.localPosition, GameMng.I.mapTile[toY, toX].transform.localPosition, GameMng.I.unitSpeed * Time.deltaTime);        //타일 간 부드러운 이동
                yield return(null);
            }
            else
            {
                act = ACTIVITY.NONE;

                GameMng.I.mapTile[posY, posX]._unitObj.transform.localPosition = GameMng.I.mapTile[toY, toX].transform.localPosition;
                GameMng.I.mapTile[toY, toX]._unitObj   = GameMng.I.mapTile[posY, posX]._unitObj;
                GameMng.I.mapTile[posY, posX]._unitObj = null;
                GameMng.I.mapTile[posY, posX]._code    = (int)TILE.CAN_MOVE - 1;
                isRun = false;
            }
        }
    }
Example #4
0
    /**
     * @brief 건물을 생성함 (클라 전용)
     * @param cost 사용된 코스트
     * @param index 건물 코드
     * @param unitindex 건물을 짓는 유닛 코드
     */
    public void Building(int cost, int index, int unitindex)
    {
        GameMng.I.mouseRaycast(true);                       //캐릭터 정보와 타일 정보를 알아와야해서 false에서 true로 변경
        if (GameMng.I.targetTile._builtObj == null && GameMng.I.targetTile._code < (int)TILE.CAN_MOVE && GameMng.I.targetTile._unitObj == null && Vector2.Distance(GameMng.I.selectedTile.transform.localPosition, GameMng.I.targetTile.transform.localPosition) <= 1.5f)
        {
            if (GameMng.I._gold >= cost)
            {
                GameMng.I.selectedTile._unitObj._bActAccess = false;
                Debug.Log("1" + GameMng.I.selectedTile._unitObj._bActAccess + "unit " + GameMng.I.selectedTile._unitObj);

                GameObject Child = Instantiate(builtObj[index - 200], GameMng.I.targetTile.transform) as GameObject;
                GameMng.I.targetTile._builtObj               = Child.GetComponent <Built>();
                GameMng.I.targetTile._builtObj.SaveX         = GameMng.I.selectedTile.PosX;        // 생성하는 건물에게 있는 위치 저장 변수에 해당 유닛 위치값을 저장해줌
                GameMng.I.targetTile._builtObj.SaveY         = GameMng.I.selectedTile.PosZ;
                GameMng.I.targetTile._builtObj._uniqueNumber = NetworkMng.getInstance.uniqueNumber;
                GameMng.I.targetTile._code = index;

                GameMng.I.minGold(cost);

                GameMng.I._range.rangeTileReset();
                GameMng.I._range.SelectTileSetting(true);


                NetworkMng.getInstance.SendMsg(string.Format("CREATE_BUILT:{0}:{1}:{2}:{3}:{4}:{5}", GameMng.I.targetTile.PosX, GameMng.I.targetTile.PosZ, index, NetworkMng.getInstance.uniqueNumber, GameMng.I.selectedTile.PosX, GameMng.I.selectedTile.PosZ));

                GameMng.I.addLogMessage(NetworkMng.getInstance.nickName, "건물을 생성하고 있습니다.");

                // 일꾼이라면
                if (unitindex == (int)UNIT.FOREST_WORKER || unitindex == (int)UNIT.DESERT_WORKER || unitindex == (int)UNIT.SEA_WORKER)
                {
                    GameMng.I._UnitGM.reversalUnit(GameMng.I.selectedTile._unitObj.transform, GameMng.I.targetTile.transform);
                    GameMng.I.selectedTile._unitObj.GetComponent <Worker>().working();
                    GameMng.I.selectedTile._unitObj.GetComponent <Worker>().buildingobj = GameMng.I.targetTile._builtObj;
                }

                GameMng.I.cleanSelected();
                GameMng.I.cleanActList();

                act = ACTIVITY.NONE;

                NetworkMng.getInstance.SendMsg("TURN");
            }
        }
        else if (Vector2.Distance(GameMng.I.selectedTile.transform.localPosition, GameMng.I.targetTile.transform.localPosition) >= 1.5f)
        {
            GameMng.I.cleanActList();
            GameMng.I.cleanSelected();
            GameMng.I._range.rangeTileReset();

            act = ACTIVITY.NONE;
        }
        else if (GameMng.I.targetTile._builtObj != null || GameMng.I.targetTile._unitObj != null)
        {
            GameMng.I.cleanActList();
            GameMng.I.cleanSelected();
            GameMng.I._range.rangeTileReset();

            act = ACTIVITY.NONE;
        }
    }
Example #5
0
    /**
     * @brief 유닛을 생성함 (클라 전용)
     * @param cost 사용된 코스트
     * @param index 유닛 코드
     */
    public void CreateUnit(/*int cost,*/ int index)
    {
        GameMng.I.minGold(3);         // TODO : 코스트로 변경
        GameMng.I.mouseRaycast(true); //캐릭터 정보와 타일 정보를 알아와야해서 false에서 true로 변경
        if (GameMng.I.targetTile._builtObj == null && GameMng.I.targetTile._code < (int)TILE.CAN_MOVE && GameMng.I.targetTile._unitObj == null && Vector2.Distance(GameMng.I.selectedTile.transform.localPosition, GameMng.I.targetTile.transform.localPosition) <= 1.5f)
        {
            GameObject Child = Instantiate(unitobj[index - 300], GameMng.I.targetTile.transform) as GameObject;                 // enum 값 - 100
            Child.transform.parent        = transform.parent;
            GameMng.I.targetTile._unitObj = Child.GetComponent <Unit>();
            GameMng.I.targetTile._code    = index;    // 문제는 Awake다
            GameMng.I.targetTile._unitObj._uniqueNumber = NetworkMng.getInstance.uniqueNumber;
            GameMng.I._range.rangeTileReset();
            act = ACTIVITY.ACTING;

            NetworkMng.getInstance.SendMsg(string.Format("CREATE_UNIT:{0}:{1}:{2}:{3}", GameMng.I.targetTile.PosX, GameMng.I.targetTile.PosY, index, NetworkMng.getInstance.uniqueNumber));

            GameMng.I.cleanActList();
            GameMng.I.cleanSelected();
        }
        else                                     // 범위가 아닌 다른 곳을 누름
        {
            act = ACTIVITY.NONE;
            GameMng.I.selectedTile = GameMng.I.targetTile;
            GameMng.I.targetTile   = null;
            GameMng.I._range.rangeTileReset();
        }
    }
        public void AddActivity(ACTIVITY newActivity)
        {
            string gradingPeriod = "";

            if (ViewModelLocator.SelectedSubjectViewModel.SelectedGradingPeriod == 0)
            {
                gradingPeriod = "Prelim";
            }

            if (ViewModelLocator.SelectedSubjectViewModel.SelectedGradingPeriod == 1)
            {
                gradingPeriod = "Midterm";
            }

            if (ViewModelLocator.SelectedSubjectViewModel.SelectedGradingPeriod == 2)
            {
                gradingPeriod = "Prefi";
            }

            SqlConnection con     = GeneralMethods.ConnectToDatabase();
            SqlCommand    command = new SqlCommand("INSERT INTO [ACTIVITY] (Activity, Percentage, Subject_ID, Grading_Period, Grade) VALUES (@Activity, @Percentage, @Subject_ID, @Grading_Period, @Grade)", con);

            command.Parameters.AddWithValue("@Activity", newActivity.Activity);
            command.Parameters.AddWithValue("@Percentage", newActivity.Percentage);
            command.Parameters.AddWithValue("@Subject_ID", ViewModelLocator.SubjectsListViewModel.SelectedSubject.SubjectID);
            command.Parameters.AddWithValue("@Grading_Period", gradingPeriod);
            command.Parameters.AddWithValue("@Grade", 0);
            command.ExecuteNonQuery();
            con.Close();

            GetAndDisplayActivities();
        }
Example #7
0
    /**
     * @brief 유닛 공격 원거리 공격 하려면 수정 필요
     * @param distance 공격 사거리
     */
    public void UnitAttack(int distance)
    {
        GameMng.I.mouseRaycast(true);
        if (GameMng.I.targetTile._unitObj != null || GameMng.I.targetTile._builtObj != null)
        {
            if (GameMng.I.targetTile._unitObj != null && GameMng.I.targetTile._unitObj._uniqueNumber != NetworkMng.getInstance.uniqueNumber && GameMng.I.targetTile.Distance <= distance)
            {
                GameMng.I.targetTile._unitObj._hp -= GameMng.I.selectedTile._unitObj._damage;

                AttackEffectSetting(GameMng.I.selectedTile._unitObj._code);;                            // 공격하는 유닛에 맞는 이펙트를 적용시킴

                if (GameMng.I.targetTile._unitObj._hp <= 0)
                {
                    GameMng.I.targetTile._unitObj.DestroyMyself();
                    GameMng.I.targetTile._unitObj = null;
                    GameMng.I._hextile.TilecodeClear(GameMng.I.targetTile);
                }

                EnforceAttack();
            }
            else if (GameMng.I.targetTile._builtObj != null && GameMng.I.targetTile._builtObj._uniqueNumber != NetworkMng.getInstance.uniqueNumber && GameMng.I.targetTile.Distance <= distance)
            {
                GameMng.I.targetTile._builtObj._hp -= GameMng.I.selectedTile._unitObj._damage;

                AttackEffectSetting(GameMng.I.selectedTile._unitObj._code);;                            // 공격하는 유닛에 맞는 이펙트를 적용시킴

                if (GameMng.I.targetTile._builtObj._code == (int)BUILT.AIRDROP)
                {
                    int nKind   = Random.Range(1, 3);          // 1: 골드,  2: 식량
                    int nResult = Random.Range(20, 60);

                    Debug.Log(nKind + ", " + nResult);

                    if (nKind == 1)
                    {
                        GameMng.I.addGold(nResult);
                    }
                    else if (nKind == 2)
                    {
                        GameMng.I.addFood(nResult);
                    }

                    GameMng.I.targetTile._builtObj._hp -= 1;
                }
                if (GameMng.I.targetTile._builtObj._hp <= 0)
                {
                    GameMng.I.targetTile._builtObj.DestroyMyself();
                    GameMng.I.targetTile._builtObj = null;

                    GameMng.I._hextile.TilecodeClear(GameMng.I.targetTile);                 // TODO : 코드 값 원래 값으로
                }
                EnforceAttack();
            }

            GameMng.I.cleanActList();
            GameMng.I.cleanSelected();

            act = ACTIVITY.NONE;
        }
    }
Example #8
0
    /**
     * @brief 유닛 이동 (클라 전용)
     */
    IEnumerator Moving(float movedis)
    {
        if (Vector2.Distance(GameMng.I.selectedTile._unitObj.transform.localPosition, GameMng.I.targetTile.transform.localPosition) >= 0.01f &&
            GameMng.I.distanceOfTiles <= movedis)                                                                                                                                                                                // 캐릭터와 타일간 거리가 1.5 * a 이하일시 움직일수 있음 (거리 한칸당 1.24?정도 되드라)
        {
            GameMng.I.selectedTile._unitObj.transform.localPosition = Vector2.Lerp(GameMng.I.selectedTile._unitObj.transform.localPosition, GameMng.I.targetTile.transform.localPosition, GameMng.I.unitSpeed * Time.deltaTime); //타일 간 부드러운 이동

            yield return(null);

            StartCoroutine("Moving", movedis);
        }
        else if (GameMng.I.distanceOfTiles >= 0.1f)     // 남은 거리가 좁아지면 타일 위치로 자동 이동
        {
            GameMng.I.selectedTile._unitObj.transform.localPosition = GameMng.I.targetTile.transform.localPosition;
            GameMng.I.targetTile._unitObj   = GameMng.I.selectedTile._unitObj;
            GameMng.I.targetTile._code      = GameMng.I.selectedTile._unitObj._code;
            GameMng.I.selectedTile._unitObj = null;

            GameMng.I._hextile.TilecodeClear(GameMng.I.selectedTile);

            GameMng.I.selectedTile = GameMng.I.targetTile;

            GameMng.I._range.SelectTileSetting(false);

            GameMng.I._hextile.FindDistancesTo(GameMng.I.selectedTile);

            GameMng.I.myTurn = false;

            NetworkMng.getInstance.SendMsg("TURN");

            act = ACTIVITY.NONE;
        }
    }
        public ActionResult DeleteConfirmed(int id)
        {
            ACTIVITY aCTIVITY = db.ACTIVITY.Find(id);

            db.ACTIVITY.Remove(aCTIVITY);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public void GetAndDisplayActivities()
        {
            PrelimComponentsPercentTotal  = 0;
            MidtermComponentsPercentTotal = 0;
            PrefiComponentsPercentTotal   = 0;
            PrelimGrade  = 0;
            MidtermGrade = 0;
            PrefiGrade   = 0;
            PrelimListActivity.Clear();
            MidtermListActivity.Clear();
            PrefiListActivity.Clear();
            SubjectName = ViewModelLocator.SubjectsListViewModel.SelectedSubject.Description;

            SqlConnection  con  = GeneralMethods.ConnectToDatabase();
            SqlDataAdapter sda2 = new SqlDataAdapter("SELECT * From [ACTIVITY] WHERE Subject_ID='" + ViewModelLocator.SubjectsListViewModel.SelectedSubject.SubjectID + "'", con);
            DataTable      dt   = new DataTable();

            sda2.Fill(dt);
            con.Close();

            for (int x = 0; x < dt.Rows.Count; x++)
            {
                ACTIVITY newActivity = new ACTIVITY();

                newActivity.ActivityID    = Convert.ToInt16(dt.Rows[x]["ActivityID"]);
                newActivity.Activity      = dt.Rows[x]["Activity"].ToString();
                newActivity.Grade         = Convert.ToDouble(dt.Rows[x]["Grade"]);
                newActivity.GradingPeriod = dt.Rows[x]["Grading_Period"].ToString();
                newActivity.Percentage    = Convert.ToDouble(dt.Rows[x]["Percentage"]);
                newActivity.SubjectID     = Convert.ToInt16(dt.Rows[x]["Subject_ID"]);

                if (newActivity.GradingPeriod == "Prelim")
                {
                    PrelimListActivity.Add(newActivity);
                    PrelimComponentsPercentTotal += newActivity.Percentage;
                    PrelimGrade += newActivity.Grade;
                }

                if (newActivity.GradingPeriod == "Midterm")
                {
                    MidtermListActivity.Add(newActivity);
                    MidtermComponentsPercentTotal += newActivity.Percentage;
                    MidtermGrade += newActivity.Grade;
                }

                if (newActivity.GradingPeriod == "Prefi")
                {
                    PrefiListActivity.Add(newActivity);
                    PrefiComponentsPercentTotal += newActivity.Percentage;
                    PrefiGrade += newActivity.Grade;
                }
            }

            GetLetterGrade();
            ComputeConvertedGrades();
        }
 public ActionResult Edit([Bind(Include = "act_code,act_description,act_date_delivery")] ACTIVITY aCTIVITY)
 {
     if (ModelState.IsValid)
     {
         db.Entry(aCTIVITY).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(aCTIVITY));
 }
Example #12
0
    /**
     * @brief 유닛을 생성함 (클라 전용)
     * @param cost 사용된 코스트
     * @param index 유닛 코드
     */
    public void CreateUnit(int cost, int index)
    {
        GameMng.I.mouseRaycast(true);                       //캐릭터 정보와 타일 정보를 알아와야해서 false에서 true로 변경
        if (GameMng.I.targetTile._builtObj == null && GameMng.I.targetTile._code < (int)TILE.CAN_MOVE && GameMng.I.targetTile._unitObj == null && Vector2.Distance(GameMng.I.selectedTile.transform.localPosition, GameMng.I.targetTile.transform.localPosition) <= 1.5f)
        {
            if (GameMng.I._gold >= cost)
            {
                GameMng.I.minGold(cost);
                if (index != (int)UNIT.FOREST_WORKER && index != (int)UNIT.SEA_WORKER && index != (int)UNIT.DESERT_WORKER)      // 일꾼 유닛들을 제외하고 유닛 생성중일때 해당 건물 행동 불가 상태 적용
                {
                    GameMng.I.selectedTile._builtObj._bActAccess = false;
                }

                GameMng.I.selectedTile._builtObj._anim.SetTrigger("isMaking");

                GameObject Child = Instantiate(unitobj[index - 300], GameMng.I.targetTile.transform) as GameObject;                 // enum 값 - 300
                Child.transform.parent                      = transform.parent;
                GameMng.I.targetTile._unitObj               = Child.GetComponent <Unit>();
                GameMng.I.targetTile._unitObj.SaveX         = GameMng.I.selectedTile.PosX;   // 생성하는 유닛에게 있는 위치 저장 변수에 해당 건물 위치값을 저장해줌
                GameMng.I.targetTile._unitObj.SaveY         = GameMng.I.selectedTile.PosZ;
                GameMng.I.targetTile._unitObj.PosX          = GameMng.I.targetTile.PosX;     // 생성하는 유닛에게 있는 본인위치 저장 변수에 유닛이 생성된 타일 위치값을 저장해줌
                GameMng.I.targetTile._unitObj.PosZ          = GameMng.I.targetTile.PosZ;
                GameMng.I.targetTile._code                  = index;
                GameMng.I.targetTile._unitObj._uniqueNumber = NetworkMng.getInstance.uniqueNumber;


                if (GameMng.I.selectedTile._code == (int)BUILT.MILLITARY_BASE)                  // 군사기지에서 유닛 생성 시
                {
                    MillitaryBase SaveUnitData = GameMng.I.selectedTile._builtObj.GetComponent <MillitaryBase>();
                    SaveUnitData.CreatingUnitobj = GameMng.I.targetTile._unitObj.gameObject;
                    SaveUnitData.CreatingUnitX   = GameMng.I.targetTile.PosX;
                    SaveUnitData.CreatingUnitY   = GameMng.I.targetTile.PosZ;
                }

                act = ACTIVITY.NONE;

                NetworkMng.getInstance.SendMsg(string.Format("CREATE_UNIT:{0}:{1}:{2}:{3}:{4}:{5}", GameMng.I.targetTile.PosX, GameMng.I.targetTile.PosZ, index, NetworkMng.getInstance.uniqueNumber, GameMng.I.selectedTile.PosX, GameMng.I.selectedTile.PosZ));

                GameMng.I.addLogMessage(NetworkMng.getInstance.nickName, "유닛을 생성하고 있습니다");

                GameMng.I.cleanActList();
                GameMng.I._range.rangeTileReset();
                GameMng.I.cleanSelected();

                NetworkMng.getInstance.SendMsg("TURN");
            }
        }
        else                                     // 범위가 아닌 다른 곳을 누름
        {
            act = ACTIVITY.NONE;
            GameMng.I.selectedTile = GameMng.I.targetTile;
            GameMng.I.targetTile   = null;
            GameMng.I._range.rangeTileReset();
        }
    }
        public ActionResult Create([Bind(Include = "act_code,act_description,act_date_delivery")] ACTIVITY aCTIVITY)
        {
            if (ModelState.IsValid)
            {
                db.ACTIVITY.Add(aCTIVITY);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(aCTIVITY));
        }
Example #14
0
    /**
     * @brief 건물 파괴될때 호출됨 로컬
     */
    public void DestroyBuilt()
    {
        if (GameMng.I.selectedTile == null)
        {
            act = ACTIVITY.NONE; return;
        }

        NetworkMng.getInstance.SendMsg(string.Format("DESTROY_BUILT:{0}:{1}", GameMng.I.selectedTile.PosX, GameMng.I.selectedTile.PosZ));

        GameMng.I.addLogMessage(NetworkMng.getInstance.nickName, "건물을 파괴했습니다.");

        if (GameMng.I.selectedTile._builtObj._code == (int)BUILT.ATTACK_BUILDING)
        {
            GameMng.I._range.AttackrangeTileReset();
            GameMng.I.RemoveDelegate(GameMng.I.selectedTile._builtObj.GetComponent <Turret>().Attack);
        }

        switch (GameMng.I.selectedTile._builtObj._code)
        {
        case (int)BUILT.MINE:
            GameMng.I.addGold((GameMng.I.MINE_COST / 4) * 3);
            break;

        case (int)BUILT.FARM:
            GameMng.I.addGold((GameMng.I.FARM_COST / 4) * 3);
            break;

        case (int)BUILT.ATTACK_BUILDING:
            GameMng.I.addGold((GameMng.I.TURRET_COST / 4) * 3);
            break;

        case (int)BUILT.MILLITARY_BASE:
            GameMng.I.addGold((GameMng.I.MILITARYBASE_COST / 4) * 3);
            break;
        }

        GameMng.I.selectedTile._builtObj.DestroyMyself();

        act = ACTIVITY.NONE;

        GameMng.I.selectedTile._builtObj = null;

        GameMng.I._hextile.TilecodeClear(GameMng.I.selectedTile);

        GameMng.I._range.SelectTileSetting(true);

        GameMng.I.setMainInterface();

        GameMng.I.cleanActList();
        GameMng.I.cleanSelected();

        NetworkMng.getInstance.SendMsg("TURN");
    }
Example #15
0
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            NetworkMng.getInstance.SendMsg("TURN");
        }

        if (Input.GetMouseButtonDown(0) && act != ACTIVITY.ACTING && GameMng.I._BuiltGM.act == ACTIVITY.NONE && !EventSystem.current.IsPointerOverGameObject())
        {
            switch (act)
            {
            case ACTIVITY.MOVE:
                CheckMove();
                break;

            case ACTIVITY.BUILD_MINE:
                Building(Mine.cost, (int)BUILT.MINE, GameMng.I.selectedTile._code);
                break;

            case ACTIVITY.BUILD_FARM:
                Building(Farm.cost, (int)BUILT.FARM, GameMng.I.selectedTile._code);
                break;

            case ACTIVITY.BUILD_ATTACK_BUILDING:
                Building(Turret.cost, (int)BUILT.ATTACK_BUILDING, GameMng.I.selectedTile._code);
                break;

            case ACTIVITY.BUILD_MILLITARY_BASE:
                Building(MillitaryBase.cost, (int)BUILT.MILLITARY_BASE, GameMng.I.selectedTile._code);
                break;

            case ACTIVITY.ATTACK:
                UnitAttack(GameMng.I.selectedTile._unitObj._attackdistance);
                break;
            }
            GameMng.I._range.SelectTileSetting(true);
        }
        else if (Input.GetMouseButtonUp(1) && act != ACTIVITY.ACTING)
        {
            act = ACTIVITY.NONE;

            GameMng.I._BuiltGM.act = ACTIVITY.NONE;

            GameMng.I._range.rangeTileReset();
            GameMng.I._range.AttackrangeTileReset();                                                     //추가
            GameMng.I._range.SelectTileSetting(true);

            GameMng.I.cleanActList();
            GameMng.I.cleanSelected();
        }
    }
Example #16
0
 /**
  * @brief 건물 파괴될때 호출됨
  */
 public void DestroyBuilt()
 {
     Destroy(GameMng.I.selectedTile._builtObj.gameObject);
     if (GameMng.I.selectedTile._builtObj._code == (int)BUILT.ATTACK_BUILDING)
     {
         GameMng.I._range.AttackrangeTileReset();
     }
     act = ACTIVITY.NONE;
     GameMng.I.selectedTile._builtObj = null;
     Debug.Log("여기 수정해야함!!!!!");
     GameMng.I.selectedTile._code = (int)TILE.GRASS;                                                             // 나중에 원래 타일 알아오는법 가져오기
     GameMng.I.cleanActList();
     GameMng.I.cleanSelected();
 }
        public void EditActivity(ACTIVITY changedActivity)
        {
            SqlConnection con     = GeneralMethods.ConnectToDatabase();
            SqlCommand    command = new SqlCommand("UPDATE [ACTIVITY] SET Activity=@Activity, Percentage=@Percentage WHERE ActivityID=@ActivityID", con);

            command.Parameters.AddWithValue("@Activity", changedActivity.Activity);
            command.Parameters.AddWithValue("@Percentage", changedActivity.Percentage);
            command.Parameters.AddWithValue("@ActivityID", ViewModelLocator.SelectedSubjectViewModel.SelectedActivity.ActivityID);
            command.ExecuteNonQuery();
            con.Close();

            ViewModelLocator.ScoresListViewModel.ComputeConvertedGrade();
            GetAndDisplayActivities();
        }
        // GET: ACTIVITies/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ACTIVITY aCTIVITY = db.ACTIVITY.Find(id);

            if (aCTIVITY == null)
            {
                return(HttpNotFound());
            }
            return(View(aCTIVITY));
        }
Example #19
0
        public static void EditActivity(string id, DateTime final, string status, string result)
        {
            //Create new Employee
            LINQDataContext db  = new LINQDataContext();
            ACTIVITY        Act = db.ACTIVITY.First(e => e.id_activity.Equals(id));

            Act.date_fn_cn = final;
            Act.status     = status;
            Act.result     = result;

            //Edit Activity to database
            db.SubmitChanges();

            return;
        }
Example #20
0
        public static void AddActivity(Int32 id, Int32 sn, string ad, string dc, DateTime regDate, DateTime exDate)
        {
            LINQDataContext db       = new LINQDataContext();
            ACTIVITY        activity = new ACTIVITY();

            activity.id_request  = id;
            activity.sequence_nb = sn;
            activity.act_dict    = ad;
            activity.description = dc;
            activity.date_reg    = regDate;
            activity.date_fn_cn  = exDate;
            activity.status      = "ACT";

            db.ACTIVITY.InsertOnSubmit(activity);
            db.SubmitChanges();
        }
Example #21
0
 /**
  * @brief 건물 파괴될때 호출됨
  */
 public void DestroyBuilt()
 {
     NetworkMng.getInstance.SendMsg(string.Format("DESTROY_BUILT:{0}:{1}", GameMng.I.selectedTile.PosX, GameMng.I.selectedTile.PosY));
     Destroy(GameMng.I.selectedTile._builtObj.gameObject);
     if (GameMng.I.selectedTile._builtObj._code == (int)BUILT.ATTACK_BUILDING)
     {
         GameMng.I._range.AttackrangeTileReset();
     }
     act = ACTIVITY.NONE;
     GameMng.I.selectedTile._builtObj = null;
     Debug.Log("여기 수정해야함!!!!!");
     GameMng.I.selectedTile._code = (int)TILE.GRASS;                                                             // 나중에 원래 타일 알아오는법 가져오기
     GameMng.I._range.SelectTileSetting(true);
     GameMng.I.cleanActList();
     GameMng.I.cleanSelected();
 }
Example #22
0
    public void UnitAttack()
    {
        GameMng.I.mouseRaycast(true);
        if (GameMng.I.targetTile._unitObj != null || GameMng.I.targetTile._builtObj != null)
        {
            if (GameMng.I.targetTile._unitObj != null)
            {
                GameMng.I.targetTile._unitObj._hp -= GameMng.I.selectedTile._unitObj._damage;
                if (GameMng.I.targetTile._unitObj._hp <= 0)
                {
                    Destroy(GameMng.I.targetTile._unitObj.gameObject);
                    GameMng.I.targetTile._unitObj = null;
                    GameMng.I.targetTile._code    = 0;
                }
            }
            else if (GameMng.I.targetTile._builtObj != null)
            {
                GameMng.I.targetTile._builtObj._hp -= GameMng.I.selectedTile._unitObj._damage;
                if (GameMng.I.targetTile._builtObj._code == (int)BUILT.AIRDROP)
                {
                    Debug.Log("asdf");
                    int nKind   = Random.Range(1, 3);          // 1: 식량 2: 골드
                    int nResult = Random.Range(20, 60);
                    Debug.Log(nKind + ", " + nResult);
                    if (nKind == 1)
                    {
                        GameMng.I._gold += nResult;
                    }
                    else if (nKind == 2)
                    {
                        Debug.Log("식량 + " + nKind);
                    }

                    GameMng.I.targetTile._builtObj._hp -= 1;
                }
                if (GameMng.I.targetTile._builtObj._hp <= 0)
                {
                    Destroy(GameMng.I.targetTile._builtObj.gameObject);
                    GameMng.I.targetTile._builtObj = null;
                    GameMng.I.targetTile._code     = 0;
                }
            }
            GameMng.I.cleanActList();
            GameMng.I.cleanSelected();
            act = ACTIVITY.NONE;
        }
    }
Example #23
0
    /**
     * @brief 유닛 이동 검사 (대상이 올바른지)
     */
    public void CheckMove()
    {
        float movedis;

        GameMng.I.mouseRaycast(true);

        if (GameMng.I.hit.collider != null)
        {
            GameMng.I.cleanActList();
            GameMng.I._range.rangeTileReset();  // 범위 타일 위치 초기화

            if (GameMng.I.selectedTile._code == (int)UNIT.FOREST_WITCH_1 || GameMng.I.selectedTile._code == (int)UNIT.SEA_WITCH_1)
            {
                movedis             = 3.0f;
                GameMng.I.unitSpeed = 6.0f;
            }
            else
            {
                movedis             = 1.5f;
                GameMng.I.unitSpeed = 3.0f;
            }

            GameMng.I.distanceOfTiles = Vector2.Distance(GameMng.I.selectedTile._unitObj.transform.position, GameMng.I.targetTile.transform.position);

            if (GameMng.I.hit.collider.tag.Equals("Tile") && GameMng.I.distanceOfTiles <= movedis && Tile.isEmptyTile(GameMng.I.targetTile))
            {
                act = ACTIVITY.ACTING;

                GameMng.I.selectedTile._unitObj.PosX = GameMng.I.targetTile.PosX;
                GameMng.I.selectedTile._unitObj.PosZ = GameMng.I.targetTile.PosZ;

                reversalUnit(GameMng.I.selectedTile._unitObj.transform, GameMng.I.targetTile.transform);

                GameMng.I.selectedTile._unitObj._anim.SetTrigger("isRunning");

                NetworkMng.getInstance.SendMsg(string.Format("MOVE_UNIT:{0}:{1}:{2}:{3}", GameMng.I.selectedTile.PosX, GameMng.I.selectedTile.PosZ, GameMng.I.targetTile.PosX, GameMng.I.targetTile.PosZ));

                StartCoroutine("Moving", movedis);
            }
            else                                     // 범위가 아닌 다른 곳을 누름
            {
                act = ACTIVITY.NONE;
                //GameMng.I.selectedTile = GameMng.I.targetTile;
                //GameMng.I.targetTile = null;
            }
        }
    }
Example #24
0
    void Update()
    {
        //Debug.Log(Vector2.Distance(GameMng.I.mapTile[GameMng.I.selectedTile.PosX, GameMng.I.selectedTile.PosY].transform.localPosition,
        //    GameMng.I.mapTile[GameMng.I.targetTile.PosX, GameMng.I.targetTile.PosY].transform.localPosition));
        if (Input.GetMouseButtonDown(0) && act != ACTIVITY.ACTING && GameMng.I._BuiltGM.act == ACTIVITY.NONE && !EventSystem.current.IsPointerOverGameObject())
        {
            switch (act)
            {
            case ACTIVITY.MOVE:
                CheckMove();
                break;

            case ACTIVITY.BUILD_MINE:
                Building(Mine.cost, (int)BUILT.MINE);
                break;

            case ACTIVITY.BUILD_FARM:
                Building(Farm.cost, (int)BUILT.FARM);
                break;

            case ACTIVITY.BUILD_ATTACK_BUILDING:
                Building(Turret.cost, (int)BUILT.ATTACK_BUILDING);
                break;

            case ACTIVITY.BUILD_MILLITARY_BASE:
                Building(MillitaryBase.cost, (int)BUILT.MILLITARY_BASE);
                break;

            case ACTIVITY.ATTACK:
                UnitAttack();
                break;
            }
            GameMng.I._range.SelectTileSetting(true);
        }
        else if (Input.GetMouseButtonUp(1) && act != ACTIVITY.ACTING)
        {
            act = ACTIVITY.NONE;
            GameMng.I._BuiltGM.act = ACTIVITY.NONE;
            GameMng.I._range.rangeTileReset();
            GameMng.I._range.AttackrangeTileReset();                                                     //추가
            GameMng.I._range.SelectTileSetting(true);
            GameMng.I.cleanActList();
            GameMng.I.cleanSelected();
        }
    }
Example #25
0
        /// <summary>
        /// 根据数据ID获取工作流
        /// </summary>
        /// <param name="orderId"></param>
        /// <returns></returns>
        public JsonResult GetWorkFlowByDataId(string dataId)
        {
            var retModel = new JsonReturnModel();

            try
            {
                List <ACTIVITY>      list         = WorkFlowDA.GetWorkFlowActivityByOrderId(dataId);
                List <ActivityModel> activityList = new List <ActivityModel>();
                foreach (var item in list)
                {
                    ActivityModel model = new ActivityModel();
                    model.Id         = item.ID;
                    model.Keyed_Name = item.KEYED_NAME;
                    model.X          = item.X;
                    model.Y          = item.Y;
                    List <WORKFLOW_PROCESS_PATH> processPaths = WorkFlowDA.GetProcessPathBySourceId(item.ID);
                    List <ProcessPathModel>      listPaths    = new List <ProcessPathModel>();
                    foreach (var processPath in processPaths)
                    {
                        ProcessPathModel modelPath = new ProcessPathModel();
                        modelPath.Id       = processPath.ID;
                        modelPath.Lable    = processPath.LABEL;
                        modelPath.segments = processPath.SEGMENTS;
                        modelPath.X        = processPath.X;
                        modelPath.Y        = processPath.Y;
                        //获取到达节点的坐标
                        ACTIVITY relatedModel = list.Where(x => x.ID == processPath.RELATED_ID).FirstOrDefault();
                        if (relatedModel != null)
                        {
                            modelPath.RelatedX = relatedModel.X;
                            modelPath.RelatedY = relatedModel.Y;
                        }
                        listPaths.Add(modelPath);
                    }
                    model.ProcessPaths = listPaths;
                    activityList.Add(model);
                }
                retModel.data = activityList;
            }
            catch (Exception ex)
            {
                retModel.AddError("errorMessage", ex.Message);
            }
            return(Json(retModel, JsonRequestBehavior.AllowGet));
        }
Example #26
0
 public void Building(int cost, int index)
 {
     GameMng.I.mouseRaycast(true);                       //캐릭터 정보와 타일 정보를 알아와야해서 false에서 true로 변경
     if (GameMng.I.targetTile._builtObj == null && GameMng.I.targetTile._code < (int)TILE.CAN_MOVE && GameMng.I.targetTile._unitObj == null && Vector2.Distance(GameMng.I.selectedTile.transform.localPosition, GameMng.I.targetTile.transform.localPosition) <= 1.5f)
     {
         if (GameMng.I._gold >= cost)
         {
             GameObject Child = Instantiate(builtObj[index - 200], GameMng.I.targetTile.transform) as GameObject;
             GameMng.I.targetTile._builtObj = Child.GetComponent <Built>();
             GameMng.I.targetTile._code     = index;
             GameMng.I.minGold(cost);
             GameMng.I._range.rangeTileReset();
             GameMng.I.targetTile._builtObj._uniqueNumber = NetworkMng.getInstance.uniqueNumber;
             NetworkMng.getInstance.SendMsg(string.Format("CREATE_BUILT:{0}:{1}:{2}:{3}", GameMng.I.targetTile.PosX, GameMng.I.targetTile.PosY, index, NetworkMng.getInstance.uniqueNumber));
             act = ACTIVITY.NONE;
         }
     }
 }
        private void BtnAddComponent_Click(object sender, RoutedEventArgs e)
        {
            var window = new AddActivityWindow();

            window.Owner = this;
            window.WindowStartupLocation = WindowStartupLocation.CenterOwner;
            ViewModelLocator.SelectedSubjectViewModel.SelectedGradingPeriod = 0;
            ViewModelLocator.SelectedSubjectViewModel.IsEdit = false;

            ACTIVITY newActivity = new ACTIVITY();

            window.DataContext = newActivity;

            var result = window.ShowDialog();

            if (result == true)
            {
                ViewModelLocator.SelectedSubjectViewModel.AddActivity(newActivity);
            }
        }
Example #28
0
    IEnumerator Moving()
    {
        if (Vector2.Distance(GameMng.I.selectedTile._unitObj.transform.localPosition, GameMng.I.targetTile.transform.localPosition) >= 0.01f &&
            GameMng.I.distanceOfTiles <= 1.5f)                                                                                                                                                                                   // 캐릭터와 타일간 거리가 1.5 * a 이하일시 움직일수 있음 (거리 한칸당 1.24?정도 되드라)
        {
            GameMng.I.selectedTile._unitObj.transform.localPosition = Vector2.Lerp(GameMng.I.selectedTile._unitObj.transform.localPosition, GameMng.I.targetTile.transform.localPosition, GameMng.I.unitSpeed * Time.deltaTime); //타일 간 부드러운 이동
            yield return(null);

            StartCoroutine("Moving");
        }
        else if (GameMng.I.distanceOfTiles >= 0.1f)     // 남은 거리가 좁아지면 타일 위치로 자동 이동
        {
            act = ACTIVITY.NONE;

            GameMng.I.selectedTile._unitObj.transform.localPosition = GameMng.I.targetTile.transform.localPosition;
            GameMng.I.targetTile._unitObj   = GameMng.I.selectedTile._unitObj;
            GameMng.I.selectedTile._unitObj = null;
            GameMng.I.selectedTile._code    = (int)TILE.CAN_MOVE - 1;
        }
    }
        private void BtnEdit_Click(object sender, RoutedEventArgs e)
        {
            if (LvPrelimComponents.SelectedItem != null)
            {
                ViewModelLocator.SelectedSubjectViewModel.SelectedGradingPeriod = 0;
                ViewModelLocator.SelectedSubjectViewModel.IsEdit = true;
                var window = new AddActivityWindow();
                window.Owner = this;
                window.WindowStartupLocation = WindowStartupLocation.CenterOwner;

                ACTIVITY changedActivity = ViewModelLocator.SelectedSubjectViewModel.SelectedActivity as ACTIVITY;
                window.DataContext = changedActivity;

                var result = window.ShowDialog();
                if (result == true)
                {
                    ViewModelLocator.SelectedSubjectViewModel.EditActivity(changedActivity);
                }
            }
        }
Example #30
0
    /**
     * @brief 어떤 행동인지 체크
     * @param activity 행동 코드
     * @param actButton 행동 버튼
     * @param actName 행동 이름
     * @param actDesc 행동 설명
     * @param costText 행동 비용
     */
    public void checkActivity(ACTIVITY activity, UnityEngine.UI.Button actButton, UnityEngine.UI.Text actName, UnityEngine.UI.Text actDesc, UnityEngine.UI.Image Frame, UnityEngine.UI.Text costText, UnityEngine.UI.Image costImg)
    {
        switch (activity)
        {
        case ACTIVITY.MOVE:
            actName.text     = "이동";
            actDesc.text     = "한 턴 소요";
            costText.enabled = false;
            costImg.enabled  = false;
            actButton.onClick.AddListener(delegate { _UnitGM.act = activity; _range.AttackrangeTileReset(); _UnitGM.Move(); });
            canUseActivity(actButton, Frame, 0);
            break;

        case ACTIVITY.BUILD_MINE:
            actName.text     = "광산";
            actDesc.text     = "한 턴 소요";
            costText.enabled = true;
            costImg.enabled  = true;
            costText.text    = MINE_COST.ToString();
            actButton.onClick.AddListener(delegate { _UnitGM.act = activity; _UnitGM.buildMine(); });
            canUseActivity(actButton, Frame, MINE_COST);
            break;

        case ACTIVITY.BUILD_FARM:
            actName.text     = "농장";
            actDesc.text     = "한 턴 소요";
            costText.enabled = true;
            costImg.enabled  = true;
            costText.text    = FARM_COST.ToString();
            actButton.onClick.AddListener(delegate { _UnitGM.act = activity; _UnitGM.buildFarm(); });
            canUseActivity(actButton, Frame, FARM_COST);
            break;

        case ACTIVITY.BUILD_ATTACK_BUILDING:
            actName.text     = "터렛";
            actDesc.text     = "두 턴 소요";
            costText.enabled = true;
            costImg.enabled  = true;
            costText.text    = TURRET_COST.ToString();
            actButton.onClick.AddListener(delegate { _UnitGM.act = activity; _UnitGM.buildAttackBuilding(); });
            canUseActivity(actButton, Frame, TURRET_COST);
            break;

        case ACTIVITY.BUILD_MILLITARY_BASE:
            actName.text     = "군사 기지";
            actDesc.text     = "두 턴 소요";
            costText.enabled = true;
            costImg.enabled  = true;
            costText.text    = MILITARYBASE_COST.ToString();
            actButton.onClick.AddListener(delegate { _UnitGM.act = activity; _UnitGM.buildMillitaryBaseBuilding(); });
            canUseActivity(actButton, Frame, MILITARYBASE_COST);
            break;

        case ACTIVITY.BUILD_SHIELD_BUILDING:
            actName.text = "방어 건물";
            actDesc.text = "두 턴 소요";
            actButton.onClick.AddListener(delegate { _UnitGM.act = activity; _UnitGM.buildShieldBuilding(); });
            break;

        case ACTIVITY.BUILD_UPGRADE_BUILDING:
            actName.text = "강화 건물";
            actDesc.text = "세 턴 소요";
            actButton.onClick.AddListener(delegate { _UnitGM.act = activity; _UnitGM.buildUpgradeBuilding(); });
            break;

        case ACTIVITY.WORKER_UNIT_CREATE:
            actName.text     = "일꾼 생성";
            costText.enabled = true;
            costImg.enabled  = true;
            costText.text    = WORKER_COST.ToString();
            actButton.onClick.AddListener(delegate { _BuiltGM.act = activity; Castle.CreateUnitBtn(); });
            canUseActivity(actButton, Frame, WORKER_COST);
            break;

        case ACTIVITY.DESTROY_BUILT:
            actName.text     = "건물 파괴";
            costText.enabled = false;
            costImg.enabled  = false;
            actButton.onClick.AddListener(delegate { _BuiltGM.act = activity; _BuiltGM.DestroyBuilt(); });
            canUseActivity(actButton, Frame, 0);
            break;

        case ACTIVITY.ATTACK:
            actName.text     = "공격";
            actDesc.text     = "두 턴 소요";
            costText.enabled = false;
            costImg.enabled  = false;
            actButton.onClick.AddListener(delegate { _UnitGM.act = activity; _range.rangeTileReset(); _UnitGM.unitAttacking(); });
            canUseActivity(actButton, Frame, 0);
            break;

        case ACTIVITY.SOLDIER_0_UNIT_CREATE:
            actName.text     = "전사1 생성";
            actDesc.text     = "두 턴 소요";
            costText.enabled = true;
            costImg.enabled  = true;
            costText.text    = SOLDIER_0_COST.ToString();
            actButton.onClick.AddListener(delegate { _BuiltGM.act = activity; MillitaryBase.CreateAttackFirstUnitBtn(); });
            canUseActivity(actButton, Frame, SOLDIER_0_COST);
            break;

        case ACTIVITY.SOLDIER_1_UNIT_CREATE:
            actName.text     = "전사2 생성";
            actDesc.text     = "두 턴 소요";
            costText.enabled = true;
            costImg.enabled  = true;
            costText.text    = SOLDIER_1_COST.ToString();
            actButton.onClick.AddListener(delegate { _BuiltGM.act = activity; MillitaryBase.CreateAttackSecondUnitBtn(); });
            canUseActivity(actButton, Frame, SOLDIER_1_COST);
            break;

        case ACTIVITY.SOLDIER_2_UNIT_CREATE:
            actName.text     = "전사3 생성";
            actDesc.text     = "두 턴 소요";
            costText.enabled = true;
            costImg.enabled  = true;
            costText.text    = SOLDIER_2_COST.ToString();
            actButton.onClick.AddListener(delegate { _BuiltGM.act = activity; MillitaryBase.CreateAttackThirdUnitBtn(); });
            canUseActivity(actButton, Frame, SOLDIER_2_COST);
            break;

        case ACTIVITY.WITCH_0_UNIT_CREATE:
            actName.text     = "마법사1 생성";
            actDesc.text     = "두 턴 소요";
            costText.enabled = true;
            costImg.enabled  = true;
            costText.text    = WITCH_0_COST.ToString();
            actButton.onClick.AddListener(delegate { _BuiltGM.act = activity; MillitaryBase.CreateAttackFourthUnitBtn(); });
            canUseActivity(actButton, Frame, WITCH_0_COST);
            break;

        case ACTIVITY.WITCH_1_UNIT_CREATE:
            actName.text     = "마법사2 생성";
            actDesc.text     = "두 턴 소요";
            costText.enabled = true;
            costImg.enabled  = true;
            costText.text    = WITCH_1_COST.ToString();
            actButton.onClick.AddListener(delegate { _BuiltGM.act = activity; MillitaryBase.CreateAttackFifthUnitBtn(); });
            canUseActivity(actButton, Frame, WITCH_1_COST);
            break;

        default:
            break;
        }
    }