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;
 }
示例#3
0
 public override void DealDamage(Tapestry_DamageType type, float amount)
 {
     if (isDestructable)
     {
         base.DealDamage(type, amount);
         SetObjectState(GetHealthState());
     }
 }
示例#4
0
 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);
 }