/// <summary>
 /// Switche de place entre 2 items
 /// </summary>
 /// <param name="item1">item 1</param>
 /// <param name="item2">item 2</param>
 public void SwitchItemPlaces(VO_InventoryItem item1, VO_InventoryItem item2)
 {
     RunServiceTask(delegate
     {
         _Business.SwitchItemPlaces(item1, item2);
     }, ViewerErrors.STAGE_LOAD_MENU, item1.ToString(), item2.ToString());
 }
 /// <summary>
 /// Ajoute un élément dans la grille
 /// </summary>
 /// <param name="x">X</param>
 /// <param name="y">Y</param>
 /// <param name="item">Id de l'item à ajouter</param>
 public void AddItemInGrid(VO_InventoryItem item)
 {
     RunServiceTask(delegate
     {
         _Business.AddItemInGrid(item);
     }, ViewerErrors.STAGE_LOAD_MENU, item.ToString());
 }
        /// <summary>
        /// Check si le curseur est sur le bouton inventaire
        /// </summary>
        /// <param name="point"></param>
        /// <returns></returns>
        public VO_InventoryItem GetInventoryItemEvent(Point point, Point tablePoint, int gridWidth, int gridHeight, int itemWidth, int itemHeight)
        {
            VO_InventoryItem guid = null;

            RunServiceTask(delegate
            {
                guid = _Business.GetInventoryItemEvent(point, tablePoint, gridWidth, gridHeight, itemWidth, itemHeight);
            }, ViewerErrors.STAGE_LOAD_MENU, false, point.ToString(), tablePoint.ToString(), gridWidth.ToString(), gridHeight.ToString(), itemWidth.ToString(), itemHeight.ToString());

            return(guid);
        }
        /// <summary>
        /// Récupère un inventoryItem depuis la grille
        /// </summary>
        /// <param name="itemId">Id de l'item</param>
        /// <param name="gridWidth">Largeur de la grille</param>
        /// <param name="gridHeight">Hauteur de la grille</param>
        /// <returns>VO_InventoryItem</returns>
        public VO_InventoryItem GetItemFromGrid(Guid itemId, int gridWidth, int gridHeight)
        {
            VO_InventoryItem guid = null;

            RunServiceTask(delegate
            {
                guid = _Business.GetItemFromGrid(itemId, gridWidth, gridHeight);
            }, ViewerErrors.STAGE_LOAD_MENU, itemId.ToString(), gridWidth.ToString(), gridHeight.ToString());

            return(guid);
        }
예제 #5
0
        public void MouseMove(MouseState e)
        {
            VO_InventoryItem item = GetInventoryItemEvent(new Point(e.X, e.Y));

            if (GetInventoryButtonEvent(new Point(e.X, e.Y)) || (item != null && item.ItemId != Guid.Empty))
            {
                ActionManager.ClickedState = true;
            }
            else
            {
                ActionManager.ClickedState = false;
            }
        }
예제 #6
0
 /// <summary>
 /// Bouton souris relaché
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 public void MouseLeftReleased(MouseState e)
 {
     if (_ItemDragDrop != null)
     {
         VO_InventoryItem newItem = GetInventoryItemEvent(new Point(e.X, e.Y));
         if (newItem == null)
         {
             ActionManager.UnloadItem();
         }
         else if (newItem.ItemId != _ItemDragDrop.ItemId)
         {
             ActionManager.UnloadItem();
             _Service.SwitchItemPlaces(_ItemDragDrop, newItem);
         }
         _ItemDragDrop = null;
     }
 }
 /// <summary>
 /// Switche de place entre 2 items
 /// </summary>
 /// <param name="item1">item 1</param>
 /// <param name="item2">item 2</param>
 public void SwitchItemPlaces(VO_InventoryItem item1, VO_InventoryItem item2)
 {
     AddItemInGrid(new VO_InventoryItem(item1.ItemId, item2.Location));
     AddItemInGrid(new VO_InventoryItem(item2.ItemId, item1.Location));
 }
 /// <summary>
 /// Ajoute un élément dans la grille
 /// </summary>
 /// <param name="x">X</param>
 /// <param name="y">Y</param>
 /// <param name="item">Id de l'item à ajouter</param>
 public void AddItemInGrid(VO_InventoryItem item)
 {
     PlayableCharactersManager.CurrentPlayerCharacter.Items[item.Location.X, item.Location.Y] = item.ItemId;
 }
 /// <summary>
 /// Retire un élément de la grille
 /// </summary>
 /// <param name="x">X</param>
 /// <param name="y">Y</param>
 public void RemoveItemInGrid(VO_InventoryItem item)
 {
     PlayableCharactersManager.CurrentPlayerCharacter.Items[item.Location.X, item.Location.Y] = Guid.Empty;
 }
