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