private void OnTriggerExit2D(Collider2D collider) { CameraSegmentMember member = collider.GetComponent <CameraSegmentMember>(); if (member) { OnMemberExit(member); } PlayerUnitController unit = InteractiveHelpers.GetPlayer(collider); if (!unit) { return; } unitsInside.Remove(unit); // TODO: do we need to assign null here? //PlayerUnitCamera camera = unit.di.camera; //if (camera.CameraSegment == this) // camera.CameraSegment = null; //camera.RemoveCameraSegment(this); }
public void CastRay(Vector2 origin) { Vector2 rayVector = Vector2.down; float skinWidth = Constants.SKIN_WIDTH; float rayLength = this.rayLength + skinWidth; if (debug) { Debug.DrawLine(origin, origin + (rayVector * rayLength), Color.red); } RaycastHit2D hit = Physics2D.Raycast(origin, rayVector, rayLength, layerMask); if (hit) { PlayerUnitController player = InteractiveHelpers.GetPlayer(hit.collider); if (player) { float collideDistance = 1f; float allowedMove = player.di.physics.movement.GetAllowedMovement(collideDistance, Dir4.down); if (allowedMove < collideDistance) { PlayerDamageModule damage = player.di.damage; damage.TakeFullDamage(); } } } }
private void OnTriggerEnter2D(Collider2D collision) { PlayerUnitController unit = InteractiveHelpers.GetPlayer(collision); PlayerBaseStats stats = unit.di.stats; PlayerRespawnHandler respawnHandler = unit.mainController.di.respawnHandler; bool playSound = false; foreach ((SlimeType type, bool acceptsType) in checkpointFor.GetPairEnumerable()) { if (acceptsType && stats.HasType(type)) { bool updated = respawnHandler.SetCheckpoint(type, this); if (updated) { playSound = true; } if (!segmentMember.Segment) { segmentMember.Segment = unit.di.camera.CameraSegment; } } } if (playSound) { AudioSingleton.PlaySound(AudioSingleton.Instance.clips.checkpoint); } }
private void OnTriggerEnter2D(Collider2D collider) { CameraSegmentMember member = collider.GetComponent <CameraSegmentMember>(); if (member) { OnMemberEnter(member); } PlayerUnitController unit = InteractiveHelpers.GetPlayer(collider); if (!unit) { return; } PlayerUnitCamera playerCamera = unit.di.camera; if (playerCamera.CameraSegment == null) { unitsInside.Add(unit); playerCamera.CameraSegment = this; } else { CheckUnitForSegmentEnter(unit); } }
private void OnTriggerExit2D(Collider2D collision) { PlayerUnitController unit = InteractiveHelpers.GetPlayer(collision); if (unit) { playersInRange.Remove(unit); } }
private void OnTriggerExit2D(Collider2D collision) { PlayerUnitController unit = InteractiveHelpers.GetPlayer(collision); if (unit && interactionPredicate.CanInteract(unit)) { RemovePressingUnit(unit); } }
private void OnTriggerEnter2D(Collider2D collision) { PlayerUnitController unit = InteractiveHelpers.GetPlayer(collision); if (unit) { SceneManager.LoadScene(sceneName); } }
private void OnTriggerEnter2D(Collider2D collision) { PlayerUnitController unit = InteractiveHelpers.GetPlayer(collision); if (unit) { source.Play(); } }
private void OnTriggerEnter2D(Collider2D collider) { PlayerUnitController unit = InteractiveHelpers.GetPlayer(collider); if (unit && predicate.CanInteract(unit)) { GameplayManager.instance.fsm.PushTutorial(data); Destroy(gameObject); } }
private void OnTriggerEnter2D(Collider2D collision) { PlayerUnitController unit = InteractiveHelpers.GetPlayer(collision); if (!unit) { return; } unit.di.poison.AddPoisonField(this); }
private void OnTriggerEnter2D(Collider2D collision) { PlayerUnitController unit = InteractiveHelpers.GetPlayer(collision); if (!unit) { return; } unit.di.damage.TakeFullDamage(Vector2.zero); }
public bool MergeWith(Collider2D collider) { PlayerUnitController otherController = InteractiveHelpers.GetPlayer(collider); if (otherController) { OnUnitCollision(otherController); return(true); } return(false); }
private void OnTriggerStay2D(Collider2D collider) { PlayerUnitController unit = InteractiveHelpers.GetPlayer(collider); if (!unit || unitsInside.Contains(unit)) { return; } CheckUnitForSegmentEnter(unit); }
private void OnTriggerExit2D(Collider2D collider) { PushBlock block = InteractiveHelpers.GetBlock(collider); if (block) { isPressed = false; spriteRenderer.enabled = true; pressEmitter.Emit(isPressed); //trigger.CallTriggerAction(isPressed); AudioSingleton.PlaySound(AudioSingleton.Instance.clips.button); } }
private void OnTriggerEnter2D(Collider2D collision) { EnemyDamagable damagable = InteractiveHelpers.GetEnemy(collision); if (damagable) { damagable.TakeDamageFrom(boxCollider, controller); if (damagable.HasRecoilAfterDamage()) { controller.di.stateMachine.SetRecoilState(damagable.GetRecoilAfterDamage()); } } }
private void OnTriggerStay2D(Collider2D collision) { PlayerUnitController unit = InteractiveHelpers.GetPlayer(collision); if (!unit) { return; } if (unit.di.vulnerability.IsVulnerable()) { float randomSign = Random.Range(0, 2) == 1 ? 1 : -1; Vector2 randomPushForce = TileHelpers.TileToWorld(new Vector2(randomSign * pushTileForce.x, pushTileForce.y)); unit.di.damage.TakeFullDamage(randomPushForce); } }
private void OnTriggerEnter2D(Collider2D collision) { PlayerUnitController unit = InteractiveHelpers.GetPlayer(collision); if (unit && interactionPredicate.CanInteract(unit)) { if (!isPressed) { isPressed = true; //trigger.CallTriggerAction(isPressed); pressEmitter.Emit(isPressed); AudioSingleton.PlaySound(AudioSingleton.Instance.clips.button); } pressing.Add(unit); spriteRenderer.enabled = false; if (unit.di.stats.OnChange != null) { unit.di.stats.OnChange += OnPressingAssemblyStatsChange; } } }
private void OnTriggerEnter2D(Collider2D collision) { bool isFalling = physics.velocity.Y < 0; if (isFalling) { EnemyDamagable damagable = InteractiveHelpers.GetEnemy(collision); if (damagable) { damagable.TakeDamageFrom(boxCollider, controller); if (damagable.HasRecoilAfterDamage()) { controller.di.stateMachine.SetRecoilState(damagable.GetRecoilAfterDamage()); } else { Vector2 playerRecoil = RecoilHelpers.GetRecoilFromTo(controller.transform, controller.transform, tileRecoilOnHit); Debug.Log(playerRecoil); physics.velocity.Value = playerRecoil; //controller.StateMachine.SetRecoilState(playerRecoil); } } } }