Beispiel #1
0
        /// <summary>
        /// Insère un event
        /// </summary>
        /// <returns></returns>
        public static VO_Event CreateEvent(Enums.EventType currentEvent, Guid objectId)
        {
            VO_Event newItem = new VO_Event();

            newItem.PageList = new List <VO_Page>();
            VO_Page FirstPage = CreatePage(currentEvent, 0, objectId);

            FirstPage.PageEventType = currentEvent;
            FirstPage.PageNumber    = newItem.PageList.Count + 1;

            VO_Script Script = null;

            switch (currentEvent)
            {
            case Enums.EventType.Animation:
                Script = ObjectsFactory.CreateScript(Enums.ScriptType.AnimationEvents);
                break;

            case Enums.EventType.Character:
                Script = ObjectsFactory.CreateScript(Enums.ScriptType.CharacterEvents);
                break;

            case Enums.EventType.Event:
                Script = ObjectsFactory.CreateScript(Enums.ScriptType.Events);
                break;
            }


            FirstPage.Script = Script;

            newItem.PageList.Add(FirstPage);
            return(newItem);
        }
Beispiel #2
0
        public static VO_Page CreatePage(Enums.EventType CurrentEvent, int PageNumber, Guid objectId)
        {
            VO_Page NewPage = new VO_Page(new Guid());

            NewPage.PageNumber    = PageNumber;
            NewPage.PageEventType = CurrentEvent;

            VO_Script Script = null;

            switch (CurrentEvent)
            {
            case Enums.EventType.Animation:
                Script = ObjectsFactory.CreateScript(Enums.ScriptType.AnimationEvents);
                NewPage.AnimationFrequency = GlobalConstants.ANIMATION_NORMAL_FREQUENCY;
                break;

            case Enums.EventType.Character:
                Script = ObjectsFactory.CreateScript(Enums.ScriptType.CharacterEvents);
                VO_Character character = GameCore.Instance.GetCharacterById(objectId);
                NewPage.CharacterAnimationFrequency = GlobalConstants.ANIMATION_NORMAL_FREQUENCY;
                NewPage.CharacterDirection          = Enums.Movement.Down;
                NewPage.CharacterSpeed        = GlobalConstants.CHARACTERS_NORMAL_SPEED;
                NewPage.CharacterStandingType = character.StandingAnim;
                NewPage.CharacterWalkingType  = character.WalkingAnim;
                NewPage.CharacterTalkingType  = character.TalkingAnim;
                break;

            case Enums.EventType.Event:
                Script = ObjectsFactory.CreateScript(Enums.ScriptType.Events);
                break;
            }

            NewPage.Script = Script;
            return(NewPage);
        }
        /// <summary>
        /// Copie d'une page dans l'EventManager
        /// </summary>
        private void EventManager_CopyPage(object sender, EventArgs e)
        {
            // Creation de la copie
            VO_Page OriginalPage = CurrentEvent.PageList[PageIndex];
            VO_Page CopyPage     = OriginalPage.Clone();

            CopyPage.PageId     = new Guid();
            CopyPage.PageNumber = CurrentEvent.PageList.Count + 1;
            CurrentEvent.PageList.Add(CopyPage);

            // Instanciation d'une nouvelle Page et d'un VO_Page correspondant, puis sélection de la page
            int TabPageIndex = PagesManager.TabPages.Count;

            TabPage NewTabPage = new TabPage(Convert.ToString(TabPageIndex + 1));

            foreach (Control CurrentControl in CurrentControlList)
            {
                NewTabPage.Controls.Add(CurrentControl);
            }

            PagesManager.TabPages.Add(NewTabPage);
            PagesManager.SelectedIndex = TabPageIndex;

            PageIndex = TabPageIndex;
        }
