mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-01-03 22:13:50 +00:00
Merge branch 'master' of https://github.com/VOREStation/VOREStation into returnofthelongpup
# Conflicts: # icons/vore/custom_clothes_vr.dmi
This commit is contained in:
@@ -156,8 +156,8 @@
|
||||
|
||||
/mob/living/carbon/human/proc/nif_examine(mob/living/carbon/human/H)
|
||||
var/message = ""
|
||||
if(!H.nif || H.conceal_nif || !H.nif_examine) //Do they have a nif, do they have the NIF concealed, and do they have a NIF examine message?
|
||||
if(!src.nif || src.conceal_nif || !src.nif_examine) //Do they have a nif, do they have the NIF concealed, and do they have a NIF examine message?
|
||||
return "" //If so, no message.
|
||||
else
|
||||
message += "[H.nif_examine]\n"
|
||||
return message
|
||||
message += "[src.nif_examine]\n"
|
||||
return message
|
||||
|
||||
@@ -92,7 +92,15 @@ default behaviour is:
|
||||
var/turf/oldloc = loc
|
||||
forceMove(tmob.loc)
|
||||
|
||||
// VOREStation Edit - Begin
|
||||
//VOREstation Edit - Begin
|
||||
if (istype(tmob, /mob/living/simple_animal)) //check bumpnom chance, if it's a simplemob that's bumped
|
||||
tmob.Bumped(src)
|
||||
else if(istype(src, /mob/living/simple_animal)) //otherwise, if it's a simplemob doing the bumping. Simplemob on simplemob doesn't seem to trigger but that's fine.
|
||||
Bumped(tmob)
|
||||
if (tmob.loc == src) //check if they got ate, and if so skip the forcemove
|
||||
now_pushing = 0
|
||||
return
|
||||
|
||||
// In case of micros, we don't swap positions; instead occupying the same square!
|
||||
if (handle_micro_bump_helping(tmob)) return
|
||||
// TODO - Check if we need to do something about the slime.UpdateFeed() we are skipping below.
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
var/vore_capacity = 1 // The capacity (in people) this person can hold
|
||||
var/vore_max_size = RESIZE_HUGE // The max size this mob will consider eating
|
||||
var/vore_min_size = RESIZE_TINY // The min size this mob will consider eating
|
||||
var/vore_bump_chance = 0 // Chance of trying to eat anyone that bumps into them, regardless of hostility
|
||||
var/vore_bump_emote = "grabs hold of" // Allow messages for bumpnom mobs to have a flavorful bumpnom
|
||||
var/vore_pounce_chance = 5 // Chance of this mob knocking down an opponent
|
||||
var/vore_standing_too = 0 // Can also eat non-stunned mobs
|
||||
var/vore_ignores_undigestable = 1 // Refuse to eat mobs who are undigestable by the prefs toggle.
|
||||
@@ -171,3 +173,15 @@
|
||||
src.vore_organs[B.name] = B
|
||||
src.vore_selected = B.name
|
||||
|
||||
/mob/living/simple_animal/Bumped(var/atom/movable/AM, yes)
|
||||
if(ismob(AM))
|
||||
var/mob/tmob = AM
|
||||
if(will_eat(tmob) && !istype(tmob, type) && prob(vore_bump_chance) && !ckey) //check if they decide to eat. Includes sanity check to prevent cannibalism.
|
||||
if(tmob.canmove && prob(vore_pounce_chance)) //if they'd pounce for other noms, pounce for these too, otherwise still try and eat them if they hold still
|
||||
tmob.Weaken(5)
|
||||
tmob.visible_message("<span class='danger'>\the [src] [vore_bump_emote] \the [tmob]!</span>!")
|
||||
stop_automated_movement = 1
|
||||
animal_nom(tmob)
|
||||
update_icon()
|
||||
stop_automated_movement = 0
|
||||
..()
|
||||
@@ -48,6 +48,7 @@
|
||||
// Activate Noms!
|
||||
/mob/living/simple_animal/catgirl
|
||||
vore_active = 1
|
||||
vore_bump_chance = 5
|
||||
vore_pounce_chance = 50
|
||||
vore_standing_too = 1
|
||||
vore_ignores_undigestable = 0 // Catgirls just want to eat yoouuu
|
||||
|
||||
@@ -53,7 +53,10 @@ TODO: Make them light up and heat the air when exposed to oxygen.
|
||||
/mob/living/simple_animal/retaliate/gaslamp
|
||||
vore_active = 1
|
||||
vore_capacity = 2
|
||||
vore_bump_chance = 90 //they're frickin' jellyfish anenome filterfeeders, get tentacled
|
||||
vore_bump_emote = "lazily wraps its tentacles around"
|
||||
vore_standing_too = 1 // Defaults to trying to give you that big tentacle hug.
|
||||
vore_ignores_undigestable = 0 // they absorb rather than digest, you're going in either way
|
||||
vore_default_mode = DM_HOLD
|
||||
vore_digest_chance = 0 // Chance to switch to digest mode if resisted
|
||||
vore_absorb_chance = 20 // BECOME A PART OF ME.
|
||||
|
||||
@@ -61,11 +61,12 @@ List of things solar grubs should be able to do:
|
||||
var/poison_chance = 50
|
||||
var/datum/powernet/PN // Our powernet
|
||||
var/obj/structure/cable/attached // the attached cable
|
||||
var/emp_chance = 20 // Beware synths
|
||||
|
||||
/mob/living/simple_animal/relatiate/solargrub/PunchTarget()
|
||||
var/mob/living/carbon/human/grubfood = target_mob
|
||||
for(var/obj/O in grubfood)
|
||||
O.emp_act(3)
|
||||
/mob/living/simple_animal/retaliate/solargrub/PunchTarget()
|
||||
if(target_mob&& prob(emp_chance))
|
||||
target_mob.emp_act(4) //The weakest strength of EMP
|
||||
visible_message("<span class='danger'>The grub releases a powerful shock!</span>")
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/retaliate/solargrub/Life()
|
||||
@@ -98,6 +99,7 @@ List of things solar grubs should be able to do:
|
||||
vore_active = 1
|
||||
vore_capacity = 1
|
||||
vore_pounce_chance = 0 //grubs only eat incapacitated targets
|
||||
vore_default_mode = DM_ITEMWEAK //item friendly digestions, they just want your chemical energy :3
|
||||
|
||||
/mob/living/simple_animal/retaliate/solargrub/PunchTarget()
|
||||
. = ..()
|
||||
|
||||
@@ -30,7 +30,10 @@
|
||||
// Activate Noms!
|
||||
/mob/living/simple_animal/wah
|
||||
vore_active = 1
|
||||
vore_bump_chance = 10
|
||||
vore_bump_emote = "playfully lunges at"
|
||||
vore_pounce_chance = 40
|
||||
vore_default_mode = DM_HOLD // above will only matter if someone toggles it anyway
|
||||
vore_icons = SA_ICON_LIVING
|
||||
|
||||
/mob/living/simple_animal/wah/fae
|
||||
@@ -42,6 +45,10 @@
|
||||
icon_dead = "wah_fae_dead"
|
||||
icon_rest = "wah_fae_rest"
|
||||
|
||||
vore_ignores_undigestable = 0 // wah don't care you're edible or not, you still go in
|
||||
vore_digest_chance = 0 // instead of digesting if you struggle...
|
||||
vore_absorb_chance = 20 // you get to become adorable purple wahpudge.
|
||||
vore_bump_chance = 75
|
||||
maxHealth = 100
|
||||
health = 100
|
||||
melee_damage_lower = 10
|
||||
|
||||
@@ -212,7 +212,7 @@
|
||||
nutriment_amt = 1
|
||||
nutriment_desc = list("crunchy shell bits" = 5)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grub/bugball/New()
|
||||
/obj/item/weapon/reagent_containers/food/snacks/bugball/New()
|
||||
..()
|
||||
reagents.add_reagent("protein", 1)
|
||||
reagents.add_reagent("carbon", 5)
|
||||
|
||||
@@ -406,7 +406,7 @@
|
||||
owner << sound(growsound,volume=80)
|
||||
|
||||
if(M.size_multiplier > shrink_grow_size && owner.size_multiplier < 2) //Grow until either pred is large or prey is small.
|
||||
owner.resize(M.size_multiplier+0.01) //Grow by 1% per tick.
|
||||
owner.resize(owner.size_multiplier+0.01) //Grow by 1% per tick.
|
||||
M.resize(M.size_multiplier-0.01) //Shrink by 1% per tick
|
||||
if(M.nutrition >= 100)
|
||||
var/oldnutrition = (M.nutrition * 0.05)
|
||||
@@ -695,4 +695,4 @@
|
||||
if(P.absorbed || P.stat == DEAD)
|
||||
continue
|
||||
|
||||
put_in_egg(P,1)
|
||||
put_in_egg(P,1)
|
||||
|
||||
@@ -217,6 +217,14 @@
|
||||
dat += "<br><a href='?src=\ref[src];b_tastes=\ref[selected]'>Can Taste:</a>"
|
||||
dat += " [selected.can_taste ? "Yes" : "No"]"
|
||||
|
||||
//How much brute damage
|
||||
dat += "<br><a href='?src=\ref[src];b_brute_dmg=\ref[selected]'>Digest Brute Damage:</a>"
|
||||
dat += " [selected.digest_brute]"
|
||||
|
||||
//How much burn damage
|
||||
dat += "<br><a href='?src=\ref[src];b_burn_dmg=\ref[selected]'>Digest Burn Damage:</a>"
|
||||
dat += " [selected.digest_burn]"
|
||||
|
||||
//Minimum size prey must be to show up.
|
||||
dat += "<br><a href='?src=\ref[src];b_bulge_size=\ref[selected]'>Required examine size:</a>"
|
||||
dat += " [selected.bulge_size*100]%"
|
||||
@@ -611,6 +619,20 @@
|
||||
else if(new_grow)
|
||||
selected.shrink_grow_size = (new_grow/100)
|
||||
|
||||
if(href_list["b_burn_dmg"])
|
||||
var/new_damage = input(user, "Choose the amount of burn damage prey will take per tick. Ranges from 3 to 6.", "Set Belly Burn Damage.") as num|null
|
||||
if(new_damage == null)
|
||||
return
|
||||
var/new_new_damage = Clamp(new_damage, 3, 6)
|
||||
selected.digest_burn = new_new_damage
|
||||
|
||||
if(href_list["b_brute_damage"])
|
||||
var/new_damage = input(user, "Choose the amount of brute damage prey will take per tick. Ranges from 3 to 6", "Set Belly Brute Damage.") as num|null
|
||||
if(new_damage == null)
|
||||
return
|
||||
var/new_new_damage = Clamp(new_damage, 3, 6)
|
||||
selected.digest_brute = new_new_damage
|
||||
|
||||
if(href_list["b_escapable"])
|
||||
if(selected.escapable == 0) //Possibly escapable and special interactions.
|
||||
selected.escapable = 1
|
||||
|
||||
@@ -193,6 +193,19 @@
|
||||
/obj/item/weapon/permit/gun/fluff/silencedmp5a5,
|
||||
/obj/item/weapon/gun/projectile/colt/fluff/serdy)
|
||||
|
||||
//BeyondMyLife: Ne'tra Ky'ram //Made a box because they have so many items that it'd spam the debug log.
|
||||
/obj/item/weapon/storage/box/fluff/kilano
|
||||
name = "Ne'tra Ky'ram's Kit"
|
||||
desc = "A kit containing Ne'tra Ky'ram's clothing."
|
||||
has_items = list(
|
||||
/obj/item/clothing/suit/storage/hooded/wintercoat/kilanocoat,
|
||||
/obj/item/clothing/under/fluff/kilanosuit,
|
||||
/obj/item/weapon/storage/backpack/messenger/sec/fluff/kilano,
|
||||
/obj/item/weapon/storage/belt/security/fluff/kilano,
|
||||
/obj/item/clothing/gloves/fluff/kilano/netra,
|
||||
/obj/item/clothing/shoes/boots/fluff/kilano,
|
||||
/obj/item/clothing/accessory/storage/black_vest/fluff/kilano
|
||||
)
|
||||
|
||||
/*
|
||||
Swimsuits, for general use, to avoid arriving to work with your swimsuit.
|
||||
|
||||
@@ -94,32 +94,6 @@
|
||||
icon_override = 'icons/vore/custom_clothes_vr.dmi'
|
||||
item_state = "sh_kimono_mob"
|
||||
|
||||
//BeyondMyLife:Kilano Soryu
|
||||
/obj/item/clothing/under/dress/fluff/kilano
|
||||
name = "Bleached Dress"
|
||||
desc = "It appears that this was once a captain's dress, it's blueish color has been turned white by bleach, only the gold markings remain to slightly signify what it once was."
|
||||
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_state = "kilanodress"
|
||||
|
||||
icon_override = 'icons/vore/custom_clothes_vr.dmi'
|
||||
item_state = "kilanodress_mob"
|
||||
|
||||
species_restricted = null
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
|
||||
|
||||
//BeyondMyLife:Kilano Soryu
|
||||
/obj/item/clothing/gloves/fluff/kilano
|
||||
name = "Bleached Gloves"
|
||||
desc = "Some old captain's gloves, bleached white, almost unrecognizable from the color change besides the gold trim."
|
||||
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_state = "kilanogloves"
|
||||
|
||||
icon_override = 'icons/vore/custom_clothes_vr.dmi'
|
||||
item_state = "kilanogloves_mob"
|
||||
species_restricted = null
|
||||
|
||||
//JoanRisu:Joan Risu
|
||||
/obj/item/clothing/under/suit_jacket/female/fluff/asuna
|
||||
name = "Joan's Historia Uniform"
|
||||
@@ -1484,10 +1458,144 @@ Departamental Swimsuits, for general use
|
||||
//General use
|
||||
/obj/item/clothing/suit/storage/fluff/loincloth
|
||||
name = "Loincloth"
|
||||
desc = "A primitive piece of oak-borwn clothing wrapped firmly around the waist. A few bones line the edges."
|
||||
desc = "A primitive piece of oak-brown clothing wrapped firmly around the waist. A few bones line the edges. Comes with a primitive outfit to boot."
|
||||
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_state = "loincloth"
|
||||
|
||||
icon_override = 'icons/vore/custom_clothes_vr.dmi'
|
||||
item_state = "loincloth"
|
||||
item_state = "loincloth"
|
||||
|
||||
//BeyondMyLife: Ne'tra Ky'ram
|
||||
/obj/item/clothing/suit/storage/hooded/wintercoat/fluff/kilanocoat
|
||||
name = "black and gold armoured coat."
|
||||
desc = "A black and gold coat, with white fur lining, lined with some kind of heavier material inside, seemingly giving some sort of padding to it."
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_state = "kilanocoat"
|
||||
item_state_slots = list(slot_r_hand_str = "kilanocoat", slot_l_hand_str = "kilanocoat")
|
||||
armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 10, bio = 0, rad = 0)
|
||||
|
||||
icon_override = 'icons/vore/custom_clothes_vr.dmi'
|
||||
item_state = "kilanocoat_mob"
|
||||
|
||||
/obj/item/clothing/suit/storage/hooded/wintercoat/kilanocoat/ui_action_click()
|
||||
ToggleHood_kilano()
|
||||
|
||||
/obj/item/clothing/suit/storage/hooded/wintercoat/kilanocoat/equipped(mob/user, slot)
|
||||
if(slot != slot_wear_suit)
|
||||
RemoveHood_kilano()
|
||||
..()
|
||||
|
||||
/obj/item/clothing/suit/storage/hooded/wintercoat/kilanocoat/proc/RemoveHood_kilano()
|
||||
icon_state = "kilanocoat"
|
||||
item_state = "kilanocoat_mob"
|
||||
suittoggled = 0
|
||||
if(ishuman(hood.loc))
|
||||
var/mob/living/carbon/H = hood.loc
|
||||
H.unEquip(hood, 1)
|
||||
H.update_inv_wear_suit()
|
||||
hood.loc = src
|
||||
|
||||
/obj/item/clothing/suit/storage/hooded/wintercoat/kilanocoat/proc/ToggleHood_kilano()
|
||||
if(!suittoggled)
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = src.loc
|
||||
if(H.wear_suit != src)
|
||||
H << "<span class='warning'>You must be wearing [src] to put up the hood!</span>"
|
||||
return
|
||||
if(H.head)
|
||||
H << "<span class='warning'>You're already wearing something on your head!</span>"
|
||||
return
|
||||
else
|
||||
H.equip_to_slot_if_possible(hood,slot_head,0,0,1)
|
||||
suittoggled = 1
|
||||
icon_state = "kilanocoat_t"
|
||||
item_state = "kilanocoat_mob_t"
|
||||
H.update_inv_wear_suit()
|
||||
else
|
||||
RemoveHood_kilano()
|
||||
|
||||
//BeyondMyLife: Ne'tra Ky'ram
|
||||
/obj/item/clothing/under/fluff/kilanosuit
|
||||
name = "black and gold armourweave dress"
|
||||
desc = "A black and gold patterned silky dress, with some kind of inlined, heavier material lining the skirt and chest area."
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_override = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_state = "kilanosuit"
|
||||
item_state = "kilanosuit"
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
siemens_coefficient = 0.9
|
||||
|
||||
//BeyondMyLife: Ne'tra Ky'ram
|
||||
/obj/item/weapon/storage/backpack/messenger/sec/fluff/kilano
|
||||
name = "Ne'tra's security bag"
|
||||
desc = "A security Satchel containing Ne'tra Ky'rams Security gear."
|
||||
|
||||
//BeyondMyLife: Ne'tra Ky'ram
|
||||
/obj/item/weapon/storage/belt/security/fluff/kilano
|
||||
name = "black and gold security belt"
|
||||
desc = "A Black and Gold security belt, somewhat resembling something you must've seen in a comic years ago."
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_state = "kilanobelt"
|
||||
icon_override = 'icons/vore/custom_clothes_vr.dmi'
|
||||
item_state = "kilanobelt_mob"
|
||||
|
||||
//BeyondMyLife: Ne'tra Ky'ram
|
||||
/obj/item/clothing/gloves/fluff/kilano/netra
|
||||
name = "black and gold dress gloves"
|
||||
desc = "Some fancy looking black and gold patterned gloves made of a silky material."
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_state = "kilanogloves" //TODO: White sprite.
|
||||
icon_override = 'icons/vore/custom_clothes_vr.dmi'
|
||||
item_state = "kilanogloves_mob" //TODO: White sprite.
|
||||
species_restricted = null
|
||||
|
||||
//BeyondMyLife: Ne'tra Ky'ram
|
||||
/obj/item/clothing/shoes/boots/fluff/kilano
|
||||
name = "black and gold winter boots"
|
||||
desc = "Some Fur lined black and gold heavy duty winter bots."
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_state = "kilanoboots_mob" //This is really fucky. For some reason, setting this to kilanoboots causes the on-mob sprite (item_state) to be the in hand sprite.
|
||||
icon_override = 'icons/vore/custom_clothes_vr.dmi'
|
||||
item_state = "kilanoboots_mob"
|
||||
species_restricted = null
|
||||
cold_protection = FEET|LEGS
|
||||
min_cold_protection_temperature = SHOE_MIN_COLD_PROTECTION_TEMPERATURE
|
||||
heat_protection = FEET|LEGS
|
||||
max_heat_protection_temperature = SHOE_MAX_HEAT_PROTECTION_TEMPERATURE
|
||||
armor = list(melee = 30, bullet = 10, laser = 10, energy = 15, bomb = 20, bio = 0, rad = 0)
|
||||
|
||||
//BeyondMyLife: Ne'tra Ky'ram
|
||||
/obj/item/clothing/accessory/storage/black_vest/fluff/kilano
|
||||
name = "black and gold webbing vest"
|
||||
desc = "A black and gold webbing vest, it looks like a child spilled a box of crayons all over it."
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_state = "kilanovest"
|
||||
icon_override = 'icons/vore/custom_clothes_vr.dmi'
|
||||
item_state = "kilanovest_mob"
|
||||
|
||||
//BeyondMyLife:Kilano Soryu //Moved these for orginization purposes.
|
||||
/obj/item/clothing/under/dress/fluff/kilano
|
||||
name = "Bleached Dress"
|
||||
desc = "It appears that this was once a captain's dress, it's blueish color has been turned white by bleach, only the gold markings remain to slightly signify what it once was."
|
||||
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_state = "kilanodress"
|
||||
|
||||
icon_override = 'icons/vore/custom_clothes_vr.dmi'
|
||||
item_state = "kilanodress_mob"
|
||||
|
||||
species_restricted = null
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
|
||||
|
||||
//BeyondMyLife:Kilano Soryu
|
||||
/obj/item/clothing/gloves/fluff/kilano
|
||||
name = "Bleached Gloves"
|
||||
desc = "Some old captain's gloves, bleached white, almost unrecognizable from the color change besides the gold trim."
|
||||
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_state = "kilanogloves"
|
||||
|
||||
icon_override = 'icons/vore/custom_clothes_vr.dmi'
|
||||
item_state = "kilanogloves_mob"
|
||||
species_restricted = null
|
||||
@@ -712,6 +712,25 @@ obj/item/weapon/material/hatchet/tacknife/combatknife/fluff/katarina/handle_shie
|
||||
/obj/item/weapon/implanter/reagent_generator/belle
|
||||
implant_type = /obj/item/weapon/implant/reagent_generator/belle
|
||||
|
||||
//Gowst: Eldi Moljir
|
||||
//Eldi iz coolest elf-dorf.
|
||||
/obj/item/weapon/implant/reagent_generator/eldi
|
||||
name = "lactation implant"
|
||||
desc = "This is an implant that allows the user to lactate."
|
||||
generated_reagent = "milk"
|
||||
usable_volume = 1000
|
||||
|
||||
empty_message = list("Your breasts feel unusually empty.", "Your chest feels lighter - your milk supply is empty!", "Your milk reserves have run dry.", "Your grateful nipples ache as the last of your milk leaves them.")
|
||||
full_message = list("Your breasts ache badly - they are swollen and feel fit to burst!", "You need to be milked! Your breasts feel bloated, eager for release.", "Your milky breasts are starting to leak...")
|
||||
emote_descriptor = list("squeezes Eldi's nipples, milking them", "milks Eldi's breasts", "extracts milk")
|
||||
self_emote_descriptor = list("squeeze out", "extract")
|
||||
random_emote = list("surpresses a moan", "gasps sharply", "bites her lower lip")
|
||||
verb_name = "Milk"
|
||||
verb_desc = "Grab Eldi's breasts and milk her, storing her fresh, warm milk in a container. This will undoubtedly turn her on."
|
||||
|
||||
/obj/item/weapon/implanter/reagent_generator/eldi
|
||||
implant_type = /obj/item/weapon/implant/reagent_generator/eldi
|
||||
|
||||
//Vorrarkul: Theodora Lindt
|
||||
/obj/item/weapon/implant/reagent_generator/vorrarkul
|
||||
generated_reagent = "chocolate_milk"
|
||||
|
||||
Reference in New Issue
Block a user