Example #1
0
 protected virtual void DoMetabolismDamage(BaseCombatEntity ownerEntity, float delta)
 {
     if ((double)this.calories.value <= 20.0)
     {
         using (TimeWarning.New("Calories Hurt", 0.1f))
             ownerEntity.Hurt((float)((double)Mathf.InverseLerp(20f, 0.0f, this.calories.value) * (double)delta * 0.0833333358168602), DamageType.Hunger, (BaseEntity)null, true);
     }
     if ((double)this.hydration.value > 20.0)
     {
         return;
     }
     using (TimeWarning.New("Hyration Hurt", 0.1f))
         ownerEntity.Hurt((float)((double)Mathf.InverseLerp(20f, 0.0f, this.hydration.value) * (double)delta * 0.133333340287209), DamageType.Thirst, (BaseEntity)null, true);
 }
Example #2
0
 private void OnTick()
 {
     if (attackEffect.isValid)
     {
         Effect.server.Run(attackEffect.resourcePath, base.transform.position, Vector3.up);
     }
     if (entityContents == null)
     {
         return;
     }
     BaseEntity[] array = entityContents.ToArray();
     foreach (BaseEntity baseEntity in array)
     {
         if (BaseEntityEx.IsValid(baseEntity))
         {
             BaseCombatEntity baseCombatEntity = baseEntity as BaseCombatEntity;
             if (!(baseCombatEntity == null))
             {
                 HitInfo hitInfo = new HitInfo();
                 hitInfo.damageTypes.Add(damageType);
                 hitInfo.DoHitEffects = true;
                 hitInfo.DidHit       = true;
                 hitInfo.PointStart   = base.transform.position;
                 hitInfo.PointEnd     = baseCombatEntity.transform.position;
                 baseCombatEntity.Hurt(hitInfo);
             }
         }
     }
 }
 private void OnTick()
 {
     if (this.attackEffect.isValid)
     {
         Effect.server.Run(this.attackEffect.resourcePath, base.transform.position, Vector3.up, null, false);
     }
     if (this.entityContents == null)
     {
         return;
     }
     BaseEntity[] array = this.entityContents.ToArray <BaseEntity>();
     for (int i = 0; i < (int)array.Length; i++)
     {
         BaseEntity baseEntity = array[i];
         if (baseEntity.IsValid())
         {
             BaseCombatEntity baseCombatEntity = baseEntity as BaseCombatEntity;
             if (baseCombatEntity != null)
             {
                 HitInfo hitInfo = new HitInfo();
                 hitInfo.damageTypes.Add(this.damageType);
                 hitInfo.DoHitEffects = true;
                 hitInfo.DidHit       = true;
                 hitInfo.PointStart   = base.transform.position;
                 hitInfo.PointEnd     = baseCombatEntity.transform.position;
                 baseCombatEntity.Hurt(hitInfo);
             }
         }
     }
 }