Beispiel #4
0
 /// <summary>
 /// Teste si un event est actif
 /// </summary>
 /// <param name="_event"></param>
 /// <returns></returns>
 public bool IsActivePage(VO_Page page)
 {
     //Si le personnage ne correspond pas, on passe à la page suivante
     if (page.CharacterActivated && PlayableCharactersManager.CurrentPlayerCharacter.Id != page.CharacterId)
     {
         return(false);
     }
     //Si la variable ne correspond pas aux conditions, on passe à la page suivante
     if (page.VariableActivated)
     {
         VO_Variable var = GameState.State.Variables.Find(p => p.Id == page.VariableId);
         if (var == null || var.Id == Guid.Empty || var.Value < page.VariableValue)
         {
             return(false);
         }
     }
     //Si le bouton ne correspond pas aux conditions, on passe à la page suivante
     if (page.TriggerActivated)
     {
         VO_Trigger trigger = GameState.State.Triggers.Find(p => p.Id == page.TriggerId);
         if (trigger == null || trigger.Id == Guid.Empty || !trigger.Value)
         {
             return(false);
         }
     }
     return(true);
 }
        /// <summary>
        /// Vidage d'un VO_Page
        /// </summary>
        private void EventManager_EmptyPage(object sender, EventArgs e)
        {
            VO_Page CurrentPage = CurrentEvent.PageList[PageIndex];
            VO_Page EmptyPage   = new VO_Page();

            EmptyPage.PageId     = CurrentPage.PageId;
            EmptyPage.PageName   = CurrentPage.PageName;
            EmptyPage.PageNumber = CurrentPage.PageNumber;

            CurrentEvent.PageList[PageIndex] = EmptyPage;
            UpdateEventManagerControlFromPage(EmptyPage);
        }
        /// <summary>
        /// Suppression d'une Page
        /// </summary>
        private void EventManager_DeletePage(object sender, EventArgs e)
        {
            // Pas de suppression de la première page, Simulation d'un vidage de page
            if (CurrentEvent.PageList.Count <= 1)
            {
                VO_Page CurrentPage = CurrentEvent.PageList[PageIndex];
                VO_Page EmptyPage   = new VO_Page();

                EmptyPage.PageId     = CurrentPage.PageId;
                EmptyPage.PageName   = CurrentPage.PageName;
                EmptyPage.PageNumber = CurrentPage.PageNumber;

                CurrentEvent.PageList[PageIndex] = EmptyPage;
                UpdateEventManagerControlFromPage(EmptyPage);
                return;
            }

            int SelectedPageIndex = PageIndex;

            CurrentEvent.PageList.RemoveAt(PageIndex);
            PagesManager.TabPages.RemoveAt(PagesManager.TabPages.Count - 1);
            int Counter = 0;

            foreach (TabPage CurrentTabPage in PagesManager.TabPages)
            {
                CurrentTabPage.Text = Convert.ToString(Counter + 1);
                Counter             = Counter + 1;
            }

            if (Counter < SelectedPageIndex)
            {
                SelectedPageIndex = Counter;
            }

            Counter = 0;
            foreach (VO_Page CurrentPage in CurrentEvent.PageList)
            {
                CurrentPage.PageNumber = Counter;
                Counter = Counter + 1;
            }

            PageIndex = SelectedPageIndex;

            PagesManager.SelectedIndex = PageIndex;
            UpdateEventManagerControlFromPage(CurrentEvent.PageList[PageIndex]);
            foreach (Control CurrentControl in CurrentControlList)
            {
                PagesManager.TabPages[PagesManager.SelectedIndex].Controls.Add(CurrentControl);
            }
        }
