예제 #1
0
파일: NPC.cs 프로젝트: Parksejoon/Project-B
    // 상호작용 받음
    public void Interact(Interacter interacter)
    {
        // 상호작용 설정
        currentInteracter = interacter;

        // 대화 시작
        StartConverse();
    }
예제 #2
0
 void Start()
 {
     DontDestroyOnLoad(this);
     Active              = true;
     Movement            = GetComponent <Movement>();
     ConversationManager = GetComponent <ConversationManager>();
     Interacter          = transform.GetChild(0).GetComponent <Interacter>();
     Attacker            = transform.GetChild(1).GetComponent <Attacker>();
 }
예제 #3
0
    void OnTriggerEnter(Collider collider)
    {
        Interacter inRangeTaker = collider.gameObject.GetComponent <Interacter>();

        if (inRangeTaker != null)
        {
            userEntersRange(inRangeTaker);
        }
    }
예제 #4
0
 public void Interact(Interacter target)
 {
     if (!isBeingUsed)
     {
         isBeingUsed = true;
         interact(target);
         GameObject.FindGameObjectWithTag("Manager").GetComponent <ItemSpawnManager>().FreeSpawnpoint(spawnpoint);
     }
 }
예제 #5
0
    protected override void interact(Interacter target)
    {
        PlayerController playerController = target.GetComponent <PlayerController>();

        if (playerController != null)
        {
            SetActive(false);
            StartCoroutine(buffTimer(target));
        }
    }
예제 #6
0
    public virtual bool Interact(Interacter source)
    {
        if (IsInteractable(source))
        {
            OnInteract.Invoke(source, this);
            return(true);
        }

        return(false);
    }
예제 #7
0
 private void Awake()
 {
     mover          = GetComponent <Mover>();
     fighter        = GetComponent <PlayerFighter>();
     interacter     = GetComponent <Interacter>();
     health         = GetComponent <Health>();
     playerCursor   = GetComponent <PlayerCursor>();
     abilityManager = GetComponent <AbilityManager>();
     animator       = GetComponent <Animator>();
     scheduler      = GetComponent <ActionScheduler>();
 }
예제 #8
0
 public virtual bool IsInteractable(Interacter source)
 {
     if (BlacklistedInteracters.Contains(source))
     {
         return(false);
     }
     else
     {
         return(true);
     }
 }
예제 #9
0
 protected virtual void OnTriggerEnter(Collider other)
 {
     if (InteractOnBumped)
     {
         Interacter foundInteracter = other.GetComponent <Interacter>();
         if (foundInteracter)
         {
             Interact(foundInteracter);
         }
     }
 }
예제 #10
0
    IEnumerator buffTimer(Interacter target)
    {
        PlayerController playerController = target.GetComponent <PlayerController>();

        playerController.SetMovementSpeed(playerController.GetCurrentMovementSpeed() + boostStrength);
        yield return(new WaitForSeconds(boostDuration));

        Debug.Log("WaitAndPrint " + Time.time);
        playerController.SetMovementSpeed(playerController.GetCurrentMovementSpeed() - boostStrength);
        Destroy(gameObject);
    }
예제 #11
0
 protected override void interact(Interacter target)
 {
     if (target.carryItem != null)
     {
         Debug.Log(target.GetType() + "" + keyItem.GetType());
         if (target.CarriedItem.GetType() == keyItem.GetType())
         {
             target.RemoveCarriedItem();
             execute();
         }
     }
 }
예제 #12
0
    void OnTriggerExit(Collider collider)
    {
        Interacter inRangeTaker = collider.gameObject.GetComponent <Interacter>();

        if (inRangeTaker != null)
        {
            usererExitsRange(inRangeTaker);
        }
        else
        {
            return;
        }
    }
예제 #13
0
파일: Client.cs 프로젝트: dj46563/Misplaced
    private void EnterSearchMode()
    {
        // Move the moved items to their new positions
        foreach (var movedItem in MovedItems)
        {
            GridItem gridItem = _moveableReferencer.Moveables[movedItem.Key];
            gridItem.MoveToGridPos((ushort)movedItem.Value.Item1, (ushort)movedItem.Value.Item2);
        }

        Interacter interacter = GetComponent <Interacter>();

        interacter.enabled = true;
        interacter.Reset();

        LocalPlayerTransform.position = MainRoomLocation.position;
    }
