Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into tgui-alerts-and-what-not

This commit is contained in:
SandPoot
2021-10-27 13:54:49 -03:00
51 changed files with 331 additions and 563 deletions

View File

@@ -273,24 +273,6 @@
"frenching" = 'icons/UI_Icons/Achievements/Misc/frenchingthebubble.png'
)
/datum/asset/spritesheet/simple/minesweeper
name = "minesweeper"
assets = list(
"1" = 'icons/UI_Icons/minesweeper_tiles/one.png',
"2" = 'icons/UI_Icons/minesweeper_tiles/two.png',
"3" = 'icons/UI_Icons/minesweeper_tiles/three.png',
"4" = 'icons/UI_Icons/minesweeper_tiles/four.png',
"5" = 'icons/UI_Icons/minesweeper_tiles/five.png',
"6" = 'icons/UI_Icons/minesweeper_tiles/six.png',
"7" = 'icons/UI_Icons/minesweeper_tiles/seven.png',
"8" = 'icons/UI_Icons/minesweeper_tiles/eight.png',
"empty" = 'icons/UI_Icons/minesweeper_tiles/empty.png',
"flag" = 'icons/UI_Icons/minesweeper_tiles/flag.png',
"hidden" = 'icons/UI_Icons/minesweeper_tiles/hidden.png',
"mine" = 'icons/UI_Icons/minesweeper_tiles/mine.png',
"minehit" = 'icons/UI_Icons/minesweeper_tiles/minehit.png'
)
/datum/asset/spritesheet/simple/pills
name = "pills"
assets = list(

View File

@@ -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"]

View File

@@ -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()

View File

@@ -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,

View File

@@ -171,11 +171,11 @@
desc = "Start up your own grand casino with this crate filled with slot machine and arcade boards!"
cost = 3000
contains = list(/obj/item/circuitboard/computer/arcade/battle,
/obj/item/circuitboard/computer/arcade/battle,
/obj/item/circuitboard/computer/arcade/battle,
/obj/item/circuitboard/computer/arcade/orion_trail,
/obj/item/circuitboard/computer/arcade/orion_trail,
/obj/item/circuitboard/computer/arcade/minesweeper,
/obj/item/circuitboard/computer/arcade/minesweeper,
/obj/item/circuitboard/computer/arcade/orion_trail,
/obj/item/circuitboard/computer/slot_machine,
/obj/item/circuitboard/computer/slot_machine,
/obj/item/circuitboard/computer/slot_machine,

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

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

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

View File

@@ -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"

View File

@@ -116,19 +116,19 @@
to_chat(src, "<span class='warning'>[L] is restraining [P], you cannot push past.</span>")
return 1
//CIT CHANGES START HERE - makes it so resting stops you from moving through standing folks without a short delay
if(!CHECK_MOBILITY(src, MOBILITY_STAND) && CHECK_MOBILITY(L, MOBILITY_STAND))
//CIT CHANGES START HERE - makes it so resting stops you from moving through standing folks or over prone bodies without a short delay
if(!CHECK_MOBILITY(src, MOBILITY_STAND))
var/origtargetloc = L.loc
if(!pulledby)
if(combat_flags & COMBAT_FLAG_ATTEMPTING_CRAWL)
return TRUE
if(IS_STAMCRIT(src))
to_chat(src, "<span class='warning'>You're too exhausted to crawl under [L].</span>")
to_chat(src, "<span class='warning'>You're too exhausted to crawl [(CHECK_MOBILITY(L, MOBILITY_STAND)) ? "under": "over"] [L].</span>")
return TRUE
ENABLE_BITFIELD(combat_flags, COMBAT_FLAG_ATTEMPTING_CRAWL)
visible_message("<span class='notice'>[src] is attempting to crawl under [L].</span>",
"<span class='notice'>You are now attempting to crawl under [L].</span>",
target = L, target_message = "<span class='notice'>[src] is attempting to crawl under you.</span>")
visible_message("<span class='notice'>[src] is attempting to crawl [(CHECK_MOBILITY(L, MOBILITY_STAND)) ? "under" : "over"] [L].</span>",
"<span class='notice'>You are now attempting to crawl [(CHECK_MOBILITY(L, MOBILITY_STAND)) ? "under": "over"] [L].</span>",
target = L, target_message = "<span class='notice'>[src] is attempting to crawl [(CHECK_MOBILITY(L, MOBILITY_STAND)) ? "under" : "over"] you.</span>")
if(!do_after(src, CRAWLUNDER_DELAY, target = src) || CHECK_MOBILITY(src, MOBILITY_STAND))
DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_ATTEMPTING_CRAWL)
return TRUE

View File

@@ -37,6 +37,8 @@
if(mover in buckled_mobs)
return TRUE
var/mob/living/L = mover //typecast first, check isliving and only check this if living using short circuit
if(lying && L.lying) //if we're both lying down and aren't already being thrown/shipped around, don't pass
return FALSE
return (!density || (isliving(mover)? L.can_move_under_living(src) : !mover.density))
/mob/living/toggle_move_intent()

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)

View File

@@ -21,14 +21,6 @@
category = list("Computer Boards")
departmental_flags = DEPARTMENTAL_FLAG_ALL
/datum/design/board/minesweeper
name = "Computer Design (Minesweeper Arcade Machine)"
desc = "Allows for the construction of circuit boards used to build a new Minesweeper machine."
id = "arcade_minesweeper"
build_path = /obj/item/circuitboard/computer/arcade/minesweeper
category = list("Computer Boards")
departmental_flags = DEPARTMENTAL_FLAG_ALL
/datum/design/board/slot_machine
name = "Computer Design (Slot Machine)"
desc = "Allows for the construction of circuit boards used to build a new slot machine."

View File

@@ -10,6 +10,14 @@
category = list ("Misc. Machinery")
departmental_flags = DEPARTMENTAL_FLAG_ALL
/datum/design/board/autoloom
name = "Machine Design (Autoloom Board)"
desc = "The circuit board for an autoloom."
id = "autoloom"
build_path = /obj/item/circuitboard/machine/autoloom
category = list ("Misc. Machinery")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
/datum/design/board/holopad
name = "Machine Design (AI Holopad Board)"
desc = "The circuit board for a holopad."

View File

@@ -56,5 +56,5 @@
display_name = "Games and Toys"
description = "For the slackers on the station."
prereq_ids = list("comptech")
design_ids = list("arcade_battle", "arcade_orion", "arcade_minesweeper", "slotmachine", "autoylathe")
design_ids = list("arcade_battle", "arcade_orion", "slotmachine", "autoylathe")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000)

View File

@@ -37,7 +37,7 @@
display_name = "Botanical Engineering"
description = "Botanical tools."
prereq_ids = list("adv_engi", "biotech")
design_ids = list("diskplantgene", "portaseeder", "plantgenes", "flora_gun", "hydro_tray", "biogenerator", "seed_extractor")
design_ids = list("diskplantgene", "portaseeder", "plantgenes", "flora_gun", "hydro_tray", "biogenerator", "seed_extractor", "autoloom")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750)
/datum/techweb_node/exp_tools

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."

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)

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

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