Beispiel #7
0
        /// <summary>
        /// Test et gère les scripts
        /// </summary>
        /// <param name="stageObject"></param>
        /// <param name="IsProcess"></param>
        /// <returns></returns>
        public bool TestScript(VO_StageObject stageObject, Enums.TriggerEventConditionType type)
        {
            VO_Event eventSpot = stageObject.Event;
            VO_Page  _page     = null;

            //Activer l'event
            foreach (VO_Page page in eventSpot.PageList)
            {
                if (page.TriggerCondition == type && IsActivePage(page) && IsExecutablePage(page))
                {
                    _page = page;
                    break;
                }
            }

            //Bad Interactions
            if (type == Enums.TriggerEventConditionType.ClickEvent)
            {
                if (_page == null && eventSpot != null && stageObject.ClassId != Guid.Empty)
                {
                    VO_Dialog dialog = FindBadInteraction(eventSpot, stageObject.ClassId);
                    if (dialog != null)
                    {
                        VO_Script dynamicScript = new VO_Script(Guid.NewGuid());
                        dynamicScript.Lines = new List <VO_Line>();
                        VO_Script_Message scriptMessage = new VO_Script_Message();
                        scriptMessage.Id     = Guid.NewGuid();
                        scriptMessage.Dialog = dialog;
                        dynamicScript.Lines.Add(scriptMessage);
                        LaunchScript(stageObject, dynamicScript, type);
                        return(true);
                    }
                }
            }

            if (_page == null)
            {
                return(false);
            }

            #region Execute le script
            LaunchScript(stageObject, _page.Script, type);
            return(true);

            #endregion
        }
        /// <summary>
        /// Création d'une Nouvelle page dans l'EventManager
        /// </summary>
        private void EventManager_NewPage(object sender, EventArgs e)
        {
            // Instanciation d'une nouvelle Page et d'un VO_Page correspondant, puis sélection de la page
            int TabPageIndex = PagesManager.TabPages.Count;

            VO_Page NewPage = null;

            if (CurrentEvent.PageList[0].PageEventType == Enums.EventType.Character)
            {
                NewPage = ObjectsFactory.CreatePage(CurrentEvent.PageList[0].PageEventType, CurrentEvent.PageList.Count + 1, ((VO_StageCharacter)CurrentStageObject).CharacterId);
            }
            else
            {
                NewPage = ObjectsFactory.CreatePage(CurrentEvent.PageList[0].PageEventType, CurrentEvent.PageList.Count + 1, Guid.Empty);
            }
            CurrentEvent.PageList.Add(NewPage);

            TabPage NewTabPage = new TabPage(Convert.ToString(TabPageIndex + 1));

            foreach (Control CurrentControl in CurrentControlList)
            {
                NewTabPage.Controls.Add(CurrentControl);
            }

            PagesManager.TabPages.Add(NewTabPage);
            PagesManager.SelectedIndex = TabPageIndex;

            PageIndex = TabPageIndex;

            //Selection de la valeur par défaut la nouvelle page dans la ComboBox des Types d'execution de Trigger
            if (CurrentStageObject is VO_StageAnimation)
            {
                AnimationConditions.LoadControls(NewPage, ((VO_StageAnimation)CurrentStageObject).AnimationId);
            }
            else if (CurrentStageObject is VO_StageHotSpot)
            {
                EventConditions.LoadControls(NewPage);
            }
            else if (CurrentStageObject is VO_StageCharacter)
            {
                CharacterConditions.LoadControls(NewPage, ((VO_StageCharacter)CurrentStageObject).CharacterId);
            }
        }
Beispiel #9
0
        /// <summary>
        /// Charge les contrôles
        /// </summary>
        public void LoadControls(VO_Page currentPage, Guid animationId)
        {
            EventManager CurrentParent = ParentForm as EventManager;

            //Désactiver les events
            TriggerExecutionTypeCombo.SelectedValueChanged -= new EventHandler(EventManager_TriggerExecutionTypeChanged);
            ddpSpeed.SelectedValueChanged += new EventHandler(ddpSpeed_SelectedValueChanged);
            chkStartFrozen.CheckedChanged -= new EventHandler(chkStartFrozen_CheckedChanged);

            _AnimationId = animationId;

            this.TriggerExecutionTypeCombo.SelectedValue = currentPage.TriggerExecution;
            this.ddpSpeed.SelectedValue = currentPage.AnimationFrequency;
            this.chkStartFrozen.Checked = currentPage.AnimationFrozenAtStart;

            LoadAnimation();

            //Activer les events
            TriggerExecutionTypeCombo.SelectedValueChanged += new EventHandler(EventManager_TriggerExecutionTypeChanged);
            ddpSpeed.SelectedValueChanged += new EventHandler(ddpSpeed_SelectedValueChanged);
            chkStartFrozen.CheckedChanged += new EventHandler(chkStartFrozen_CheckedChanged);
        }
