コード例 #1
0
        private void OnBloodKill()
        {
            var chance = messageBaseChance * FindObjectOfType <BloodTracker>().GetMessageChanceAdjustment();

            if (Random.value > chance)
            {
                return;
            }

            var message = new SwordMessage {
                Message  = messages[Random.Range(0, messages.Count)],
                Duration = duration
            };

            GameObject.FindWithTag("SwordSpeech").SendMessage("OnSwordMessage", message);
        }
コード例 #2
0
    public void OnDeath()
    {
        if (animator != null)
        {
            animator.SetTrigger("Die");
        }

        if (src != null)
        {
            src.PlayOneShot(deathScream);
        }

        if (dead != null)
        {
            StartCoroutine(spawnDeadPrefab());
        }

        if (!gameObject.CompareTag("Player"))
        {
            var parent = transform.parent;
            //TODO play anim death
            Destroy(parent != null ? parent.gameObject : gameObject, 0.25f);
        }
        else
        {
            var message = new SwordMessage {
                Message  = "You have failed me.",
                Duration = 1f
            };
            GameObject.FindWithTag("SwordSpeech").SendMessage("OnSwordMessage", message);
            playerMovement.canMove         = false;
            playerPistol.canFire           = false;
            playerMelee.canAttack          = false;
            playerAbilities.canUseAbilites = false;
            FindObjectOfType <InGameCanvas>().PlayerHasDied();
        }
    }