New to init final (#17512)

* Initial

* some more

* next few

* only light left

* fix things up

* some rmore fixes

* guh

* Update ai_vr.dm

* comment

* lets try something

* .

* hmm

* .

* .

* hmm

* push that here

* fix layout

* grrr
This commit is contained in:
Kashargul
2025-04-14 00:07:35 +02:00
committed by GitHub
parent 53ee76ad92
commit cdfa1c853f
170 changed files with 1262 additions and 1219 deletions
+1
View File
@@ -68,6 +68,7 @@
#define MAT_FLESH "flesh"
#define MAT_FANCYBLACK "fancyblack"
#define MAT_FOAM "foam"
#define MAT_FLOKIUM "flockium"
// cloth materials
#define MAT_WOOL "wool"
+2
View File
@@ -99,6 +99,8 @@
#define LANGUAGE_ZADDAT "Vedahq"
#define LANGUAGE_PROMETHEAN "Promethean Biolinguistics"
#define LANGUAGE_GIBBERISH "Babel"
#define LANGUAGE_ROBOT_TALK "Robot Talk"
#define LANGUAGE_DRONE_TALK "Drone Talk"
// Language flags.
#define WHITELISTED 1 // Language is available if the speaker is whitelisted.
+3
View File
@@ -21,3 +21,6 @@
#define LANGUAGE_LLEILL "Glamour Speak"
#define LANGUAGE_SPARKLE "Sparkle"
#define LANGUAGE_XENOLINGUA "Xenomorph"
#define LANGUAGE_HIVEMIND "Hivemind"
+1
View File
@@ -157,6 +157,7 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G
#define INIT_ORDER_TICKER -50
#define INIT_ORDER_MAPRENAME -60 //Initiating after Ticker to ensure everything is loaded and everything we rely on us working
#define INIT_ORDER_WIKI -61
#define INIT_ORDER_ATC -70
#define INIT_ORDER_STATPANELS -98
#define INIT_ORDER_CHAT -100 //Should be last to ensure chat remains smooth during init.
+1 -1
View File
@@ -121,7 +121,7 @@
if(istype(T,/turf/simulated/shuttle))
shuttlework = 1
var/turf/simulated/shuttle/SS = T
if(!SS.landed_holder) SS.landed_holder = new(turf = SS)
if(!SS.landed_holder) SS.landed_holder = new(SS)
X = SS.landed_holder.land_on(B)
//Generic non-shuttle turf move.
+1 -1
View File
@@ -757,7 +757,7 @@ Turf and target are seperate in case you want to teleport some distance from a t
if(istype(T,/turf/simulated/shuttle))
shuttlework = 1
var/turf/simulated/shuttle/SS = T
if(!SS.landed_holder) SS.landed_holder = new(turf = SS)
if(!SS.landed_holder) SS.landed_holder = new(SS)
X = SS.landed_holder.land_on(B)
//Generic non-shuttle turf move.
@@ -6,6 +6,7 @@ SUBSYSTEM_DEF(atc)
priority = FIRE_PRIORITY_ATC
runlevels = RUNLEVEL_GAME
wait = 2 SECONDS
init_order = INIT_ORDER_ATC
flags = SS_BACKGROUND
VAR_PRIVATE/next_tick = 0
+1 -1
View File
@@ -60,7 +60,7 @@ var/global/datum/controller/subsystem/ticker/ticker
"url" = get_world_url()
)
)
GLOB.autospeaker = new (null, null, null, 1) //Set up Global Announcer
GLOB.autospeaker = new (null, FALSE, null, null, TRUE) //Set up Global Announcer
return SS_INIT_SUCCESS
/datum/controller/subsystem/ticker/fire(resumed = FALSE)
+1
View File
@@ -92,6 +92,7 @@
// Other parameters are passed from New (excluding loc), this does not happen if mapload is TRUE
// Must return an Initialize hint. Defined in code/__defines/subsystems.dm
/atom/proc/Initialize(mapload, ...)
SHOULD_CALL_PARENT(TRUE)
if(QDELETED(src))
stack_trace("GC: -- [type] had initialize() called after qdel() --")
if(flags & ATOM_INITIALIZED)
+3 -3
View File
@@ -739,7 +739,7 @@ var/global/datum/controller/occupations/job_master
confirm = tgui_alert(pred, "[C.prefs.real_name] is attempting to spawn into your [vore_spawn_gut]. Let them?", "Confirm", list("No", "Yes"))
if(confirm != "Yes")
to_chat(C, span_warning("[pred] has declined your spawn request."))
var/message = sanitizeSafe(input(pred,"Do you want to leave them a message?")as text|null)
var/message = sanitizeSafe(tgui_input_text(pred,"Do you want to leave them a message?", "Notify Prey"))
if(message)
to_chat(C, span_notice("[pred] message : [message]"))
return
@@ -816,7 +816,7 @@ var/global/datum/controller/occupations/job_master
confirm = tgui_alert(prey, "[C.prefs.real_name] is attempting to televore you into their [vore_spawn_gut]. Let them?", "Confirm", list("No", "Yes"))
if(confirm != "Yes")
to_chat(C, span_warning("[prey] has declined your spawn request."))
var/message = sanitizeSafe(input(prey,"Do you want to leave them a message?")as text|null)
var/message = sanitizeSafe(tgui_input_text(prey,"Do you want to leave them a message?", "Notify Pred"))
if(message)
to_chat(C, span_notice("[prey] message : [message]"))
return
@@ -900,7 +900,7 @@ var/global/datum/controller/occupations/job_master
var/confirm = tgui_alert(carrier, "[C.prefs.real_name] is attempting to join as the [item_name] in your possession.", "Confirm", list("No", "Yes"))
if(confirm != "Yes")
to_chat(C, span_warning("[carrier] has declined your spawn request."))
var/message = sanitizeSafe(input(carrier,"Do you want to leave them a message?")as text|null)
var/message = sanitizeSafe(tgui_input_text(carrier,"Do you want to leave them a message?", "Notify Spawner"))
if(message)
to_chat(C, span_notice("[carrier] message : [message]"))
return
+1 -1
View File
@@ -179,7 +179,7 @@
if(open_for_latejoin)
empty_playable_ai_cores += D
else
var/mob/living/silicon/ai/A = new /mob/living/silicon/ai ( loc, laws, brain )
var/mob/living/silicon/ai/A = new /mob/living/silicon/ai(loc, FALSE, laws, brain)
if(A) //if there's no brain, the mob is deleted and a structure/AIcore is created
A.rename_self("ai", 1)
for(var/datum/language/L in brain.brainmob.languages)
@@ -191,7 +191,7 @@
/datum/file/program/card_comp/proc/authenticate()
if(access_change_ids in reader.GetAccess())
return 1
if(istype(usr,/mob/living/silicon/ai))
if(isAI(usr))
return 1
return 0
+1 -1
View File
@@ -40,7 +40,7 @@ var/const/HOLOPAD_MODE = RANGE_BASED
var/power_per_hologram = 500 //per usage per hologram
idle_power_usage = 5
use_power = USE_POWER_IDLE
var/list/mob/living/silicon/ai/masters = new() //List of AIs that use the holopad
var/list/mob/living/silicon/ai/masters = list() //List of AIs that use the holopad
var/last_request = 0 //to prevent request spam. ~Carn
var/holo_range = 5 // Change to change how far the AI can move away from the holopad before deactivating.
-39
View File
@@ -1,39 +0,0 @@
// Handles automagically upgrades to machines based on components placed on a machine during map init
/obj/machinery/Initialize(mapload)
. = ..()
// Handles automagically upgrades to machines based on components placed on a machine during map init
if(mapload)
spawn(100)
// Sanity checks
if(!QDELETED(src) && isturf(loc))
handle_mapped_upgrades()
// This is meant to be overridden per machine
/obj/machinery/proc/handle_mapped_upgrades()
return
// Each machine is a special snowflake... sadly.
/obj/machinery/power/smes/buildable/handle_mapped_upgrades()
// Detect new coils placed by mappers
var/list/parts_found = list()
for(var/i = 1, i <= loc.contents.len, i++)
var/obj/item/W = loc.contents[i]
if(istype(W, /obj/item/smes_coil))
parts_found.Add(W)
// If any coils are on us, clear base coils and rebuild using these ones
if(parts_found.len == 0)
return
while(TRUE)
var/obj/item/smes_coil/C = locate(/obj/item/smes_coil) in component_parts
if(isnull(C))
break
component_parts.Remove(C)
C.forceMove(src.loc)
qdel(C)
cur_coils--
// Rebuild from mapper's coils
for(var/i = 1, i <= parts_found.len, i++)
if (cur_coils < max_coils)
var/obj/item/W = parts_found[i]
cur_coils++
component_parts.Add(W)
W.forceMove(src)
RefreshParts()
@@ -13,7 +13,8 @@
var/custombasedesc = null
var/custombasecolor = null
/obj/effect/decal/cleanable/blood/reagent/New(var/spill_name, var/spill_color, var/spill_reagentid, var/new_amount, var/ckey_user, var/ckey_spawn)
/obj/effect/decal/cleanable/blood/reagent/Initialize(mapload, var/spill_name, var/spill_color, var/spill_reagentid, var/new_amount, var/ckey_user, var/ckey_spawn)
. = ..()
switch(spill_reagentid) //To ensure that if people spill some liquids, it wont cause issues with spawning, like spilling blood. Also allow for spilling of certain things to
if("blood")
return
+10 -10
View File
@@ -18,14 +18,14 @@
var/poster_type = /obj/structure/sign/poster
/obj/item/contraband/poster/New(turf/loc, var/given_serial = 0)
/obj/item/contraband/poster/Initialize(mapload, var/given_serial = 0)
if(!serial_number)
if(given_serial == 0)
serial_number = rand(1, poster_designs.len)
else
serial_number = given_serial
name += " - No. [serial_number]"
..(loc)
. = ..()
//Places the poster on a wall
/obj/item/contraband/poster/afterattack(var/atom/A, var/mob/user, var/adjacent, var/clickparams)
@@ -83,12 +83,12 @@
icon_state = "rolled_poster_nt"
poster_type = /obj/structure/sign/poster/nanotrasen
/obj/item/contraband/poster/nanotrasen/New(turf/loc, var/given_serial = 0)
/obj/item/contraband/poster/nanotrasen/Initialize(mapload, var/given_serial = 0)
if(given_serial == 0)
serial_number = rand(1, NT_poster_designs.len)
else
serial_number = given_serial
..(loc)
. = ..()
//Selectable subtype
/obj/item/contraband/poster/custom
@@ -96,12 +96,12 @@
desc = "The poster comes with its own automatic adhesive mechanism, for easy pinning to any vertical surface. This one is made from some kind of e-paper, and could display almost anything!"
poster_type = /obj/structure/sign/poster/custom
/obj/item/contraband/poster/custom/New(turf/loc, var/given_serial = 0)
/obj/item/contraband/poster/custom/Initialize(mapload, var/given_serial = 0)
if(given_serial == 0)
serial_number = 1 //Decidedly unrandom
else
serial_number = given_serial
..(loc)
. = ..()
/obj/item/contraband/poster/custom/verb/select_poster()
set name = "Set Poster type"
@@ -137,8 +137,8 @@
var/roll_type
var/poster_set = FALSE
/obj/structure/sign/poster/New(var/newloc, var/placement_dir=null, var/serial=null, var/itemtype = /obj/item/contraband/poster)
..(newloc)
/obj/structure/sign/poster/Initialize(mapload, var/placement_dir=null, var/serial=null, var/itemtype = /obj/item/contraband/poster)
. = ..()
if(!serial)
serial = rand(1, poster_designs.len) //use a random serial if none is given
@@ -226,7 +226,7 @@
/obj/structure/sign/poster/nanotrasen
roll_type = /obj/item/contraband/poster/nanotrasen
/obj/structure/sign/poster/nanotrasen/New(var/newloc, var/placement_dir=null, var/serial=null, var/itemtype = /obj/item/contraband/poster/nanotrasen)
/obj/structure/sign/poster/nanotrasen/Initialize(mapload, var/placement_dir=null, var/serial=null, var/itemtype = /obj/item/contraband/poster/nanotrasen)
if(!serial)
serial = rand(1, NT_poster_designs.len)
@@ -234,7 +234,7 @@
var/datum/poster/design = NT_poster_designs[serial_number]
set_poster(design)
..(newloc, placement_dir, serial, itemtype)
. = ..(mapload, placement_dir, serial, itemtype)
//Non-Random Posters
+3 -3
View File
@@ -71,13 +71,13 @@
delete_me = TRUE
//VORE Station Add End
landmarks_list += src
if(delete_me)
return INITIALIZE_HINT_QDEL
else
landmarks_list += src
/obj/effect/landmark/Destroy(var/force = FALSE)
if(delete_me || force)
if(force)
landmarks_list -= src
return ..()
return QDEL_HINT_LETMELIVE
@@ -44,14 +44,14 @@
name = "TTV bomb - proximity"
assembly_type = /obj/item/assembly/prox_sensor
/obj/effect/spawner/newbomb/radio/custom/New(var/newloc, ph, ox, co)
/obj/effect/spawner/newbomb/radio/custom/Initialize(mapload, ph, ox, co)
if(ph != null) phoron_amt = ph
if(ox != null) oxygen_amt = ox
if(co != null) carbon_amt = co
..()
. = ..()
/obj/effect/spawner/newbomb/Initialize(mapload)
..()
. = ..()
var/obj/item/transfer_valve/V = new(src.loc)
var/obj/item/tank/phoron/PT = new(V)
var/obj/item/tank/oxygen/OT = new(V)
@@ -100,8 +100,8 @@
var/phoron_amt = 0
var/oxygen_amt = 0
/obj/effect/spawner/onetankbomb/New(newloc) //just needs an assembly.
..(newloc)
/obj/effect/spawner/onetankbomb/Initialize(mapload) //just needs an assembly.
. = ..()
var/type = pick(/obj/item/tank/phoron/onetankbomb, /obj/item/tank/oxygen/onetankbomb)
new type(src.loc)
@@ -116,8 +116,8 @@
// var/assembly_type = /obj/item/assembly/signaler
//Note that the maximum amount of gas you can put in a 70L air tank at 1013.25 kPa and 519K is 16.44 mol.
/obj/effect/spawner/onetankbomb/full/New(newloc) //just needs an assembly.
..(newloc)
/obj/effect/spawner/onetankbomb/full/Initialize(mapload) //just needs an assembly.
. = ..()
var/type = pick(/obj/item/tank/phoron/onetankbomb/full, /obj/item/tank/oxygen/onetankbomb/full)
new type(src.loc)
@@ -132,8 +132,8 @@
// var/assembly_type = /obj/item/assembly/signaler
//Note that the maximum amount of gas you can put in a 70L air tank at 1013.25 kPa and 519K is 16.44 mol.
/obj/effect/spawner/onetankbomb/full/New(newloc) //just needs an assembly.
..(newloc)
/obj/effect/spawner/onetankbomb/full/Initialize(mapload) //just needs an assembly.
. = ..()
var/type = pick(/obj/item/tank/phoron/onetankbomb/full, /obj/item/tank/oxygen/onetankbomb/full)
new type(src.loc)
+2 -1
View File
@@ -287,7 +287,7 @@ But for now, for what it's been used for, it works.
return
if(Mtarget)
H.forceMove(Mtarget.loc)
var/obj/locker = new /obj/structure/closet/secure_closet/mind(target.loc, mind_target = H.mind)
var/obj/locker = new /obj/structure/closet/secure_closet/mind(target.loc, H.mind)
for(var/obj/item/W in H)
if(istype(W, /obj/item/implant/backup || istype(W, /obj/item/nif)))
continue
@@ -345,5 +345,6 @@ But for now, for what it's been used for, it works.
name = "Autostrip target to send mobs to."
/obj/effect/autostriptarget/mob/Initialize(mapload)
. = ..()
if(targetid)
GLOB.mapped_autostrips_mob[targetid] = src
@@ -50,11 +50,11 @@
/obj/item/radio/headset/handle_message_mode(mob/living/M as mob, list/message_pieces, channel)
if(channel == "special")
if(translate_binary)
var/datum/language/binary = GLOB.all_languages["Robot Talk"]
var/datum/language/binary = GLOB.all_languages[LANGUAGE_ROBOT_TALK]
binary.broadcast(M, M.strip_prefixes(multilingual_to_message(message_pieces)))
return RADIO_CONNECTION_NON_SUBSPACE
if(translate_hive)
var/datum/language/hivemind = GLOB.all_languages["Hivemind"]
var/datum/language/hivemind = GLOB.all_languages[LANGUAGE_HIVEMIND]
hivemind.broadcast(M, M.strip_prefixes(multilingual_to_message(message_pieces)))
return RADIO_CONNECTION_NON_SUBSPACE
return RADIO_CONNECTION_FAIL
@@ -7,6 +7,7 @@
icon_state = "drop_marker"
/obj/effect/calldown_attack/Initialize(mapload)
. = ..()
var/delay = rand(25, 30)
addtimer(CALLBACK(src, PROC_REF(spawn_object)), delay-7)
@@ -26,7 +27,7 @@
icon = 'icons/effects/random_stuff_vr.dmi'
/obj/effect/illusionary_fall/Initialize(mapload)
.=..()
. = ..()
icon_state = "[rand(1,33)]"
/obj/effect/illusionary_fall/end_fall(var/crushing = FALSE)
+1 -1
View File
@@ -192,7 +192,7 @@
to_chat(user, span_warning("This [W] does not seem to fit."))
return
var/mob/living/silicon/robot/O = new /mob/living/silicon/robot(get_turf(loc), unfinished = 1)
var/mob/living/silicon/robot/O = new /mob/living/silicon/robot(get_turf(loc), FALSE, TRUE)
if(!O) return
user.drop_item()
+7 -3
View File
@@ -37,7 +37,8 @@
light_impact = 7
flash_range = 7
/obj/item/syndie/c4explosive/New()
/obj/item/syndie/c4explosive/Initialize(mapload)
. = ..()
var/K = rand(1,2000)
K = md5(num2text(K)+name)
K = copytext(K,1,7)
@@ -51,8 +52,11 @@
playsound(src, 'sound/weapons/armbomb.ogg', 75, 1)
for(var/mob/O in hearers(src, null))
O.show_message("[icon2html(src, O.client)] " + span_warning(" The [src.name] beeps!"))
sleep(50)
explosion(get_turf(src), devastate, heavy_impact, light_impact, flash_range)
addtimer(CALLBACK(src, PROC_REF(do_detonate)), 5 SECONDS, TIMER_DELETE_ME)
/obj/item/syndie/c4explosive/proc/do_detonate()
SHOULD_NOT_OVERRIDE(TRUE)
PRIVATE_PROC(TRUE)
for(var/dirn in cardinal) //This is to guarantee that C4 at least breaks down all immediately adjacent walls and doors.
var/turf/simulated/wall/T = get_step(src,dirn)
if(locate(/obj/machinery/door/airlock) in T)
+5 -11
View File
@@ -10,14 +10,13 @@
var/maxhealth = 100
var/datum/material/material
/obj/structure/barricade/New(var/newloc, var/material_name)
..(newloc)
/obj/structure/barricade/Initialize(mapload, var/material_name)
. = ..()
if(!material_name)
material_name = MAT_WOOD
material = get_material_by_name("[material_name]")
if(!material)
qdel(src)
return
return INITIALIZE_HINT_QDEL
name = "[material.display_name] barricade"
desc = "This space is blocked off by a barricade made of [material.display_name]."
color = material.icon_colour
@@ -116,16 +115,11 @@
icon = 'icons/obj/sandbags.dmi'
icon_state = "blank"
/obj/structure/barricade/sandbag/New(var/newloc, var/material_name)
/obj/structure/barricade/sandbag/Initialize(mapload, var/material_name)
if(!material_name)
material_name = MAT_CLOTH
..(newloc, material_name)
material = get_material_by_name("[material_name]")
if(!material)
qdel(src)
return
. = ..(mapload, material_name)
name = "[material.display_name] [initial(name)]"
desc = "This space is blocked off by a barricade made of [material.display_name]."
color = null
maxhealth = material.integrity * 2 // These things are, commonly, used to stop bullets where possible.
health = maxhealth
@@ -49,15 +49,13 @@
else
add_overlay("open")
//VOREStation Add Start
/obj/structure/closet/secure_closet/guncabinet/excursion
name = "expedition weaponry cabinet"
req_one_access = list(access_armory)
/obj/structure/closet/secure_closet/guncabinet/excursion/New()
..()
/obj/structure/closet/secure_closet/guncabinet/excursion/Initialize(mapload)
. = ..()
for(var/i = 1 to 2)
new /obj/item/gun/energy/locked/frontier(src)
for(var/i = 1 to 2)
new /obj/item/gun/energy/locked/frontier/holdout(src)
//VOREStation Add End
@@ -163,8 +163,8 @@
var/self_del = 1
anchored = 0
/obj/structure/closet/secure_closet/mind/New(var/datum/mind/mind_target, var/del_self = 1)
.=..()
/obj/structure/closet/secure_closet/mind/Initialize(mapload, var/datum/mind/mind_target, var/del_self = 1)
. = ..()
self_del = del_self
if(mind_target)
owner = mind_target
@@ -13,7 +13,8 @@
var/intialOxy = 0
var/timer = 240 //eventually the person will be freed
/obj/structure/closet/statue/New(loc, var/mob/living/L)
/obj/structure/closet/statue/Initialize(mapload, var/mob/living/L)
. = ..()
if(L && (ishuman(L) || L.isMonkey() || iscorgi(L)))
if(L.buckled)
L.buckled = 0
@@ -41,11 +42,9 @@
desc = "If it takes forever, I will wait for you..."
if(health == 0) //meaning if the statue didn't find a valid target
qdel(src)
return
return INITIALIZE_HINT_QDEL
START_PROCESSING(SSobj, src)
..()
/obj/structure/closet/statue/process()
timer--
+20 -12
View File
@@ -13,8 +13,8 @@
/obj/structure/drop_pod/polite
polite = TRUE
/obj/structure/drop_pod/New(newloc, atom/movable/A, auto_open = FALSE)
..()
/obj/structure/drop_pod/Initialize(mapload, atom/movable/A, auto_open = FALSE)
. = ..()
if(A)
A.forceMove(src) // helo
podfall(auto_open)
@@ -25,8 +25,6 @@
qdel_null(air)
/obj/structure/drop_pod/proc/podfall(auto_open)
set waitfor = FALSE // sleeping in new otherwise
var/turf/T = get_turf(src)
if(!T)
warning("Drop pod wasn't spawned on a turf")
@@ -40,9 +38,11 @@
for(var/turf/TN in turfs_nearby)
new /obj/effect/temporary_effect/shuttle_landing(TN)
// Wait a minute
sleep(4 SECONDS)
addtimer(CALLBACK(src, PROC_REF(do_fall), auto_open, T), 4 SECONDS, TIMER_DELETE_ME)
/obj/structure/drop_pod/proc/do_fall(auto_open, turf/T)
SHOULD_NOT_OVERRIDE(TRUE)
PRIVATE_PROC(TRUE)
// Wheeeeeee
plane = ABOVE_PLANE
pixel_y = 300
@@ -53,10 +53,18 @@
animate(src, alpha = 255, time = 1 SECOND, flags = ANIMATION_PARALLEL)
filters += filter(type="drop_shadow", x=-64, y=100, size=10)
animate(filters[filters.len], x=0, y=0, size=0, time=3 SECONDS, flags=ANIMATION_PARALLEL, easing=SINE_EASING|EASE_OUT)
sleep(2 SECONDS)
addtimer(CALLBACK(src, PROC_REF(after_fall), auto_open, T), 2 SECONDS, TIMER_DELETE_ME)
/obj/structure/drop_pod/proc/after_fall(auto_open, turf/T)
SHOULD_NOT_OVERRIDE(TRUE)
PRIVATE_PROC(TRUE)
new /obj/effect/effect/smoke(T)
T.hotspot_expose(900)
sleep(1 SECOND)
addtimer(CALLBACK(src, PROC_REF(on_impact), auto_open, T), 1 SECOND, TIMER_DELETE_ME)
/obj/structure/drop_pod/proc/on_impact(auto_open, turf/T)
SHOULD_NOT_OVERRIDE(TRUE)
PRIVATE_PROC(TRUE)
filters = null
// CRONCH
@@ -82,14 +90,14 @@
icon_state = "[initial(icon_state)]"
if(auto_open)
sleep(2 SECONDS)
open_pod()
visible_message("\The [src] pops open!")
addtimer(CALLBACK(src, PROC_REF(open_pod), TRUE), 2 SECONDS, TIMER_DELETE_ME)
else
for(var/mob/M in src)
to_chat(M, span_danger("You've landed! Open the hatch if you think it's safe! \The [src] has enough air to last for a while..."))
/obj/structure/drop_pod/proc/open_pod()
/obj/structure/drop_pod/proc/open_pod(dropped)
if(dropped)
visible_message("\The [src] pops open!")
if(finished)
return
icon_state = "[initial(icon_state)]_open"
+11 -8
View File
@@ -19,15 +19,18 @@
var/applies_material_colour = 1
var/wall_type = /turf/simulated/wall
/obj/structure/girder/New(var/newloc, var/material_key)
..(newloc)
/obj/structure/girder/Initialize(mapload, var/material_key)
. = ..()
if(!material_key)
material_key = default_material
set_material(material_key)
var/our_material = get_material_by_name(material_key)
if(!our_material)
return INITIALIZE_HINT_QDEL
set_material(our_material)
update_icon()
/obj/structure/girder/Destroy()
if(girder_material.products_need_process())
if(girder_material && girder_material.products_need_process())
STOP_PROCESSING(SSobj, src)
. = ..()
@@ -45,10 +48,10 @@
return total_radiation
/obj/structure/girder/proc/set_material(var/new_material)
girder_material = get_material_by_name(new_material)
/obj/structure/girder/proc/set_material(var/datum/material/new_material)
if(!girder_material)
qdel(src)
girder_material = new_material
name = "[girder_material.display_name] [initial(name)]"
max_health = round(girder_material.integrity) //Should be 150 with default integrity (steel). Weaker than ye-olden Girders now.
health = max_health
@@ -75,8 +78,8 @@
health = 50
cover = 25
/obj/structure/girder/displaced/New(var/newloc, var/material_key)
..(newloc, material_key)
/obj/structure/girder/displaced/Initialize(mapload, material_key)
. = ..()
displace()
/obj/structure/girder/proc/displace()
+3 -4
View File
@@ -19,14 +19,13 @@
var/datum/material/material
/obj/structure/gravemarker/New(var/newloc, var/material_name)
..(newloc)
/obj/structure/gravemarker/Initialize(mapload, var/material_name)
. = ..()
if(!material_name)
material_name = MAT_WOOD
material = get_material_by_name("[material_name]")
if(!material)
qdel(src)
return
return INITIALIZE_HINT_QDEL
color = material.icon_colour
/obj/structure/gravemarker/examine(mob/user)
+2 -3
View File
@@ -385,10 +385,9 @@ GLOBAL_LIST_BOILERPLATE(all_janitorial_carts, /obj/structure/janitorialcart)
var/callme = "pimpin' ride" //how do people refer to it?
/obj/structure/bed/chair/janicart/New()
/obj/structure/bed/chair/janicart/Initialize(mapload, new_material, new_padding_material)
. = ..()
create_reagents(300)
update_layer()
/obj/structure/bed/chair/janicart/examine(mob/user)
. = ..()
+2 -2
View File
@@ -22,8 +22,8 @@
icon_modifier = "grey_"
icon_state = "grey_railing0"
/obj/structure/railing/New(loc, constructed = 0)
..()
/obj/structure/railing/Initialize(mapload, constructed = 0)
. = ..()
// TODO - "constructed" is not passed to us. We need to find a way to do this safely.
if (constructed) // player-constructed railings
anchored = FALSE
@@ -1,5 +1,5 @@
/datum/material/flockium
name = "flockium"
name = MAT_FLOKIUM
//stack_type = /obj/item/stack/material/sandstone
icon_base = "flock"
icon_reinf = "flock"
@@ -20,5 +20,5 @@
icon = 'icons/goonstation/featherzone.dmi'
icon_state = "flockdoor"
/obj/structure/simple_door/flock/New(var/newloc, var/newmat)
..(newloc, "flockium")
/obj/structure/simple_door/flock/Initialize(mapload, var/newmat)
. = ..(mapload, MAT_FLOKIUM)
@@ -19,21 +19,20 @@ var/global/list/stool_cache = list() //haha stool
/obj/item/stool/padded
icon_state = "stool_padded_preview" //set for the map
/obj/item/stool/New(var/newloc, var/new_material, var/new_padding_material)
..(newloc)
/obj/item/stool/Initialize(mapload, var/new_material, var/new_padding_material)
. = ..()
if(!new_material)
new_material = MAT_STEEL
material = get_material_by_name(new_material)
if(new_padding_material)
padding_material = get_material_by_name(new_padding_material)
if(!istype(material))
qdel(src)
return
return INITIALIZE_HINT_QDEL
force = round(material.get_blunt_damage()*0.4)
update_icon()
/obj/item/stool/padded/New(var/newloc, var/new_material)
..(newloc, MAT_STEEL, MAT_CARPET)
/obj/item/stool/padded/Initialize(mapload, var/new_material)
. = ..(mapload, MAT_STEEL, MAT_CARPET)
/obj/item/stool/update_icon()
// Prep icon.
@@ -15,5 +15,5 @@
/obj/item/stool/baystool/padded
icon_state = "bar_stool_padded_preview" //set for the map
/obj/item/stool/baystool/padded/New(var/newloc, var/new_material)
..(newloc, MAT_STEEL, MAT_CARPET)
/obj/item/stool/baystool/padded/Initialize(mapload, var/new_material)
. = ..(mapload, MAT_STEEL, MAT_CARPET)
@@ -32,8 +32,8 @@
secure = "secure_"
icon_state = "l_secure_windoor_assembly01"
/obj/structure/windoor_assembly/New(Loc, start_dir=NORTH, constructed=0)
..()
/obj/structure/windoor_assembly/Initialize(mapload, start_dir=NORTH, constructed=0)
. = ..()
if(constructed)
state = "01"
anchored = FALSE
+2 -2
View File
@@ -386,8 +386,8 @@
update_nearby_tiles(need_rebuild=1)
return
/obj/structure/window/New(Loc, start_dir=null, constructed=0)
..()
/obj/structure/window/Initialize(mapload, start_dir=null, constructed=0)
. = ..()
if (start_dir)
set_dir(start_dir)
+4 -10
View File
@@ -10,18 +10,12 @@ var/list/floor_decals = list()
layer = DECAL_LAYER
var/supplied_dir
/obj/effect/floor_decal/New(var/newloc, var/newdir, var/newcolour)
/obj/effect/floor_decal/Initialize(mapload, var/newdir, var/newcolour)
supplied_dir = newdir
if(newcolour)
color = newcolour
..(newloc)
// TODO: identify what is causing these atoms to be qdeleted in New()/Initialize(mapload)
// somewhere in this chain. Alternatively repath to /obj/floor_decal or some other
// abstract handler that explicitly doesn't invoke any obj behavior.
/obj/effect/floor_decal/Initialize(mapload)
add_to_turf_decals()
flags |= ATOM_INITIALIZED
..()
return INITIALIZE_HINT_QDEL
// This is a separate proc from initialize() to facilitiate its caching and other stuff. Look into it someday.
@@ -626,9 +620,9 @@ var/list/floor_decals = list()
name = "random asteroid rubble"
icon_state = "asteroid0"
/obj/effect/floor_decal/asteroid/New()
/obj/effect/floor_decal/asteroid/Initialize(mapload, newdir, newcolour)
icon_state = "asteroid[rand(0,9)]"
..()
. = ..()
/obj/effect/floor_decal/chapel
name = "chapel"
+2 -1
View File
@@ -25,7 +25,8 @@ GLOBAL_LIST_EMPTY(fancy_shuttles)
var/icon/split_icon
var/fancy_shuttle_tag
/obj/effect/fancy_shuttle/New() // has to be very early so others can grab it
INITIALIZE_IMMEDIATE(/obj/effect/fancy_shuttle)
/obj/effect/fancy_shuttle/Initialize(mapload) // has to be very early so others can grab it
. = ..()
if(!fancy_shuttle_tag)
error("Fancy shuttle with no tag at [x],[y],[z]! Type is: [type]")
+5 -3
View File
@@ -14,9 +14,11 @@
var/image/turf_image
var/list/decals
/obj/landed_holder/New(var/location = null, var/turf/simulated/shuttle/turf)
..(null)
my_turf = turf
/obj/landed_holder/Initialize(mapload)
. = ..()
if(loc)
my_turf = get_turf(src)
moveToNullspace()
/obj/landed_holder/proc/land_on(var/turf/T)
//Gather destination information
+6 -6
View File
@@ -117,9 +117,9 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
/obj/effect/statclick/ticket_list
var/current_state
/obj/effect/statclick/ticket_list/New(loc, name, state)
current_state = state
..()
/obj/effect/statclick/ticket_list/Initialize(mapload, text, target)
. = ..()
current_state = target
/obj/effect/statclick/ticket_list/Click()
GLOB.ahelp_tickets.BrowseTickets(current_state)
@@ -577,9 +577,9 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
/obj/effect/statclick/ahelp
var/datum/admin_help/ahelp_datum
/obj/effect/statclick/ahelp/New(loc, datum/admin_help/AH)
ahelp_datum = AH
..(loc)
/obj/effect/statclick/ahelp/Initialize(mapload, text, target)
. = ..()
ahelp_datum = target
/obj/effect/statclick/ahelp/update()
return ..(ahelp_datum.name)
+2 -1
View File
@@ -28,7 +28,8 @@ GLOBAL_LIST_BOILERPLATE(all_debugging_effects, /obj/effect/debugging)
icon = 'icons/480x480.dmi'
icon_state = "25percent"
/obj/effect/debugging/camera_range/New()
/obj/effect/debugging/camera_range/Initialize(mapload, ...)
. = ..()
src.pixel_x = -224
src.pixel_y = -224
+3 -2
View File
@@ -11,8 +11,9 @@
name = "low prob loot spawner"
icon_state = "grabbed"
low_probability = 1
delete_me = TRUE
/obj/effect/landmark/loot_spawn/New()
/obj/effect/landmark/loot_spawn/Initialize(mapload)
switch(pick( \
low_probability * 1000;"nothing", \
@@ -345,7 +346,7 @@
//for(var/i=0,i<num,i++) //VORESTATION AI TEMPORARY REMOVAL
//new /mob/living/simple_mob/hostile/viscerator(C) //VORESTATION AI TEMPORARY REMOVAL
qdel(src)
. = ..()
/**********************************/
+2 -2
View File
@@ -9,8 +9,8 @@ var/list/blob_nodes = list()
health_regen = 3
point_return = 50
/obj/structure/blob/node/New(var/newloc)
..()
/obj/structure/blob/node/Initialize(mapload, new_overmind)
. = ..()
blob_nodes += src
START_PROCESSING(SSobj, src)
update_icon()
+2 -2
View File
@@ -23,8 +23,8 @@
/obj/item/blobcore_chunk/is_open_container()
return 1
/obj/item/blobcore_chunk/New(var/atom/newloc, var/datum/blob_type/parentblob = null)
..(newloc)
/obj/item/blobcore_chunk/Initialize(mapload, var/datum/blob_type/parentblob = null)
. = ..()
create_reagents(120)
setup_blobtype(parentblob)
+2 -2
View File
@@ -30,11 +30,11 @@
melee_damage_lower = 1
melee_damage_upper = 2
/mob/living/simple_mob/hostile/blob/spore/New(var/newloc, var/obj/structure/blob/factory/my_factory)
/mob/living/simple_mob/hostile/blob/spore/Initialize(mapload, var/obj/structure/blob/factory/my_factory)
if(istype(my_factory))
factory = my_factory
factory.spores += src
..(newloc)
. = ..()
/mob/living/simple_mob/hostile/blob/spore/Destroy()
if(factory)
+2 -1
View File
@@ -2,7 +2,8 @@
//Original Casino Code created by Shadowfire117#1269 - Ported from CHOMPstation
//Modified by GhostActual#2055 for use with VOREstation
/obj/item/deck/cards/casino/New()
/obj/item/deck/cards/casino/Initialize(mapload)
. = ..()
var/datum/playingcard/casino/P
for(var/suit in list("spades","clubs","diamonds","hearts"))
+24 -16
View File
@@ -94,16 +94,21 @@
/obj/item/clothing/accessory/hawaiian_random
name = "random hawaiian shirt"
desc = "A random set of hawaiian shirts for style."
/obj/item/clothing/accessory/hawaiian_random/New()
return pick(
prob(2);/obj/item/clothing/accessory/hawaiian,
prob(2);/obj/item/clothing/accessory/hawaiian/blue,
prob(2);/obj/item/clothing/accessory/hawaiian/pink,
prob(2);/obj/item/clothing/accessory/hawaiian/red,
prob(2);/obj/item/clothing/accessory/hawaiian/yellow
)
/obj/item/clothing/accessory/hawaii/random/Initialize(mapload)
var/random_color = pick("blue", "pink", "red", "yellow", "cyan")
icon_state = "hawaiian_[random_color]"
name = "[random_color] hawaiian shirt"
. = ..()
/obj/item/clothing/accessory/hawaii/random_flower
name = "flower-pattern shirt"
/obj/item/clothing/accessory/hawaii/random_flower/Initialize(mapload)
if(prob(50))
icon_state = "hawaiian_red"
color = color_rotation(rand(-11,12)*15)
. = ..()
/*
* 80s
@@ -137,13 +142,16 @@
desc = "A classic themed neosilk tropical shirt. This one makes you feel out of touch."
icon_state = "miamivice"
/obj/item/clothing/accessory/tropical_random/New()
return pick(
prob(2);/obj/item/clothing/accessory/tropical,
prob(2);/obj/item/clothing/accessory/tropical/green,
prob(2);/obj/item/clothing/accessory/tropical/pink,
prob(2);/obj/item/clothing/accessory/tropical/blue
)
/obj/item/clothing/accessory/tropical_random/Initialize(mapload)
. = ..()
var/obj/item/clothing/accessory/new_item = pick(/obj/item/clothing/accessory/tropical,
/obj/item/clothing/accessory/tropical/green,
/obj/item/clothing/accessory/tropical/pink,
/obj/item/clothing/accessory/tropical/blue)
name = initial(new_item.name)
desc = initial(new_item.desc)
icon_state = initial(new_item.icon_state)
/*
* Chaps
+20 -21
View File
@@ -42,8 +42,8 @@
origin_tech = list(TECH_ILLEGAL = 3)
var/global/list/clothing_choices
/obj/item/clothing/under/chameleon/New()
..()
/obj/item/clothing/under/chameleon/Initialize(mapload)
. = ..()
if(!clothing_choices)
var/blocked = list(src.type, /obj/item/clothing/under/gimmick)//Prevent infinite loops and bad jumpsuits.
clothing_choices = generate_chameleon_choices(/obj/item/clothing/under, blocked)
@@ -79,8 +79,8 @@
body_parts_covered = 0
var/global/list/clothing_choices
/obj/item/clothing/head/chameleon/New()
..()
/obj/item/clothing/head/chameleon/Initialize(mapload)
. = ..()
if(!clothing_choices)
var/blocked = list(src.type)//Prevent infinite loops and bad hats.
clothing_choices = generate_chameleon_choices(/obj/item/clothing/head, blocked)
@@ -114,8 +114,8 @@
origin_tech = list(TECH_ILLEGAL = 3)
var/global/list/clothing_choices
/obj/item/clothing/suit/chameleon/New()
..()
/obj/item/clothing/suit/chameleon/Initialize(mapload)
. = ..()
if(!clothing_choices)
var/blocked = list(src.type, /obj/item/clothing/suit/cyborg_suit, /obj/item/clothing/suit/justice, /obj/item/clothing/suit/greatcoat)
clothing_choices = generate_chameleon_choices(/obj/item/clothing/suit, blocked)
@@ -148,8 +148,8 @@
origin_tech = list(TECH_ILLEGAL = 3)
var/global/list/clothing_choices
/obj/item/clothing/shoes/chameleon/New()
..()
/obj/item/clothing/shoes/chameleon/Initialize(mapload)
. = ..()
if(!clothing_choices)
var/blocked = list(src.type, /obj/item/clothing/shoes/syndigaloshes, /obj/item/clothing/shoes/cyborg)//prevent infinite loops and bad shoes.
clothing_choices = generate_chameleon_choices(/obj/item/clothing/shoes, blocked)
@@ -182,8 +182,8 @@
origin_tech = list(TECH_ILLEGAL = 3)
var/global/list/clothing_choices
/obj/item/storage/backpack/chameleon/New()
..()
/obj/item/storage/backpack/chameleon/Initialize(mapload)
. = ..()
if(!clothing_choices)
var/blocked = list(src.type, /obj/item/storage/backpack/satchel/withwallet)
clothing_choices = generate_chameleon_choices(/obj/item/storage/backpack, blocked)
@@ -235,8 +235,8 @@
origin_tech = list(TECH_ILLEGAL = 3)
var/global/list/clothing_choices
/obj/item/clothing/gloves/chameleon/New()
..()
/obj/item/clothing/gloves/chameleon/Initialize(mapload)
. = ..()
if(!clothing_choices)
clothing_choices = generate_chameleon_choices(/obj/item/clothing/gloves, list(src.type))
@@ -269,8 +269,8 @@
origin_tech = list(TECH_ILLEGAL = 3)
var/global/list/clothing_choices
/obj/item/clothing/mask/chameleon/New()
..()
/obj/item/clothing/mask/chameleon/Initialize(mapload)
. = ..()
if(!clothing_choices)
clothing_choices = generate_chameleon_choices(/obj/item/clothing/mask, list(src.type))
@@ -338,8 +338,8 @@
origin_tech = list(TECH_ILLEGAL = 3)
var/global/list/clothing_choices
/obj/item/storage/belt/chameleon/New()
..()
/obj/item/storage/belt/chameleon/Initialize(mapload)
. = ..()
if(!clothing_choices)
clothing_choices = generate_chameleon_choices(/obj/item/storage/belt, list(src.type))
@@ -378,8 +378,8 @@
origin_tech = list(TECH_ILLEGAL = 3)
var/global/list/clothing_choices
/obj/item/clothing/accessory/chameleon/New()
..()
/obj/item/clothing/accessory/chameleon/Initialize(mapload)
. = ..()
if(!clothing_choices)
var/blocked = list(src.type, /obj/item/clothing/accessory/storage)
clothing_choices = generate_chameleon_choices(/obj/item/clothing/accessory, blocked)
@@ -422,15 +422,14 @@
var/obj/item/projectile/copy_projectile
var/global/list/gun_choices
/obj/item/gun/energy/chameleon/New()
..()
/obj/item/gun/energy/chameleon/Initialize(mapload)
. = ..()
if(!gun_choices)
gun_choices = list()
for(var/gun_type in typesof(/obj/item/gun/) - src.type)
var/obj/item/gun/G = gun_type
src.gun_choices[initial(G.name)] = gun_type
return
/obj/item/gun/energy/chameleon/consume_next_projectile()
var/obj/item/projectile/P = ..()
+12 -10
View File
@@ -38,8 +38,8 @@
gunshot_residue = null
/obj/item/clothing/New()
..()
/obj/item/clothing/Initialize(mapload)
. = ..()
if(starting_accessories)
for(var/T in starting_accessories)
var/obj/item/clothing/accessory/tie = new T(src)
@@ -288,8 +288,10 @@
icon_state = "block"
slot_flags = SLOT_EARS | SLOT_TWOEARS
/obj/item/clothing/ears/offear/New(var/obj/O)
if(O)
/obj/item/clothing/ears/offear/Initialize(mapload)
. = ..()
if(isobj(loc))
var/obj/O = loc
name = O.name
desc = O.desc
icon = O.icon
@@ -444,8 +446,8 @@
var/datum/unarmed_attack/special_attack = null //do the gloves have a special unarmed attack?
var/special_attack_type = null
/obj/item/clothing/gloves/New()
..()
/obj/item/clothing/gloves/Initialize(mapload)
. = ..()
if(special_attack_type && ispath(special_attack_type))
special_attack = new special_attack_type
@@ -1003,8 +1005,8 @@
return
..()
/obj/item/clothing/under/New()
..()
/obj/item/clothing/under/Initialize(mapload)
. = ..()
if(worn_state)
LAZYSET(item_state_slots, slot_w_uniform_str, worn_state)
else
@@ -1198,9 +1200,9 @@
to_chat(usr, span_notice("You roll down your [src]'s sleeves."))
update_clothing_icon()
/obj/item/clothing/under/rank/New()
/obj/item/clothing/under/rank/Initialize(mapload)
. = ..()
sensor_mode = pick(0,1,2,3)
..()
/obj/item/clothing/Destroy()
STOP_PROCESSING(SSobj, src)
+8 -4
View File
@@ -9,7 +9,7 @@
SPECIES_VOX = 'icons/inventory/feet/mob_vox.dmi',
SPECIES_WEREBEAST = 'icons/inventory/feet/mob_vr_werebeast.dmi')
/obj/item/clothing/shoes/New()
/obj/item/clothing/shoes/Initialize(mapload)
inside_emotes = list(
span_red("You feel weightless for a moment as \the [name] moves upwards."),
span_red("\The [name] are a ride you've got no choice but to participate in as the wearer moves."),
@@ -17,7 +17,7 @@
span_red("More motion while \the [name] move, feet pressing down against you.")
)
..()
. = ..()
/* //Must be handled in clothing.dm
/obj/item/clothing/shoes/proc/handle_movement(var/turf/walking, var/running)
if(prob(1) && !recent_squish)
@@ -168,8 +168,12 @@
SPECIES_VOX = 'icons/inventory/uniform/mob_vox.dmi',
SPECIES_WEREBEAST = 'icons/inventory/uniform/mob_vr_werebeast.dmi')
/obj/item/clothing/under/New(var/mob/living/carbon/human/H)
..()
/obj/item/clothing/under/Initialize(mapload)
. = ..()
if(!ishuman(loc))
return
var/mob/living/carbon/human/H = loc
sensorpref = isnull(H) ? 1 : (ishuman(H) ? H.sensorpref : 1)
switch(sensorpref)
if(1) sensor_mode = 0 //Sensors off
+4 -4
View File
@@ -2,8 +2,8 @@
name = DEVELOPER_WARNING_NAME
var/obj/item/storage/internal/pockets
/obj/item/clothing/suit/storage/New()
..()
/obj/item/clothing/suit/storage/Initialize(mapload)
. = ..()
pockets = new/obj/item/storage/internal(src)
pockets.max_w_class = ITEMSIZE_SMALL //fit only pocket sized items
pockets.max_storage_space = ITEMSIZE_COST_SMALL * 2
@@ -94,8 +94,8 @@
icon_state = "[toggleicon][open ? "_open" : ""][hood_up ? "_t" : ""]"
//New Vest 4 pocket storage and badge toggles, until suit accessories are a thing.
/obj/item/clothing/suit/storage/vest/heavy/New()
..()
/obj/item/clothing/suit/storage/vest/heavy/Initialize(mapload)
. = ..()
pockets = new/obj/item/storage/internal(src)
pockets.max_w_class = ITEMSIZE_SMALL
pockets.max_storage_space = ITEMSIZE_COST_SMALL * 4
+3
View File
@@ -31,6 +31,9 @@
cash_stored = rand(10, 70)*10
transaction_devices += src // Global reference list to be properly set up by /proc/setup_economy()
/obj/machinery/cash_register/Destroy()
transaction_devices -= src
. = ..()
/obj/machinery/cash_register/examine(mob/user as mob)
. = ..(user)
+2 -2
View File
@@ -88,8 +88,8 @@
/obj/item/moneybag/vault
/obj/item/moneybag/vault/New()
..()
/obj/item/moneybag/vault/Initialize(mapload)
. = ..()
new /obj/item/coin/silver(src)
new /obj/item/coin/silver(src)
new /obj/item/coin/silver(src)
+6 -1
View File
@@ -24,13 +24,18 @@
// Claim machine ID
/obj/item/retail_scanner/New()
/obj/item/retail_scanner/Initialize(mapload)
. = ..()
machine_id = "[station_name()] RETAIL #[num_financial_terminals++]"
if(locate(/obj/structure/table) in loc)
pixel_y = 3
transaction_devices += src // Global reference list to be properly set up by /proc/setup_economy()
/obj/item/retail_scanner/Destroy()
transaction_devices -= src
. = ..()
// Always face the user when put on a table
/obj/item/retail_scanner/afterattack(atom/movable/AM, mob/user, proximity)
if(!proximity) return
+2 -2
View File
@@ -119,8 +119,8 @@ var/global/list/alt_farmanimals = list()
var/datum/entopic/ent_debug
/obj/item/entopic_debug/New()
..()
/obj/item/entopic_debug/Initialize(mapload)
. = ..()
ent_debug = new(aholder = src, aicon = icon, aicon_state = "holo_Jin")
/proc/entopic_icon_helper(var/atom/A,var/holo = TRUE)
+4 -4
View File
@@ -23,8 +23,8 @@
icon_state = "large"
anchored = TRUE
/obj/effect/meteor_falling/New()
..()
/obj/effect/meteor_falling/Initialize(mapload)
. = ..()
SpinAnimation()
meteor_fall()
@@ -76,8 +76,8 @@
density = TRUE
climbable = TRUE
/obj/structure/meteorite/New()
..()
/obj/structure/meteorite/Initialize(mapload)
. = ..()
icon = turn(icon, 90)
switch(rand(1,100))
if(1 to 60)
+32 -34
View File
@@ -259,11 +259,11 @@ Gunshots/explosions/opening doors/less rare audio (done)
for(var/mob/O in oviewers(world.view , my_target))
to_chat(O, span_bolddanger("[my_target] stumbles around."))
/obj/effect/fake_attacker/New()
..()
/obj/effect/fake_attacker/Initialize(mapload)
. = ..()
QDEL_IN(src, 30 SECONDS)
step_away(src,my_target,2)
spawn attack_loop()
addtimer(CALLBACK(src, PROC_REF(attack_loop)), rand(5, 10), TIMER_DELETE_ME)
/obj/effect/fake_attacker/Destroy()
if(my_target)
@@ -291,35 +291,35 @@ Gunshots/explosions/opening doors/less rare audio (done)
/obj/effect/fake_attacker/proc/attack_loop()
while(1)
sleep(rand(5,10))
if(src.health < 0)
collapse()
continue
if(get_dist(src,my_target) > 1)
src.set_dir(get_dir(src,my_target))
step_towards(src,my_target)
updateimage()
else
if(prob(15))
if(weapon_name)
my_target << sound(pick('sound/weapons/genhit1.ogg', 'sound/weapons/genhit2.ogg', 'sound/weapons/genhit3.ogg'))
my_target.show_message(span_bolddanger("[my_target] has been attacked with [weapon_name] by [src.name]!"), 1)
my_target.halloss += 8
if(prob(20)) my_target.eye_blurry += 3
if(prob(33))
if(!locate(/obj/effect/overlay) in my_target.loc)
fake_blood(my_target)
else
my_target << sound(pick('sound/weapons/punch1.ogg','sound/weapons/punch2.ogg','sound/weapons/punch3.ogg','sound/weapons/punch4.ogg'))
my_target.show_message(span_bolddanger("[src.name] has punched [my_target]!"), 1)
my_target.halloss += 4
if(prob(33))
if(!locate(/obj/effect/overlay) in my_target.loc)
fake_blood(my_target)
if(src.health < 0)
collapse()
addtimer(CALLBACK(src, PROC_REF(attack_loop)), rand(5, 10), TIMER_DELETE_ME)
return
if(get_dist(src,my_target) > 1)
src.set_dir(get_dir(src,my_target))
step_towards(src,my_target)
updateimage()
else
if(prob(15))
step_away(src,my_target,2)
if(weapon_name)
my_target << sound(pick('sound/weapons/genhit1.ogg', 'sound/weapons/genhit2.ogg', 'sound/weapons/genhit3.ogg'))
my_target.show_message(span_bolddanger("[my_target] has been attacked with [weapon_name] by [src.name]!"), 1)
my_target.halloss += 8
if(prob(20)) my_target.eye_blurry += 3
if(prob(33))
if(!locate(/obj/effect/overlay) in my_target.loc)
fake_blood(my_target)
else
my_target << sound(pick('sound/weapons/punch1.ogg','sound/weapons/punch2.ogg','sound/weapons/punch3.ogg','sound/weapons/punch4.ogg'))
my_target.show_message(span_bolddanger("[src.name] has punched [my_target]!"), 1)
my_target.halloss += 4
if(prob(33))
if(!locate(/obj/effect/overlay) in my_target.loc)
fake_blood(my_target)
if(prob(15))
step_away(src,my_target,2)
addtimer(CALLBACK(src, PROC_REF(attack_loop)), rand(5, 10), TIMER_DELETE_ME)
/obj/effect/fake_attacker/proc/collapse()
collapse = 1
@@ -330,9 +330,7 @@ Gunshots/explosions/opening doors/less rare audio (done)
O.name = "blood"
var/image/I = image('icons/effects/blood.dmi',O,"floor[rand(1,7)]",O.dir,1)
target << I
spawn(300)
qdel(O)
return
QDEL_IN(O, 30 SECONDS)
var/list/non_fakeattack_weapons = list(/obj/item/gun/projectile, /obj/item/ammo_magazine/s357,\
/obj/item/gun/energy/crossbow, /obj/item/melee/energy/sword,\
+2 -1
View File
@@ -177,7 +177,8 @@
var/ice_creamed = 0
var/cone_type
/obj/item/reagent_containers/food/snacks/icecream/New()
/obj/item/reagent_containers/food/snacks/icecream/Initialize(mapload)
. = ..()
create_reagents(20)
reagents.add_reagent(REAGENT_ID_NUTRIMENT, 5)
+2 -2
View File
@@ -14,8 +14,8 @@
icon_state = "cag_black"
blanks = 0
/obj/item/deck/cah/New()
..()
/obj/item/deck/cah/Initialize(mapload)
. = ..()
var/datum/playingcard/P
for(var/cardtext in card_text_list)
P = new()
+2 -2
View File
@@ -7,8 +7,8 @@
icon_state = "card_pack_spaceball"
parentdeck = "spaceball"
/obj/item/pack/spaceball/New()
..()
/obj/item/pack/spaceball/Initialize(mapload)
. = ..()
var/datum/playingcard/P
var/i
var/year = 300 + text2num(time2text(world.timeofday, "YYYY")) //VOREStation Edit
+4 -4
View File
@@ -6,8 +6,8 @@
desc = "For all your occult needs!"
icon_state = "deck_tarot"
/obj/item/deck/tarot/New()
..()
/obj/item/deck/tarot/Initialize(mapload)
. = ..()
var/datum/playingcard/P
for(var/name in list("Fool","Magician","High Priestess","Empress","Emperor","Hierophant","Lovers","Chariot","Strength","Hermit","Wheel of Fortune","Justice","Hanged Man","Death","Temperance","Devil","Tower","Star","Moon","Sun","Judgement","World"))
@@ -49,8 +49,8 @@
desc = "A limited edition tarot deck for the scene-girl inclined!"
icon_state = "dark_tarot"
/obj/item/deck/dark_tarot/New()
..()
/obj/item/deck/dark_tarot/Initialize(mapload)
. = ..()
var/datum/playingcard/P
for(var/name in list("fool","magician","high priestess","empress","emperor","hierophant","lovers","chariot","strength","hermit","wheel of fortune","justice","hanged man","death","temperance","devil","tower","star","moon","sun","judgement","world","white dragon with blue eyes","charred lizard","dark lotus","bash","reverse","rules","acid","abyss","maw"))
+2 -5
View File
@@ -15,8 +15,8 @@
desc = "A Wiz-Off deck. Fight an arcane battle for the fate of the universe: Draw 5! Play 5! Best of 5!"
icon_state = "wizoff"
/obj/item/deck/wizoff/New()
..()
/obj/item/deck/wizoff/Initialize(mapload)
. = ..()
var/datum/playingcard/P
for(var/cardtext in card_wiz_list)
P = new()
@@ -64,9 +64,6 @@
title = "WizOff Guide"
drop_sound = 'sound/items/drop/paper.ogg'
pickup_sound = 'sound/items/pickup/paper.ogg'
/obj/item/book/manual/wizzoffguide/New()
..()
dat = {"
<html>
+4 -4
View File
@@ -8,8 +8,8 @@
var/list/genes = list()
var/genesource = "unknown"
/obj/item/disk/botany/New()
..()
/obj/item/disk/botany/Initialize(mapload)
. = ..()
pixel_x = rand(-5,5)
pixel_y = rand(-5,5)
@@ -27,8 +27,8 @@
name = "flora disk box"
desc = "A box of flora data disks, apparently."
/obj/item/storage/box/botanydisk/New()
..()
/obj/item/storage/box/botanydisk/Initialize(mapload)
. = ..()
for(var/i = 0;i<7;i++)
new /obj/item/disk/botany(src)
@@ -6,10 +6,10 @@
var/obj/item/electronic_assembly/device/EA
/obj/item/assembly/electronic_assembly/New()
/obj/item/assembly/electronic_assembly/Initialize(mapload)
. = ..()
EA = new(src)
EA.holder = src
..()
/obj/item/assembly/electronic_assembly/attackby(obj/item/I as obj, mob/user as mob)
if (I.has_tool_quality(TOOL_CROWBAR))
@@ -70,8 +70,8 @@
max_complexity = IC_COMPLEXITY_BASE * 3/4
/obj/item/electronic_assembly/device/New()
..()
/obj/item/electronic_assembly/device/Initialize(mapload)
. = ..()
var/obj/item/integrated_circuit/built_in/device_input/input = new(src)
var/obj/item/integrated_circuit/built_in/device_output/output = new(src)
input.assembly = src
@@ -31,14 +31,14 @@ a creative player the means to solve many problems. Circuits are held inside an
/obj/item/integrated_circuit/proc/any_examine(mob/user)
return
/obj/item/integrated_circuit/New()
/obj/item/integrated_circuit/Initialize(mapload)
. = ..()
displayed_name = name
if(!size) size = w_class
if(size == -1) size = 0
setup_io(inputs, /datum/integrated_io, inputs_default)
setup_io(outputs, /datum/integrated_io, outputs_default)
setup_io(activators, /datum/integrated_io/activate)
..()
/obj/item/integrated_circuit/proc/on_data_written() //Override this for special behaviour when new data gets pushed to the circuit.
return
@@ -337,8 +337,8 @@
/obj/item/storage/bag/circuits/mini/arithmetic/all // Don't believe this will ever be needed.
spawn_flags_to_use = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/storage/bag/circuits/mini/arithmetic/New()
..()
/obj/item/storage/bag/circuits/mini/arithmetic/Initialize(mapload)
. = ..()
for(var/obj/item/integrated_circuit/arithmetic/IC in all_integrated_circuits)
if(IC.spawn_flags & spawn_flags_to_use)
for(var/i = 1 to 4)
@@ -354,8 +354,8 @@
/obj/item/storage/bag/circuits/mini/trig/all // Ditto
spawn_flags_to_use = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/storage/bag/circuits/mini/trig/New()
..()
/obj/item/storage/bag/circuits/mini/trig/Initialize(mapload)
. = ..()
for(var/obj/item/integrated_circuit/trig/IC in all_integrated_circuits)
if(IC.spawn_flags & spawn_flags_to_use)
for(var/i = 1 to 4)
@@ -371,8 +371,8 @@
/obj/item/storage/bag/circuits/mini/input/all
spawn_flags_to_use = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/storage/bag/circuits/mini/input/New()
..()
/obj/item/storage/bag/circuits/mini/input/Initialize(mapload)
. = ..()
for(var/obj/item/integrated_circuit/input/IC in all_integrated_circuits)
if(IC.spawn_flags & spawn_flags_to_use)
for(var/i = 1 to 4)
@@ -388,8 +388,8 @@
/obj/item/storage/bag/circuits/mini/output/all
spawn_flags_to_use = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/storage/bag/circuits/mini/output/New()
..()
/obj/item/storage/bag/circuits/mini/output/Initialize(mapload)
. = ..()
for(var/obj/item/integrated_circuit/output/IC in all_integrated_circuits)
if(IC.spawn_flags & spawn_flags_to_use)
for(var/i = 1 to 4)
@@ -405,8 +405,8 @@
/obj/item/storage/bag/circuits/mini/memory/all
spawn_flags_to_use = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/storage/bag/circuits/mini/memory/New()
..()
/obj/item/storage/bag/circuits/mini/memory/Initialize(mapload)
. = ..()
for(var/obj/item/integrated_circuit/memory/IC in all_integrated_circuits)
if(IC.spawn_flags & spawn_flags_to_use)
for(var/i = 1 to 4)
@@ -422,8 +422,8 @@
/obj/item/storage/bag/circuits/mini/logic/all
spawn_flags_to_use = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/storage/bag/circuits/mini/logic/New()
..()
/obj/item/storage/bag/circuits/mini/logic/Initialize(mapload)
. = ..()
for(var/obj/item/integrated_circuit/logic/IC in all_integrated_circuits)
if(IC.spawn_flags & spawn_flags_to_use)
for(var/i = 1 to 4)
@@ -439,8 +439,8 @@
/obj/item/storage/bag/circuits/mini/time/all
spawn_flags_to_use = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/storage/bag/circuits/mini/time/New()
..()
/obj/item/storage/bag/circuits/mini/time/Initialize(mapload)
. = ..()
for(var/obj/item/integrated_circuit/time/IC in all_integrated_circuits)
if(IC.spawn_flags & spawn_flags_to_use)
for(var/i = 1 to 4)
@@ -456,8 +456,8 @@
/obj/item/storage/bag/circuits/mini/reagents/all
spawn_flags_to_use = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/storage/bag/circuits/mini/reagents/New()
..()
/obj/item/storage/bag/circuits/mini/reagents/Initialize(mapload)
. = ..()
for(var/obj/item/integrated_circuit/reagent/IC in all_integrated_circuits)
if(IC.spawn_flags & spawn_flags_to_use)
for(var/i = 1 to 4)
@@ -473,8 +473,8 @@
/obj/item/storage/bag/circuits/mini/transfer/all
spawn_flags_to_use = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/storage/bag/circuits/mini/transfer/New()
..()
/obj/item/storage/bag/circuits/mini/transfer/Initialize(mapload)
. = ..()
for(var/obj/item/integrated_circuit/transfer/IC in all_integrated_circuits)
if(IC.spawn_flags & spawn_flags_to_use)
for(var/i = 1 to 4)
@@ -490,8 +490,8 @@
/obj/item/storage/bag/circuits/mini/converter/all
spawn_flags_to_use = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/storage/bag/circuits/mini/converter/New()
..()
/obj/item/storage/bag/circuits/mini/converter/Initialize(mapload)
. = ..()
for(var/obj/item/integrated_circuit/converter/IC in all_integrated_circuits)
if(IC.spawn_flags & spawn_flags_to_use)
for(var/i = 1 to 4)
@@ -506,8 +506,8 @@
/obj/item/storage/bag/circuits/mini/smart/all
spawn_flags_to_use = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/storage/bag/circuits/mini/smart/New()
..()
/obj/item/storage/bag/circuits/mini/smart/Initialize(mapload)
. = ..()
for(var/obj/item/integrated_circuit/smart/IC in all_integrated_circuits)
if(IC.spawn_flags & spawn_flags_to_use)
for(var/i = 1 to 4)
@@ -522,8 +522,8 @@
/obj/item/storage/bag/circuits/mini/manipulation/all
spawn_flags_to_use = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/storage/bag/circuits/mini/manipulation/New()
..()
/obj/item/storage/bag/circuits/mini/manipulation/Initialize(mapload)
. = ..()
for(var/obj/item/integrated_circuit/manipulation/IC in all_integrated_circuits)
if(IC.spawn_flags & spawn_flags_to_use)
for(var/i = 1 to 4)
@@ -539,8 +539,8 @@
/obj/item/storage/bag/circuits/mini/power/all
spawn_flags_to_use = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/storage/bag/circuits/mini/power/New()
..()
/obj/item/storage/bag/circuits/mini/power/Initialize(mapload)
. = ..()
for(var/obj/item/integrated_circuit/passive/power/IC in all_integrated_circuits)
if(IC.spawn_flags & spawn_flags_to_use)
for(var/i = 1 to 4)
@@ -120,8 +120,8 @@
var/volume = 60
var/list/fuel = list(REAGENT_ID_PHORON = 50000, REAGENT_ID_SLIMEJELLY = 25000, REAGENT_ID_FUEL = 15000, REAGENT_ID_CARBON = 10000, REAGENT_ID_ETHANOL= 10000, REAGENT_ID_NUTRIMENT = 8000, REAGENT_ID_BLOOD = 5000)
/obj/item/integrated_circuit/passive/power/chemical_cell/New()
..()
/obj/item/integrated_circuit/passive/power/chemical_cell/Initialize(mapload)
. = ..()
create_reagents(volume)
/obj/item/integrated_circuit/passive/power/chemical_cell/interact(mob/user)
@@ -16,12 +16,12 @@
power_draw_per_use = 4
var/number_of_inputs = 2
/obj/item/integrated_circuit/transfer/multiplexer/New()
/obj/item/integrated_circuit/transfer/multiplexer/Initialize(mapload)
for(var/i = 1 to number_of_inputs)
inputs["input [i]"] = IC_PINTYPE_ANY // This is just a string since pins don't get built until ..() is called.
// inputs += "input [i]"
complexity = number_of_inputs
..()
. = ..()
desc += " It has [number_of_inputs] input pins."
extended_desc += " This multiplexer has a range from 1 to [inputs.len - 1]."
@@ -64,13 +64,13 @@
power_draw_per_use = 4
var/number_of_outputs = 2
/obj/item/integrated_circuit/transfer/demultiplexer/New()
/obj/item/integrated_circuit/transfer/demultiplexer/Initialize(mapload)
for(var/i = 1 to number_of_outputs)
// outputs += "output [i]"
outputs["output [i]"] = IC_PINTYPE_ANY
complexity = number_of_outputs
..()
. = ..()
desc += " It has [number_of_outputs] output pins."
extended_desc += " This demultiplexer has a range from 1 to [outputs.len]."
@@ -112,13 +112,13 @@
power_draw_per_use = 4
var/number_of_outputs = 2
/obj/item/integrated_circuit/transfer/pulsedemultiplexer/New()
/obj/item/integrated_circuit/transfer/pulsedemultiplexer/Initialize(mapload)
for(var/i = 1 to number_of_outputs)
// outputs += "output [i]"
activators["output [i]"] = IC_PINTYPE_PULSE_OUT
complexity = number_of_outputs
..()
. = ..()
desc += " It has [number_of_outputs] output pins."
extended_desc += " This pulse demultiplexer has a range from 1 to [activators.len - 1]."
@@ -540,9 +540,9 @@
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
power_draw_per_use = 15
/obj/item/integrated_circuit/input/microphone/New()
..()
listening_objects |= src
/obj/item/integrated_circuit/input/microphone/Initialize(mapload)
. = ..()
listening_objects += src
/obj/item/integrated_circuit/input/microphone/Destroy()
listening_objects -= src
@@ -145,8 +145,8 @@
var/obj/item/grenade/attached_grenade
var/pre_attached_grenade_type
/obj/item/integrated_circuit/manipulation/grenade/New()
..()
/obj/item/integrated_circuit/manipulation/grenade/Initialize(mapload)
. = ..()
if(pre_attached_grenade_type)
var/grenade = new pre_attached_grenade_type(src)
attach_grenade(grenade)
@@ -11,12 +11,12 @@
power_draw_per_use = 1
var/number_of_pins = 1
/obj/item/integrated_circuit/memory/New()
/obj/item/integrated_circuit/memory/Initialize(mapload)
for(var/i = 1 to number_of_pins)
inputs["input [i]"] = IC_PINTYPE_ANY // This is just a string since pins don't get built until ..() is called.
outputs["output [i]"] = IC_PINTYPE_ANY
. = ..()
complexity = number_of_pins
..()
/obj/item/integrated_circuit/memory/examine(mob/user)
. = ..()
@@ -4,8 +4,8 @@
unacidable = TRUE
origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_BIO = 2)
/obj/item/integrated_circuit/reagent/New()
..()
/obj/item/integrated_circuit/reagent/Initialize(mapload)
. = ..()
if(volume)
create_reagents(volume)
+6 -9
View File
@@ -127,20 +127,18 @@ Book Cart End
/obj/structure/bookcase/manuals/medical
name = "Medical Manuals bookcase"
/obj/structure/bookcase/manuals/medical/New()
..()
/obj/structure/bookcase/manuals/medical/Initialize(mapload)
new /obj/item/book/manual/medical_cloning(src)
new /obj/item/book/manual/wiki/medical_diagnostics_manual(src)
new /obj/item/book/manual/wiki/medical_diagnostics_manual(src)
new /obj/item/book/manual/wiki/medical_diagnostics_manual(src)
update_icon()
. = ..()
/obj/structure/bookcase/manuals/engineering
name = "Engineering Manuals bookcase"
/obj/structure/bookcase/manuals/engineering/New()
..()
/obj/structure/bookcase/manuals/engineering/Initialize(mapload)
new /obj/item/book/manual/wiki/engineering_construction(src)
new /obj/item/book/manual/engineering_particle_accelerator(src)
new /obj/item/book/manual/wiki/engineering_hacking(src)
@@ -148,15 +146,14 @@ Book Cart End
new /obj/item/book/manual/atmospipes(src)
new /obj/item/book/manual/engineering_singularity_safety(src)
new /obj/item/book/manual/evaguide(src)
update_icon()
. = ..()
/obj/structure/bookcase/manuals/research_and_development
name = "R&D Manuals bookcase"
/obj/structure/bookcase/manuals/research_and_development/New()
..()
/obj/structure/bookcase/manuals/research_and_development/Initialize(mapload)
new /obj/item/book/manual/research_and_development(src)
update_icon()
. = ..()
/*
-6
View File
@@ -1,9 +1,3 @@
/area
luminosity = TRUE
var/dynamic_lighting = TRUE
/area/New()
. = ..()
if(dynamic_lighting)
luminosity = FALSE
+1 -9
View File
@@ -1,17 +1,9 @@
/turf/New(loc, ..., is_turfchange=FALSE)
. = ..(args)
/turf/simulated
var/datum/sunlight_handler/shandler
var/shandler_noinit = FALSE
/turf/simulated/New(loc, ..., is_turfchange=FALSE) //This is so fucking awful have mercy on my soul for writing this
if(is_turfchange)
shandler_noinit = TRUE
. = ..(args)
/turf/simulated/Initialize(mapload)
. = ..(args)
. = ..()
if(mapload)
return INITIALIZE_HINT_LATELOAD
@@ -317,8 +317,6 @@ var/list/name_to_material
G.reinf_material = reinf_material
G.reinforce_girder()
if(girder_material)
if(istype(girder_material, /datum/material))
girder_material = girder_material.name
G.set_material(girder_material)
+17 -16
View File
@@ -93,9 +93,9 @@
var/last_revive_notification = null // world.time of last notification, used to avoid spamming players from defibs or cloners.
var/cleanup_timer // Refernece to a timer that will delete this mob if no client returns
/mob/observer/dead/New(mob/body, aghost = FALSE)
/mob/observer/dead/Initialize(mapload, aghost = FALSE)
appearance = body
appearance = loc
invisibility = INVISIBILITY_OBSERVER
layer = BELOW_MOB_LAYER
plane = PLANE_GHOSTS
@@ -107,30 +107,31 @@
see_in_dark = world.view //I mean. I don't even know if byond has occlusion culling... but...
var/turf/T
if(ismob(body))
T = get_turf(body) //Where is the body located?
attack_log = body.attack_log //preserve our attack logs by copying them to our ghost
gender = body.gender
if(body.mind && body.mind.name)
name = body.mind.name
if(ismob(loc))
var/mob/M = loc
T = get_turf(M) //Where is the body located?
attack_log = M.attack_log //preserve our attack logs by copying them to our ghost
gender = M.gender
if(M.mind && M.mind.name)
name = M.mind.name
else
if(body.real_name)
name = body.real_name
if(M.real_name)
name = M.real_name
else
if(gender == MALE)
name = capitalize(pick(first_names_male)) + " " + capitalize(pick(last_names))
else
name = capitalize(pick(first_names_female)) + " " + capitalize(pick(last_names))
mind = body.mind //we don't transfer the mind but we keep a reference to it.
mind = M.mind //we don't transfer the mind but we keep a reference to it.
// Fix for naked ghosts.
// Unclear why this isn't being grabbed by appearance.
if(ishuman(body))
var/mob/living/carbon/human/H = body
if(ishuman(M))
var/mob/living/carbon/human/H = M
add_overlay(H.overlays_standing)
default_pixel_x = body.default_pixel_x
default_pixel_y = body.default_pixel_y
default_pixel_x = M.default_pixel_x
default_pixel_y = M.default_pixel_y
if(!T && length(latejoin))
T = get_turf(pick(latejoin)) //Safety in case we cannot find the body's position
if(T)
@@ -145,7 +146,7 @@
animate(src, pixel_y = 2, time = 10, loop = -1)
animate(pixel_y = default_pixel_y, time = 10, loop = -1)
observer_mob_list += src
..()
. = ..()
visualnet = ghostnet
/mob/observer/dead/proc/checkStatic()
+2 -13
View File
@@ -7,8 +7,8 @@
name = "Inactive AI Eye"
icon_state = "AI-eye"
/mob/observer/eye/aiEye/New()
..()
/mob/observer/eye/aiEye/Initialize(mapload)
. = ..()
visualnet = cameranet
/mob/observer/eye/aiEye/Destroy()
@@ -74,17 +74,6 @@
client.eye = eyeobj
SetName(src.name)
// Intiliaze the eye by assigning it's "ai" variable to us. Then set it's loc to us.
/mob/living/silicon/ai/Initialize(mapload)
. = ..()
create_eyeobj()
if(eyeobj)
eyeobj.loc = src.loc
/mob/living/silicon/ai/Destroy()
destroy_eyeobj()
return ..()
/atom/proc/move_camera_by_click()
if(isAI(usr))
var/mob/living/silicon/ai/AI = usr
+2 -2
View File
@@ -8,6 +8,6 @@
acceleration = 0
owner_follows_eye = 1
/mob/observer/eye/maskEye/New()
..()
/mob/observer/eye/maskEye/Initialize(mapload)
. = ..()
visualnet = cultnet
@@ -18,8 +18,8 @@
#undef CULT_UPDATE_BUFFER
/mob/living/New()
..()
/mob/living/Initialize(mapload)
. = ..()
cultnet.updateVisibility(src, 0)
/mob/living/rejuvenate()
+1 -1
View File
@@ -86,7 +86,7 @@
syllables = list("sss","sSs","SSS")
/datum/language/xenos
name = "Hivemind"
name = LANGUAGE_HIVEMIND
desc = "Xenomorphs have the strange ability to commune over a psychic hivemind."
speech_verb = "hisses"
ask_verb = "hisses"
+2 -2
View File
@@ -1,5 +1,5 @@
/datum/language/binary
name = "Robot Talk"
name = LANGUAGE_ROBOT_TALK
desc = "Most human stations support free-use communications protocols and routing hubs for synthetic use."
colour = "say_quote_italics"
speech_verb = "states"
@@ -58,7 +58,7 @@
R.cell_use_power(C.active_usage)
/datum/language/binary/drone
name = "Drone Talk"
name = LANGUAGE_DRONE_TALK
desc = "A heavily encoded damage control coordination stream."
speech_verb = "transmits"
ask_verb = "transmits"
+2 -2
View File
@@ -338,8 +338,8 @@
w_class = ITEMSIZE_NORMAL
/obj/item/farmbot_arm_assembly/New(var/newloc, var/theTank)
..(newloc)
/obj/item/farmbot_arm_assembly/Initialize(mapload, var/theTank)
. = ..()
if(!theTank) // If an admin spawned it, it won't have a watertank it, so lets make one for em!
tank = new /obj/structure/reagent_dispensers/watertank(src)
else
@@ -52,7 +52,7 @@
/mob/living/carbon/alien/get_default_language()
if(default_language)
return default_language
return GLOB.all_languages["Xenomorph"]
return GLOB.all_languages[LANGUAGE_XENOLINGUA]
/mob/living/carbon/alien/say_quote(var/message, var/datum/language/speaking = null)
var/verb = "hisses"
@@ -4,7 +4,7 @@
adult_form = /mob/living/carbon/human
speak_emote = list("hisses")
icon_state = "larva"
language = "Hivemind"
language = LANGUAGE_HIVEMIND
maxHealth = 50
health = 50
faction = FACTION_XENO
@@ -12,5 +12,5 @@
/mob/living/carbon/alien/larva/Initialize(mapload)
. = ..()
add_language("Xenomorph") //Bonus language.
add_language(LANGUAGE_XENOLINGUA) //Bonus language.
internal_organs |= new /obj/item/organ/internal/xenos/hivenode(src)
+9 -8
View File
@@ -20,7 +20,8 @@
var/obj/item/radio/headset/mmi_radio/radio = null//Let's give it a radio.
var/mob/living/body_backup = null //add reforming
/obj/item/mmi/New()
/obj/item/mmi/Initialize(mapload)
. = ..()
radio = new(src)//Spawns a radio inside the MMI.
/obj/item/mmi/verb/toggle_radio()
@@ -185,16 +186,16 @@
var/ghost_query_type = null
var/datum/ghost_query/Q //This is used so we can unregister ourself.
/obj/item/mmi/digital/New()
/obj/item/mmi/digital/Initialize(mapload)
. = ..()
src.brainmob = new(src)
// src.brainmob.add_language("Robot Talk")//No binary without a binary communication device
// src.brainmob.add_language(LANGUAGE_ROBOT_TALK)//No binary without a binary communication device
src.brainmob.add_language(LANGUAGE_GALCOM)
src.brainmob.add_language(LANGUAGE_EAL)
src.brainmob.loc = src
src.brainmob.container = src
src.brainmob.set_stat(CONSCIOUS)
src.brainmob.silent = 0
radio = new(src)
dead_mob_list -= src.brainmob
/obj/item/mmi/digital/attackby(var/obj/item/O as obj, var/mob/user as mob)
@@ -300,8 +301,8 @@
origin_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 3, TECH_DATA = 4)
ghost_query_type = /datum/ghost_query/drone_brain
/obj/item/mmi/digital/robot/New()
..()
/obj/item/mmi/digital/robot/Initialize(mapload)
. = ..()
src.brainmob.name = "[pick(list("ADA","DOS","GNU","MAC","WIN","NJS","SKS","DRD","IOS","CRM","IBM","TEX","LVM","BSD",))]-[rand(1000, 9999)]"
src.brainmob.real_name = src.brainmob.name
@@ -343,8 +344,8 @@
..()
icon_state = "posibrain"
/obj/item/mmi/digital/posibrain/New()
..()
/obj/item/mmi/digital/posibrain/Initialize(mapload)
. = ..()
src.brainmob.name = "[pick(list("PBU","HIU","SINA","ARMA","OSI"))]-[rand(100, 999)]"
src.brainmob.real_name = src.brainmob.name
@@ -1,42 +1,42 @@
/mob/living/carbon/human/dummy
no_vore = TRUE //Dummies don't need bellies.
/mob/living/carbon/human/sergal/New(var/new_loc)
/mob/living/carbon/human/sergal/Initialize(mapload)
h_style = "Sergal Plain"
..(new_loc, SPECIES_SERGAL)
. = ..(mapload, SPECIES_SERGAL)
/mob/living/carbon/human/akula/New(var/new_loc)
..(new_loc, SPECIES_AKULA)
/mob/living/carbon/human/akula/Initialize(mapload)
. = ..(mapload, SPECIES_AKULA)
/mob/living/carbon/human/nevrean/New(var/new_loc)
..(new_loc, SPECIES_NEVREAN)
/mob/living/carbon/human/nevrean/Initialize(mapload)
. = ..(mapload, SPECIES_NEVREAN)
/mob/living/carbon/human/xenochimera/New(var/new_loc)
..(new_loc, SPECIES_XENOCHIMERA)
/mob/living/carbon/human/xenochimera/Initialize(mapload)
. = ..(mapload, SPECIES_XENOCHIMERA)
/mob/living/carbon/human/spider/New(var/new_loc)
..(new_loc, SPECIES_VASILISSAN)
/mob/living/carbon/human/spider/Initialize(mapload)
. = ..(mapload, SPECIES_VASILISSAN)
/mob/living/carbon/human/vulpkanin/New(var/new_loc)
..(new_loc, SPECIES_VULPKANIN)
/mob/living/carbon/human/vulpkanin/Initialize(mapload)
. = ..(mapload, SPECIES_VULPKANIN)
/mob/living/carbon/human/protean/New(var/new_loc)
..(new_loc, SPECIES_PROTEAN)
/mob/living/carbon/human/protean/Initialize(mapload)
. = ..(mapload, SPECIES_PROTEAN)
/mob/living/carbon/human/alraune/New(var/new_loc)
..(new_loc, SPECIES_ALRAUNE)
/mob/living/carbon/human/alraune/Initialize(mapload)
. = ..(mapload, SPECIES_ALRAUNE)
/mob/living/carbon/human/shadekin/New(var/new_loc)
..(new_loc, SPECIES_SHADEKIN)
/mob/living/carbon/human/shadekin/Initialize(mapload)
. = ..(mapload, SPECIES_SHADEKIN)
/mob/living/carbon/human/altevian/New(var/new_loc)
..(new_loc, SPECIES_ALTEVIAN)
/mob/living/carbon/human/altevian/Initialize(mapload)
. = ..(mapload, SPECIES_ALTEVIAN)
/mob/living/carbon/human/lleill/New(var/new_loc)
..(new_loc, SPECIES_LLEILL)
/mob/living/carbon/human/lleill/Initialize(mapload)
. = ..(mapload, SPECIES_LLEILL)
/mob/living/carbon/human/hanner/New(var/new_loc)
..(new_loc, SPECIES_HANNER)
/mob/living/carbon/human/hanner/Initialize(mapload)
. = ..(mapload, SPECIES_HANNER)
/mob/living/carbon/human/sparkledog/New(var/new_loc)
..(new_loc, SPECIES_SPARKLE)
/mob/living/carbon/human/sparkledog/Initialize(mapload)
. = ..(mapload, SPECIES_SPARKLE)
@@ -101,14 +101,13 @@
return
//Constructor allows passing the human to sync damages
/mob/living/simple_mob/slime/promethean/New(var/newloc, var/mob/living/carbon/human/H)
..()
if(H)
humanform = H
updatehealth()
/mob/living/simple_mob/slime/promethean/Initialize(mapload, var/mob/living/carbon/human/H)
. = ..()
if(!H)
return INITIALIZE_HINT_QDEL
else
qdel(src)
humanform = H
updatehealth()
/mob/living/simple_mob/slime/promethean/updatehealth()
if(!humanform)
@@ -3,8 +3,8 @@
name = SPECIES_XENO
name_plural = "Xenomorphs"
default_language = "Xenomorph"
language = "Hivemind"
default_language = LANGUAGE_XENOLINGUA
language = LANGUAGE_HIVEMIND
assisted_langs = list()
unarmed_types = list(/datum/unarmed_attack/claws/strong/xeno, /datum/unarmed_attack/bite/strong/xeno)
hud_type = /datum/hud_data/alien
@@ -7,24 +7,24 @@
new_alien.set_species("Xenomorph [alien_caste]")
return new_alien
/mob/living/carbon/human/xdrone/New(var/new_loc)
/mob/living/carbon/human/xdrone/Initialize(mapload)
h_style = "Bald"
faction = FACTION_XENO
..(new_loc, SPECIES_XENO_DRONE)
. = ..(mapload, SPECIES_XENO_DRONE)
/mob/living/carbon/human/xsentinel/New(var/new_loc)
/mob/living/carbon/human/xsentinel/Initialize(mapload)
h_style = "Bald"
faction = FACTION_XENO
..(new_loc, SPECIES_XENO_SENTINEL)
. = ..(mapload, SPECIES_XENO_SENTINEL)
/mob/living/carbon/human/xhunter/New(var/new_loc)
/mob/living/carbon/human/xhunter/Initialize(mapload)
h_style = "Bald"
faction = FACTION_XENO
..(new_loc, SPECIES_XENO_HUNTER)
. = ..(mapload, SPECIES_XENO_HUNTER)
/mob/living/carbon/human/xqueen/New(var/new_loc)
/mob/living/carbon/human/xqueen/Initialize(mapload)
h_style = "Bald"
faction = FACTION_XENO
..(new_loc, SPECIES_XENO_QUEEN)
. = ..(mapload, SPECIES_XENO_QUEEN)
//Removed AddInfectionImages, no longer required.
@@ -26,8 +26,8 @@
enhanced = 1
qdel(O)
*/
/obj/item/slime_extract/New()
..()
/obj/item/slime_extract/Initialize(mapload)
. = ..()
create_reagents(5)
// reagents.add_reagent(REAGENT_ID_SLIMEJELLY, 30)
@@ -326,8 +326,8 @@
var/Flush = 30
var/Uses = 5 // uses before it goes inert
/obj/item/slime_core/New()
..()
/obj/item/slime_core/Initialize(mapload)
. = ..()
create_reagents(100)
POWERFLAG = rand(1,10)
Uses = rand(7, 25)
+2 -2
View File
@@ -1,5 +1,5 @@
/mob/living/New()
..()
/mob/living/Initialize(mapload)
. = ..()
//Prime this list if we need it.
if(has_huds)
+19 -13
View File
@@ -106,7 +106,8 @@ var/list/ai_verbs_default = list(
remove_verb(src, ai_verbs_default)
remove_verb(src, silicon_subsystems)
/mob/living/silicon/ai/New(loc, var/datum/ai_laws/L, var/obj/item/mmi/B, var/safety = 0)
/mob/living/silicon/ai/Initialize(mapload, is_decoy, datum/ai_laws/L, obj/item/mmi/B, safety = FALSE)
announcement = new()
announcement.title = "A.I. Announcement"
announcement.announcement_type = "A.I. Announcement"
@@ -128,7 +129,6 @@ var/list/ai_verbs_default = list(
anchored = TRUE
canmove = 0
density = TRUE
loc = loc
if(!is_dummy)
aiCommunicator = new /obj/item/communicator/integrated(src)
@@ -156,7 +156,7 @@ var/list/ai_verbs_default = list(
add_ai_verbs(src)
//Languages
add_language("Robot Talk", 1)
add_language(LANGUAGE_ROBOT_TALK, 1)
add_language(LANGUAGE_GALCOM, 1)
add_language(LANGUAGE_SOL_COMMON, 1)
add_language(LANGUAGE_UNATHI, 1)
@@ -175,20 +175,25 @@ var/list/ai_verbs_default = list(
if(!safety)//Only used by AIize() to successfully spawn an AI.
if (!B)//If there is no player/brain inside.
empty_playable_ai_cores += new/obj/structure/AIcore/deactivated(loc)//New empty terminal.
qdel(src)//Delete AI.
return
else
if (B.brainmob.mind)
B.brainmob.mind.transfer_to(src)
return INITIALIZE_HINT_QDEL //Delete AI.
on_mob_init()
if (B.brainmob.mind)
B.brainmob.mind.transfer_to(src)
on_mob_init()
spawn(5)
new /obj/machinery/ai_powersupply(src)
ai_list += src
..()
return
. = ..()
new /obj/machinery/ai_powersupply(src)
if(CONFIG_GET(flag/allow_ai_shells))
add_verb(src, /mob/living/silicon/ai/proc/deploy_to_shell_act)
create_eyeobj()
if(eyeobj)
eyeobj.loc = src.loc
/mob/living/silicon/ai/proc/on_mob_init()
var/init_text = list(span_bold("You are playing the station's AI. The AI cannot move, but can interact with many objects while viewing them (through cameras)."),
@@ -235,6 +240,7 @@ var/list/ai_verbs_default = list(
QDEL_NULL(aiCamera)
hack = null
destroy_eyeobj()
return ..()
@@ -1,11 +1,6 @@
/mob/living/silicon/ai
var/mob/living/silicon/robot/deployed_shell = null //For shell control
/mob/living/silicon/ai/Initialize(mapload)
if(CONFIG_GET(flag/allow_ai_shells))
add_verb(src, /mob/living/silicon/ai/proc/deploy_to_shell_act)
return ..()
/mob/living/silicon/ai/proc/deploy_to_shell(var/mob/living/silicon/robot/target)
if(!CONFIG_GET(flag/allow_ai_shells))
to_chat(src, span_warning("AI Shells are not allowed on this server. You shouldn't have this verb because of it, so consider making a bug report."))
+2 -2
View File
@@ -1,5 +1,5 @@
/mob/living/silicon/ai/Initialize(mapload, var/datum/ai_laws/L, var/obj/item/mmi/B, var/safety = 0)
. = ..(mapload, L, B, safety)
/mob/living/silicon/ai/Initialize(mapload, is_decoy, var/datum/ai_laws/L, var/obj/item/mmi/B, var/safety = FALSE)
. = ..()
add_language(LANGUAGE_BIRDSONG, 1)
add_language(LANGUAGE_SAGARU, 1)
add_language(LANGUAGE_CANILUNZT, 1)
@@ -5,8 +5,5 @@
anchored = TRUE // -- TLE
canmove = 0
/mob/living/silicon/decoy/New()
src.icon = 'icons/mob/AI.dmi'
src.icon_state = "ai"
src.anchored = TRUE
src.canmove = 0
/mob/living/silicon/decoy/Initialize(mapload)
. = ..(mapload, TRUE)
+14 -11
View File
@@ -112,9 +112,13 @@
var/our_icon_rotation = 0
/mob/living/silicon/pai/New(var/obj/item/paicard)
src.loc = paicard
card = paicard
/mob/living/silicon/pai/Initialize(mapload)
. = ..()
card = loc
if(!istype(card))
return INITIALIZE_HINT_QDEL
sradio = new(src)
communicator = new(src)
if(card)
@@ -135,15 +139,14 @@
//PDA
pda = new(src)
spawn(5)
pda.ownjob = "Personal Assistant"
pda.owner = text("[]", src)
pda.name = pda.owner + " (" + pda.ownjob + ")"
pda.ownjob = "Personal Assistant"
pda.owner = text("[]", src)
pda.name = pda.owner + " (" + pda.ownjob + ")"
var/datum/data/pda/app/messenger/M = pda.find_program(/datum/data/pda/app/messenger)
if(M)
M.toff = FALSE
..()
var/datum/data/pda/app/messenger/M = pda.find_program(/datum/data/pda/app/messenger)
if(M)
M.toff = FALSE
. = ..()
/mob/living/silicon/pai/Login()
..()
@@ -8,10 +8,7 @@
throwforce = 0
attack_verb = list("nuzzled", "nosed", "booped")
w_class = ITEMSIZE_TINY
/obj/item/boop_module/New()
..()
flags |= NOBLUDGEON //No more attack messages
flags = NOBLUDGEON //No more attack messages
/obj/item/boop_module/attack_self(mob/user)
if (!( istype(user.loc, /turf) ))
@@ -130,10 +127,7 @@
hitsound = 'sound/effects/attackblob.ogg'
var/emagged = 0
var/busy = 0 //prevents abuse and runtimes
/obj/item/robot_tongue/New()
..()
flags |= NOBLUDGEON //No more attack messages
flags = NOBLUDGEON //No more attack messages
/obj/item/robot_tongue/attack_self(mob/user)
var/mob/living/silicon/robot/R = user
@@ -213,10 +207,7 @@
icon = 'icons/mob/dogborg_vr.dmi'
icon_state = "scrub0"
var/enabled = FALSE
/obj/item/pupscrubber/New()
..()
flags |= NOBLUDGEON
flags = NOBLUDGEON
/obj/item/pupscrubber/attack_self(mob/user)
var/mob/living/silicon/robot/R = user
@@ -320,10 +311,7 @@
force = 0
throwforce = 0
var/bluespace = FALSE
/obj/item/dogborg/pounce/New()
..()
flags |= NOBLUDGEON
flags = NOBLUDGEON
/obj/item/dogborg/pounce/attack_self(mob/user)
var/mob/living/silicon/robot/R = user
@@ -43,10 +43,10 @@
var/recycles = FALSE
var/medsensor = TRUE //Does belly sprite come with patient ok/dead light?
var/obj/item/healthanalyzer/med_analyzer = null
flags = NOBLUDGEON
/obj/item/dogborg/sleeper/New()
..()
flags |= NOBLUDGEON //No more attack messages
/obj/item/dogborg/sleeper/Initialize(mapload)
. = ..()
files = new /datum/research/techonly(src)
med_analyzer = new /obj/item/healthanalyzer

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