From e0059bbf4640454579f65e0c90be5a40dc7ab7e7 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sat, 25 Oct 2014 22:47:09 -0400 Subject: [PATCH 1/7] Implant Fix --- .../items/weapons/implants/implantcase.dm | 11 ++++++++++ code/modules/research/designs.dm | 22 ++++++++++++++----- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/code/game/objects/items/weapons/implants/implantcase.dm b/code/game/objects/items/weapons/implants/implantcase.dm index ef323a8e3a2..f1db8bf0097 100644 --- a/code/game/objects/items/weapons/implants/implantcase.dm +++ b/code/game/objects/items/weapons/implants/implantcase.dm @@ -138,3 +138,14 @@ src.imp = new /obj/item/weapon/implant/death_alarm( src ) ..() return + +/obj/item/weapon/implantcase/freedom + name = "Glass Case- 'Freedom'" + desc = "A case containing a freedom implant." + icon = 'icons/obj/items.dmi' + icon_state = "implantcase-b" + + New() + src.imp = new /obj/item/weapon/implant/freedom( src ) + ..() + return \ No newline at end of file diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 46c706fccb6..d06f418c088 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -1443,33 +1443,43 @@ datum/design/noreactbeaker build_path = "/obj/item/weapon/reagent_containers/glass/beaker/noreact" category = "Misc" +datum/design/implanter + name = "Implanter" + desc = "A basic implanter for injecting implants" + id = "implanter" + req_tech = list("materials" = 2, "biotech" = 3) + build_type = PROTOLATHE + materials = list("$metal" = 50, "$glass" = 50) + build_path = "/obj/item/weapon/implanter" + + datum/design/implant_free - name = "freedom implant" + name = "Freedom Implant" desc = "Use this to escape from those evil Red Shirts." id = "implant_free" req_tech = list("syndicate" = 2, "biotech" = 3) build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) - build_path = "/obj/item/weapon/implant/freedom" + build_path = "/obj/item/weapon/implantcase/freedom" datum/design/implant_chem - name = "chemical implant" + name = "Chemical Implant" desc = "Injects things." id = "implant_chem" req_tech = list("materials" = 2, "biotech" = 3) build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) - build_path = "/obj/item/weapon/implant/chem" + build_path = "/obj/item/weapon/implantcase/chem" locked = 1 datum/design/implant_loyal - name = "loyalty implant" + name = "Loyalty Implant" desc = "Makes you loyal or such." id = "implant_loyal" req_tech = list("materials" = 2, "biotech" = 3) build_type = PROTOLATHE materials = list("$metal" = 7000, "$glass" = 7000) - build_path = "/obj/item/weapon/implant/loyalty" + build_path = "/obj/item/weapon/implantcase/loyalty" locked = 1 From 5f56a28a8a06eb365df7e93278d33c13c4f11c5a Mon Sep 17 00:00:00 2001 From: Bone White Date: Mon, 27 Oct 2014 02:24:06 +0000 Subject: [PATCH 2/7] Radiation Laser Update Hid message when missing. Added all medical jobs + brig phys to the requirement of jobs to purchase this traitor item. As requested by Fox. --- code/datums/uplink_item.dm | 11 ++++++----- code/modules/mob/living/carbon/human/human_defense.dm | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index 104b29310c4..301cea307d2 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -155,11 +155,12 @@ var/list/uplink_items = list() job = list( "Chief Medical Officer", "Medical Doctor", - //"Geneticist", - //"Psychiatrist", - //"Chemist", - //"Paramedic", - "Virologist" + "Geneticist", + "Psychiatrist", + "Chemist", + "Paramedic", + "Virologist", + "Brig Physician" ) //Assistant diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 03ad70ce3eb..aa97abc7111 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -191,7 +191,7 @@ emp_act if(user == src) // Attacking yourself can't miss target_zone = user.zone_sel.selecting - if(!target_zone && !src.stat) + if(!target_zone && !src.stat && !I.discrete) visible_message("\red [user] misses [src] with \the [I]!") return 0 From 9b9c20b1150641a67ef70066e571b862a22ec0ea Mon Sep 17 00:00:00 2001 From: Bone White Date: Mon, 27 Oct 2014 15:47:05 +0000 Subject: [PATCH 3/7] Civilian round-start fix --- code/game/jobs/job_controller.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index afe69e34765..9d47d3582d5 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -100,6 +100,7 @@ var/global/datum/controller/occupations/job_master Debug("Running FOC, Job: [job], Level: [level], Flag: [flag]") var/list/candidates = list() for(var/mob/new_player/player in unassigned) + //Debug("Banned: [jobban_isbanned(player, job.title)] Old Enough: [!job.player_old_enough(player.client)] Flag && Special: [flag && (!player.client.prefs.be_special & flag)] Job Department: [player.client.prefs.GetJobDepartment(job, level)] Job Flag: [job.flag] Job Department Flag = [job.department_flag]") if(jobban_isbanned(player, job.title)) Debug("FOC isbanned failed, Player: [player]") continue @@ -112,6 +113,9 @@ var/global/datum/controller/occupations/job_master if(player.client.prefs.GetJobDepartment(job, level) & job.flag) Debug("FOC pass, Player: [player], Level:[level]") candidates += player + if(job.flag == CIVILIAN) + Debug("FOC pass, Player: [player], Level: **Civilian Autopass**") + candidates += player return candidates proc/GiveRandomJob(var/mob/new_player/player) From 6853a69b1ff24dcb0f6f8d4b8f8591a20c2f2787 Mon Sep 17 00:00:00 2001 From: Bone White Date: Mon, 27 Oct 2014 15:53:35 +0000 Subject: [PATCH 4/7] Bulletproofing Better bulletproofing of the civilian round-start fix --- code/game/jobs/job_controller.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 9d47d3582d5..8ccd40f49d1 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -113,7 +113,7 @@ var/global/datum/controller/occupations/job_master if(player.client.prefs.GetJobDepartment(job, level) & job.flag) Debug("FOC pass, Player: [player], Level:[level]") candidates += player - if(job.flag == CIVILIAN) + else if(job.flag == CIVILIAN) Debug("FOC pass, Player: [player], Level: **Civilian Autopass**") candidates += player return candidates From eb21c8e4b07bbe5359b5c6d1d3e4dccda24f1907 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Mon, 27 Oct 2014 21:36:18 -0400 Subject: [PATCH 5/7] Revert "Civilian round-start fix" --- code/game/jobs/job_controller.dm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 8ccd40f49d1..afe69e34765 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -100,7 +100,6 @@ var/global/datum/controller/occupations/job_master Debug("Running FOC, Job: [job], Level: [level], Flag: [flag]") var/list/candidates = list() for(var/mob/new_player/player in unassigned) - //Debug("Banned: [jobban_isbanned(player, job.title)] Old Enough: [!job.player_old_enough(player.client)] Flag && Special: [flag && (!player.client.prefs.be_special & flag)] Job Department: [player.client.prefs.GetJobDepartment(job, level)] Job Flag: [job.flag] Job Department Flag = [job.department_flag]") if(jobban_isbanned(player, job.title)) Debug("FOC isbanned failed, Player: [player]") continue @@ -113,9 +112,6 @@ var/global/datum/controller/occupations/job_master if(player.client.prefs.GetJobDepartment(job, level) & job.flag) Debug("FOC pass, Player: [player], Level:[level]") candidates += player - else if(job.flag == CIVILIAN) - Debug("FOC pass, Player: [player], Level: **Civilian Autopass**") - candidates += player return candidates proc/GiveRandomJob(var/mob/new_player/player) From 6cd660874c22cb3937c658fcdbb013d9187a164e Mon Sep 17 00:00:00 2001 From: Bone White Date: Tue, 28 Oct 2014 02:51:27 +0000 Subject: [PATCH 6/7] Civilian round-start fix (2) Hopefully it works this time, tested locally as extensively as I can. I have left a _very_ verbose debug line (103) in job_controller.dm which should be commented out very soon. Please keep var/Debug2 in global.dm set to 1 for the forseeable future, to help diagnose job problems. --- code/game/jobs/job/civilian.dm | 2 +- code/game/jobs/job_controller.dm | 6 ++---- code/global.dm | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index b09f2cc3335..968736075f3 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -1,7 +1,7 @@ /datum/job/civilian title = "Civilian" flag = CIVILIAN - department_flag = CIVILIAN + department_flag = SUPPORT total_positions = -1 spawn_positions = -1 supervisors = "absolutely everyone" diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 8ccd40f49d1..3134dbc73c0 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -100,7 +100,7 @@ var/global/datum/controller/occupations/job_master Debug("Running FOC, Job: [job], Level: [level], Flag: [flag]") var/list/candidates = list() for(var/mob/new_player/player in unassigned) - //Debug("Banned: [jobban_isbanned(player, job.title)] Old Enough: [!job.player_old_enough(player.client)] Flag && Special: [flag && (!player.client.prefs.be_special & flag)] Job Department: [player.client.prefs.GetJobDepartment(job, level)] Job Flag: [job.flag] Job Department Flag = [job.department_flag]") + Debug(" - Player: [player] Banned: [jobban_isbanned(player, job.title)] Old Enough: [!job.player_old_enough(player.client)] Flag && Be Special: [flag] && [player.client.prefs.be_special] Job Department: [player.client.prefs.GetJobDepartment(job, level)] Job Flag: [job.flag] Job Department Flag = [job.department_flag]") if(jobban_isbanned(player, job.title)) Debug("FOC isbanned failed, Player: [player]") continue @@ -113,9 +113,6 @@ var/global/datum/controller/occupations/job_master if(player.client.prefs.GetJobDepartment(job, level) & job.flag) Debug("FOC pass, Player: [player], Level:[level]") candidates += player - else if(job.flag == CIVILIAN) - Debug("FOC pass, Player: [player], Level: **Civilian Autopass**") - candidates += player return candidates proc/GiveRandomJob(var/mob/new_player/player) @@ -335,6 +332,7 @@ var/global/datum/controller/occupations/job_master // If the job isn't filled if((job.current_positions < job.spawn_positions) || job.spawn_positions == -1) Debug("DO pass, Player: [player], Level:[level], Job:[job.title]") + Debug(" - Job Flag: [job.flag] Job Department: [player.client.prefs.GetJobDepartment(job, level)] Job Current Pos: [job.current_positions] Job Spawn Positions = [job.spawn_positions]") AssignRole(player, job.title) unassigned -= player break diff --git a/code/global.dm b/code/global.dm index 98a81d2bf9f..249946633a9 100644 --- a/code/global.dm +++ b/code/global.dm @@ -201,7 +201,7 @@ var/list/adminlog = list() var/list/powernets = list() var/Debug = 0 // global debug switch -var/Debug2 = 0 +var/Debug2 = 1 // enables detailed job debug file in secrets var/datum/debug/debugobj From 447f383a8a4841fba3e5bd39bf80308cadf53277 Mon Sep 17 00:00:00 2001 From: Bone-White Date: Tue, 28 Oct 2014 02:53:03 +0000 Subject: [PATCH 7/7] Revert "Revert "Civilian round-start fix"" --- code/game/jobs/job_controller.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index afe69e34765..8ccd40f49d1 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -100,6 +100,7 @@ var/global/datum/controller/occupations/job_master Debug("Running FOC, Job: [job], Level: [level], Flag: [flag]") var/list/candidates = list() for(var/mob/new_player/player in unassigned) + //Debug("Banned: [jobban_isbanned(player, job.title)] Old Enough: [!job.player_old_enough(player.client)] Flag && Special: [flag && (!player.client.prefs.be_special & flag)] Job Department: [player.client.prefs.GetJobDepartment(job, level)] Job Flag: [job.flag] Job Department Flag = [job.department_flag]") if(jobban_isbanned(player, job.title)) Debug("FOC isbanned failed, Player: [player]") continue @@ -112,6 +113,9 @@ var/global/datum/controller/occupations/job_master if(player.client.prefs.GetJobDepartment(job, level) & job.flag) Debug("FOC pass, Player: [player], Level:[level]") candidates += player + else if(job.flag == CIVILIAN) + Debug("FOC pass, Player: [player], Level: **Civilian Autopass**") + candidates += player return candidates proc/GiveRandomJob(var/mob/new_player/player)