Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reenables miscreants on the RP server with some better-curated objectives. #2411

Merged
merged 8 commits into from Oct 31, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
73 changes: 66 additions & 7 deletions code/datums/miscreant_objectives.dm
Expand Up @@ -4,19 +4,20 @@

generate_miscreant_objectives(var/datum/mind/crewMind)
set background = 1
#ifdef RP_MODE // no really don't make any on destiny thanks
return
#else
//Requirements for individual objectives: 1) You have a mind (this eliminates 90% of our playerbase ~heh~)
//2) You are not a traitor
//Requirements for individual objectives:
//1) You have a mind (this eliminates 90% of our playerbase ~heh~)
//2) You are not a traitor
if (!crewMind)
return
if (!crewMind.current || !crewMind.objectives || crewMind.objectives.len || crewMind.special_role || (crewMind.assigned_role == "MODE"))
return
if (crewMind.current && (isdead(crewMind.current) || isobserver(crewMind.current) || issilicon(crewMind.current) || isintangible(crewMind.current)))
return

#ifdef RP_MODE
var/list/objectiveTypes = concrete_typesof(/datum/objective/miscreantrp)
#else
var/list/objectiveTypes = concrete_typesof(/datum/objective/miscreant)
#endif
if (!objectiveTypes.len)
return

Expand All @@ -34,14 +35,16 @@
if (obj_count <= 1)
boutput(crewMind.current, "<B>You are a miscreant!</B>")
boutput(crewMind.current, "You should try to complete your objectives, but don't commit any traitorous acts.")
#ifdef RP_MODE
boutput(crewMind.current, "Remember, this is an opportunity to create a story, not to cause wanton destruction.")
#endif
boutput(crewMind.current, "Your objective is as follows:")
boutput(crewMind.current, "[newObjective.explanation_text]")
obj_count++

miscreants += crewMind

return
#endif

ABSTRACT_TYPE(/datum/objective/miscreant)
/datum/objective/miscreant
Expand Down Expand Up @@ -119,4 +122,60 @@ ABSTRACT_TYPE(/datum/objective/miscreant)
spy
explanation_text = "Become an inter-galactic spy and refer to everyday objects as 'gadgets'."

ABSTRACT_TYPE(/datum/objective/miscreantrp)
/datum/objective/miscreantrp
shoes
explanation_text = "Through trade, sweet-talking, light extortion, blackmail, and other devilish, but non-violent means, secure and deep-fry as many shoes as possible."

bar
explanation_text = "Set up and aggressively market an illicit bar to compete with the Barman, try to draw as many customers away as possible!"

kitchen
explanation_text = "Set up and aggressively market an illicit kitchen to compete with the Chef, try to draw as many customers away as possible!"

salvage
explanation_text = "Gather as many items as possible from maint-tunnels and spare rooms, try to sell them to the crew for a profit."

secret
explanation_text = "Spread misinformation about a terrible event to incite a panic among the crew. If caught, claim it was a safety drill."

ai
explanation_text = "Start and deliver a petition to the captain to secure equal rights for the AI and cyborgs. Try to get as many signatures as you can."

union
explanation_text = "Work with your coworkers to found a union. Once formed, make increasingly radical demands for pay and benefits to command."

museum
explanation_text = "Found and curate a museum."

party
explanation_text = "Single out a crew member and throw them a surprise party."

mascot
explanation_text = "Go on a campaign to establish a station mascot."

shrubs
explanation_text = "Destroy as many shrubs as you can. Replace the destroyed shrubs with other objects. If caught, claim to be balancing the Feng-Shui of the station."

detective
explanation_text = "Found a private detective agency and attempt to solve cases before the detective can. Come up with absurd explanations for crimes and insist that security is secretly in on it."

exterminator
explanation_text = "Kill as many non-monkey, non-pet animals aboard the station as possible and bring their corpses to the bridge. Once finished, claim to be a trained exterminator and demand payment for your services."

business
explanation_text = "Establish a business and attempt to convince the command staff and security to recognize the legitimacy of your emerging enterprise."

primitivism
explanation_text = "Attempt to convince the crew that everything was better in the old days. Try to convince as many humans as possible to become monkeys, and advocate for a return to pre-industrial technology."

narc
explanation_text = "Forge evidence and bribe people into testifying that an entire department is involved in the illegal drug trade with the goal of convincing security to raid that department."

water
explanation_text = "Become an obnoxious hydration advocate. Constantly remind people to drink lots of water."

missionary
explanation_text = "Found a new religion and be as obnoxious as you can about spreading said religion. Go door-to-door between apartments and attempt to convince people to convert."

#endif
2 changes: 0 additions & 2 deletions code/mob/new_player.dm
Expand Up @@ -358,12 +358,10 @@ mob/new_player

var/miscreant = 0
#ifdef MISCREANTS
#ifndef RP_MODE
if (ticker && character.mind && !character.client.using_antag_token && JOB.allow_traitors != 0 && prob(10))
ticker.generate_miscreant_objectives(character.mind)
miscreant = 1
#endif
#endif

#ifdef CREW_OBJECTIVES
if (ticker && character.mind && !miscreant)
Expand Down