public void DrawInspector() { GUILayout.BeginVertical("box"); string resTooltip = "Resistance: All incoming damage of this type is reduced by the listed value (EG: 0.5 will reduce damage by 50%, -0.5 will increase it by 50%)."; string mitTooltip = "Mitigation: Damage taken subtracts this amount after Resistance is applied."; foreach (var v in Enum.GetValues(typeof(Tapestry_DamageType))) { Tapestry_DamageType val = (Tapestry_DamageType)v; GUILayout.BeginHorizontal(); GUILayout.Label(val.ToString(), GUILayout.Width(70)); GUILayout.FlexibleSpace(); GUILayout.Label(new GUIContent("RES", resTooltip), GUILayout.Width(30)); SetRes(val, EditorGUILayout.FloatField(GetRes(val), GUILayout.Width(40))); GUILayout.FlexibleSpace(); GUILayout.Label(new GUIContent("MIT", mitTooltip), GUILayout.Width(30)); SetMit(val, EditorGUILayout.FloatField(GetMit(val), GUILayout.Width(40))); GUILayout.EndHorizontal(); } GUILayout.EndVertical(); }
public Tapestry_EffectBuilder_Payload_Damage() { amountMin = 10; amountMax = 40; pulse = 0.5f; type = Tapestry_DamageType.Crushing; }
public override void DealDamage(Tapestry_DamageType type, float amount) { if (isDestructable) { base.DealDamage(type, amount); SetObjectState(GetHealthState()); } }
public virtual void DealDamage(Tapestry_DamageType type, float amount) { amount *= (1 + damageProfile.GetRes(type)); amount -= damageProfile.GetMit(type); if (amount >= threshold) { health -= amount; health = Mathf.Clamp(health, 0, 1000); } }
public override void DrawInspector() { GUILayout.BeginVertical("box"); GUILayout.BeginHorizontal(); GUILayout.Space(40); GUILayout.Label("Damage Spread"); amountMin = EditorGUILayout.DelayedFloatField(amountMin, GUILayout.Width(36)); if (amountMin < 0) { amountMin = 0; } GUILayout.Label("-"); amountMax = EditorGUILayout.DelayedFloatField(amountMax, GUILayout.Width(36)); if (amountMax < amountMin) { amountMax = amountMin; } GUILayout.FlexibleSpace(); GUILayout.Label("Type"); type = (Tapestry_DamageType)EditorGUILayout.EnumPopup(type, GUILayout.Width(64)); GUILayout.EndHorizontal(); if (exposeTimeControls) { GUILayout.BeginHorizontal(); GUILayout.Space(40); GUILayout.Label("Pulse Every "); pulse = EditorGUILayout.DelayedFloatField(pulse, GUILayout.Width(42)); GUILayout.Label("Seconds"); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); } GUILayout.EndVertical(); }
public float GetMit(Tapestry_DamageType type) { return(dict[type].Mitigation); }
public float GetRes(Tapestry_DamageType type) { return(dict[type].Resistance); }
public void SetMit(Tapestry_DamageType type, float mit) { dict[type] = new Tapestry_DamageTypeIndex(dict[type].Resistance, mit); }
public void SetRes(Tapestry_DamageType type, float res) { dict[type] = new Tapestry_DamageTypeIndex(res, dict[type].Mitigation); }
public void SetProfile(Tapestry_DamageType type, float res, float mit) { dict[type] = new Tapestry_DamageTypeIndex(res, mit); }