예제 #1
0
파일: Rooms.cs 프로젝트: ivanduzunov/DnD
        public static void FirstRoom(Hero hero, DnDContext context)
        {
            //and here
            Screans.Introduction.Show(hero);
            Screans.MainMenu.Show(hero);
            var room = context.Rooms.Where(r => r.Id == 1).FirstOrDefault();

            Console.Clear();
            Console.BackgroundColor = ConsoleColor.Black;
            Console.ForegroundColor = ConsoleColor.Red;

            Utility.PhaseTyper(room.Description);
            Utility.PhaseTyper("Its time for battle!"); Console.WriteLine();
            Utility.PhaseTyper("Press any key to continue..");
            Console.ReadKey();


            Utility.Battle(hero, context, room.Id);
            ChooseItems.Show(hero, context);
            Screans.MainMenu.Show(hero);
            Utility.Battle(hero, context, room.Id);
            ChooseItems.Show(hero, context);
            Screans.MainMenu.Show(hero);
            SecondRoom(hero, context);
        }
    SerializedProperty headColor; //一个[SerializeField][HideInInspector]且private的序列化的属性

    //初始化
    public void OnEnable()
    {
        seriObject = base.serializedObject;
        headColor  = seriObject.FindProperty("headColor");
        var tscript = (ChooseItems)(base.serializedObject.targetObject);

        if (tscript != null)
        {
            script     = tscript;
            rootObject = script.gameObject;
        }
        else
        {
        }
    }
    //清理
    public void OnDisable()
    {
        var tscript = (ChooseItems)(base.serializedObject.targetObject);

        if (tscript == null)
        {
            // 这种情况是脚本对象被移除了;
            //Debug.Log("tscript == null");
        }
        else
        {
            // 这种情况是编译脚本导致的重刷;
            //Debug.Log("tscript != null");
        }
        seriObject = null;
        script     = null;
        rootObject = null;
    }
예제 #4
0
        public ChooseItemsForm(ChooseItems.Mode selectionMode, string formTitle, List<ChooseItemsParameters> items, List<ChooseItemsParameters> selectedItems)
        {
            InitializeComponent();

            this.Text = formTitle;

            addItemsToGridviewForFirstTime(items, selectedItems);

            if (selectionMode == ChooseItems.Mode.MultipleItems)
            {
                gridviewItems.MultiSelect = true;
                gridviewSelectedItems.MultiSelect = true;
            }
            else if (selectionMode == ChooseItems.Mode.SingleItem)
            {
                gridviewItems.MultiSelect = false;
                gridviewSelectedItems.MultiSelect = false;
            };

            setGridviewLayout();
        }
