public void RemoveNpcInteraction(NPC npc) { if (NpcInteraction.Contains(npc.whoAmI)) { NpcInteraction.Remove(npc.whoAmI); } }
private void UpdateNpcInteraction() { if (targetInteractionNpc == null) { return; } if (!targetInteractionNpc.TryGetAction( out var distance, out var action, out var interactionRange)) { return; } if (distance <= interactionRange) { try { // ignore examinations if (action.Id == 0) { uiManager.ChatPanel.OnExamine(targetInteractionNpc.NpcData.Description); return; } networkClient.SendNpcAction(targetInteractionNpc.ServerId, action.Id, 0); } finally { targetInteractionNpc = null; } } }
public void ApplyNpcInteraction(NPC npc) { if (!NpcInteraction.Contains(npc.whoAmI)) { NpcInteraction.Add(npc.whoAmI); } }
public void Interact() { playerMovement = GameObject.Find("sherry_b1(Clone)").GetComponent <SherryMovement>(); npcInteraction = GameObject.Find("ginny").GetComponent <NpcInteraction>(); if (!open) { npcInteraction.enabled = false; playerMovement.enabled = false; Focus(focusLeft[currentLine]); StartCoroutine("Write"); } }
private void OnTriggerExit2D(Collider2D col) { //If the gameobject is an interactable, don't be able to pick it up. if (col.gameObject.CompareTag("Grabbable")) { objectInRange = null; } else if (col.gameObject.CompareTag("NPC")) { NPC.StopInteraction(); NPC = null; } }
private void OnTriggerStay2D(Collider2D col) { //If the player is within the range of an NPC and wants to interact with them. if (col.gameObject.CompareTag("NPC") && !NPC) { NPC = col.gameObject.GetComponent <NpcInteraction>(); NPC.HandleInteraction(); } //If the gameobject is a box, be able to pick it up. else if (col.gameObject.CompareTag("Grabbable") && !objectGrabbed) { //print("Object in range! " + col.transform.parent.name); objectInRange = col.transform.parent.gameObject; } }
private void HandleLeftClick(NetworkPlayer me, MouseClickEventArgs e) { uiManager.ContextMenu.Hide(); // ignore other players for now since we don't have // a left button action on players yet. Going to be for selecting/targeting players. var player = e.GetNetworkPlayer(); if (player) { UnityEngine.Debug.Log("We left clicked on a player."); return; } var npc = e.GetNetworkNpc(); if (npc) { me.MoveToAndInteractWith(NpcInteraction.Create(me, npc, -1), CheckIfRunning()); return; } var worldObject = e.GetNetworkObject(); //var worldObject = e.Object.transform.GetComponentInParent<NetworkObject>(); if (worldObject) { me.MoveToAndInteractWith(ObjectInteraction.Create(me, worldObject), CheckIfRunning()); return; } if (moveSound) { moveSound.Play(); } var terrainHit = e.GetTerrain(); //var terrain = e.Object.transform.GetComponent<Terrain>(); if (terrainHit.Terrain) { HandleTerrainInteraction(e, terrainHit.Terrain, terrainHit.Point); return; } WalkTo(me, terrainHit.Point); }
private void HandleNpcInteraction(NetworkNpc targetNpc, int actionId) { var myPlayer = playerManager.Me; if (!myPlayer) { return; } var npc = targetNpc; if (npc) { myPlayer.MoveToAndInteractWith(NpcInteraction.Create(myPlayer, npc, actionId), CheckIfRunning()); } }
internal void MoveToAndInteractWith(NpcInteraction obj, bool running) { if (!networkClient.Auth.Authenticated) { return; } targetInteractionNpc = obj; if (!obj.TryGetAction( out var distance, out var action, out var interactionRange)) { return; } if (distance > interactionRange) { var direction = (transform.position - obj.Position).normalized; var targetMoveToPosition = obj.Position + ((interactionRange / 2.1f) * direction); //var targetMoveToPosition = obj.transform.position; networkClient.MoveTo(targetMoveToPosition, running); } }
public void UseSkill(Player player) { if (Active || Cooldown > 0) { return; } if (player.GetModPlayer <PlayerMod>().UsingPrivilegedSkill) { return; } if (MainMod.SaySkillNameOnUse && player.whoAmI == Main.myPlayer) { player.chatOverhead.NewMessage(GetBase.Name + "!!", 300); } Time = 0; Step = 0; CastTime = 0; Active = true; Cooldown = GetBase.Cooldown; PlayerDamageCooldown.Clear(); NpcDamageCooldown.Clear(); ExtraTargetDamageCooldown.Clear(); PlayerInteraction.Clear(); NpcInteraction.Clear(); OtherInteraction.Clear(); switch (GetBase.PositionToTake) { case SkillBase.PositionToTakeOnCastEnum.Mouse: CastPosition = SkillBase.GetMousePositionInTheWorld; break; case SkillBase.PositionToTakeOnCastEnum.Player: CastPosition = player.Center; break; } }
internal void ClearInteractionTargets() { targetInteractionObject = null; targetInteractionNpc = null; }
// Use this for initialization void Start() { if (instance != null) { return; } instance = this; NetworkAPI.RegisterExtensionMessageHandler ("npc_interactions", _HandleNpcInteractionOptionsResponse); NetworkAPI.RegisterExtensionMessageHandler ("npc_dialogue", _HandleNpcDialogue); NetworkAPI.RegisterExtensionMessageHandler ("MerchantList", _HandleMerchantList); NetworkAPI.RegisterExtensionMessageHandler ("item_purchase_result", HandlePurchaseResponse); }
public bool ContainsNpcInteraction(NPC npc) { return(NpcInteraction.Contains(npc.whoAmI)); }