Beispiel #1
0
        /// <summary>
        /// Commande SetSwitch
        /// </summary>
        /// <param name="command"></param>
        private static void CommandSetSwitch(string[] command)
        {
            if (command.Length != 3)
            {
                AddConsoleLine(string.Format("{0}: command format is incorrect", ConsoleConstants.C_SETSWITCH));
                return;
            }

            VO_Trigger trigger = GameState.State.Triggers.Find(p => p.Title.ToLower() == command[1]);

            if (trigger != null)
            {
                try
                {
                    trigger.Value = Convert.ToBoolean(command[2]);
                    AddConsoleLine(string.Format("{0}: {1} -> {2}", ConsoleConstants.C_SETSWITCH, trigger.Title, trigger.Value));
                }
                catch
                {
                    AddConsoleLine(string.Format("{0}: {1} -> {2}", ConsoleConstants.C_SETSWITCH, trigger.Title, "invalid assignement"));
                }
            }
            else
            {
                AddConsoleLine(string.Format("{0}: {1} not found", ConsoleConstants.C_SETSWITCH, command[1]));
            }
        }
Beispiel #2
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>
        /// Code ajouté lors de la création d'une action
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ListTriggers_ItemToCreate(object sender, EventArgs e)
        {
            VO_Trigger newItem = _Service.CreateTrigger();

            newItem.Title = GlobalConstants.TRIGGER_NEW_ITEM;
            ListTriggers.AddItem(newItem.Id, newItem.Title);
            LoadTrigger(newItem.Id);
        }
Beispiel #4
0
        /// <summary>
        /// Récupère une nouvelle instance d'un bouton
        /// </summary>
        /// <param name="id">ID du bouton</param>
        /// <returns>VO_Trigger</returns>
        public VO_Trigger GetTriggerById(Guid id)
        {
            VO_Trigger trigger = Game.Triggers.Find(p => p.Id == id);

            if (trigger != null)
            {
                return(trigger);
            }
            return((VO_Trigger)ValidationTools.CreateEmptyRessource(new VO_Trigger()));
        }
        /// <summary>
        /// Crée une classe
        /// </summary>
        /// <returns>VO_Class</returns>
        public VO_Trigger CreateTrigger()
        {
            VO_Trigger item = null;

            RunServiceTask(delegate
            {
                item = _Business.CreateTrigger();
            }, Errors.ERROR_TRIGGER_STR_CREATE);

            return(item);
        }
Beispiel #6
0
        /// <summary>
        /// Insère un bouton
        /// </summary>
        /// <returns></returns>
        public static VO_Trigger CreateTrigger()
        {
            //Création de l'objet
            VO_Trigger newTrigger = new VO_Trigger(Guid.NewGuid())
            {
                Title = GlobalConstants.TRIGGER_NEW_ITEM,
                Value = false
            };

            //Insertion de l'objet
            GameCore.Instance.Game.Triggers.Add(newTrigger);
            return(newTrigger);
        }
        /// <summary>
        /// Au chargement du controle
        /// </summary>
        /// <param name="e"></param>
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            CurrentTrigger = null;
            ProvisionList();
            if (ListTriggers.DataSource.Count > 0)
            {
                Guid firstAction = ListTriggers.DataSource[0].Id;
                ListTriggers.SelectItem(firstAction);
                LoadTrigger(firstAction);
            }
            else
            {
                ListTriggers_ListIsEmpty(this, new EventArgs());
            }
        }
        /// <summary>
        /// Charge un bouton
        /// </summary>
        /// <param name="value">Id du bouton</param>
        public void LoadTrigger(Guid value)
        {
            Cursor.Current = Cursors.WaitCursor;

            //Code de chargement
            CurrentTrigger = GameCore.Instance.GetTriggerById(value);

            //Afficher les groupes
            grpInformations.Visible = true;

            //Désactiver events
            txtName.TextChanged    -= new EventHandler(txtName_TextChanged);
            chkTrue.CheckedChanged -= new EventHandler(chkTrue_CheckedChanged);

            //Bind des infos dans les contrôles
            txtName.Text    = CurrentTrigger.Title;
            chkTrue.Checked = CurrentTrigger.Value;

            //Activer les events
            txtName.TextChanged    += new EventHandler(txtName_TextChanged);
            chkTrue.CheckedChanged += new EventHandler(chkTrue_CheckedChanged);

            Cursor.Current = DefaultCursor;
        }
 /// <summary>
 /// Code ajouté lors de la suppression d'une action
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void ListTriggers_ItemToDelete(object sender, EventArgs e)
 {
     CurrentTrigger.Delete();
     CurrentTrigger = null;
 }
