コード例 #1
0
 public void ConsumeItem(StoryItem item)
 {
     item.LocationKey = "usedItem";
     RoomItems.Remove(item);
     ItemCount--;
     usedItems.Add(item);
 }
コード例 #2
0
    // Loads inventory from xml file
    void LoadInvetory()
    {
        XmlDocument xmlDocument = new XmlDocument();

        xmlDocument.LoadXml(INVENTORY_XML.text);
        XmlNodeList itemNodeList = xmlDocument.GetElementsByTagName("Item");

        // Read items from xml, copy from database, and add to inventory
        foreach (XmlNode itemInfo in itemNodeList)
        {
            XmlNodeList itemContent = itemInfo.ChildNodes;
            string      tempName    = "";
            string      tempCount   = "";

            foreach (XmlNode content in itemContent)
            {
                switch (content.Name)
                {
                case "ItemName":
                    tempName = content.InnerText;
                    break;

                case "ItemCount":
                    tempCount = content.InnerText;
                    break;
                }
            }

            // Get item dictionary, set count, and add item to list
            Dictionary <string, string> tempDict;

            if (itemDatabase != null)
            {
                tempDict = itemDatabase.GetItem(tempName);
                if (tempDict != null)
                {
                    switch (tempDict ["ItemType"])
                    {
                    case "EQUIP":
                        EquipItem tempEquip = new EquipItem(tempDict);
                        tempEquip.Count = int.Parse(tempCount);
                        playerEquipItems.Add(tempEquip);
                        break;

                    case "CONSUMABLE":
                        ConsumableItem tempConsumable = new ConsumableItem(tempDict);
                        tempConsumable.Count = int.Parse(tempCount);
                        playerConsumableItems.Add(tempConsumable);
                        break;

                    case "STORY":
                        StoryItem tempStory = new StoryItem(tempDict);
                        tempStory.Count = int.Parse(tempCount);
                        playerStoryItems.Add(tempStory);
                        break;
                    }
                }
            }
        }
    }
コード例 #3
0
 void DrawStoryItems(StoryItem si)
 {
     GUILayout.BeginVertical(EditorStyles.helpBox);
     if (si.requiredStoryItems.Count > 0)
     {
         EditorGUILayout.LabelField("Required Story Items");
         DrawRequiredRelationList(si);
     }
     if (GUILayout.Button("Add Required Story Item"))
     {
         StoryItemSearchDialog.Show(si, (i) =>
         {
             i.dependentStoryItems.Add(si);
             si.requiredStoryItems.Add(i);
             var p = serializedObject.FindProperty("_requiredStoryItems");
             p.InsertArrayElementAtIndex(0);
             p.GetArrayElementAtIndex(0).objectReferenceValue = i;
             serializedObject.ApplyModifiedProperties();
         });
     }
     if (si.dependentStoryItems.Count > 0)
     {
         EditorGUILayout.LabelField("Dependent Story Items");
         DrawDependentRelationList(si);
     }
     GUILayout.EndVertical();
 }
コード例 #4
0
 public void SetNewStoryItem(StoryItem item)
 {
     storyItem = item;
     playerController.enabled = false;
     TextField.SetActive(true);
     updateText();
 }
コード例 #5
0
        public static void Show(StoryItem target, System.Action <InventoryItem> onSelect)
        {
            var w = ScriptableWizard.DisplayWizard <InventoryItemSearchDialog>("Inventory Item Search", "Close");

            w.si       = target;
            w.onSelect = onSelect;
        }
