void m_DropExperience() { int expDropped = 0; ExperienceHolder eh = null; if (GetComponent <Attackable> ().Killer != null && GetComponent <Attackable> ().Killer.GetComponent <ExperienceHolder> ()) { eh = GetComponent <Attackable> ().Killer.GetComponent <ExperienceHolder> (); } else { eh = FindObjectOfType <ExperienceHolder> (); } while (expDropped < Experience) { GameObject go = Instantiate(GameManager.Instance.FXExperience, transform.position, Quaternion.identity); if (eh != null) { go.GetComponent <ChaseTarget> ().Target = eh.gameObject; } go.GetComponent <ChaseTarget> ().StartingVel = new Vector2(Random.Range(-10f, 10f), 10f); expDropped += 50; } if (eh != null) { eh.AddExperience((int)Experience); } FindObjectOfType <AudioManager> ().PlayClipAtPos(FXHit.Instance.SFXHeal, transform.position, 0.25f, 0f, 0.25f); GetComponent <PropertyHolder> ().RequestRemoveProperty("Data"); }
/// <summary> /// Takes in an Experience Holder for correct exp updates, levels up if required /// </summary> /// <param name="obj"></param> public static void UpdateExperience(ExperienceHolder obj) { if (Instance.exp == null || Instance.exp != obj) Instance.exp = obj; //Debug.Log ("Requirement: " + Instance.DataRequirement * Instance.Scaler * Instance.Level); //Debug.Log ("Current: " + Instance.exp.Experience); if (Instance.exp.Experience >= Instance.DataRequirement * (Mathf.Pow(Instance.Level,Instance.Scaler))) { //EventManager.TriggerEvent (3); Instance.NextLevel = (int)(((float)Instance.DataRequirement * (Mathf.Pow ((float)Instance.Level, Instance.Scaler)))); //Debug.Log ("Event Triggered"); } }
public void doDamage(GameObject emitter, int damage) { if (isDead) { return; } if (!isDamageable(emitter)) // Am I damaging myself? { return; } if (isInvincible) // Invincible? { return; } GameObject dmgText = Instantiate(floatingText) as GameObject; dmgText.GetComponent <FloatingText>().initialize(gameObject, damage.ToString()); if (movingChar) { movingChar.receivesDamage(); } HP -= damage; if (HP <= 0) { ExperienceHolder xpHolder = GetComponent <ExperienceHolder>(); if (xpHolder) // If I have experience, give it { xpHolder.die(emitter); } die(); return; } StartCoroutine(makeInvincible(invincibilityTime)); // Make invincible }