mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-24 20:47:10 +01:00
tiggersgonnaeatme
This commit is contained in:
@@ -14,6 +14,16 @@
|
||||
|
||||
/mob/living/attackby(obj/item/I, mob/user, params)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
|
||||
if((butcher_results) && (stat == DEAD))
|
||||
var/sharpness = is_sharp(I)
|
||||
if(sharpness)
|
||||
user << "<span class='notice'>You begin to butcher [src]...</span>"
|
||||
playsound(loc, 'sound/weapons/slice.ogg', 50, 1, -1)
|
||||
if(do_mob(user, src, 80/sharpness))
|
||||
harvest(user)
|
||||
return
|
||||
|
||||
if(istype(I) && ismob(user))
|
||||
I.attack(src, user)
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
melee_damage_lower = 15
|
||||
melee_damage_upper = 15
|
||||
AIStatus = AI_OFF
|
||||
butcher_results = list(/obj/item/weapon/ectoplasm = 1)
|
||||
var/summoned = FALSE
|
||||
var/cooldown = 0
|
||||
var/damage_transfer = 1 //how much damage from each attack we transfer to the owner
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
wander = 0
|
||||
attacktext = "glomps"
|
||||
attack_sound = 'sound/effects/blobattack.ogg'
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/slab
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab = 2)
|
||||
|
||||
var/morphed = 0
|
||||
var/atom/movable/form = null
|
||||
|
||||
@@ -245,9 +245,12 @@
|
||||
new_meat.name = "[slab_name] [new_meat.name]"
|
||||
new_meat.reagents.add_reagent("nutriment",slab_nutrition)
|
||||
|
||||
|
||||
if(occupant.reagents)
|
||||
occupant.reagents.trans_to(new_meat, round(occupant.reagents.total_volume/slab_count,1))
|
||||
|
||||
if(occupant.get_species() == "Human")
|
||||
new /obj/item/stack/sheet/animalhide/human
|
||||
new /obj/effect/decal/cleanable/blood/gibs(src)
|
||||
|
||||
if(!UserOverride)
|
||||
|
||||
@@ -5,6 +5,22 @@
|
||||
icon_state = "sheet-hide"
|
||||
origin_tech = ""
|
||||
|
||||
var/global/list/datum/stack_recipe/human_recipes = list( \
|
||||
new/datum/stack_recipe("bloated human costume", /obj/item/clothing/suit/bloated_human, 5, on_floor = 1), \
|
||||
new/datum/stack_recipe("bloated human costume head", /obj/item/clothing/head/human_head, 5, on_floor = 1), \
|
||||
)
|
||||
|
||||
/obj/item/stack/sheet/animalhide/human/New(var/loc, var/amount=null)
|
||||
recipes = human_recipes
|
||||
return ..()
|
||||
|
||||
/obj/item/stack/sheet/animalhide/generic
|
||||
name = "generic skin"
|
||||
desc = "A piece of generic skin."
|
||||
singular_name = "generic skin piece"
|
||||
icon_state = "sheet-hide"
|
||||
origin_tech = null
|
||||
|
||||
/obj/item/stack/sheet/animalhide/corgi
|
||||
name = "corgi hide"
|
||||
desc = "The by-product of corgi farming."
|
||||
|
||||
@@ -51,6 +51,7 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \
|
||||
new/datum/stack_recipe("wall girders", /obj/structure/girder, 2, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("machine frame", /obj/machinery/constructable_frame/machine_frame, 5, time = 25, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("turret frame", /obj/machinery/porta_turret_construct, 5, time = 25, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("meatspike frame", /obj/structure/kitchenspike_frame, 5, time = 25, one_per_turf = 1, on_floor = 1), \
|
||||
null, \
|
||||
new/datum/stack_recipe_list("airlock assemblies", list( \
|
||||
new/datum/stack_recipe("standard airlock assembly", /obj/structure/door_assembly, 4, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
|
||||
@@ -1,5 +1,33 @@
|
||||
|
||||
//////Kitchen Spike
|
||||
|
||||
/obj/structure/kitchenspike_frame
|
||||
name = "meatspike frame"
|
||||
icon = 'icons/obj/kitchen.dmi'
|
||||
icon_state = "spikeframe"
|
||||
desc = "The frame of a meat spike."
|
||||
density = 1
|
||||
anchored = 0
|
||||
|
||||
/obj/structure/kitchenspike_frame/attackby(obj/item/I, mob/user, params)
|
||||
add_fingerprint(user)
|
||||
if(istype(I, /obj/item/weapon/wrench))
|
||||
if(anchored)
|
||||
user << "<span class='notice'>You unwrench [src] from the floor.</span>"
|
||||
anchored = 0
|
||||
else
|
||||
user << "<span class='notice'>You wrench [src] into place.</span>"
|
||||
anchored = 1
|
||||
else if(istype(I, /obj/item/stack/rods))
|
||||
var/obj/item/stack/rods/R = I
|
||||
if(R.get_amount() >= 4)
|
||||
R.use(4)
|
||||
user << "<span class='notice'>You add spikes to the frame.</span>"
|
||||
new /obj/structure/kitchenspike(src.loc,)
|
||||
add_fingerprint(user)
|
||||
qdel(src)
|
||||
|
||||
|
||||
/obj/structure/kitchenspike
|
||||
name = "a meat spike"
|
||||
icon = 'icons/obj/kitchen.dmi'
|
||||
@@ -7,54 +35,104 @@
|
||||
desc = "A spike for collecting meat from animals."
|
||||
density = 1
|
||||
anchored = 1
|
||||
var/meat = 0
|
||||
var/occupied
|
||||
var/meat_type
|
||||
var/victim_name = "corpse"
|
||||
buckle_lying = 0
|
||||
can_buckle = 1
|
||||
|
||||
|
||||
|
||||
/obj/structure/kitchenspike/attackby(obj/item/weapon/grab/G as obj, mob/user as mob)
|
||||
if(istype(G, /obj/item/weapon/crowbar))
|
||||
if(!src.buckled_mob)
|
||||
playsound(loc, 'sound/items/Crowbar.ogg', 100, 1)
|
||||
if(do_after(user, 20, target = src))
|
||||
user << "<span class='notice'>You pry the spikes out of the frame.</span>"
|
||||
new /obj/item/stack/rods(loc, 4)
|
||||
new /obj/structure/kitchenspike_frame(src.loc,)
|
||||
add_fingerprint(user)
|
||||
qdel(src)
|
||||
else
|
||||
user << "<span class='notice'>You can't do that while something's on the spike!</span>"
|
||||
return
|
||||
if(!istype(G, /obj/item/weapon/grab) || !G.affecting)
|
||||
return
|
||||
if(occupied)
|
||||
if(buckled_mob)
|
||||
user << "<span class = 'danger'>The spike already has something on it, finish collecting its meat first!</span>"
|
||||
else
|
||||
if(spike(G.affecting))
|
||||
visible_message("<span class = 'danger'>[user] has forced [G.affecting] onto the spike, killing them instantly!</span>")
|
||||
qdel(G.affecting)
|
||||
qdel(G)
|
||||
else
|
||||
user << "<span class='danger'>They are too big for the spike, try something smaller!</span>"
|
||||
if(istype(G.affecting, /mob/living/))
|
||||
if(!buckled_mob)
|
||||
if(do_mob(src, src, 120))
|
||||
if(spike(G.affecting))
|
||||
qdel(G)
|
||||
user << "<span class='danger'>You can't use that on the spike!</span>"
|
||||
return
|
||||
|
||||
/obj/structure/kitchenspike/proc/spike(var/mob/living/victim)
|
||||
|
||||
if(!istype(victim))
|
||||
return
|
||||
|
||||
if(istype(victim, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = victim
|
||||
if(!H.species.is_small)
|
||||
return 0
|
||||
meat_type = H.species.meat_type
|
||||
icon_state = "spikebloody"
|
||||
else if(istype(victim, /mob/living/carbon/alien))
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/xenomeat
|
||||
icon_state = "spikebloodygreen"
|
||||
else
|
||||
return 0
|
||||
|
||||
victim_name = victim.name
|
||||
occupied = 1
|
||||
meat = 5
|
||||
if(buckled_mob) //to prevent spam/queing up attacks
|
||||
return 0
|
||||
if(victim.buckled)
|
||||
return 0
|
||||
var/mob/living/H = victim
|
||||
playsound(src.loc, "sound/effects/splat.ogg", 25, 1)
|
||||
H.visible_message("<span class='danger'>[src] slams [victim] onto the meat spike!</span>", "<span class='userdanger'>[src] slams you onto the meat spike!</span>", "<span class='italics'>You hear a squishy wet noise.</span>")
|
||||
H.loc = src.loc
|
||||
H.emote("scream")
|
||||
if(istype(H, /mob/living/carbon/human)) //So you don't get human blood when you spike a giant spidere
|
||||
var/turf/simulated/pos = get_turf(H)
|
||||
pos.add_blood_floor(H)
|
||||
H.adjustBruteLoss(30)
|
||||
H.buckled = src
|
||||
H.dir = 2
|
||||
buckled_mob = H
|
||||
var/matrix/m180 = matrix()
|
||||
m180.Turn(180)
|
||||
animate(H, transform = m180, time = 3)
|
||||
H.pixel_y = H.get_standard_pixel_y_offset(180)
|
||||
return 1
|
||||
|
||||
/obj/structure/kitchenspike/attack_hand(mob/user as mob)
|
||||
if(..() || !occupied)
|
||||
return
|
||||
meat--
|
||||
new meat_type(get_turf(src))
|
||||
if(src.meat > 1)
|
||||
user << "You remove some meat from \the [victim_name]."
|
||||
else if(src.meat == 1)
|
||||
user << "You remove the last piece of meat from \the [victim_name]!"
|
||||
icon_state = "spike"
|
||||
occupied = 0
|
||||
|
||||
|
||||
/obj/structure/kitchenspike/user_buckle_mob(mob/living/M, mob/living/user) //Don't want them getting put on the rack other than by spiking
|
||||
return
|
||||
|
||||
/obj/structure/kitchenspike/user_unbuckle_mob(mob/living/carbon/human/user)
|
||||
if(buckled_mob && buckled_mob.buckled == src)
|
||||
var/mob/living/M = buckled_mob
|
||||
if(M != user)
|
||||
M.visible_message(\
|
||||
"[user.name] tries to pull [M.name] free of the [src]!",\
|
||||
"<span class='notice'>[user.name] is trying to pull you off of [src], opening up fresh wounds!</span>",\
|
||||
"<span class='italics'>You hear a squishy wet noise.</span>")
|
||||
if(!do_after(user, 300, target = src))
|
||||
if(M && M.buckled)
|
||||
M.visible_message(\
|
||||
"[user.name] fails to free [M.name]!",\
|
||||
"<span class='notice'>[user.name] fails to pull you off of [src].</span>")
|
||||
return
|
||||
|
||||
else
|
||||
M.visible_message(\
|
||||
"<span class='warning'>[M.name] struggles to break free from the [src]!</span>",\
|
||||
"<span class='notice'>You struggle to break free from the [src], exacerbating your wounds! (Stay still for two minutes.)</span>",\
|
||||
"<span class='italics'>You hear a wet squishing noise..</span>")
|
||||
M.adjustBruteLoss(30)
|
||||
if(!do_after(M, 1200, target = src))
|
||||
if(M && M.buckled)
|
||||
M << "<span class='warning'>You fail to free yourself!</span>"
|
||||
return
|
||||
if(!M.buckled)
|
||||
return
|
||||
var/matrix/m180 = matrix(M.transform)
|
||||
m180.Turn(180)
|
||||
animate(M, transform = m180, time = 3)
|
||||
M.pixel_y = M.get_standard_pixel_y_offset(180)
|
||||
M.adjustBruteLoss(30)
|
||||
src.visible_message(text("<span class='danger'>[M] falls free of the [src]!</span>"))
|
||||
unbuckle_mob()
|
||||
M.emote("scream")
|
||||
M.AdjustWeakened(10)
|
||||
|
||||
|
||||
@@ -224,6 +224,21 @@
|
||||
item_state = "ponchoshame"
|
||||
flags = NODROP
|
||||
|
||||
/obj/item/clothing/suit/bloated_human //OH MY GOD WHAT HAVE YOU DONE!?!?!?
|
||||
name = "bloated human suit"
|
||||
desc = "A horribly bloated suit made from human skins."
|
||||
icon_state = "lingspacesuit"
|
||||
item_state = "lingspacesuit"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
|
||||
|
||||
/obj/item/clothing/head/human_head
|
||||
name = "bloated human head"
|
||||
desc = "A horribly bloated and mismatched human head."
|
||||
icon_state = "lingspacehelmet"
|
||||
item_state = "lingspacehelmet"
|
||||
body_parts_covered = HEAD
|
||||
|
||||
|
||||
/*
|
||||
* Misc
|
||||
*/
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "alien"
|
||||
icon_state = "alien_s"
|
||||
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/xenomeat = 5, /obj/item/stack/sheet/animalhide/xeno = 1)
|
||||
var/obj/item/weapon/r_store = null
|
||||
var/obj/item/weapon/l_store = null
|
||||
var/caste = ""
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
is_small = 1
|
||||
has_fine_manipulation = 0
|
||||
ventcrawler = 1
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/monkey = 5, /obj/item/stack/sheet/animalhide/monkey = 1)
|
||||
show_ssd = 0
|
||||
eyes = "blank_eyes"
|
||||
death_message = "lets out a faint chimper as it collapses and stops moving..."
|
||||
@@ -29,7 +30,6 @@
|
||||
|
||||
//unarmed_types = list(/datum/unarmed_attack/bite, /datum/unarmed_attack/claws)
|
||||
//inherent_verbs = list(/mob/living/proc/ventcrawl)
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/monkey
|
||||
|
||||
total_health = 75
|
||||
brute_mod = 1.5
|
||||
|
||||
@@ -78,8 +78,7 @@
|
||||
var/blood_color = "#A10808" //Red.
|
||||
var/flesh_color = "#FFC896" //Pink.
|
||||
var/single_gib_type = /obj/effect/decal/cleanable/blood/gibs
|
||||
var/meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/human
|
||||
|
||||
var/list/butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/human = 1)
|
||||
var/base_color //Used when setting species.
|
||||
|
||||
//Used in icon caching.
|
||||
|
||||
@@ -952,4 +952,15 @@
|
||||
|
||||
//used in datum/reagents/reaction() proc
|
||||
/mob/living/proc/get_permeability_protection()
|
||||
return 0
|
||||
return 0
|
||||
|
||||
/mob/living/proc/harvest(mob/living/user)
|
||||
//if(qdeleted(src))
|
||||
// return//Replace with what?
|
||||
if(butcher_results)
|
||||
for(var/path in butcher_results)
|
||||
for(var/i = 1; i <= butcher_results[path];i++)
|
||||
new path(src.loc)
|
||||
butcher_results.Remove(path) //In case you want to have things like simple_animals drop their butcher results on gib, so it won't double up below.
|
||||
visible_message("<span class='notice'>[user] butchers [src].</span>")
|
||||
gib()
|
||||
@@ -52,4 +52,6 @@
|
||||
var/list/datum/action/actions = list()
|
||||
var/step_count = 0
|
||||
|
||||
var/list/butcher_results = null
|
||||
|
||||
var/list/surgeries = list() //a list of surgery datums. generally empty, they're added when the player wants them.
|
||||
@@ -17,8 +17,7 @@
|
||||
density = 0
|
||||
pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
|
||||
ventcrawler = 2
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
meat_amount = 0
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat = 1)
|
||||
|
||||
/mob/living/simple_animal/butterfly/New()
|
||||
..()
|
||||
|
||||
@@ -16,8 +16,7 @@
|
||||
see_in_dark = 6
|
||||
simplespecies = /mob/living/simple_animal/pet/cat
|
||||
childtype = /mob/living/simple_animal/pet/cat/kitten
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
meat_amount = 3
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat = 3)
|
||||
response_help = "pets"
|
||||
response_disarm = "gently pushes aside"
|
||||
response_harm = "kicks"
|
||||
|
||||
@@ -15,8 +15,7 @@
|
||||
emote_see = list("shakes its head", "shivers")
|
||||
speak_chance = 1
|
||||
turns_per_move = 10
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/corgi
|
||||
meat_amount = 3
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/corgi = 3)
|
||||
response_help = "pets"
|
||||
response_disarm = "bops"
|
||||
response_harm = "kicks"
|
||||
|
||||
@@ -11,8 +11,7 @@
|
||||
emote_see = list("clacks")
|
||||
speak_chance = 1
|
||||
turns_per_move = 5
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
meat_amount = 3
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat = 1)
|
||||
response_help = "pets the"
|
||||
response_disarm = "gently pushes aside the"
|
||||
response_harm = "stomps the"
|
||||
|
||||
@@ -10,8 +10,7 @@
|
||||
speak_chance = 1
|
||||
turns_per_move = 5
|
||||
see_in_dark = 0 //I'm so funny
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
meat_amount = 3
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat = 4)
|
||||
response_help = "pets"
|
||||
response_disarm = "gently pushes aside"
|
||||
response_harm = "kicks"
|
||||
|
||||
@@ -12,8 +12,7 @@
|
||||
speak_chance = 1
|
||||
turns_per_move = 5
|
||||
see_in_dark = 6
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
meat_amount = 4
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat = 4)
|
||||
response_help = "pets the"
|
||||
response_disarm = "gently pushes aside the"
|
||||
response_harm = "kicks the"
|
||||
@@ -103,8 +102,7 @@
|
||||
speak_chance = 1
|
||||
turns_per_move = 5
|
||||
see_in_dark = 6
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
meat_amount = 6
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab = 6)
|
||||
response_help = "pets the"
|
||||
response_disarm = "gently pushes aside the"
|
||||
response_harm = "kicks the"
|
||||
@@ -168,8 +166,7 @@
|
||||
density = 0
|
||||
speak_chance = 2
|
||||
turns_per_move = 2
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
meat_amount = 1
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat = 1)
|
||||
response_help = "pets the"
|
||||
response_disarm = "gently pushes aside the"
|
||||
response_harm = "kicks the"
|
||||
@@ -211,8 +208,7 @@ var/global/chicken_count = 0
|
||||
density = 0
|
||||
speak_chance = 2
|
||||
turns_per_move = 3
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
meat_amount = 2
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat = 2)
|
||||
response_help = "pets the"
|
||||
response_disarm = "gently pushes aside the"
|
||||
response_harm = "kicks the"
|
||||
@@ -294,8 +290,7 @@ var/global/chicken_count = 0
|
||||
speak_chance = 1
|
||||
turns_per_move = 5
|
||||
see_in_dark = 6
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/ham
|
||||
meat_amount = 6
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/ham = 6)
|
||||
response_help = "pets the"
|
||||
response_disarm = "gently pushes aside the"
|
||||
response_harm = "kicks the"
|
||||
@@ -316,8 +311,7 @@ var/global/chicken_count = 0
|
||||
speak_chance = 1
|
||||
turns_per_move = 5
|
||||
see_in_dark = 6
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat //enough to make one turkey
|
||||
meat_amount = 4
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat = 4)
|
||||
response_help = "pets the"
|
||||
response_disarm = "gently pushes aside the"
|
||||
response_harm = "kicks the"
|
||||
@@ -338,8 +332,7 @@ var/global/chicken_count = 0
|
||||
speak_chance = 1
|
||||
turns_per_move = 5
|
||||
see_in_dark = 6
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
meat_amount = 6
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat = 6)
|
||||
response_help = "pets the"
|
||||
response_disarm = "gently pushes aside the"
|
||||
response_harm = "kicks the"
|
||||
@@ -360,8 +353,7 @@ var/global/chicken_count = 0
|
||||
speak_chance = 1
|
||||
turns_per_move = 5
|
||||
see_in_dark = 6
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
meat_amount = 6
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat = 6)
|
||||
response_help = "pets the"
|
||||
response_disarm = "gently pushes aside the"
|
||||
response_harm = "kicks the"
|
||||
@@ -382,8 +374,7 @@ var/global/chicken_count = 0
|
||||
speak_chance = 1
|
||||
turns_per_move = 5
|
||||
see_in_dark = 6
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
meat_amount = 6
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat = 6)
|
||||
response_help = "pets the"
|
||||
response_disarm = "gently pushes aside the"
|
||||
response_harm = "kicks the"
|
||||
|
||||
@@ -13,8 +13,7 @@
|
||||
speak_chance = 1
|
||||
turns_per_move = 5
|
||||
see_in_dark = 6
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
meat_amount = 3
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat = 3)
|
||||
response_help = "pets"
|
||||
response_disarm = "gently pushes aside"
|
||||
response_harm = "kicks"
|
||||
|
||||
@@ -20,6 +20,5 @@
|
||||
density = 0
|
||||
pass_flags = PASSTABLE | PASSMOB
|
||||
can_hide = 1
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
meat_amount = 1
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat = 1)
|
||||
can_collar = 1
|
||||
|
||||
@@ -15,8 +15,7 @@
|
||||
see_in_dark = 6
|
||||
maxHealth = 5
|
||||
health = 5
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
meat_amount = 1
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat = 1)
|
||||
response_help = "pets the"
|
||||
response_disarm = "gently pushes aside the"
|
||||
response_harm = "stamps on the"
|
||||
|
||||
@@ -12,8 +12,7 @@
|
||||
emote_see = list("shakes its head.", "chases its tail.","shivers.")
|
||||
speak_chance = 1
|
||||
turns_per_move = 10
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/pug
|
||||
meat_amount = 3
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/pug = 3)
|
||||
response_help = "pets"
|
||||
response_disarm = "bops"
|
||||
response_harm = "kicks"
|
||||
|
||||
@@ -8,8 +8,7 @@
|
||||
turns_per_move = 5
|
||||
maxHealth = 15
|
||||
health = 15
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/tomatomeat
|
||||
meat_amount = 3
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/tomatomeat = 2)
|
||||
response_help = "prods the"
|
||||
response_disarm = "pushes aside the"
|
||||
response_harm = "smacks the"
|
||||
|
||||
@@ -10,8 +10,7 @@
|
||||
response_disarm = "shoves the"
|
||||
response_harm = "hits the"
|
||||
speed = 0
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/xenomeat
|
||||
meat_amount = 3
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/xenomeat = 3)
|
||||
maxHealth = 100
|
||||
health = 100
|
||||
harm_intent_damage = 5
|
||||
|
||||
@@ -8,8 +8,7 @@
|
||||
icon_gib = "bat_dead"
|
||||
speak_chance = 0
|
||||
turns_per_move = 3
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
meat_amount = 1
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat = 1)
|
||||
response_help = "pets the"
|
||||
response_disarm = "gently pushes aside the"
|
||||
response_harm = "hits the"
|
||||
|
||||
@@ -13,8 +13,7 @@
|
||||
speak_chance = 1
|
||||
turns_per_move = 5
|
||||
see_in_dark = 6
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/bearmeat
|
||||
meat_amount = 5
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/bearmeat = 5, /obj/item/clothing/head/bearpelt = 1)
|
||||
response_help = "pets"
|
||||
response_disarm = "gently pushes aside"
|
||||
response_harm = "hits"
|
||||
|
||||
@@ -9,8 +9,7 @@
|
||||
icon_gib = "carp_gib"
|
||||
speak_chance = 0
|
||||
turns_per_move = 5
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat
|
||||
meat_amount = 2
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/carpmeat = 2)
|
||||
response_help = "pets the"
|
||||
response_disarm = "gently pushes aside the"
|
||||
response_harm = "hits the"
|
||||
|
||||
@@ -33,8 +33,7 @@
|
||||
speak_chance = 5
|
||||
turns_per_move = 5
|
||||
see_in_dark = 10
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/spidermeat
|
||||
meat_amount = 2
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/spidermeat = 2, /obj/item/weapon/reagent_containers/food/snacks/spiderleg = 8)
|
||||
response_help = "pets"
|
||||
response_disarm = "gently pushes aside"
|
||||
response_harm = "hits"
|
||||
@@ -57,8 +56,8 @@
|
||||
icon_state = "nurse"
|
||||
icon_living = "nurse"
|
||||
icon_dead = "nurse_dead"
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/spidereggs
|
||||
meat_amount = 4
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/spidermeat = 2, /obj/item/weapon/reagent_containers/food/snacks/spiderleg = 8, /obj/item/weapon/reagent_containers/food/snacks/spidereggs = 4)
|
||||
|
||||
maxHealth = 40
|
||||
health = 40
|
||||
melee_damage_lower = 5
|
||||
@@ -95,19 +94,6 @@
|
||||
stop_automated_movement = 0
|
||||
walk(src,0)
|
||||
|
||||
// Chops off each leg with a 50/50 chance of harvesting one, until finally calling
|
||||
// default harvest action
|
||||
/mob/living/simple_animal/hostile/poison/giant_spider/harvest()
|
||||
if(butcher_state > 0)
|
||||
butcher_state--
|
||||
icon_state = icon_dead + "[butcher_state]"
|
||||
|
||||
if(prob(50))
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/spiderleg(src.loc)
|
||||
return
|
||||
else
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/poison/giant_spider/nurse/proc/GiveUp(var/C)
|
||||
spawn(100)
|
||||
if(busy == MOVING_TO_TARGET)
|
||||
|
||||
@@ -13,8 +13,7 @@
|
||||
icon_gib = "panther_dead"
|
||||
speak_chance = 0
|
||||
turns_per_move = 3
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
meat_amount = 3
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat = 3)
|
||||
response_help = "pets the"
|
||||
response_disarm = "gently pushes aside the"
|
||||
response_harm = "hits the"
|
||||
@@ -72,8 +71,7 @@
|
||||
icon_gib = "snake_dead"
|
||||
speak_chance = 0
|
||||
turns_per_move = 1
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
meat_amount = 2
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat = 2)
|
||||
response_help = "pets the"
|
||||
response_disarm = "gently pushes aside the"
|
||||
response_harm = "hits the"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
turns_per_move = 1
|
||||
maxHealth = 10
|
||||
health = 10
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice = 1)
|
||||
response_help = "pets"
|
||||
response_disarm = "gently pushes aside"
|
||||
response_harm = "whacks"
|
||||
|
||||
@@ -8,8 +8,7 @@
|
||||
icon_gib = "carp_gib"
|
||||
speak_chance = 0
|
||||
turns_per_move = 5
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat
|
||||
meat_amount = 1
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/carpmeat = 1)
|
||||
response_help = "pets the"
|
||||
response_disarm = "gently pushes aside the"
|
||||
response_harm = "hits the"
|
||||
|
||||
@@ -66,8 +66,7 @@
|
||||
icon_state = "reindeer"
|
||||
icon_living = "reindeer"
|
||||
icon_dead = "reindeer-dead"
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
|
||||
meat_amount = 3
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat = 3)
|
||||
|
||||
melee_damage_lower = 5
|
||||
melee_damage_upper = 10
|
||||
|
||||
@@ -43,8 +43,7 @@
|
||||
|
||||
speak_chance = 1//1% (1 in 100) chance every tick; So about once per 150 seconds, assuming an average tick is 1.5s
|
||||
turns_per_move = 5
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/cracker/
|
||||
meat_amount = 3
|
||||
butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/cracker = 3)
|
||||
|
||||
response_help = "pets the"
|
||||
response_disarm = "gently moves aside the"
|
||||
|
||||
@@ -23,8 +23,6 @@
|
||||
var/turns_per_move = 1
|
||||
var/turns_since_move = 0
|
||||
universal_speak = 0
|
||||
var/meat_amount = 0
|
||||
var/meat_type
|
||||
var/stop_automated_movement = 0 //Use this to temporarely stop random movement or to if you write special movement code for animals.
|
||||
var/wander = 1 // Does the mob wander around when idle?
|
||||
var/stop_automated_movement_when_pulled = 1 //When set to 1 this stops the animal from moving when someone is pulling it.
|
||||
@@ -273,9 +271,10 @@
|
||||
/mob/living/simple_animal/gib()
|
||||
if(icon_gib)
|
||||
flick(icon_gib, src)
|
||||
if(meat_amount && meat_type)
|
||||
for(var/i = 0; i < meat_amount; i++)
|
||||
new meat_type(src.loc)
|
||||
if(butcher_results)
|
||||
for(var/path in butcher_results)
|
||||
for(var/i = 1; i <= butcher_results[path];i++)
|
||||
new path(src.loc)
|
||||
..()
|
||||
|
||||
|
||||
@@ -448,9 +447,6 @@
|
||||
name = C.tagname
|
||||
real_name = C.tagname
|
||||
return
|
||||
else if(meat_type && (stat == DEAD)) //if the animal has a meat, and if it is dead.
|
||||
if(istype(O, /obj/item/weapon/kitchen/knife))
|
||||
harvest()
|
||||
else
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
user.do_attack_animation(src)
|
||||
@@ -611,12 +607,6 @@
|
||||
if(alone && partner && children < 3)
|
||||
new childtype(loc)
|
||||
|
||||
|
||||
// Harvest an animal's delicious byproducts
|
||||
/mob/living/simple_animal/proc/harvest()
|
||||
gib()
|
||||
return
|
||||
|
||||
/mob/living/simple_animal/say_quote(var/message)
|
||||
var/verb = "says"
|
||||
|
||||
|
||||
@@ -16,8 +16,7 @@ var/global/totaltribbles = 0 //global variable so it updates for all tribbles,
|
||||
turns_per_move = 5
|
||||
maxHealth = 10
|
||||
health = 10
|
||||
meat_type = /obj/item/stack/sheet/fur
|
||||
meat_amount = 1
|
||||
butcher_results = list(/obj/item/stack/sheet/fur = 1)
|
||||
response_help = "pets"
|
||||
response_disarm = "gently pushes aside"
|
||||
response_harm = "whacks"
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 255 KiB After Width: | Height: | Size: 255 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 152 KiB After Width: | Height: | Size: 153 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
Reference in New Issue
Block a user