コード例 #6
0
        public OutfitControl(string path)
        {
            InitializeComponent();

            RagdollNodeNumeric.FixMouseWheel();

            MenuTabs = new ToolStripMenuItem[] {
                new ToolStripMenuItem("Link ragdoll", null, LinkRagdollMenuItem_Click, Keys.Control | Keys.I),
                new ToolStripMenuItem("Link sprite", null, LinkSpriteMenuItem_Click, Keys.Control | Keys.Shift | Keys.I),
                new ToolStripMenuItem("Create node", null, CreateNodeMenuItem_Click, Keys.Control | Keys.A),
                new ToolStripMenuItem("Remove node", null, RemoveNodeMenuItem_Click, Keys.Control | Keys.D),
                new ToolStripMenuItem("Move node up", null, MoveNodeUpMenuItem_Click, Keys.Control | Keys.Up),
                new ToolStripMenuItem("Move node down", null, MoveNodeDownMenuItem_Click, Keys.Control | Keys.Down),
                new ToolStripMenuItem("Toggle grid", null, ToggleGridMenuItem_Click, Keys.Control | Keys.G),
                new ToolStripMenuItem("Toggle transparency", null, ToggleTransparencyMenuItem_Click, Keys.Control | Keys.H),
                new ToolStripMenuItem("Pixel perfect", null, PixelPerfectMenuItem_Click, Keys.Control | Keys.P),
                new ToolStripMenuItem("Background color", null, BackColorMenuItem_Click, Keys.Control | Keys.L),
                new ToolStripMenuItem("Reset position", null, ResetPositionMenuItem_Click, Keys.Control | Keys.R),
            };
            for (int i = 3; i <= 5; i++)
            {
                MenuTabs[i].Enabled = false;
            }

            GLSurface.MakeCurrent();
            LoadedResource          = new OutfitResource(path);
            RagdollLinkTextBox.Text = LoadedResource.Ragdoll.Link;
            Story = new StoryItem <StoryState>(new StoryState(LoadedResource));
            Story.ValueChanged += Story_ValueChanged;
            LoadedResource.Ragdoll.Reload();
            RagdollLinkTextBox.Subresource = LoadedResource.Ragdoll;
            LoadedResource.Ragdoll.Resource?.Clothe(LoadedResource);

            ResourcePath = path;
            ResourceName = Path.GetFileName(path);

            GetTab("Toggle grid").Checked         = LoadedResource.GridEnabled;
            GetTab("Toggle transparency").Checked = LoadedResource.Transparency;
            GetTab("Pixel perfect").Checked       = LoadedResource.PixelPerfect;

            NodesListBox.BeginUpdate();
            while (NodesListBox.Items.Count < LoadedResource.Count)
            {
                NodesListBox.Items.Add("Node: " + NodesListBox.Items.Count);
            }
            while (NodesListBox.Items.Count > LoadedResource.Count)
            {
                NodesListBox.Items.RemoveAt(NodesListBox.Items.Count - 1);
            }
            NodesListBox.EndUpdate();

            GLSurface.BackColor = Color.FromArgb(LoadedResource.BackColor);

            ClotheTypeComboBox.Items.AddRange(Enum.GetNames(typeof(OutfitResource.Node.Clothe)));

            UpdateRedactor();

            GLFrameTimer.Start();
        }
コード例 #7
0
 public Main()
 {
     StoryItem.Add("Dorazil jsi do Vergenu. Jsi zde kvůli té legendě. Pokud se ti podaří najít ono legendární brnění nekonečna, můžeš se utkat s Drakem.");
     StoryItem.Add("Začni s prozkoumáním okolních oblastí.");
     StoryItem.Add("Získal jsi všechny kusy brnění nekonečna. Nyní máš možnost utkat se s drakem. Mužeš ale jít i do už prozkoumaných oblastí a dál se zlepšovat!");
     StoryItem.Add("Porazil jsi draka, a získal jsi jeho sílu! Nyní je z tebe opravdový drakobijec. Se svou novou zbrojí teď můžeš dokázat mnoho, a tak se zase vydáváš na další adventůru.");
     StoryItem.Add("");
 }