예제 #5
0
파일: Rooms.cs 프로젝트: ivanduzunov/DnD
        public static void ThirdRoom(Hero hero, DnDContext context)
        {
            var room = context.Rooms.Where(r => r.Id == 3).FirstOrDefault();

            Console.Clear();
            Console.BackgroundColor = ConsoleColor.Black;
            Console.ForegroundColor = ConsoleColor.Red;

            Utility.PhaseTyper("Congratulations! You entered to the Final Dungeon!");
            Utility.PhaseTyper($"{hero.Name}'s health: {hero.Health}");
            Utility.PhaseTyper(room.Description);
            Utility.PhaseTyper("Fight! "); Console.WriteLine();
            Utility.PhaseTyper("Press any key to continue..");
            Console.ReadKey();

            Utility.Battle(hero, context, room.Id);
            ChooseItems.Show(hero, context);
            Screans.MainMenu.Show(hero);
            Utility.Battle(hero, context, room.Id);
            ChooseItems.Show(hero, context);
            Screans.MainMenu.Show(hero);
            FinalRoom(hero, context);
        }
    public override void OnInspectorGUI()
    {
        //base.OnInspectorGUI();
        serializedObject.Update();
        EditorGUILayout.PropertyField(serializedObject.FindProperty("camera"), true);
        EditorGUILayout.PropertyField(serializedObject.FindProperty("NamePrefab"), true);
        EditorGUILayout.PropertyField(serializedObject.FindProperty("okIcon"), true);
        EditorGUILayout.PropertyField(serializedObject.FindProperty("errorIcon"), true);
        EditorGUILayout.PropertyField(serializedObject.FindProperty("trueIcon"), true);
        EditorGUILayout.PropertyField(serializedObject.FindProperty("items"), true);
        if (GUILayout.Button("Run"))
        {
            script.cameraPath  = script.camera.transform.position;
            script.cameraAngle = script.camera.transform.rotation.eulerAngles;
            for (int i = 0; i < script.items.Count; i++)
            {
                if (script.items[i].obj == null)
                {
                    return;
                }
                GameObject ui = rootObject.transform.Find(script.items[i].obj.name) == null ? null: rootObject.transform.Find(script.items[i].obj.name).gameObject;
                if (ui == null)
                {
                    Vector3 pos = script.camera.WorldToScreenPoint(script.items[i].obj.transform.position);
                    ui                  = Instantiate(script.NamePrefab) as GameObject;
                    ui.name             = script.items[i].obj.name;
                    ui.transform.parent = rootObject.transform;
                    ui.GetComponent <RectTransform>().localScale = new Vector3(1, 1, 1);
                    ui.GetComponent <RectTransform>().position   = pos;
                }
                ui.GetComponent <soloItem>().errorIcon.GetComponent <Image>().sprite = script.errorIcon;
                ui.GetComponent <soloItem>().okIcon.GetComponent <Image>().sprite    = script.okIcon;
                ui.GetComponent <soloItem>().tureIcon.GetComponent <Image>().sprite  = script.trueIcon;
                ui.GetComponent <soloItem>().bIsOk        = script.items[i].isOk;
                ui.GetComponent <soloItem>().textName     = script.items[i].Name;
                ui.GetComponent <soloItem>().target       = script.items[i].obj;
                ui.GetComponent <soloItem>().LookAtCamera = script.camera;
                if (ui.GetComponent <soloItem>().target.GetComponent <Collider>() == null)
                {
                    ui.GetComponent <soloItem>().target.AddComponent <BoxCollider>();
                }
            }
        }
        EditorGUILayout.PropertyField(serializedObject.FindProperty("objectParent"), true);
        if (GUILayout.Button("Add GameObject"))
        {
            //Debug.Log("path=" + script.cameraPath);
            for (int i = 0; i < rootObject.transform.childCount; i++)
            {
                rootObject.transform.GetChild(i).GetComponent <soloItem>().target = script.objectParent.transform.Find(rootObject.transform.GetChild(i).name).gameObject;
                ItemObject obj = script.items.Find(temp => {
                    if (temp.Name == rootObject.transform.GetChild(i).GetComponent <Text>().text)
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                });
                obj.obj = rootObject.transform.GetChild(i).GetComponent <soloItem>().target;
            }
        }
        EditorGUILayout.LabelField("------ Paramter ------");
        EditorGUILayout.PropertyField(serializedObject.FindProperty("mode"), true);
        ChooseItems item = target as ChooseItems;

        if (item.mode == ChooseMode.Choose)
        {
            //EditorGUILayout.PropertyField(serializedObject.FindProperty("chooseParam"), true);
        }
        else if (item.mode == ChooseMode.MoveItem)
        {
            Rect rect = EditorGUILayout.BeginHorizontal("MoveParam");
            rect.height = 60;
            EditorGUILayout.PropertyField(serializedObject.FindProperty("moveParam"), true);
            if (GUILayout.Button("update"))
            {
                if (script.endObject != null && script.startObject != null)
                {
                    Vector3 v3 = script.endObject.transform.position - script.startObject.transform.position;
                    script.moveParam = v3;
                }
            }

            EditorGUILayout.EndHorizontal();
            EditorGUILayout.PropertyField(serializedObject.FindProperty("startObject"), true);
            EditorGUILayout.PropertyField(serializedObject.FindProperty("endObject"), true);
            EditorGUILayout.PropertyField(serializedObject.FindProperty("moveSpeed"), true);
        }
        serializedObject.ApplyModifiedProperties();
    }