/* deals damage to this object and returns damage that is passed to the "lower level" */ public float Damage(float dam, TDamageType damType) { if (!isBroken()) { //absorbDamage is completely gone from the incoming damage float remainingDamage = dam - absorbDamage[(int)damType]; if (remainingDamage > 0) { float blockedDamage = remainingDamage * damageResist[(int)damType]; Durability -= blockedDamage; if (isBroken()) { Break(); } remainingDamage -= blockedDamage; if (remainingDamage > 0) { return(remainingDamage); } else { return(-1); } } else { return(-1); } } else { return(dam); } }
/* Pass damage to this bodypart * Returns amount of damage not absorbed by skin, muscles and bones * Body should pass it down to internal organs if applicable */ public float Damage(float dam, TDamageType damType) { float remainingDamage = dam; remainingDamage = skin.Damage(remainingDamage, damType); remainingDamage = muscle.Damage(remainingDamage, damType); remainingDamage = bone.Damage(remainingDamage, damType); return(remainingDamage); }
private void InitTdamage() { string str = skilldata.Tdam; JsonData[] json = JsonMapper.ToObject<JsonData[]>(str); tdamType = (TDamageType)((int)json[0]); float baseDam = (float)json[1]; tdamBaseValue = baseDam + lv * skilldata.Tgdam; tdamPerValue = 0f; if (json.Length > 2) tdamPerValue = (float)json[2]; }