コード例 #8
0
 public Doren()
 {
     StoryItem.Add("Jsi v Dorenu. Jsou tu jen bažiny, husté lesy, a poněkud vražedná fauna. Skus se podívat kolem, může tu být kus brnění.");
     StoryItem.Add("Zabil jsi monstrum. Kus brnění jsi ale nenašel, skus koukat dál.");
     StoryItem.Add("Našel jsi zohavené monstrum, které bude mnohem těžší zkolit. Možná má ale u sebe něco ceného!");
     StoryItem.Add("Ze zabitého monstra vypadnul kus brnění! Zkus teď navštívit některou z jiných oblastí a najdi ostatní kusy!");
     StoryItem.Add("");
 }
コード例 #9
0
ファイル: Var_atra.cs プロジェクト: koloniz/Dracak
        public Var_atra()
        {
            StoryItem.Add("Jsi ve městě Var Atra. Je zde možnost utkat se v aréně, nebo jít za obchodníkem, který prodává upgrade a kus brnění nekonečna.");
            StoryItem.Add("Vyhrál jsi v aréně!");
            StoryItem.Add("Získal jsi místní kus brnění nekonečna! Zkus prozkoumat další oblast!");


            StoryItem.Add("");
        }
コード例 #10
0
ファイル: UIDialogueWindow.cs プロジェクト: gamevagrant/March
    private void ShowStory(StoryItem story)
    {
        lastDialogue = curDialogue;
        curDialogue  = story;
        if (lastDialogue != null && curDialogue != null)
        {
            if (lastDialogue.weather != curDialogue.weather)
            {
                qy.GameMainManager.Instance.weatherManager.StopWeather((WeatherManager.WeatherEnum)lastDialogue.weather);
            }

            /*
             * StoryItem.Effect lastGray = lastDialogue.effects.Find((effect)=>{ return effect.type == StoryItem.Effect.EffectType.Gray; });
             * StoryItem.Effect currGray = curDialogue.effects.Find((effect) => { return effect.type == StoryItem.Effect.EffectType.Gray; });
             * if (lastGray!=null && currGray == null)
             * {
             *  GrayEffect(1);
             * }
             */
        }
        if (string.IsNullOrEmpty(curDialogue.personLocation))
        {
            curDialogue.personLocation = UnityEngine.Random.Range(0, 2).ToString();
        }


        if (string.IsNullOrEmpty(curDialogue.bgFile))
        {
            imgBG.gameObject.SetActive(false);
        }
        else if (lastDialogue == null || curDialogue.bgFile != lastDialogue.bgFile)
        {
            BackGroundColor = Color.black;
            var sp = March.Core.ResourceManager.ResourceManager.instance.Load <Sprite>(Configure.StoryBackground, curDialogue.bgFile);
            if (sp != null)
            {
                imgBG.sprite = sp;
                imgBG.DOFade(1, 0.5f);
                RectTransform imgRectTF = imgBG.transform as RectTransform;
                imgRectTF.sizeDelta = new Vector2(0, imgRectTF.rect.width / (sp.texture.width / (float)sp.texture.height));
                imgBG.gameObject.SetActive(true);
                //imgBG.DOColor(Color.white, 0.5f).SetEase(Ease.OutCubic);
                DOTween.To(() => BackGroundColor, x => BackGroundColor = x, Color.white, 0.5f).SetEase(Ease.OutCubic);
            }
        }

        string dialog     = curDialogue.dialogue;
        string personFile = lastDialogue == null || curDialogue.personFile != lastDialogue.personFile ? curDialogue.personFile : "";

        //如果这句对话和上句对话不是一个人说的则播放对话框动画
        ShowDialog(dialog, personFile, curDialogue.personLocation, lastDialogue == null || lastDialogue.personLocation != curDialogue.personLocation);

        WeatherManager.WeatherEnum weather = (WeatherManager.WeatherEnum)curDialogue.weather;
        qy.GameMainManager.Instance.weatherManager.StartWeather(weather);

        StartCoroutine(ShowEffect(curDialogue.effects));
    }
