mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-30 16:48:12 +01:00
Merge branch 'master' of https://github.com/Yawn-Wider/YWPolarisVore into August2020UpstreamPull
August2020UpstreamPull
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/obj/item/clothing/suit/web_bindings
|
||||
/obj/item/clothing/suit/web_bindings/
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_override = 'icons/vore/custom_clothes_vr.dmi'
|
||||
name = "web bindings"
|
||||
@@ -7,15 +7,19 @@
|
||||
item_state = "web_bindings_mob"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL
|
||||
|
||||
/*yw edit start - Teshari Sprite /Commented out until we know this is needed again if it is please just uncomment this, Izac
|
||||
/obj/item/clothing/suit/straight_jacket/web_bindings/get_worn_icon_file(var/body_type,var/slot_name,var/default_icon,var/inhands)
|
||||
//yw edit - Teshari sprite
|
||||
sprite_sheets = list(
|
||||
SPECIES_TESHARI = 'icons/vore/custom_onmob_yw.dmi'
|
||||
)
|
||||
//yw edit end
|
||||
|
||||
//yw edit start - Teshari Sprite
|
||||
/obj/item/clothing/suit/web_bindings/get_worn_icon_file(var/body_type,var/slot_name,var/default_icon,var/inhands)
|
||||
if(body_type == SPECIES_TESHARI)
|
||||
if(!inhands)
|
||||
return 'icons/vore/custom_onmob_yw.dmi'
|
||||
else
|
||||
return ..()
|
||||
yw edit end*/
|
||||
return ..()
|
||||
//yw edit end
|
||||
|
||||
/mob/living/proc/weaveWebBindings()
|
||||
set name = "Weave Web Bindings"
|
||||
|
||||
@@ -126,6 +126,8 @@
|
||||
var/icon/suit_sprites = null //File for suit sprites, if any.
|
||||
var/icon/under_sprites = null
|
||||
|
||||
var/icon_sprite_tag // This is where we put stuff like _Horse, so we can assign icons easier.
|
||||
|
||||
var/can_ride = 1 //whether we're real rideable taur or just in that category
|
||||
|
||||
//Could do nested lists but it started becoming a nightmare. It'd be more fun for lookups of a_intent and m_intent, but then subtypes need to
|
||||
@@ -167,12 +169,20 @@
|
||||
icon_state = "wolf_s"
|
||||
under_sprites = 'icons/mob/taursuits_wolf_vr.dmi'
|
||||
suit_sprites = 'icons/mob/taursuits_wolf_vr.dmi'
|
||||
icon_sprite_tag = "wolf"
|
||||
|
||||
//TFF 22/11/19 - CHOMPStation port of fat taur sprites
|
||||
/datum/sprite_accessory/tail/taur/fatwolf
|
||||
name = "Fat Wolf (Taur)"
|
||||
icon_state = "fatwolf_s"
|
||||
icon_sprite_tag = "wolf" //This could be modified later.
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf/wolf_2c
|
||||
name = "Wolf dual-color (Taur)"
|
||||
icon_state = "wolf_s"
|
||||
extra_overlay = "wolf_markings"
|
||||
|
||||
//icon_sprite_tag = "wolf2c"
|
||||
|
||||
//MTosh 08/01/2020 - CHOMPstation Moved Synth Wolf up under wolf dual-color, and Fat Wolf below Synth Wolf, to better group original vorestation wolf taurs/differentiate from Chompstation Fat Taurs
|
||||
/datum/sprite_accessory/tail/taur/wolf/synthwolf
|
||||
name = "SynthWolf dual-color (Taur)"
|
||||
@@ -189,11 +199,19 @@
|
||||
name = "Fat Wolf dual-color (Taur)"
|
||||
icon_state = "fatwolf_s"
|
||||
extra_overlay = "fatwolf_markings"
|
||||
//icon_sprite_tag = "fatwolf2c"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf/synthwolf
|
||||
name = "SynthWolf dual-color (Taur)"
|
||||
icon_state = "synthwolf_s"
|
||||
extra_overlay = "synthwolf_markings"
|
||||
//icon_sprite_tag = "synthwolf"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/naga
|
||||
name = "Naga (Taur)"
|
||||
icon_state = "naga_s"
|
||||
suit_sprites = 'icons/mob/taursuits_naga_vr.dmi'
|
||||
//icon_sprite_tag = "naga"
|
||||
|
||||
msg_owner_help_walk = "You carefully slither around %prey."
|
||||
msg_prey_help_walk = "%owner's huge tail slithers past beside you!"
|
||||
@@ -226,12 +244,14 @@
|
||||
name = "Naga dual-color (Taur)"
|
||||
icon_state = "naga_s"
|
||||
extra_overlay = "naga_markings"
|
||||
//icon_sprite_tag = "naga2c"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/horse
|
||||
name = "Horse (Taur)"
|
||||
icon_state = "horse_s"
|
||||
under_sprites = 'icons/mob/taursuits_horse_vr.dmi'
|
||||
suit_sprites = 'icons/mob/taursuits_horse_vr.dmi'
|
||||
icon_sprite_tag = "horse"
|
||||
|
||||
msg_owner_disarm_run = "You quickly push %prey to the ground with your hoof!"
|
||||
msg_prey_disarm_run = "%owner pushes you down to the ground with their hoof!"
|
||||
@@ -252,11 +272,13 @@
|
||||
name = "SynthHorse dual-color (Taur)"
|
||||
icon_state = "synthhorse_s"
|
||||
extra_overlay = "synthhorse_markings"
|
||||
//icon_sprite_tag = "synthhorse"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/cow
|
||||
name = "Cow (Taur)"
|
||||
icon_state = "cow_s"
|
||||
suit_sprites = 'icons/mob/taursuits_cow_vr.dmi'
|
||||
icon_sprite_tag = "cow"
|
||||
|
||||
msg_owner_disarm_run = "You quickly push %prey to the ground with your hoof!"
|
||||
msg_prey_disarm_run = "%owner pushes you down to the ground with their hoof!"
|
||||
@@ -278,6 +300,7 @@
|
||||
icon_state = "deer_s"
|
||||
extra_overlay = "deer_markings"
|
||||
suit_sprites = 'icons/mob/taursuits_deer_vr.dmi'
|
||||
icon_sprite_tag = "deer"
|
||||
|
||||
msg_owner_disarm_run = "You quickly push %prey to the ground with your hoof!"
|
||||
msg_prey_disarm_run = "%owner pushes you down to the ground with their hoof!"
|
||||
@@ -298,21 +321,25 @@
|
||||
name = "Lizard (Taur)"
|
||||
icon_state = "lizard_s"
|
||||
suit_sprites = 'icons/mob/taursuits_lizard_vr.dmi'
|
||||
icon_sprite_tag = "lizard"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/lizard/lizard_2c
|
||||
name = "Lizard dual-color (Taur)"
|
||||
icon_state = "lizard_s"
|
||||
extra_overlay = "lizard_markings"
|
||||
//icon_sprite_tag = "lizard2c"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/lizard/synthlizard
|
||||
name = "SynthLizard dual-color (Taur)"
|
||||
icon_state = "synthlizard_s"
|
||||
extra_overlay = "synthlizard_markings"
|
||||
//icon_sprite_tag = "synthlizard"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/spider
|
||||
name = "Spider (Taur)"
|
||||
icon_state = "spider_s"
|
||||
suit_sprites = 'icons/mob/taursuits_spider_vr.dmi'
|
||||
icon_sprite_tag = "spider"
|
||||
|
||||
msg_owner_disarm_run = "You quickly push %prey to the ground with your leg!"
|
||||
msg_prey_disarm_run = "%owner pushes you down to the ground with their leg!"
|
||||
@@ -332,6 +359,7 @@
|
||||
/datum/sprite_accessory/tail/taur/tents
|
||||
name = "Tentacles (Taur)"
|
||||
icon_state = "tent_s"
|
||||
icon_sprite_tag = "tentacle"
|
||||
can_ride = 0
|
||||
|
||||
msg_prey_stepunder = "You run between %prey's tentacles."
|
||||
@@ -359,11 +387,13 @@
|
||||
name = "Feline (Taur)"
|
||||
icon_state = "feline_s"
|
||||
suit_sprites = 'icons/mob/taursuits_feline_vr.dmi'
|
||||
icon_sprite_tag = "feline"
|
||||
|
||||
//TFF 22/11/19 - CHOMPStation port of fat taur sprites
|
||||
/datum/sprite_accessory/tail/taur/fatfeline
|
||||
name = "Fat Feline (Taur)"
|
||||
icon_state = "fatfeline_s"
|
||||
//icon_sprite_tag = "fatfeline"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/fatfeline_wag
|
||||
name = "Fat Feline (Taur) (vwag)"
|
||||
@@ -374,22 +404,26 @@
|
||||
name = "Feline dual-color (Taur)"
|
||||
icon_state = "feline_s"
|
||||
extra_overlay = "feline_markings"
|
||||
//icon_sprite_tag = "feline2c"
|
||||
|
||||
//TFF 22/11/19 - CHOMPStation port of fat taur sprites
|
||||
/datum/sprite_accessory/tail/taur/feline/fatfeline_2c
|
||||
name = "Fat Feline dual-color (Taur)"
|
||||
icon_state = "fatfeline_s"
|
||||
extra_overlay = "fatfeline_markings"
|
||||
//icon_sprite_tag = "fatfeline2c"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/feline/synthfeline
|
||||
name = "SynthFeline dual-color (Taur)"
|
||||
icon_state = "synthfeline_s"
|
||||
extra_overlay = "synthfeline_markings"
|
||||
//icon_sprite_tag = "synthfeline"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/slug
|
||||
name = "Slug (Taur)"
|
||||
icon_state = "slug_s"
|
||||
suit_sprites = 'icons/mob/taursuits_slug_vr.dmi'
|
||||
icon_sprite_tag = "slug"
|
||||
|
||||
msg_owner_help_walk = "You carefully slither around %prey."
|
||||
msg_prey_help_walk = "%owner's huge tail slithers past beside you!"
|
||||
@@ -421,11 +455,13 @@
|
||||
/datum/sprite_accessory/tail/taur/frog
|
||||
name = "Frog (Taur)"
|
||||
icon_state = "frog_s"
|
||||
icon_sprite_tag = "frog"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/thicktentacles
|
||||
name = "Thick Tentacles (Taur)"
|
||||
icon_state = "tentacle_s"
|
||||
can_ride = 0
|
||||
icon_sprite_tag = "thick_tentacles"
|
||||
|
||||
msg_prey_stepunder = "You run between %prey's tentacles."
|
||||
msg_owner_stepunder = "%owner runs between your tentacles."
|
||||
@@ -453,12 +489,14 @@
|
||||
icon_state = "drake_s"
|
||||
extra_overlay = "drake_markings"
|
||||
suit_sprites = 'icons/mob/taursuits_drake_vr.dmi'
|
||||
icon_sprite_tag = "drake"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/otie
|
||||
name = "Otie (Taur)"
|
||||
icon_state = "otie_s"
|
||||
extra_overlay = "otie_markings"
|
||||
suit_sprites = 'icons/mob/taursuits_otie_vr.dmi'
|
||||
icon_sprite_tag = "otie"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/alraune/alraune_2c
|
||||
name = "Alraune (dual color)"
|
||||
@@ -469,12 +507,14 @@
|
||||
extra_overlay = "alraunecolor_markings"
|
||||
extra_overlay_w = "alraunecolor_closed_markings"
|
||||
clip_mask_state = "taur_clip_mask_alraune"
|
||||
icon_sprite_tag = "alraune"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wasp
|
||||
name = "Wasp (dual color)"
|
||||
icon_state = "wasp_s"
|
||||
extra_overlay = "wasp_markings"
|
||||
clip_mask_state = "taur_clip_mask_wasp"
|
||||
icon_sprite_tag = "wasp"
|
||||
|
||||
msg_owner_disarm_run = "You quickly push %prey to the ground with your leg!"
|
||||
msg_prey_disarm_run = "%owner pushes you down to the ground with their leg!"
|
||||
@@ -495,6 +535,7 @@
|
||||
name = "Mermaid (Taur)"
|
||||
icon_state = "mermaid_s"
|
||||
can_ride = 0
|
||||
icon_sprite_tag = "mermaid"
|
||||
|
||||
msg_owner_help_walk = "You carefully slither around %prey."
|
||||
msg_prey_help_walk = "%owner's huge tail slithers past beside you!"
|
||||
|
||||
@@ -158,7 +158,7 @@
|
||||
icon = 'icons/mob/vore/tails_yw.dmi'
|
||||
name = "Female teshari tail(Pattern, Alt.)"
|
||||
desc = ""
|
||||
icon_state = "seromitail_s"
|
||||
icon_state = "teshari_fluffytail"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "teshpattern_fem_alt"
|
||||
@@ -168,7 +168,7 @@
|
||||
icon = 'icons/mob/vore/tails_yw.dmi'
|
||||
name = "Male teshari tail(Pattern, Alt.)"
|
||||
desc = ""
|
||||
icon_state = "seromitail_s"
|
||||
icon_state = "teshari_fluffytail"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "teshpattern_male_alt"
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
var/digest_burn = 0.5 // Burn damage per tick in digestion mode
|
||||
var/immutable = FALSE // Prevents this belly from being deleted
|
||||
var/escapable = FALSE // Belly can be resisted out of at any time
|
||||
var/escapetime = 60 SECONDS // Deciseconds, how long to escape this belly
|
||||
var/escapetime = 20 SECONDS // Deciseconds, how long to escape this belly
|
||||
var/digestchance = 0 // % Chance of stomach beginning to digest if prey struggles
|
||||
var/absorbchance = 0 // % Chance of stomach beginning to absorb if prey struggles
|
||||
var/escapechance = 0 // % Chance of prey beginning to escape if prey struggles.
|
||||
|
||||
@@ -165,12 +165,16 @@ GLOBAL_LIST_INIT(digest_modes, list())
|
||||
B.change_tail_nocolor(H)
|
||||
B.change_wing_nocolor(H)
|
||||
B.change_species(H, 1, 1) // ,1) preserves coloring
|
||||
H.species.create_organs(H)
|
||||
H.sync_organ_dna()
|
||||
return null
|
||||
if(changes_ears_tail_wing_color && (B.check_ears(H) || B.check_tail(H) || B.check_wing(H) || B.check_species(H)))
|
||||
B.change_ears(H)
|
||||
B.change_tail(H)
|
||||
B.change_wing(H)
|
||||
B.change_species(H, 1, 2) // ,2) does not preserve coloring.
|
||||
H.species.create_organs(H)
|
||||
H.sync_organ_dna()
|
||||
return null
|
||||
if(changes_gender && B.check_gender(H, changes_gender_to))
|
||||
B.change_gender(H, changes_gender_to, 1)
|
||||
|
||||
@@ -13,11 +13,12 @@
|
||||
var/weight = 137 // Weight for mobs for weightgain system
|
||||
var/weight_gain = 1 // How fast you gain weight
|
||||
var/weight_loss = 0.5 // How fast you lose weight
|
||||
var/vore_egg_type = "egg" // Default egg type.
|
||||
var/vore_egg_type = "egg" // Default egg type.
|
||||
var/feral = 0 // How feral the mob is, if at all. Does nothing for non xenochimera at the moment.
|
||||
var/revive_ready = REVIVING_READY // Only used for creatures that have the xenochimera regen ability, so far.
|
||||
var/metabolism = 0.0015
|
||||
var/vore_taste = null // What the character tastes like
|
||||
var/vore_smell = null // What the character smells like
|
||||
var/no_vore = FALSE // If the character/mob can vore.
|
||||
var/noisy = FALSE // Toggle audible hunger.
|
||||
var/absorbing_prey = 0 // Determines if the person is using the succubus drain or not. See station_special_abilities_vr.
|
||||
@@ -38,6 +39,7 @@
|
||||
/hook/living_new/proc/vore_setup(mob/living/M)
|
||||
M.verbs += /mob/living/proc/escapeOOC
|
||||
M.verbs += /mob/living/proc/lick
|
||||
M.verbs += /mob/living/proc/smell
|
||||
M.verbs += /mob/living/proc/switch_scaling
|
||||
if(M.no_vore) //If the mob isn't supposed to have a stomach, let's not give it an insidepanel so it can make one for itself, or a stomach.
|
||||
return TRUE
|
||||
@@ -232,6 +234,7 @@
|
||||
P.digest_leave_remains = src.digest_leave_remains
|
||||
P.allowmobvore = src.allowmobvore
|
||||
P.vore_taste = src.vore_taste
|
||||
P.vore_smell = src.vore_smell
|
||||
P.permit_healbelly = src.permit_healbelly
|
||||
P.can_be_drop_prey = src.can_be_drop_prey
|
||||
P.can_be_drop_pred = src.can_be_drop_pred
|
||||
@@ -268,6 +271,7 @@
|
||||
digest_leave_remains = P.digest_leave_remains
|
||||
allowmobvore = P.allowmobvore
|
||||
vore_taste = P.vore_taste
|
||||
vore_smell = P.vore_smell
|
||||
permit_healbelly = P.permit_healbelly
|
||||
can_be_drop_prey = P.can_be_drop_prey
|
||||
can_be_drop_pred = P.can_be_drop_pred
|
||||
@@ -367,6 +371,43 @@
|
||||
var/datum/reagent/R = H.touching.reagent_list[1]
|
||||
taste_message += " You also get the flavor of [R.taste_description] from something on them"
|
||||
return taste_message
|
||||
|
||||
|
||||
|
||||
//This is just the above proc but switched about.
|
||||
/mob/living/proc/smell(mob/living/smelled in living_mobs(1))
|
||||
set name = "Smell"
|
||||
set category = "IC"
|
||||
set desc = "Smell someone nearby!"
|
||||
set popup_menu = FALSE
|
||||
|
||||
if(!istype(smelled))
|
||||
return
|
||||
if(!checkClickCooldown() || incapacitated(INCAPACITATION_ALL))
|
||||
return
|
||||
|
||||
setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
|
||||
visible_message("<span class='warning'>[src] smells [smelled]!</span>","<span class='notice'>You smell [smelled]. They smell like [smelled.get_smell_message()].</span>","<b>Sniff!</b>")
|
||||
|
||||
/mob/living/proc/get_smell_message(allow_generic = 1)
|
||||
if(!vore_smell && !allow_generic)
|
||||
return FALSE
|
||||
|
||||
var/smell_message = ""
|
||||
if(vore_smell && (vore_smell != ""))
|
||||
smell_message += "[vore_smell]"
|
||||
else
|
||||
if(ishuman(src))
|
||||
var/mob/living/carbon/human/H = src
|
||||
smell_message += "a normal [H.custom_species ? H.custom_species : H.species.name]"
|
||||
else
|
||||
smell_message += "a plain old normal [src]"
|
||||
|
||||
return smell_message
|
||||
|
||||
|
||||
|
||||
|
||||
//
|
||||
// OOC Escape code for pref-breaking or AFK preds
|
||||
//
|
||||
@@ -610,7 +651,7 @@
|
||||
to_chat(src, "<span class='notice'>You can taste the flavor of spicy cardboard.</span>")
|
||||
else if(istype(I,/obj/item/device/flashlight/glowstick))
|
||||
to_chat(src, "<span class='notice'>You found out the glowy juice only tastes like regret.</span>")
|
||||
else if(istype(I,/obj/item/weapon/cigbutt))
|
||||
else if(istype(I,/obj/item/trash/cigbutt))
|
||||
to_chat(src, "<span class='notice'>You can taste the flavor of bitter ash. Classy.</span>")
|
||||
else if(istype(I,/obj/item/clothing/mask/smokable))
|
||||
var/obj/item/clothing/mask/smokable/C = I
|
||||
|
||||
@@ -51,6 +51,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
|
||||
var/allowmobvore = TRUE
|
||||
var/list/belly_prefs = list()
|
||||
var/vore_taste = "nothing in particular"
|
||||
var/vore_smell = "nothing in particular"
|
||||
var/permit_healbelly = TRUE
|
||||
var/can_be_drop_prey = FALSE
|
||||
var/can_be_drop_pred = FALSE
|
||||
@@ -129,6 +130,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
|
||||
digest_leave_remains = json_from_file["digest_leave_remains"]
|
||||
allowmobvore = json_from_file["allowmobvore"]
|
||||
vore_taste = json_from_file["vore_taste"]
|
||||
vore_smell = json_from_file["vore_smell"]
|
||||
permit_healbelly = json_from_file["permit_healbelly"]
|
||||
can_be_drop_prey = json_from_file["can_be_drop_prey"]
|
||||
can_be_drop_pred = json_from_file["can_be_drop_pred"]
|
||||
@@ -184,6 +186,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
|
||||
"digest_leave_remains" = digest_leave_remains,
|
||||
"allowmobvore" = allowmobvore,
|
||||
"vore_taste" = vore_taste,
|
||||
"vore_smell" = vore_smell,
|
||||
"permit_healbelly" = permit_healbelly,
|
||||
"can_be_drop_prey" = can_be_drop_prey,
|
||||
"can_be_drop_pred" = can_be_drop_pred,
|
||||
|
||||
@@ -437,6 +437,7 @@
|
||||
dat += jointext(nightmare_list, null) //AAAA
|
||||
|
||||
dat += "<br><a href='?src=\ref[src];setflavor=1'>Set Your Taste</a>"
|
||||
dat += "<br><a href='?src=\ref[src];setsmell=1'>Set Your Smell</a>"
|
||||
dat += "<br><a href='?src=\ref[src];togglenoisy=1'>Toggle Hunger Noises</a>"
|
||||
|
||||
//Under the last HR, save and stuff.
|
||||
@@ -993,6 +994,17 @@
|
||||
return FALSE
|
||||
user.vore_taste = new_flavor
|
||||
|
||||
if(href_list["setsmell"])
|
||||
var/new_smell = html_encode(input(usr,"What your character smells like (40ch limit). This text will be printed to the pred after 'X smells of...' so just put something like 'strawberries and cream':","Character Smell",user.vore_smell) as text|null)
|
||||
if(!new_smell)
|
||||
return FALSE
|
||||
|
||||
new_smell = readd_quotes(new_smell)
|
||||
if(length(new_smell) > FLAVOR_MAX)
|
||||
alert("Entered perfume/smell text too long. [FLAVOR_MAX] character limit.","Error!")
|
||||
return FALSE
|
||||
user.vore_smell = new_smell
|
||||
|
||||
if(href_list["toggle_dropnom_pred"])
|
||||
var/choice = alert(user, "This toggle is for spontaneous, environment related vore as a predator, including drop-noms, teleporters, etc. You are currently [user.can_be_drop_pred ? " able to eat prey that you encounter by environmental actions." : "avoiding eating prey encountered in the environment."]", "", "Be Pred", "Cancel", "Don't be Pred")
|
||||
switch(choice)
|
||||
@@ -1014,7 +1026,7 @@
|
||||
user.can_be_drop_prey = FALSE
|
||||
|
||||
if(href_list["toggledg"])
|
||||
var/choice = alert(user, "This button is for those who don't like being digested. It can make you undigestable. Messages admins when changed, so don't try to use it for mechanical benefit. Set it once and save it. Digesting you is currently: [user.digestable ? "Allowed" : "Prevented"]", "", "Allow Digestion", "Cancel", "Prevent Digestion")
|
||||
var/choice = alert(user, "This button is for those who don't like being digested. It can make you undigestable. Digesting you is currently: [user.digestable ? "Allowed" : "Prevented"]", "", "Allow Digestion", "Cancel", "Prevent Digestion")
|
||||
switch(choice)
|
||||
if("Cancel")
|
||||
return FALSE
|
||||
@@ -1023,8 +1035,6 @@
|
||||
if("Prevent Digestion")
|
||||
user.digestable = FALSE
|
||||
|
||||
message_admins("[key_name(user)] toggled their digestability to [user.digestable] [ADMIN_COORDJMP(user)]")
|
||||
|
||||
if(user.client.prefs_vr)
|
||||
user.client.prefs_vr.digestable = user.digestable
|
||||
|
||||
@@ -1081,7 +1091,7 @@
|
||||
user.client.prefs_vr.digest_leave_remains = user.digest_leave_remains
|
||||
|
||||
if(href_list["togglemv"])
|
||||
var/choice = alert(user, "This button is for those who don't like being eaten by mobs. Messages admins when changed, so don't try to use it for mechanical benefit. Set it once and save it. Mobs are currently: [user.allowmobvore ? "Allowed to eat" : "Prevented from eating"] you.", "", "Allow Mob Predation", "Cancel", "Prevent Mob Predation")
|
||||
var/choice = alert(user, "This button is for those who don't like being eaten by mobs. Mobs are currently: [user.allowmobvore ? "Allowed to eat" : "Prevented from eating"] you.", "", "Allow Mob Predation", "Cancel", "Prevent Mob Predation")
|
||||
switch(choice)
|
||||
if("Cancel")
|
||||
return FALSE
|
||||
@@ -1090,8 +1100,6 @@
|
||||
if("Prevent Mob Predation")
|
||||
user.allowmobvore = FALSE
|
||||
|
||||
message_admins("[key_name(user)] toggled their mob vore preference to [user.allowmobvore] [ADMIN_COORDJMP(user)]")
|
||||
|
||||
if(user.client.prefs_vr)
|
||||
user.client.prefs_vr.allowmobvore = user.allowmobvore
|
||||
|
||||
|
||||
@@ -281,35 +281,19 @@ Swimsuits, for general use, to avoid arriving to work with your swimsuit.
|
||||
/obj/item/weapon/storage/box/monkeycubes/sobakacubes
|
||||
name = "sobaka cube box"
|
||||
desc = "Drymate brand sobaka cubes. Just add water!"
|
||||
|
||||
/obj/item/weapon/storage/box/monkeycubes/sobakacubes/New()
|
||||
..()
|
||||
for(var/i = 1 to 4)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/sobakacube(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/sobakacube = 4)
|
||||
|
||||
/obj/item/weapon/storage/box/monkeycubes/sarucubes
|
||||
name = "saru cube box"
|
||||
desc = "Drymate brand saru cubes. Just add water!"
|
||||
|
||||
/obj/item/weapon/storage/box/monkeycubes/sarucubes/New()
|
||||
..()
|
||||
for(var/i = 1 to 4)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/sarucube(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/sarucube = 4)
|
||||
|
||||
/obj/item/weapon/storage/box/monkeycubes/sparracubes
|
||||
name = "sparra cube box"
|
||||
desc = "Drymate brand sparra cubes. Just add water!"
|
||||
|
||||
/obj/item/weapon/storage/box/monkeycubes/sparracubes/New()
|
||||
..()
|
||||
for(var/i = 1 to 4)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/sparracube(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/sparracube = 4)
|
||||
|
||||
/obj/item/weapon/storage/box/monkeycubes/wolpincubes
|
||||
name = "wolpin cube box"
|
||||
desc = "Drymate brand wolpin cubes. Just add water!"
|
||||
|
||||
/obj/item/weapon/storage/box/monkeycubes/wolpincubes/New()
|
||||
..()
|
||||
for(var/i = 1 to 4)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/wolpincube(src)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/wolpincube = 4)
|
||||
|
||||
@@ -1649,4 +1649,58 @@
|
||||
icon_state = "khlife3"
|
||||
icon_override = 'icons/vore/custom_items_vr.dmi'
|
||||
item_state = "khlife_overlay"
|
||||
overlay_state = "khlife_overlay"
|
||||
overlay_state = "khlife_overlay"
|
||||
|
||||
// ******
|
||||
// KBraid
|
||||
// ******
|
||||
/obj/item/clothing/glasses/fluff/avigoggles_yw
|
||||
name = "aviation goggles"
|
||||
desc = "You're such a goggle head!"
|
||||
icon = 'icons/vore/custom_clothes_yw.dmi'
|
||||
icon_state = "avigoggles_i"
|
||||
item_state = "avigoggles"
|
||||
icon_override = 'icons/vore/custom_clothes_yw.dmi'
|
||||
action_button_name = "Flip Aviation Goggles"
|
||||
item_flags = AIRTIGHT
|
||||
var/up = 0
|
||||
|
||||
/obj/item/clothing/glasses/fluff/avigoggles_yw/attack_self()
|
||||
toggle()
|
||||
|
||||
/obj/item/clothing/glasses/fluff/avigoggles_yw/verb/toggle()
|
||||
set category = "Object"
|
||||
set name = "Adjust aviation goggles"
|
||||
set src in usr
|
||||
|
||||
if(usr.canmove && !usr.stat && !usr.restrained())
|
||||
if(src.up)
|
||||
src.up = !src.up
|
||||
flags_inv |= HIDEEYES
|
||||
body_parts_covered |= EYES
|
||||
item_state = initial(item_state)
|
||||
to_chat(usr, "You flip \the [src] down to protect your eyes.")
|
||||
else
|
||||
src.up = !src.up
|
||||
flags_inv &= ~HIDEEYES
|
||||
body_parts_covered &= ~EYES
|
||||
item_state = "[initial(item_state)]_up"
|
||||
to_chat(usr, "You push \the [src] up out of your face.")
|
||||
update_clothing_icon()
|
||||
usr.update_action_buttons()
|
||||
|
||||
/obj/item/clothing/glasses/fluff/avigoggles_yw/get_worn_icon_file(var/body_type,var/slot_name,var/default_icon,var/inhands)
|
||||
if(body_type == SPECIES_TESHARI)
|
||||
if(!inhands)
|
||||
return 'icons/vore/custom_clothes_yw_special.dmi'
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/under/harness_white
|
||||
name = "white gear harness"
|
||||
desc = "How... minimalist."
|
||||
icon = 'icons/vore/custom_clothes_yw.dmi'
|
||||
icon_state = "gear_harness_white"
|
||||
icon_override = 'icons/vore/custom_clothes_yw.dmi'
|
||||
item_state = "gear_harness_white"
|
||||
body_parts_covered = 0
|
||||
@@ -243,10 +243,18 @@ var/const/RESIZE_A_SMALLTINY = (RESIZE_SMALL + RESIZE_TINY) / 2
|
||||
if(a_intent == I_HELP) // Theoretically not possible, but just in case.
|
||||
return FALSE
|
||||
|
||||
if(tmob.a_intent != I_HELP && prob(35))
|
||||
to_chat(pred, "<span class='danger'>[prey] dodges out from under your foot!</span>")
|
||||
to_chat(prey, "<span class='danger'>You narrowly avoid [pred]'s foot!</span>")
|
||||
return FALSE
|
||||
|
||||
now_pushing = 0
|
||||
forceMove(tmob.loc)
|
||||
if(a_intent == I_GRAB || a_intent == I_DISARM)
|
||||
tmob.resting = 1
|
||||
if(tmob.a_intent == I_HELP)
|
||||
tmob.resting = 1
|
||||
else
|
||||
tmob.Weaken(1)
|
||||
|
||||
var/size_damage_multiplier = size_multiplier - tmob.size_multiplier
|
||||
// This technically means that I_GRAB will set this value to the same as I_HARM, but
|
||||
@@ -311,7 +319,7 @@ var/const/RESIZE_A_SMALLTINY = (RESIZE_SMALL + RESIZE_TINY) / 2
|
||||
message_pred = STEP_TEXT_OWNER(tail.msg_owner_disarm_walk)
|
||||
message_prey = STEP_TEXT_PREY(tail.msg_prey_disarm_walk)
|
||||
add_attack_logs(pred, prey, "Pinned underfoot (walk, about [damage] halloss)")
|
||||
tmob.apply_damage(damage, HALLOSS)
|
||||
tmob.Weaken(2) //Removed halloss because it was being abused
|
||||
if(I_HURT)
|
||||
message_pred = "You methodically place your foot down upon [prey]'s body, slowly applying pressure, crushing them against the floor below!"
|
||||
message_prey = "[pred] methodically places their foot upon your body, slowly applying pressure, crushing you against the floor below!"
|
||||
|
||||
Reference in New Issue
Block a user