mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 20:48:56 +01:00
[MIRROR] Removes holographic monkey species (#26605)
Removes holographic monkey species Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
This commit is contained in:
co-authored by
John Willard
parent
47ab3eb18d
commit
88ea23ee6e
@@ -130,7 +130,6 @@
|
||||
#define SPECIES_NIGHTMARE "nightmare"
|
||||
#define SPECIES_MONKEY "monkey"
|
||||
#define SPECIES_MONKEY_FREAK "monkey_freak"
|
||||
#define SPECIES_MONKEY_HOLODECK "monkey_holodeck"
|
||||
#define SPECIES_MONKEY_HUMAN_LEGGED "monkey_human_legged"
|
||||
#define SPECIES_MOTH "moth"
|
||||
#define SPECIES_MUSHROOM "mush"
|
||||
|
||||
@@ -107,6 +107,12 @@
|
||||
var/final_effectiveness = effectiveness - target.butcher_difficulty
|
||||
var/bonus_chance = max(0, (final_effectiveness - 100) + bonus_modifier) //so 125 total effectiveness = 25% extra chance
|
||||
|
||||
if(target.flags_1 & HOLOGRAM_1)
|
||||
butcher.visible_message(span_notice("[butcher] tries to butcher [target], but it vanishes."), \
|
||||
span_notice("You try to butcher [target], but it vanishes."))
|
||||
qdel(target)
|
||||
return
|
||||
|
||||
for(var/result_typepath in target.butcher_results)
|
||||
var/obj/remains = result_typepath
|
||||
var/amount = target.butcher_results[remains]
|
||||
|
||||
@@ -147,6 +147,12 @@
|
||||
if(!occupant)
|
||||
audible_message(span_hear("You hear a loud metallic grinding sound."))
|
||||
return
|
||||
if(occupant.flags_1 & HOLOGRAM_1)
|
||||
audible_message(span_hear("You hear a very short metallic grinding sound."))
|
||||
playsound(loc, 'sound/machines/hiss.ogg', 20, TRUE)
|
||||
qdel(occupant)
|
||||
set_occupant(null)
|
||||
return
|
||||
|
||||
use_power(active_power_usage)
|
||||
audible_message(span_hear("You hear a loud squelchy grinding sound."))
|
||||
|
||||
@@ -62,11 +62,9 @@
|
||||
mobtype = pick(mobtype)
|
||||
our_mob = new mobtype(loc)
|
||||
our_mob.flags_1 |= HOLOGRAM_1
|
||||
ADD_TRAIT(our_mob, TRAIT_PERMANENTLY_MORTAL, INNATE_TRAIT)
|
||||
|
||||
// these vars are not really standardized but all would theoretically create stuff on death
|
||||
for(var/v in list("butcher_results","corpse","weapon1","weapon2","blood_volume") & our_mob.vars)
|
||||
our_mob.vars[v] = null
|
||||
our_mob.add_traits(list(TRAIT_PERMANENTLY_MORTAL, TRAIT_NO_BLOOD_OVERLAY, TRAIT_NOBLOOD, TRAIT_NOHUNGER), INNATE_TRAIT)
|
||||
RegisterSignal(our_mob, COMSIG_QDELETING, PROC_REF(handle_mob_delete))
|
||||
return our_mob
|
||||
|
||||
@@ -103,7 +101,7 @@
|
||||
mobtype = /mob/living/basic/bee/toxin
|
||||
|
||||
/obj/effect/holodeck_effect/mobspawner/monkey
|
||||
mobtype = /mob/living/carbon/human/species/monkey/holodeck
|
||||
mobtype = /mob/living/carbon/human/species/monkey
|
||||
|
||||
/obj/effect/holodeck_effect/mobspawner/monkey/activate(obj/machinery/computer/holodeck/computer)
|
||||
var/mob/living/carbon/human/monkey = ..()
|
||||
|
||||
@@ -1368,7 +1368,6 @@
|
||||
else
|
||||
set_lying_angle(new_lying_angle)
|
||||
|
||||
|
||||
/mob/living/carbon/vv_edit_var(var_name, var_value)
|
||||
switch(var_name)
|
||||
if(NAMEOF(src, disgust))
|
||||
@@ -1384,17 +1383,18 @@
|
||||
|
||||
return ..()
|
||||
|
||||
|
||||
/mob/living/carbon/get_attack_type()
|
||||
if(has_active_hand())
|
||||
var/obj/item/bodypart/arm/active_arm = get_active_hand()
|
||||
return active_arm.attack_type
|
||||
return ..()
|
||||
|
||||
|
||||
/mob/living/carbon/proc/attach_rot()
|
||||
if(mob_biotypes & (MOB_ORGANIC|MOB_UNDEAD))
|
||||
AddComponent(/datum/component/rot, 6 MINUTES, 10 MINUTES, 1)
|
||||
if(flags_1 & HOLOGRAM_1)
|
||||
return
|
||||
if(!(mob_biotypes & (MOB_ORGANIC|MOB_UNDEAD)))
|
||||
return
|
||||
AddComponent(/datum/component/rot, 6 MINUTES, 10 MINUTES, 1)
|
||||
|
||||
/**
|
||||
* This proc is used to determine whether or not the mob can handle touching an acid affected object.
|
||||
|
||||
@@ -6,6 +6,8 @@ GLOBAL_LIST_EMPTY(dead_players_during_shift)
|
||||
new /obj/effect/temp_visual/dust_animation(loc, dna.species.dust_anim)
|
||||
|
||||
/mob/living/carbon/human/spawn_gibs(drop_bitflags=NONE)
|
||||
if(flags_1 & HOLOGRAM_1)
|
||||
return
|
||||
if(drop_bitflags & DROP_BODYPARTS)
|
||||
new /obj/effect/gibspawner/human(drop_location(), src, get_static_viruses())
|
||||
else
|
||||
|
||||
@@ -32,12 +32,6 @@
|
||||
equip_to_slot_or_del(helmet, ITEM_SLOT_HEAD)
|
||||
helmet.attack_self(src) // todo encapsulate toggle
|
||||
|
||||
/mob/living/carbon/human/species/monkey/holodeck
|
||||
race = /datum/species/monkey/holodeck
|
||||
|
||||
/mob/living/carbon/human/species/monkey/holodeck/spawn_gibs() // no blood and no gibs
|
||||
return
|
||||
|
||||
GLOBAL_DATUM(the_one_and_only_punpun, /mob/living/carbon/human/species/monkey/punpun)
|
||||
|
||||
/mob/living/carbon/human/species/monkey/punpun
|
||||
|
||||
@@ -191,23 +191,4 @@
|
||||
/obj/item/organ/internal/brain/primate/get_attacking_limb(mob/living/carbon/human/target)
|
||||
return owner.get_bodypart(BODY_ZONE_HEAD)
|
||||
|
||||
/// Virtual monkeys that crave virtual bananas. Everything about them is ephemeral (except that bite).
|
||||
/datum/species/monkey/holodeck
|
||||
id = SPECIES_MONKEY_HOLODECK
|
||||
knife_butcher_results = list()
|
||||
meat = null
|
||||
skinned_type = null
|
||||
inherent_traits = list(
|
||||
TRAIT_GENELESS,
|
||||
TRAIT_GUN_NATURAL,
|
||||
TRAIT_NO_AUGMENTS,
|
||||
TRAIT_NO_BLOOD_OVERLAY,
|
||||
TRAIT_NO_DNA_COPY,
|
||||
TRAIT_NO_UNDERWEAR,
|
||||
TRAIT_NO_ZOMBIFY,
|
||||
TRAIT_NOBLOOD,
|
||||
TRAIT_NOHUNGER,
|
||||
TRAIT_VENTCRAWLER_NUDE,
|
||||
)
|
||||
|
||||
#undef MONKEY_SPEC_ATTACK_BITE_MISS_CHANCE
|
||||
|
||||
@@ -37,6 +37,8 @@
|
||||
* * DROP_BODYPARTS - Gibs will spawn with bodypart limbs present
|
||||
**/
|
||||
/mob/living/proc/spawn_gibs(drop_bitflags=NONE)
|
||||
if(flags_1 & HOLOGRAM_1)
|
||||
return
|
||||
new /obj/effect/gibspawner/generic(drop_location(), src, get_static_viruses())
|
||||
|
||||
/**
|
||||
|
||||
@@ -87,14 +87,17 @@
|
||||
var/mob/living/carbon/human/human = target
|
||||
var/typeofmeat = /obj/item/food/meat/slab/human
|
||||
|
||||
if(human.dna && human.dna.species)
|
||||
if(target.flags_1 & HOLOGRAM_1)
|
||||
typeofmeat = null
|
||||
else if(human.dna && human.dna.species)
|
||||
typeofmeat = human.dna.species.meat
|
||||
|
||||
var/obj/item/food/meat/slab/human/newmeat = new typeofmeat
|
||||
newmeat.name = "fatty meat"
|
||||
newmeat.desc = "Extremely fatty tissue taken from a patient."
|
||||
newmeat.subjectname = human.real_name
|
||||
newmeat.subjectjob = human.job
|
||||
newmeat.reagents.add_reagent (/datum/reagent/consumable/nutriment, (removednutriment / 15)) //To balance with nutriment_factor of nutriment
|
||||
newmeat.forceMove(target.loc)
|
||||
if(typeofmeat)
|
||||
var/obj/item/food/meat/slab/human/newmeat = new typeofmeat
|
||||
newmeat.name = "fatty meat"
|
||||
newmeat.desc = "Extremely fatty tissue taken from a patient."
|
||||
newmeat.subjectname = human.real_name
|
||||
newmeat.subjectjob = human.job
|
||||
newmeat.reagents.add_reagent (/datum/reagent/consumable/nutriment, (removednutriment / 15)) //To balance with nutriment_factor of nutriment
|
||||
newmeat.forceMove(target.loc)
|
||||
return ..()
|
||||
|
||||
Reference in New Issue
Block a user