コード例 #11
0
        public Kaer_trolde()
        {
            StoryItem.Add("Dorazil jsi do města Kaer Trolde. Konají se zde utkání mezi bojovníky, a vypadá to, že hlavní cena je kus brnění nekonečna!");
            StoryItem.Add("Vyhrál jsi v zápas! Jsi zase o kus blíž k hlavní ceně!");
            StoryItem.Add("Vyhrál jsi turnaj! Jako cenu dostáváš kus brnění nekonečna!");



            StoryItem.Add("");
        }
コード例 #12
0
        public Black_reach_island()
        {
            StoryItem.Add("Dorazil jsi na ostrov Black Reach. Tajemný hlas ti říká, že pokud ho zbavíš 4 monster, dá ti kus brnění, které hledáš.");
            StoryItem.Add("'Výborně, zkolil jsi jedno z monster!', říká tajemný hlas");
            StoryItem.Add("'Gratuluji, zkolil jsi všechna monstra. Za odměnu ti dám tvůj kus brnění.', řekl tajemný hlas, ve stejné chvíli, kdy se před tebou zjevil další kus brnění.");



            StoryItem.Add("");
        }
コード例 #13
0
 private void updateText()
 {
     TextComp.text = storyItem.NextText();
     if (TextComp.text == "")
     {
         storyItem.gameObject.SetActive(false);
         storyItem = null;
         TextField.SetActive(false);
         playerController.enabled = true;
     }
 }
コード例 #14
0
        new public bool AddItem(StoryItem item)
        {
            if (ItemCount < Slots)
            {
                RoomItems.Add(item);
                ItemCount++;
                return(true);
            }

            return(false);
        }
コード例 #15
0
        private StoryItem ConvertToStoryItem(Story story)
        {
            StoryItem item = null;

            if (story != null)
            {
                item = new StoryItem(story, _requestStoryEditing, _requestStoryRemoving, SetUserAsExecutor, _menuBasedShellViewModel.CurrentUser.Id);
                item.StoryUpdated += OnStoryItemUpdated;
            }

            return(item);
        }
コード例 #16
0
    void MakeItems()
    {
        for (int i = 0; i < AllItems.Count; i++)
        {
            GameObject ItemObj = Instantiate(RefItem);
            ItemObj.name = AllItems[i] + "_Obj";
            ItemObj.transform.GetChild(0).GetComponent <TextMesh>().text = AllItems[i];
            StoryItem _storiItem = ItemObj.GetComponent <StoryItem>();

            // _HeldObject = (GameEnums.StoryObjects)Enum.TryParse(typeof(GameEnums.StoryObjects), argObjName, true); //true ->  case insensitive
        }
    }
コード例 #17
0
 void DrawConfig(StoryItem si)
 {
     GUILayout.BeginVertical(EditorStyles.helpBox);
     GUILayout.Label("Text");
     EditorGUILayout.PropertyField(serializedObject.FindProperty("text"), GUIContent.none);
     GUILayout.Label("Audio (Optional)");
     EditorGUILayout.PropertyField(serializedObject.FindProperty("audioClip"), GUIContent.none);
     GUILayout.Label("Disable When Discovered?");
     EditorGUILayout.PropertyField(serializedObject.FindProperty("disableWhenDiscovered"), GUIContent.none);
     GUILayout.Label("ID (Optional)");
     EditorGUILayout.PropertyField(serializedObject.FindProperty("ID"), GUIContent.none);
     GUILayout.EndVertical();
 }
