diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 63bc6aefed5..18d101d2e1e 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -1109,7 +1109,7 @@ maxcharge = 30000 g_amt = 80 use() - return + return 1 /*/obj/item/weapon/cell/potato name = "Potato Battery" diff --git a/code/game/communications.dm b/code/game/communications.dm index cfd66e3d1fe..69ea74a527c 100644 --- a/code/game/communications.dm +++ b/code/game/communications.dm @@ -163,7 +163,7 @@ datum/controller/radio datum/radio_frequency var/frequency as num - var/list/list/obj/structure/devices = list() + var/list/list/obj/devices = list() proc post_signal(obj/source as obj|null, datum/signal/signal, var/filter = null as text|null, var/range = null as num|null) @@ -178,7 +178,7 @@ datum/radio_frequency del(signal) return 0 if (filter) //here goes some copypasta. It is for optimisation. -rastaf0 - for(var/obj/structure/device in devices[filter]) + for(var/obj/device in devices[filter]) if(device == source) continue if(range) @@ -189,7 +189,7 @@ datum/radio_frequency if(start_point.z!=end_point.z || get_dist(start_point, end_point) > range) continue device.receive_signal(signal, TRANSMISSION_RADIO, frequency) - for(var/obj/structure/device in devices["_default"]) + for(var/obj/device in devices["_default"]) if(device == source) continue if(range) @@ -205,7 +205,7 @@ datum/radio_frequency for (var/next_filter in devices) // var/list/obj/DDD = devices[next_filter] // Nt+=DDD.len - for(var/obj/structure/device in devices[next_filter]) + for(var/obj/device in devices[next_filter]) if(device == source) continue if(range) @@ -227,12 +227,12 @@ datum/radio_frequency if (!filter) filter = "_default" //log_admin("add_listener(device=[device],filter=[filter]) frequency=[frequency]") - var/list/obj/structure/devices_line = devices[filter] + var/list/obj/devices_line = devices[filter] if (!devices_line) devices_line = new devices[filter] = devices_line devices_line+=device -// var/list/obj/structure/devices_line___ = devices[filter_str] +// var/list/obj/devices_line___ = devices[filter_str] // var/l = devices_line___.len //log_admin("DEBUG: devices_line.len=[devices_line.len]") //log_admin("DEBUG: devices(filter_str).len=[l]") diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 99ed0063864..8e28a88901f 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -10,6 +10,12 @@ var/global/datum/controller/occupations/job_master list/job_debug = list() + New() + spawn(1) + SetupOccupations() + return + + proc/SetupOccupations(var/faction = "Station") occupations = list() var/list/all_jobs = typesof(/datum/job) @@ -27,7 +33,6 @@ var/global/datum/controller/occupations/job_master proc/Debug(var/text) if(!Debug2) return 0 job_debug.Add(text) -// world << text return 1 diff --git a/code/game/jobs/jobs.dm b/code/game/jobs/jobs.dm index b60b6357cd5..230d702cb78 100644 --- a/code/game/jobs/jobs.dm +++ b/code/game/jobs/jobs.dm @@ -42,8 +42,6 @@ var/const MIME =(1<<12) ASSISTANT =(1<<13) -var/list/occupations = list() - var/list/assistant_occupations = list( "Assistant", diff --git a/code/game/magic/cultist/talisman.dm b/code/game/magic/cultist/talisman.dm index f6745b713a4..c7b199ffaad 100644 --- a/code/game/magic/cultist/talisman.dm +++ b/code/game/magic/cultist/talisman.dm @@ -75,7 +75,7 @@ return - talisman/Topic(href, href_list) + Topic(href, href_list) if(!src) return if (usr.stat || usr.restrained() || !in_range(src, usr)) return diff --git a/code/game/objects/radio/signaler.dm b/code/game/objects/radio/signaler.dm index d6bd6ee02a1..d953dcd9af4 100644 --- a/code/game/objects/radio/signaler.dm +++ b/code/game/objects/radio/signaler.dm @@ -8,81 +8,14 @@ w_class = 1 frequency = 1457 var/delay = 0 - var/airlock_wire = null - - var - secured = 1 - small_icon_state_left = "signaller_left" - small_icon_state_right = "signaller_right" - list/small_icon_state_overlays = null - obj/holder = null - cooldown = 0//To prevent spam - - proc - Activate()//Called when this assembly is pulsed by another one - Secure()//Code that has to happen when the assembly is ready goes here - Unsecure()//Code that has to happen when the assembly is taken off of the ready state goes here - Attach_Assembly(var/obj/A, var/mob/user)//Called when an assembly is attacked by another - Process_cooldown()//Call this via spawn(10) to have it count down the cooldown var - Holder_Movement() - - IsAssembly() - return 1 - - - Process_cooldown() - cooldown-- - if(cooldown <= 0) return 0 - spawn(10) - Process_cooldown() - return 1 - - - Activate() - if((!secured) || (cooldown > 0)) - return 0 - cooldown = 2 - send_signal() - spawn(10) - Process_cooldown() - return 0 - - - Secure() - if(secured) - return 0 - secured = 1 - return 1 - - - Unsecure() - if(!secured) - return 0 - secured = 0 - return 1 - - - Attach_Assembly(var/obj/A, var/mob/user) - holder = new/obj/item/device/assembly_holder(get_turf(src)) - if(holder:attach(A,src,user)) - user.show_message("\blue You attach the [A.name] to the [src.name]!") - return 1 - return 0 attackby(obj/item/weapon/W as obj, mob/user as mob) - if(W.IsAssembly()) - var/obj/item/device/D = W - if((!D:secured) && (!src.secured)) - Attach_Assembly(D,user) if(isscrewdriver(W)) - if(src.secured) - Unsecure() - b_stat = 1 + b_stat = !b_stat + if(b_stat) user.show_message("\blue The [src.name] can now be attached!") else - Secure() - b_stat = 0 user.show_message("\blue The [src.name] is ready!") return else @@ -131,25 +64,13 @@ Code: /obj/item/device/radio/signaler/receive_signal(datum/signal/signal) - if(cooldown > 0) return 0 if(!signal || (signal.encryption != code)) return 0 if (!( src.wires & 2 )) return - if(istype(src.loc, /obj/machinery/door/airlock) && src.airlock_wire && src.wires & 1) - var/obj/machinery/door/airlock/A = src.loc - A.pulse(src.airlock_wire) - if((src.holder) && (holder.IsAssemblyHolder()) && (secured) && (src.wires & 1)) - spawn(0) - holder:Process_Activation(src) - return - for(var/mob/O in hearers(1, src.loc)) O.show_message(text("\icon[] *beep* *beep*", src), 3, "*beep* *beep*", 2) - cooldown = 2 - spawn(10) - Process_cooldown() return @@ -179,7 +100,7 @@ Code: //..() if (usr.stat) return - if ((usr.contents.Find(src) || (usr.contents.Find(src.holder) || (in_range(src, usr) && istype(src.loc, /turf))))) + if (usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) usr.machine = src if (href_list["freq"]) ..() diff --git a/code/game/objects/transfer_valve.dm b/code/game/objects/transfer_valve.dm index b1aba56bd87..02619098249 100644 --- a/code/game/objects/transfer_valve.dm +++ b/code/game/objects/transfer_valve.dm @@ -11,7 +11,7 @@ var/toggle = 1 proc - Process_Activation(var/obj/item/device/D) + process_activation(var/obj/item/device/D) IsAssemblyHolder() return 1 @@ -109,7 +109,7 @@ src.add_fingerprint(usr) return - Process_Activation(var/obj/item/device/D) + process_activation(var/obj/item/device/D) if(toggle) toggle = 0 toggle_valve() diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 27ac3674503..09afd799e4b 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -122,15 +122,18 @@ var/header = "Pick Job to ban this guy from.
" var/body var/jobs = "" - for(var/job in uniquelist(occupations + assistant_occupations)) - if(job == "Tourist") + if(!job_master) + usr << "Job Master has not been setup!" + return + for(var/datum/job/job in job_master.occupations) + if(job.title == "Tourist") continue - if(jobban_isbanned(M, job)) - jobs += "[dd_replacetext(job, " ", " ")] " + if(jobban_isbanned(M, job.title)) + jobs += "[dd_replacetext(job.title, " ", " ")] " else - jobs += "[dd_replacetext(job, " ", " ")] " + jobs += "[dd_replacetext(job.title, " ", " ")] " - if(jobban_isbanned(M, "Captain")) +/* if(jobban_isbanned(M, "Captain")) These two are now jobs in the datums and should show up in the above code jobs += "Captain " else jobs += "Captain " @@ -139,7 +142,7 @@ jobs += "AI " else jobs += "AI " - +*/ if(jobban_isbanned(M, "Syndicate")) jobs += "
[dd_replacetext("Syndicate", " ", " ")] " else @@ -272,18 +275,19 @@ jobs += "Scientist+RD
" jobs += "AI+Cyborg
" jobs += "Detective+HoS

