mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-08-23 05:06:50 +01:00
Merge branch 'master' of https://github.com/PolarisSS13/Polaris into virologyfixes
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
..()
|
||||
. = ..()
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
verbs += /obj/structure/proc/climb_on
|
||||
|
||||
/obj/structure/railing/initialize()
|
||||
..()
|
||||
. = ..()
|
||||
if(src.anchored)
|
||||
update_icon(0)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user