コード例 #18
0
        void DrawInventoryItems(StoryItem si)
        {
            GUILayout.BeginVertical(EditorStyles.helpBox);
            if (GUILayout.Button("Add Required Inventory Item"))
            {
                InventoryItemSearchDialog.Show(si, (i) =>
                {
                    var p = serializedObject.FindProperty("_requiredInventoryItems");
                    p.InsertArrayElementAtIndex(0);
                    p.GetArrayElementAtIndex(0).objectReferenceValue = i;
                    serializedObject.ApplyModifiedProperties();
                });
            }
            InventoryItem remove = null;

            foreach (var i in si.requiredInventoryItems)
            {
                GUILayout.BeginHorizontal();
                GUI.color = Color.red;
                if (GUILayout.Button(new GUIContent("", "Remove"), EditorStyles.radioButton, GUILayout.Width(16)))
                {
                    remove = i;
                }
                GUI.color = Color.white;
                if (GUILayout.Button(Escape(i.name), buttonStyle))
                {
                    Selection.activeGameObject = i.gameObject;
                    SceneView.lastActiveSceneView.FrameSelected();
                }
                GUILayout.EndHorizontal();
            }
            if (remove != null)
            {
                var p = serializedObject.FindProperty("_requiredInventoryItems");
                //I can't believe this API is real.
                var removeIndex = -1;
                for (var i = 0; i < p.arraySize; i++)
                {
                    if (p.GetArrayElementAtIndex(i).objectReferenceValue == remove)
                    {
                        removeIndex = i;
                        break;
                    }
                }
                p.DeleteArrayElementAtIndex(removeIndex);
                p.DeleteArrayElementAtIndex(removeIndex);
                serializedObject.ApplyModifiedProperties();
            }

            GUILayout.EndVertical();
        }
コード例 #19
0
        private void FillStoryDialog(object param)
        {
            if (param is StoryItem && StoryDialogViewModel != null)
            {
                StoryItem item = param as StoryItem;

                StoryDialogViewModel.Name            = item.Name;
                StoryDialogViewModel.Importance      = item.Importance;
                StoryDialogViewModel.InitialEstimate = item.InitialEstimate;
                StoryDialogViewModel.Status          = item.Status;
                StoryDialogViewModel.HowToDemo       = item.HowToDemo;
                StoryDialogViewModel.Notes           = item.Notes;
            }
        }
コード例 #20
0
        public EventControl(string path)
        {
            InitializeComponent();

            MenuTabs = new ToolStripMenuItem[] {
            };

            LoadedResource      = new EventResource(path);
            Story               = new StoryItem <State>(new State(LoadedResource));
            Story.ValueChanged += Story_ValueChanged;

            ResourcePath = path;
            ResourceName = Path.GetFileName(path);
        }
コード例 #21
0
        private List <StoryItem> ConvertToStoryItems(List <Story> stories)
        {
            List <StoryItem> items = new List <StoryItem>();

            if (stories != null)
            {
                foreach (Story story in stories)
                {
                    StoryItem newItem = ConvertToStoryItem(story);
                    items.Add(newItem);
                }
            }

            return(items);
        }
コード例 #22
0
        private void OnStoryItemUpdated(object sender, StoryItem item)
        {
            if (item != null)
            {
                ComponentsContainer.Get <Dispatcher>().Invoke(
                    delegate
                {
                    OnPropertyChanged("WaitingForExecutorStories");
                    OnPropertyChanged("InProgressStories");
                    OnPropertyChanged("CompletedStories");

                    //AllUserStories.Remove(item); // It will throw exception in view.
                    //AllUserStories.Add(item);
                });
            }
        }
