/// <summary> /// Return Closest Drop /// </summary> /// <returns></returns> public GameObject ClosestPlant() { #region Initialize Friend and Enemy float close = closestDistance; GameObject closestPlant = null; #endregion foreach (GameObject Plant in AllPlants) { #region Check if Creature Deleted if (Plant == null) { continue; } DestructableEnvironment d = Plant.GetComponent <DestructableEnvironment>(); if (d != null && d.destroyed) { continue; } #endregion //Debug.Log("Potential Plant: " + Creature.GetInstanceID()); //Debug.Log(Plant.GetInstanceID() + " is a drop"); float dist = Vector2.Distance(transform.position, Plant.transform.position); if (dist < close) { close = dist; closestPlant = Plant; } } //Debug.Log("Closest drop is reached = " + (closestPlant == null ? "and it is null" : closestPlant.name + closestPlant.GetInstanceID())); return(closestPlant); }
public override void OnTriggerEnter2D(Collider2D collision) { //Debug.Log("THERE IS NO CHARACTERCOLLISION"); //monsterChecks.Enemies.Clear(); GameObject g = collision.gameObject; string t = g.tag; if (t == "Predator") { if (damageSFX != null) { sfxPlayer.PlayRandPitch(damageSFX); } CharacterData charData = collision.gameObject.GetComponent <CharacterData>(); //Debug.Log("THERE IS CHARACTER COLLISION"); if (charData != null) { if (myCharData != null) { myCharData.damageDealt += (int)meleeDamage; } if (charData.DoDamage((int)meleeDamage) && myCharData != null) { myCharData.entitiesKilled += 1; } } } if (g.GetComponent <DestructableEnvironment>() != null) { DestructableEnvironment de = g.GetComponent <DestructableEnvironment>(); de.health -= ((int)meleeDamage); de.Destroy(); } }
protected override void OnTriggerEnter2D(Collider2D collision) { DestructableEnvironment envData = collision.GetComponent <DestructableEnvironment>(); bool destroyed = true; if (envData != null) { destroyed = envData.destroyed; } base.OnTriggerEnter2D(collision); if (envData != null && !destroyed) { if (envData.destroyed) { string value = FlagManager.GetFlag("EnvDestroyedByFire"); if (value == FlagManager.undefined || value == "0") { return; } int numLeft = int.Parse(value); if (numLeft <= 1) { FlagManager.SetFlag("EnvDestroyedByFire", "0"); if (QuestManager.instance.GetText().Contains("Burn")) { QuestManager.instance.SetText("Talk to {amrita}"); } } else { FlagManager.SetFlag("EnvDestroyedByFire", (numLeft - 1).ToString()); if (QuestManager.instance.GetText().Contains("Burn")) { QuestManager.instance.SetText("{color,spicy,Burn} {flag,EnvDestroyedByFire} objects"); } } } } }
protected virtual void OnTriggerEnter2D(Collider2D collision) { if (collision.GetType() == typeof(BoxCollider2D)) { Physics2D.IgnoreCollision(collision, gameObject.GetComponent <CapsuleCollider2D>()); } GameObject go = collision.gameObject; // Debug.Log("Projectile trigger entered"); if (go.tag == "SkewerableObject") { return; } if (go == attacker) { return; } if ((go.tag == "Player" || go.tag == "Prey") && !hurtPlayer) { return; } if (go.tag == "Predator" && !hurtDrones) { return; } if (dropItem != null) { Instantiate(dropItem, transform.position, Quaternion.identity); } CharacterData characterData = go.GetComponent <CharacterData>(); if (characterData != null) { //myCharData.damageDealt += (int)projectileDamage; //Debug.Log("Dealing DMG"); if (characterData.DoDamage((int)projectileDamage) && myCharData != null) { myCharData.entitiesKilled += 1; } if (!penetrateTargets) { Destroy(this.gameObject); } } else if (go.tag == "ThrowThrough") { DestructableEnvironment envData = go.GetComponent <DestructableEnvironment>(); //myCharData.damageDealt += (int)projectileDamage; //Debug.Log("Dealing DMG"); if (envData != null) { envData.health -= (int)Mathf.Max(projectileDamage, 1); envData.Destroy(); if (!penetrateTargets) { Destroy(this.gameObject); } } } }