Merge branch 'master' into familyport

This commit is contained in:
keronshb
2021-10-28 14:34:20 -04:00
31 changed files with 165 additions and 114 deletions
+3 -3
View File
@@ -7,9 +7,9 @@
GAS_N2=10,
)
normal_gases = list(
GAS_O2=10,
GAS_N2=10,
GAS_CO2=10,
GAS_O2=5,
GAS_N2=5,
GAS_CO2=5,
)
restricted_gases = list(
GAS_BZ=0.1,
@@ -295,6 +295,16 @@
/obj/item/stack/sheet/sinew = 1)
category = CAT_PRIMAL
/datum/crafting_recipe/bone_anvil
name = "Bone Anvil"
result = /obj/structure/anvil/obtainable/bone
time = 200
reqs = list(/obj/item/stack/sheet/bone = 6,
/obj/item/stack/sheet/sinew = 2,
/obj/item/stack/sheet/animalhide/goliath_hide = 2)
tools = list(/obj/item/weldingtool/experimental/ashwalker, /obj/item/wirecutters/ashwalker, /obj/item/crowbar/ashwalker)
category = CAT_PRIMAL
/datum/crafting_recipe/bone_glaive
name = "Necropolis Glaive"
result = /obj/item/kinetic_crusher/glaive/bone
+1
View File
@@ -362,6 +362,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
color = "#e3dac9"
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE)
sheet_type = /obj/item/stack/sheet/bone
strength_modifier = 1.05
value_per_unit = 0.05
armor_modifiers = list("melee" = 1.2, "bullet" = 0.75, "laser" = 0.75, "energy" = 1.2, "bomb" = 1, "bio" = 1, "rad" = 1.5, "fire" = 1.5, "acid" = 1.5)
beauty_modifier = -0.2
@@ -761,7 +761,8 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \
GLOBAL_LIST_INIT(bone_recipes, list(
new /datum/stack_recipe("Bone Dagger", /obj/item/kitchen/knife/combat/bone, 2, time = 20), \
new /datum/stack_recipe("Skull Helmet", /obj/item/clothing/head/helmet/skull, 4, time = 30), \
new /datum/stack_recipe("Bone Armor", /obj/item/clothing/suit/armor/bone, 6, time = 30)))
new /datum/stack_recipe("Bone Armor", /obj/item/clothing/suit/armor/bone, 6, time = 30),\
new /datum/stack_recipe("Processable Bone", /obj/item/ingot/bone, 2, time = 20)))
/obj/item/stack/sheet/bone
name = "bones"
+4 -5
View File
@@ -161,13 +161,14 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
var/client/initiator //semi-misnomer, it's the person who ahelped/was bwoinked
var/initiator_ckey
var/initiator_key_name
var/heard_by_no_admins = FALSE
var/list/_interactions //use AddInteraction() or, preferably, admin_ticket_log()
var/obj/effect/statclick/ahelp/statclick
var/static/ticket_counter = 0
/// did we send "answered" to irc yet
var/answered = FALSE
//call this on its own to create a ticket, don't manually assign current_ticket
//msg is the title of the ticket: usually the ahelp text
@@ -209,7 +210,6 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
log_admin_private("Ticket #[id]: [key_name(initiator)]: [name] - heard by [admin_number_present] non-AFK admins who have +BAN.")
if(admin_number_present <= 0)
to_chat(C, "<span class='notice'>No active admins are online, your adminhelp was sent to the admin irc.</span>")
heard_by_no_admins = TRUE
else
// citadel edit: send anyways
send2adminchat(initiator_ckey, "Ticket #[id]: [name] - Heard by [admin_number_present] admins present with +BAN.")
@@ -223,9 +223,8 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
return ..()
/datum/admin_help/proc/AddInteraction(formatted_message)
// if(heard_by_no_admins usr && usr.ckey != initiator_ckey)
// heard_by_no_admins = FALSE
if(usr && (usr.ckey != initiator_ckey))
if(usr && (usr.ckey != initiator_ckey) && !answered)
answered = TRUE
send2adminchat(initiator_ckey, "Ticket #[id]: Answered by [key_name(usr)]")
_interactions += "[TIME_STAMP("hh:mm:ss", FALSE)]: [formatted_message]"
@@ -403,6 +403,9 @@
if("incheck")
send_signal(device_id, list("checks" = text2num(params["val"])^2), usr)
. = TRUE
if("direction")
send_signal(device_id, list("direction" = text2num(params["val"])), usr)
. = TRUE
if("set_external_pressure", "set_internal_pressure")
var/target = params["value"]
@@ -12,6 +12,8 @@
var/obj/machinery/atmospherics/components/unary/heat_exchanger/partner = null
var/update_cycle
var/old_temperature = 0
var/other_old_temperature = 0
pipe_state = "heunary"
@@ -59,9 +61,6 @@
var/other_air_heat_capacity = partner_air_contents.heat_capacity()
var/combined_heat_capacity = other_air_heat_capacity + air_heat_capacity
var/old_temperature = air_contents.return_temperature()
var/other_old_temperature = partner_air_contents.return_temperature()
if(combined_heat_capacity > 0)
var/combined_energy = partner_air_contents.return_temperature()*other_air_heat_capacity + air_heat_capacity*air_contents.return_temperature()
@@ -71,6 +70,8 @@
if(abs(old_temperature-air_contents.return_temperature()) > 1)
update_parents()
old_temperature = air_contents.return_temperature()
if(abs(other_old_temperature-partner_air_contents.return_temperature()) > 1)
partner.update_parents()
other_old_temperature = partner_air_contents.return_temperature()
@@ -144,7 +144,7 @@
"device" = "VP",
"timestamp" = world.time,
"power" = on,
"direction" = pump_direction ? "release" : "siphon",
"direction" = pump_direction,
"checks" = pressure_checks,
"internal" = internal_pressure_bound,
"external" = external_pressure_bound,
-1
View File
@@ -3,7 +3,6 @@
typepath = /datum/round_event/ghost_role/operative
weight = 0 //Admin only
max_occurrences = 1
dynamic_should_hijack = TRUE
/datum/round_event/ghost_role/operative
minimum_required = 1
+1 -1
View File
@@ -24,7 +24,7 @@
var/pirate_type = PIRATES_ROGUES //pick(PIRATES_ROGUES, PIRATES_SILVERSCALES, PIRATES_DUTCHMAN)
var/datum/comm_message/threat_msg = new
var/payoff = 0
var/payoff_min = 1000
var/payoff_min = 10000 //documented this time
var/ship_template
var/ship_name = "Space Privateers Association"
var/initial_send_time = world.time
+1 -1
View File
@@ -5,7 +5,7 @@
department_flag = CIVILIAN
faction = "Station"
total_positions = 0
spawn_positions = 4
spawn_positions = 0
supervisors = "the security team"
outfit = /datum/outfit/job/prisoner
@@ -235,6 +235,9 @@
icon_state = "crusher-bone"
item_state = "crusher0-bone"
/obj/item/kinetic_crusher/glaive/bone/update_icon_state()
item_state = "crusher[wielded]-bone"
//destablizing force
/obj/item/projectile/destabilizer
name = "destabilizing force"
+10 -2
View File
@@ -358,8 +358,16 @@
var/obj/singularity/energy_ball/tesla = source
if(istype(tesla))
if(istype(closest_atom,/obj/machinery/power/grounding_rod) && tesla.energy>13 && !tesla.contained)
qdel(closest_atom) // each rod deletes two miniballs,
tesla.energy = round(tesla.energy/1.5625) // if there are no miniballs the rod stays and continues to pull the ball in
// getting the grounding rod's capacitor rating for quick maths
var/obj/machinery/power/grounding_rod/rod = closest_atom
// assuming the rod is fully constructed the second part will always be a capacitor
var/obj/item/stock_parts/capacitor/capacitor = rod.component_parts[2]
tesla.energy = round(tesla.energy/(1 + 0.28125 * capacitor.rating))
qdel(closest_atom) // each rod removes tesla energy depending on the power of the capacitor,
// if there are no miniballs the rod stays and continues to pull the ball in
if(prob(20))//I know I know
tesla_zap(closest_atom, next_range, power * 0.5, zap_flags, shocked_targets)
tesla_zap(closest_atom, next_range, power * 0.5, zap_flags, shocked_targets)
+7
View File
@@ -286,6 +286,13 @@
anvilquality = 0
itemqualitymax = 6
/obj/structure/anvil/obtainable/bone
name = "bone anvil"
desc = "An anvil. It's made of goliath bones and hide and held together by watcher sinews."
icon_state = "bonevil"
anvilquality = 0
itemqualitymax = 6
/obj/structure/anvil/obtainable/ratvar
name = "brass anvil"
desc = "A big block of what appears to be brass. Useable as an anvil, if whatever's holding the brass together lets you."
+3
View File
@@ -49,6 +49,9 @@
/obj/item/ingot/iron
custom_materials = list(/datum/material/iron=12000)
/obj/item/ingot/bone
custom_materials = list(/datum/material/bone=4000)
/obj/item/ingot/diamond
custom_materials = list(/datum/material/diamond=12000)
+2 -2
View File
@@ -530,8 +530,8 @@
gas_max[GAS_N2] = PP(breath, GAS_N2) + 5
var/datum/breathing_class/class = GLOB.gas_data.breathing_classes[breathing_class]
var/o2_pp = class.get_effective_pp(breath)
safe_breath_min = 0.3 * o2_pp
safe_breath_max = 1.3 * o2_pp
safe_breath_min = min(3, 0.3 * o2_pp)
safe_breath_max = max(18, 1.3 * o2_pp + 1)
..()
#undef SAFE_THRESHOLD_RATIO
+6 -1
View File
@@ -90,7 +90,7 @@
playsound(src, pick('sound/vehicles/clowncar_ram1.ogg', 'sound/vehicles/clowncar_ram2.ogg', 'sound/vehicles/clowncar_ram3.ogg'), 75)
log_combat(src, hittarget_living, "sucked up")
return
if(!istype(bumped, /turf/closed))
if(!istype(bumped, /turf/closed) && !istype(bumped, /obj/machinery/door/airlock/external))
return
visible_message(span_warning("[src] rams into [bumped] and crashes!"))
playsound(src, pick('sound/vehicles/clowncar_crash1.ogg', 'sound/vehicles/clowncar_crash2.ogg'), 75)
@@ -237,6 +237,11 @@
for(var/mob/busdriver as anything in return_drivers())
busdriver.client.give_award(/datum/award/achievement/misc/the_best_driver, busdriver)
/obj/vehicle/sealed/car/clowncar/driver_move(mob/user, direction) //Prevent it from moving onto space
if(isspaceturf(get_step(src, direction)))
return FALSE
return ..()
/obj/vehicle/sealed/car/clowncar/twitch_plays
key_type = null
explode_on_death = FALSE