// This function tries to do the following things in order: // tries to use an item if inventory is open // tries to interact with terrain under player // tries to pick up Item private void HandleSpacePressed() { if (UI.InventoryOpen) { //Console.WriteLine("Space trigger item use!"); //Console.WriteLine("UsedItemEvent null? " + UsedItemEvent == null); UsedItemEvent?.Invoke(Util.PlayerID, EntityManager.GetComponent <InventoryComponent>(Util.PlayerID).Items[UI.InventoryCursorPosition - 1], ItemUsage.Consume); return; } var playerPos = EntityManager.GetComponent <TransformComponent>(Util.PlayerID).Position; int terrain = Util.CurrentFloor.GetTerrain(playerPos); if (terrain != 0) // is there special terrain? { var terrainInteraction = EntityManager.GetComponent <InteractableComponent>(terrain); if (terrainInteraction != null) // is it interactable? { InteractionEvent?.Invoke(Util.PlayerID, terrain); return; } } bool itemsOnFloor = Util.CurrentFloor.GetItems(playerPos).Count() > 0; // are there items here? if (!itemsOnFloor) { UISystem.Message("No items here to be picked up!"); return; } PickupItemEvent?.Invoke(Util.PlayerID); }
private void PickupItem(PickupItemEvent ev) { if (ev.Pickup.durability == 2818 && ev.Pickup.ItemId == ItemType.GunE11SR) { ev.Player.ShowHint(Text, 5); UserIDShooterDead = ""; } }
public void OnPickupItem(PickupItemEvent ev) { if (ev.Item == Scp035Pickup) { MakePlayer035(ev.Player); ev.Allow = false; ev.Item.Delete(); Scp035Pickup = null; } }
public static PickupItemEvent CreatePickupItemEvent(Player picker, Item item) { PickupItemEvent pEvent = new PickupItemEvent(picker, item); pEvent.CreateTime = Game.TurnsPassed; pEvent.ActivateTime = Game.TurnsPassed + 0; picker.State = Creature.EntityState.BUSY; return(pEvent); }
private void OnPickupItemEvent(PickupItemEvent pickupItemEvent) { if (pickupItemEvent.Result == PickupItemEvent.ActivationResult.Success && _transferTiming.TryGetValue(pickupItemEvent.ItemId, out var transferEvent)) { if (pickupItemEvent.Tick - transferEvent.Tick <= TickWindow && _playerScoreMatcherGroup.TryGetMatchingEntity(transferEvent.PlayerEntityId, out var playerTuple)) { playerTuple.Component2.ResourceManagement += 1; } _transferTiming.Remove(pickupItemEvent.ItemId); } }
internal void PickupEvent(ref PickupItemEvent ev) { if (!PluginMain.ammo.ContainsKey(ev.Player)) { PluginMain.ammo.Add(ev.Player, new Ammo(ev.Player)); } if (ev.Item.ItemId.IsAmmo()) { ev.Allow = false; PluginMain.ammo[ev.Player].Add(ev.Item.info.itemId, (int)ev.Item.info.durability); ev.Player.SetAmmo(AmmoType.Dropped5, 1); ev.Player.SetAmmo(AmmoType.Dropped7, 1); ev.Player.SetAmmo(AmmoType.Dropped9, 1); ev.Item.Delete(); } }
internal static void InvokePickupItemEvent(Player player, Pickup pickup, ref bool allow) { if (PickupItemEvent == null) { return; } var ev = new PickupItemEvent { Allow = allow, Pickup = pickup, Player = player }; PickupItemEvent.Invoke(ev); allow = ev.Allow; }
public void OnPickupItem(PickupItemEvent ev) { if (!Sitrep.Events.Contains("pickupitemevent")) { return; } if (!Sitrep.CustomChannelIds.TryGetValue("pickupitemevent", out ulong channel)) { channel = Sitrep.EventsId; } Player owner = ev.Item.ownerPlayer.GetPlayer(); if (owner == null) { Send($":hook: [{ev.Player.Role.AsString()}] {ev.Player.Nick.DiscordSanitize()} ({ev.Player.ParsedUserId}) zvedl {ev.Item.ItemId}", channel); } else { Send($":hook: [{ev.Player.Role.AsString()}] {ev.Player.Nick.DiscordSanitize()} ({ev.Player.ParsedUserId}) zvedl {ev.Item.ItemId} hráče [{owner.Role.AsString()}] {owner.Nick.DiscordSanitize()} ({owner.ParsedUserId})", channel); } }
private void Interact() { var tile = Util.CurrentFloor.GetTile(Util.GetPlayerPos()); if (tile.Items != null && tile.Items.Count > 0) { PickupItemEvent?.Invoke(ControlledEntity); return; } if (tile.Structure != 0) { var interactableStructure = EntityManager.GetComponent <InteractableComponent>(tile.Structure); if (interactableStructure != null) { InteractionEvent?.Invoke(Util.PlayerID, tile.Structure); return; } } }