@@ -25,7 +25,6 @@
|
||||
max_matter = 600 //Bigger container and faster speeds due to being specialized and stationary.
|
||||
no_ammo_message = "<span class='warning'>Internal matter exhausted. Please add additional materials.</span>"
|
||||
delay_mod = 0.5
|
||||
<<<<<<< HEAD
|
||||
upgrade = TRUE
|
||||
var/obj/machinery/computer/camera_advanced/base_construction/console
|
||||
|
||||
@@ -33,8 +32,6 @@
|
||||
if(!istype(user) || user.incapacitated() || !user.Adjacent(console))
|
||||
return FALSE
|
||||
return TRUE
|
||||
=======
|
||||
>>>>>>> parent of b404e18b15... Merge branch 'master' into FERMICHEMCurTweaks
|
||||
|
||||
/obj/machinery/computer/camera_advanced/base_construction
|
||||
name = "base construction console"
|
||||
@@ -59,12 +56,10 @@
|
||||
|
||||
light_color = LIGHT_COLOR_PINK
|
||||
|
||||
/obj/machinery/computer/camera_advanced/base_construction/Initialize()
|
||||
. = ..()
|
||||
RCD = new(src)
|
||||
|
||||
/obj/machinery/computer/camera_advanced/base_construction/Initialize(mapload)
|
||||
. = ..()
|
||||
RCD = new(src)
|
||||
RCD.console = src
|
||||
if(mapload) //Map spawned consoles have a filled RCD and stocked special structures
|
||||
RCD.matter = RCD.max_matter
|
||||
fans_remaining = 4
|
||||
@@ -95,7 +90,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/camera_advanced/base_construction/Destroy()
|
||||
qdel(RCD)
|
||||
QDEL_NULL(RCD)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/camera_advanced/base_construction/GrantActions(mob/living/user)
|
||||
@@ -150,7 +145,8 @@
|
||||
remote_eye = C.remote_control
|
||||
B = target
|
||||
if(!B.RCD) //The console must always have an RCD.
|
||||
B.RCD = new /obj/item/construction/rcd/internal(src) //If the RCD is lost somehow, make a new (empty) one!
|
||||
B.RCD = new /obj/item/construction/rcd/internal(B) //If the RCD is lost somehow, make a new (empty) one!
|
||||
B.RCD.console = B
|
||||
|
||||
/datum/action/innate/aux_base/proc/check_spot()
|
||||
//Check a loction to see if it is inside the aux base at the station. Camera visbility checks omitted so as to not hinder construction.
|
||||
@@ -205,38 +201,35 @@
|
||||
|
||||
var/list/buildlist = list("Walls and Floors" = 1,"Airlocks" = 2,"Deconstruction" = 3,"Windows and Grilles" = 4)
|
||||
var/buildmode = input("Set construction mode.", "Base Console", null) in buildlist
|
||||
B.RCD.mode = buildlist[buildmode]
|
||||
to_chat(owner, "Build mode is now [buildmode].")
|
||||
if(buildmode)
|
||||
B.RCD.mode = buildlist[buildmode]
|
||||
to_chat(owner, "Build mode is now [buildmode].")
|
||||
|
||||
/datum/action/innate/aux_base/airlock_type
|
||||
name = "Select Airlock Type"
|
||||
button_icon_state = "airlock_select"
|
||||
|
||||
datum/action/innate/aux_base/airlock_type/Activate()
|
||||
/datum/action/innate/aux_base/airlock_type/Activate()
|
||||
if(..())
|
||||
return
|
||||
|
||||
<<<<<<< HEAD
|
||||
B.RCD.change_airlock_access(usr)
|
||||
=======
|
||||
B.RCD.change_airlock_setting()
|
||||
>>>>>>> parent of b404e18b15... Merge branch 'master' into FERMICHEMCurTweaks
|
||||
|
||||
|
||||
datum/action/innate/aux_base/window_type
|
||||
/datum/action/innate/aux_base/window_type
|
||||
name = "Select Window Type"
|
||||
button_icon_state = "window_select"
|
||||
|
||||
datum/action/innate/aux_base/window_type/Activate()
|
||||
/datum/action/innate/aux_base/window_type/Activate()
|
||||
if(..())
|
||||
return
|
||||
B.RCD.toggle_window_type()
|
||||
B.RCD.toggle_window_type(usr)
|
||||
|
||||
datum/action/innate/aux_base/place_fan
|
||||
/datum/action/innate/aux_base/place_fan
|
||||
name = "Place Tiny Fan"
|
||||
button_icon_state = "build_fan"
|
||||
|
||||
datum/action/innate/aux_base/place_fan/Activate()
|
||||
/datum/action/innate/aux_base/place_fan/Activate()
|
||||
if(..())
|
||||
return
|
||||
|
||||
@@ -258,11 +251,11 @@ datum/action/innate/aux_base/place_fan/Activate()
|
||||
to_chat(owner, "<span class='notice'>Tiny fan placed. [B.fans_remaining] remaining.</span>")
|
||||
playsound(fan_turf, 'sound/machines/click.ogg', 50, 1)
|
||||
|
||||
datum/action/innate/aux_base/install_turret
|
||||
/datum/action/innate/aux_base/install_turret
|
||||
name = "Install Plasma Anti-Wildlife Turret"
|
||||
button_icon_state = "build_turret"
|
||||
|
||||
datum/action/innate/aux_base/install_turret/Activate()
|
||||
/datum/action/innate/aux_base/install_turret/Activate()
|
||||
if(..())
|
||||
return
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
heat_protection = CHEST|GROIN|LEGS|ARMS
|
||||
hoodtype = /obj/item/clothing/head/hooded/explorer
|
||||
armor = list("melee" = 30, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 50)
|
||||
flags_inv = HIDEJUMPSUIT|HIDETAUR
|
||||
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe)
|
||||
resistance_flags = FIRE_PROOF
|
||||
tauric = TRUE //Citadel Add for tauric hardsuits
|
||||
@@ -129,7 +130,7 @@
|
||||
|
||||
/obj/item/clothing/suit/hooded/explorer/seva
|
||||
name = "SEVA Suit"
|
||||
desc = "A fire-proof suit for exploring hot environments."
|
||||
desc = "A fire-proof suit for exploring hot environments. Its design and material make it easier for a Goliath to keep their grip on the wearer."
|
||||
icon_state = "seva"
|
||||
item_state = "seva"
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
@@ -141,7 +142,7 @@
|
||||
|
||||
/obj/item/clothing/head/hooded/explorer/seva
|
||||
name = "SEVA Hood"
|
||||
desc = "A fire-proof hood for exploring hot environments."
|
||||
desc = "A fire-proof hood for exploring hot environments. Its design and material make it easier for a Goliath to keep their grip on the wearer."
|
||||
icon_state = "seva"
|
||||
item_state = "seva"
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
|
||||
@@ -159,7 +160,7 @@
|
||||
|
||||
/obj/item/clothing/suit/hooded/explorer/exo
|
||||
name = "Exo-suit"
|
||||
desc = "A robust suit for exploring dangerous environments."
|
||||
desc = "A robust suit for fighting dangerous animals. Its design and material make it harder for a Goliath to keep their grip on the wearer."
|
||||
icon_state = "exo"
|
||||
item_state = "exo"
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
@@ -170,7 +171,7 @@
|
||||
|
||||
/obj/item/clothing/head/hooded/explorer/exo
|
||||
name = "Exo-hood"
|
||||
desc = "A robust helmet for exploring dangerous environments."
|
||||
desc = "A robust helmet for fighting dangerous animals. Its design and material make it harder for a Goliath to keep their grip on the wearer."
|
||||
icon_state = "exo"
|
||||
item_state = "exo"
|
||||
armor = list("melee" = 65, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 60, "bio" = 25, "rad" = 10, "fire" = 0, "acid" = 0)
|
||||
|
||||
@@ -63,8 +63,7 @@
|
||||
|
||||
/obj/item/twohanded/kinetic_crusher/attack(mob/living/target, mob/living/carbon/user)
|
||||
if(!wielded)
|
||||
to_chat(user, "<span class='warning'>[src] is too heavy to use with one hand. You fumble and drop everything.")
|
||||
user.drop_all_held_items()
|
||||
to_chat(user, "<span class='warning'>[src] is too heavy to use with one hand.")
|
||||
return
|
||||
var/datum/status_effect/crusher_damage/C = target.has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING)
|
||||
var/target_health = target.health
|
||||
|
||||
@@ -205,7 +205,7 @@
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
var/mob/living/carbon/human/active_owner
|
||||
|
||||
/obj/item/clothing/neck/necklace/memento_mori/item_action_slot_check(slot)
|
||||
/obj/item/clothing/neck/necklace/memento_mori/item_action_slot_check(slot, mob/user, datum/action/A)
|
||||
return slot == SLOT_NECK
|
||||
|
||||
/obj/item/clothing/neck/necklace/memento_mori/dropped(mob/user)
|
||||
@@ -453,7 +453,7 @@
|
||||
|
||||
/obj/item/immortality_talisman/Initialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/anti_magic, TRUE, TRUE)
|
||||
AddComponent(/datum/component/anti_magic, TRUE, TRUE, TRUE)
|
||||
|
||||
/datum/action/item_action/immortality
|
||||
name = "Immortality"
|
||||
@@ -796,21 +796,21 @@
|
||||
|
||||
/obj/item/melee/ghost_sword/proc/ghost_check()
|
||||
var/list/mob/dead/observer/current_spirits = list()
|
||||
|
||||
|
||||
recursive_orbit_collect(src, current_spirits)
|
||||
recursive_orbit_collect(loc, current_spirits) //anything holding us
|
||||
|
||||
|
||||
for(var/i in spirits - current_spirits)
|
||||
var/mob/dead/observer/G = i
|
||||
G.invisibility = GLOB.observer_default_invisibility
|
||||
|
||||
|
||||
for(var/i in current_spirits)
|
||||
var/mob/dead/observer/G = i
|
||||
G.invisibility = 0
|
||||
|
||||
|
||||
spirits = current_spirits
|
||||
return length(spirits)
|
||||
|
||||
|
||||
/obj/item/melee/ghost_sword/attack(mob/living/target, mob/living/carbon/human/user)
|
||||
force = 0
|
||||
var/ghost_counter = ghost_check()
|
||||
@@ -1022,21 +1022,10 @@
|
||||
|
||||
message_admins("<span class='adminnotice'>[ADMIN_LOOKUPFLW(L)] has been marked for death by [ADMIN_LOOKUPFLW(user)]!</span>")
|
||||
|
||||
var/datum/objective/survive/survive = new
|
||||
survive.owner = L.mind
|
||||
L.mind.objectives += survive
|
||||
var/datum/antagonist/blood_contract/A = new
|
||||
L.mind.add_antag_datum(A)
|
||||
|
||||
log_combat(user, L, "took out a blood contract on", src)
|
||||
to_chat(L, "<span class='userdanger'>You've been marked for death! Don't let the demons get you! KILL THEM ALL!</span>")
|
||||
L.add_atom_colour("#FF0000", ADMIN_COLOUR_PRIORITY)
|
||||
var/obj/effect/mine/pickup/bloodbath/B = new(L)
|
||||
INVOKE_ASYNC(B, /obj/effect/mine/pickup/bloodbath/.proc/mineEffect, L)
|
||||
|
||||
for(var/mob/living/carbon/human/H in GLOB.player_list)
|
||||
if(H == L)
|
||||
continue
|
||||
to_chat(H, "<span class='userdanger'>You have an overwhelming desire to kill [L]. [L.p_theyve(TRUE)] been marked red! Whoever [L.p_they()] [L.p_were()], friend or foe, go kill [L.p_them()]!</span>")
|
||||
H.put_in_hands(new /obj/item/kitchen/knife/butcher(H), TRUE)
|
||||
|
||||
qdel(src)
|
||||
|
||||
//Colossus
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
process_ore(AM)
|
||||
|
||||
/obj/machinery/mineral/processing_unit/proc/process_ore(obj/item/stack/ore/O)
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
var/material_amount = materials.get_item_material_amount(O)
|
||||
if(!materials.has_space(material_amount))
|
||||
unload_mineral(O)
|
||||
@@ -107,7 +107,7 @@
|
||||
|
||||
/obj/machinery/mineral/processing_unit/proc/get_machine_data()
|
||||
var/dat = "<b>Smelter control console</b><br><br>"
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
for(var/mat_id in materials.materials)
|
||||
var/datum/material/M = materials.materials[mat_id]
|
||||
dat += "<span class=\"res_name\">[M.name]: </span>[M.amount] cm³"
|
||||
@@ -121,7 +121,7 @@
|
||||
dat += "<b>Smelt Alloys</b><br>"
|
||||
|
||||
for(var/v in stored_research.researched_designs)
|
||||
var/datum/design/D = stored_research.researched_designs[v]
|
||||
var/datum/design/D = SSresearch.techweb_design_by_id(v)
|
||||
dat += "<span class=\"res_name\">[D.name] "
|
||||
if (selected_alloy == D.id)
|
||||
dat += " <i>Smelting</i>"
|
||||
@@ -152,7 +152,7 @@
|
||||
CONSOLE.updateUsrDialog()
|
||||
|
||||
/obj/machinery/mineral/processing_unit/proc/smelt_ore()
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
var/datum/material/mat = materials.materials[selected_material]
|
||||
if(mat)
|
||||
var/sheets_to_remove = (mat.amount >= (MINERAL_MATERIAL_AMOUNT * SMELT_AMOUNT) ) ? SMELT_AMOUNT : round(mat.amount / MINERAL_MATERIAL_AMOUNT)
|
||||
@@ -175,7 +175,7 @@
|
||||
on = FALSE
|
||||
return
|
||||
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
materials.use_amount(alloy.materials, amount)
|
||||
|
||||
generate_mineral(alloy.build_path)
|
||||
@@ -186,7 +186,7 @@
|
||||
|
||||
var/build_amount = SMELT_AMOUNT
|
||||
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
|
||||
for(var/mat_id in D.materials)
|
||||
var/M = D.materials[mat_id]
|
||||
@@ -204,7 +204,7 @@
|
||||
unload_mineral(O)
|
||||
|
||||
/obj/machinery/mineral/processing_unit/on_deconstruction()
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
materials.retrieve_all()
|
||||
..()
|
||||
|
||||
|
||||
@@ -209,7 +209,7 @@
|
||||
|
||||
data["alloys"] = list()
|
||||
for(var/v in stored_research.researched_designs)
|
||||
var/datum/design/D = stored_research.researched_designs[v]
|
||||
var/datum/design/D = SSresearch.techweb_design_by_id(v)
|
||||
data["alloys"] += list(list("name" = D.name, "id" = D.id, "amount" = can_smelt_alloy(D)))
|
||||
|
||||
if (!mat_container)
|
||||
@@ -304,7 +304,9 @@
|
||||
return
|
||||
var/alloy_id = params["id"]
|
||||
var/datum/design/alloy = stored_research.isDesignResearchedID(alloy_id)
|
||||
if((check_access(inserted_scan_id) || allowed(usr)) && alloy)
|
||||
var/mob/M = usr
|
||||
var/obj/item/card/id/I = M.get_idcard(TRUE)
|
||||
if((check_access(I) || allowed(usr)) && alloy)
|
||||
var/smelt_amount = can_smelt_alloy(alloy)
|
||||
var/desired = 0
|
||||
if (params["sheets"])
|
||||
|
||||
@@ -34,13 +34,13 @@ GLOBAL_LIST_EMPTY(silo_access_logs)
|
||||
var/datum/component/remote_materials/mats = C
|
||||
mats.disconnect_from(src)
|
||||
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
materials.retrieve_all()
|
||||
|
||||
return ..()
|
||||
|
||||
/obj/machinery/ore_silo/proc/remote_attackby(obj/machinery/M, mob/user, obj/item/stack/I)
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
// stolen from /datum/component/material_container/proc/OnAttackBy
|
||||
if(user.a_intent != INTENT_HELP)
|
||||
return
|
||||
@@ -71,7 +71,7 @@ GLOBAL_LIST_EMPTY(silo_access_logs)
|
||||
popup.open()
|
||||
|
||||
/obj/machinery/ore_silo/proc/generate_ui()
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
var/list/ui = list("<head><title>Ore Silo</title></head><body><div class='statusDisplay'><h2>Stored Material:</h2>")
|
||||
var/any = FALSE
|
||||
for(var/M in materials.materials)
|
||||
@@ -149,7 +149,7 @@ GLOBAL_LIST_EMPTY(silo_access_logs)
|
||||
return TRUE
|
||||
else if(href_list["ejectsheet"])
|
||||
var/eject_sheet = href_list["ejectsheet"]
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
var/count = materials.retrieve_sheets(text2num(href_list["eject_amt"]), eject_sheet, drop_location())
|
||||
var/list/matlist = list()
|
||||
matlist[eject_sheet] = MINERAL_MATERIAL_AMOUNT
|
||||
@@ -171,7 +171,7 @@ GLOBAL_LIST_EMPTY(silo_access_logs)
|
||||
return
|
||||
var/datum/ore_silo_log/entry = new(M, action, amount, noun, mats)
|
||||
|
||||
var/list/logs = GLOB.silo_access_logs[REF(src)]
|
||||
var/list/datum/ore_silo_log/logs = GLOB.silo_access_logs[REF(src)]
|
||||
if(!LAZYLEN(logs))
|
||||
GLOB.silo_access_logs[REF(src)] = logs = list(entry)
|
||||
else if(!logs[1].merge(entry))
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
shuttleId = "mining"
|
||||
possible_destinations = "mining_home;mining_away;landing_zone_dock;mining_public"
|
||||
no_destination_swap = 1
|
||||
var/global/list/dumb_rev_heads = list()
|
||||
var/static/list/dumb_rev_heads = list()
|
||||
|
||||
//ATTACK HAND IGNORING PARENT RETURN VALUE
|
||||
/obj/machinery/computer/shuttle/mining/attack_hand(mob/user)
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
if(!T)
|
||||
return
|
||||
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
for(var/obj/item/stack/sheet/O in T)
|
||||
materials.insert_stack(O, O.amount)
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
return
|
||||
var/dat = "<b>Coin Press</b><br>"
|
||||
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
for(var/mat_id in materials.materials)
|
||||
var/datum/material/M = materials.materials[mat_id]
|
||||
if(!M.amount && chosen != mat_id)
|
||||
@@ -65,7 +65,7 @@
|
||||
if(processing==1)
|
||||
to_chat(usr, "<span class='notice'>The machine is processing.</span>")
|
||||
return
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
if(href_list["choose"])
|
||||
if(materials.materials[href_list["choose"]])
|
||||
chosen = href_list["choose"]
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
/obj/item/storage/bag/money/Initialize()
|
||||
. = ..()
|
||||
GET_COMPONENT(STR, /datum/component/storage)
|
||||
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
|
||||
STR.max_w_class = WEIGHT_CLASS_NORMAL
|
||||
STR.max_items = 40
|
||||
STR.max_combined_w_class = 40
|
||||
|
||||
Reference in New Issue
Block a user