/// <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])); } }
/// <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); }
/// <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); }
/// <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; }
/// <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); }