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); }
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); } } } }
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); } }
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); } } } }
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); } } }