/// <summary> /// Charger un script /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void listActions_SelectedIndexChanged(object sender, EventArgs e) { VO_ActionOnItemScript actionScript = CurrentItem.Scripts.Find(p => p.Id == ((VO_Base)listActions.SelectedItem).Id); if (actionScript == null) { actionScript = new VO_ActionOnItemScript(((VO_Base)listActions.SelectedItem).Id, ObjectsFactory.CreateScript(Enums.ScriptType.ItemEvents)); CurrentItem.Scripts.Add(actionScript); } ViewScript.LoadScript(actionScript.Script); }
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(); } }