Beispiel #10
0
 /// <summary>
 /// Teste si un event est executable
 /// </summary>
 /// <param name="_event"></param>
 /// <returns></returns>
 public bool IsExecutablePage(VO_Page page)
 {
     //Si l'action ne correspond pas, on passe à la page suivante
     if (page.ActionActivated)
     {
         VO_Action action = GameCore.Instance.GetActionById(page.ActionId);
         if (action.Id == Guid.Empty || action.Id != ActionManager.CurrentAction.Id)
         {
             return(false);
         }
     }
     //Si l'item ne correspond pas, on passe à la page suivante
     if (page.ItemActivated)
     {
         VO_Item item = GameCore.Instance.GetItemById(page.ItemId);
         if (item.Id == Guid.Empty || item.Id != ActionManager.ItemInUse || !ActionManager.CurrentActionIsUse())
         {
             return(false);
         }
     }
     return(true);
 }
 /// <summary>
 /// Charge les contrôles
 /// </summary>
 public void LoadControls(VO_Page currentPage)
 {
     ddpTrigger.SelectedValueChanged -= new EventHandler(EventManager_TriggerEventConditionTypeChanged);
     this.ddpTrigger.SelectedValue    = currentPage.TriggerCondition;
     ddpTrigger.SelectedValueChanged += new EventHandler(EventManager_TriggerEventConditionTypeChanged);
 }
        /// <summary>
        /// Fonction Générique d'EventManager de mise à jour des champs selon la valeur de Page
        /// </summary>
        private void UpdateEventManagerControlFromPage(VO_Page CurrentPage)
        {
            //Actions
            chkAction.CheckedChanged -= new EventHandler(EventManager_ActivateAction);
            chkAction.Checked         = CurrentPage.ActionActivated;
            CheckActionState();
            chkAction.CheckedChanged += new EventHandler(EventManager_ActivateAction);

            ddpAction.SelectedValueChanged -= new EventHandler(EventManager_ActionSelectionChanged);
            ddpAction.DataSource            = GameCore.Instance.GetActions();
            ddpAction.DisplayMember         = "Title";
            ddpAction.ValueMember           = "Id";
            ddpAction.SelectedValue         = CurrentPage.ActionId;
            ddpAction.SelectedValueChanged += new EventHandler(EventManager_ActionSelectionChanged);


            //Boutons
            chkTrigger.CheckedChanged -= new EventHandler(EventManager_ActivateTrigger);
            chkTrigger.Checked         = CurrentPage.TriggerActivated;
            CheckTriggerState();
            chkTrigger.CheckedChanged += new EventHandler(EventManager_ActivateTrigger);

            triggerButton1.ValueChanged -= new EventHandler(EventManager_TriggerSelectedChanged);
            triggerButton1.TriggerGuid   = CurrentPage.TriggerId;
            triggerButton1.ValueChanged += new EventHandler(EventManager_TriggerSelectedChanged);


            //Variables
            chkVariable.CheckedChanged -= new EventHandler(EventManager_ActivateVariable);
            chkVariable.Checked         = CurrentPage.VariableActivated;
            CheckVariableState();
            chkVariable.CheckedChanged += new EventHandler(EventManager_ActivateVariable);

            txtVariableValue.TextChanged -= new EventHandler(EventManager_VariableValue_Changed);
            txtVariableValue.Text         = Convert.ToString(CurrentPage.VariableValue);
            txtVariableValue.TextChanged += new EventHandler(EventManager_VariableValue_Changed);

            variableButton1.ValueChanged -= new EventHandler(EventManager_VariableSelectedChanged);
            variableButton1.VariableGuid  = CurrentPage.VariableId;
            variableButton1.ValueChanged += new EventHandler(EventManager_VariableSelectedChanged);


            //Charaters
            chkCharacter.CheckedChanged -= new EventHandler(EventManager_ActivateCharacter);
            chkCharacter.Checked         = CurrentPage.CharacterActivated;
            CheckCharacterState();
            chkCharacter.CheckedChanged += new EventHandler(EventManager_ActivateCharacter);

            characterButton1.ValueChanged -= new EventHandler(EventManager_CharacterSelectedChanged);
            characterButton1.CharacterGuid = CurrentPage.CharacterId;
            characterButton1.ValueChanged += new EventHandler(EventManager_CharacterSelectedChanged);


            //Items
            chkItem.CheckedChanged -= new EventHandler(EventManager_ActivateItem);
            chkItem.Checked         = CurrentPage.ItemActivated;
            CheckItemState();
            chkItem.CheckedChanged += new EventHandler(EventManager_ActivateItem);

            itemButton1.ValueChanged -= new EventHandler(EventManager_ItemSelectedChanged);
            itemButton1.ItemGuid      = CurrentPage.ItemId;
            itemButton1.ValueChanged += new EventHandler(EventManager_ItemSelectedChanged);


            //Sous controles
            if (CurrentStageObject is VO_StageAnimation)
            {
                AnimationConditions.LoadControls(CurrentPage, ((VO_StageAnimation)CurrentStageObject).AnimationId);
            }
            else if (CurrentStageObject is VO_StageHotSpot)
            {
                EventConditions.LoadControls(CurrentPage);
            }
            else if (CurrentStageObject is VO_StageCharacter)
            {
                CharacterConditions.LoadControls(CurrentPage, ((VO_StageCharacter)CurrentStageObject).CharacterId);
            }

            ScriptManager.LoadScript(CurrentPage.Script);
        }