コード例 #23
0
        public SpriteControl(string path)
        {
            InitializeComponent();

            FramesNumeric.FixMouseWheel();
            DelayNumeric.FixMouseWheel();
            ImgboxWNumeric.FixMouseWheel();
            ImgboxHNumeric.FixMouseWheel();
            AxisXNumeric.FixMouseWheel();
            AxisYNumeric.FixMouseWheel();
            AngleNumeric.FixMouseWheel();

            MenuTabs = new ToolStripMenuItem[] {
                new ToolStripMenuItem("Link texture", null, LinkTextureMenuItem_Click, Keys.Control | Keys.I),
                new ToolStripMenuItem("Adjust size", null, AdjustSizeMenuItem_Click, Keys.Control | Keys.A),
                new ToolStripMenuItem("Pixel perfect", null, PixelPerfectMenuItem_Click, Keys.Control | Keys.P),
                new ToolStripMenuItem("Background color", null, BackColorMenuItem_Click, Keys.Control | Keys.L),
                new ToolStripMenuItem("Reset position", null, ResetPositionMenuItem_Click, Keys.Control | Keys.R),
            };

            GLSurface.MakeCurrent();
            LoadedResource      = new SpriteResource(path);
            Story               = new StoryItem <State>(new State(LoadedResource));
            Story.ValueChanged += Story_ValueChanged;

            MenuTabs[4].Checked = LoadedResource.PixelPerfect;

            ResourcePath = path;
            ResourceName = Path.GetFileName(path);

            LoadedResource.Texture.SynchronizingObject = this;
            LoadedResource.Texture.Reloaded           += Texture_Reloaded;

            FramesNumeric.Value     = LoadedResource.FramesCount;
            DelayNumeric.Value      = (decimal)LoadedResource.FrameDelay;
            ImgboxWNumeric.Value    = (decimal)LoadedResource.ImgboxW;
            ImgboxHNumeric.Value    = (decimal)LoadedResource.ImgboxH;
            AxisXNumeric.Value      = (decimal)LoadedResource.AxisX;
            AxisYNumeric.Value      = (decimal)LoadedResource.AxisY;
            AngleNumeric.Value      = (decimal)LoadedResource.Angle;
            VFramesCheckBox.Checked = LoadedResource.VerticalFrames;
            LinkTextBox.Text        = LoadedResource.Texture.Link;

            GLSurface.BackColor = Color.FromArgb(LoadedResource.BackColor);

            GLFrameTimer.Start();
        }
コード例 #24
0
        public StoryItem GetStory(string id)
        {
            string jsonString;
            var    js      = new JavaScriptSerializer();
            var    request = this._request.Get(id);

            var response = request.GetResponse();

            using (var sr = new StreamReader(response.GetResponseStream()))
            {
                jsonString = sr.ReadToEnd();
            }

            StoryItem story = JsonConvert.DeserializeObject <StoryItem>(jsonString);

            return(story);
        }
