void OnTriggerEnter2D(Collider2D other) { if (other.CompareTag("Player")) { PlayerCharacter2D pc = other.GetComponent <PlayerCharacter2D>(); switch (PickupType) { case "Health": pc.SoinPerso(Valeur); break; case "Missile": pc.joueurStats.nbMissile += Valeur; if (pc.joueurStats.nbMissile > pc.joueurStats.nbMissileMax) { pc.joueurStats.nbMissile = pc.joueurStats.nbMissileMax; } pc.UpdateMissileUI(); break; default: break; } if (FindObjectOfType <AudioManager>()) { FindObjectOfType <AudioManager>().Play("PickupSound"); } Destroy(gameObject); } }
public void ItemDrop(Ennemis perso) { float result = UnityEngine.Random.Range(1, 100); if (result / 100 > 0.5f) { result = UnityEngine.Random.Range(1, 100); if (result / 100 > 0.5f) //1-50: Missile, 51-100: Health { PlayerCharacter2D pc = FindObjectOfType <PlayerCharacter2D>(); if (pc.HasUpgrade("Missile")) { GameObject clone = Instantiate(itemPickupPrefab, perso.transform.position, perso.transform.rotation); clone.GetComponent <PickupItem>().PickupType = "Missile"; clone.GetComponent <Animator>().Play("Missile"); clone.GetComponent <PickupItem>().Valeur = 5; //Debug.Log("missile drop"); } } else { //Debug.Log("health drop"); GameObject clone = Instantiate(itemPickupPrefab, perso.transform.position, perso.transform.rotation); clone.GetComponent <PickupItem>().PickupType = "Health"; clone.GetComponent <Animator>().Play("Health"); clone.GetComponent <PickupItem>().Valeur = 10; } } }
void OnTriggerEnter2D(Collider2D other) { if (other.CompareTag("Player")) { if (pris) { return; } pris = true; //Desactive le collider pour empêcher le double pickup gameObject.GetComponent <CircleCollider2D>().enabled = false; Debug.Log("Get Upgrade"); if (FindObjectOfType <AudioManager>() != null) { FindObjectOfType <AudioManager>().Play("ItemPickup"); } PlayerCharacter2D pc = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerCharacter2D>(); if (!pc.upgrading) { Debug.Log("entre ici"); //pc.upgrading = true; Pickup(other); pc.upgrading = false; } } }
public void UpdateGUI(bool?on) { if (!missileUI.activeSelf) { missileUI.SetActive(true); } PlayerCharacter2D pc = FindObjectOfType <PlayerCharacter2D>(); if (pc == null) { Debug.Log("Pas trouve le joueur en updatant le UI"); } else { missileUI.GetComponentInChildren <TextMeshProUGUI>().text = pc.joueurStats.nbMissile + " / " + pc.joueurStats.nbMissileMax; } if (on == null) { return; } if ((bool)on) { missileUI.GetComponent <Image>().color = new Vector4(1, 1, 0, 1); } else { missileUI.GetComponent <Image>().color = new Vector4(1, 1, 0, 0.392f); } }
// n'écrase plus le joueur private void OnTriggerExit2D(Collider2D collision) { if (collision.tag == "Player") { GameObject coll = collision.gameObject; // désactive les controle PlayerCharacter2D p = coll.GetComponent <PlayerCharacter2D>(); Rigidbody2D rbp = coll.GetComponent <Rigidbody2D>() as Rigidbody2D; rbp.collisionDetectionMode = CollisionDetectionMode2D.Continuous; if (p) { p.setEnableInput(true); } // agrandir le joueur Sequence decrase = DOTween.Sequence(); decrase.Append(coll.transform.DOScaleY(m_ScaleY, 0.2f)); //decrase.Insert(0.0f, m_Player.transform.DOMoveY(m_Player.transform.position.y + 0.4f, 0.2f)); decrase.Play(); } }
private void OnTriggerEnter2D(Collider2D other) { GameObject coll = other.gameObject; if (m_Player == coll) { // désactive les controle PlayerCharacter2D p = coll.GetComponent <PlayerCharacter2D>(); Rigidbody2D rbp = m_Player.GetComponent <Rigidbody2D>() as Rigidbody2D; rbp.collisionDetectionMode = CollisionDetectionMode2D.Discrete; //rbp.constraints = RigidbodyConstraints2D.FreezeAll; if (p) { p.setEnableInput(false); } // rapetisse le joueur Sequence ecrase = DOTween.Sequence(); ecrase.Append(m_Player.transform.DOScaleY(1.0f, 0.2f)); ecrase.Insert(0.0f, m_Player.transform.DOMoveY(m_Player.transform.position.y - 0.4f, 0.2f)); ecrase.Play(); //Invoke("p.setEnableInput(false)", m_MovingRate + 0.1f); } }
private void OnTriggerEnter2D(Collider2D collision) { if (collision.tag == "Player") { PlayerCharacter2D p = collision.GetComponent <PlayerCharacter2D>(); GameMaster.KillJoueur(p); } }
public IEnumerator RespawnPlayer(PlayerCharacter2D perso) { //TODO: Ajout d'un son pour l'attente yield return(new WaitForSeconds(spawnDelay)); if (FindObjectOfType <AudioManager>() != null) { FindObjectOfType <AudioManager>().Play("RespawnPlayer"); } perso.gameObject.transform.position = spawnPoint.position; perso.gameObject.transform.rotation = spawnPoint.rotation; perso.SoinPerso(999999); //Detache le grappin si on meurt en etant attache if (perso.GetComponent <GrappleBeam>().isGrappleAttached) { perso.GetComponent <GrappleBeam>().UseGrapple(); } // si le joueur à été écrasé avant de mourir, réactive les controles et remet le scale comme il faut; if (perso.gameObject.transform.lossyScale.y < 1.5f) { Rigidbody2D rbp = perso.GetComponent <Rigidbody2D>() as Rigidbody2D; rbp.collisionDetectionMode = CollisionDetectionMode2D.Continuous; perso.setEnableInput(true); perso.gameObject.transform.localScale = new Vector3(5.0f, 5.0f, 1.0f); } perso.gameObject.SetActive(true); if (playerPrefab != null) { //Instantiate(playerPrefab, spawnPoint.position, Quaternion.identity); if (spawnPrefab != null) { Transform clone = Instantiate(spawnPrefab, spawnPoint.position, spawnPoint.rotation) as Transform; Destroy(clone.gameObject, 3f); } } perso.joueurStats.immortel = false; }
IEnumerator SearchForPlayer() { GameObject sResult = GameObject.FindGameObjectWithTag("Player"); if (sResult == null) { yield return(new WaitForSeconds(0.5f)); StartCoroutine(SearchForPlayer()); } else { en = sResult.GetComponent <PlayerCharacter2D>() as PlayerCharacter2D; searchingForPlayer = false; StartCoroutine(CheckDistance()); yield break; } }
public void Explosion(int dmg, PlayerCharacter2D pl, float fireRate) { if (CanAttack) { if (effetAttaquePrefab != null) { Transform clone = Instantiate(effetAttaquePrefab, firePoint.position, firePoint.rotation) as Transform; ShockWaveForce wave = clone.GetComponent <ShockWaveForce>(); wave.radius = statAttaque.eRadius * 1.3f; Destroy(clone.gameObject, 1f); } attaqueCooldown = fireRate; if (Rigidbody2DExt.AddExplosionForce(pl.GetComponent <Rigidbody2D>(), statAttaque.ePower, firePoint.position, statAttaque.eRadius, statAttaque.upwardsModifier)) { pl.DommagePerso(dmg); } } }
public void Contact(int dmg, PlayerCharacter2D pl, float f) { //Rigidbody2DExt.AddExplosionForce(pl.GetComponent<Rigidbody2D>(), f, firePoint.position, r, upM, ForceMode2D.Force); var dir = my_transform.position - pl.transform.position; //Debug.Log(dir); Vector3 baseForce = -dir.normalized * f; baseForce.x *= 2f; //baseForce.x += Mathf.Sign(baseForce.x)*10f; if (dir.y > -0.9f && dir.y < 0.9f) { Vector2 upp = Vector2.up * 10f; pl.GetComponent <Rigidbody2D>().AddForce(upp, ForceMode2D.Impulse); baseForce.y = 0; } //Debug.Log(baseForce); pl.GetComponent <Rigidbody2D>().AddForce(baseForce); pl.DommagePerso(dmg); }
// si le joueur est détecter, l'écrase et lui fait des DMG private void OnTriggerEnter2D(Collider2D collision) { if (collision.tag == "Player") { GameObject coll = collision.gameObject; if (m_getScale == false) { m_ScaleY = coll.transform.lossyScale.y; m_getScale = true; } if (dommageHit == (dommageHit | (1 << coll.layer))) { Personnages en = coll.GetComponent <Personnages>() as Personnages; en.DommagePerso(m_dmg); } if (m_descend == false) { // désactive les controle PlayerCharacter2D p = coll.GetComponent <PlayerCharacter2D>(); Rigidbody2D rbp = coll.GetComponent <Rigidbody2D>() as Rigidbody2D; rbp.collisionDetectionMode = CollisionDetectionMode2D.Discrete; if (p) { p.setEnableInput(false); } // rapetisse le joueur Sequence ecrase = DOTween.Sequence(); ecrase.Append(coll.transform.DOScaleY(1.0f, 0.2f)); ecrase.Insert(0.0f, coll.transform.DOMoveY(coll.transform.position.y - 0.4f, 0.2f)); ecrase.Play(); } } }
public static void KillJoueur(PlayerCharacter2D perso) { perso.gameObject.SetActive(false); //instance.RespawnPlayer(perso); instance.StartCoroutine(instance.RespawnPlayer(perso)); }
private void DestroyPlayer(PlayerCharacter2D perso) { Destroy(perso.gameObject); }
private bool upgradeCheatFlag = false; //garde un check pcq si on active tous les upgrades plusieurs fois, ca risque de faire n'importe quoi private void Awake() { m_Character = GetComponent <PlayerCharacter2D>(); }
void Pickup(Collider2D player) { //fait de quoi sur le player GameObject monjoueur = GameObject.FindGameObjectWithTag("Player"); PlayerCharacter2D pc = (PlayerCharacter2D)monjoueur.GetComponent(typeof(PlayerCharacter2D)); if (pc == null) { Debug.Log("Player not found"); return; } if (pc.upgrading) { return; } else { pc.upgrading = true; } //pc.ToggleUpgrade(UpgradeName); if (!pc.HasUpgrade(UpgradeName) || (UpgradeName == "Missile" && pc.HasUpgrade("Missile"))) { switch (UpgradeName) { case "MorphBall": pc.ToggleUpgrade(UpgradeName); pc.gameObject.AddComponent(typeof(MorphBall)); break; case "MorphBomb": pc.ToggleUpgrade(UpgradeName); break; case "GrappleBeam": pc.ToggleUpgrade(UpgradeName); pc.AddWeapon("GrappleBeam"); pc.gameObject.GetComponent <GrappleBeam>().enabled = true; pc.gameObject.GetComponent <GrappleBeam>().UpdateGUI(false); break; case "Missile": pc.joueurStats.nbMissileMax += 5; pc.joueurStats.nbMissile = pc.joueurStats.nbMissileMax; if (pc.HasUpgrade("Missile")) { pc.UpdateMissileUI(); } else { pc.ToggleUpgrade(UpgradeName); pc.AddWeapon("Missile"); } Debug.Log("missile max 1: " + pc.joueurStats.nbMissileMax); break; case "MissileExpansion": pc.joueurStats.nbMissileMax += 5; pc.joueurStats.nbMissile = pc.joueurStats.nbMissileMax; pc.UpdateMissileUI(); break; case "HealthExpansion": pc.joueurStats.vieMax += 100; pc.joueurStats.vie = pc.joueurStats.vieMax; pc.UpdateHealthBar(); break; default: Debug.Log("Upgrade non spécifiée ou non reconnue"); pc.gameObject.AddComponent(typeof(TestUpgradeBehavior)); break; } gameObject.GetComponent <Animator>().Play("Disapear"); } GetComponent <DialogueTrigger>().TriggerDialogue(); Destroy(gameObject, 0.25f); }