mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 11:37:40 +01:00
[PTBF] Download Objective (#30705)
* flayer download obj * tweak download obj * finish flayer download objective * fix layer * lint * unit test fix * fix unit tests maybe * move to correct attack_by * forgot to add admin tooling * address some cool epic comments * linter linter, give me a splinter * Tweak contrast on download sprite. Add optional transparency for consideration. * update sprite + transparent fade in when activating * i am maintaining a positive attitude towards the linter * aghhhhhhhhhhh --------- Signed-off-by: Paul <90473506+pwbokie@users.noreply.github.com> Co-authored-by: Alfalfa Scout <alfalfascout@proton.me>
This commit is contained in:
@@ -409,14 +409,14 @@ GLOBAL_LIST_EMPTY(antagonists)
|
||||
* Create and assign a full set of randomized, basic human traitor objectives.
|
||||
* can_hijack - If you want the 5% chance for the antagonist to be able to roll hijack, only true for traitors
|
||||
*/
|
||||
/datum/antagonist/proc/forge_basic_objectives(can_hijack = FALSE)
|
||||
/datum/antagonist/proc/forge_basic_objectives(can_hijack = FALSE, number_of_objectives = GLOB.configuration.gamemode.traitor_objectives_amount)
|
||||
// Hijack objective.
|
||||
if(can_hijack && prob(5) && !(locate(/datum/objective/hijack) in owner.get_all_objectives()))
|
||||
add_antag_objective(/datum/objective/hijack)
|
||||
return // Hijack should be their only objective (normally), so return.
|
||||
|
||||
// Will give normal steal/kill/etc. type objectives.
|
||||
for(var/i in 1 to GLOB.configuration.gamemode.traitor_objectives_amount)
|
||||
for(var/i in 1 to number_of_objectives)
|
||||
forge_single_human_objective()
|
||||
|
||||
var/can_succeed_if_dead = TRUE
|
||||
@@ -447,7 +447,7 @@ GLOBAL_LIST_EMPTY(antagonists)
|
||||
* After that, add it to the switch list.
|
||||
* The kill objective pool weight has been done by putting the old code through a million or so runs to figure out averages, to keep it consistant.
|
||||
*/
|
||||
/datum/antagonist/proc/forge_single_human_objective()
|
||||
/datum/antagonist/proc/roll_single_human_objective()
|
||||
var/datum/objective/objective_to_add
|
||||
var/list/static/the_objective_list = list(KILL_OBJECTIVE = 47, THEFT_OBJECTIVE = 42, INCRIMINATE_OBJECTIVE = 5, PROTECT_OBJECTIVE = 6)
|
||||
var/list/the_nonstatic_kill_list = list(DEBRAIN_OBJECTIVE = 50, MAROON_OBJECTIVE = 285, ASS_ONCE_OBJECTIVE = 199, ASS_OBJECTIVE = 466)
|
||||
@@ -488,7 +488,11 @@ GLOBAL_LIST_EMPTY(antagonists)
|
||||
|
||||
if(delayed_objectives)
|
||||
objective_to_add = new /datum/objective/delayed(objective_to_add)
|
||||
add_antag_objective(objective_to_add)
|
||||
|
||||
return objective_to_add
|
||||
|
||||
/datum/antagonist/proc/forge_single_human_objective()
|
||||
add_antag_objective(roll_single_human_objective())
|
||||
|
||||
#undef KILL_OBJECTIVE
|
||||
#undef THEFT_OBJECTIVE
|
||||
|
||||
@@ -59,7 +59,11 @@
|
||||
|
||||
/datum/antagonist/mindflayer/give_objectives()
|
||||
add_antag_objective(/datum/objective/swarms)
|
||||
forge_basic_objectives()
|
||||
if(ismachineperson(owner.current) && prob(25)) // 25% chance to have an objective locked behind Download, only for IPCs
|
||||
add_antag_objective(/datum/objective/download)
|
||||
forge_basic_objectives(FALSE, GLOB.configuration.gamemode.traitor_objectives_amount - 1)
|
||||
else
|
||||
forge_basic_objectives()
|
||||
|
||||
/datum/antagonist/mindflayer/exfiltrate(mob/living/carbon/human/extractor, obj/item/radio/radio)
|
||||
remove_all_abilities()
|
||||
|
||||
Reference in New Issue
Block a user