mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-27 22:18:27 +01:00
Merge branch 'master' into NUMBING_BITE_V2
This commit is contained in:
@@ -95,6 +95,13 @@
|
||||
desc = ""
|
||||
icon_state = "demon-horns1"
|
||||
|
||||
/datum/sprite_accessory/ears/demon_horns2
|
||||
name = "demon horns, colorable(outward)"
|
||||
desc = ""
|
||||
icon_state = "demon-horns2"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/foxears
|
||||
name = "highlander zorren ears"
|
||||
desc = ""
|
||||
@@ -220,7 +227,7 @@
|
||||
icon_state = "sleek"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
|
||||
// Special snowflake ears go below here.
|
||||
|
||||
/datum/sprite_accessory/ears/molenar_kitsune
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
var/vore_taste = null // What the character tastes like
|
||||
var/no_vore = 0 // If the character/mob can vore.
|
||||
var/openpanel = 0 // Is the vore panel open?
|
||||
var/conceal_nif = 0 // Do they wish to conceal their NIF from examine?
|
||||
var/nif_examine = "There's a certain spark to their eyes" //The examine text of their NIF. This is the default placeholder.
|
||||
|
||||
//
|
||||
// Hook for generic creation of stuff on new creatures
|
||||
@@ -436,3 +438,60 @@
|
||||
gas = list(
|
||||
"oxygen" = 21,
|
||||
"nitrogen" = 79)
|
||||
|
||||
/mob/living/proc/escape_clothes(obj/item/clothing/C)
|
||||
ASSERT(src.loc == C)
|
||||
|
||||
if(ishuman(C.loc)) //In a /mob/living/carbon/human
|
||||
var/mob/living/carbon/human/H = C.loc
|
||||
if(H.shoes == C) //Being worn
|
||||
src << "<font color='blue'> You start to climb around the larger creature's feet and ankles!</font>"
|
||||
H << "<font color='red'>Something is trying to climb out of your [C]!</font>"
|
||||
var/original_loc = H.loc
|
||||
for(var/escape_time = 100,escape_time > 0,escape_time--)
|
||||
if(H.loc != original_loc)
|
||||
src << "<font color='red'>You're pinned back underfoot!</font>"
|
||||
H << "<font color='blue'>You pin the escapee back underfoot!</font>"
|
||||
return
|
||||
if(src.loc != C)
|
||||
return
|
||||
sleep(1)
|
||||
|
||||
src << "<font color='blue'>You manage to escape \the [C]!</font>"
|
||||
H << "<font color='red'>Somone has climbed out of your [C]!</font>"
|
||||
src.loc = H.loc
|
||||
var/datum/belly/B = check_belly(H)
|
||||
if(B)
|
||||
B.internal_contents += src
|
||||
return
|
||||
else //Being held by a human
|
||||
src << "<font color='blue'>You start to climb out of \the [C]!</font>"
|
||||
H << "<font color='red'>Something is trying to climb out of your [C]!</font>"
|
||||
for(var/escape_time = 60,escape_time > 0,escape_time--)
|
||||
if(H.shoes == C)
|
||||
src << "<font color='red'>You're pinned underfoot!</font>"
|
||||
H << "<font color='blue'>You pin the escapee underfoot!</font>"
|
||||
return
|
||||
if(src.loc != C)
|
||||
return
|
||||
sleep(1)
|
||||
src << "<font color='blue'>You manage to escape \the [C]!</font>"
|
||||
H << "<font color='red'>Somone has climbed out of your [C]!</font>"
|
||||
src.loc = H.loc
|
||||
var/datum/belly/B = check_belly(H)
|
||||
if(B)
|
||||
B.internal_contents += src
|
||||
return
|
||||
|
||||
src << "<font color='blue'>You start to climb out of \the [C]!</font>"
|
||||
sleep(50)
|
||||
if(src.loc == C)
|
||||
src << "<font color='blue'>You climb out of \the [C]!</font>"
|
||||
src.loc = C.loc
|
||||
var/datum/belly/B
|
||||
if(check_belly(C)) B = check_belly(C)
|
||||
if(check_belly(C.loc)) B = check_belly(C.loc)
|
||||
if(B)
|
||||
B.internal_contents += src
|
||||
return
|
||||
return
|
||||
|
||||
@@ -44,6 +44,8 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
|
||||
var/digestable = 1
|
||||
var/list/belly_prefs = list()
|
||||
var/vore_taste
|
||||
var/conceal_nif
|
||||
var/nif_examine
|
||||
|
||||
//Mechanically required
|
||||
var/path
|
||||
@@ -103,6 +105,8 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
|
||||
S["digestable"] >> digestable
|
||||
S["belly_prefs"] >> belly_prefs
|
||||
S["vore_taste"] >> vore_taste
|
||||
S["conceal_nif"] >> conceal_nif
|
||||
S["nif_examine"] >> nif_examine
|
||||
|
||||
if(isnull(digestable))
|
||||
digestable = 1
|
||||
@@ -121,5 +125,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
|
||||
S["digestable"] << digestable
|
||||
S["belly_prefs"] << belly_prefs
|
||||
S["vore_taste"] << vore_taste
|
||||
S["conceal_nif"] << conceal_nif
|
||||
S["nif_examine"] << nif_examine
|
||||
|
||||
return 1
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#define BELLIES_NAME_MAX 12
|
||||
#define BELLIES_DESC_MAX 1024
|
||||
#define FLAVOR_MAX 40
|
||||
#define NIF_EXAMINE_MAX 60
|
||||
|
||||
/mob/living/proc/insidePanel()
|
||||
set name = "Vore Panel"
|
||||
@@ -23,7 +24,7 @@
|
||||
picker_holder.popup.open()
|
||||
src.openpanel = 1
|
||||
|
||||
/mob/living/proc/updateVRPanel() //Panel popup update call from belly évents.
|
||||
/mob/living/proc/updateVRPanel() //Panel popup update call from belly events.
|
||||
if(src.openpanel == 1)
|
||||
var/datum/vore_look/picker_holder = new()
|
||||
picker_holder.loop = picker_holder
|
||||
@@ -257,6 +258,9 @@
|
||||
if(0)
|
||||
dat += "<a href='?src=\ref[src];toggledg=1'><span style='color:green;'>Toggle Digestable</span></a>"
|
||||
|
||||
dat += "<br><a href='?src=\ref[src];toggle_nif=1'>Set NIF concealment</a>" //These two get their own, custom row.
|
||||
dat += "<a href='?src=\ref[src];set_nif_flavor=1'>Set NIF Examine Message.</a>"
|
||||
|
||||
//Returns the dat html to the vore_look
|
||||
return dat
|
||||
|
||||
@@ -666,6 +670,28 @@
|
||||
else //Returned null
|
||||
return 0
|
||||
|
||||
if(href_list["toggle_nif"])
|
||||
var/choice = alert(user, "Your nif is currently: [user.conceal_nif ? "Not able to be seen" : "Able to be seen"]", "", "Conceal NIF", "Cancel", "Show NIF")
|
||||
switch(choice)
|
||||
if("Cancel")
|
||||
return 0
|
||||
if("Conceal NIF")
|
||||
user.conceal_nif = 1
|
||||
if("Show NIF")
|
||||
user.conceal_nif = 0
|
||||
|
||||
if(href_list["set_nif_flavor"])
|
||||
var/new_nif_examine = html_encode(input(usr,"How people will see your NIF on examine (100ch limit):","Character Flavor",user.nif_examine) as text|null)
|
||||
|
||||
if(new_nif_examine)
|
||||
new_nif_examine = readd_quotes(new_nif_examine)
|
||||
if(length(new_nif_examine) > NIF_EXAMINE_MAX)
|
||||
alert("Entered NIF examine text too long. [NIF_EXAMINE_MAX] character limit.","Error")
|
||||
return 0
|
||||
user.nif_examine = new_nif_examine
|
||||
else //Returned null
|
||||
return 0
|
||||
|
||||
if(href_list["toggledg"])
|
||||
var/choice = alert(user, "This button is for those who don't like being digested. It can make you undigestable. Don't abuse this button by toggling it back and forth to extend a scene or whatever, or you'll make the admins cry. Digesting you is currently: [user.digestable ? "Allowed" : "Prevented"]", "", "Allow Digestion", "Cancel", "Prevent Digestion")
|
||||
switch(choice)
|
||||
|
||||
@@ -1479,4 +1479,15 @@ Departamental Swimsuits, for general use
|
||||
icon_state = "headbando"
|
||||
|
||||
icon_override = 'icons/vore/custom_clothes_vr.dmi'
|
||||
item_state = "headbando"
|
||||
item_state = "headbando"
|
||||
|
||||
//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."
|
||||
|
||||
icon = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_state = "loincloth"
|
||||
|
||||
icon_override = 'icons/vore/custom_clothes_vr.dmi'
|
||||
item_state = "loincloth"
|
||||
Reference in New Issue
Block a user