Merge branch 'master' of https://github.com/VOREStation/VOREStation into returnofthelongpup

# Conflicts:
#	icons/vore/custom_clothes_vr.dmi
This commit is contained in:
Verkister
2017-09-28 08:50:38 +03:00
19 changed files with 267 additions and 55 deletions

View File

@@ -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

View File

@@ -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.

View File

@@ -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
..()

View File

@@ -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

View File

@@ -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.

View File

@@ -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()
. = ..()

View File

@@ -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

View File

@@ -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)

View File

@@ -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)

View File

@@ -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

View File

@@ -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.

View File

@@ -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

View File

@@ -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"