mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-27 06:00:23 +01:00
Merge remote-tracking branch 'remotes/origin/master' into blehh2sparkbooger
# Conflicts: # code/modules/mob/new_player/sprite_accessories_vr.dm # icons/mob/human_races/markings_vr.dmi
This commit is contained in:
@@ -273,6 +273,12 @@
|
||||
icon_state = "shock"
|
||||
ckeys_allowed = list("icowom")
|
||||
|
||||
/datum/sprite_accessory/ears/alurane
|
||||
name = "alurane ears/hair (Pumila)"
|
||||
desc = ""
|
||||
icon_state = "alurane-ears"
|
||||
ckeys_allowed = list("natje")
|
||||
|
||||
/*
|
||||
////////////////////////////
|
||||
/ =--------------------= /
|
||||
@@ -1018,3 +1024,11 @@
|
||||
icon_state = "ariana_s"
|
||||
ckeys_allowed = list("liquidfirefly")
|
||||
do_colouration = 0
|
||||
|
||||
//liquidfirefly: Ariana Scol
|
||||
/datum/sprite_accessory/tail/taur/alraune
|
||||
name = "Alraune (natje)"
|
||||
icon_state = "alraune_s"
|
||||
ani_state = "alraune_closed_s"
|
||||
ckeys_allowed = list("natje")
|
||||
do_colouration = 0
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
var/datum/belly/transferlocation = null // Location that the prey is released if they struggle and get dropped off.
|
||||
|
||||
var/tmp/digest_mode = DM_HOLD // Whether or not to digest. Default to not digest.
|
||||
var/tmp/list/digest_modes = list(DM_HOLD,DM_DIGEST,DM_ITEMWEAK,DM_STRIPDIGEST,DM_HEAL,DM_ABSORB,DM_DRAIN,DM_UNABSORB) // Possible digest modes
|
||||
var/tmp/list/digest_modes = list(DM_HOLD,DM_DIGEST,DM_ITEMWEAK,DM_STRIPDIGEST,DM_HEAL,DM_ABSORB,DM_DRAIN,DM_UNABSORB,DM_DIGEST_NUMB) // Possible digest modes
|
||||
var/tmp/list/transform_modes = list(DM_TRANSFORM_MALE,DM_TRANSFORM_FEMALE,DM_TRANSFORM_KEEP_GENDER,DM_TRANSFORM_CHANGE_SPECIES_AND_TAUR,DM_TRANSFORM_CHANGE_SPECIES_AND_TAUR_EGG,DM_TRANSFORM_REPLICA,DM_TRANSFORM_REPLICA_EGG,DM_TRANSFORM_KEEP_GENDER_EGG,DM_TRANSFORM_MALE_EGG,DM_TRANSFORM_FEMALE_EGG, DM_EGG)
|
||||
var/tmp/mob/living/owner // The mob whose belly this is.
|
||||
var/tmp/list/internal_contents = list() // People/Things you've eaten into this belly!
|
||||
@@ -460,6 +460,27 @@
|
||||
return
|
||||
|
||||
else if(prob(transferchance) && istype(transferlocation)) //Next, let's have it see if they end up getting into an even bigger mess then when they started.
|
||||
var/location_found = 0
|
||||
var/name_found = 0
|
||||
for(var/I in owner.vore_organs)
|
||||
var/datum/belly/B = owner.vore_organs[I]
|
||||
if(B == transferlocation)
|
||||
location_found = 1
|
||||
break
|
||||
|
||||
if(!location_found)
|
||||
for(var/I in owner.vore_organs)
|
||||
var/datum/belly/B = owner.vore_organs[I]
|
||||
if(B.name == transferlocation.name)
|
||||
name_found = 1
|
||||
transferlocation = B
|
||||
break
|
||||
|
||||
if(!location_found && !name_found)
|
||||
to_chat(owner, "<span class='warning'>Something went wrong with your belly transfer settings.</span>")
|
||||
transferlocation = null
|
||||
return
|
||||
|
||||
R << "<span class='warning'>Your attempt to escape [name] has failed and your struggles only results in you sliding into [owner]'s [transferlocation]!</span>"
|
||||
owner << "<span class='warning'>Someone slid into your [transferlocation] due to their struggling inside your [name]!</span>"
|
||||
transfer_contents(R, transferlocation)
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
return 1
|
||||
M.verbs += /mob/living/proc/insidePanel
|
||||
|
||||
M.appearance_flags |= PIXEL_SCALE
|
||||
//M.appearance_flags |= PIXEL_SCALE
|
||||
|
||||
//Tries to load prefs if a client is present otherwise gives freebie stomach
|
||||
if(!M.vore_organs || !M.vore_organs.len)
|
||||
|
||||
@@ -453,9 +453,9 @@
|
||||
if(href_list["b_mode"])
|
||||
var/list/menu_list = selected.digest_modes
|
||||
if(istype(usr,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = usr
|
||||
if(H.species.vore_numbing)
|
||||
menu_list += DM_DIGEST_NUMB
|
||||
//var/mob/living/carbon/human/H = usr
|
||||
//if(H.species.vore_numbing)
|
||||
//menu_list += DM_DIGEST_NUMB
|
||||
menu_list += selected.transform_modes
|
||||
|
||||
if(selected.digest_modes.len == 1) // Don't do anything
|
||||
|
||||
@@ -24,6 +24,54 @@
|
||||
|
||||
*/
|
||||
|
||||
//SpoopyLizz: Roiz Lizden
|
||||
/obj/item/clothing/suit/storage/hooded/wintercoat/roiz
|
||||
name = "dinosaur winter coat"
|
||||
desc = "A custom winter coat that looks rather like a dinosaur. It has a nametag that says, Roiz Lizden."
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_state = "coatroiz"
|
||||
item_state_slots = list(slot_r_hand_str = "coatroiz", slot_l_hand_str = "coatroiz")
|
||||
|
||||
icon_override = 'icons/vore/custom_clothes_vr.dmi'
|
||||
item_state = "coatroiz_mob"
|
||||
|
||||
/obj/item/clothing/suit/storage/hooded/wintercoat/roiz/ui_action_click()
|
||||
ToggleHood_roiz()
|
||||
|
||||
/obj/item/clothing/suit/storage/hooded/wintercoat/roiz/equipped(mob/user, slot)
|
||||
if(slot != slot_wear_suit)
|
||||
RemoveHood_roiz()
|
||||
..()
|
||||
|
||||
/obj/item/clothing/suit/storage/hooded/wintercoat/roiz/proc/RemoveHood_roiz()
|
||||
icon_state = "coatroiz"
|
||||
item_state = "coatroiz_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/roiz/proc/ToggleHood_roiz()
|
||||
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 = "coatroiz_t"
|
||||
item_state = "coatroiz_mob_t"
|
||||
H.update_inv_wear_suit()
|
||||
else
|
||||
RemoveHood_roiz()
|
||||
|
||||
//ketrai:Ketrai
|
||||
/obj/item/clothing/head/fluff/ketrai
|
||||
name = "Pink Bear Hat"
|
||||
@@ -582,7 +630,25 @@
|
||||
else
|
||||
return 1
|
||||
|
||||
//scree:Scree
|
||||
//natje:Pumila
|
||||
/obj/item/clothing/under/fluff/aluranevines
|
||||
name = "Pumila's vines"
|
||||
desc = "A wrap of green vines and colourful flowers."
|
||||
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_state = "alurane-vines"
|
||||
|
||||
icon_override = 'icons/vore/custom_clothes_vr.dmi'
|
||||
item_state = "alurane-vines_mob"
|
||||
item_state_slots = list(slot_r_hand_str = "alurane-vines_r", slot_l_hand_str = "alurane-vines_l")
|
||||
mob_can_equip(var/mob/living/carbon/human/H, slot, disable_warning = 0)
|
||||
if(..())
|
||||
if(H.ckey != "natje")
|
||||
H << "<span class='warning'>Wrapping vines around yourself is a quite an... Odd idea. You decide otherwise.</span>"
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
|
||||
/obj/item/clothing/under/fluff/screesuit
|
||||
name = "Scree's feathers"
|
||||
desc = "A mop of fluffy blue feathers, the honkmother only knows what kind of bird they originally came from."
|
||||
|
||||
@@ -768,6 +768,85 @@ obj/item/weapon/material/hatchet/tacknife/combatknife/fluff/katarina/handle_shie
|
||||
|
||||
rimplant.reagents.remove_reagent(rimplant.generated_reagent, rimplant.transfer_amount)
|
||||
|
||||
/obj/item/weapon/implant/reagent_generator/pumila_apple
|
||||
name = "apple laying implant"
|
||||
desc = "This is an implant that allows the user to grow apples."
|
||||
generated_reagent = "sugar" //This actually allows them to.
|
||||
usable_volume = 250 //Five apples. Let's not get /too/ crazy here.
|
||||
transfer_amount = 50
|
||||
|
||||
empty_message = list("Your have no apples on you.", "You have a distinct lack of apples..")
|
||||
full_message = list("You have multiple apples on you, ready for harvest!", "There are a multitude of apples awaiting harvest on you!")
|
||||
emote_descriptor = list("an apple right off of Pumila!", "a large apple off Pumila!")
|
||||
var/verb_descriptor = list("grabs", "snatches", "picks")
|
||||
var/self_verb_descriptor = list("grab", "snatch", "pick")
|
||||
var/short_emote_descriptor = list("picks", "grabs")
|
||||
self_emote_descriptor = list("grab", "pick", "snatch")
|
||||
assigned_proc = /mob/living/carbon/human/proc/use_reagent_implant_pumila_apple
|
||||
|
||||
/obj/item/weapon/implant/reagent_generator/pumila_apple/implanted(mob/living/carbon/source)
|
||||
processing_objects += src
|
||||
to_chat(source, "<span class='notice'>You implant [source] with \the [src].</span>")
|
||||
source.verbs |= assigned_proc
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/implanter/reagent_generator/pumila_apple
|
||||
implant_type = /obj/item/weapon/implant/reagent_generator/pumila_apple
|
||||
|
||||
/mob/living/carbon/human/proc/use_reagent_implant_pumila_apple()
|
||||
set name = "Grab Apple"
|
||||
set desc = "Grab an apple off of Pumila."
|
||||
set category = "Object"
|
||||
set src in view(1)
|
||||
|
||||
//do_reagent_implant(usr)
|
||||
if(!isliving(usr) || !usr.canClick())
|
||||
return
|
||||
|
||||
if(usr.incapacitated() || usr.stat > CONSCIOUS)
|
||||
return
|
||||
|
||||
var/obj/item/weapon/implant/reagent_generator/roiz/rimplant
|
||||
for(var/I in src.contents)
|
||||
if(istype(I, /obj/item/weapon/implant/reagent_generator))
|
||||
rimplant = I
|
||||
break
|
||||
if (rimplant)
|
||||
if(rimplant.reagents.total_volume <= rimplant.transfer_amount)
|
||||
to_chat(src, "<span class='notice'>[pick(rimplant.empty_message)]</span>")
|
||||
return
|
||||
|
||||
var/datum/seed/S = plant_controller.seeds["apple"] //crosses fingers.
|
||||
S.harvest(usr,0,0,1)
|
||||
|
||||
var/index = rand(0,2)
|
||||
|
||||
if (usr != src)
|
||||
var/emote = rimplant.emote_descriptor[index]
|
||||
var/verb_desc = rimplant.verb_descriptor[index]
|
||||
var/self_verb_desc = rimplant.self_verb_descriptor[index]
|
||||
usr.visible_message("<span class='notice'>[usr] [verb_desc] [emote]</span>",
|
||||
"<span class='notice'>You [self_verb_desc] [emote]</span>")
|
||||
else
|
||||
src.visible_message("<span class='notice'>[src] [pick(rimplant.short_emote_descriptor)] an apple.</span>",
|
||||
"<span class='notice'>You [pick(rimplant.self_emote_descriptor)] an apple.</span>")
|
||||
|
||||
rimplant.reagents.remove_reagent(rimplant.generated_reagent, rimplant.transfer_amount)
|
||||
/*
|
||||
/obj/item/weapon/implant/reagent_generator/pumila_nectar //Bugged. Two implants at once messes things up.
|
||||
generated_reagent = "honey"
|
||||
usable_volume = 5000
|
||||
|
||||
empty_message = list("You appear to be all out of nectar", "You feel as though you are lacking a majority of your nectar.")
|
||||
full_message = list("You appear to be full of nectar.", "You feel as though you are full of nectar!")
|
||||
emote_descriptor = list("squeezes nectar", "extracts nectar")
|
||||
self_emote_descriptor = list("squeeze", "extract")
|
||||
verb_name = "Extract Honey"
|
||||
verb_desc = "Obtain pumila's nectar and put it into a container!"
|
||||
|
||||
/obj/item/weapon/implanter/reagent_generator/pumila_nectar
|
||||
implant_type = /obj/item/weapon/implant/reagent_generator/pumila_nectar
|
||||
*/
|
||||
//Egg item
|
||||
//-------------
|
||||
/obj/item/weapon/reagent_containers/food/snacks/egg/roiz
|
||||
|
||||
Reference in New Issue
Block a user