Beispiel #10
0
        /// <summary>
        /// Charge une sauvegarde
        /// </summary>
        /// <param name="path"></param>
        public static bool LoadGameState(string path)
        {
            if (!File.Exists(GameCore.Instance.Game.Project.RootPath + "\\" + path))
            {
                return(false);
            }

            #region Récupération du GameState
            //Récupération
            VO_GameState tempGameState = (VO_GameState)AppTools.LoadObjectFromFile(GameCore.Instance.Game.Project.RootPath + "\\" + path);

            //GameCore.Instance.Game.Project.RootPath = Path.GetDirectoryName(path) + "\\";
            GameCore.Instance.Game.Project.ProjectFileName = Path.GetFileNameWithoutExtension(path);
            #endregion

            //Nouveau du jeu
            NewGame();

            //Reset des managers
            ScriptManager.ResetScriptManager();
            PlayableCharactersManager.ResetCharacters();

            //Chargement
            //Boutons
            foreach (VO_Trigger trigger in State.Triggers)
            {
                VO_Trigger updateTrigger = tempGameState.Triggers.Find(p => p.Id == trigger.Id);
                trigger.Value = updateTrigger.Value;
            }

            //Variables
            foreach (VO_Variable variable in State.Variables)
            {
                VO_Variable updateVariable = tempGameState.Variables.Find(p => p.Id == variable.Id);
                variable.Value = updateVariable.Value;
            }

            //Perso courant
            State.CurrentCharacter = tempGameState.CurrentCharacter;

            //Persos
            foreach (VO_GameStateCharacter characterGame in tempGameState.Players)
            {
                PlayableCharactersManager.CreatePlayer(characterGame.CharacterId);
                VO_Player charSprite = PlayableCharactersManager.GetPlayer(characterGame.Id);
                charSprite.Actions.Clear();
                foreach (Guid action in characterGame.Actions)
                {
                    charSprite.Actions.Add(action);
                }
                foreach (Guid item in characterGame.Items)
                {
                    charSprite.AddItem(item);
                }
                charSprite.CurrentStage = characterGame.Coords.Map;
                charSprite.CharacterSprite.CurrentDirection = characterGame.CurrentDirection;
                charSprite.CharacterSprite.Id                   = characterGame.Id;
                charSprite.CharacterSprite.CharacterId          = characterGame.CharacterId;
                charSprite.CharacterSprite.CurrentExecutingPage = characterGame.CurrentExecutingPage;
                charSprite.CharacterSprite.IsTalking            = characterGame.IsTalking;
                charSprite.CharacterSprite.CurrentPath          = characterGame.CurrentPath;
                charSprite.CharacterSprite.SetCurrentAnimation(charSprite.CharacterSprite.CurrentCharacterAnimationType, characterGame.CurrentAnim);
            }
            PlayableCharactersManager.CurrentPlayerCharacter = PlayableCharactersManager.GetPlayer(State.CurrentCharacter);
            State.Players         = tempGameState.Players;
            State.Stages          = tempGameState.Stages;
            State.CurrentStagePNJ = tempGameState.CurrentStagePNJ;

            //RunningScript
            foreach (VO_GameStateRunningScript runningScriptState in tempGameState.RunningScripts)
            {
                VO_RunningScript runningScript = new VO_RunningScript();
                runningScript.Id          = runningScriptState.Script;
                runningScript.ObjectState = runningScriptState.ObjectState;
                runningScript.WaitFrames  = runningScriptState.WaitFrames;
                runningScript.Lines       = FindScript(runningScriptState.Script).Lines;
                runningScript.CurrentLine = FindLine(runningScript.Lines, runningScriptState.CurrentLine);
                if (runningScript.Lines != null)
                {
                    ScriptManager.AddParallelScript(runningScript);
                }
            }
            return(true);
        }