Merge branch 'master' into development

This commit is contained in:
skull132
2018-06-30 20:33:51 +03:00
57 changed files with 844 additions and 2449 deletions
+3 -3
View File
@@ -450,10 +450,10 @@ Define for getting a bitfield of adjacent turfs that meet a condition.
// Z-controller stuff - see basic.dm to see why the fuck this is the way it is.
#define IS_VALID_ZINDEX(z) !((z) > world.maxz || z > 17 || z < 2)
#define IS_VALID_ZINDEX(z) !((z) > world.maxz || (z) > 17)
#define HAS_ABOVE(z) (IS_VALID_ZINDEX(z) && z_levels & (1 << (z - 1)))
#define HAS_BELOW(z) (IS_VALID_ZINDEX(z) && z_levels & (1 << (z - 2)))
#define HAS_ABOVE(z) (IS_VALID_ZINDEX(z) && SSatlas.z_levels & (1 << (z - 1)))
#define HAS_BELOW(z) (IS_VALID_ZINDEX(z) && (z) != 1 && SSatlas.z_levels & (1 << (z - 2)))
#define GET_ABOVE(A) (HAS_ABOVE(A:z) ? get_step(A, UP) : null)
#define GET_BELOW(A) (HAS_BELOW(A:z) ? get_step(A, DOWN) : null)
@@ -800,7 +800,6 @@
SearchVar(ntnet_card_uid)
SearchVar(ntnet_global)
SearchVar(ntnrc_uid)
SearchVar(z_levels)
SearchVar(BLOOD_VOLUME_SAFE)
SearchVar(BLOOD_VOLUME_OKAY)
SearchVar(BLOOD_VOLUME_BAD)
@@ -18,6 +18,10 @@ var/datum/controller/subsystem/atlas/SSatlas
var/list/spawn_locations = list()
var/list/connected_z_cache = list()
var/z_levels = 0 // Each bit represents a connection between adjacent levels. So the first bit means levels 1 and 2 are connected.
/datum/controller/subsystem/atlas/stat_entry()
..("W:{X:[world.maxx] Y:[world.maxy] Z:[world.maxz]} ZL:[z_levels]")
/datum/controller/subsystem/atlas/New()
NEW_SS_GLOBAL(SSatlas)
@@ -112,6 +116,7 @@ var/datum/controller/subsystem/atlas/SSatlas
/datum/controller/subsystem/atlas/proc/setup_multiz()
for (var/thing in height_markers)
var/obj/effect/landmark/map_data/marker = thing
log_debug("atlas: setting up Z marker on level [marker.z] with height [marker.height].")
marker.setup()
connected_z_cache.Cut()
+2 -2
View File
@@ -13,9 +13,9 @@
flags = SS_FIRE_IN_LOBBY
var/list/queued_turfs = list()
var/list/qt_idex = 1
var/qt_idex = 1
var/list/queued_overlays = list()
var/list/qo_idex = 1
var/qo_idex = 1
var/list/openspace_overlays = list()
var/list/openspace_turfs = list()
+6 -6
View File
@@ -407,6 +407,12 @@
desc = "Weaponry Permission"
region = ACCESS_REGION_SECURITY
var/const/access_journalist = 70//journalist's office access
/datum/access/journalist
id = access_journalist
desc = "Journalist Office"
region = ACCESS_REGION_GENERAL
/******************
* Central Command *
******************/
@@ -470,12 +476,6 @@
desc = "Merchant Access"
access_type = ACCESS_TYPE_CENTCOM
var/const/access_journalist = 111//journalist's office access
/datum/access/journalist
id = access_journalist
desc = "Journalist Access"
access_type = ACCESS_REGION_GENERAL
/***************
* Antag access *
***************/
+2 -2
View File
@@ -78,12 +78,12 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction,
access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics,
access_chapel_office, access_library, access_research, access_mining, access_mining_station, access_janitor,
access_hop, access_RC_announce, access_keycard_auth, access_gateway, access_weapons)
access_hop, access_RC_announce, access_keycard_auth, access_gateway, access_weapons, access_journalist)
minimal_access = list(access_sec_doors, access_medical, access_engine, access_change_ids, access_eva, access_heads,
access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction,
access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics,
access_chapel_office, access_library, access_research, access_mining, access_mining_station, access_janitor,
access_hop, access_RC_announce, access_keycard_auth, access_gateway, access_weapons)
access_hop, access_RC_announce, access_keycard_auth, access_gateway, access_weapons, access_journalist)
equip(var/mob/living/carbon/human/H)
+1 -1
View File
@@ -105,7 +105,7 @@ var/list/civilian_positions = list(
"Chef",
"Janitor",
"Librarian",
"Journalist",
"Corporate Reporter",
"Chaplain",
"Assistant"
)
+2 -2
View File
@@ -453,7 +453,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
src.updateUsrDialog()
else if(href_list["set_new_message"])
src.msg = pencode2html(sanitize(input(usr, "Write your Feed story", "Network Channel Handler", "") as message, encode = 0, trim = 0, extra = 0))
src.msg = pencode2html(sanitize(input(usr, "Write your Feed story", "Network Channel Handler", "") as message, max_length = MAX_BOOK_MESSAGE_LEN, encode = 0, trim = 0, extra = 0))
src.updateUsrDialog()
else if(href_list["set_attachment"])
@@ -469,7 +469,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
src.screen=6
else
if(paper_data)
src.msg += "</BR>Attachment Name: [paper_name]</BR>Attachment:<PRE><CODE>[paper_data]</CODE></PRE>"
src.msg += "</BR>Attachment Name: [paper_name]</BR>Attachment:<PRE><BLOCKQUOTE style=\"border: 1px black solid;\">[paper_data]</BLOCKQUOTE></PRE>"
var/image = photo_data ? photo_data.photo : null
feedback_inc("newscaster_stories",1)
var/datum/feed_channel/ch = SSnews.GetFeedChannel(src.channel_name)
+6 -2
View File
@@ -438,7 +438,9 @@
/obj/item/seeds/towermycelium = 3,
/obj/item/seeds/watermelonseed = 3,
/obj/item/seeds/wheatseed = 3,
/obj/item/seeds/whitebeetseed = 3
/obj/item/seeds/whitebeetseed = 3,
/obj/item/seeds/earthenroot = 2,
/obj/item/seeds/nifberries = 2
)
contraband = list(
/obj/item/seeds/amanitamycelium = 3,
@@ -486,7 +488,9 @@
/obj/item/seeds/towermycelium = 20,
/obj/item/seeds/watermelonseed = 30,
/obj/item/seeds/wheatseed = 20,
/obj/item/seeds/whitebeetseed = 20
/obj/item/seeds/whitebeetseed = 20,
/obj/item/seeds/earthenroot = 70,
/obj/item/seeds/nifberries = 70
)
restock_items = 1
+22 -14
View File
@@ -37,7 +37,8 @@
else
R = new /obj/structure/closet/airbubble(user.loc)
if(!used)
internal_tank = new /obj/item/weapon/tank/emergency_oxygen/double(src)
internal_tank = new /obj/item/weapon/tank/emergency_oxygen/engi(src)
internal_tank.air_contents.adjust_gas("oxygen", (42*ONE_ATMOSPHERE)/(R_IDEAL_GAS_EQUATION*T20C))
R.internal_tank = internal_tank
if(!isnull(internal_tank))
internal_tank.forceMove(R)
@@ -82,7 +83,7 @@
return 0
return 1
/obj/structure/closet/airbubble/can_close()
/obj/structure/closet/airbubble/can_close(mob/user as mob)
if(zipped)
return 0
var/turf/T = get_turf(src)
@@ -93,7 +94,7 @@
for(var/mob/living/M in T)
mob_num += 1
if(mob_num > 1)
user << "<span class='warning'>[src] can only fit one person.</span>"
to_chat(user, "<span class='warning'>[src] can only fit one person.</span>")
return 0
return 1
@@ -125,7 +126,7 @@
/obj/structure/closet/airbubble/toggle(mob/user as mob)
if(!(opened ? close(user) : open(user)))
user << "<span class='notice'>It won't budge!</span>"
to_chat(user, "<span class='notice'>It won't budge!</span>")
return
update_icon()
return 1
@@ -139,9 +140,6 @@
dump_contents()
if(!do_after(user, 0.35 SECONDS, act_target = src))
return
icon_state = icon_opened
opened = 1
playsound(loc, open_sound, 15, 1, -3)
@@ -151,14 +149,11 @@
/obj/structure/closet/airbubble/close(mob/user as mob)
if(!opened)
return 0
if(!can_close())
if(!can_close(user))
return 0
var/stored_units = 0
if(!do_after(user, 0.35 SECONDS, act_target = src))
return
if(store_misc)
stored_units += store_misc(stored_units)
if(store_items)
@@ -274,6 +269,12 @@
var/datum/gas_mixture/t_air = get_turf_air()
t_air.merge(inside_air)
// When we shoot bubble, make it rip.
/obj/structure/closet/airbubble/bullet_act(var/obj/item/projectile/Proj)
..()
ripped = TRUE
update_icon()
// Change valve on internal tank
/obj/structure/closet/airbubble/verb/set_internals()
set src in oview(1)
@@ -296,7 +297,7 @@
START_PROCESSING(SSfast_process, src)
use_internal_tank = !use_internal_tank
else
usr << "<span class='notice'>[src] has no internal tank.</span>"
to_chat(usr, "<span class='notice'>[src] has no internal tank.</span>")
// Remove tank from bubble
/obj/structure/closet/airbubble/verb/take_tank()
@@ -321,7 +322,7 @@
update_icon()
STOP_PROCESSING(SSfast_process, src)
else
usr << "<span class='warning'>[src] already has no tank.</span>"
to_chat(user, "<span class='warning'>[src] already has no tank.</span>")
// Handle most of things: restraining, cutting restrains, attaching tank.
/obj/structure/closet/airbubble/attackby(W as obj, mob/user as mob)
@@ -345,7 +346,7 @@
START_PROCESSING(SSfast_process, src)
return
else
user << "<span class='warning'>[src] already has a tank attached.</span>"
to_chat(user, "<span class='warning'>[src] already has a tank attached.</span>")
if(opened)
if(istype(W, /obj/item/weapon/grab))
var/obj/item/weapon/grab/G = W
@@ -357,6 +358,9 @@
return
user.drop_item()
else if(istype(W, /obj/item/weapon/handcuffs/cable))
if(zipped)
to_chat(user, "<span class='warning'>[src]'s zipper is already restrained.</span>")
return
user.visible_message(
"<span class='warning'>[user] begins putting cable restrains on zipper of [src].</span>",
"<span class='notice'>You begin putting cable restrains on zipper of [src].</span>"
@@ -374,6 +378,10 @@
qdel(W)
update_icon()
else if(istype(W, /obj/item/weapon/wirecutters))
if(!zipped)
to_chat(user, "<span class='warning'>[src] has no cables to cut.</span>")
attack_hand(user)
return
user.visible_message(
"<span class='warning'>[user] begins cutting cable restrains on zipper of [src].</span>",
"<span class='notice'>You begin cutting cable restrains on zipper of [src].</span>"
+3 -3
View File
@@ -412,7 +412,7 @@ BREATH ANALYZER
/obj/item/device/breath_analyzer/attack(mob/living/carbon/human/H, mob/living/user as mob)
if (!istype(H))
to_chat(user,"<span class='warning'>You can't find a way to use the [src] on [H]!</span>")
to_chat(user,"<span class='warning'>You can't find a way to use \the [src] on [H]!</span>")
return
if ( ((CLUMSY in user.mutations) || (DUMB in user.mutations)) && prob(20))
@@ -433,7 +433,7 @@ BREATH ANALYZER
user.setClickCooldown(DEFAULT_QUICK_COOLDOWN)
user.do_attack_animation(H)
user.visible_message("<span class='notice'>[user] is trying to take a breath sample from [H].</span>","<span class='notice'>You gently insert the [src] into [H]'s mouth.</span>")
user.visible_message("<span class='notice'>[user] is trying to take a breath sample from [H].</span>","<span class='notice'>You gently insert \the [src] into [H]'s mouth.</span>")
if (!LAZYLEN(src.other_DNA))
LAZYADD(src.other_DNA, H.dna.unique_enzymes)
@@ -443,7 +443,7 @@ BREATH ANALYZER
to_chat(user,"<span class='notice'>You and the target need to be standing still in order to take a breath sample.</span>")
return
user.visible_message("<span class='notice'>[user] takes a breath sample from [H].</span>","<span class='notice'>The [src] clicks as it finishes reading [H]'s breath sample.</span>")
user.visible_message("<span class='notice'>[user] takes a breath sample from [H].</span>","<span class='notice'>\The [src] clicks as it finishes reading [H]'s breath sample.</span>")
to_chat(user,"<b>Breath Sample Results:</b>")
@@ -161,7 +161,7 @@
return
var/mob/living/carbon/human/H = M
if (!H.species || !isipc(H) || !H.organs_by_name["groin"])
if (!H.species || !isipc(H) || !H.organs_by_name["head"])
user << "<span class = 'warning'>You cannot use this on a non-synthetic organism!</span>"
return
@@ -178,9 +178,9 @@
user.show_message("<span class = 'warning'>You implanted the implant into [M].</span>")
ipc_tag.replaced(H, H.organs_by_name["groin"])
qdel(ipc_tag)
ipc_tag.replaced(H, H.organs_by_name["head"])
ipc_tag = null
update()
+6 -1
View File
@@ -21,7 +21,7 @@
coat = null
update_icon()
/obj/structure/coatrack/attackby(obj/item/weapon/W as obj, mob/user as mob)
/obj/structure/coatrack/attackby(obj/item/W as obj, mob/user as mob)
var/can_hang = 0
if(is_type_in_list(W, allowed))
can_hang = 1
@@ -51,4 +51,9 @@
/obj/structure/coatrack/update_icon()
cut_overlays()
if (coat)
if(istype(coat, /obj/item/clothing/suit/storage/toggle))
var/obj/item/clothing/suit/storage/toggle/T = coat
if(T.icon_state == T.icon_open) // avoid icon conflicts
T.icon_state = T.icon_closed
T.item_state = T.icon_closed
add_overlay("coat_[coat.icon_state]")
+1 -1
View File
@@ -125,8 +125,8 @@
return
else
user.put_in_hands(stored_item)
stored_item = null
to_chat(user,"<span class='notice'>You take \the [stored_item] from [src].</span>")
stored_item = null
return
/obj/structure/flora/pottedplant/bullet_act(var/obj/item/projectile/Proj)
@@ -21,6 +21,8 @@
if(!T.decals) T.decals = list()
T.decals |= floor_decals[cache_key]
T.add_overlay(floor_decals[cache_key])
if(desc)
T.desc += "<br>There is \a [src] on it with the following inscription:<br><i>[desc]</i>"
qdel(src)
+3
View File
@@ -37,6 +37,9 @@
if (!mapload)
make_plating(defer_icon_update = 1)
flooring = newflooring
//Set the initial strings
name = flooring.name
desc = flooring.desc
if (mapload)
queue_icon_update()
else
+1 -3
View File
@@ -7,9 +7,7 @@
var/list/to_add = list()
if(flooring)
// Set initial icon and strings.
name = flooring.name
desc = flooring.desc
// Set initial icon.
icon = flooring.icon
if(flooring_override)
@@ -177,7 +177,7 @@
gear_tweaks += new/datum/gear_tweak/path(surgical)
/datum/gear/head/headbando
display_name = "Basic Headband"
display_name = "basic headband"
path = /obj/item/clothing/head/headbando
/datum/gear/head/headbando/New()
+1 -1
View File
@@ -507,7 +507,7 @@ BLIND // can't see anything
//from verkister
/obj/item/clothing/glasses/spiffygogs
name = "Orange Goggles"
name = "orange goggles"
desc = "You can almost feel the raw power radiating off these strange specs."
icon_state = "spiffygogs"
item_state = "spiffygogs"
@@ -29,6 +29,8 @@
if(contained_sprite)
tmp_icon_state = "[tmp_icon_state]"
inv_overlay = image("icon" = icon, "icon_state" = "[tmp_icon_state]_w", dir = SOUTH)
if(color)
inv_overlay.color = color
return inv_overlay
/obj/item/clothing/accessory/proc/get_mob_overlay()
@@ -43,6 +45,8 @@
mob_overlay = image("icon" = icon, "icon_state" = "[tmp_icon_state]")
else
mob_overlay = image("icon" = INV_ACCESSORIES_DEF_ICON, "icon_state" = "[tmp_icon_state]")
if(color)
mob_overlay.color = color
return mob_overlay
//when user attached an accessory to S
@@ -111,14 +111,15 @@
new /obj/item/weapon/material/hatchet/unathiknife(hold)
/obj/item/clothing/accessory/storage/bayonet
name = "bayonet sheat"
desc = "A leather sheat designated to hold a bayonet."
name = "bayonet sheath"
desc = "A leather sheath designated to hold a bayonet."
icon_state = "holster_machete"
slots = 1
/obj/item/clothing/accessory/storage/bayonet/Initialize()
. = ..()
hold.max_storage_space = 2
hold.max_storage_space = 4
hold.max_w_class = 3
hold.can_hold = list(
/obj/item/weapon/material/knife/bayonet
)
+16 -16
View File
@@ -1,18 +1,18 @@
/obj/item/custom_ka_upgrade/barrels/barrel01
name = "standard core KA power converter"
build_name = "'Standard'"
desc = "A very standard kinetic accelerator energy converter and barrel assembly. Has poor range, but gets the job done."
desc = "A very standard kinetic accelerator energy converter and barrel assembly. Has poor range and firerate, but gets the job done."
icon_state = "barrel01"
damage_increase = 10
firedelay_increase = 0.75 SECONDS
range_increase = 2
damage_increase = 15
firedelay_increase = 1 SECONDS
range_increase = 3
recoil_increase = 2
cost_increase = 1
cell_increase = 0
capacity_increase = -1
fire_sound = 'sound/weapons/Kenetic_accel.ogg'
projectile_type = /obj/item/projectile/kinetic
origin_tech = list(TECH_MATERIAL = 2,TECH_ENGINEERING = 2,TECH_MAGNET = 2)
origin_tech = list(TECH_MATERIAL = 1,TECH_ENGINEERING = 1,TECH_MAGNET = 1, TECH_PHORON = 2)
/obj/item/custom_ka_upgrade/barrels/barrel02
name = "professional core KA power converter"
@@ -20,15 +20,15 @@
desc = "A more advanced kinetic accelerator energy converter and barrel assembly intended for professional miners out on the rock."
icon_state = "barrel02"
damage_increase = 15
firedelay_increase = 0.75 SECONDS
range_increase = 3
firedelay_increase = 0.5 SECONDS
range_increase = 4
recoil_increase = 3
cost_increase = 1
cell_increase = 0
capacity_increase = -2
fire_sound = 'sound/weapons/Kenetic_accel.ogg'
projectile_type = /obj/item/projectile/kinetic
origin_tech = list(TECH_MATERIAL = 3,TECH_ENGINEERING = 3,TECH_MAGNET = 3)
origin_tech = list(TECH_MATERIAL = 1,TECH_ENGINEERING = 1,TECH_MAGNET = 3, TECH_PHORON = 2)
/obj/item/custom_ka_upgrade/barrels/barrel03
name = "meteor core KA power converter"
@@ -37,14 +37,14 @@
icon_state = "barrel03"
damage_increase = 20
firedelay_increase = 0.75 SECONDS
range_increase = 4
range_increase = 5
recoil_increase = 4
cost_increase = 2
cell_increase = 0
capacity_increase = -3
fire_sound = 'sound/weapons/resonator_fire.ogg'
projectile_type = /obj/item/projectile/kinetic
origin_tech = list(TECH_MATERIAL = 4,TECH_ENGINEERING = 4,TECH_MAGNET = 4)
origin_tech = list(TECH_MATERIAL = 4,TECH_ENGINEERING = 3,TECH_MAGNET = 3, TECH_PHORON = 3)
/obj/item/custom_ka_upgrade/barrels/barrel04
@@ -54,14 +54,14 @@
icon_state = "barrel04"
damage_increase = 25
firedelay_increase = 1 SECONDS
range_increase = 5
range_increase = 6
recoil_increase = 6
cost_increase = 5
cell_increase = 0
capacity_increase = -4
fire_sound = 'sound/weapons/pulse.ogg'
projectile_type = /obj/item/projectile/kinetic
origin_tech = list(TECH_MATERIAL = 5,TECH_ENGINEERING = 5,TECH_MAGNET = 5)
origin_tech = list(TECH_MATERIAL = 6,TECH_ENGINEERING = 3,TECH_MAGNET = 5, TECH_PHORON = 4)
/obj/item/custom_ka_upgrade/barrels/barrel05
name = "experimental core KA power converter"
@@ -70,14 +70,14 @@
icon_state = "barrel05"
damage_increase = 30
firedelay_increase = 1 SECONDS
range_increase = 6
range_increase = 7
recoil_increase = 10
cost_increase = 10
cell_increase = 0
capacity_increase = -5
fire_sound = 'sound/weapons/resonator_blast.ogg'
projectile_type = /obj/item/projectile/kinetic
origin_tech = list(TECH_MATERIAL = 6,TECH_ENGINEERING = 6,TECH_MAGNET = 6)
origin_tech = list(TECH_MATERIAL = 6,TECH_ENGINEERING = 5,TECH_MAGNET = 6, TECH_PHORON = 5)
/obj/item/custom_ka_upgrade/barrels/illegal
name = "laser KA power converter"
@@ -87,8 +87,8 @@
damage_increase = 15
firedelay_increase = 1.5 SECONDS
range_increase = 64
recoil_increase = 6
cost_increase = 4
recoil_increase = 0
cost_increase = 10
cell_increase = 0
capacity_increase = 0
fire_sound = 'sound/weapons/lasercannonfire.ogg'
+26 -28
View File
@@ -21,49 +21,46 @@
/obj/item/custom_ka_upgrade/cells/cell01
//Pump Action
name = "pump action KA cell"
build_name = "pump-action"
desc = "A very basic power cell and pump action combo that stores a single charge. A pump is required after each shot, however it deals increased damage and has increased range."
name = "pump recharging KA cell"
build_name = "pump-recharging"
desc = "A very basic power cell and pump action combo that stores 4 charges. Low capacity however it has slightly increased range."
icon_state = "cell01"
damage_increase = 5
firedelay_increase = 0.25 SECONDS
range_increase = 3
recoil_increase = -1
cost_increase = -100 //Always have a single charge
cell_increase = 1
range_increase = 2
recoil_increase = -3
cell_increase = 4
capacity_increase = -1
mod_limit_increase = 0
pump_restore = 1
pump_delay = 0.4 SECONDS
origin_tech = list(TECH_MATERIAL = 2,TECH_ENGINEERING = 2,TECH_MAGNET = 2,TECH_POWER = 2)
origin_tech = list(TECH_MATERIAL = 1,TECH_ENGINEERING = 1,TECH_MAGNET = 1,TECH_POWER = 1)
/obj/item/custom_ka_upgrade/cells/cell02
//Pump Action
name = "pump recharging KA cell"
name = "advanced pump recharging KA cell"
build_name = "pump-recharging"
desc = "A somewhat more advanced, standard issue pump and cell assembly that allows the user to 'pre-pump' their charges, up to a capacity of 12. Can fire quite quickly."
desc = "A somewhat more advanced, standard issue pump and cell assembly that stores charges up to a capacity of 12. Can fire and pump quite quickly."
icon_state = "cell02"
firedelay_increase = 0
firedelay_increase = 0.1 SECONDS
recoil_increase = 1
cell_increase = 12
capacity_increase = -2
mod_limit_increase = 0
pump_restore = 1
pump_delay = 0.5 SECONDS
pump_delay = 0.3 SECONDS
origin_tech = list(TECH_MATERIAL = 3,TECH_ENGINEERING = 3,TECH_MAGNET = 3,TECH_POWER = 3)
origin_tech = list(TECH_MATERIAL = 3,TECH_ENGINEERING = 1,TECH_MAGNET = 1,TECH_POWER = 3)
/obj/item/custom_ka_upgrade/cells/cell03
name = "kinetic charging KA cell"
build_name = "kinetic-reloading"
desc = "A complex pump and cell assembly that uses the kinetic energy of an initial pump to significantly charge the cell. Deals increased damage at the cost of severely increased recoil and reduced firerate."
build_name = "kinetic"
desc = "A complex pump and cell assembly that uses the kinetic energy of an initial pump to significantly charge the cell. Deals increased damage at the cost of reduced firerate."
icon_state = "cell03"
damage_increase = 10
firedelay_increase = 0.5 SECONDS
recoil_increase = 4
cost_increase = -1
cell_increase = 40
capacity_increase = -3
@@ -72,13 +69,14 @@
pump_restore = 40
pump_delay = 1 SECONDS
origin_tech = list(TECH_MATERIAL = 4,TECH_ENGINEERING = 4,TECH_MAGNET = 4,TECH_POWER = 4)
origin_tech = list(TECH_MATERIAL = 4,TECH_ENGINEERING = 3,TECH_MAGNET = 2,TECH_POWER = 3)
/obj/item/custom_ka_upgrade/cells/cell04
name = "uranium charging KA cell"
build_name = "recharging"
desc = "A pumpless cell assembly that containes a miniaturized nuclear reactor housed safely inside the assembly. Recharges the cell shortly over time, however deals slightly reduced damage."
icon_state = "cell04"
firedelay_increase = 0.1 SECONDS
damage_increase = -5
recoil_increase = 0
cost_increase = 0
@@ -89,7 +87,7 @@
pump_restore = 0
pump_delay = 0
origin_tech = list(TECH_MATERIAL = 5,TECH_ENGINEERING = 5,TECH_MAGNET = 5,TECH_POWER = 5)
origin_tech = list(TECH_MATERIAL = 5,TECH_ENGINEERING = 4,TECH_MAGNET = 3,TECH_POWER = 5)
/obj/item/custom_ka_upgrade/cells/cell04/on_update(var/obj/item/weapon/gun/custom_ka/the_gun)
stored_charge = min(stored_charge + 3,cell_increase)
@@ -110,7 +108,7 @@
pump_restore = 5
pump_delay = 0.5 SECONDS
origin_tech = list(TECH_MATERIAL = 6,TECH_ENGINEERING = 6,TECH_MAGNET = 6,TECH_POWER = 6)
origin_tech = list(TECH_MATERIAL = 5,TECH_ENGINEERING = 6,TECH_MAGNET = 5,TECH_POWER = 5, TECH_PHORON = 5)
/obj/item/custom_ka_upgrade/cells/cell05/on_fire(var/obj/item/weapon/gun/custom_ka/the_gun)
if(the_gun.recoil_increase > 0)
@@ -132,7 +130,7 @@
pump_restore = 0
pump_delay = 0
origin_tech = list(TECH_MATERIAL = 5,TECH_ENGINEERING = 5,TECH_MAGNET = 5,TECH_POWER = 5)
origin_tech = list()
/obj/item/custom_ka_upgrade/cells/cyborg/on_update(var/obj/item/weapon/gun/custom_ka/the_gun)
var/mob/living/silicon/robot/owner_robot = the_gun.loc
@@ -147,18 +145,18 @@
/obj/item/custom_ka_upgrade/cells/illegal
//Pump Action
name = "pump action KA cell"
build_name = "static"
desc = "A clusterfuck of circuitry and battery parts all snuggly fit inside a solid, static plastisteel frame."
build_name = "pump-action"
desc = "A clusterfuck of circuitry and battery parts all snuggly fit inside a solid, static plastisteel frame. A single pump is enough for any shot of any weapon."
icon_state = "cell_illegal"
firedelay_increase = 0
recoil_increase = 0
cost_increase = 0
stored_charge = 20
cell_increase = 20
cost_increase = -100
stored_charge = 1
cell_increase = 1
capacity_increase = 0
mod_limit_increase = 0
pump_restore = 20
pump_delay = 0.5 SECONDS
pump_restore = 1
pump_delay = 0.3 SECONDS
origin_tech = list(TECH_MATERIAL = 3,TECH_ENGINEERING = 3,TECH_MAGNET = 3,TECH_POWER = 3, TECH_ILLEGAL = 4)
+4 -4
View File
@@ -5,7 +5,7 @@
w_class = 3
capacity_increase = 3
mod_limit_increase = 2
origin_tech = list(TECH_MATERIAL = 2,TECH_ENGINEERING = 2)
origin_tech = list(TECH_MATERIAL = 1,TECH_ENGINEERING = 1)
slot_flags = SLOT_BELT
/obj/item/weapon/gun/custom_ka/frame02
@@ -16,7 +16,7 @@
recoil_increase = -1
capacity_increase = 5
mod_limit_increase = 3
origin_tech = list(TECH_MATERIAL = 3,TECH_ENGINEERING = 3)
origin_tech = list(TECH_MATERIAL = 1,TECH_ENGINEERING = 3)
/obj/item/weapon/gun/custom_ka/frame03
name = "medium kinetic accelerator frame"
@@ -26,7 +26,7 @@
recoil_increase = -2
capacity_increase = 7
mod_limit_increase = 4
origin_tech = list(TECH_MATERIAL = 4,TECH_ENGINEERING = 4)
origin_tech = list(TECH_MATERIAL = 3,TECH_ENGINEERING = 3)
/obj/item/weapon/gun/custom_ka/frame04
name = "heavy kinetic accelerator frame"
@@ -36,7 +36,7 @@
recoil_increase = -5
capacity_increase = 9
mod_limit_increase = 5
origin_tech = list(TECH_MATERIAL = 5,TECH_ENGINEERING = 5)
origin_tech = list(TECH_MATERIAL = 3,TECH_ENGINEERING = 5)
/obj/item/weapon/gun/custom_ka/frame05
name = "tactical kinetic accelerator frame"
+1 -2
View File
@@ -1,6 +1,6 @@
/obj/item/custom_ka_upgrade/upgrade_chips/damage
name = "upgrade chip - damage increase"
desc = "Increases damage and recoil."
desc = "Increases damage and recoil, reduces accuracy."
icon_state = "upgrade_chip"
damage_increase = 10
recoil_increase = 3
@@ -54,7 +54,6 @@
name = "illegal custom KA upgrade chip"
desc = "Overrides safety settings for a custom kinetic accelerator. What's the worst that could happen?"
icon_state = "upgrade_chip_illegal"
damage_increase = 10
firedelay_increase = -0.5 SECONDS
recoil_increase = 4
cost_increase = 1
+4 -20
View File
@@ -2041,20 +2041,12 @@ obj/item/clothing/suit/storage/hooded/fluff/make_poncho //Raincoat Poncho - M.A.
icon_state = "nikit_zippo"
/obj/item/clothing/under/dress/fluff/marwani_dress_front //Unathi Purple Dress - Ilaeza Marwani - burgerbb
/obj/item/clothing/suit/fluff/marwani_dress //Unathi Purple Dress - Ilaeza Marwani - burgerbb
name = "unathi purple dress"
desc = "A strange purple dress designed to fit very tall female unathi, suitable for indoor wear in warmer climate. This is the front piece."
desc = "A strange purple dress designed to fit very tall female unathi, suitable for indoor wear in warmer climate. Attached to it is some sort of giant iron emblem."
icon = 'icons/obj/custom_items/marwani_dress.dmi'
icon_state = "mar_front_dress"
item_state = "mar_front_dress"
contained_sprite = TRUE
/obj/item/clothing/suit/fluff/marwani_dress_back //Unathi Purple Dress - Ilaeza Marwani - burgerbb
name = "unathi purple dress"
desc = "A strange purple dress designed to fit very tall female unathi, suitable for indoor wear in warmer climate. This is the back piece."
icon = 'icons/obj/custom_items/marwani_dress.dmi'
icon_state = "mar_back_dress"
item_state = "mar_back_dress"
icon_state = "mar_dress"
item_state = "mar_dress"
contained_sprite = TRUE
/obj/item/clothing/shoes/jackboots/unathi/fluff/marwani_shoes //Unathi Purple Boots - Ilaeza Marwani - burgerbb
@@ -2073,14 +2065,6 @@ obj/item/clothing/suit/storage/hooded/fluff/make_poncho //Raincoat Poncho - M.A.
item_state = "mar_gloves"
contained_sprite = TRUE
/obj/item/clothing/accessory/fluff/marwani_armor //Clan Marwani Emblem - Ilaeza Marwani - burgerbb
name = "clan marwani armor"
desc = "A large, decorative iron and brass alloyed breastplate signifying the industrial strength of Clan Marwani."
icon = 'icons/obj/custom_items/marwani_dress.dmi'
icon_state = "mar_emblem"
item_state = "mar_emblem"
contained_sprite = TRUE
/obj/item/weapon/deck/tarot/fluff/klavdiya_cards //Adhomian Divination Cards Deck - Klavdiya Tikhomirov - alberyk
name = "adhomian divination cards deck"
+1 -1
View File
@@ -125,7 +125,7 @@
var/author = query_books.item[1]
var/title = query_books.item[2]
var/content = query_books.item[3]
var/obj/item/weapon/book/B = new(src.loc)
var/obj/item/weapon/book/B = new(src)
B.name = "Book: [title]"
B.title = title
B.author = author
+2 -2
View File
@@ -8,7 +8,6 @@
// If is_brittle() returns true, these are only good for a single strike.
recipes += new/datum/stack_recipe("[display_name] baseball bat", /obj/item/weapon/material/twohanded/baseballbat, 10, time = 20, one_per_turf = 0, on_floor = 1, supplied_material = "[name]")
recipes += new/datum/stack_recipe("[display_name] ashtray", /obj/item/weapon/material/ashtray, 2, one_per_turf = 1, on_floor = 1, supplied_material = "[name]")
recipes += new/datum/stack_recipe("[display_name] spoon", /obj/item/weapon/material/kitchen/utensil/spoon/plastic, 1, on_floor = 1, supplied_material = "[name]")
recipes += new/datum/stack_recipe("[display_name] ring", /obj/item/clothing/ring/material, 1, on_floor = 1, supplied_material = "[name]")
recipes += new/datum/stack_recipe("[display_name] armor plate", /obj/item/weapon/material/armor_plating, 3, time = 20, on_floor = 1, supplied_material = "[name]")
@@ -19,7 +18,8 @@
recipes += new/datum/stack_recipe("[display_name] stool", /obj/item/weapon/stool, one_per_turf = 1, on_floor = 1, supplied_material = "[name]")
recipes += new/datum/stack_recipe("[display_name] chair", /obj/structure/bed/chair, one_per_turf = 1, on_floor = 1, supplied_material = "[name]")
recipes += new/datum/stack_recipe("[display_name] bed", /obj/structure/bed, 2, one_per_turf = 1, on_floor = 1, supplied_material = "[name]")
if(hardness>=10)
recipes += new/datum/stack_recipe("[display_name] ashtray", /obj/item/weapon/material/ashtray, 2, one_per_turf = 1, on_floor = 1, supplied_material = "[name]")
if(hardness>50)
recipes += new/datum/stack_recipe("[display_name] fork", /obj/item/weapon/material/kitchen/utensil/fork/plastic, 1, on_floor = 1, supplied_material = "[name]")
recipes += new/datum/stack_recipe("[display_name] knife", /obj/item/weapon/material/kitchen/utensil/knife/plastic, 1, on_floor = 1, supplied_material = "[name]")
+5 -2
View File
@@ -136,8 +136,11 @@ var/global/list/minevendor_list = list( //keep in order of price
if(istype(inserted_id))
if(href_list["choice"] == "eject")
inserted_id.loc = loc
if(!usr.get_active_hand())
usr.put_in_hands(inserted_id)
if(ishuman(usr))
if(!usr.get_active_hand())
usr.put_in_hands(inserted_id)
else
inserted_id.forceMove(get_turf(src))
inserted_id = null
else if(href_list["choice"] == "insert")
var/obj/item/weapon/card/id/I = usr.get_active_hand()
@@ -29,7 +29,9 @@
dat += "<B>Maintenance Units</B><BR>"
for(var/mob/living/silicon/robot/drone/D in silicon_mob_list)
if(D.z != src.z)
if(src.z in current_map.station_levels && !(D.z in current_map.station_levels)) //If the console is on a station level, then list all drones on the station levels
continue
else if (!(src.z in current_map.station_levels) && src.z != D.z) //If the console is not on the station, only list drones on the current level
continue
dat += "<BR>[D.real_name] ([D.stat == 2 ? "<font color='red'>INACTIVE</FONT>" : "<font color='green'>ACTIVE</FONT>"])"
dat += "<font dize = 9><BR>Cell charge: [D.cell.charge]/[D.cell.maxcharge]."
@@ -10,6 +10,7 @@
var/mob/master = null //undisputed master. Their commands hold ultimate sway and ultimate power.
var/list/allowed_targets = list() //WHO CAN I KILL D:
var/retribution = 1 //whether or not they will attack us if we attack them like some kinda dick.
var/list/sad_emote = list("whimpers")
/mob/living/simple_animal/hostile/commanded/Initialize()
..()
@@ -55,7 +56,7 @@
var/mode = "specific"
if(allowed_targets[1] == "everyone") //we have been given the golden gift of murdering everything. Except our master, of course. And our friends. So just mostly everyone.
mode = "everyone"
for(var/atom/A in ListTargets(10))
for(var/atom/A in targets)
var/mob/M = null
if(A == src)
continue
@@ -141,8 +142,7 @@
allowed_targets = list("everyone")//everyone? EVERYONE
return 1
var/list/targets = get_targets_by_name(text)
allowed_targets += targets
allowed_targets += get_targets_by_name(text)
if(emote_hear && emote_hear.len)
audible_emote("[pick(emote_hear)].",0)
return targets.len != 0
@@ -190,6 +190,13 @@
/mob/living/simple_animal/hostile/commanded/hit_with_weapon(obj/item/O, mob/living/user, var/effective_force, var/hit_zone)
//if they attack us, we want to kill them. None of that "you weren't given a command so free kill" bullshit.
. = ..()
// We forgive our master
if(user == master)
stance = HOSTILE_STANCE_IDLE
target_mob = null
audible_emote("[pick(sad_emote)].",0)
return
if(!. && retribution)
stance = HOSTILE_STANCE_ATTACK
target_mob = user
@@ -200,9 +207,57 @@
/mob/living/simple_animal/hostile/commanded/attack_hand(mob/living/carbon/human/M as mob)
..()
// We forgive our master
if(M == master)
stance = HOSTILE_STANCE_IDLE
target_mob = null
if(M.a_intent == I_HURT)
audible_emote("[pick(sad_emote)].",0)
return
if(M.a_intent == I_HURT && retribution) //assume he wants to hurt us.
target_mob = M
allowed_targets += M
stance = HOSTILE_STANCE_ATTACK
if(M in friends)
friends -= M
/mob/living/simple_animal/hostile/commanded/attack_generic(var/mob/user, var/damage, var/attack_message)
..()
// We forgive our master
if(user == master)
target_mob = null
stance = HOSTILE_STANCE_IDLE
audible_emote("[pick(sad_emote)].",0)
/mob/living/simple_animal/hostile/commanded/bullet_act(var/obj/item/projectile/P, var/def_zone)
..()
// We forgive our master
if (ismob(P.firer) && P.firer == master)
target_mob = null
stance = HOSTILE_STANCE_IDLE
audible_emote("[pick(sad_emote)].",0)
/mob/living/simple_animal/hostile/commanded/attackby(var/obj/item/O, var/mob/user)
..()
// We forgive our master
if(user == master)
target_mob = null
stance = HOSTILE_STANCE_IDLE
audible_emote("[pick(sad_emote)].",0)
mob/living/simple_animal/hostile/commanded/hitby(atom/movable/AM as mob|obj,var/speed = THROWFORCE_SPEED_DIVISOR)//Standardization and logging -Sieve
..()
if(istype(AM,/obj/))
var/obj/O = AM
if(ismob(O.thrower))
if(O.thrower == master)
target_mob = null
stance = HOSTILE_STANCE_IDLE
audible_emote("[pick(sad_emote)].",0)
@@ -21,6 +21,7 @@
speak = list("Woof!", "Bark!", "AUUUUUU!","AwooOOOoo!")
speak_emote = list("barks", "woofs")
emote_hear = list("barks", "woofs")
sad_emote = list("whines")
attacktext = "bitten"
attack_sound = 'sound/misc/dog_bark.ogg'
@@ -42,16 +43,7 @@
var/name_changed = 0
/mob/living/simple_animal/hostile/commanded/dog/hit_with_weapon(obj/item/O, mob/living/user, var/effective_force, var/hit_zone)
. = ..()
if(!.)
src.emote("barks!")
/mob/living/simple_animal/hostile/commanded/dog/attack_hand(mob/living/carbon/human/M as mob)
..()
if(M.a_intent == I_HURT)
src.emote("barks!")
destroy_surroundings = FALSE
/mob/living/simple_animal/hostile/commanded/dog/verb/befriend()
set name = "Befriend Dog"
@@ -62,8 +62,10 @@
for(var/datum/computer_file/program/P in idle_threads)
P.event_idremoved(1)
user.put_in_hands(card_slot.stored_card)
if(ishuman(user))
user.put_in_hands(card_slot.stored_card)
else
card_slot.stored_card.forceMove(get_turf(src))
card_slot.stored_card = null
update_uis()
to_chat(user, "You remove the card from \the [src]")
@@ -88,7 +90,10 @@
to_chat(user, "There is no intellicard connected to \the [src].")
return
user.put_in_hands(ai_slot.stored_card)
if(ishuman(user))
user.put_in_hands(ai_slot.stored_card)
else
ai_slot.stored_card.forceMove(get_turf(src))
ai_slot.stored_card = null
ai_slot.update_power_usage()
update_uis()
@@ -157,7 +162,7 @@
playsound(user, 'sound/items/Ratchet.ogg', 100, 1)
if (do_after(user, 20))
new /obj/item/stack/material/steel(get_turf(src.loc), steel_sheet_cost)
src.visible_message("\The [user] disassembles \the [src].",
src.visible_message("\The [user] disassembles \the [src].",
"You disassemble \the [src].",
"You hear a ratchet.")
qdel(src)
+10 -3
View File
@@ -1,6 +1,5 @@
// If you add a more comprehensive system, just untick this file.
// WARNING: Only works for up to 17 z-levels!
var/z_levels = 0 // Each bit represents a connection between adjacent levels. So the first bit means levels 1 and 2 are connected.
// If the height is more than 1, we mark all contained levels as connected.
/obj/effect/landmark/map_data/New()
@@ -10,7 +9,7 @@ var/z_levels = 0 // Each bit represents a connection between adjacent levels. S
ASSERT(height <= z)
// Due to the offsets of how connections are stored v.s. how z-levels are indexed, some magic number silliness happened.
for(var/i = (z - height) to (z - 2))
z_levels |= (1 << i)
SSatlas.z_levels |= (1 << i)
qdel(src)
/obj/effect/landmark/map_data/Destroy()
@@ -26,9 +25,13 @@ var/z_levels = 0 // Each bit represents a connection between adjacent levels. S
// Thankfully, no bitwise magic is needed here.
/proc/GetAbove(atom/A)
if (!A.z)
A = get_turf(A)
return A ? GET_ABOVE(A) : null
/proc/GetBelow(atom/A)
if (!A.z)
A = get_turf(A)
return A ? GET_BELOW(A) : null
/proc/GetConnectedZlevels(z)
@@ -57,7 +60,11 @@ var/z_levels = 0 // Each bit represents a connection between adjacent levels. S
return new_entry[zB]
/proc/get_zstep(ref, dir)
/proc/get_zstep(atom/ref, dir)
if (!isloc(ref))
CRASH("Expected atom.")
if (!ref.z)
ref = get_turf(ref)
switch (dir)
if (UP)
. = GET_ABOVE(ref)
+1 -1
View File
@@ -340,7 +340,7 @@
transplant_data["blood_DNA"] = transplant_blood.data["blood_DNA"]
owner = target
loc = owner
src.forceMove(owner)
STOP_PROCESSING(SSprocessing, src)
target.internal_organs |= src
affected.internal_organs |= src
@@ -15,7 +15,7 @@
var/obj/item/ammo_magazine/ammo_magazine
var/magazine_type = /obj/item/ammo_magazine/minigun
/obj/item/minigunpack/update_icon(var/mob/user)
/obj/item/minigunpack/update_icon()
..()
if(armed)
icon_state = "notholstered"
@@ -23,7 +23,6 @@
else
icon_state = "holstered"
item_state = "holstered"
user.update_inv_back()
/obj/item/minigunpack/Initialize()
. = ..()
@@ -72,12 +71,14 @@
return
armed = TRUE
update_icon(user)
update_icon()
user.update_inv_back()
/obj/item/minigunpack/equipped(mob/user, slot)
..()
if(slot != slot_back)
remove_gun()
user.update_inv_back()
/obj/item/minigunpack/proc/remove_gun()
if(!gun)
@@ -85,7 +86,7 @@
if(ismob(gun.loc))
var/mob/M = gun.loc
if(M.drop_from_inventory(gun, src))
update_icon(M)
update_icon()
else
gun.forceMove(src)
update_icon()
@@ -160,7 +161,8 @@
if(source)
to_chat(user, "<span class='notice'>\The [src] snaps back onto \the [source].</span>")
addtimer(CALLBACK(source, /obj/item/minigunpack/.proc/remove_gun), 0)
source.update_icon(user)
source.update_icon()
user.update_inv_back()
/obj/item/weapon/gun/projectile/automatic/rifle/minigun/Move()
..()
+25 -25
View File
@@ -442,28 +442,28 @@
//Frames
/datum/design/item/weapon/ka_frame01
id = "ka_frame01"
req_tech = list(TECH_MATERIAL = 2,TECH_ENGINEERING = 2)
req_tech = list(TECH_MATERIAL = 1,TECH_ENGINEERING = 1)
materials = list(DEFAULT_WALL_MATERIAL = 3000)
build_path = /obj/item/weapon/gun/custom_ka/frame01
sort_string = "TZZFA"
/datum/design/item/weapon/ka_frame02
id = "ka_frame02"
req_tech = list(TECH_MATERIAL = 3,TECH_ENGINEERING = 3)
materials = list(DEFAULT_WALL_MATERIAL = 4000, "silver" = 1000)
req_tech = list(TECH_MATERIAL = 1,TECH_ENGINEERING = 3)
materials = list(DEFAULT_WALL_MATERIAL = 4000)
build_path = /obj/item/weapon/gun/custom_ka/frame02
sort_string = "TZZFB"
/datum/design/item/weapon/ka_frame03
id = "ka_frame03"
req_tech = list(TECH_MATERIAL = 4,TECH_ENGINEERING = 4)
req_tech = list(TECH_MATERIAL = 3,TECH_ENGINEERING = 3)
materials = list(DEFAULT_WALL_MATERIAL = 5000, "silver" = 2000)
build_path = /obj/item/weapon/gun/custom_ka/frame03
sort_string = "TZZFC"
/datum/design/item/weapon/ka_frame04
id = "ka_frame04"
req_tech = list(TECH_MATERIAL = 5,TECH_ENGINEERING = 5)
req_tech = list(TECH_MATERIAL = 6,TECH_ENGINEERING = 5)
materials = list(DEFAULT_WALL_MATERIAL = 5000, "silver" = 2000, "diamond" = 1000)
build_path = /obj/item/weapon/gun/custom_ka/frame04
sort_string = "TZZFD"
@@ -478,35 +478,35 @@
//Cells
/datum/design/item/weapon/ka_cell01
id = "ka_cell01"
req_tech = list(TECH_MATERIAL = 2,TECH_ENGINEERING = 2,TECH_MAGNET = 2,TECH_POWER = 2)
req_tech = list(TECH_MATERIAL = 1,TECH_ENGINEERING = 1,TECH_MAGNET = 1,TECH_POWER = 1)
materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 1000)
build_path = /obj/item/custom_ka_upgrade/cells/cell01
sort_string = "TZZGA"
/datum/design/item/weapon/ka_cell02
id = "ka_cell02"
req_tech = list(TECH_MATERIAL = 3,TECH_ENGINEERING = 3,TECH_MAGNET = 3,TECH_POWER = 3)
materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 1000, "silver" = 1000, "gold" = 1000)
req_tech = list(TECH_MATERIAL = 3,TECH_ENGINEERING = 1,TECH_MAGNET = 1,TECH_POWER = 3)
materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 1000, "silver" = 1000)
build_path = /obj/item/custom_ka_upgrade/cells/cell02
sort_string = "TZZGB"
/datum/design/item/weapon/ka_cell03
id = "ka_cell03"
req_tech = list(TECH_MATERIAL = 4,TECH_ENGINEERING = 4,TECH_MAGNET = 4,TECH_POWER = 4)
req_tech = list(TECH_MATERIAL = 4,TECH_ENGINEERING = 3,TECH_MAGNET = 2,TECH_POWER = 3)
materials = list(DEFAULT_WALL_MATERIAL = 3000, "glass" = 3000, "silver" = 3000, "gold" = 1000)
build_path = /obj/item/custom_ka_upgrade/cells/cell03
sort_string = "TZZGC"
/datum/design/item/weapon/ka_cell04
id = "ka_cell04"
req_tech = list(TECH_MATERIAL = 5,TECH_ENGINEERING = 5,TECH_MAGNET = 5,TECH_POWER = 5)
req_tech = list(TECH_MATERIAL = 5,TECH_ENGINEERING = 4,TECH_MAGNET = 3,TECH_POWER = 5)
materials = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 3000, "silver" = 3000, "gold" = 1000, "uranium" = 5000)
build_path = /obj/item/custom_ka_upgrade/cells/cell04
sort_string = "TZZGD"
/datum/design/item/weapon/ka_cell05
id = "ka_cell05"
req_tech = list(TECH_MATERIAL = 6,TECH_ENGINEERING = 6,TECH_MAGNET = 6,TECH_POWER = 6)
req_tech = list(TECH_MATERIAL = 5,TECH_ENGINEERING = 6,TECH_MAGNET = 5,TECH_POWER = 5, TECH_PHORON = 5)
materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 3000, "silver" = 3000, "gold" = 1000, "phoron" = 5000)
build_path = /obj/item/custom_ka_upgrade/cells/cell05
sort_string = "TZZGE"
@@ -514,35 +514,35 @@
//Barrels
/datum/design/item/weapon/ka_barrel01
id = "ka_barrel01"
req_tech = list(TECH_MATERIAL = 2,TECH_ENGINEERING = 2,TECH_MAGNET = 2)
materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 2000, "gold" = 1000, "phoron" = 500)
req_tech = list(TECH_MATERIAL = 1,TECH_ENGINEERING = 1,TECH_MAGNET = 1, TECH_PHORON = 2)
materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 2000, "phoron" = 500)
build_path = /obj/item/custom_ka_upgrade/barrels/barrel01
sort_string = "TZZHA"
/datum/design/item/weapon/ka_barrel02
id = "ka_barrel02"
req_tech = list(TECH_MATERIAL = 3,TECH_ENGINEERING = 3,TECH_MAGNET = 3)
materials = list(DEFAULT_WALL_MATERIAL = 3000, "glass" = 2000, "gold" = 1000, "phoron" = 500)
req_tech = list(TECH_MATERIAL = 1,TECH_ENGINEERING = 1,TECH_MAGNET = 3, TECH_PHORON = 2)
materials = list(DEFAULT_WALL_MATERIAL = 3000, "glass" = 2000, "phoron" = 500)
build_path = /obj/item/custom_ka_upgrade/barrels/barrel02
sort_string = "TZZHB"
/datum/design/item/weapon/ka_barrel03
id = "ka_barrel03"
req_tech = list(TECH_MATERIAL = 4,TECH_ENGINEERING = 4,TECH_MAGNET = 4)
req_tech = list(TECH_MATERIAL = 4,TECH_ENGINEERING = 3,TECH_MAGNET = 3, TECH_PHORON = 3)
materials = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 2000, "gold" = 2000, "phoron" = 1000)
build_path = /obj/item/custom_ka_upgrade/barrels/barrel03
sort_string = "TZZHC"
/datum/design/item/weapon/ka_barrel04
id = "ka_barrel04"
req_tech = list(TECH_MATERIAL = 5,TECH_ENGINEERING = 5,TECH_MAGNET = 5)
req_tech = list(TECH_MATERIAL = 6,TECH_ENGINEERING = 3,TECH_MAGNET = 5, TECH_PHORON = 4)
materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 3000, "gold" = 3000, "phoron" = 3000, "diamond" = 1000)
build_path = /obj/item/custom_ka_upgrade/barrels/barrel04
sort_string = "TZZHD"
/datum/design/item/weapon/ka_barrel05
id = "ka_barrel05"
req_tech = list(TECH_MATERIAL = 6,TECH_ENGINEERING = 6,TECH_MAGNET = 6)
req_tech = list(TECH_MATERIAL = 6,TECH_ENGINEERING = 5,TECH_MAGNET = 6, TECH_PHORON = 5)
materials = list(DEFAULT_WALL_MATERIAL = 6000, "glass" = 4000, "gold" = 4000, "phoron" = 4000, "diamond" = 2000)
build_path = /obj/item/custom_ka_upgrade/barrels/barrel05
sort_string = "TZZHE"
@@ -551,48 +551,48 @@
/datum/design/item/weapon/ka_upgrade01
id = "ka_upgrade01"
req_tech = list(TECH_POWER = 4,TECH_MAGNET = 4, TECH_DATA = 4)
materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 2000, "gold" = 1000, "diamond" = 1000)
materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 2000, "gold" = 1000)
build_path = /obj/item/custom_ka_upgrade/upgrade_chips/damage
sort_string = "TZZIA"
/datum/design/item/weapon/ka_upgrade02
id = "ka_upgrade02"
req_tech = list(TECH_POWER = 4,TECH_MAGNET = 4, TECH_DATA = 4)
materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 2000, "gold" = 1000, "diamond" = 1000)
materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 2000, "gold" = 1000)
build_path = /obj/item/custom_ka_upgrade/upgrade_chips/firerate
sort_string = "TZZIB"
/datum/design/item/weapon/ka_upgrade03
id = "ka_upgrade03"
req_tech = list(TECH_POWER = 4,TECH_MAGNET = 4, TECH_DATA = 4)
materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 2000, "gold" = 1000, "diamond" = 1000)
materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 2000, "gold" = 1000)
build_path = /obj/item/custom_ka_upgrade/upgrade_chips/effeciency
sort_string = "TZZIC"
/datum/design/item/weapon/ka_upgrade04
id = "ka_upgrade04"
req_tech = list(TECH_POWER = 4,TECH_MAGNET = 4, TECH_DATA = 4)
materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 2000, "gold" = 1000, "diamond" = 1000)
materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 2000, "gold" = 1000)
build_path = /obj/item/custom_ka_upgrade/upgrade_chips/recoil
sort_string = "TZZID"
/datum/design/item/weapon/ka_upgrade05
id = "ka_upgrade05"
req_tech = list(TECH_POWER = 4,TECH_MAGNET = 4, TECH_DATA = 4)
materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 2000, "gold" = 1000, "diamond" = 1000)
materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 2000, "gold" = 1000)
build_path = /obj/item/custom_ka_upgrade/upgrade_chips/focusing
sort_string = "TZZIE"
/datum/design/item/weapon/ka_upgrade06
id = "ka_upgrade06"
req_tech = list(TECH_POWER = 4,TECH_MAGNET = 4, TECH_DATA = 4)
materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 2000, "gold" = 1000, "diamond" = 1000)
materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 2000, "gold" = 1000)
build_path = /obj/item/custom_ka_upgrade/upgrade_chips/capacity
sort_string = "TZZIF"
/datum/design/item/weapon/ka_upgrade07
id = "ka_upgrade07"
req_tech = list(TECH_POWER = 4,TECH_MAGNET = 4, TECH_DATA = 4)
materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 2000, "gold" = 1000, "diamond" = 1000)
materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 2000, "gold" = 1000)
build_path = /obj/item/custom_ka_upgrade/upgrade_chips/explosive
sort_string = "TZZIF"
+3
View File
@@ -13,6 +13,9 @@
verbs -= /obj/structure/table/verb/do_flip
verbs -= /obj/structure/table/proc/do_put
/obj/structure/table/rack/remove_material(obj/item/weapon/wrench/W, mob/user)
src.dismantle(W, user)
/obj/structure/table/rack/update_connections()
return
+52
View File
@@ -56,6 +56,47 @@
-->
<div class="commit sansserif">
<h2 class="date">27 June 2018</h2>
<h3 class="author">Arrow768 updated:</h3>
<ul class="changes bgimages16">
<li class="maptweak">Various plaques have been placed around the station to memorize the odin murders.</li>
</ul>
<h2 class="date">26 June 2018</h2>
<h3 class="author">Lohikar updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">RIG actuator Z-climbing now actually works. Probably.</li>
</ul>
<h3 class="author">PoZe updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Fixed commanded mobs. They will no longer attack people they follow, destroy things around them.</li>
<li class="tweak">Commanded mobs will not attack their master even if they are being attacked by their own master.</li>
</ul>
<h2 class="date">24 June 2018</h2>
<h3 class="author">PoZe updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Airbubble comes now with fully filled engineering extended airtank(6 liters max). Instead of double emergency airtank(10 liters max). It lasts around the same time, even slightly longer(40 minutes).</li>
<li class="tweak">Airbubble now gets ripped and leaks after being shot with projectile weapons.</li>
<li class="bugfix">Airbubbles no longer produces infinite cable restrains.</li>
<li class="bugfix">Users of airbubble can no longer 'magically' get out of bubble with it still remaining closed.</li>
<li class="tweak">No longer it takes time to get in and out of Airbubble.</li>
</ul>
<h2 class="date">22 June 2018</h2>
<h3 class="author">Arrow768 updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">The drone console now lists drones on different station levels.</li>
</ul>
<h2 class="date">20 June 2018</h2>
<h3 class="author">BurgerBB updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Readds disposal spread in disposals. Re-fixes the scrubber vent in the warehouse mail room.</li>
<li class="maptweak">Adds holopads to missing areas without holopads.</li>
<li class="bugfix">Fixed hull shields not covering departures properly.</li>
</ul>
<h2 class="date">18 June 2018</h2>
<h3 class="author">Alberyk updated:</h3>
<ul class="changes bgimages16">
@@ -77,6 +118,10 @@
<li class="rscadd">Gave wrenches to mining drones and mining cyborgs, so synthetics can tinker with custom KAs.</li>
<li class="maptweak">Improved the shuttle and docks design.</li>
<li class="bugfix">Users will now be automatically threatened with a day ban if they mention the phrase 'Organ Damage'.</li>
<li class="bugfix">Fixed library books spawning outside of shelves.</li>
<li class="bugfix">Fixed kinetic accelerators displaying an error when equipped on the waist.</li>
<li class="balance">Balances kinetic accelerator research to prevent easy research exploit. Balances traitor kinetic accelerator to be less powerful.</li>
<li class="maptweak">Tweaked the new library to be more aesthetically pleasing. Removed empty mediwall from the command section of the shuttle. Removed floating light near departures and on the shuttle. Removed pointless holopad on the evac shuttle.</li>
</ul>
<h3 class="author">Code - PoZe, Sprites - DronzTheWolf updated:</h3>
<ul class="changes bgimages16">
@@ -114,6 +159,9 @@
<li class="tweak">IPCs can not be convertable to cult.</li>
<li class="balance">IPCs can no longer draw runes, since they have no blood. They still can use talismans</li>
<li class="tweak">Cultist IPCs are immune to cultist EMP from runes or talismans.</li>
<li class="bugfix">Fixed Journalist Office missing power cables.</li>
<li class="maptweak">Journalist Office is now connected to the bridge subgrid, instead of main grid.</li>
<li class="maptweak">Shuttle wall structures that are on the corners have been moved one tile in different directions, so that it looks good.</li>
</ul>
<h3 class="author">Scheveningen updated:</h3>
<ul class="changes bgimages16">
@@ -121,6 +169,10 @@
<li class="rscdel">Direct flashes no longer stun those who are -not- sentient trees, robots, or bugpeople.</li>
<li class="tweak">Changed how flash break mechanics work. Crappy budget NT tech is more likely to break from overuse.</li>
</ul>
<h3 class="author">ben10083 updated:</h3>
<ul class="changes bgimages16">
<li class="maptweak">Following multiple security breaches and thefts from the vault, NanoTrasen has increased security in the main vault.</li>
</ul>
<h2 class="date">16 June 2018</h2>
<h3 class="author">Arrow768 updated:</h3>
+46
View File
@@ -5561,6 +5561,13 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
- maptweak: Improved the shuttle and docks design.
- bugfix: Users will now be automatically threatened with a day ban if they mention
the phrase 'Organ Damage'.
- bugfix: Fixed library books spawning outside of shelves.
- bugfix: Fixed kinetic accelerators displaying an error when equipped on the waist.
- balance: Balances kinetic accelerator research to prevent easy research exploit.
Balances traitor kinetic accelerator to be less powerful.
- maptweak: Tweaked the new library to be more aesthetically pleasing. Removed empty
mediwall from the command section of the shuttle. Removed floating light near
departures and on the shuttle. Removed pointless holopad on the evac shuttle.
Code - PoZe, Sprites - DronzTheWolf:
- rscadd: Adds airbubble(oxyball) into the game. It is used to protect user inside
from decompressed environment for 30 minutes. Has an air tank attached to it
@@ -5604,9 +5611,48 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
- balance: IPCs can no longer draw runes, since they have no blood. They still can
use talismans
- tweak: Cultist IPCs are immune to cultist EMP from runes or talismans.
- bugfix: Fixed Journalist Office missing power cables.
- maptweak: Journalist Office is now connected to the bridge subgrid, instead of
main grid.
- maptweak: Shuttle wall structures that are on the corners have been moved one
tile in different directions, so that it looks good.
Scheveningen:
- balance: Blinding sources are significantly increased in duration.
- rscdel: Direct flashes no longer stun those who are -not- sentient trees, robots,
or bugpeople.
- tweak: Changed how flash break mechanics work. Crappy budget NT tech is more likely
to break from overuse.
ben10083:
- maptweak: Following multiple security breaches and thefts from the vault, NanoTrasen
has increased security in the main vault.
2018-06-20:
BurgerBB:
- bugfix: Readds disposal spread in disposals. Re-fixes the scrubber vent in the
warehouse mail room.
- maptweak: Adds holopads to missing areas without holopads.
- bugfix: Fixed hull shields not covering departures properly.
2018-06-22:
Arrow768:
- bugfix: The drone console now lists drones on different station levels.
2018-06-24:
PoZe:
- tweak: Airbubble comes now with fully filled engineering extended airtank(6 liters
max). Instead of double emergency airtank(10 liters max). It lasts around the
same time, even slightly longer(40 minutes).
- tweak: Airbubble now gets ripped and leaks after being shot with projectile weapons.
- bugfix: Airbubbles no longer produces infinite cable restrains.
- bugfix: Users of airbubble can no longer 'magically' get out of bubble with it
still remaining closed.
- tweak: No longer it takes time to get in and out of Airbubble.
2018-06-26:
Lohikar:
- bugfix: RIG actuator Z-climbing now actually works. Probably.
PoZe:
- bugfix: Fixed commanded mobs. They will no longer attack people they follow, destroy
things around them.
- tweak: Commanded mobs will not attack their master even if they are being attacked
by their own master.
2018-06-27:
Arrow768:
- maptweak: Various plaques have been placed around the station to memorize the
odin murders.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

