Exemplo n.º 1
0
    public bool Drop(GameObject sender)
    {
        _data.grabbed = false;

        transform.parent        = null;
        transform.localRotation = Quaternion.identity;

        if (_playerGrabbing.closeWindows.Any() && _data.npcState == NPCState.Drunk)
        {
            _data.falling = true;
            OnFall?.Invoke(gameObject, this);
            transform.position += _playerGrabbing.closeWindows.First().transform.up * 2;
            GameHelper.GameManager.data.score += 100;

            return(true);
        }

        _playerGrabbing = null;

        _collider.enabled = true;
        _body.isKinematic = false;

        // Add the dancer to nbrDancer (if dancer)
        if (_data.drunkType == DrunkType.Dancer)
        {
            GameHelper.GameManager.data.dancerCount++;
        }

        return(true);
    }
Exemplo n.º 2
0
    public bool Take(GameObject sender)
    {
        if (_data.grabbed)
        {
            return(false);
        }

        _playerGrabbing = sender.GetComponent <PlayerDataComponent>();
        _data.grabbed   = true;

        transform.parent        = sender.transform.GetChild(0).transform;
        transform.localPosition = Vector3.zero;
        transform.localRotation = Quaternion.identity;
        spriteGameObject.transform.localRotation = Quaternion.identity;

        _collider.enabled = false;
        _body.isKinematic = true;
        _body.velocity    = Vector2.zero;

        // Desactivate the dancer (if dancer)
        if (_data.drunkType == DrunkType.Dancer)
        {
            GameHelper.GameManager.data.dancerCount--;
        }

        return(true);
    }
Exemplo n.º 3
0
    // Start is called before the first frame update
    private void Start()
    {
        _audioSrc = GetComponent <AudioSource>();
        _player   = GetComponent <PlayerComponent>();
        _data     = GetComponent <PlayerDataComponent>();

        _player.OnTrashThrown   += TrashThrownAction;
        _player.OnObjectTaken   += ObjectTakenAction;
        _player.OnObjectDropped += ObjectDroppedAction;
    }
Exemplo n.º 4
0
    private void OnTriggerExit2D(Collider2D other)
    {
        PlayerDataComponent data = other.GetComponent <PlayerDataComponent>();

        if (data == null)
        {
            return;
        }

        _leftPartRenderer.sprite  = closeSprite;
        _rightPartRenderer.sprite = closeSprite;

        data.closeWindows.Remove(this);
    }
Exemplo n.º 5
0
    private void OnTriggerEnter2D(Collider2D other)
    {
        PlayerDataComponent data = other.GetComponent <PlayerDataComponent>();

        if (data == null)
        {
            return;
        }

        _leftPartRenderer.sprite  = openLeftSprite;
        _rightPartRenderer.sprite = openRightSprite;

        data.closeWindows.Add(this);
    }
Exemplo n.º 6
0
 /// <summary>
 /// Creates a new <see cref="PlayerEntity"/> instance.
 /// </summary>
 /// <param name="context"></param>
 public PlayerEntity(IPlayerFactory playerFactory)
 {
     Moves          = new MovableComponent();
     PlayerData     = new PlayerDataComponent();
     Taskbar        = new TaskbarComponent();
     Follow         = new FollowComponent();
     Interaction    = new InteractionComponent();
     Battle         = new BattleComponent();
     Timers         = new TimerComponent();
     Attributes     = new AttributeComponent();
     QuestDiary     = new QuestDiaryComponent();
     SkillTree      = new SkillTreeComponent();
     Inventory      = new InventoryContainerComponent();
     _playerFactory = playerFactory;
 }
Exemplo n.º 7
0
    public bool Take(GameObject sender)
    {
        PlayerDataComponent data = sender.GetComponent <PlayerDataComponent>();

        if (data == null)
        {
            return(false);
        }

        if (data.trashCount <= GameHelper.GameManager.data.trashLimit)
        {
            worldTile.walkable = true;
            Destroy(gameObject);
            data.trashCount++;
            GameHelper.GameManager.data.score += 10;
        }

        return(false);
    }