mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-15 10:04:30 +01:00
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. /🆑
This commit is contained in:
@@ -1025,7 +1025,7 @@ GLOBAL_VAR_INIT(narsie_summon_count, 0)
|
||||
new_human.equipOutfit(/datum/outfit/ghost_cultist) //give them armor
|
||||
new_human.apply_status_effect(/datum/status_effect/cultghost) //ghosts can't summon more ghosts
|
||||
new_human.set_invis_see(SEE_INVISIBLE_OBSERVER)
|
||||
new_human.add_traits(list(TRAIT_NOBREATH, TRAIT_PERMANENTLY_MORTAL), INNATE_TRAIT) // permanently mortal can be removed once this is a bespoke kind of mob
|
||||
new_human.add_traits(list(TRAIT_NOBREATH, TRAIT_SPAWNED_MOB, TRAIT_PERMANENTLY_MORTAL), INNATE_TRAIT) // permanently mortal can be removed once this is a bespoke kind of mob
|
||||
ghosts++
|
||||
playsound(src, 'sound/effects/magic/exit_blood.ogg', 50, TRUE)
|
||||
visible_message(span_warning("A cloud of red mist forms above [src], and from within steps... a [new_human.gender == FEMALE ? "wo":""]man."))
|
||||
|
||||
@@ -230,6 +230,7 @@
|
||||
else
|
||||
spawned_mob = new mob_class(get_turf(holder.my_atom))//Spawn our specific mob_class
|
||||
spawned_mob.faction |= mob_faction
|
||||
ADD_TRAIT(spawned_mob, TRAIT_SPAWNED_MOB, INNATE_TRAIT)
|
||||
if(prob(50))
|
||||
for(var/j in 1 to rand(1, 3))
|
||||
step(spawned_mob, pick(NORTH,SOUTH,EAST,WEST))
|
||||
|
||||
@@ -172,6 +172,7 @@ GLOBAL_VAR_INIT(disposals_animals_spawned, 0)
|
||||
var/rat_cap = CONFIG_GET(number/ratcap)
|
||||
if (LAZYLEN(SSmobs.cheeserats) < rat_cap && prob(33))
|
||||
var/mob/living/basic/mouse/new_subject = new(king.drop_location())
|
||||
ADD_TRAIT(new_subject, TRAIT_SPAWNED_MOB, INNATE_TRAIT)
|
||||
playsound(new_subject, 'sound/mobs/non-humanoids/mouse/mousesqueek.ogg', 100)
|
||||
visible_message(span_warning("[new_subject] climbs out of [src]!"))
|
||||
|
||||
|
||||
@@ -262,6 +262,7 @@
|
||||
if (QDELETED(food))
|
||||
return
|
||||
food.apply_status_effect(/datum/status_effect/slime_food, user)
|
||||
ADD_TRAIT(food, TRAIT_SPAWNED_MOB, INNATE_TRAIT)
|
||||
|
||||
stored_monkeys--
|
||||
stored_monkeys = round(stored_monkeys, 0.1) //Prevents rounding errors
|
||||
|
||||
@@ -58,6 +58,7 @@
|
||||
var/atom/summoned_object = new summoned_object_type(spawn_place)
|
||||
|
||||
summoned_object.flags_1 |= ADMIN_SPAWNED_1
|
||||
ADD_TRAIT(summoned_object, TRAIT_SPAWNED_MOB, INNATE_TRAIT)
|
||||
if(summon_lifespan > 0)
|
||||
QDEL_IN(summoned_object, summon_lifespan)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user