Example #1
0
        private void SendMessage(DamageTakenArgs args)
        {
            using (var writer = DarkRiftWriter.Create())
            {
                writer.Write(_info.Id);
                writer.Write(args.damage);
                writer.Write(_health.Health);

                using (var msg = Message.Create(Tags.UpdateHealth, writer))
                {
                    _client.SendMessage(msg, SendMode.Reliable);
                }
            }
        }
Example #2
0
    public void OnTakeDamageEvent(object source, DamageTakenArgs damageArgs)
    {
        //Check to see if the health compoent has an active DamageNumber
        GameObject healthObj = damageArgs.DamageTaker.gameObject;

        //Cancel if the Health Component's parent has a filtered tag
        foreach (string filter in FilteredTags)
        {
            if (healthObj.tag == filter)
            {
                return;
            }
        }

        Health healthComponent         = healthObj.GetComponent <Health>();
        int    PlayerWhoDealtDamageNum = damageArgs.PlayerNum;

        AIWhichLastTookDamage = healthComponent.gameObject;

        //Only do this logic for the local player
        if (PlayerWhoDealtDamageNum != -1)
        {
            PlayerWhoLastDealtDamage = PlayerWhoDealtDamageNum;
            //If the player who dealt the damage is local do the logic
            if (PlayerWhoDealtDamageNum == m_LocalPlayerRef.PlayerNumber)
            {
                //If the Health Component already has a Damage number add to it
                if (healthComponent.DamageNumber != null)
                {
                    //Add the damage to the existing Damage Number
                    healthComponent.DamageNumber.AddDamage(damageArgs.Damage);
                    return;
                }
                //If the Damage AI does not already have an active Damage number set it
                else
                {
                    //Get a DisplayNumber from the pool
                    GameObject obj = ObjectPoolManager.Instance.GetObjectFromOfflinePool(m_DamageNumber);
                    obj.transform.SetParent(transform);
                    obj.SetActive(true);
                    //Set the DisplayNumberPrefab's pos
                    obj.transform.position = healthObj.transform.position;
                    //Set the Damage
                    DamageNumber damageNum = obj.GetComponent <DamageNumber>();
                    damageNum.AddDamage(damageArgs.Damage, healthComponent, m_LocalPlayerRef, damageArgs.DamageNumberColor);
                }
            }
        }
    }
Example #3
0
        public void SendOnDamageEvent(int Damage, int playernum, int exteriorMultiplier)
        {
            Color col = Color.white;

            if (exteriorMultiplier < 1)
            {
                col = Color.black;
            }
            else if (exteriorMultiplier > 1)
            {
                col = Color.red;
            }

            DamageTakenArgs args = new DamageTakenArgs(Damage, this.Health, playernum, col);

            OnDamageTaken(this, args);
        }
 private void OnDamageTaken(DamageTakenArgs obj)
 {
     _floatingTextFactory.Create(new FloatingTextSpawnParameters(_registry.Player.Position, Mathf.RoundToInt(obj.damage), true));
 }
Example #5
0
 private void HandleDamageTaken(DamageTakenArgs args)
 {
     SetText();
 }