コード例 #25
0
        public ToolControl(string path)
        {
            InitializeComponent();

            FirePointXNumeric.FixMouseWheel();
            FirePointYNumeric.FixMouseWheel();
            FireVectorXNumeric.FixMouseWheel();
            FireVectorYNumeric.FixMouseWheel();

            MenuTabs = new ToolStripMenuItem[] {
                new ToolStripMenuItem("Link sprite", null, LinkSpriteMenuItem_Click, Keys.Control | Keys.I),
                new ToolStripMenuItem("Unlink sprite", null, UnlinkSpriteMenuItem_Click, Keys.Control | Keys.U),
                new ToolStripMenuItem("Create part", null, CreatePartMenuItem_Click, Keys.Control | Keys.A),
                new ToolStripMenuItem("Remove part", null, RemovePartMenuItem_Click, Keys.Control | Keys.D),
                new ToolStripMenuItem("Adjust fire vector", null, AdjustFireVectorMenuItem_Click, Keys.Control | Keys.F),
                new ToolStripMenuItem("Toggle transparency", null, ToggleTransparencyMenuItem_Click, Keys.Control | Keys.H),
                new ToolStripMenuItem("Pixel perfect", null, PixelPerfectMenuItem_Click, Keys.Control | Keys.P),
                new ToolStripMenuItem("Background color", null, BackColorMenuItem_Click, Keys.Control | Keys.L),
                new ToolStripMenuItem("Reset position", null, ResetPositionMenuItem_Click, Keys.Control | Keys.R),
            };

            GLSurface.MakeCurrent();

            LoadedResource      = new ToolResource(path);
            Story               = new StoryItem <State>(new State(LoadedResource));
            Story.ValueChanged += Story_ValueChanged;
            ResourcePath        = path;
            ResourceName        = Path.GetFileName(path);

            ActionTextBox.TextChanged       += (object sender, EventArgs e) => SyncTextBoxValue(sender, LoadedResource.ActionName, v => LoadedResource.ActionName = v);
            FirePointXNumeric.ValueChanged  += (object sender, EventArgs e) => SyncNumericValue(sender, LoadedResource.FirePointX, v => LoadedResource.FirePointX = v);
            FirePointYNumeric.ValueChanged  += (object sender, EventArgs e) => SyncNumericValue(sender, LoadedResource.FirePointY, v => LoadedResource.FirePointY = v);
            FireVectorXNumeric.ValueChanged += (object sender, EventArgs e) => SyncNumericValue(sender, LoadedResource.FireVectorX, v => LoadedResource.FireVectorX = v);
            FireVectorYNumeric.ValueChanged += (object sender, EventArgs e) => SyncNumericValue(sender, LoadedResource.FireVectorY, v => LoadedResource.FireVectorY = v);
            AttachedCheckBox.CheckedChanged += (object sender, EventArgs e) => SyncCheckBoxValue(sender, LoadedResource.AngleAttached, v => LoadedResource.AngleAttached = v);

            PartsListBox.SelectedIndexChanged += (object sender, EventArgs e) => RestoreChanges(false);
            PartsListBox.ItemCheck            += (object sender, ItemCheckEventArgs e) => SyncCheckedValue(sender, e, LoadedResource.SpriteLockedOnCycle);

            GetTab("Pixel perfect").Checked       = LoadedResource.PixelPerfect;
            GetTab("Toggle transparency").Checked = LoadedResource.Transparency;
            RestoreChanges();

            GLFrameTimer.Start();
        }
コード例 #26
0
        private void SetUserAsExecutor(StoryItem obj)
        {
            if (SelectedStory == null)
            {
                return;
            }

            _menuBasedShellViewModel.IsLoadingData = true;

            new Task(() =>
            {
                try
                {
                    Story story = SelectedStory.Story;
                    SelectedStory.ExecutorId = _menuBasedShellViewModel.CurrentUser.Id;
                    SetStatus(ref story, StoryStatus.InProgress);

                    _logger.Debug($"Started editing story with id '{SelectedStory.Id}'.");

                    _storiesDataModel.Update(story);

                    SelectedStory.Story = story;

                    ComponentsContainer.Get <Dispatcher>().Invoke(
                        delegate
                    {
                        OnPropertyChanged("WaitingForExecutorStories");
                        OnPropertyChanged("InProgressStories");
                        OnPropertyChanged("CompletedStories");

                        //AllUserStories.Remove(SelectedStory); // It will throw exception in view.
                        //AllUserStories.Add(SelectedStory);
                    });
                }
                catch (Exception ex)
                {
                    ShowMessage($"User story doesn't edited: technical issues encountered.");
                    _logger.Fatal(ex);
                }

                _menuBasedShellViewModel.IsLoadingData = false;
                HideDialog?.Invoke(this, null);
            }).Start();
        }