예제 #10
0
        public void MousePress(MouseState e)
        {
            if (e.LeftButton == ButtonState.Pressed)
            {
                #region Quitter l'inventaire
                //Click en dehors de l'inventaire
                if (!_Service.MouseIsInGrid(new Point(e.X, e.Y), new Point(_MenuData.InventoryCoords.X, _MenuData.InventoryCoords.Y), _MenuData.GridWidth, _MenuData.GridHeight, _MenuData.ItemWidth, _MenuData.ItemHeight))
                {
                    Opened = false;
                    return;
                }

                //Click sur le bouton de l'inventaire
                if (GetInventoryButtonEvent(new Point(e.X, e.Y)))
                {
                    SwitchInventory();
                }
                #endregion

                VO_InventoryItem item = GetInventoryItemEvent(new Point(e.X, e.Y));
                if (ActionManager.ItemAsAction && item != null)
                {
                    VO_InventoryItem item2 = _Service.GetItemFromGrid(ActionManager.CurrentLinkedItem.Id, _MenuData.GridWidth, _MenuData.GridHeight);
                    if (item.ItemId != Guid.Empty && item2.ItemId != Guid.Empty && item2.ItemId != item.ItemId)
                    {
                        //Interaction d'objets
                        VO_Item            itemObj         = GameCore.Instance.GetItemById(item.ItemId);
                        VO_ItemInteraction itemInteraction = itemObj.ItemInteraction.Find(p => p.AssociatedItem == item2.ItemId);
                        if (itemInteraction != null)
                        {
                            VO_Script        scriptObj = GameCore.Instance.GetInteractionScriptsById(itemInteraction.Script);
                            VO_RunningScript script    = new VO_RunningScript();
                            script.Id    = scriptObj.Id;
                            script.Lines = scriptObj.Lines;

                            ScriptManager.CurrentScript = script;
                        }
                    }
                    else
                    {
                        _Service.SwitchItemPlaces(item, item2);
                        _ItemDragDrop = null;
                        ActionManager.UnloadItem();
                    }
                }
                else if (item != null && item.ItemId != Guid.Empty)
                {
                    if (ActionManager.CurrentActionIsGo())
                    {
                        _ItemDragDrop = item;
                        ActionManager.SetCurrentItem(item.ItemId);
                    }
                    else
                    {
                        //Script sur action
                        VO_Item itemObj = GameCore.Instance.GetItemById(item.ItemId);
                        VO_ActionOnItemScript actionScript = itemObj.Scripts.Find(p => p.Id == ActionManager.CurrentAction.Id);
                        if (actionScript != null)
                        {
                            VO_RunningScript script = new VO_RunningScript();
                            script.Id    = actionScript.Script.Id;
                            script.Lines = actionScript.Script.Lines;
                            ScriptManager.CurrentScript = script;
                        }
                    }
                }
            }
            else if (e.RightButton == ButtonState.Pressed)
            {
                PlayableCharactersManager.CurrentPlayerCharacter.ChangeNextAction();
            }
        }