[READY] fixes roles that shouldn't be creepy being creepy and the jealousy objective asking you to assassinate the obsession + missed sanity (#42389)

* adds station positions global list

* She don't believe in shootin' stars But she believe in shoes and cars Wood floors in the new apartment Couture from the store's department

* missed comma

* embarassing

* Update code/modules/antagonists/creep/creep.dm

Co-Authored-By: tralezab <40974010+tralezab@users.noreply.github.com>

* parentheses

* shiver me timbers

* Hey, great work Mac! Now let's take down the next circuit!

* a plethora of fixes
This commit is contained in:
tralezab
2019-01-22 03:15:02 -08:00
committed by Jordie
parent e342f86336
commit b7c5559146
4 changed files with 13 additions and 14 deletions

View File

@@ -110,8 +110,8 @@
var/chosen_victim
var/list/possible_targets = list()
var/list/viable_minds = list()
for(var/mob/Player in GLOB.player_list)//prevents crewmembers falling in love with nuke ops they never met
if(Player.mind && Player.stat != DEAD && !isnewplayer(Player) && !isbrain(Player) && Player.client && Player != owner && !(Player.mind.assigned_role in GLOB.exp_specialmap[EXP_TYPE_SPECIAL] || Player.mind.assigned_role in GLOB.exp_specialmap[EXP_TYPE_ANTAG]))
for(var/mob/Player in GLOB.player_list)//prevents crewmembers falling in love with nuke ops they never met, and other annoying hijinks
if(Player.mind && Player.stat != DEAD && !isnewplayer(Player) && !isbrain(Player) && Player.client && Player != owner && SSjob.GetJob(Player.mind.assigned_role))
viable_minds += Player.mind
for(var/datum/mind/possible_target in viable_minds)
if(possible_target != owner && ishuman(possible_target.current))

View File

@@ -56,8 +56,8 @@
if(family_heirloom)//oh, they have an heirloom? Well you know we have to steal that.
objectives_left += "heirloom"
if(obsessionmind.assigned_role && obsessionmind.assigned_role != "Captain" && !(obsessionmind.assigned_role in GLOB.nonhuman_positions))
objectives_left += "jealous"//while this will sometimes be a free objective during lowpop, this works fine most of the time and is less intensive
if(obsessionmind.assigned_role && obsessionmind.assigned_role != "Captain")
objectives_left += "jealous"//if they have no coworkers, jealousy will pick someone else on the station. this will never be a free objective, nice.
for(var/i in 1 to 3)
var/chosen_objective = pick(objectives_left)
@@ -175,8 +175,9 @@
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
if(!H.mind)
continue
if(!H.mind.assigned_role || H == oldmind.current || H.mind.has_antag_datum(/datum/antagonist/creep)) //the jealousy target has to have a job, and not be the obsession or creep.
continue
if(!SSjob.GetJob(H.mind.assigned_role) || H == oldmind.current || H.mind.has_antag_datum(/datum/antagonist/creep))
continue //the jealousy target has to have a job, and not be the obsession or creep.
all_coworkers += H.mind
//this won't be called often thankfully.
if(H.mind.assigned_role in GLOB.security_positions)
their_chosen_department = "security"
@@ -192,13 +193,12 @@
their_chosen_department = "civilian"
if(their_chosen_department != chosen_department)
continue
viable_coworkers += H
viable_coworkers += H.mind
if(viable_coworkers.len > 0)//find someone in the same department
target = pick(viable_coworkers)
else if(all_coworkers.len > 0)//find someone who works on the station
else
return//there is nobody but you and the obsession
target = pick(all_coworkers)
return oldmind
/datum/objective/spendtime //spend some time around someone, handled by the creep trauma since that ticks
@@ -281,4 +281,4 @@
/datum/antagonist/creep/proc/update_creep_icons_removed(var/mob/living/carbon/human/creep)
var/datum/atom_hud/antag/creephud = GLOB.huds[ANTAG_HUD_CREEP]
creephud.leave_hud(creep)
set_antag_hud(creep, null)
set_antag_hud(creep, null)

View File

@@ -13,10 +13,9 @@
continue
if(H.stat == DEAD)
continue
if(!H.mind.assigned_role || H.mind.assigned_role in GLOB.exp_specialmap[EXP_TYPE_SPECIAL] || H.mind.assigned_role in GLOB.exp_specialmap[EXP_TYPE_ANTAG]) //prevents ashwalkers falling in love with crewmembers they never met
if(!SSjob.GetJob(H.mind.assigned_role) || H.mind.assigned_role in GLOB.nonhuman_positions) //only station jobs sans nonhuman roles, prevents ashwalkers falling in love with crewmembers they never met
continue
var/alreadycreepy = H.mind.has_antag_datum(/datum/antagonist/creep)
if(alreadycreepy)
if(H.mind.has_antag_datum(/datum/antagonist/creep))
continue
if(!H.getorgan(/obj/item/organ/brain))
continue

View File

@@ -126,4 +126,4 @@ GLOBAL_PROTECT(exp_specialmap)
job = mine_expand.Replace(job, "shaft miner")
job = chef_expand.Replace(job, "cook")
job = borg_expand.Replace(job, "cyborg")
return job
return job