Files
MrMelbert 0800c75540 Artifically spawned mobs have a vastly reduced penalty for death moodlet (#93348)
## About The Pull Request

Closes #93285

Mood event from the death of a mob spawned "artificially" is 75% weaker,
lasts 80% the duration, and don't compound

An artificial monkey's death will now result 
- -8 * 0.25 * 0.5 = floor(1) = 1 strength moodlet for the average crew
member
   - ...Lasting 30 seconds (unless refreshed)
- -8 * 0.25 * 1.5 = floor(3) = 3 strength moodlet for animal friends
   - ...Lasting 1.5 minutes (unless refreshed)
- -8 * 0.25 = floor(2) = 2 strength moodlet for compassionate crew
members
   - ...Lasting 1 minute (unless refreshed)

Artifical spawning includes
- Moneky Cube
- Xenobiology Console
- "Life" reaction
- Summoned rats
- Spawner grenades
- Cult ghosts

Lemmie know if I'm missing any obvious spawns 

## Why It's Good For The Game

While funny it was not my intention to have Xenobiology / Genetics /
Virology nuke your mood.

## Changelog

🆑 Melbert
balance: Death of artifical mobs (such as monkey cube monkeys) result in
a 75% weaker, 80% shorter moodlet that does not compound with more
deaths.
/🆑
2025-10-11 00:14:54 +02:00

82 lines
3.4 KiB
Plaintext

/obj/item/grenade/spawnergrenade
desc = "It will unleash an unspecified anomaly in the surrounding vicinity."
name = "delivery grenade"
icon = 'icons/obj/weapons/grenade.dmi'
icon_state = "delivery"
inhand_icon_state = "flashbang"
var/spawner_type = null // must be an object path
var/deliveryamt = 1 // amount of type to deliver
/obj/item/grenade/spawnergrenade/apply_grenade_fantasy_bonuses(quality)
deliveryamt = modify_fantasy_variable("deliveryamt", deliveryamt, quality)
/obj/item/grenade/spawnergrenade/remove_grenade_fantasy_bonuses(quality)
deliveryamt = reset_fantasy_variable("deliveryamt", deliveryamt)
/obj/item/grenade/spawnergrenade/detonate(mob/living/lanced_by) // Prime now just handles the two loops that query for people in lockers and people who can see it.
. = ..()
if(!.)
return
update_mob()
if(spawner_type && deliveryamt)
// Make a quick flash
var/turf/target_turf = get_turf(src)
playsound(target_turf, 'sound/effects/phasein.ogg', 100, TRUE)
for(var/mob/living/carbon/target_carbon in viewers(target_turf, null))
target_carbon.flash_act()
// Spawn some hostile syndicate critters and spread them out
var/list/spawned = spawn_and_random_walk(spawner_type, target_turf, deliveryamt, walk_chance = 50, admin_spawn = ((flags_1 & ADMIN_SPAWNED_1) ? TRUE : FALSE))
afterspawn(spawned)
for(var/mob/living/created as anything in spawned)
ADD_TRAIT(created, TRAIT_SPAWNED_MOB, INNATE_TRAIT)
qdel(src)
/obj/item/grenade/spawnergrenade/proc/afterspawn(list/mob/spawned)
return
/obj/item/grenade/spawnergrenade/manhacks
name = "viscerator delivery grenade"
spawner_type = /mob/living/basic/viscerator
deliveryamt = 10
/obj/item/grenade/spawnergrenade/spesscarp
name = "carp delivery grenade"
spawner_type = /mob/living/basic/carp
deliveryamt = 5
/obj/item/grenade/spawnergrenade/syndiesoap
name = "Mister Scrubby"
spawner_type = /obj/item/soap/syndie
/obj/item/grenade/spawnergrenade/buzzkill
name = "Buzzkill grenade"
desc = "The label reads: \"WARNING: DEVICE WILL RELEASE LIVE SPECIMENS UPON ACTIVATION. SEAL SUIT BEFORE USE.\" It is warm to the touch and vibrates faintly."
icon_state = "holy_grenade"
spawner_type = /mob/living/basic/bee/toxin
deliveryamt = 10
/obj/item/grenade/spawnergrenade/clown
name = "C.L.U.W.N.E."
desc = "A sleek device often given to clowns on their 10th birthdays for protection. You can hear faint scratching coming from within."
icon_state = "clown_ball"
inhand_icon_state = null
spawner_type = list(/mob/living/basic/clown/fleshclown, /mob/living/basic/clown/clownhulk, /mob/living/basic/clown/longface, /mob/living/basic/clown/clownhulk/chlown, /mob/living/basic/clown/clownhulk/honkmunculus, /mob/living/basic/clown/mutant/glutton, /mob/living/basic/clown/banana, /mob/living/basic/clown/honkling, /mob/living/basic/clown/lube)
deliveryamt = 1
/obj/item/grenade/spawnergrenade/clown_broken
name = "stuffed C.L.U.W.N.E."
desc = "A sleek device often given to clowns on their 10th birthdays for protection. While a typical C.L.U.W.N.E only holds one creature, sometimes foolish young clowns try to cram more in, often to disastrous effect."
icon_state = "clown_broken"
inhand_icon_state = null
spawner_type = /mob/living/basic/clown/mutant
deliveryamt = 5
/obj/item/grenade/spawnergrenade/cat
name = "Catnade"
desc = "You can hear faint meowing and the sounds of claws on metal coming from within."
spawner_type = /mob/living/basic/pet/cat/feral
deliveryamt = 5