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); }
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); }
// 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; }
private void OnTriggerExit2D(Collider2D other) { PlayerDataComponent data = other.GetComponent <PlayerDataComponent>(); if (data == null) { return; } _leftPartRenderer.sprite = closeSprite; _rightPartRenderer.sprite = closeSprite; data.closeWindows.Remove(this); }
private void OnTriggerEnter2D(Collider2D other) { PlayerDataComponent data = other.GetComponent <PlayerDataComponent>(); if (data == null) { return; } _leftPartRenderer.sprite = openLeftSprite; _rightPartRenderer.sprite = openRightSprite; data.closeWindows.Add(this); }
/// <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; }
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); }