Esempio n. 1
0
    public void SetDice(Mythos mythos, int num, int min, int max)
    {
        pressText.SetActive(true);

        use = Use.MythosEvent;

        eventMythos = mythos;

        diceCount = num;
        minValue  = min;
        maxValue  = max;

        // 주사위 수가 0이면 더 이상 진행할 필요 x, 배열도 모두 0으로 되있으므로 SuccessOrFailure는 0을 반환 -> 이벤트 실패
        if (diceCount <= 0)
        {
            CallResultFunction();
            return;
        }


        for (int i = 0; i < diceCount; i++)
        {
            GameObject instanceDice = Instantiate(dicePrefab, Vector3.zero, Quaternion.Euler(0, 0, 0));
            instanceDice.transform.parent        = mainCamera.transform;
            instanceDice.transform.localPosition = new Vector3(i * 2, -4, i * 2 + 6);


            dices.Add(instanceDice.GetComponent <Dice>());
        }

        readyThrow = true;
    }
    public void MythosEventStarted()
    {
        mythosEventMenu.SetActive(true);
        App.Controller.openMenuController.OpenMenu(mythosEventMenu);
        continueButton.SetActive(false);

        Mythos m = App.Model.mythosModel.activeMythos;

        eventTitle.text       = m.mythosTitle;
        eventDescription.text = m.mythosText;
    }
Esempio n. 3
0
    // 알고리즘에 순서변경알고리즘 대체
    public void Suffle()
    {
        int num = mythosDeck.Count;

        for (int i = 0; i < num; i++)
        {
            int k = UnityEngine.Random.Range(i, num);

            Mythos value = mythosDeck[i];
            mythosDeck[i] = mythosDeck[k];
            mythosDeck[k] = value;
        }
    }
    public void StartRumorEvent()
    {
        Mythos m = App.Model.mythosModel.activeMythos;

        m.SpawnRumor();
        App.Model.rumorMythosModel.StartRumor(m.ongoingEffect);
        App.Controller.ongoingEffectController.NewOngoingEffect(m.ongoingEffect);
        if (m.ongoingEffect.location != "")
        {
            Location l = App.Model.locationModel.FindLocationByName(m.ongoingEffect.location);
            App.Controller.locationController.SpawnOngoingEffect(m.ongoingEffect, l);
        }
    }
Esempio n. 5
0
    IEnumerator MythosStepCoroutine()
    {
        mainButton.SetActive(false);
        yield return(new WaitForSeconds(0.8f));

        pulledMythos = mythosDeck.DrawCard();

        mythosImage.sprite = Resources.Load <Sprite>("MythosImages/" + pulledMythos.title);
        mythosPanel.SetActive(true);

        currentPosition = eventCard.transform.position;


        // 카드 좌측 상단으로 이동 애니메이션
        eventCard.GetComponent <Animator>().SetBool("Flip", true);
        yield return(new WaitForSeconds(1.5f));

        // 1. 차원문 생성
        GameStateUI.instance.UpdateStateUI("차원문 생성");
        GateController.instance.OpenGate(pulledMythos.gateLocal.name);
        // 2. 몬스터 생성
        MonsterController.instance.CreateMonster(pulledMythos.gateLocal);

        MaincameraController.instance.ChangeTarget(pulledMythos.gateLocal.gameObject);
        yield return(new WaitForSeconds(2.0f));

        // 3. 단서 생성
        GameStateUI.instance.UpdateStateUI("단서 생성");
        clue = Instantiate(cluePrefab, pulledMythos.clueLocal.transform);
        clue.transform.localPosition = new Vector3(0.18f, 2.3f, 0.75f);

        MaincameraController.instance.ChangeTarget(pulledMythos.clueLocal.gameObject);
        yield return(new WaitForSeconds(2.0f));

        // 4. 몬스터 이동
        IEnumerator coroutine = MonsterController.instance.MoveOneByOne(pulledMythos.whiteSimbol, MonsterMoveController.Color.White);

        yield return(StartCoroutine(coroutine));

        coroutine = MonsterController.instance.MoveOneByOne(pulledMythos.blackSimbol, MonsterMoveController.Color.Black);
        yield return(StartCoroutine(coroutine));

        eventCard.GetComponent <Animator>().SetBool("Flip", false);

        // 5. 이벤트 발생
        pulledMythos.OccurEvent();

        mainButton.SetActive(true);
    }
