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); }
//public int PlayerNumber; void Start() { playerMovement = GetComponent <PlayerMovement>(); if (MyUI != null) { MyUI.Actiaved(cleaningPlayer); } FloatNums = GameObject.Find("FloatNumberCanvas").GetComponent <FloatingNumbers>(); }
// Use this for initialization void Start() { CurrentHealth = MaxHealth; thePlayerStats = FindObjectOfType <PlayerStats> (); theQM = FindObjectOfType <QuestManager> (); theWeapon = FindObjectOfType <WeaponManager> (); FN = FindObjectOfType <FloatingNumbers> (); WPU = FindObjectOfType <WeaponPickUp> (); }
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; }
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); }
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; }