예제 #1
0
 public void Interact(PlayerV1 player)
 {
     if (player.GetItem.ItemType == DispenserData.Type.RepairKit)
     {
         _turretHealth.RepairTurret();
         player.GetItem.DestroyAfterUse();
         Debug.Log("Repair complete!");
     }
 }
예제 #2
0
 public void Interact(PlayerV1 player)
 {
     if (!player.GetItem)
     {
         Destroy(gameObject);
         GameObject itemGo = Instantiate(_dispenserItem.ItemPerfab, player.transform.position, Quaternion.identity);
         Item       item   = itemGo.GetComponent <Item>();
         item.Setup(ref _dispenserItem);
         item.Pickup(ref player);
     }
 }
예제 #3
0
    public void Interact(PlayerV1 player)
    {
        Item item = player.GetItem;

        if (item != null && item.ItemType == DispenserData.Type.Fuel)
        {
            StartCoroutine(FireBoxAnimationCo());
            OnReloadFuel?.Invoke();
            item.DestroyAfterUse();
        }
    }
예제 #4
0
 public void Pickup(ref PlayerV1 player)
 {
     transform.SetParent(player.transform);
     transform.position = player.PlayerItemPlaceHolder;
     _collider.enabled  = false;
     if (_coroutine != null)
     {
         StopCoroutine(_coroutine);
         _coroutine = null;
     }
 }
예제 #5
0
        public void Interact(PlayerV1 player)
        {
            Item item = player.GetItem;

            if (item != null && item.ItemType == DispenserData.Type.RepairKit)
            {
                HealthSystem.RestoreFullHealth();
                player.GetItem.DestroyAfterUse();
                OnRepairUpdate?.Invoke();
            }
        }
예제 #6
0
 public void Interact(PlayerV1 player)
 {
     if (!player.GetItem)
     {
         _open = true;
         animator.SetBool("Open", true);
         GameObject itemGo = Instantiate(_dispenserItem.ItemPerfab, player.transform.position, Quaternion.identity);
         Item       item   = itemGo.GetComponent <Item>();
         item.Setup(ref _dispenserItem);
         item.Pickup(ref player);
     }
 }
예제 #7
0
    public void Interact(PlayerV1 player)
    {
        _player = player;
        _player.Interactable = this;
        _player.SwapActionControlToPlayer(false);

        Item item = _player.GetItem;

        if (item)
        {
            Reload(item.ItemType);
            item.DestroyAfterUse();
        }
    }
    private void OnTriggerExit2D(Collider2D collision)
    {
        if (collision.CompareTag("PassableFloor"))
        {
            _passbleFloors.Remove(collision.GetComponent <BoxCollider2D>());
        }

        if (collision.CompareTag("Player"))
        {
            PlayerV1 _player = collision.GetComponent <PlayerV1>();
            _player.LadderController = null;
            foreach (BoxCollider2D floor in _passbleFloors)
            {
                Physics2D.IgnoreCollision(_player.GetComponent <CapsuleCollider2D>(), floor, false);
            }
        }
    }
    public void PlayerRespawnPod(PlayerInput input)
    {
        if (++_playerCount > 1)
        {
            _trainData.PlayerCount++;
        }
        PlayerV1 player = input.GetComponent <PlayerV1>();

        player.transform.SetParent(_trainData.TrainTransform);
        player.transform.position = _playerSpawnPod.transform.position;
        player.RespawnPoint       = _playerSpawnPod.transform.position;

        if (!_respawnPod)
        {
            _respawnPod = _playerSpawnPod.GetComponent <RespawnPod>();
        }

        _respawnPod.AnimationRespawnPod();
    }
예제 #10
0
 public void Interact(PlayerV1 player)
 {
     Pickup(ref player);
 }