/// <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> /// Commande SetVar /// </summary> /// <param name="command"></param> private static void CommandSetVar(string[] command) { if (command.Length != 3) { AddConsoleLine(string.Format("{0}: command format is incorrect", ConsoleConstants.C_SETVAR)); return; } VO_Variable variable = GameState.State.Variables.Find(p => p.Title.ToLower() == command[1]); if (variable != null) { try { variable.Value = Convert.ToInt32(command[2]); AddConsoleLine(string.Format("{0}: {1} -> {2}", ConsoleConstants.C_SETVAR, variable.Title, variable.Value)); } catch { AddConsoleLine(string.Format("{0}: {1} -> {2}", ConsoleConstants.C_SETVAR, variable.Title, "invalid assignement")); } } else { AddConsoleLine(string.Format("{0}: {1} not found", ConsoleConstants.C_SETVAR, command[1])); } }
/// <summary> /// Code ajouté lors de la création d'une action /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ListVariables_ItemToCreate(object sender, EventArgs e) { VO_Variable newItem = _Service.CreateVariable(); newItem.Title = GlobalConstants.VARIABLE_NEW_ITEM; ListVariables.AddItem(newItem.Id, newItem.Title); LoadVariable(newItem.Id); }
/// <summary> /// Récupère une nouvelle instance d'une variable /// </summary> /// <param name="id">ID du bouton</param> /// <returns>VO_Trigger</returns> public VO_Variable GetVariableById(Guid id) { VO_Variable variable = Game.Variables.Find(p => p.Id == id); if (variable != null) { return(variable); } return((VO_Variable)ValidationTools.CreateEmptyRessource(new VO_Variable())); }
/// <summary> /// Crée une classe /// </summary> /// <returns>VO_Class</returns> public VO_Variable CreateVariable() { VO_Variable item = null; RunServiceTask(delegate { item = _Business.CreateVariable(); }, Errors.ERROR_VARIABLE_STR_CREATE); return(item); }
public static int GetVariableValue(VO_IntValue variable) { VO_Variable vari = GameState.State.Variables.Find(p => p.Id == variable.VariableValue); if (vari != null) { return(vari.Value); } else { return(variable.IntValue); } }
/// <summary> /// Insère une variable /// </summary> /// <returns></returns> public static VO_Variable CreateVariable() { //Création de l'objet VO_Variable newVariable = new VO_Variable(Guid.NewGuid()) { Title = GlobalConstants.VARIABLE_NEW_ITEM, Value = 0 }; //Insertion de l'objet GameCore.Instance.Game.Variables.Add(newVariable); return(newVariable); }
/// <summary> /// Au chargement du controle /// </summary> /// <param name="e"></param> protected override void OnLoad(EventArgs e) { base.OnLoad(e); CurrentVariable = null; ProvisionList(); if (ListVariables.DataSource.Count > 0) { Guid firstAction = ListVariables.DataSource[0].Id; ListVariables.SelectItem(firstAction); LoadVariable(firstAction); } else { ListVariables_ListIsEmpty(this, new EventArgs()); } }
/// <summary> /// Charge un bouton /// </summary> /// <param name="value">Id du bouton</param> public void LoadVariable(Guid value) { Cursor.Current = Cursors.WaitCursor; //Code de chargement CurrentVariable = GameCore.Instance.GetVariableById(value); //Afficher les groupes grpInformations.Visible = true; //Désactiver events txtName.TextChanged -= new EventHandler(txtName_TextChanged); ddpValue.ValueChanged -= new EventHandler(ddpValue_ValueChanged); //Bind des infos dans les contrôles txtName.Text = CurrentVariable.Title; ddpValue.Value = CurrentVariable.Value; //Activer les events txtName.TextChanged += new EventHandler(txtName_TextChanged); ddpValue.ValueChanged += new EventHandler(ddpValue_ValueChanged); Cursor.Current = DefaultCursor; }
/// <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); }
/// <summary> /// Code ajouté lors de la suppression d'une action /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ListVariables_ItemToDelete(object sender, EventArgs e) { CurrentVariable.Delete(); CurrentVariable = null; }