mirror of
https://github.com/fulpstation/fulpstation.git
synced 2025-12-10 18:11:47 +00:00
[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:
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user