コード例 #27
0
        static void DrawStoryItemGizmos(StoryItem si, GizmoType gizmoType)
        {
            if (IzZoomed(si.transform))
            {
                if (si.requiredStoryItems != null)
                {
                    foreach (var i in si.requiredStoryItems)
                    {
                        Handles.color = new Color(1, 0.99f, 0);
                        var delta = (i.transform.position - si.transform.position).normalized;
                        var left  = Vector3.Cross(Vector3.forward, delta);
                        var start = i.transform.position - delta * 0.25f;
                        var end   = si.transform.position + delta * 0.25f;
                        Handles.DrawDottedLine(end, start, 3);
                        Handles.DrawDottedLine(end, end + (left + delta) * 0.1f, 2);
                        Handles.DrawDottedLine(end, end - (left - delta) * 0.1f, 2);
                    }
                }
                if (si.requiredInventoryItems != null)
                {
                    foreach (var i in si.requiredInventoryItems)
                    {
                        Handles.color = new Color(1, 0.99f, 0);
                        var delta = (i.transform.position - si.transform.position).normalized;
                        var left  = Vector3.Cross(Vector3.forward, delta);
                        var start = i.transform.position - delta * 0.25f;
                        var end   = si.transform.position + delta * 0.25f;
                        Handles.DrawDottedLine(end, start, 3);
                        Handles.DrawDottedLine(end, end + (left + delta) * 0.1f, 2);
                        Handles.DrawDottedLine(end, end - (left - delta) * 0.1f, 2);
                    }
                }

                if (si.text != null && si.text != string.Empty)
                {
                    Handles.Label(si.transform.position, si.text, EditorStyles.helpBox);
                }
            }
            else
            {
                Gizmos.DrawIcon(si.transform.position, "story");
            }
        }
コード例 #28
0
    public override string MakeSentence()
    {
        string item_name = "$nothing";
        string sent      = base.MakeSentence();

        if (Random.Range(0f, 1f) < successRate * player.perception.RuntimeValue)
        {
            // give player an item
            StoryItem storyItem = items[Random.Range(0, items.Length - 1)];
            storyItem.playerOwns++;
            item_name = storyItem.DisplayNameColored;
        }
        sent = sent.Replace("$item", item_name);
        foreach (MadLib r in madlibs)
        {
            sent = sent.Replace(r.search, r.Replace);
        }
        sent = sent.Replace("$nothing", "nothing");
        return(sent);
    }
コード例 #29
0
ファイル: UIDialogueWindow.cs プロジェクト: gamevagrant/March
 protected override void StartShowWindow(object[] data)
 {
     beginID = data[0].ToString();
     Debug.Log("播放剧情" + beginID.ToString());
     lastDialogue = null;
     curDialogue  = null;
     dialogueBox.GetComponent <CanvasGroup>().alpha = 0;
     topBlack.sizeDelta    = new Vector2(topBlack.sizeDelta.x, 0);
     bottomBlack.sizeDelta = new Vector2(bottomBlack.sizeDelta.x, 0);
     dialogueBox.gameObject.SetActive(false);
     if (personLeft != null)
     {
         personLeft.gameObject.SetActive(false);
     }
     if (personRight != null)
     {
         personRight.gameObject.SetActive(false);
     }
     imgBG.color = new Color(1, 1, 1, 0.01f);
 }
コード例 #30
0
    private void TrackPosition()
    {
        // Read current GPS location
        float currentLatitude  = locationService.lastData.latitude;
        float currentLongitude = locationService.lastData.longitude;

        text.text = "My Location: " + currentLatitude + ", " + currentLongitude;

        if (!allItemsCollected)
        {
            // Calculate how far is next story item to collect
            float distanceToNextItem = nextStoryItem.DistanceFromLocation(currentLatitude, currentLongitude);
            text.text += "\nDistance: " + distanceToNextItem.ToString();

            if (distanceToNextItem <= DISTANCE_TRESHOLD)
            {
                // Prepare for the next scene and load it
                PlayerPrefs.SetString("storyItem", nextStoryItem.Name);

                // Item is to be collected, remove it
                storyItems.Remove(nextStoryItem);
                if (storyItems.Count > 0)
                {
                    nextStoryItem = storyItems [0];
                }
                else
                {
                    allItemsCollected = true;
                }

                soundPlaying = true;
                directionalAudioSource.Stop();
                StartCoroutine(ChangeScene());
            }
        }

        CalculateSoundDirection(currentLatitude, currentLongitude, nextStoryItem.Coordinates.x, nextStoryItem.Coordinates.y);
        CalculateDistance(currentLatitude, currentLongitude, nextStoryItem.Coordinates.x, nextStoryItem.Coordinates.y);
    }