Example #1
0
 void OnMouseInspector(TutorialCondition nowCondition)
 {
     // 1. 텍스트 타입 설정
     nowCondition.onMouseType = (TutorialCondition.EnumOnMouse)EditorGUILayout.EnumPopup
                                    ("마우스 대상",
                                    nowCondition.onMouseType);
 }
Example #2
0
    void UseInteractiveInspector(TutorialCondition nowCondition)
    {
        nowCondition.interactiveObjectType = (InteractiveState.EnumInteractiveObject)EditorGUILayout.EnumPopup
                                                 ("상호작용 타입",
                                                 nowCondition.interactiveObjectType);

        nowCondition.interactiveMount =
            EditorGUILayout.IntField("사용횟수", nowCondition.interactiveMount);
    }
Example #3
0
    void UseActionInspector(TutorialCondition nowCondition)
    {
        nowCondition.activeType = (TutorialCondition.EnumActive)EditorGUILayout.EnumPopup
                                      ("액티브 사용/횟수",
                                      nowCondition.activeType);

        nowCondition.activeMount =
            EditorGUILayout.FloatField("사용 횟수", nowCondition.activeMount);
    }
Example #4
0
    void SettingConditionInspector(TutorialCondition nowCondition)
    {
        switch (nowCondition.tutorialConditionType)
        {
        case TutorialCondition.EnumTutorialCondition.PLACE:
            PlaceInspector(nowCondition);
            break;

        case TutorialCondition.EnumTutorialCondition.ONMOUSE:
            OnMouseInspector(nowCondition);
            break;

        case TutorialCondition.EnumTutorialCondition.USEACTIVE:
            UseActionInspector(nowCondition);
            break;

        case TutorialCondition.EnumTutorialCondition.USEINTERACTIVE:
            UseInteractiveInspector(nowCondition);
            break;
        }
    }
Example #5
0
    void PlaceInspector(TutorialCondition nowCondition)
    {
        // 1. 위치를 설정
        nowCondition.tutorialPlaceType =
            (TutorialCondition.EnumTutorialPlace)EditorGUILayout.EnumPopup
                ("원하는 위치 정의",
                nowCondition.tutorialPlaceType);

        // 2. enum을 토대로 설정
        int tutorialPlaceType = (int)nowCondition.tutorialPlaceType;

        // 3. enum은 Place가 있을때만 작동하도록, 위치 Object 설정
        if (tutorialPlaceType <= tutorialPlace.places.Length - 1)
        {
            nowCondition.tutorialPlace =
                tutorialPlace.places[tutorialPlaceType];

            nowCondition.checkTutorialPlace =
                nowCondition.tutorialPlace.GetComponent <CheckTutorialPlace>();
        }
    }
 private bool IsConditionMet(TutorialCondition condition)
 {
     if (condition.Type == TutorialConditonType.RootPresent)
     {
         return(new TilePoint(map.Hero).Equals(condition.TilePoint) == condition.IsTrue);
     }
     if (condition.Type == TutorialConditonType.SubroutinePresent)
     {
         return(map.IsJumpable(condition.TilePoint) == condition.IsTrue);
     }
     if (condition.Type == TutorialConditonType.PieceSelected)
     {
         return(condition.IsTrue
             ? selectedPiece.Selected.IsPresentAnd(x => new TilePoint(x).Equals(condition.TilePoint))
             : !selectedPiece.Selected.IsPresent || !new TilePoint(selectedPiece.Selected.Value).Equals(condition.TilePoint));
     }
     if (condition.Type == TutorialConditonType.LevelHasReset)
     {
         return(hasLevelReset.Value == condition.IsTrue);
     }
     return(false);
 }
Example #7
0
    public override void OnInspectorGUI()
    {
        // 임시로 쥐로 설정한다.
        TutorialElement[] tutorialPlayer = tutorialGuide.mouseTutorialElements;


        // 1. 쥐 튜토리얼 수 받기
        DynamicTutorialElement();

        int count = tutorialGuide.maxMouseTutorialCount;

        EditorGUI.indentLevel++;

        for (int i = 0; i < count; i++)
        {
            EditorGUILayout.Space();
            EditorGUILayout.LabelField("--- " + (i + 1) + " 번째 튜토리얼 사항" + " ---");


            // 간단하게 튜토리얼 속성 사용
            TutorialElement nowElement = tutorialPlayer[i];

            // 조건 동적생성
            DynamicTutorialCondition(nowElement);

            // 액션 동적생성
            DynamicTutorialAction(nowElement);



            EditorGUILayout.Space();
            EditorGUILayout.Space();


            // 조건 설정
            int conditionCount = nowElement.maxTutorialCondition;

            for (int dtc = 0; dtc < conditionCount; dtc++)
            {
                // 간단하게 사용하기 위해 정의
                TutorialCondition nowCondition = nowElement.tutorialConditions[dtc];

                // 1. 타입 지정
                nowCondition.tutorialConditionType =
                    (TutorialCondition.EnumTutorialCondition)EditorGUILayout.EnumPopup
                        ("조건 정의",
                        nowCondition.tutorialConditionType);

                // 2. 타입별로 인스펙터 조절
                SettingConditionInspector(nowCondition);

                EditorGUILayout.Space();
            }



            EditorGUILayout.Space();
            EditorGUILayout.LabelField("-------------------");
            EditorGUILayout.Space();



            int actionCount = nowElement.maxTutorialAction;

            for (int dta = 0; dta < actionCount; dta++)
            {
                // 간단하게 설정하기
                TutorialAction nowAction = nowElement.tutorialActions[dta];


                // 1. 타입 지정
                nowAction.tutorialActionType =
                    (TutorialAction.EnumTutorialAction)EditorGUILayout.EnumPopup
                        ("액션 정의",
                        nowAction.tutorialActionType);

                // 2. 타입별로 인스펙터 조절
                SettingActionInspector(nowAction);

                EditorGUILayout.Space();
            }
        }
        EditorGUI.indentLevel--;
    }
 protected override void Start()
 {
     base.Start();
     graphicalEffects = (GraphicalEffectFactory)FindObjectOfType(typeof(GraphicalEffectFactory));
     tutorialPropagator = Tutorial.GetTutorialDescription(this, control);
     scenarioWindow = new ScenarioDescriptionGUI(tutorialPropagator);
     conditionChecker = tutorialPropagator.GetCondition();
     gui = GameGUIFactory.Create(tutorialPropagator.GetGUIOptions(),(IGUIMessages)this);
     tutorialPropagator.Start();
 }