" - for(var/job in uniquelist(occupations + assistant_occupations)) - if(job == "Tourist") + for(var/datum/job/job in job_master.occupations) + if(job.title == "Tourist") continue - if(jobban_isbanned(M, job)) - jobs += "[dd_replacetext(job, " ", " ")] " + if(jobban_isbanned(M, job.title)) + jobs += "[dd_replacetext(job.title, " ", " ")] " else - jobs += "[dd_replacetext(job, " ", " ")] " //why doesn't this work the stupid cunt + jobs += "[dd_replacetext(job.title, " ", " ")] " //why doesn't this work the stupid cunt - if(jobban_isbanned(M, "Captain")) +/* if(jobban_isbanned(M, "Captain")) jobs += "Captain " else jobs += "Captain " //why doesn't this work the stupid cunt +*/ if(jobban_isbanned(M, "Syndicate")) jobs += "
[dd_replacetext("Syndicate", " ", " ")] " else diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index f17ed376cb3..4ce4e140630 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -558,9 +558,9 @@ Traitors and the like can also be revived with the previous role mostly intact. if (!authenticated || !holder) src << "Only administrators may use this command." return - - for(var/t in occupations) - src << "[t]: [occupations[t]]" + if(job_master) + for(var/datum/job/job in job_master.occupations) + src << "[job.title]: [job.total_positions]" /client/proc/cmd_admin_explosion(atom/O as obj|mob|turf in world) set category = "Special Verbs" diff --git a/code/modules/admin/verbs/tripAI.dm b/code/modules/admin/verbs/tripAI.dm index 6995675e251..859927b9d98 100644 --- a/code/modules/admin/verbs/tripAI.dm +++ b/code/modules/admin/verbs/tripAI.dm @@ -5,12 +5,18 @@ if(ticker.current_state > GAME_STATE_PREGAME) usr << "This option is currently only usable during pregame. This may change at a later date." return - if (occupations["AI"] > 1) - occupations["AI"] -= 2 - usr << "Only one AI will be spawned at round start." - message_admins("\blue [key_name_admin(usr)] has toggled off triple AIs at round start.", 1) - else - occupations["AI"] += 2 - usr << "There will be an AI Triumvirate at round start." - message_admins("\blue [key_name_admin(usr)] has toggled on triple AIs at round start.", 1) + if(job_master) + var/datum/job/job = job_master.GetJob("AI") + if(!job) + usr << "Unable to locate the AI job" + return + + if(job.spawn_positions >= 3) + job.spawn_positions -= 2 + usr << "Only one AI will be spawned at round start." + message_admins("\blue [key_name_admin(usr)] has toggled off triple AIs at round start.", 1) + else + job.spawn_positions += 2 + usr << "There will be an AI Triumvirate at round start." + message_admins("\blue [key_name_admin(usr)] has toggled on triple AIs at round start.", 1) return diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 1e0e28c28ed..aad0f0f2f2b 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -102,7 +102,6 @@ if((S.frequency == src.frequency) && (S.code == src.code)) spawn(0) S.pulse(0) - return 1 return 0