Beispiel #13
0
        /// <summary>
        /// Charge les contrôles
        /// </summary>
        public void LoadControls(VO_Page currentPage, Guid characterId)
        {
            if (currentPage.PageEventType == Enums.EventType.Character)
            {
                _CharacterId = characterId;

                //Désactivation des events
                ddpDirection.SelectedValueChanged    -= new EventHandler(ddpDirection_SelectedValueChanged);
                ddpSpeed.SelectedValueChanged        -= new EventHandler(ddpSpeed_SelectedValueChanged);
                ddpFrequency.SelectedValueChanged    -= new EventHandler(ddpFrequency_SelectedValueChanged);
                ddpStandingType.SelectedValueChanged -= new EventHandler(ddpStandingType_SelectedValueChanged);
                ddpWalkingType.SelectedValueChanged  -= new EventHandler(ddpWalkingType_SelectedValueChanged);
                ddpTalkingType.SelectedValueChanged  -= new EventHandler(ddpTalkingType_SelectedValueChanged);

                List <VO_ListItem> list = FormsTools.GetMovementsList();
                ddpDirection.DataSource    = list;
                ddpDirection.DisplayMember = "Title";
                ddpDirection.ValueMember   = "Id";
                ddpDirection.SelectedValue = (int)currentPage.CharacterDirection;

                ddpSpeed.SelectedValue     = currentPage.CharacterSpeed;
                ddpFrequency.SelectedValue = currentPage.CharacterAnimationFrequency;

                ddpStandingType.DataSource    = GameCore.Instance.GetCharAnimations(characterId);
                ddpStandingType.DisplayMember = "Title";
                ddpStandingType.ValueMember   = "Id";
                if (currentPage.CharacterStandingType == Guid.Empty)
                {
                    ddpStandingType.SelectedIndex = 0;
                }
                else
                {
                    ddpStandingType.SelectedValue = currentPage.CharacterStandingType;
                }

                ddpWalkingType.DataSource    = GameCore.Instance.GetCharAnimations(characterId);
                ddpWalkingType.DisplayMember = "Title";
                ddpWalkingType.ValueMember   = "Id";
                if (currentPage.CharacterWalkingType == Guid.Empty)
                {
                    ddpWalkingType.SelectedIndex = 0;
                }
                else
                {
                    ddpWalkingType.SelectedValue = currentPage.CharacterWalkingType;
                }

                ddpTalkingType.DataSource    = GameCore.Instance.GetCharAnimations(characterId);
                ddpTalkingType.DisplayMember = "Title";
                ddpTalkingType.ValueMember   = "Id";
                if (currentPage.CharacterTalkingType == Guid.Empty)
                {
                    ddpTalkingType.SelectedIndex = 0;
                }
                else
                {
                    ddpTalkingType.SelectedValue = currentPage.CharacterTalkingType;
                }

                LoadAnimation();

                //Réactivation des events
                ddpDirection.SelectedValueChanged    += new EventHandler(ddpDirection_SelectedValueChanged);
                ddpSpeed.SelectedValueChanged        += new EventHandler(ddpSpeed_SelectedValueChanged);
                ddpFrequency.SelectedValueChanged    += new EventHandler(ddpFrequency_SelectedValueChanged);
                ddpStandingType.SelectedValueChanged += new EventHandler(ddpStandingType_SelectedValueChanged);
                ddpWalkingType.SelectedValueChanged  += new EventHandler(ddpWalkingType_SelectedValueChanged);
                ddpTalkingType.SelectedValueChanged  += new EventHandler(ddpTalkingType_SelectedValueChanged);
            }
        }