Bloodsucker objectives rework (#14648)

* Update computer.dm

* Update meat.dm

* Update objects.dm

* Update computer.dm

* Update meat.dm

* Update objects.dm

* boowomp

* e

* s

* s

* 3

* rev

* Update antagonists.dm

* Update blob_overmind.dm

* Update radial.dm

* Delete info.dm

* Update overmind.dm

* Update overmind.dm

* Update powers.dm

* Update role_preferences.dm

* Update job.dm

* Update mind.dm

* Update dynamic_rulesets.dm

* Update dynamic_rulesets_latejoin.dm

* Update dynamic_rulesets_roundstart.dm

* Update antag_panel.dm

* Update revolution.dm

* Update bureaucratic_error.dm

* Update _job.dm

* Update ai.dm

* Delete anti_union_propaganda.txt

* Update antagonists.dm

* Update blob_overmind.dm

* Update generic_negative_events.dm

* Update _blobstrain.dm

* Update _blob.dm

* Update _job.dm

* sus amogus

* Update blob_overmind.dm

* Update bloodsuckers.dm

* Update bloodsucker_objectives.dm

* Apply suggestions from code review

Co-authored-by: Jamie D <993128+JamieD1@users.noreply.github.com>
This commit is contained in:
SuperSlayer
2022-07-16 15:55:28 +03:00
committed by GitHub
parent 1dc8c7310b
commit 08f43f3fa3
3 changed files with 25 additions and 8 deletions

View File

@@ -174,4 +174,4 @@
using = new /obj/screen/blob/RelocateCore() using = new /obj/screen/blob/RelocateCore()
using.screen_loc = ui_storage2 using.screen_loc = ui_storage2
static_inventory += using static_inventory += using

View File

@@ -406,3 +406,24 @@
return TRUE return TRUE
return FALSE return FALSE
*/ */
/// Convert a certain amount of vassals
/datum/objective/bloodsucker/leader
name = "leader"
/datum/objective/bloodsucker/leader/New()
target_amount = rand(2,3)
..()
// EXPLANATION
/datum/objective/bloodsucker/leader/update_explanation_text()
. = ..()
explanation_text = "Convert [target_amount] of Vassals into your vassals."
// WIN CONDITIONS?
/datum/objective/bloodsucker/leader/check_completion()
var/datum/antagonist/bloodsucker/bloodsuckerdatum = owner.current.mind.has_antag_datum(/datum/antagonist/bloodsucker)
if(bloodsuckerdatum && bloodsuckerdatum.vassals >= target_amount)
return TRUE
return FALSE

View File

@@ -520,14 +520,10 @@
objectives += survive_objective objectives += survive_objective
// Objective 1: Vassalize a Head/Command, or a specific target // Objective 1: Vassalize a Head/Command, or a specific target
var/list/possible_objectives = list(/datum/objective/bloodsucker/gourmand, /datum/objective/bloodsucker/heartthief, /datum/objective/bloodsucker/leader)
var/list/rolled_objectives = list() var/list/rolled_objectives = list()
switch(rand(1, 3)) for(var/i = 1; i <= 2; i++)
if(1) // Protege and Drink Objective rolled_objectives += pick(possible_objectives)
rolled_objectives = list(new /datum/objective/bloodsucker/protege, new /datum/objective/bloodsucker/gourmand)
if(2) // Heart Thief and Protege Objective
rolled_objectives = list(new /datum/objective/bloodsucker/protege, new /datum/objective/bloodsucker/heartthief)
if(3) // Heart Thief and Drink Objective
rolled_objectives = list(new /datum/objective/bloodsucker/heartthief, new /datum/objective/bloodsucker/gourmand)
for(var/datum/objective/bloodsucker/objective in rolled_objectives) for(var/datum/objective/bloodsucker/objective in rolled_objectives)
objective.owner = owner objective.owner = owner
objectives += objective objectives += objective