diff --git a/code/game/jobs/job/assistant.dm b/code/game/jobs/job/assistant.dm
index 84513bef214..abbf7702bc7 100644
--- a/code/game/jobs/job/assistant.dm
+++ b/code/game/jobs/job/assistant.dm
@@ -3,8 +3,8 @@
flag = ASSISTANT
department_flag = CIVILIAN
faction = "Station"
- total_positions = -1
- spawn_positions = -1
+ total_positions = 1000
+ spawn_positions = 1000
equip(var/mob/living/carbon/human/H)
diff --git a/code/game/jobs/job/captian.dm b/code/game/jobs/job/captian.dm
index c21bec3d2e8..3a260e367df 100644
--- a/code/game/jobs/job/captian.dm
+++ b/code/game/jobs/job/captian.dm
@@ -22,7 +22,7 @@
var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H)
L.imp_in = H
L.implanted = 1
- world << "[src] is the captain!"
+ world << "[H.real_name] is the captain!"
return 1
diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm
index 0f5bd67c08e..4ad071fdd3b 100644
--- a/code/game/jobs/job_controller.dm
+++ b/code/game/jobs/job_controller.dm
@@ -34,7 +34,7 @@ var/global/datum/controller/occupations/job_master
if((player) && (player.mind) && (job))
var/datum/job/J = GetJob(job)
if(jobban_isbanned(player, job)) return 0
- if(J && ((J.title == "Assistant") || ( (J.current_positions < J.total_positions) || ((J.current_positions < J.spawn_positions) && !latejoin)) ))
+ if( J && ( (J.current_positions < J.total_positions) || ((J.current_positions < J.spawn_positions) && !latejoin)) )
player.mind.assigned_role = J.title
unassigned -= player
J.current_positions++
@@ -145,10 +145,11 @@ var/global/datum/controller/occupations/job_master
if(!job) continue
if(!unassigned.len) break
if(job.current_positions >= job.spawn_positions) continue
- var/list/candidates = FindOccupationCandidates(unassigned, job, level)
+ var/list/candidates = FindOccupationCandidates(job, level)
while(candidates.len && (job.current_positions < job.spawn_positions))
var/mob/new_player/candidate = pick(candidates)
- AssignRole(candidate, job)
+ if(!AssignRole(candidate, job.title))
+ candidates -= candidate
for(var/mob/new_player/player in unassigned)
AssignRole(player, "Assistant")
diff --git a/code/game/objects/tank.dm b/code/game/objects/tank.dm
index 71c68278d0a..aa810002935 100644
--- a/code/game/objects/tank.dm
+++ b/code/game/objects/tank.dm
@@ -430,16 +430,16 @@
var/datum/gas_mixture/G = src.air_contents.remove(num)
- if (G.oxygen >= 0.01)
+ if (G.oxygen >= 0.005)
return 1
if (G.toxins > 0.001)
if (user)
var/d = G.toxins / 2
d = min(abs(user.health + 100), d, 25)
user.take_organ_damage(0,d)
- return (G.oxygen >= 0.0075 ? 0.5 : 0)
+ return (G.oxygen >= 0.0025 ? 0.5 : 0)
else
- if (G.oxygen >= 0.0075)
+ if (G.oxygen >= 0.0025)
return 0.5
else
return 0
diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm
index 1651965af2d..62b7cab4fa4 100644
--- a/code/modules/assembly/signaler.dm
+++ b/code/modules/assembly/signaler.dm
@@ -24,13 +24,13 @@
activate()
- if(!..()) return 0//Cooldown check
+ if(cooldown > 0) return 0
+ cooldown = 2
+ spawn(10)
+ process_cooldown()
+
signal()
- pulse(0)
- if(istype(src.loc, /obj/machinery/door/airlock) && src.airlock_wire && src.wires)
- var/obj/machinery/door/airlock/A = src.loc
- A.pulse(src.airlock_wire)
-// pulse(1)//?
+
return 1
@@ -67,34 +67,32 @@
Topic(href, href_list)
- //..()
- if(usr.stat)
+ ..()
+
+ if(get_dist(src, usr) > 1)
+ usr << browse(null, "window=signal")
+ onclose(usr, "signal")
return
- if ((usr.contents.Find(src) || (usr.contents.Find(src.holder) || (in_range(src, usr) && istype(src.loc, /turf)))))
- usr.machine = src
- if (href_list["freq"])
- src.frequency += text2num(href_list["freq"])
- src.frequency = round(src.frequency)
- src.frequency = min(100, src.frequency)
- src.frequency = max(1, src.frequency)
- return
- if(href_list["code"])
- src.code += text2num(href_list["code"])
- src.code = round(src.code)
- src.code = min(100, src.code)
- src.code = max(1, src.code)
+ if (href_list["freq"])
+ src.frequency += text2num(href_list["freq"])
+ src.frequency = round(src.frequency)
+ src.frequency = min(100, src.frequency)
+ src.frequency = max(1, src.frequency)
- if(href_list["send"])
- spawn( 0 )
- send_signal()
- return
+ if(href_list["code"])
+ src.code += text2num(href_list["code"])
+ src.code = round(src.code)
+ src.code = min(100, src.code)
+ src.code = max(1, src.code)
+
+ if(href_list["send"])
+ spawn( 0 )
+ signal()
+
+ if(usr)
+ attack_self(usr)
-// if(href_list["listen"])
-// src.listening = text2num(href_list["listen"])
- else
- usr << browse(null, "window=radio")
- return
return
proc/signal()//will have to do for now
@@ -102,6 +100,16 @@
if(!S) continue
if(S == src) continue
if((S.frequency == src.frequency) && (S.code == src.code))
- S.pulsed(1)
+ spawn(0)
+ S.pulse(0)
return 1
- return 0
\ No newline at end of file
+ return 0
+
+
+ pulse(var/radio = 0)
+ if(istype(src.loc, /obj/machinery/door/airlock) && src.airlock_wire && src.wires)
+ var/obj/machinery/door/airlock/A = src.loc
+ A.pulse(src.airlock_wire)
+ else
+ holder.process_activation(src, 1, 0)
+ return 1
\ No newline at end of file
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index 444242f298c..4be3a35f32a 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -217,7 +217,7 @@
proc/AttemptLateSpawn(rank)
var/datum/job/job = job_master.GetJob(rank)
- if(job && ((job.title == "Assistant") || (job.current_positions < job.total_positions)))
+ if(job && (job.current_positions < job.total_positions))
var/mob/living/carbon/human/character = create_character()
var/icon/char_icon = getFlatIcon(character,0)//We're creating out own cache so it's not needed.
if(job_master.AssignRole(character, rank, 1))
diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm
index 84f245c82f7..d29d1d57d00 100644
--- a/code/modules/power/singularity/singularity.dm
+++ b/code/modules/power/singularity/singularity.dm
@@ -31,7 +31,7 @@ var/global/list/uneatable = list(
event_chance = 15 //Prob for event each tick
target = null //its target. moves towards the target if it has one
last_failed_movement = 0//Will not move in the same dir if it couldnt before, will help with the getting stuck on fields thing
- teleport_del = 1
+ teleport_del = 0
New(loc, var/starting_energy = 50, var/temp = 0)
src.energy = starting_energy