Exemplo n.º 1
0
float resistances::get_effective_resist(const damage_unit &du)
{
    float effective_resist = 0.f;
    switch (du.type) {
    case DT_BASH:
        effective_resist = std::max(type_resist(DT_BASH) - du.res_pen, 0) * du.res_mult;
        break;
    case DT_CUT:
        effective_resist = std::max(type_resist(DT_CUT) - du.res_pen, 0) * du.res_mult;
        break;
    case DT_STAB:
        effective_resist = std::max(type_resist(DT_STAB) - du.res_pen, 0) * du.res_mult;
        break;
    default: // TODO: DT_ACID/HEAT vs env protection, DT_COLD vs warmth
        effective_resist = 0;
    }
    return effective_resist;
}
Exemplo n.º 2
0
float resistances::get_effective_resist( const damage_unit &du ) const
{
    float effective_resist;
    switch( du.type ) {
        case DT_BASH:
            effective_resist = std::max( type_resist( DT_BASH ) - du.res_pen, 0 ) * du.res_mult;
            break;
        case DT_CUT:
            effective_resist = std::max( type_resist( DT_CUT ) - du.res_pen, 0 ) * du.res_mult;
            break;
        case DT_STAB:
            effective_resist = std::max( type_resist( DT_STAB ) - du.res_pen, 0 ) * du.res_mult;
            break;
        case DT_ACID:
            effective_resist = std::max( type_resist( DT_ACID ) - du.res_pen, 0 ) * du.res_mult;
            break;
        case DT_HEAT:
            effective_resist = std::max( type_resist( DT_HEAT ) - du.res_pen, 0 ) * du.res_mult;
            break;
        default: // TODO: Other types
            effective_resist = 0;
    }
    return effective_resist;
}
Exemplo n.º 3
0
float resistances::get_effective_resist( const damage_unit &du ) const
{
    return std::max( type_resist( du.type ) - du.res_pen, 0.0f ) * du.res_mult;
}