Esempio n. 6
0
    public void StartMythos()
    {
        mythosMenu.SetActive(true);
        App.Controller.openMenuController.OpenMenu(mythosMenu);
        Mythos m = App.Model.mythosModel.activeMythos;

        mythosTitle.text = m.mythosTitle;
        mythosText.text  = m.mythosFlavorText;

        foreach (Transform child in mythosEventsParent.transform)
        {
            Destroy(child.gameObject);
        }
        foreach (MythosEffects me in m.effects)
        {
            if (me == MythosEffects.AdvanceOmen)
            {
                GameObject go = Instantiate(eventIcon, mythosEventsParent.transform);
                go.GetComponent <Image>().sprite = App.Model.mythosSpritesModel.advanceOmenSprite;
            }
            if (me == MythosEffects.ResolveReckoning)
            {
                GameObject go = Instantiate(eventIcon, mythosEventsParent.transform);
                go.GetComponent <Image>().sprite = App.Model.mythosSpritesModel.reckoningSprite;
            }
            if (me == MythosEffects.SpawnGates)
            {
                GameObject go = Instantiate(eventIcon, mythosEventsParent.transform);
                go.GetComponent <Image>().sprite = App.Model.gameSpritesModel.gateSprite;
            }
            if (me == MythosEffects.SpawnClues)
            {
                GameObject go = Instantiate(eventIcon, mythosEventsParent.transform);
                go.GetComponent <Image>().sprite = App.Model.gameSpritesModel.clueTokenSprite;
            }
            if (me == MythosEffects.MonsterSurge)
            {
                GameObject go = Instantiate(eventIcon, mythosEventsParent.transform);
                go.GetComponent <Image>().sprite = App.Model.mythosSpritesModel.monsterSurgeSprite;
            }
            if (me == MythosEffects.Rumor)
            {
                GameObject go = Instantiate(eventIcon, mythosEventsParent.transform);
                go.GetComponent <Image>().sprite = App.Model.mythosSpritesModel.rumorSprite;
            }
        }
    }
Esempio n. 7
0
    public void CopyValue(ref Mythos _mythos)
    {
        title      = _mythos.title;
        explain    = _mythos.explain;
        mythosType = _mythos.mythosType;

        gateLocal = _mythos.gateLocal;
        clueLocal = _mythos.clueLocal;

        for (int i = 0; i < _mythos.whiteSimbol.Count; i++)
        {
            whiteSimbol.Add(_mythos.whiteSimbol[i]);
        }

        for (int i = 0; i < _mythos.blackSimbol.Count; i++)
        {
            blackSimbol.Add(_mythos.blackSimbol[i]);
        }
    }
    IEnumerator MythosStepCoroutine()
    {
        pulledMythos = mythosDeck.DrawCard();

        mythosImage.sprite = Resources.Load <Sprite>("MythosImages/" + pulledMythos.title);
        mythosPanel.SetActive(true);

        currentPosition = eventCard.transform.position;


        // 카드 좌측 상단으로 이동 애니메이션
        eventCard.GetComponent <Animator>().SetBool("Flip", true);

        // 차원문 생성

        GateController.instance.OpenGate(pulledMythos.gateLocal.name);

        // 몬스터 생성
        MonsterController.instance.CreateMonster(pulledMythos.gateLocal);

        // 단서 생성
        clue = Instantiate(cluePrefab, pulledMythos.clueLocal.transform);
        clue.transform.localPosition = new Vector3(0, -1.5f, 1.5f);

        // 몬스터 이동

        IEnumerator coroutine = MonsterController.instance.MoveOneByOne(pulledMythos.whiteSimbol, MonsterMoveController.Color.White);

        yield return(StartCoroutine(coroutine));


        coroutine = MonsterController.instance.MoveOneByOne(pulledMythos.blackSimbol, MonsterMoveController.Color.Black);
        yield return(StartCoroutine(coroutine));

        eventCard.GetComponent <Animator>().SetBool("Flip", false);

        pulledMythos.OccurEvent();
    }
 public void StartMythosCard(Mythos m)
 {
     App.Model.mythosModel.StartMythosCard(m);
 }
Esempio n. 10
0
 public void StartMythosCard(Mythos m)
 {
     activeMythos = m;
     activeIndex  = -1;
     App.View.mythosView.StartMythos();
 }