Merge branch 'master' of https://github.com/PolarisSS13/Polaris into virologyfixes

This commit is contained in:
Cerebulon
2018-02-07 03:40:06 +00:00
191 changed files with 2301 additions and 996 deletions
@@ -110,6 +110,7 @@
pixel_y = 0
/obj/structure/sign/poster/initialize()
. = ..()
if (poster_type)
var/path = text2path(poster_type)
var/datum/poster/design = new path
+1 -1
View File
@@ -104,7 +104,7 @@ steam.start() -- spawns the effect
T.hotspot_expose(1000,100)
/obj/effect/effect/sparks/initialize()
..()
. = ..()
schedule_task_in(5 SECONDS, /proc/qdel, list(src))
/obj/effect/effect/sparks/Destroy()
+2 -2
View File
@@ -84,9 +84,9 @@
delete_me = 1
/obj/effect/landmark/initialize()
..()
. = ..()
if(delete_me)
qdel(src)
return INITIALIZE_HINT_QDEL
/obj/effect/landmark/Destroy(var/force = FALSE)
if(delete_me || force)
+2 -1
View File
@@ -34,6 +34,7 @@
pixel_y = -32
/obj/effect/temporary_effect/cleave_attack/initialize() // Makes the slash fade smoothly. When completely transparent it should qdel itself.
. = ..()
animate(src, alpha = 0, time = time_to_die - 1)
/obj/effect/temporary_effect/shuttle_landing
@@ -44,4 +45,4 @@
/obj/effect/temporary_effect/shuttle_landing/initialize()
flick("shuttle_warning", src) // flick() forces the animation to always begin at the start.
..()
. = ..()
+5 -3
View File
@@ -129,6 +129,7 @@
var/landmark_id = null
/obj/effect/step_trigger/teleporter/landmark/initialize()
. = ..()
for(var/obj/effect/landmark/teleport_mark/mark in tele_landmarks)
if(mark.landmark_id == landmark_id)
the_landmark = mark
@@ -185,10 +186,11 @@ var/global/list/tele_landmarks = list() // Terrible, but the alternative is loop
return
A.forceMove(T)
if(isliving(A)) // Someday, implement parachutes. For now, just turbomurder whoever falls.
// Living things should probably be logged when they fall...
if(isliving(A))
message_admins("\The [A] fell out of the sky.")
var/mob/living/L = A
L.fall_impact(T, 42, 90, FALSE, TRUE) //You will not be defibbed from this.
// ... because they're probably going to die from it.
A.fall_impact(T, 42, 90, FALSE, TRUE) //You will not be defibbed from this.
else
message_admins("ERROR: planetary_fall step trigger lacks a planet to fall onto.")
return
+4 -4
View File
@@ -110,7 +110,7 @@ var/list/civilian_cartridges = list(
/obj/item/weapon/cartridge/security/initialize()
radio = new /obj/item/radio/integrated/beepsky(src)
..()
. = ..()
/obj/item/weapon/cartridge/detective
name = "\improper D.E.T.E.C.T. cartridge"
@@ -166,7 +166,7 @@ var/list/civilian_cartridges = list(
/obj/item/weapon/cartridge/signal/initialize()
radio = new /obj/item/radio/integrated/signal(src)
..()
. = ..()
/obj/item/weapon/cartridge/quartermaster
name = "\improper Space Parts & Space Vendors cartridge"
@@ -200,7 +200,7 @@ var/list/civilian_cartridges = list(
/obj/item/weapon/cartridge/hos/initialize()
radio = new /obj/item/radio/integrated/beepsky(src)
..()
. = ..()
/obj/item/weapon/cartridge/ce
name = "\improper Power-On DELUXE"
@@ -225,7 +225,7 @@ var/list/civilian_cartridges = list(
/obj/item/weapon/cartridge/rd/initialize()
radio = new /obj/item/radio/integrated/signal(src)
..()
. = ..()
/obj/item/weapon/cartridge/captain
name = "\improper Value-PAK cartridge"
@@ -42,7 +42,7 @@
comm.visible_message("<span class='notice'>\icon[src] Connecting to [src].</span>")
to_chat(user, "<span class='notice'>\icon[src] Attempting to call [comm].</span>")
sleep(10)
to_chat(user, "<span class='notice'>\icon[src] Dialing internally from [station_name()], Kara Subsystem, [system_name()].</span>")
to_chat(user, "<span class='notice'>\icon[src] Dialing internally from [station_name()], [system_name()].</span>")
sleep(20) //If they don't have an exonet something is very wrong and we want a runtime.
to_chat(user, "<span class='notice'>\icon[src] Connection re-routed to [comm] at [comm.exonet.address].</span>")
sleep(40)
@@ -18,7 +18,7 @@
var/power_use = 1
/obj/item/device/flashlight/initialize()
..()
. = ..()
update_icon()
/obj/item/device/flashlight/New()
+1
View File
@@ -18,6 +18,7 @@ var/list/GPS_list = list()
var/can_hide_signal = FALSE // If it can toggle the above var.
/obj/item/device/gps/initialize()
. = ..()
GPS_list += src
name = "global positioning system ([gps_tag])"
update_icon()
@@ -81,7 +81,7 @@
ks1type = /obj/item/device/encryptionkey/raider
/obj/item/device/radio/headset/raider/initialize()
..()
. = ..()
set_frequency(RAID_FREQ)
/obj/item/device/radio/headset/binary
@@ -80,7 +80,7 @@ var/global/list/default_medbay_channels = list(
/obj/item/device/radio/initialize()
. = ..()
if(frequency < RADIO_LOW_FREQ || frequency > RADIO_HIGH_FREQ)
frequency = sanitize_frequency(frequency, RADIO_LOW_FREQ, RADIO_HIGH_FREQ)
set_frequency(frequency)
+11 -7
View File
@@ -266,22 +266,26 @@ REAGENT SCANNER
if(0)
to_chat(usr, "The scanner will now perform a basic analysis.")
/obj/item/device/healthanalyzer/improved //reports bone fractures, IB, quantity of beneficial reagents in stomach; also regular health analyzer stuff
/obj/item/device/healthanalyzer/advanced //reports bone fractures, IB, quantity of beneficial reagents in stomach; also regular health analyzer stuff
name = "advanced health analyzer"
desc = "A miracle of medical technology, this handheld scanner can produce an accurate and specific report of a patient's biosigns."
advscan = 1
origin_tech = list(TECH_MAGNET = 5, TECH_BIO = 6)
icon_state = "advhealth"
icon_state = "health1"
/obj/item/device/healthanalyzer/advanced //reports all of the above, as well as radiation severity and minor brain damage
name = "advanced health analyzer"
/obj/item/device/healthanalyzer/enhanced //reports all of the above, as well as radiation severity and minor brain damage
name = "enhanced health analyzer"
desc = "An even more advanced handheld health scanner, complete with a full biosign monitor and on-board radiation and neurological analysis suites."
advscan = 2
icon_state = "advhealth"
origin_tech = list(TECH_MAGNET = 6, TECH_BIO = 7)
icon_state = "health2"
/obj/item/device/healthanalyzer/enhanced //reports all of the above, as well as name and quantity of nonmed reagents in stomach
/obj/item/device/healthanalyzer/phasic //reports all of the above, as well as name and quantity of nonmed reagents in stomach
name = "phasic health analyzer"
desc = "Possibly the most advanced health analyzer to ever have existed, utilising bluespace technology to determine almost everything worth knowing about a patient."
advscan = 3
icon_state = "advhealth"
origin_tech = list(TECH_MAGNET = 7, TECH_BIO = 8)
icon_state = "health3"
/obj/item/device/analyzer
name = "analyzer"
+1 -1
View File
@@ -27,7 +27,7 @@
to_chat(usr, "Audio feed is [radio.broadcasting ? "on" : "off"]")
/obj/item/device/tvcamera/initialize()
..()
. = ..()
camera = new(src)
camera.c_tag = channel
camera.status = FALSE
@@ -100,6 +100,7 @@
force_divisor = 0.3 // 18 when hardness 60 (steel)
attack_verb = list("slashed", "chopped", "gouged", "ripped", "cut")
var/should_cleave = TRUE //Now hatchets inherit from the machete, and thus knives. Tables turned.
slot_flags = SLOT_BELT
// This cannot go into afterattack since some mobs delete themselves upon dying.
/obj/item/weapon/material/knife/machete/pre_attack(var/mob/living/target, var/mob/living/user)
@@ -12,7 +12,7 @@
var/apply_tape = FALSE
/obj/item/taperoll/initialize()
..()
. = ..()
if(apply_tape)
var/turf/T = get_turf(src)
if(!T)
@@ -20,7 +20,7 @@
var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in T
if(airlock)
afterattack(airlock, null, TRUE)
qdel(src)
return INITIALIZE_HINT_QDEL
var/list/image/hazard_overlays
@@ -128,6 +128,7 @@
new /obj/item/weapon/storage/pill_bottle/spaceacillin(src)
new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting(src)
new /obj/item/stack/medical/splint(src)
new /obj/item/device/healthanalyzer/advanced(src)
return
/obj/item/weapon/storage/firstaid/surgery
@@ -149,7 +150,7 @@
new /obj/item/weapon/surgical/bonegel(src)
new /obj/item/weapon/surgical/FixOVein(src)
new /obj/item/stack/medical/advanced/bruise_pack(src)
new /obj/item/device/healthanalyzer/advanced(src)
new /obj/item/device/healthanalyzer/enhanced(src)
return
/obj/item/weapon/storage/firstaid/clotting
@@ -68,26 +68,29 @@
item_state_slots = list(slot_r_hand_str = "toolbox_syndi", slot_l_hand_str = "toolbox_syndi")
origin_tech = list(TECH_COMBAT = 1, TECH_ILLEGAL = 1)
force = 14
var/powertools = FALSE
/obj/item/weapon/storage/toolbox/syndicate/powertools
powertools = TRUE
/obj/item/weapon/storage/toolbox/syndicate/New() // This is found in maint, so it should have the basics, plus some gloves.
..()
new /obj/item/clothing/gloves/yellow(src)
new /obj/item/weapon/screwdriver(src)
new /obj/item/weapon/wrench(src)
new /obj/item/weapon/weldingtool(src)
new /obj/item/weapon/crowbar(src)
new /obj/item/weapon/wirecutters(src)
new /obj/item/device/multitool(src)
/obj/item/weapon/storage/toolbox/syndicate/powertools/New() // Available in the uplink and is the 'real' syndie toolbox.
// ..() isn't called or else this box would contain the basic tools, power tools, and duplicate gloves.
new /obj/item/clothing/gloves/yellow(src)
new /obj/item/weapon/screwdriver/power(src)
new /obj/item/weapon/weldingtool/experimental(src)
new /obj/item/weapon/crowbar/power(src)
new /obj/item/device/multitool(src)
new /obj/item/stack/cable_coil/random(src,30)
new /obj/item/device/analyzer(src)
..() //all storage items need this to work properly!
if(powertools)
new /obj/item/clothing/gloves/yellow(src)
new /obj/item/weapon/screwdriver/power(src)
new /obj/item/weapon/weldingtool/experimental(src)
new /obj/item/weapon/crowbar/power(src)
new /obj/item/device/multitool(src)
new /obj/item/stack/cable_coil/random(src,30)
new /obj/item/device/analyzer(src)
else
new /obj/item/clothing/gloves/yellow(src)
new /obj/item/weapon/screwdriver(src)
new /obj/item/weapon/wrench(src)
new /obj/item/weapon/weldingtool(src)
new /obj/item/weapon/crowbar(src)
new /obj/item/weapon/wirecutters(src)
new /obj/item/device/multitool(src)
/obj/item/weapon/storage/toolbox/lunchbox
max_storage_space = ITEMSIZE_COST_SMALL * 4 //slightly smaller than a toolbox
+1 -1
View File
@@ -974,7 +974,7 @@ var/list/multi_point_spawns
var/weight // Probability weight for this spawn point
/obj/random_multi/initialize()
..()
. = ..()
weight = max(1, round(weight))
if(!multi_point_spawns)
+1 -1
View File
@@ -69,7 +69,7 @@
var/static/list/possible_tech = list(TECH_MATERIAL, TECH_ENGINEERING, TECH_PHORON, TECH_POWER, TECH_BIO, TECH_COMBAT, TECH_MAGNET, TECH_DATA)
/obj/item/prop/alien/junk/initialize()
..()
. = ..()
icon_state = pick(possible_states)
var/list/techs = possible_tech.Copy()
origin_tech = list()
+2 -1
View File
@@ -11,12 +11,13 @@
anchored = 1.0
/obj/structure/catwalk/initialize()
. = ..()
for(var/obj/structure/catwalk/O in range(1))
O.update_icon()
for(var/obj/structure/catwalk/C in get_turf(src))
if(C != src)
warning("Duplicate [type] in [loc] ([x], [y], [z])")
qdel(C)
return INITIALIZE_HINT_QDEL
update_icon()
/obj/structure/catwalk/Destroy()
@@ -24,7 +24,7 @@
var/list/will_contain
/obj/structure/closet/initialize()
..()
. = ..()
if(will_contain)
create_objects_in_loc(src, will_contain)
@@ -6,7 +6,7 @@
density = 1
/obj/structure/largecrate/initialize()
..()
. = ..()
for(var/obj/I in src.loc)
if(I.density || I.anchored || I == src || !I.simulated)
continue
+2 -2
View File
@@ -306,7 +306,7 @@
/obj/structure/flora/sif/subterranean/initialize()
icon_state = "[initial(icon_state)][rand(1,2)]"
..()
. = ..()
/obj/structure/flora/sif/eyes
name = "mysterious bulbs"
@@ -315,4 +315,4 @@
/obj/structure/flora/sif/eyes/initialize()
icon_state = "[initial(icon_state)][rand(1,3)]"
..()
. = ..()
@@ -55,7 +55,7 @@
var/delay_to_try_again = 20 MINUTES // How long to wait if first attempt fails. Set to 0 to never try again.
/obj/structure/ghost_pod/automatic/initialize()
..()
. = ..()
spawn(delay_to_self_open)
if(src)
trigger()
+4 -4
View File
@@ -10,15 +10,15 @@
// flags = CONDUCT
/obj/structure/lattice/initialize()
..()
. = ..()
if(!(istype(src.loc, /turf/space) || istype(src.loc, /turf/simulated/open) || istype(src.loc, /turf/simulated/mineral)))
qdel(src)
return
return INITIALIZE_HINT_QDEL
for(var/obj/structure/lattice/LAT in src.loc)
if(LAT != src)
qdel(LAT)
crash_with("Found multiple lattices at '[log_info_line(loc)]'")
return INITIALIZE_HINT_QDEL
icon = 'icons/obj/smoothlattice.dmi'
icon_state = "latticeblank"
updateOverlays()
+1 -1
View File
@@ -119,7 +119,7 @@ Loot piles can be depleted, if loot_depleted is turned on. Note that players wh
/obj/structure/loot_pile/maint/initialize()
icon_state = pick(icon_states_to_use)
..()
. = ..()
// Has large amounts of possible items, most of which may or may not be useful.
/obj/structure/loot_pile/maint/junk
@@ -26,6 +26,7 @@
I.loc = src
notices++
icon_state = "nboard0[notices]"
. = ..()
//attaching papers!!
/obj/structure/noticeboard/attackby(var/obj/item/weapon/O as obj, var/mob/user as mob)
+1 -1
View File
@@ -24,7 +24,7 @@
verbs += /obj/structure/proc/climb_on
/obj/structure/railing/initialize()
..()
. = ..()
if(src.anchored)
update_icon(0)
+3 -3
View File
@@ -31,13 +31,13 @@ FLOOR SAFES
/obj/structure/safe/initialize()
. = ..()
for(var/obj/item/I in loc)
if(space >= maxspace)
return
if(I.w_class + space <= maxspace)
space += I.w_class
I.loc = src
I.forceMove(src)
/obj/structure/safe/proc/check_unlocked(mob/user as mob, canhear)
if(user && canhear)
@@ -175,7 +175,7 @@ obj/structure/safe/ex_act(severity)
layer = 2.5
/obj/structure/safe/floor/initialize()
..()
. = ..()
var/turf/T = loc
if(istype(T) && !T.is_plating())
hide(1)
@@ -26,7 +26,7 @@
return FALSE
/obj/effect/wingrille_spawn/initialize()
..()
. = ..()
if(!win_path)
return
if(ticker && ticker.current_state < GAME_STATE_PLAYING)