Merge branch 'master' of https://github.com/tgstation/tgstation into multiplierspeed

This commit is contained in:
Joan Lung
2016-12-09 18:03:43 -05:00
105 changed files with 868 additions and 249 deletions
+424
View File
@@ -0,0 +1,424 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aa" = (
/turf/open/space,
/area/space)
"ab" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/escape)
"ac" = (
/obj/structure/grille,
/obj/structure/window/shuttle,
/turf/open/floor/plating,
/area/shuttle/escape)
"ad" = (
/turf/open/space,
/area/shuttle/escape)
"ae" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/shuttle/escape)
"af" = (
/obj/structure/table/wood,
/turf/open/floor/carpet,
/area/shuttle/escape)
"ag" = (
/obj/structure/chair/comfy/brown{
tag = "icon-comfychair (NORTH)";
icon_state = "comfychair";
dir = 1
},
/turf/open/floor/carpet,
/area/shuttle/escape)
"ah" = (
/obj/machinery/computer/emergency_shuttle,
/turf/open/floor/carpet,
/area/shuttle/escape)
"ai" = (
/obj/structure/table/wood,
/obj/structure/window/reinforced{
dir = 4
},
/turf/open/floor/carpet,
/area/shuttle/escape)
"aj" = (
/obj/machinery/computer/atmos_alert,
/turf/open/floor/carpet,
/area/shuttle/escape)
"ak" = (
/obj/structure/chair/comfy/brown{
tag = "icon-comfychair (WEST)";
icon_state = "comfychair";
dir = 8
},
/turf/open/floor/carpet,
/area/shuttle/escape)
"al" = (
/turf/open/floor/carpet,
/area/shuttle/escape)
"am" = (
/obj/structure/chair/comfy/brown{
tag = "icon-comfychair (EAST)";
icon_state = "comfychair";
dir = 4
},
/obj/structure/window/reinforced{
dir = 4
},
/obj/structure/window/reinforced,
/turf/open/floor/carpet,
/area/shuttle/escape)
"an" = (
/obj/machinery/computer/crew,
/turf/open/floor/carpet,
/area/shuttle/escape)
"ao" = (
/obj/item/device/radio/intercom{
name = "Station Intercom (General)";
pixel_x = 0;
pixel_y = -29
},
/turf/open/floor/carpet,
/area/shuttle/escape)
"ap" = (
/obj/machinery/button/flasher{
id = "cockpit_flasher";
pixel_x = 6;
pixel_y = -24
},
/obj/structure/table/wood/poker,
/turf/open/floor/carpet,
/area/shuttle/escape)
"aq" = (
/obj/structure/window/reinforced{
dir = 4
},
/turf/open/floor/carpet,
/area/shuttle/escape)
"ar" = (
/obj/machinery/door/airlock/shuttle{
name = "Emergency Shuttle Airlock";
req_access_txt = "2"
},
/turf/open/floor/plasteel/shuttle/red,
/area/shuttle/escape)
"as" = (
/obj/machinery/door/airlock/glass{
name = "Emergency Shuttle Cockpit";
req_access_txt = "19"
},
/turf/open/floor/carpet,
/area/shuttle/escape)
"at" = (
/obj/machinery/door/airlock/shuttle{
name = "Emergency Shuttle Airlock";
req_access_txt = "2"
},
/turf/open/floor/plasteel/shuttle/white,
/area/shuttle/escape)
"au" = (
/obj/structure/chair,
/turf/open/floor/mineral/plastitanium/brig,
/area/shuttle/escape)
"av" = (
/obj/machinery/flasher{
id = "cockpit_flasher";
pixel_x = 6;
pixel_y = 24
},
/turf/open/floor/plasteel/bar,
/area/shuttle/escape)
"aw" = (
/turf/open/floor/plasteel/bar,
/area/shuttle/escape)
"ax" = (
/turf/open/floor/plasteel/shuttle/white,
/area/shuttle/escape)
"ay" = (
/obj/machinery/flasher{
id = "shuttle_flasher";
pixel_x = -24;
pixel_y = 6
},
/obj/machinery/button/flasher{
id = "shuttle_flasher";
pixel_x = -24;
pixel_y = -6
},
/turf/open/floor/mineral/plastitanium/brig,
/area/shuttle/escape)
"az" = (
/turf/open/floor/mineral/plastitanium/brig,
/area/shuttle/escape)
"aA" = (
/obj/structure/grille,
/obj/machinery/door/airlock/glass{
name = "Emergency Shuttle Brig";
req_access_txt = "2"
},
/turf/open/floor/plating,
/area/shuttle/escape)
"aB" = (
/obj/structure/grille/broken,
/turf/open/floor/plasteel,
/area/shuttle/escape)
"aC" = (
/turf/closed/wall/mineral/titanium/interior,
/area/shuttle/escape)
"aD" = (
/obj/machinery/door/airlock/shuttle{
name = "Emergency Shuttle Airlock";
req_access_txt = "2"
},
/turf/open/floor/plating,
/area/shuttle/escape)
"aE" = (
/obj/structure/extinguisher_cabinet{
pixel_y = -30
},
/obj/structure/table,
/obj/item/weapon/extinguisher,
/obj/item/weapon/crowbar,
/turf/open/floor/mineral/plastitanium/brig,
/area/shuttle/escape)
"aF" = (
/obj/structure/chair{
dir = 1
},
/turf/open/floor/mineral/plastitanium/brig,
/area/shuttle/escape)
"aG" = (
/obj/item/weapon/twohanded/required/kirbyplants/random,
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aH" = (
/obj/structure/chair,
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aI" = (
/obj/structure/table,
/obj/item/weapon/storage/firstaid/regular,
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aJ" = (
/obj/structure/window/reinforced{
dir = 4
},
/obj/item/device/radio/intercom{
name = "Station Intercom (General)";
pixel_x = 0;
pixel_y = 23
},
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aK" = (
/obj/structure/window/reinforced{
dir = 4
},
/turf/open/floor/plasteel/shuttle/white,
/area/shuttle/escape)
"aL" = (
/obj/machinery/door/airlock/shuttle{
name = "Emergency Shuttle Airlock"
},
/obj/docking_port/mobile/emergency{
timid = 1;
name = "Box emergency shuttle"
},
/turf/open/floor/plating,
/area/shuttle/escape)
"aM" = (
/obj/structure/chair{
dir = 1
},
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aN" = (
/obj/structure/window/reinforced{
dir = 4
},
/obj/structure/chair{
dir = 4
},
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aO" = (
/obj/structure/table/wood,
/obj/item/toy/cards/deck/cas/black,
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aP" = (
/obj/structure/table/wood,
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aQ" = (
/obj/structure/table/wood,
/obj/item/toy/cards/deck/cas,
/turf/open/floor/plasteel/shuttle/white,
/area/shuttle/escape)
"aR" = (
/obj/structure/chair/comfy/brown{
dir = 8
},
/turf/open/floor/plasteel/shuttle/white,
/area/shuttle/escape)
"aS" = (
/obj/structure/table_frame,
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aT" = (
/obj/structure/table/wood,
/obj/item/weapon/storage/firstaid/fire,
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aU" = (
/obj/structure/chair{
dir = 1
},
/obj/structure/extinguisher_cabinet{
pixel_y = -30
},
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aV" = (
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aW" = (
/obj/structure/table,
/obj/machinery/recharger,
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aX" = (
/obj/structure/window/reinforced{
dir = 4
},
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aY" = (
/turf/open/floor/plasteel/grimy,
/area/shuttle/escape)
"aZ" = (
/obj/structure/chair/wood{
tag = "icon-wooden_chair (NORTH)";
icon_state = "wooden_chair";
dir = 1
},
/turf/open/floor/plasteel/grimy,
/area/shuttle/escape)
"ba" = (
/obj/machinery/door/airlock/shuttle{
name = "Emergency Shuttle Airlock"
},
/turf/open/floor/plating,
/area/shuttle/escape)
"bb" = (
/obj/structure/extinguisher_cabinet{
pixel_x = 0;
pixel_y = -30
},
/turf/open/floor/plasteel/bar,
/area/shuttle/escape)
"bc" = (
/obj/structure/window/reinforced{
dir = 4
},
/obj/structure/barricade/wooden,
/turf/open/floor/plasteel/bar,
/area/shuttle/escape)
"bd" = (
/obj/machinery/status_display,
/turf/closed/wall/mineral/titanium,
/area/shuttle/escape)
"be" = (
/obj/machinery/door/airlock{
name = "Unisex Restrooms";
req_access_txt = "0"
},
/turf/open/floor/plasteel/freezer,
/area/shuttle/escape)
"bf" = (
/turf/open/floor/plasteel/freezer,
/area/shuttle/escape)
"bg" = (
/obj/structure/extinguisher_cabinet{
pixel_y = 30
},
/turf/open/floor/plasteel/freezer,
/area/shuttle/escape)
"bh" = (
/obj/machinery/door/airlock{
name = "Unit 1"
},
/turf/open/floor/plasteel/freezer,
/area/shuttle/escape)
"bi" = (
/obj/machinery/door/airlock{
name = "Unit 2"
},
/turf/open/floor/plasteel/freezer,
/area/shuttle/escape)
"bj" = (
/obj/machinery/door/airlock{
name = "Unit B"
},
/turf/open/floor/plasteel/freezer,
/area/shuttle/escape)
"bk" = (
/obj/structure/toilet{
tag = "icon-toilet00 (EAST)";
icon_state = "toilet00";
dir = 4
},
/turf/open/floor/plasteel/freezer,
/area/shuttle/escape)
"bl" = (
/obj/machinery/recharge_station,
/turf/open/floor/plasteel/freezer,
/area/shuttle/escape)
"bm" = (
/obj/structure/window/reinforced{
dir = 1
},
/obj/structure/shuttle/engine/heater,
/turf/open/floor/plating/airless,
/area/shuttle/escape)
"bn" = (
/obj/structure/window/reinforced{
dir = 1
},
/obj/structure/shuttle/engine/heater,
/obj/structure/window/reinforced{
dir = 4
},
/turf/open/floor/plating/airless,
/area/shuttle/escape)
"bo" = (
/obj/structure/shuttle/engine/propulsion,
/turf/open/floor/plating/airless,
/area/shuttle/escape)
(
1,
1,
1) = {"
aaaaabacacacacacadaaaa
aaabaeafagahagaiadadaa
aaabajakalalalamadadaa
aaabanalaoapaqadadadaa
abacaracababasacatacad
abacauacacavawacaxacad
abayazazaAaBacaCaxaCab
aDaEaFaFacaGaHaHaxaIaJ
ababababaeaxaxaxaxaxaK
aLaMaMaMaMaxaMaMaMaMaN
abaBacacacaxacacacacaN
acaHaOaPaHaxaHaHaHaHaN
acaxaQaRaxaxaxaxaxaxaK
acaSaTaPaMaMaMaUaVaWaX
abaYaZaZacacacabababab
baawbbawawawbcadadadad
ababababbdbeaeadadadad
babfbfbgbfbfabadadadad
abbhabbiabbjabadadadad
abbkabbkabblabadadadad
ababbmbmbmbmbnadadadad
aaabboboboboboadadadaa
"}
+2
View File
@@ -114,6 +114,8 @@
#define is_cleanable(A) (istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/rune)) //if something is cleanable
#define isorgan(A) (istype(A, /obj/item/organ))
//Assemblies
#define isassembly(O) (istype(O, /obj/item/device/assembly))
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
/*
* A large number of misc global procs.
+7
View File
@@ -91,6 +91,9 @@
leave_all_huds() //leave all the huds in the old body, so it won't get huds if somebody else enters it
current = new_character //associate ourself with our new body
new_character.mind = src //and associate our new body with ourself
if(iscarbon(new_character))
var/mob/living/carbon/C = new_character
C.last_mind = src
transfer_antag_huds(hud_to_transfer) //inherit the antag HUD
transfer_actions(new_character)
@@ -1533,6 +1536,10 @@
mind.name = real_name
mind.current = src
/mob/living/carbon/mind_initialize()
..()
last_mind = mind
//HUMAN
/mob/living/carbon/human/mind_initialize()
..()
+7
View File
@@ -118,6 +118,13 @@
credit_cost = 1000
description = "Despite it's namesake, this shuttle is actually only slightly smaller than standard, and still complete with a brig and medbay."
/datum/map_template/shuttle/emergency/fuck
suffix = "scrapheap"
name = "Standby Evacuation Vessel \"Scrapheap Challenge\""
credit_cost = -1000
description = "Due to a lack of functional emergency shuttles, we bought this second hand from a scrapyard and pressed it into service. Please do not lean to heavily on the exterior windows, they are fragile."
admin_notes = "An abomination with no functional medbay, sections missing, and some very fragile windows. Surprisingly airtight."
/datum/map_template/shuttle/emergency/narnar
suffix = "narnar"
name = "Shuttle 667"
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
//Few global vars to track the blob
var/list/blobs = list() //complete list of all blobs made.
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
/datum/game_mode/blob/send_intercept(report = 0)
var/intercepttext = ""
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
/datum/game_mode
var/list/datum/mind/cult = list()
@@ -33,8 +33,10 @@
if(!l_state)
l_state = l_hand.icon_state
var/image/l_hand_image = l_hand.build_worn_icon(state = l_state, default_layer = DEVIL_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE)
var/image/l_hand_image = l_hand.build_worn_icon(state = l_state, default_layer = DEVIL_HANDS_LAYER, default_icon_file = l_hand.righthand_file, isinhands = TRUE)
var/reflect = matrix(-1, 0, 0, 0, 1, 0)
l_hand_image.transform = reflect
hands_overlays += l_hand_image
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
/*
* GAMEMODES (by Rastaf0)
@@ -10,15 +10,15 @@
desc = "Use to send a declaration of hostilities to the target, delaying your shuttle departure for 20 minutes while they prepare for your assault. \
Such a brazen move will attract the attention of powerful benefactors within the Syndicate, who will supply your team with a massive amount of bonus telecrystals. \
Must be used within five minutes, or your benefactors will lose interest."
var/declaring_war = 0
var/declaring_war = FALSE
/obj/item/device/nuclear_challenge/attack_self(mob/living/user)
if(!check_allowed(user))
return
declaring_war = 1
var/are_you_sure = alert(user, "Consult your team carefully before you declare war on [station_name()]]. Are you sure you want to alert the enemy crew? You have [round((world.time-round_start_time - CHALLENGE_TIME_LIMIT)/10)] seconds to decide", "Declare war?", "Yes", "No")
declaring_war = 0
declaring_war = TRUE
var/are_you_sure = alert(user, "Consult your team carefully before you declare war on [station_name()]]. Are you sure you want to alert the enemy crew? You have [-round((world.time-round_start_time - CHALLENGE_TIME_LIMIT)/10)] seconds to decide", "Declare war?", "Yes", "No")
declaring_war = FALSE
if(!check_allowed(user))
return
@@ -28,17 +28,20 @@
return
var/war_declaration = "[user.real_name] has declared his intent to utterly destroy [station_name()] with a nuclear device, and dares the crew to try and stop them."
var/custom_threat = alert(user, "Do you want to customize your declaration?", "Customize?", "Yes", "No")
if(custom_threat == "No")
return
declaring_war = TRUE
var/custom_threat = alert(user, "Do you want to customize your declaration?", "Customize?", "Yes", "No")
declaring_war = FALSE
if(!check_allowed(user))
return
war_declaration = stripped_input(user, "Insert your custom declaration", "Declaration")
if(custom_threat == "Yes")
declaring_war = TRUE
war_declaration = stripped_input(user, "Insert your custom declaration", "Declaration")
declaring_war = FALSE
if(!check_allowed(user) && !war_declaration)
if(!check_allowed(user) || !war_declaration)
return
priority_announce(war_declaration, title = "Declaration of War", sound = 'sound/machines/Alarm.ogg')
@@ -78,4 +81,4 @@
#undef CHALLENGE_TELECRYSTALS
#undef CHALLENGE_MIN_PLAYERS
#undef CHALLENGE_SHUTTLE_DELAY
#undef CHALLENGE_SHUTTLE_DELAY
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
var/hsboxspawn = 1
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
//Keeps track of the time for the ID console. Having it as a global variable prevents people from dismantling/reassembling it to
//increase the slots of many jobs.
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
var/const/CALL_SHUTTLE_REASON_LENGTH = 12
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
/obj/machinery/computer/upload
var/mob/living/silicon/current = null //The target of future law uploads
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
/obj/machinery/computer/med_data//TODO:SANITY
name = "medical records console"
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
/obj/machinery/computer/robotics
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
/obj/machinery/computer/secure_data//TODO:SANITY
name = "security records console"
+1 -1
View File
@@ -8,7 +8,7 @@
#define PRESET_MEDIUM 3000
#define PRESET_LONG 6000
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
///////////////////////////////////////////////////////////////////////////////////////////////
// Brig Door control displays.
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
/obj/machinery/computer/telecomms/server
name = "telecommunications server monitoring console"
+7 -7
View File
@@ -100,10 +100,10 @@
return
if(!check_hub_connection())
say("<span class='warning'>Error: Unable to detect hub.</span>")
say("Error: Unable to detect hub.")
return
if(calibrating)
say("<span class='warning'>Error: Calibration in progress. Stand by.</span>")
say("Error: Calibration in progress. Stand by.")
return
if(href_list["regimeset"])
@@ -123,21 +123,21 @@
target = get_turf(locked.locked_location)
if(href_list["calibrate"])
if(!target)
say("<span class='danger'>Error: No target set to calibrate to.</span>")
say("Error: No target set to calibrate to.")
return
if(power_station.teleporter_hub.calibrated || power_station.teleporter_hub.accurate >= 3)
say("<span class='warning'>Hub is already calibrated!</span>")
say("Hub is already calibrated!")
return
say("<span class='notice'>Processing hub calibration to target...</span>")
say("Processing hub calibration to target...")
calibrating = 1
spawn(50 * (3 - power_station.teleporter_hub.accurate)) //Better parts mean faster calibration
calibrating = 0
if(check_hub_connection())
power_station.teleporter_hub.calibrated = 1
say("<span class='notice'>Calibration complete.</span>")
say("Calibration complete.")
else
say("<span class='danger'>Error: Unable to detect hub.</span>")
say("Error: Unable to detect hub.")
updateDialog()
updateDialog()
-1
View File
@@ -4,7 +4,6 @@ var/global/image/fire_overlay = image("icon" = 'icons/effects/fire.dmi', "icon_s
name = "item"
icon = 'icons/obj/items.dmi'
var/item_state = null
var/lefthand_file = 'icons/mob/inhands/items_lefthand.dmi'
var/righthand_file = 'icons/mob/inhands/items_righthand.dmi'
//Dimensions of the icon file used when this item is worn, eg: hats.dmi
@@ -89,8 +89,18 @@
else
user << "<span class='warning'>You need one sheet of glass to replace lights!</span>"
if(istype(W, /obj/item/weapon/shard))
if(uses >= max_uses)
user << "<span class='warning'>[src.name] is full.</span>"
return
if(!user.unEquip(W))
return
AddUses(round(increment*0.75))
user << "<span class='notice'>You insert a shard of glass into the [src.name]. You have [uses] light\s remaining.</span>"
qdel(W)
return
if(istype(W, /obj/item/weapon/light))
var/new_bulbs = 0
var/obj/item/weapon/light/L = W
if(L.status == 0) // LIGHT OKAY
if(uses < max_uses)
@@ -101,11 +111,9 @@
else
if(!user.unEquip(W))
return
new_bulbs += AddShards(1)
user << "<span class='notice'>You insert the [L.name] into the [src.name]</span>"
AddShards(1, user)
qdel(L)
if(new_bulbs != 0)
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
user << "<span class='notice'>You insert the [L.name] into the [src.name]. " + status_string() + "</span>"
return
if(istype(W, /obj/item/weapon/storage))
@@ -126,7 +134,7 @@
else if(L.status == LIGHT_BROKEN || L.status == LIGHT_BURNED)
replaced_something = TRUE
AddShards(1)
AddShards(1, user)
qdel(L)
if(!found_lightbulbs)
@@ -146,7 +154,6 @@
/obj/item/device/lightreplacer/attack_self(mob/user)
user << status_string()
/obj/item/device/lightreplacer/update_icon()
icon_state = "lightreplacer[emagged]"
@@ -154,7 +161,6 @@
return "It has [uses] light\s remaining (plus [bulb_shards] fragment\s)."
/obj/item/device/lightreplacer/proc/Use(mob/user)
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
AddUses(-1)
return 1
@@ -163,12 +169,15 @@
/obj/item/device/lightreplacer/proc/AddUses(amount = 1)
uses = Clamp(uses + amount, 0, max_uses)
/obj/item/device/lightreplacer/proc/AddShards(amount = 1)
/obj/item/device/lightreplacer/proc/AddShards(amount = 1, user)
bulb_shards += amount
var/new_bulbs = round(bulb_shards / shards_required)
if(new_bulbs > 0)
AddUses(new_bulbs)
bulb_shards = bulb_shards % shards_required
if(new_bulbs != 0)
user << "<span class='notice'>\The [src] has fabricated a new bulb from the broken glass it has stored. It now has [uses] uses.</span>"
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
return new_bulbs
/obj/item/device/lightreplacer/proc/Charge(var/mob/user)
@@ -185,11 +194,7 @@
U << "<span class='notice'>You replace the [target.fitting] with \the [src].</span>"
if(target.status != LIGHT_EMPTY)
var/new_bulbs = AddShards(1)
if(new_bulbs != 0)
U << "<span class='notice'>\The [src] has fabricated a new bulb from the broken bulbs it has stored. It now has [uses] uses.</span>"
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
AddShards(1, U)
target.status = LIGHT_EMPTY
target.update()
@@ -223,11 +228,8 @@
name = initial(name)
update_icon()
//Can you use it?
/obj/item/device/lightreplacer/proc/CanUse(mob/living/user)
src.add_fingerprint(user)
//Not sure what else to check for. Maybe if clumsy?
if(uses > 0)
return 1
else
@@ -330,7 +330,9 @@
/obj/item/weapon/shard/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/weldingtool))
if(istype(I, /obj/item/device/lightreplacer))
I.attackby(src, user)
else if(istype(I, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = I
if(WT.remove_fuel(0, user))
var/obj/item/stack/sheet/glass/NG = new (user.loc)
@@ -367,4 +369,4 @@
H.visible_message("<span class='danger'>[H] slides on the broken glass!</span>", \
"<span class='userdanger'>You slide on the broken glass!</span>")
cooldown = world.time
cooldown = world.time
-1
View File
@@ -135,7 +135,6 @@
icon = 'icons/obj/guns/projectile.dmi'
icon_state = "revolver"
item_state = "gun"
lefthand_file = 'icons/mob/inhands/guns_lefthand.dmi'
righthand_file = 'icons/mob/inhands/guns_righthand.dmi'
flags = CONDUCT
slot_flags = SLOT_BELT
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/*
CONTAINS:
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/*
CONTAINS:
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/obj/machinery/implantchair
name = "mindshield implanter"
@@ -7,7 +7,6 @@
icon = 'icons/obj/pneumaticCannon.dmi'
icon_state = "pneumaticCannon"
item_state = "bulldog"
lefthand_file = 'icons/mob/inhands/guns_lefthand.dmi'
righthand_file = 'icons/mob/inhands/guns_righthand.dmi'
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 60, acid = 50)
var/maxWeightClass = 20 //The max weight of items that can fit into the cannon
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/obj/item/weapon/storage/lockbox
name = "lockbox"
@@ -367,10 +367,10 @@
W.plane = initial(W.plane)
W.loc = new_location
if(usr)
orient2hud(usr)
if(usr.s_active)
usr.s_active.show_to(usr)
for(var/mob/M in can_see_contents())
orient2hud(M)
show_to(M)
if(W.maptext)
W.maptext = ""
W.on_exit_storage(src)
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/* Tools!
* Note: Multitools are /obj/item/device
@@ -1,44 +1,5 @@
/obj/item/weapon
var/unique_rename = 0 //allows renaming with a pen
/obj/item/weapon/examine(mob/user)
..()
if(unique_rename)
user << "<span class='notice'>Use a pen on it to rename it or change its description.</span>"
/obj/item/weapon/attackby(obj/item/I, mob/user, params)
if(unique_rename)
if(istype(I, /obj/item/weapon/pen))
var/penchoice = alert("What would you like to edit?", "Rename or change description?", "Rename", "Change description", "Cancel")
if(!qdeleted(src) && user.canUseTopic(src, BE_CLOSE))
if(penchoice == "Rename")
rename_weapon(user)
if(penchoice == "Change description")
redesc_weapon(user)
..()
/obj/item/weapon/proc/rename_weapon(mob/M)
var/oldname = name
var/input = stripped_input(M,"What do you want to name /the [name]?", ,"", MAX_NAME_LEN)
if(!qdeleted(src) && M.canUseTopic(src, BE_CLOSE) && input != "")
name = input
M << "/The [oldname] has successfully been renamed to /the [input]."
return
else
return
/obj/item/weapon/proc/redesc_weapon(mob/M)
var/input = stripped_input(M,"Describe your object here", ,"", 100)
if(!qdeleted(src) && M.canUseTopic(src, BE_CLOSE) && input != "")
desc = input
M << "You have successfully changed /the [name]'s description."
return
else
return
/obj/item/weapon/banhammer
desc = "A banhammer"
name = "banhammer"
+42
View File
@@ -25,6 +25,7 @@
var/persistence_replacement = null //have something WAY too amazing to live to the next round? Set a new path here. Overuse of this var will make me upset.
var/is_frozen = FALSE
var/unique_rename = 0 // can you customize the description/name of the thing?
/obj/New()
@@ -187,3 +188,44 @@
/obj/vv_get_dropdown()
. = ..()
.["Delete all of type"] = "?_src_=vars;delall=\ref[src]"
/obj/examine(mob/user)
..()
if(unique_rename)
user << "<span class='notice'>Use a pen on it to rename it or change its description.</span>"
/obj/attackby(obj/item/I, mob/user, params)
if(unique_rename)
if(istype(I, /obj/item/weapon/pen))
var/penchoice = alert("What would you like to edit?", "Rename or change description?", "Rename", "Change description", "Cancel")
if(!qdeleted(src) && user.canUseTopic(src, BE_CLOSE))
if(penchoice == "Rename")
rename_obj(user)
if(penchoice == "Change description")
redesc_obj(user)
..()
/obj/proc/rename_obj(mob/M)
var/input = stripped_input(M,"What do you want to name \the [name]?", ,"", MAX_NAME_LEN)
var/oldname = name
if(!qdeleted(src) && M.canUseTopic(src, BE_CLOSE) && input != "")
if(oldname == input)
M << "You changed \the [name] to... well... \the [name]."
return
else
name = input
M << "\The [oldname] has been successfully been renamed to \the [input]."
return
else
return
/obj/proc/redesc_obj(mob/M)
var/input = stripped_input(M,"Describe \the [name] here", ,"", 100)
if(!qdeleted(src) && M.canUseTopic(src, BE_CLOSE) && input != "")
desc = input
M << "You have successfully changed \the [name]'s description."
return
else
return
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/datum/song
var/name = "Untitled"
+7 -3
View File
@@ -121,7 +121,7 @@
return 1
/turf/open/handle_slip(mob/living/carbon/C, s_amount, w_amount, obj/O, lube)
if(C.movement_type & FLYING)
if((C.movement_type & FLYING) || C.slipping)
return 0
if(has_gravity(src))
var/obj/buckled_obj
@@ -144,25 +144,29 @@
C.accident(I)
var/olddir = C.dir
if(!(lube&SLIDE_ICE))
if(!(lube & SLIDE_ICE))
C.Stun(s_amount)
C.Weaken(w_amount)
C.stop_pulling()
else
C.Stun(1)
if(buckled_obj)
buckled_obj.unbuckle_mob(C)
step(buckled_obj, olddir)
else if(lube&SLIDE)
C.slipping = TRUE
for(var/i=1, i<5, i++)
spawn (i)
if(i == 4)
C.slipping = FALSE
step(C, olddir)
C.spin(1,1)
else if(lube&SLIDE_ICE)
C.slipping = TRUE
spawn(1)
step(C, olddir)
C.slipping = FALSE
step(C, olddir)
return 1
/turf/open/proc/MakeSlippery(wet_setting = TURF_WET_WATER, min_wet_time = 0, wet_time_to_add = 0) // 1 = Water, 2 = Lube, 3 = Ice, 4 = Permafrost, 5 = Slide
@@ -30,11 +30,11 @@
user << "<span class='notice'>The support rods have been <i>sliced through</i>, and the outer sheath is <b>connected loosely</b> to the girder.</span>"
/turf/closed/wall/r_wall/break_wall()
new sheet_type(loc)
new sheet_type(src)
return (new /obj/structure/girder/reinforced(src))
/turf/closed/wall/r_wall/devastate_wall()
new sheet_type(loc)
new sheet_type(src)
new /obj/item/stack/sheet/metal(src, 2)
/turf/closed/wall/r_wall/attack_animal(mob/living/simple_animal/M)
+2 -2
View File
@@ -43,12 +43,12 @@
ChangeTurf(/turf/open/floor/plating)
/turf/closed/wall/proc/break_wall()
var/obj/item/stack/sheet/builtin_sheet = new sheet_type(loc)
var/obj/item/stack/sheet/builtin_sheet = new sheet_type(src)
builtin_sheet.amount = 2
return (new /obj/structure/girder(src))
/turf/closed/wall/proc/devastate_wall()
var/obj/item/stack/sheet/builtin_sheet = new sheet_type(loc)
var/obj/item/stack/sheet/builtin_sheet = new sheet_type(src)
builtin_sheet.amount = 2
new /obj/item/stack/sheet/metal(src)
@@ -3,20 +3,13 @@
for(var/A in typesof(/obj/item))
var/obj/item/O = new A( locate(1,1,1) )
if(!O) continue
var/icon/IL = new(O.lefthand_file)
var/list/Lstates = IL.IconStates()
var/icon/IR = new(O.righthand_file)
var/list/Rstates = IR.IconStates()
var/icon/J = new(O.icon)
var/list/istates = J.IconStates()
if(!Lstates.Find(O.icon_state) && !Lstates.Find(O.item_state))
if(O.icon_state)
text += "[O.type] WANTS IN LEFT HAND CALLED\n\"[O.icon_state]\".\n"
if(!Rstates.Find(O.icon_state) && !Rstates.Find(O.item_state))
if(O.icon_state)
text += "[O.type] WANTS IN RIGHT HAND CALLED\n\"[O.icon_state]\".\n"
if(O.icon_state)
if(!istates.Find(O.icon_state))
text += "[O.type] MISSING NORMAL ICON CALLED\n\"[O.icon_state]\" IN \"[O.icon]\"\n"
+59
View File
@@ -220,3 +220,62 @@
/obj/item/device/assembly/flash/armimplant/proc/cooldown()
overheat = FALSE
/obj/item/device/assembly/flash/shield
name = "strobe shield"
desc = "A shield with a built in, high intensity light capable of blinding and disorienting suspects. Takes regular handheld flashes as bulbs."
icon = 'icons/obj/weapons.dmi'
icon_state = "flashshield"
item_state = "flashshield"
slot_flags = SLOT_BACK
force = 10
throwforce = 5
throw_speed = 2
throw_range = 3
w_class = WEIGHT_CLASS_BULKY
materials = list(MAT_GLASS=7500, MAT_METAL=1000)
origin_tech = "materials=3;combat=4"
attack_verb = list("shoved", "bashed")
block_chance = 50
armor = list(melee = 50, bullet = 50, laser = 50, energy = 0, bomb = 30, bio = 0, rad = 0, fire = 80, acid = 70)
/obj/item/device/assembly/flash/shield/flash_recharge(interval=10)
if(times_used >= 4)
burn_out()
return 0
return 1
/obj/item/device/assembly/flash/shield/attackby(obj/item/weapon/W, mob/user)
if(istype(W, /obj/item/device/assembly/flash/handheld))
var/obj/item/device/assembly/flash/handheld/flash = W
if(flash.crit_fail)
user << "No sense replacing it with a broken bulb."
return
else
user << "You begin to replace the bulb."
if(do_after(user, 20, target = src))
if(flash.crit_fail || !flash || qdeleted(flash))
return
crit_fail = FALSE
times_used = 0
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
update_icon()
flash.crit_fail = TRUE
flash.update_icon()
return
..()
/obj/item/device/assembly/flash/shield/update_icon(flash = 0)
item_state = "flashshield"
item_state = "flashshield"
if(crit_fail)
icon_state = "riot"
item_state = "riot"
else if(flash)
item_state = "flashshield_flash"
item_state = "flashshield_flash"
addtimer(src, "update_icon", 5)
if(holder)
holder.update_icon()
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/*
SwapMaps library by Lummox JR
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
var/list/preferences_datums = list()
-1
View File
@@ -11,7 +11,6 @@
var/visor_flags = 0 // flags that are added/removed when an item is adjusted up/down
var/visor_flags_inv = 0 // same as visor_flags, but for flags_inv
var/visor_flags_cover = 0 // same as above, but for flags_cover
lefthand_file = 'icons/mob/inhands/clothing_lefthand.dmi'
righthand_file = 'icons/mob/inhands/clothing_righthand.dmi'
var/alt_desc = null
var/toggle_message = null
+9
View File
@@ -39,6 +39,15 @@
time = 15
category = CAT_WEAPON
/datum/crafting_recipe/strobeshield
name = "strobe shield"
result = /obj/item/device/assembly/flash/shield
reqs = list(/obj/item/wallframe/flasher = 1,
/obj/item/device/assembly/flash/handheld = 1,
/obj/item/weapon/shield/riot = 1)
time = 40
category = CAT_WEAPON
/datum/crafting_recipe/molotov
name = "Molotov"
result = /obj/item/weapon/reagent_containers/food/drinks/bottle/molotov
+42
View File
@@ -0,0 +1,42 @@
/datum/round_event_control/sentience
name = "Random Human-level Intelligence"
typepath = /datum/round_event/ghost_role/sentience
weight = 5
/datum/round_event/ghost_role/sentience
minimum_required = 1
role_name = "random animal"
/datum/round_event/ghost_role/sentience/spawn_role()
var/list/mob/dead/observer/candidates
candidates = get_candidates(ROLE_ALIEN, null, ROLE_ALIEN)
// find our chosen mob to breathe life into
// Mobs have to be simple animals, mindless and on station
var/list/potential = list()
for(var/mob/living/simple_animal/L in living_mob_list)
var/turf/T = get_turf(L)
if(T.z != ZLEVEL_STATION)
continue
if(!(L in player_list) && !L.mind)
potential += L
var/mob/living/simple_animal/SA = pick(potential)
var/mob/dead/observer/SG = pick(candidates)
if(!SA || !SG)
return FALSE
SA.key = SG.key
SA.languages_spoken |= HUMAN
SA.languages_understood |= HUMAN
SA.sentience_act()
SA.maxHealth = max(SA.maxHealth, 200)
SA.health = SA.maxHealth
SA.del_on_death = FALSE
SA << "<span class='userdanger'>Hello world!</span>"
SA << "<span class='warning'>Due to freak radiation and/or chemicals \
and/or lucky chance, you have gained human level intelligence \
and the ability to speak and understand human language!</span>"
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
//is this shit even used at all
/proc/NewStutter(phrase,stunned)
+5 -9
View File
@@ -181,10 +181,6 @@
examine_line = "<span class='info'>It has a lot of liquid contents inside.</span>"
origin_tech = list("biotech" = 5)
/datum/plant_gene/trait/squash/on_slip(obj/item/weapon/reagent_containers/food/snacks/grown/G, mob/living/carbon/target)
G.squash(target)
/datum/plant_gene/trait/slip
// Makes plant slippery, unless it has a grown-type trash. Then the trash gets slippery.
// Applies other trait effects (teleporting, etc) to the target by on_slip.
@@ -321,7 +317,7 @@
G.reagents.maximum_volume *= rate
/datum/plant_gene/trait/repeated_harvest
name = "perennial growth"
name = "Perennial Growth"
/datum/plant_gene/trait/repeated_harvest/can_add(obj/item/seeds/S)
if(!..())
@@ -331,7 +327,7 @@
return TRUE
/datum/plant_gene/trait/battery
name = "capacitive cellular production"
name = "Capacitive Cell Production"
/datum/plant_gene/trait/battery/on_attackby(obj/item/weapon/reagent_containers/food/snacks/grown/G, obj/item/I, mob/user)
if(istype(I, /obj/item/stack/cable_coil))
@@ -359,7 +355,7 @@
/datum/plant_gene/trait/stinging
name = "hypodermic prickles"
name = "Hypodermic Prickles"
/datum/plant_gene/trait/stinging/on_throw_impact(obj/item/weapon/reagent_containers/food/snacks/grown/G, atom/target)
if(isliving(target) && G.reagents && G.reagents.total_volume)
@@ -376,10 +372,10 @@
trait_id = "plant_type"
/datum/plant_gene/trait/plant_type/weed_hardy
name = "Robust Species"
name = "Weed Adaptation"
/datum/plant_gene/trait/plant_type/fungal_metabolism
name = "Fungal Vitality"
/datum/plant_gene/trait/plant_type/alien_properties
name ="?????"
name ="?????"
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
/var/const/access_security = 1 // Security equipment
/var/const/access_brig = 2 // Brig timers and permabrig
+5
View File
@@ -162,8 +162,13 @@
blood_data["trace_chem"] = list2params(temp_chem)
if(mind)
blood_data["mind"] = mind
else if(last_mind)
blood_data["mind"] = last_mind
if(ckey)
blood_data["ckey"] = ckey
else if(last_mind)
blood_data["ckey"] = ckey(last_mind.key)
if(!suiciding)
blood_data["cloneable"] = 1
blood_data["blood_type"] = copytext(dna.blood_type,1,0)
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/obj/item/device/mmi
name = "Man-Machine Interface"
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/mob/living/brain
languages_spoken = HUMAN
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/mob/living/carbon/alien/humanoid/proc/adjust_body_temperature(current, loc_temp, boost)
var/temperature = current
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/mob/living/carbon/alien/larva/Life()
set invisibility = 0
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
//TODO: Make these simple_animals
+1 -1
View File
@@ -768,5 +768,5 @@
. = ..()
. += "---"
.["Make AI"] = "?_src_=vars;makeai=\ref[src]"
.["Modify bodypart"] = "<option value='?_src_=vars;editbodypart=\ref[src]'>Modify bodypart</option>"
.["Modify bodypart"] = "?_src_=vars;editbodypart=\ref[src]"
.["Modify organs"] = "?_src_=vars;editorgans=\ref[src]"
@@ -25,6 +25,7 @@
var/obj/item/ears = null //only used by humans.
var/datum/dna/dna = null//Carbon
var/datum/mind/last_mind = null //last mind to control this mob, for blood-based cloning
var/failed_last_breath = 0 //This is used to determine if the mob failed a breath. If they did fail a brath, they will attempt to breathe each tick, otherwise just once per 4 ticks.
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
//NOTE: Breathing happens once per FOUR TICKS, unless the last breath fails. In which case it happens once per ONE TICK! So oxyloss healing is done once per 4 ticks while oxyloss damage is applied once per tick!
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/mob/living/carbon/monkey
@@ -75,11 +75,12 @@
if(!t_state)
t_state = I.icon_state
var/icon_file = I.lefthand_file
if(get_held_index_of_item(I) % 2 == 0)
icon_file = I.righthand_file
var/image/standing = I.build_worn_icon(state = t_state, default_layer = HANDS_LAYER, default_icon_file = I.righthand_file, isinhands = TRUE)
if(get_held_index_of_item(I) % 2 == 1)
var/reflect = matrix(-1, 0, 0, 0, 1, 0)
standing.transform = reflect
var/image/standing = I.build_worn_icon(state = t_state, default_layer = HANDS_LAYER, default_icon_file = icon_file, isinhands = TRUE)
hands += standing
overlays_standing[HANDS_LAYER] = hands
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
// Mulebot - carries crates around for Quartermaster
// Navigates via floor navbeacons
@@ -1,5 +1,3 @@
/mob/living/simple_animal/cockroach
name = "cockroach"
desc = "This station is just crawling with bugs."
@@ -16,11 +14,15 @@
response_help = "pokes"
response_disarm = "shoos"
response_harm = "splats"
speak_emote = list("chitters")
density = 0
ventcrawler = VENTCRAWLER_ALWAYS
gold_core_spawnable = 2
verb_say = "chitters"
verb_ask = "chitters inquisitively"
verb_exclaim = "chitters loudly"
verb_yell = "chitters loudly"
var/squish_chance = 50
loot = list(/obj/effect/decal/cleanable/deadcockroach)
del_on_death = 1
/mob/living/simple_animal/cockroach/death(gibbed)
@@ -28,6 +30,10 @@
return
..()
/mob/living/simple_animal/cockroach/proc/squish()
adjustBruteLoss(1) // kills a normal cockroach
new /obj/effect/decal/cleanable/deadcockroach(get_turf(src))
/mob/living/simple_animal/cockroach/Crossed(var/atom/movable/AM)
if(ismob(AM))
if(isliving(AM))
@@ -35,14 +41,14 @@
if(A.mob_size > MOB_SIZE_SMALL)
if(prob(squish_chance))
A.visible_message("<span class='notice'>\The [A] squashed \the [name].</span>", "<span class='notice'>You squashed \the [name].</span>")
death()
squish()
else
visible_message("<span class='notice'>\The [name] avoids getting crushed.</span>")
else
if(isobj(AM))
if(istype(AM,/obj/structure))
visible_message("<span class='notice'>As \the [AM] moved over \the [name], it was crushed.</span>")
death()
squish()
/mob/living/simple_animal/cockroach/ex_act() //Explosions are a terrible way to handle a cockroach.
return
@@ -51,10 +51,13 @@
if(!l_state)
l_state = l_hand.icon_state
var/image/l_hand_image = l_hand.build_worn_icon(state = l_state, default_layer = DRONE_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE)
var/image/l_hand_image = l_hand.build_worn_icon(state = l_state, default_layer = DRONE_HANDS_LAYER, default_icon_file = l_hand.righthand_file, isinhands = TRUE)
if(y_shift)
l_hand_image.pixel_y += y_shift
var/reflect = matrix(-1, 0, 0, 0, 1, 0)
l_hand_image.transform = reflect
hands_overlays += l_hand_image
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
@@ -293,8 +293,10 @@ var/global/list/parasites = list() //all currently existing/living guardians
if(!l_state)
l_state = l_hand.icon_state
var/image/l_hand_image = l_hand.build_worn_icon(state = l_state, default_layer = GUARDIAN_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE)
var/image/l_hand_image = l_hand.build_worn_icon(state = l_state, default_layer = GUARDIAN_HANDS_LAYER, default_icon_file = l_hand.righthand_file, isinhands = TRUE)
var/reflect = matrix(-1, 0, 0, 0, 1, 0)
l_hand_image.transform = reflect
hands_overlays += l_hand_image
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
@@ -171,7 +171,7 @@ Difficulty: Medium
var/range = 10
var/turf/previousturf = get_turf(src)
for(var/turf/J in getline(src,E))
if(!range || !previousturf.atmos_adjacent_turfs || !previousturf.atmos_adjacent_turfs[J])
if(!range || (J != previousturf && (!previousturf.atmos_adjacent_turfs || !previousturf.atmos_adjacent_turfs[J])))
break
range--
PoolOrNew(/obj/effect/hotspot,J)
+2
View File
@@ -129,6 +129,8 @@
return 0
if(isliving(mob))
var/mob/living/L = mob
if(L.slipping)
return 0
if(L.incorporeal_move) //Move though walls
Process_Incorpmove(direct)
return 0
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
/mob/new_player
var/ready = 0
+2 -1
View File
@@ -2,7 +2,7 @@
name = "paper cutter"
desc = "Standard office equipment. Precisely cuts paper using a large blade."
icon = 'icons/obj/bureaucracy.dmi'
icon_state = "papercutter-cutter"
icon_state = "papercutter"
force = 5
throwforce = 5
w_class = WEIGHT_CLASS_NORMAL
@@ -15,6 +15,7 @@
/obj/item/weapon/papercutter/New()
..()
storedcutter = new /obj/item/weapon/hatchet/cutterblade(src)
update_icon()
/obj/item/weapon/papercutter/suicide_act(mob/user)
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
/* new portable generator - work in progress
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
var/global/list/rad_collectors = list()
/obj/machinery/power/rad_collector
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
/obj/machinery/field/containment
name = "containment field"
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
/obj/machinery/power/emitter
name = "Emitter"
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
/*
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
/obj/singularity
name = "gravitational singularity"
-1
View File
@@ -38,7 +38,6 @@
var/current_skin = null //the skin choice if we had a reskin
var/list/options = list()
lefthand_file = 'icons/mob/inhands/guns_lefthand.dmi'
righthand_file = 'icons/mob/inhands/guns_righthand.dmi'
var/obj/item/device/firing_pin/pin = /obj/item/device/firing_pin //standard firing pin for most guns
@@ -70,7 +70,6 @@
icon = 'icons/obj/bureaucracy.dmi'
icon_state = "pen"
item_state = "pen"
lefthand_file = 'icons/mob/inhands/items_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items_righthand.dmi'
w_class = WEIGHT_CLASS_TINY
-1
View File
@@ -19,7 +19,6 @@
trigger_guard = TRIGGER_GUARD_ALLOW_ALL // Has no trigger at all, uses magic instead
pin = /obj/item/device/firing_pin/magic
lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' //not really a gun and some toys use these inhands
righthand_file = 'icons/mob/inhands/items_righthand.dmi'
/obj/item/weapon/gun/magic/afterattack(atom/target, mob/living/user, flag)
+1 -1
View File
@@ -225,7 +225,7 @@
pixel_x = pixel_x_offset
pixel_y = pixel_y_offset
else
animate(src, pixel_x = pixel_x_offset, pixel_y = pixel_y_offset, time = max(1, (delay <= 3 ? delay - 1 : delay)))
animate(src, pixel_x = pixel_x_offset, pixel_y = pixel_y_offset, time = max(1, (delay <= 3 ? delay - 1 : delay)), flags = ANIMATION_END_NOW)
if(original && (original.layer>=2.75) || ismob(original))
if(loc == get_turf(original))
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
var/const/TOUCH = 1 //splashing
var/const/INGEST = 2 //ingestion
+11 -6
View File
@@ -116,12 +116,17 @@
// attack with item, place item on conveyor
/obj/machinery/conveyor/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/crowbar))
if(!(stat & BROKEN))
var/obj/item/conveyor_construct/C = new/obj/item/conveyor_construct(src.loc)
C.id = id
transfer_fingerprints_to(C)
user << "<span class='notice'>You remove the conveyor belt.</span>"
qdel(src)
user.visible_message("<span class='notice'>[user] struggles to pry up \the [src] with \the [I].</span>", \
"<span class='notice'>You struggle to pry up \the [src] with \the [I].</span>")
if(do_after(user, 40*I.toolspeed, target = src))
if(qdeleted(src))
return //prevent multiple decontructs
if(!(stat & BROKEN))
var/obj/item/conveyor_construct/C = new/obj/item/conveyor_construct(src.loc)
C.id = id
transfer_fingerprints_to(C)
user << "<span class='notice'>You remove the conveyor belt.</span>"
qdel(src)
else if(istype(I, /obj/item/weapon/wrench))
if(!(stat & BROKEN))
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
/*
Destructive Analyzer
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
//All devices that link into the R&D console fall into thise type for easy identification and some shared procs.
-4
View File
@@ -28,7 +28,3 @@
/mob/living/carbon/getorganslot(slot)
return internal_organs_slot[slot]
/proc/isorgan(atom/A)
return istype(A, /obj/item/organ)
+1 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
//cursors
#define Default_Cursor 0
+12
View File
@@ -66,10 +66,18 @@
<h3 class="author">Joan updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">The clockwork slab's interface is now TGUI.</li>
<li class="imageadd">You can now see what an ocular warden is attacking.</li>
</ul>
<h3 class="author">Mervill updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">The light replacer can now create bulbs from glass shards</li>
<li class="rscadd">Click a light replacer while holding a glass shard to add the shard to the replacer</li>
<li class="rscadd">Click a glass shard while holding a light replacer to consume the shard</li>
</ul>
<h3 class="author">MrStonedOne updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">world initialization is now faster.</li>
<li class="bugfix">fixed the modify bodypart admin tool not working</li>
</ul>
<h3 class="author">PKPenguin321 updated:</h3>
<ul class="changes bgimages16">
@@ -79,6 +87,10 @@
<ul class="changes bgimages16">
<li class="rscadd">Nanotrasen Culinary Division has authorized the production of tacos, both plain and classic.</li>
</ul>
<h3 class="author">XDTM updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Replica Pod cloning now works on people who have been decapitated.</li>
</ul>
<h3 class="author">coiax updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Additional mice sometimes appear in the maintenance tunnels. Engineers beware!</li>
+9
View File
@@ -8310,13 +8310,22 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
when thrown at someone
Joan:
- rscadd: The clockwork slab's interface is now TGUI.
- imageadd: You can now see what an ocular warden is attacking.
Mervill:
- rscadd: The light replacer can now create bulbs from glass shards
- rscadd: Click a light replacer while holding a glass shard to add the shard to
the replacer
- rscadd: Click a glass shard while holding a light replacer to consume the shard
MrStonedOne:
- tweak: world initialization is now faster.
- bugfix: fixed the modify bodypart admin tool not working
PKPenguin321:
- tweak: Swarmer beacons now have 750 health, down from 3000.
TehZombehz:
- rscadd: Nanotrasen Culinary Division has authorized the production of tacos, both
plain and classic.
XDTM:
- bugfix: Replica Pod cloning now works on people who have been decapitated.
coiax:
- rscadd: Additional mice sometimes appear in the maintenance tunnels. Engineers
beware!
@@ -1,4 +0,0 @@
author: "Joan"
delete-after: True
changes:
- imageadd: "You can now see what an ocular warden is attacking."
@@ -0,0 +1,5 @@
author: "coiax"
delete-after: True
changes:
- rscadd: "Due to a combination of radiation and water supply contamination,
stations have been reporting animals gaining self awareness."
@@ -0,0 +1,4 @@
author: "Thunder12345"
delete-after: True
changes:
- rscadd: "Added the Standby Emergency Vessel \"Scrapheap Challenge\" as a new emergency shuttle option. You'll even be paid 1000 credits to use it!"
@@ -0,0 +1,4 @@
author: "Supermichael777"
delete-after: True
changes:
- tweak: "Conveyors have been more firmly anchored. No fun allowed"
@@ -0,0 +1,4 @@
author: "Cyberboss"
delete-after: True
changes:
- bugfix: "The slips bug (which made freon laggy) is fixed"
@@ -0,0 +1,4 @@
author: "Kor"
delete-after: True
changes:
- imagedel: "Deleted all (3000+) left handed inhand icons. They are now automatically mirrored from the right hand, saving spriters a lot of tedious busywork."
@@ -0,0 +1,4 @@
author: "Kor"
delete-after: True
changes:
- rscadd: "By crafting a wall mounted flasher frame (can be ordered via cargo), a flash, and a riot shield, you can now construct a strobe shield. The strobe shield combines the functionality of a riot shield and a flash, and can be reloaded with flash bulbs."
@@ -0,0 +1,5 @@
author: "optional name here"
delete-after: True
changes:
- bugfix: "fixed ashdrake's flame wall."
- bugfix: "fixed walls decon spawning metal in a random location in the same room."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 56 KiB

+19 -19
View File
@@ -57,7 +57,7 @@ macro "default"
is-disabled = false
elem
name = "INSERT"
command = "a-intent right"
command = "a-intent next"
is-disabled = false
elem
name = "DELETE"
@@ -97,11 +97,11 @@ macro "default"
is-disabled = false
elem
name = "CTRL+F"
command = "a-intent left"
command = "a-intent next"
is-disabled = false
elem
name = "CTRL+G"
command = "a-intent right"
command = "a-intent next"
is-disabled = false
elem
name = "CTRL+H"
@@ -263,7 +263,7 @@ macro "hotkeys"
is-disabled = false
elem
name = "INSERT"
command = "a-intent right"
command = "a-intent next"
is-disabled = false
elem
name = "DELETE"
@@ -335,19 +335,19 @@ macro "hotkeys"
is-disabled = false
elem
name = "F"
command = "a-intent left"
command = "a-intent next"
is-disabled = false
elem
name = "CTRL+F"
command = "a-intent left"
command = "a-intent next"
is-disabled = false
elem
name = "G"
command = "a-intent right"
command = "a-intent next"
is-disabled = false
elem
name = "CTRL+G"
command = "a-intent right"
command = "a-intent next"
is-disabled = false
elem
name = "H"
@@ -549,7 +549,7 @@ macro "robot-default"
is-disabled = false
elem
name = "INSERT"
command = "a-intent right"
command = "a-intent next"
is-disabled = false
elem
name = "DELETE"
@@ -569,7 +569,7 @@ macro "robot-default"
is-disabled = false
elem
name = "CTRL+4"
command = "a-intent left"
command = "a-intent next"
is-disabled = false
elem
name = "CTRL+A+REP"
@@ -589,11 +589,11 @@ macro "robot-default"
is-disabled = false
elem
name = "CTRL+F"
command = "a-intent left"
command = "a-intent next"
is-disabled = false
elem
name = "CTRL+G"
command = "a-intent right"
command = "a-intent next"
is-disabled = false
elem
name = "CTRL+Q"
@@ -739,7 +739,7 @@ macro "robot-hotkeys"
is-disabled = false
elem
name = "INSERT"
command = "a-intent right"
command = "a-intent next"
is-disabled = false
elem
name = "DELETE"
@@ -771,11 +771,11 @@ macro "robot-hotkeys"
is-disabled = false
elem
name = "4"
command = "a-intent left"
command = "a-intent next"
is-disabled = false
elem
name = "CTRL+4"
command = "a-intent left"
command = "a-intent next"
is-disabled = false
elem
name = "A+REP"
@@ -811,19 +811,19 @@ macro "robot-hotkeys"
is-disabled = false
elem
name = "F"
command = "a-intent left"
command = "a-intent next"
is-disabled = false
elem
name = "CTRL+F"
command = "a-intent left"
command = "a-intent next"
is-disabled = false
elem
name = "G"
command = "a-intent right"
command = "a-intent next"
is-disabled = false
elem
name = "CTRL+G"
command = "a-intent right"
command = "a-intent next"
is-disabled = false
elem
name = "Q"

Some files were not shown because too many files have changed in this diff Show More