Ejemplo n.º 1
0
    private void ShowDamageBurst(HitStatus status, int damage = 0)
    {
        var             clone      = (GameObject)Instantiate(this.damageNumbers, this.gameObject.transform.position, Quaternion.Euler(Vector3.zero));
        FloatingNumbers damageText = clone.GetComponent <FloatingNumbers>();

        damageText.SetDamageDone(damage);
        damageText.SetHitStatus(status);
    }
Ejemplo n.º 2
0
    //public int PlayerNumber;

    void Start()
    {
        playerMovement = GetComponent <PlayerMovement>();
        if (MyUI != null)
        {
            MyUI.Actiaved(cleaningPlayer);
        }
        FloatNums = GameObject.Find("FloatNumberCanvas").GetComponent <FloatingNumbers>();
    }
Ejemplo n.º 3
0
    // Use this for initialization
    void Start()
    {
        CurrentHealth = MaxHealth;

        thePlayerStats = FindObjectOfType <PlayerStats> ();
        theQM          = FindObjectOfType <QuestManager> ();
        theWeapon      = FindObjectOfType <WeaponManager> ();
        FN             = FindObjectOfType <FloatingNumbers> ();
        WPU            = FindObjectOfType <WeaponPickUp> ();
    }
Ejemplo n.º 4
0
    public void AddPropertyDamage(int dollarz, Vector3 placeOfCrime)
    {
        combinedDamage += dollarz;
        text.text       = combinedDamage + ".00 $";
        GameObject floatingText = new GameObject();

        floatingText.transform.parent = canvas.transform;
        FloatingNumbers txtScrpt = floatingText.AddComponent <FloatingNumbers>();

        txtScrpt.setNumber(dollarz);
        Vector3 textPos = Camera.main.WorldToScreenPoint(placeOfCrime);

        floatingText.transform.position = textPos;
    }
Ejemplo n.º 5
0
    public void TakeDamage(int dmg, int knockbackForce, int knockbackDirection, bool blockable)
    {
        if (invincibilityDuration > 0 || currentHealth <= 0)
        {
            return;
        }

        if (anim.GetBool("Defend") && blockable)
        {
            int dmgDefended = dmg > defense ? defense : dmg;
            int staminaDiff = currentStamina - (dmgDefended * defenseStaminaMultiplier);

            if (staminaDiff >= 0)
            {
                currentStamina -= dmgDefended * defenseStaminaMultiplier;
                dmg            -= defense;
                dmg             = Mathf.Clamp(dmg, 0, int.MaxValue);
            }
            else
            {
                int newDefense = defense + (staminaDiff / defenseStaminaMultiplier);
                currentStamina -= newDefense * defenseStaminaMultiplier;
                dmg            -= newDefense;
                dmg             = Mathf.Clamp(dmg, 0, int.MaxValue);
            }

            staminaRegenDelay = 0;
        }

        if (dmg > 0)
        {
            soundPlayer.Play(damageSound);
        }
        else
        {
            soundPlayer.Play(blockSound);
        }

        FloatingNumbers spawnedNumbers = Instantiate(damageNumbersObj.gameObject, transform.position, Quaternion.identity).GetComponent <FloatingNumbers>();

        spawnedNumbers.color  = damageNumbersColor;
        spawnedNumbers.number = dmg;
        currentHealth        -= dmg;
        currentHealth         = Mathf.Clamp(currentHealth, 0, maxHealth);
        invincibilityDuration = invincibilityTime;

        movController.Knockback(knockbackForce, knockbackDirection);
    }
Ejemplo n.º 6
0
    public void TryAttack(StatsManager other)
    {
        bool canReceiveAttack = true;

        if (other.gameObject.tag == "Enemy")
        {
            var enemy = other.gameObject.GetComponent <EnemyController>();
            canReceiveAttack = enemy.CanReceiveAttack();
        }
        if (canReceiveAttack)
        {
            int       damage = 0;
            string    messageWhenTryingAttack = string.Empty;
            HitStatus status = this.DidHit(other);
            switch (status)
            {
            case HitStatus.EpicFail:
                damage = this.EpicFail();
                break;

            case HitStatus.FacePalm:
                // Missed
                UIManager.outputMessages.Add(string.Format("{0} missed {1}", this.GetName(), other.GetName()));
                break;

            case HitStatus.NotBad:
                messageWhenTryingAttack += string.Format("{0} hit {1}", this.GetName(), other.GetName());
                UIManager.outputMessages.Add(messageWhenTryingAttack);
                damage = this.RollDamage(other);
                if (("" + UIManager.outputMessages[UIManager.outputMessages.Count - 1]).Contains("experience"))
                {
                    UIManager.outputMessages[UIManager.outputMessages.Count - 2] += string.Format(" by {0}", damage);
                }
                else
                {
                    UIManager.outputMessages[UIManager.outputMessages.Count - 1] += string.Format(" by {0}", damage);
                }
                break;

            case HitStatus.YoureAwesome:
                messageWhenTryingAttack += string.Format("{0} critically hit {1}", this.GetName(), other.GetName());
                UIManager.outputMessages.Add(messageWhenTryingAttack);
                damage  = this.RollDamage(other);
                damage += this.RollDamage(other);
                if (("" + UIManager.outputMessages[UIManager.outputMessages.Count - 1]).Contains("experience"))
                {
                    UIManager.outputMessages[UIManager.outputMessages.Count - 2] += string.Format(" by {0}", damage);
                }
                else
                {
                    UIManager.outputMessages[UIManager.outputMessages.Count - 1] += string.Format(" by {0}", damage);
                }
                break;
            }
            this.ShowDamageBurst(status, damage);
            if (damage > 0)
            {
                other.flashAfterTakingDamage        = true;
                other.flashAfterTakingDamageCounter = other.flashAfterTakingDamageLength;
                if (other.gameObject.tag == "Player")
                {
                    this.sfxManager.playerHurt.Play();
                }

                this.sceneManager.SetObjectsThatTouch(this.gameObject, other.gameObject);

                // DB: Save who took damage
            }
        }
        else
        {
            UIManager.outputMessages.Add("INVULNERABLE!");
            var             clone      = (GameObject)Instantiate(this.damageNumbers, this.gameObject.transform.position, Quaternion.Euler(Vector3.zero));
            FloatingNumbers damageText = clone.GetComponent <FloatingNumbers>();
            damageText.SetHitStatus(HitStatus.Invulnerable);
        }
    }
 void Awake()
 {
     instance = this;
 }