Example #4
0
 private void OnTick()
 {
     if (this.attackEffect.isValid)
     {
         Effect.server.Run(this.attackEffect.resourcePath, ((Component)this).get_transform().get_position(), Vector3.get_up(), (Connection)null, false);
     }
     if (this.entityContents == null)
     {
         return;
     }
     foreach (BaseEntity ent in this.entityContents.ToArray <BaseEntity>())
     {
         if (ent.IsValid())
         {
             BaseCombatEntity baseCombatEntity = ent as BaseCombatEntity;
             if (!Object.op_Equality((Object)baseCombatEntity, (Object)null))
             {
                 HitInfo info = new HitInfo();
                 info.damageTypes.Add(this.damageType);
                 info.DoHitEffects = true;
                 info.DidHit       = true;
                 info.PointStart   = ((Component)this).get_transform().get_position();
                 info.PointEnd     = ((Component)baseCombatEntity).get_transform().get_position();
                 baseCombatEntity.Hurt(info);
             }
         }
     }
 }
 protected virtual void DoMetabolismDamage(BaseCombatEntity ownerEntity, float delta)
 {
     if (this.calories.@value <= 20f)
     {
         using (TimeWarning timeWarning = TimeWarning.New("Calories Hurt", 0.1f))
         {
             ownerEntity.Hurt(Mathf.InverseLerp(20f, 0f, this.calories.@value) * delta * 0.0833333358f, DamageType.Hunger, null, true);
         }
     }
     if (this.hydration.@value <= 20f)
     {
         using (timeWarning = TimeWarning.New("Hyration Hurt", 0.1f))
         {
             ownerEntity.Hurt(Mathf.InverseLerp(20f, 0f, this.hydration.@value) * delta * 0.13333334f, DamageType.Thirst, null, true);
         }
     }
 }
        private void Explode(BaseCombatEntity barrel, ConfigData.OBarrel config)
        {
            var position = barrel.transform.position;
            var radius   = config.eRadius;
            var damage   = config.eDamage;
            var effects  = config.effects;

            if (barrel.health > 0)
            {
                try
                {
                    barrel.Hurt(100f);
                }
                catch
                {
                    // ignored
                }
            }

            foreach (var effect in effects)
            {
                var x = Core.Random.Range(-radius, radius);
                var y = Core.Random.Range(0, radius);
                var z = Core.Random.Range(-radius, radius);
                Effect.server.Run(effect, position + new Vector3(x, y, z));
            }

            Effect.server.Run("assets/content/weapons/_gestures/effects/eat_1hand_celery.prefab", position);

            var entities = new List <BaseCombatEntity>();

            Vis.Entities(position, radius, entities);

            foreach (var entity in entities.ToList())
            {
                try
                {
                    if (entity.health > 0)
                    {
                        entity.Hurt(damage, DamageType.Explosion);
                    }
                }
                catch
                {
                    // ignored
                }
            }
        }
 internal void DoDamage(
     BaseEntity ent,
     TriggerHurtEx.HurtType type,
     List <DamageTypeEntry> damage,
     GameObjectRef effect,
     float multiply = 1f)
 {
     if (!this.damageEnabled)
     {
         return;
     }
     using (TimeWarning.New("TriggerHurtEx.DoDamage", 0.1f))
     {
         if (damage != null && damage.Count > 0)
         {
             BaseCombatEntity baseCombatEntity = ent as BaseCombatEntity;
             if (Object.op_Implicit((Object)baseCombatEntity))
             {
                 HitInfo info = new HitInfo();
                 info.damageTypes.Add(damage);
                 info.damageTypes.ScaleAll(multiply);
                 info.DoHitEffects = true;
                 info.DidHit       = true;
                 info.Initiator    = ((Component)this).get_gameObject().ToBaseEntity();
                 info.PointStart   = ((Component)this).get_transform().get_position();
                 info.PointEnd     = ((Component)baseCombatEntity).get_transform().get_position();
                 if (type == TriggerHurtEx.HurtType.Simple)
                 {
                     baseCombatEntity.Hurt(info);
                 }
                 else
                 {
                     baseCombatEntity.OnAttacked(info);
                 }
             }
         }
         if (!effect.isValid)
         {
             return;
         }
         Effect.server.Run(effect.resourcePath, ent, StringPool.closest, ((Component)this).get_transform().get_position(), Vector3.get_up(), (Connection)null, false);
     }
 }
Example #8
0
    private void OnTick()
    {
        BaseEntity baseEntity = ((Component)this).get_gameObject().ToBaseEntity();

        if (this.entityContents == null)
        {
            return;
        }
        foreach (BaseEntity ent in this.entityContents.ToArray <BaseEntity>())
        {
            if (ent.IsValid())
            {
                BaseCombatEntity baseCombatEntity = ent as BaseCombatEntity;
                if (!Object.op_Equality((Object)baseCombatEntity, (Object)null))
                {
                    baseCombatEntity.Hurt(this.DamagePerSecond * (1f / this.DamageTickRate), this.damageType, baseEntity, true);
                }
            }
        }
    }
    private void OnTick()
    {
        BaseEntity baseEntity = base.gameObject.ToBaseEntity();

        if (this.entityContents == null)
        {
            return;
        }
        BaseEntity[] array = this.entityContents.ToArray <BaseEntity>();
        for (int i = 0; i < (int)array.Length; i++)
        {
            BaseEntity baseEntity1 = array[i];
            if (baseEntity1.IsValid())
            {
                BaseCombatEntity baseCombatEntity = baseEntity1 as BaseCombatEntity;
                if (baseCombatEntity != null)
                {
                    baseCombatEntity.Hurt(this.DamagePerSecond * (1f / this.DamageTickRate), this.damageType, baseEntity, true);
                }
            }
        }
    }
Example #10
0
 internal void DoDamage(BaseEntity ent, TriggerHurtEx.HurtType type, List <DamageTypeEntry> damage, GameObjectRef effect, float multiply = 1f)
 {
     if (!this.damageEnabled)
     {
         return;
     }
     using (TimeWarning timeWarning = TimeWarning.New("TriggerHurtEx.DoDamage", 0.1f))
     {
         if (damage != null && damage.Count > 0)
         {
             BaseCombatEntity baseCombatEntity = ent as BaseCombatEntity;
             if (baseCombatEntity)
             {
                 HitInfo hitInfo = new HitInfo();
                 hitInfo.damageTypes.Add(damage);
                 hitInfo.damageTypes.ScaleAll(multiply);
                 hitInfo.DoHitEffects = true;
                 hitInfo.DidHit       = true;
                 hitInfo.Initiator    = base.gameObject.ToBaseEntity();
                 hitInfo.PointStart   = base.transform.position;
                 hitInfo.PointEnd     = baseCombatEntity.transform.position;
                 if (type != TriggerHurtEx.HurtType.Simple)
                 {
                     baseCombatEntity.OnAttacked(hitInfo);
                 }
                 else
                 {
                     baseCombatEntity.Hurt(hitInfo);
                 }
             }
         }
         if (effect.isValid)
         {
             Effect.server.Run(effect.resourcePath, ent, StringPool.closest, base.transform.position, Vector3.up, null, false);
         }
     }
 }