From 9116be1e53576f4a9a64284c5e8fedfdb926b4a2 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 8 Sep 2017 16:20:40 -0400 Subject: [PATCH] Extra objectives for assistants, poly objective for CE --- .../cit_crewobjectives_civilian.dm | 64 +++++++++++++++++-- .../cit_crewobjectives_engineering.dm | 12 +++- 2 files changed, 71 insertions(+), 5 deletions(-) diff --git a/code/citadel/crew_objectives/cit_crewobjectives_civilian.dm b/code/citadel/crew_objectives/cit_crewobjectives_civilian.dm index 65bb949c37..15c115128c 100644 --- a/code/citadel/crew_objectives/cit_crewobjectives_civilian.dm +++ b/code/citadel/crew_objectives/cit_crewobjectives_civilian.dm @@ -44,7 +44,7 @@ /datum/objective/crew/cook/foodhoard/New() . = ..() target_amount = rand(2,10) - var/blacklist = list(/datum/crafting_recipe/food) + var/blacklist = list(/datum/crafting_recipe/food, /datum/crafting_recipe/food/cak) var/possiblefoods = typesof(/datum/crafting_recipe/food) - blacklist targetfood = pick(possiblefoods) foodpath = initial(targetfood.result) @@ -63,7 +63,7 @@ /datum/objective/crew/bartender /datum/objective/crew/bartender/responsibility - explanation_text = "Make sure nobody dies of alchohol poisoning." + explanation_text = "Make sure nobody dies of alcohol poisoning." /datum/objective/crew/bartender/responsibility/check_completion() for(var/mob/living/carbon/human/H in GLOB.mob_list) @@ -76,11 +76,16 @@ /datum/objective/crew/janitor/clean //ported from old Hippie var/list/areas = list() + var/hardmode = 0 explanation_text = "Ensure sure that (Yo, something broke. Yell about this in citadels devlopmeent discussion channel.) remain spotless at the end of the shift." /datum/objective/crew/janitor/clean/New() . = ..() - var/list/possibleareas = GLOB.teleportlocs - /area - typesof(/area/space) - typesof(/area/lavaland) - typesof(/area/mine) - typesof(/area/ai_monitored/turret_protected) - typesof(/area/tcommsat) + if(prob(1)) + hardmode = 1 + var/list/blacklistnormal = list(typesof(/area/space) - typesof(/area/lavaland) - typesof(/area/mine) - typesof(/area/ai_monitored/turret_protected) - typesof(/area/tcommsat)) + var/list/blacklisthard = list(typesof(/area/lavaland) - typesof(/area/mine)) + var/list/possibleareas = GLOB.teleportlocs - /area - [(hardmode == 1) ? blacklisthard : blacklistnormal] for(var/i in 1 to rand(1,6)) areas |= pick_n_take(possibleareas) update_explanation_text() @@ -96,6 +101,8 @@ if(i == areas.len - 1) explanation_text += "and" explanation_text += " [(areas.len ==1) ? "is completely" : "are [(areas.len == 2) ? "completely" : "all"]"] clean at the end of the shift." + if(hardmode) + explanation_text += " Chop-chop." /datum/objective/crew/janitor/clean/check_completion() for(var/area/A in areas) @@ -120,7 +127,7 @@ /datum/objective/crew/clown/slipster/check_completion() var/list/uniqueslips = list() if(owner.current) - for(var/obj/item/device/pda/clown/PDA in owner.current.get_contents()) //100% open for badmin abuse + for(var/obj/item/device/pda/clown/PDA in owner.current.get_contents()) for(var/mob/living/carbon/human/H in PDA.slipvictims) uniqueslips |= H if(uniqueslips.len >= target_amount) @@ -163,3 +170,52 @@ if(istype(H.w_uniform, targetuniform)) return 1 return 0 + +/datum/objective/crew/assistant/spacesuit //ported from Goon + explanation_text = "Get your grubby hands on a space suit." + +/datum/objective/crew/assistant/spacesuit/New() + . = ..() + update_explanation_text() + +/datum/objective/crew/assistant/spacesuit/update_explanation_text() + . = ..() + if(owner.current) + var/mob/living/carbon/human/H = owner.current + explanation_text = "Get your " + if(H.dna.species.id == "avian") + explanation_text += "scratchy claws " + else if(H.dna.species.id == "mammal") + explanation_text += "dirty paws " + else if(H.dna.species.id == "aquatic") + explanation_text += "fishy hands " + else if(H.dna.species.id == "xeno") + explanation_text += "weird claws " + else if(H.dna.species.id == "guilmon") + explanation_text += "digital claws " + else if(H.dna.species.id == "lizard") + explanation_text += "slimy claws " + else if(H.dna.species.id == "datashark") + explanation_text += "glitchy hands " + else if(H.dna.species.id == "insect") + explanation_text += "gross grabbers " + else + explanation_text += "grubby hands " + explanation_text += "on a space suit." + +/datum/objective/crew/assistant/spacesuit/check_completion() + if(owner.current && owner.current.check_contents_for(typesof(/obj/item/clothing/suit/space))) + return 1 + else + return 0 + +/datum/objective/crew/assistant/promotion //ported from Goon + explanation_text = "Have a non-assistant ID registered to you at the end of the shift." + +/datum/objective/crew/assistant/promotion/check_completion() + if(owner.current) + var/mob/living/carbon/human/H = owner.current + if(istype(H.get_idcard()) + if(!H.get_assignment == "Assistant" && !H.get_assignment == "No id" && !H.get_assignment == "No job") + return 1 + return 0 \ No newline at end of file diff --git a/code/citadel/crew_objectives/cit_crewobjectives_engineering.dm b/code/citadel/crew_objectives/cit_crewobjectives_engineering.dm index 88eaa9e237..20347c1e60 100644 --- a/code/citadel/crew_objectives/cit_crewobjectives_engineering.dm +++ b/code/citadel/crew_objectives/cit_crewobjectives_engineering.dm @@ -23,9 +23,19 @@ else return 0 +/datum/objective/crew/chiefengineer/poly + explanation_text = "Make sure Poly keeps his headset, and stays alive until the end of the shift." + +/datum/objective/crew/chiefengineer/poly/check_completion() + for(var/mob/living/simple_animal/pet/parrot/Poly/dumbbird in GLOB.mob_list) + if(!dumbbird.stat == DEAD && dumbbird.ears) + if(istype(dumbbird.ears, /obj/item/device/radio/headset) + return 1 + return 0 + /datum/objective/crew/stationengineer -/datum/objective/crew/stationengineer/integrity +/datum/objective/crew/stationengineer/integrity //ported from old Hippie explanation_text = "Ensure the station's integrity rating is at least (Yo something broke, yell on the development discussion channel of citadels discord about this)% when the shift ends." /datum/objective/crew/stationengineer/integrity/New()