예제 #14
0
    // checks for an interactable object on mouseclick, and interacts with it
    public void Click()
    {
        Ray ray = Cam.ScreenPointToRay(Input.mousePosition);

        RaycastHit hit;

        if (Physics.Raycast(ray, out hit))
        {
            //Debug.DrawRay(ray.origin, ray.direction * 100, Color.yellow, 10);
            Interacter i = hit.collider.GetComponent <Interacter>();
            if (i != null)
            {
                i.Interact(gameObject);
                return;
            }
        }
    }
예제 #15
0
 protected override void interact(Interacter target)
 {
     if (!trapArmed)
     {
         return;
     }
     if (target.tag == "Player")
     {
         var pc = target.GetComponent <PlayerController>();
         if (pc.activePlayer == trapOwner)
         {
             return;
         }
         pc.DisableMovement();
         cage.GetComponent <Renderer>().enabled = true;
         cage.GetComponent <PhysicsObject>().EnableGravity();
         trappedPlayer = pc;
         trapActivated = true;
     }
 }
예제 #16
0
파일: Client.cs 프로젝트: dj46563/Misplaced
    private void ExitSearchMode()
    {
        Interacter interacter = GetComponent <Interacter>();

        // Explode players who didnt pick anything by the end of the searching round
        // and subtract a point
        if (interacter.CorrectItems == 0 && interacter.WrongItems == 0)
        {
            interacter.ExplodePlayer();
            interacter.WrongItems = 1;
        }

        // Tell server your points change
        int pointChange = interacter.CorrectItems - interacter.WrongItems;

        _bitBuffer.Clear();
        _bitBuffer.AddByte(11);
        _bitBuffer.AddShort((short)pointChange);
        _bitBuffer.ToArray(_buffer);
        _webClient.Send(new ArraySegment <byte>(_buffer, 0, 3));

        interacter.enabled = false;
    }
예제 #17
0
 protected override void interact(Interacter target)
 {
     transform.position  = target.transform.position;
     transform.position += new Vector3(0, 1.5f, 0);
     transform.parent    = target.transform;
 }
예제 #18
0
 // Llamado desde un Interacter cuando el objeto esta seleccionado pero no pulsado
 public void Down(Interacter it)
 {
     interacter = it;
     m_bDown    = true;
 }
예제 #19
0
 public void DebugInteract(Interacter source, Interactable reciever)
 {
     Debug.Log(source.name + " interacted with " + reciever.name + ".");
 }
예제 #20
0
 // Llamado desde un Interacter al pulsar en el objeto
 public void Clicked(Interacter it)
 {
     interacter = it;
     OnClickEvent.Invoke();
 }
예제 #21
0
 protected override void finishInteract(Interacter target)
 {
 }
예제 #22
0
 protected override void finishInteract(Interacter target)
 {
     base.finishInteract(target);
 }
예제 #23
0
 // Start is called before the first frame update
 void Start()
 {
     interacter = GetComponent <Interacter>();
 }
예제 #24
0
파일: NPC.cs 프로젝트: Parksejoon/Project-B
 // 상호작용 끝
 public virtual void EndInteract()
 {
     currentInteracter.EndInteract();
     currentInteracter = null;
 }
예제 #25
0
 protected override void interact(Interacter target)
 {
     base.interact(target);
 }
예제 #26
0
 protected abstract void finishInteract(Interacter target);
예제 #27
0
 protected abstract void interact(Interacter target);
예제 #28
0
 public void FinishInteract(Interacter target)
 {
     finishInteract(target);
     isBeingUsed = false;
 }
예제 #29
0
    //--------------------------------------------------------------------------------------------------------------------------------------

    //--------------------------------------------------------------------------------------------------------------------------------------

    void userEntersRange(Interacter enteringInteractor)
    {
        enteringInteractor.InteractableEntersRange(this);
    }
예제 #30
0
 void usererExitsRange(Interacter exitingTaker)
 {
     exitingTaker.InteractableExitsRange(this);
 }