public void GivenMapElement_WhenConvertToEntityType_ThenReturnTheRightType() { // Arrange var nonBreakableWall = new NonBreakableWall(); var breakableWall = new BreakableWall(); var playerOne = new PlayerDto() { EntityType = EntityType.PlayerOne }; var playerTwo = new PlayerDto() { EntityType = EntityType.PlayerTwo }; // Act var typeWall = _elementToTypeConverter.ConvertToEntityType(nonBreakableWall); var typeBreakableWall = _elementToTypeConverter.ConvertToEntityType(breakableWall); var typePlayerOne = _elementToTypeConverter.ConvertToEntityType(playerOne); var typePlayerTwo = _elementToTypeConverter.ConvertToEntityType(playerTwo); // Assert Check.That(typeWall).IsEqualTo(EntityType.Wall); Check.That(typeBreakableWall).IsEqualTo(EntityType.BreakableWall); Check.That(typePlayerOne).IsEqualTo(EntityType.PlayerOne); Check.That(typePlayerTwo).IsEqualTo(EntityType.PlayerTwo); }
/// <summary> /// Use the object at position x, y on object obj /// </summary> /// <param name="posX">Position x.</param> /// <param name="posY">Position y.</param> /// <param name="obj">Object.</param> public override bool Use(float posX, float posY, GameObject obj = null) { //base.Use (posX, posY, obj); //set the physics GetComponent <Collider2D>().enabled = true; GetComponent <Rigidbody2D>().isKinematic = false; transform.localScale /= 4f; if (obj != null) { BreakableWall wall = obj.GetComponent <BreakableWall> (); if (wall != null) { wall.HitOn(); //Destroy (gameObject, 0.1f); return(true); } Monster monster = obj.GetComponent <Monster> (); if (monster != null) { monster.HitByStone(); //Destroy (gameObject, 0.1f); return(true); } } //PlayerControl.playerControl.Unlcoked (1); return(false); }
void OnTriggerEnter(Collider other) { if (other.gameObject.layer == 24) { wall = other.GetComponentInParent <BreakableWall> (); wall.Hit(); print("Player Wall health hit: " + wall.health); } }
void OnTriggerEnter(Collider other) { if (other.gameObject.layer == 24) { wall = other.GetComponentInParent<BreakableWall> (); wall.Hit (); print ("Player Wall health hit: " + wall.health); } }
private void OnTriggerEnter2D(Collider2D collision) { //Debug.Log("Object Detected from Hitbox"); //if it's an enemy if (collision.gameObject.layer == 11 && collision.CompareTag("Enemy")) { //Debug.Log("Enemy Hit: " + collision.gameObject.name); EnemyStats enemy = collision.gameObject.GetComponentInParent <EnemyStats>(); if (enemy != null) { Vector3 knockbackTemp = knockback; if (usePlayerFacing) { knockbackTemp.x = (player.facingRight) ? knockback.x : -knockback.x; } enemy.LogDamage(damage, knockbackTemp); } } else if (collision.gameObject.layer == 12) { //Debug.Log("Door Detected"); Door door = collision.gameObject.GetComponentInParent <Door>(); if (door != null) { //Debug.Log("Opening Door"); door.Open(false); } //else //{ // //Debug.Log("Door is null"); //} } //if it's a breakable wall else if (collision.gameObject.layer == 18) { BreakableWall breakableWall = collision.gameObject.GetComponent <BreakableWall>(); if (breakableWall != null) { breakableWall.BreakWall(); } } }
void Start() { leftWall = GameObject.FindGameObjectWithTag("Left Wall").GetComponent <BreakableWall>(); rightWall = GameObject.FindGameObjectWithTag("Right Wall").GetComponent <BreakableWall>(); topWall = GameObject.FindGameObjectWithTag("Top Wall").GetComponent <ColorFlash>(); bottomWall = GameObject.FindGameObjectWithTag("Bottom Wall").GetComponent <ColorFlash>(); soundManager = GameObject.FindObjectOfType <SoundManager> (); canvas = GameObject.FindObjectOfType <Canvas>(); text = canvas.GetComponentInChildren <Text> (); leftPlayer = Instantiate(leftPlayer, new Vector3(-6, 0, 0), Quaternion.identity); rightPlayer = Instantiate(rightPlayer, new Vector3(6, 0, 0), Quaternion.identity); puck = Instantiate(puck, Vector3.zero, Quaternion.identity); puck.Initialize(); StartCoroutine(puck.ResetPosition()); StartCoroutine(Countdown()); }
private void DetectHit() { Collider2D[] objectsInRange = Physics2D.OverlapCircleAll(location.position, range); foreach (Collider2D collider in objectsInRange) { Enemy enemy = collider.GetComponent <Enemy>(); if (enemy != null) { enemy.HitByBomb(); continue; } PuzzleEnemy pEnemy = collider.gameObject.GetComponent <PuzzleEnemy>(); if (pEnemy != null) { pEnemy.HitByBomb(); } Player player = collider.GetComponent <Player>(); if (player != null) { player.TakeDamage(2); continue; } BreakableWall wall = collider.GetComponent <BreakableWall>(); if (wall != null) { wall.BlowUp(); continue; } } }
public void Explode() { IsExploding = true; SpriteRenderer.gameObject.SetActive(false); ExplosionRenderer.gameObject.SetActive(true); AudioSource.PlayOneShot(ExplosionSound); ExplosionRenderer.transform.DORotate(new Vector3(0f, 0f, 180f), 0.3f).OnComplete(() => Destroy(gameObject)); // This is the absolute worst way to do this, but whatever. Collider2D[] colliders = Physics2D.OverlapBoxAll(transform.position, new Vector2(2f, 2f), 0f); foreach (Collider2D collider in colliders) { PlayerMovement playerMovement = collider.GetComponent <PlayerMovement>(); if (playerMovement != null) { // Found a player... muahahaha. Debug.Log("Explosion damaged player."); playerMovement.TakeDamage(Damage); continue; } Enemy enemy = collider.GetComponent <Enemy>(); if (enemy != null) { // Found an enemy... kaboom. Debug.Log("Explosion damaged enemy."); enemy.TakeDamage(Damage); continue; } BreakableWall wall = collider.GetComponent <BreakableWall>(); if (wall != null) { // Found a breakable wall... siyanara. Debug.Log("Explosion damaged wall."); wall.TakeExplosion(); continue; } } }
public void TakeAttackRange() { charSprite.GetComponent <SpritesOutline>().outlineSize = 16; Collider2D[] enemiesToDamage = Physics2D.OverlapAreaAll(startPos.position, endPos.position, enemies); for (int i = 0; i < enemiesToDamage.Length; i++) { if (enemiesToDamage[i].tag == "Player" || enemiesToDamage[i].tag == "King" || enemiesToDamage[i].tag == "Boss" || enemiesToDamage[i].tag == "Hand" || enemiesToDamage[i].tag == "Enemy") { CharacterHealth characterHealth = enemiesToDamage [i].GetComponent <CharacterHealth> (); if (characterHealth != null) { characterHealth.TakeDamage(damage); } } else if (enemiesToDamage[i].tag == "Bar") { MachineTrigger machineTrigger = enemiesToDamage [i].GetComponent <MachineTrigger> (); if (machineTrigger != null) { machineTrigger.StateChange(); } } else if (enemiesToDamage[i].tag == "Breakable") { BreakableWall breakableWall = enemiesToDamage [i].GetComponent <BreakableWall> (); if (breakableWall != null) { breakableWall.WallChange(); } } } coolDownTime = startTime; }
/** * Erstellt die richtige Art Feld anhand des eingelesenen Symboles und gibt * dieses zurück. Das eingegebene Symbol muss eines der aufgelisteten sein. * Wirft eine Exception,falls das Symbol nicht existiert. * "#": Wand * " ": Weg * "P": Spieler * "B": Box * "G": Zielfeld * @precondition Das eingegebene Symbol muss existieren. * @params symbol welches eingelesen werden soll. Muss existieren. * @params x Koordinate des Feldes. * @params y Koordinate des Feldes. * @param board auf welchem gearbeitet wird. * @return Das erstellte neue Feld. */ public Square makeSquare(string symbol, int x, int y, Board board, Vector3 position) { Square square; switch (symbol) { case FLOOR_SYMBOL: square = new Floor(x, y, board, position); break; case WALL_SYMBOL: square = new Wall(x, y, board, position); break; case BREAKABLE_WALL_SYMBOL: BreakableWall bw = new BreakableWall(x, y, board, position); square = new Floor(x, y, board, position); square.setMovableSquare(bw); break; case PLAYER_SYMBOL: Player player = new Player(x, y, board, position); square = new Floor(x, y, board, position); square.setMovableSquare(player); break; case BOX_SYMBOL: Box box = new Box(x, y, board, position); square = new Floor(x, y, board, position); square.setMovableSquare(box); break; case GOAL_SYMBOL: square = new Goal(x, y, board, position); break; case BOMB_SYMBOL: Bomb bomb = new Bomb(x, y, board, position); square = new Floor(x, y, board, position); square.setMovableSquare(bomb); break; case "1": square = new BreakableFloor(x, y, board, position, 1); break; case "2": square = new BreakableFloor(x, y, board, position, 2); break; case "3": square = new BreakableFloor(x, y, board, position, 3); break; case "4": square = new BreakableFloor(x, y, board, position, 4); break; case "5": square = new BreakableFloor(x, y, board, position, 5); break; case "6": square = new BreakableFloor(x, y, board, position, 6); break; case "7": square = new BreakableFloor(x, y, board, position, 7); break; case "8": square = new BreakableFloor(x, y, board, position, 8); break; case "9": square = new BreakableFloor(x, y, board, position, 9); break; default: throw new UnknownSymbolException(); } return(square); }
public void BreakableWall_GetImageFileName_RightImageName() { var wall = new BreakableWall(); wall.GetImageFileName().Should().Be("BreakableWall.png"); }
//Interaction with items function void UpdateInteract() { //If player hits key (button dependent on input settings in unity) if (Input.GetButtonDown("Collect" + controller)) { //Local Variables for interact function RaycastHit2D[] hits = Physics2D.CircleCastAll(transform.position, interactionRange, Vector2.zero, 0); Collectible bestCollectible = null; BreakableWall bestWall = null; float bestDistance = float.MaxValue; foreach (RaycastHit2D hit in hits) { //Detects, filters and ignore any object that is not a collectible item (another Player) //Continue to loop and filter the next object detected GameObject hitObject = hit.collider.gameObject; if (hitObject == gameObject) { continue; } //Get treasure script component Collectible treasure = hitObject.GetComponent <Collectible>(); //if the gameobject detected is a collectable, then calculate the distance between the player and collectable //if the player is in range distance of collectible, then allow collectable interaction if (treasure) { float distance = Vector2.Distance(transform.position, hitObject.transform.position); if (distance < bestDistance) { bestCollectible = treasure; bestDistance = distance; } } else { BreakableWall wall = hitObject.GetComponent <BreakableWall>(); if (wall) { float distance = Vector2.Distance(transform.position, hitObject.transform.position); if (distance < bestDistance) { bestWall = wall; bestDistance = distance; } } } } //If collectable, tries to collect object (Jess's script) and create particle effects when button is pressed if (bestCollectible && !bestWall) { bestCollectible.Collect(this); Instantiate(particlesPrefab, transform.position, Quaternion.identity); } else if (bestWall) { bestWall.Break(); } } }