+25 -7
View File
@@ -14356,6 +14356,7 @@
/obj/machinery/status_display{
pixel_y = -32
},
/obj/machinery/light,
/turf/simulated/shuttle/floor{
icon_state = "floor3"
},
@@ -15315,6 +15316,7 @@
/obj/machinery/status_display{
pixel_y = -32
},
/obj/machinery/light,
/turf/simulated/shuttle/floor{
icon_state = "floor3"
},
@@ -22389,6 +22391,22 @@
icon_state = "wood_siding1"
},
/area/centcom/spawning)
"Xp" = (
/obj/machinery/light{
dir = 8
},
/obj/structure/closet/medical_wall{
pixel_x = -32
},
/turf/simulated/floor/tiled/ramp,
/area/shuttle/escape/centcom)
"Xq" = (
/obj/machinery/light{
dir = 4;
status = 2
},
/turf/simulated/floor/tiled/ramp,
/area/shuttle/escape/centcom)
(1,1,1) = {"
aa
@@ -64458,7 +64476,7 @@ CG
CQ
VC
Fu
Ga
GQ
CP
CP
OX
@@ -64716,8 +64734,8 @@ CQ
Fn
Fz
GN
HL
GO
GQ
Xp
VH
CP
VQ
@@ -65751,7 +65769,7 @@ VE
Ds
Ds
Ds
DA
Ds
Ds
Ds
Ds
@@ -66001,8 +66019,8 @@ CQ
Ft
FO
Ig
Ma
GO
GQ
Xq
VH
CP
Ds
@@ -66257,7 +66275,7 @@ CG
CQ
DK
VF
Ga
GQ
CP
CP
CP
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+54 -46
View File
@@ -2516,7 +2516,7 @@
},
/obj/machinery/door/firedoor,
/turf/simulated/floor/plating,
/area/mine/explored)
/area/hallway/secondary/exit)
"eK" = (
/obj/structure/grille,
/obj/structure/window/reinforced,
@@ -2528,13 +2528,18 @@
/area/hallway/secondary/exit)
"eL" = (
/obj/structure/grille,
/obj/structure/window/reinforced,
/obj/machinery/door/firedoor{
dir = 2
},
/obj/structure/window/reinforced{
dir = 1
},
/obj/machinery/door/firedoor,
/obj/structure/window/reinforced{
icon_state = "rwindow";
dir = 4
},
/turf/simulated/floor/plating,
/area/mine/explored)
/area/hallway/secondary/exit)
"eM" = (
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 4
@@ -2752,18 +2757,16 @@
/area/hallway/secondary/exit)
"fg" = (
/obj/structure/grille,
/obj/structure/window/reinforced,
/obj/machinery/door/firedoor{
dir = 2
},
/obj/structure/window/reinforced{
dir = 1
},
/obj/structure/window/reinforced{
icon_state = "rwindow";
dir = 4
},
/turf/simulated/floor/plating,
/area/mine/explored)
/area/hallway/secondary/exit)
"fh" = (
/obj/machinery/airlock_sensor{
frequency = 1380;
@@ -5754,9 +5757,6 @@
"ks" = (
/obj/machinery/atmospherics/pipe/simple/hidden/universal,
/obj/effect/floor_decal/industrial/warning/cee,
/obj/machinery/light{
dir = 8
},
/turf/simulated/floor/plating,
/area/hallway/secondary/exit)
"kt" = (
@@ -19308,30 +19308,15 @@
},
/turf/simulated/floor/tiled,
/area/hallway/secondary/exit)
"JH" = (
/obj/structure/grille,
/obj/structure/window/reinforced,
/obj/machinery/door/firedoor{
dir = 2
},
/obj/structure/window/reinforced{
icon_state = "rwindow";
dir = 4
},
/turf/simulated/floor/plating,
/area/mine/explored)
"JI" = (
/obj/machinery/alarm{
dir = 4;
icon_state = "alarm0";
pixel_x = -22;
pixel_y = 0
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/effect/floor_decal/corner/red{
icon_state = "corner_white";
dir = 9
},
/obj/machinery/light{
dir = 8
},
/turf/simulated/floor/tiled,
/area/hallway/secondary/exit)
"JJ" = (
@@ -19401,6 +19386,29 @@
/obj/machinery/space_heater,
/turf/simulated/floor/tiled,
/area/hallway/secondary/exit)
"JQ" = (
/obj/effect/floor_decal/corner/red/full,
/obj/machinery/alarm{
dir = 4;
icon_state = "alarm0";
pixel_x = -22;
pixel_y = 0
},
/turf/simulated/floor/tiled,
/area/hallway/secondary/exit)
"NI" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/cable/green{
d1 = 1;
d2 = 2;
icon_state = "1-2"
},
/obj/effect/floor_decal/plaque{
desc = "Harley O'Ryan Memorial Hall<br>O'Ryan is memorialized here as the first victim of the Odin Killer. She was always in a good mood. She was brought down before her time. <br>August 2439 - May 2460"
},
/turf/simulated/floor/tiled,
/area/hallway/secondary/entry/fore)
(1,1,1) = {"
aa
@@ -46000,7 +46008,7 @@ jq
pZ
kP
qv
kP
NI
qO
kP
rd
@@ -47766,7 +47774,7 @@ aa
aa
aa
aa
ab
eI
fT
jU
kY
@@ -48035,7 +48043,7 @@ jx
kr
Jf
lB
kZ
JQ
lb
Jz
Jz
@@ -48280,7 +48288,7 @@ aa
aa
aa
aa
eL
eK
fR
JA
hC
@@ -48296,7 +48304,7 @@ la
lx
JA
kZ
eL
eK
aa
aa
aa
@@ -48537,7 +48545,7 @@ aa
aa
aa
aa
eL
eK
fU
gD
iW
@@ -48553,7 +48561,7 @@ ja
lw
Jr
JK
eL
eK
aa
aa
aa
@@ -48794,7 +48802,7 @@ aa
aa
aa
aa
eL
eK
gB
gG
iY
@@ -48810,7 +48818,7 @@ lz
Ju
Jy
JL
eL
eK
aa
aa
aa
@@ -49051,7 +49059,7 @@ aa
aa
aa
aa
eL
eK
fU
kw
kq
@@ -49067,7 +49075,7 @@ iZ
Jv
kw
JM
eL
eK
aa
aa
aa
@@ -49308,7 +49316,7 @@ aa
aa
aa
aa
eL
eK
fU
kw
Jp
@@ -49324,7 +49332,7 @@ ja
JE
kw
JM
eL
eK
aa
aa
aa
@@ -49565,7 +49573,7 @@ aa
aa
aa
aa
eL
eK
Jh
JF
hA
@@ -49581,7 +49589,7 @@ JC
Js
JJ
JN
eL
eK
aa
aa
aa
@@ -49822,7 +49830,7 @@ aa
aa
aa
aa
fg
eL
is
gA
kt
@@ -49838,7 +49846,7 @@ jX
Jw
Jx
is
JH
fg
aa
aa
aa
+4 -4
View File
@@ -3,11 +3,11 @@
full_name = "Runtime Debugging Station"
path = "runtime"
station_levels = list(1)
station_levels = list(1, 2, 3)
admin_levels = list()
contact_levels = list(1)
player_levels = list(1)
accessible_z_levels = list()
contact_levels = list(1, 2, 3)
player_levels = list(1, 2, 3)
accessible_z_levels = list(1, 2, 3)
station_name = "NSS Runtime"
station_short = "Runtime"
-3
View File
@@ -1,8 +1,5 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/obj/effect/landmark/map_data{
height = 2
},
/turf/template_noop,
/area/template_noop)
"b" = (
+1 -1
View File
@@ -1,7 +1,7 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/obj/effect/landmark/map_data{
height = 2
height = 3
},
/turf/template_noop,
/area/template_noop)