public MechDamage damage(MechDamage dmg) { MechDamage reductedDmg = reduct(dmg); destruct(reductedDmg); MechDamage finalDmg = changeDmg(reductedDmg); return(finalDmg); }
void destruct(MechDamage dmg) { float structureDamage = dmg.basicDamage ["Blunt"] * destruction ["Blunt"] + dmg.basicDamage ["Cut"] * destruction ["Cut"] + dmg.basicDamage ["Pierce"] * destruction ["Pierce"] + dmg.basicDamage ["Abrasive"] * destruction ["Abrasive"]; structure = structure - structureDamage; }
//var other; MechDamage reduct(MechDamage dmg) { dmg.basicDamage ["Blunt"] = dmg.basicDamage ["Blunt"] * (reduction ["Blunt"] * structure / 100.0f); dmg.basicDamage ["Cut"] = dmg.basicDamage ["Cut"] * (reduction ["Cut"] * structure / 100.0f); dmg.basicDamage ["Pierce"] = dmg.basicDamage ["Pierce"] * (reduction ["Pierce"] * structure / 100.0f); dmg.basicDamage ["Abrasive"] = dmg.basicDamage ["Abrasive"] * (reduction ["Abrasive"] * structure / 100.0f); return(dmg); }
public void damage(MechDamage dmg) { Debug.Log("MechState1: " + dmg.basicDamage["Blunt"].ToString() + " , " + dmg.basicDamage["Cut"].ToString() + " , " + dmg.basicDamage["Pierce"].ToString() + " , " + dmg.basicDamage["Abrasive"].ToString()); foreach (MechArmor arm in armor) { dmg = arm.damage(dmg); Debug.Log("det: " + dmg.basicDamage["Blunt"].ToString() + " , " + dmg.basicDamage["Cut"].ToString() + " , " + dmg.basicDamage["Pierce"].ToString() + " , " + dmg.basicDamage["Abrasive"].ToString()); } Debug.Log("MechState2: " + dmg.basicDamage["Blunt"].ToString() + " , " + dmg.basicDamage["Cut"].ToString() + " , " + dmg.basicDamage["Pierce"].ToString() + " , " + dmg.basicDamage["Abrasive"].ToString()); core.damage(dmg); Debug.Log("MechState3: " + dmg.basicDamage["Blunt"].ToString() + " , " + dmg.basicDamage["Cut"].ToString() + " , " + dmg.basicDamage["Pierce"].ToString() + " , " + dmg.basicDamage["Abrasive"].ToString()); /* * if (core.ifStun()) { * //Stun mech * } * * if (core.ifDead() ) { * //Kill mech * }*/ /* Update displayed mech status */ UI_interface.Update_Mech_state_display(core.Get_HP_Level(), core.Get_Energy_Level(), armor); }
MechDamage changeDmg(MechDamage dmg) { dmg.basicDamage ["Blunt"] = dmg.basicDamage ["Blunt"] * (((change ["Blunt_to_Blunt"] * structure) + (100.0f - structure)) / 100.0f) + dmg.basicDamage ["Cut"] * (((change ["Cut_to_Blunt"] * structure)) / 100.0f) + dmg.basicDamage ["Pierce"] * (((change ["Pierce_to_Blunt"] * structure)) / 100.0f) + dmg.basicDamage ["Abrasive"] * (((change ["Abrasive_to_Blunt"] * structure)) / 100.0f); dmg.basicDamage ["Cut"] = dmg.basicDamage ["Blunt"] * (((change ["Blunt_to_Cut"] * structure)) / 100.0f) + dmg.basicDamage ["Cut"] * (((change ["Cut_to_Cut"] * structure) + (100.0f - structure)) / 100.0f) + dmg.basicDamage ["Pierce"] * (((change ["Pierce_to_Cut"] * structure)) / 100.0f) + dmg.basicDamage ["Abrasive"] * (((change ["Abrasive_to_Cut"] * structure)) / 100.0f); dmg.basicDamage ["Pierce"] = dmg.basicDamage ["Blunt"] * (((change ["Blunt_to_Pierce"] * structure)) / 100.0f) + dmg.basicDamage ["Cut"] * (((change ["Cut_to_Pierce"] * structure)) / 100.0f) + dmg.basicDamage ["Pierce"] * (((change ["Pierce_to_Pierce"] * structure) + (100.0f - structure)) / 100.0f) + dmg.basicDamage ["Abrasive"] * (((change ["Abrasive_to_Pierce"] * structure)) / 100.0f); dmg.basicDamage ["Abrasive"] = dmg.basicDamage ["Blunt"] * (((change ["Blunt_to_Abrasive"] * structure)) / 100.0f) + dmg.basicDamage ["Cut"] * (((change ["Cut_to_Abrasive"] * structure)) / 100.0f) + dmg.basicDamage ["Pierce"] * (((change ["Pierce_to_Abrasive"] * structure)) / 100.0f) + dmg.basicDamage ["Abrasive"] * (((change ["Abrasive_to_Abrasive"] * structure) + (100.0f - structure)) / 100.0f); return(dmg); }
public void damage(MechDamage dmg) { energy -= (dmg.basicDamage ["Blunt"] * 0.25f + dmg.basicDamage ["Cut"] * 0.5f + dmg.basicDamage ["Pierce"] * 0.75f + dmg.basicDamage ["Abrasive"] * 0.5f); structure -= (dmg.basicDamage ["Blunt"] * 0.75f + dmg.basicDamage ["Cut"] * 0.5f + dmg.basicDamage ["Pierce"] * 0.25f + dmg.basicDamage ["Abrasive"] * 0.5f); }
void ApplyDamage(MechState Target) { MechDamage temp_BaseDamage = new MechDamage(TypeOfDamage, DamageLevel); Target.damage(temp_BaseDamage); }