示例#1
0
        /// <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);
        }
示例#2
0
        /// <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;
        }
示例#3
0
        /// <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);
        }
示例#4
0
        /// <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);
        }
示例#5
0
        /// <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()));
        }
示例#6
0
        /// <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);
        }
示例#7
0
 /// <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());
     }
 }
示例#8
0
 /// <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;
 }