Example #1
0
 private void Awake() // Allow access only scene MGameplayStatic Component has
 {
     if (Instance == null)
     {
         Instance = this;
     }
     else if (Instance != this)
     {
         Destroy(gameObject);
     }
 }
Example #2
0
 //SQuest를 스크롤뷰에 쓰는 리스트에 추가해주는 함수.
 private void AddQuest(SQuest item)
 {
     if (MGameplayStatic.GetPlayerState() == null)
     {
         return;
     }
     MGameplayStatic.GetPlayerState().CurrentQuest.Add(item);
     if (AddEvent != null)
     {
         AddEvent();
     }
 }
Example #3
0
    private void ChangeNpcDestination(MNPCWalker _Walker)
    {
        //NPC가 NPCArea 밖에 있다면 안으로 가지고옴
        if (Vector3.Distance(_Walker.transform.position, MGameplayStatic.GetPlayerState().CurrentCar.transform.position) > MGameplayStatic.GetPlayerState().CurrentCar.GetComponent <MNPCArea>().Radius)
        {
            _Walker.gameObject.SetActive(false);
            _Walker.transform.position = GetDestination().position;
            _Walker.gameObject.SetActive(true);
        }

        _Walker.SetDestination(GetDestination(), (Random.Range(0, 8)) < 1);
    }
Example #4
0
 private void FixedUpdate()
 {
     if (Input.GetKeyDown(KeyCode.R))
     {
         if (CUserInfo.GetInstance().Money >= 2)
         {
             CUserInfo.GetInstance().Money -= 2;
             MGameplayStatic.GetPlayerState().CurrentCar.transform.position = StartPosition.transform.position;
             MGameplayStatic.GetPlayerState().CurrentCar.transform.rotation = StartPosition.transform.rotation;
         }
     }
 }
Example #5
0
 //차의 연료를 채워주는 함수.
 private void Refueling()
 {
     if (CUserInfo.GetInstance().Money >= 2)
     {
         CUserInfo.GetInstance().Money -= 2;
         CPlayerState PlayerState       = MGameplayStatic.GetPlayerState();
         if (PlayerState != null)
         {
             PlayerState.CurrentCar.CarInfo.Fuel = PlayerState.CurrentCar.CarInfo.MaxFuel;
         }
     }
 }
Example #6
0
    private void Update()
    {
        CPlayerState PlayerState = MGameplayStatic.GetPlayerState();

        if (PlayerState == null)
        {
            return;
        }

        SCarInfo CarInfo = PlayerState.CurrentCar.CarInfo;

        FuelRatio = CarInfo.Fuel / CarInfo.MaxFuel;
    }
Example #7
0
    private void CompleteQuest()
    {
        List <SQuest> QuestList = CUserInfo.GetInstance().QuestLst.FindAll((Quest) => { return(Quest.IsSuccess); });

        for (int i = 0; i < QuestList.Count; i++)
        {
            CUserInfo.GetInstance().Money += QuestList[i].Reward;
            Destroy(MQuestUIFunctionLibrary.GetTargetStructure(QuestList[i].TargetPos[0], QuestList[i].TargetPos[1], QuestList[i].TargetPos[2]).transform.GetChild(0).gameObject);

            MPopupUI.GetInstance().ShowPopup("퀘스트 완료");
        }
        CUserInfo.GetInstance().QuestLst.RemoveAll((Quest) => { return(Quest.IsSuccess); });
        MGameplayStatic.GetPlayerState().QuestSlotList.UpdateQuestList(CUserInfo.GetInstance().QuestLst);
    }
Example #8
0
    //시작 시 스크롤뷰 셋팅해주는 함수.
    private void ScrollViewInit()
    {
        Content.transform.DetachChildren();

        CPlayerState PlayerState = MGameplayStatic.GetPlayerState();

        if (PlayerState.CurrentQuest != null)
        {
            for (int i = 0; i < PlayerState.CurrentQuest.Count; i++)
            {
                AddScrollViewItem(PlayerState.CurrentQuest[i]);
            }
        }
    }
Example #9
0
    //차를 업그레이드 해주는 함수.
    private void CarUpgrade()
    {
        if (CUserInfo.GetInstance().CarLv >= typeof(ECarLV).GetEnumValues().Length - 1)
        {
            return;
        }

        if (CUserInfo.GetInstance().Money >= 10)
        {
            CUserInfo.GetInstance().Money -= 10;
            RepairEvent();
            MGameplayStatic.GetPlayerState().CurrentCar.gameObject.GetComponentInChildren <ParticleSystem>().Play();
        }
    }
Example #10
0
    //Quest를 랜덤으로 생성해서 리스트에 추가해주는 함수.
    public IEnumerator CreateQuestCoroutine()
    {
        WaitForSecondsRealtime wait = new WaitForSecondsRealtime(CreateTime);

        while (true)
        {
            SQuest RandomQuest = GetRandomQuest(AllQuestList);

            if (MGameplayStatic.GetPlayerState().CurrentQuest.Count >= 10)
            {
                MGameplayStatic.GetPlayerState().CurrentQuest.RemoveAt(0);
            }
            AddQuest(RandomQuest);
            yield return(wait);
        }
    }
 public void OnClickClear()
 {
     //StructEvent().Quest.IsSuccess = true;
     for (int i = 0; i < CUserInfo.GetInstance().QuestLst.Count; i++)
     {
         if (CUserInfo.GetInstance().QuestLst[i].Equals(Structure.Quest))
         {
             SQuest Quest = CUserInfo.GetInstance().QuestLst[i];
             CUserInfo.GetInstance().QuestLst.RemoveAt(i);
             Quest.IsSuccess = true;
             CUserInfo.GetInstance().QuestLst.Insert(i, Quest);
             Structure.Quest = new SQuest();
             MGameplayStatic.GetPlayerState().QuestSlotList.UpdateQuestList(CUserInfo.GetInstance().QuestLst);
         }
     }
     MPopupUI.GetInstance().ShowPopup("마트로 돌아가서 보상을 받으세요.");
     Time.timeScale = 1;
     SceneManager.UnloadSceneAsync(SceneManager.GetSceneByName("StructureUI"));
 }
Example #12
0
    //CarLV에 맞춰 Car를 설정해주는 함수.
    private void CarSetting()
    {
        if (MGameplayStatic.GetPlayerState() == null)
        {
            Debug.LogError("MGameplayStatic 인스턴스를 생성해주세요.");
            return;
        }

        for (int i = 0; i < Cars.Count; i++)
        {
            if (i.Equals(CUserInfo.GetInstance().CarLv))
            {
                Cars[i].SetActive(true);

                MGameplayStatic.GetPlayerState().CurrentCar = Cars[i].GetComponent <MCar>();
                SetCamera(Cars[i]);
            }
            else
            {
                Cars[i].SetActive(false);
            }
        }
    }
Example #13
0
 private Transform GetDestination()
 {
     CheckStart();
     Transform[] Destinaitons = MGameplayStatic.GetPlayerState().CurrentCar.GetComponent <MNPCArea>().GetActivedDestinations();
     return(Destinaitons[Random.Range(0, Destinaitons.Length)]);
 }
Example #14
0
    private IEnumerator CheckStart()
    {
        yield return(new WaitForEndOfFrame());

        MGameplayStatic.GetPlayerState().CurrentCar.gameObject.GetComponent <MNPCArea>().StartCoroutine();
    }