Beispiel #1
0
    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");
    }
Beispiel #2
0
    /// <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");
		}
    }
Beispiel #3
0
    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
    }