[PTBF] Example PR: Kill Station Pet (#30650)

* Pet Assassination

* Antag rolls

* Adjusts weights to equal 1000

* Map deconflict

* Linter

* Update code/game/gamemodes/objective.dm

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

---------

Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
This commit is contained in:
PollardTheDragon
2025-12-05 22:16:33 +00:00
committed by GitHub
co-authored by DGamerL
parent d87d280b74
commit 9248c028b1
18 changed files with 155 additions and 56 deletions
@@ -442,6 +442,7 @@ GLOBAL_LIST_EMPTY(antagonists)
#define MAROON_OBJECTIVE "MAROON"
#define ASS_ONCE_OBJECTIVE "ASS_ONCE"
#define ASS_OBJECTIVE "ASS"
#define ASS_PET "ASS_PET"
#define INFIL_SEC_OBJECTIVE "INFILTRATE_SEC"
@@ -454,8 +455,9 @@ GLOBAL_LIST_EMPTY(antagonists)
*/
/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 = 45, MAROON_OBJECTIVE = 235, ASS_ONCE_OBJECTIVE = 160, ASS_OBJECTIVE = 340, INFIL_SEC_OBJECTIVE = 220)
var/list/the_nonstatic_kill_list = list(DEBRAIN_OBJECTIVE = 39, MAROON_OBJECTIVE = 202, ASS_ONCE_OBJECTIVE = 138, ASS_OBJECTIVE = 293, ASS_PET = 138, INFIL_SEC_OBJECTIVE = 190)
// If our org has an objectives list, give one to us if we pass a roll on the org's focus
if(organization && length(organization.objectives) && prob(organization.focus))
@@ -480,6 +482,9 @@ GLOBAL_LIST_EMPTY(antagonists)
if(ASS_ONCE_OBJECTIVE)
objective_to_add = /datum/objective/assassinateonce
if(ASS_PET)
objective_to_add = /datum/objective/kill_pet
if(ASS_OBJECTIVE)
objective_to_add = /datum/objective/assassinate
@@ -523,6 +528,7 @@ GLOBAL_LIST_EMPTY(antagonists)
#undef MAROON_OBJECTIVE
#undef ASS_ONCE_OBJECTIVE
#undef ASS_OBJECTIVE
#undef ASS_PET
#undef INFIL_SEC_OBJECTIVE
@@ -218,5 +218,6 @@
/mob/living/basic/giant_spider/araneus/Initialize(mapload)
. = ..()
GLOB.station_pets += src
AddElement(/datum/element/ai_retaliate)
AddElement(/datum/element/pet_bonus, "chitters!")
@@ -232,6 +232,13 @@
. = ..()
. |= access_card.GetAccess()
/mob/living/basic/gorilla/cargo_domestic/forklift
name = "Forklift"
/mob/living/basic/gorilla/cargo_domestic/forklift/Initialize(mapload)
. = ..()
GLOB.station_pets += src
/obj/item/card/id/supply/cargo_gorilla
name = "cargorilla ID"
registered_name = "Cargorilla"
@@ -67,3 +67,10 @@
melee_damage_lower = initial(melee_damage_lower)
melee_damage_upper = initial(melee_damage_upper)
/mob/living/basic/kangaroo/darwin
name = "Darwin"
real_name = "Darwin"
/mob/living/basic/kangaroo/darwin/Initialize(mapload)
. = ..()
GLOB.station_pets += src
@@ -228,3 +228,7 @@
desc = "The worst she might do is attempt to... couple with your head." //hope we don't get sued over a harmless reference, rite?
sterile = 1
gender = FEMALE
/obj/item/clothing/mask/facehugger/lamarr/Initialize(mapload)
. = ..()
GLOB.station_pets += src
@@ -48,6 +48,7 @@
/mob/living/simple_animal/pet/cat/runtime/Initialize(mapload)
. = ..()
SSpersistent_data.register(src)
GLOB.station_pets += src
/mob/living/simple_animal/pet/cat/runtime/Destroy()
SSpersistent_data.registered_atoms -= src
@@ -335,6 +335,7 @@
/mob/living/simple_animal/pet/dog/corgi/ian/Initialize(mapload)
. = ..()
SSpersistent_data.register(src)
GLOB.station_pets += src
/mob/living/simple_animal/pet/dog/corgi/ian/Destroy()
SSpersistent_data.registered_atoms -= src
@@ -22,6 +22,10 @@
unique_pet = TRUE
gold_core_spawnable = NO_SPAWN
/mob/living/simple_animal/pet/dog/fox/renault/Initialize(mapload)
. = ..()
GLOB.station_pets += src
//Syndi fox
/mob/living/simple_animal/pet/dog/fox/syndifox
name = "Syndifox"
@@ -743,6 +743,7 @@
/mob/living/simple_animal/parrot/poly/Initialize(mapload)
. = ..()
GLOB.station_pets += src
ears = new /obj/item/radio/headset/headset_eng(src)
clean_speak += "Danger! Crystal hyperstructure integrity faltering! Integrity: [rand(75, 99)]%" // Has to be here cause of the `rand()`.