Add option to disable radiation protection

This commit is contained in:
number Zero 2016-04-10 21:55:37 +03:00 committed by ShadowNinja
parent 73afc40d9c
commit cbe97434dc
2 changed files with 12 additions and 4 deletions

View File

@ -9,6 +9,7 @@ local defaults = {
enable_wind_mill = "false", enable_wind_mill = "false",
enable_frames = "false", enable_frames = "false",
enable_corium_griefing = "true", enable_corium_griefing = "true",
enable_radiation_protection = "true",
enable_entity_radiation_damage = "true", enable_entity_radiation_damage = "true",
enable_longterm_radiation_damage = "true", enable_longterm_radiation_damage = "true",
} }

View File

@ -242,6 +242,7 @@ local cache_scaled_shielding = {}
local rad_dmg_cutoff = 0.2 local rad_dmg_cutoff = 0.2
local radiated_players = {} local radiated_players = {}
local armor_enabled = technic.config:get_bool("enable_radiation_protection")
local entity_damage = technic.config:get_bool("enable_entity_radiation_damage") local entity_damage = technic.config:get_bool("enable_entity_radiation_damage")
local longterm_damage = technic.config:get_bool("enable_longterm_radiation_damage") local longterm_damage = technic.config:get_bool("enable_longterm_radiation_damage")
@ -303,15 +304,21 @@ end
local function dmg_object(pos, object, strength) local function dmg_object(pos, object, strength)
local obj_pos = vector.add(object:getpos(), calculate_object_center(object)) local obj_pos = vector.add(object:getpos(), calculate_object_center(object))
local mul = calculate_damage_multiplier(object) local mul
if armor_enabled or entity_damage then
-- we need to check may the object be damaged even if armor is disabled
mul = calculate_damage_multiplier(object)
if mul == 0 then if mul == 0 then
return return
end end
end
local dmg = calculate_base_damage(pos, obj_pos, strength) local dmg = calculate_base_damage(pos, obj_pos, strength)
if not dmg then if not dmg then
return return
end end
if armor_enabled then
dmg = dmg * mul dmg = dmg * mul
end
apply_fractional_damage(object, dmg) apply_fractional_damage(object, dmg)
if longterm_damage and object:is_player() then if longterm_damage and object:is_player() then
local pn = object:get_player_name() local pn = object:get_player_name()