/// <summary> /// Insère une action /// </summary> /// <returns></returns> public static VO_Class CreateClass() { //Création de l'objet int i = 1; string title = string.Empty; while (true) { if (GameCore.Instance.Game.Classes.Find(p => p.Title == string.Format(GlobalConstants.CLASS_NEW_ITEM, i)) != null) { i++; continue; } else { title = string.Format(GlobalConstants.CLASS_NEW_ITEM, i); break; } } VO_Class newItem = new VO_Class(Guid.NewGuid()) { Title = title, BadInteractions = new List <VO_BadInteraction>() }; //Insertion de l'objet GameCore.Instance.Game.Classes.Add(newItem); return(newItem); }
/// <summary> /// Chargement d'une classe /// </summary> /// <param name="guid"></param> private void LoadClass(Guid guid) { Cursor.Current = Cursors.WaitCursor; //Code de chargement CurrentClass = GameCore.Instance.GetClassById(guid); //Afficher les groupes grpInformations.Visible = true; //Charger les listes LoadLists(); //Désactiver events grdBadInteractions.CellValueChanged -= new DataGridViewCellEventHandler(grdBadInteractions_CellValueChanged); txtName.LostFocus -= new EventHandler(txtName_TextChanged); grdBadInteractions.CellClick -= new DataGridViewCellEventHandler(grdBadInteractions_CellClick); //Charger la gridview grdBadInteractions.Rows.Clear(); foreach (VO_BadInteraction badInteraction in CurrentClass.BadInteractions) { InsertBadInteraction(badInteraction); } //Bind des infos dans les contrôles txtName.Text = CurrentClass.Title; //Activer les events grdBadInteractions.CellValueChanged += new DataGridViewCellEventHandler(grdBadInteractions_CellValueChanged); txtName.LostFocus += new EventHandler(txtName_TextChanged); grdBadInteractions.CellClick += new DataGridViewCellEventHandler(grdBadInteractions_CellClick); Cursor.Current = DefaultCursor; }
/// <summary> /// Code ajouté lors de la création d'une action /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ListClasses_ItemToCreate(object sender, EventArgs e) { VO_Class newItem = _Service.CreateClass(); ListClasses.AddItem(newItem.Id, newItem.Title); LoadClass(newItem.Id); }
/// <summary> /// Renvoie une bad interaction /// </summary> /// <param name="eventSpot"></param> /// <param name="classId"></param> /// <returns></returns> private VO_Dialog FindBadInteraction(VO_Event eventSpot, Guid classId) { //Filtre go if (ActionManager.CurrentActionIsGo()) { return(null); } VO_Class _class = GameCore.Instance.GetClassById(classId); VO_Dialog outputDialog = null; bool isAll = false; bool isPartial = false; if (_class == null) { return(null); } foreach (VO_BadInteraction badInteraction in _class.BadInteractions) { //Mauvaise action if (badInteraction.Action != Guid.Empty && ActionManager.CurrentAction.Id != badInteraction.Action) { continue; } //Mauvais character if (badInteraction.Character != Guid.Empty && PlayableCharactersManager.CurrentPlayerCharacter.Id != badInteraction.Character) { continue; } //Action Character if (badInteraction.Action == ActionManager.CurrentAction.Id && PlayableCharactersManager.CurrentPlayerCharacter.Id == badInteraction.Character) { return(badInteraction.Dialog); } //Action ALL else if (!isPartial && badInteraction.Action == ActionManager.CurrentAction.Id && PlayableCharactersManager.CurrentPlayerCharacter.Id == Guid.Empty) { isAll = false; isPartial = true; outputDialog = badInteraction.Dialog; } //ALL Character else if (!isPartial && badInteraction.Action == Guid.Empty && PlayableCharactersManager.CurrentPlayerCharacter.Id == badInteraction.Character) { isAll = false; isPartial = true; outputDialog = badInteraction.Dialog; } //ALL ALL else if (!isAll && !isPartial && badInteraction.Action == Guid.Empty && badInteraction.Character == Guid.Empty) { isAll = true; outputDialog = badInteraction.Dialog; } } return(outputDialog); }
/// <summary> /// Récupère une nouvelle instance d'une classe /// </summary> /// <param name="id">ID de l'action</param> /// <returns>VO_Class</returns> public VO_Class GetClassById(Guid id) { VO_Class classes = Game.Classes.Find(p => p.Id == id); if (classes != null) { return(classes); } return((VO_Class)ValidationTools.CreateEmptyRessource(new VO_Class())); }
/// <summary> /// Crée une classe /// </summary> /// <returns>VO_Class</returns> public VO_Class CreateClass() { VO_Class vClass = null; RunServiceTask(delegate { vClass = _Business.CreateClass(); }, Errors.ERROR_CLASS_STR_CREATE); return(vClass); }
/// <summary> /// Survient lorsque le formulaire devient visible /// </summary> public void InitializeDBClasses() { CurrentClass = null; ProvisionList(); if (ListClasses.DataSource.Count > 0) { Guid firstAction = ListClasses.DataSource[0].Id; ListClasses.SelectItem(firstAction); LoadClass(firstAction); } else { ListClasses_ListIsEmpty(this, new EventArgs()); } }
/// <summary> /// Code ajouté lors de la suppression d'une action /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ListClasses_ItemToDelete(object sender, EventArgs e) { CurrentClass.Delete(); CurrentClass = null; }