@@ -765,6 +765,7 @@
|
|||||||
/obj/item/weapon/reagent_containers/food/snacks/honeybun
|
/obj/item/weapon/reagent_containers/food/snacks/honeybun
|
||||||
name = "Honeybun"
|
name = "Honeybun"
|
||||||
desc = "A delicious and sweet treat made with honey instead of sugar. On the sticky side."
|
desc = "A delicious and sweet treat made with honey instead of sugar. On the sticky side."
|
||||||
|
icon = 'icons/obj/food_vr.dmi'
|
||||||
icon_state = "honeybun"
|
icon_state = "honeybun"
|
||||||
bitesize = 2
|
bitesize = 2
|
||||||
nutriment_amt = 4
|
nutriment_amt = 4
|
||||||
|
|||||||
@@ -1214,12 +1214,13 @@
|
|||||||
healths.appearance = healths_ma
|
healths.appearance = healths_ma
|
||||||
|
|
||||||
if(nutrition_icon)
|
if(nutrition_icon)
|
||||||
|
var/prefix = isSynthetic() ? "c" : null
|
||||||
switch(nutrition)
|
switch(nutrition)
|
||||||
if(450 to INFINITY) nutrition_icon.icon_state = "nutrition0"
|
if(450 to INFINITY) nutrition_icon.icon_state = "[prefix]nutrition0"
|
||||||
if(350 to 450) nutrition_icon.icon_state = "nutrition1"
|
if(350 to 450) nutrition_icon.icon_state = "[prefix]nutrition1"
|
||||||
if(250 to 350) nutrition_icon.icon_state = "nutrition2"
|
if(250 to 350) nutrition_icon.icon_state = "[prefix]nutrition2"
|
||||||
if(150 to 250) nutrition_icon.icon_state = "nutrition3"
|
if(150 to 250) nutrition_icon.icon_state = "[prefix]nutrition3"
|
||||||
else nutrition_icon.icon_state = "nutrition4"
|
else nutrition_icon.icon_state = "[prefix]nutrition4"
|
||||||
|
|
||||||
if(pressure)
|
if(pressure)
|
||||||
pressure.icon_state = "pressure[pressure_alert]"
|
pressure.icon_state = "pressure[pressure_alert]"
|
||||||
|
|||||||
@@ -68,6 +68,9 @@
|
|||||||
/datum/trait/bloodsucker/apply(var/datum/species/S,var/mob/living/carbon/human/H)
|
/datum/trait/bloodsucker/apply(var/datum/species/S,var/mob/living/carbon/human/H)
|
||||||
..(S,H)
|
..(S,H)
|
||||||
H.verbs |= /mob/living/carbon/human/proc/bloodsuck
|
H.verbs |= /mob/living/carbon/human/proc/bloodsuck
|
||||||
|
spawn(10 SECONDS) // Ugh!
|
||||||
|
if(H?.nutrition_icon)
|
||||||
|
H.nutrition_icon.icon = 'icons/mob/screen/vamp_hunger_vr.dmi'
|
||||||
|
|
||||||
/datum/trait/succubus_drain
|
/datum/trait/succubus_drain
|
||||||
name = "Succubus Drain"
|
name = "Succubus Drain"
|
||||||
|
|||||||
@@ -238,7 +238,7 @@
|
|||||||
count = input("Select the number of pills to make.", "Max [max_pill_count]", pillamount) as null|num
|
count = input("Select the number of pills to make.", "Max [max_pill_count]", pillamount) as null|num
|
||||||
if(!count) //Covers 0 and cancel
|
if(!count) //Covers 0 and cancel
|
||||||
return
|
return
|
||||||
count = CLAMP(count, 1, max_pill_count)
|
count = CLAMP(round(count), 1, max_pill_count) // Fix decimals input and clamp to reasonable amounts
|
||||||
|
|
||||||
if(reagents.total_volume/count < 1) //Sanity checking.
|
if(reagents.total_volume/count < 1) //Sanity checking.
|
||||||
return
|
return
|
||||||
@@ -260,7 +260,7 @@
|
|||||||
|
|
||||||
if(reagents.total_volume/count < 1) //Sanity checking.
|
if(reagents.total_volume/count < 1) //Sanity checking.
|
||||||
return
|
return
|
||||||
while (count--)
|
while(count-- > 0) // Will definitely eventually stop.
|
||||||
var/obj/item/weapon/reagent_containers/pill/P = new/obj/item/weapon/reagent_containers/pill(src.loc)
|
var/obj/item/weapon/reagent_containers/pill/P = new/obj/item/weapon/reagent_containers/pill(src.loc)
|
||||||
if(!name) name = reagents.get_master_reagent_name()
|
if(!name) name = reagents.get_master_reagent_name()
|
||||||
P.name = "[name] pill"
|
P.name = "[name] pill"
|
||||||
|
|||||||
@@ -397,7 +397,7 @@
|
|||||||
// Default implementation calls M.death() and removes from internal contents.
|
// Default implementation calls M.death() and removes from internal contents.
|
||||||
// Indigestable items are removed, and M is deleted.
|
// Indigestable items are removed, and M is deleted.
|
||||||
/obj/belly/proc/digestion_death(mob/living/M)
|
/obj/belly/proc/digestion_death(mob/living/M)
|
||||||
message_admins("[key_name(owner)] has digested [key_name(M)] in their [lowertext(name)] ([owner ? ADMIN_JMP(owner) : "null"])")
|
add_attack_logs(owner, M, "Digested in [lowertext(name)]")
|
||||||
|
|
||||||
// If digested prey is also a pred... anyone inside their bellies gets moved up.
|
// If digested prey is also a pred... anyone inside their bellies gets moved up.
|
||||||
if(is_vore_predator(M))
|
if(is_vore_predator(M))
|
||||||
@@ -439,6 +439,7 @@
|
|||||||
//Incase they have the loop going, let's double check to stop it.
|
//Incase they have the loop going, let's double check to stop it.
|
||||||
M.stop_sound_channel(CHANNEL_PREYLOOP)
|
M.stop_sound_channel(CHANNEL_PREYLOOP)
|
||||||
// Delete the digested mob
|
// Delete the digested mob
|
||||||
|
M.ghostize() // Make sure they're out, so we can copy attack logs and such.
|
||||||
qdel(M)
|
qdel(M)
|
||||||
|
|
||||||
// Handle a mob being absorbed
|
// Handle a mob being absorbed
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 113 KiB After Width: | Height: | Size: 113 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 49 KiB |
BIN
icons/mob/screen/vamp_hunger_vr.dmi
Normal file
|
After Width: | Height: | Size: 952 B |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 8.7 KiB |
@@ -162,6 +162,7 @@
|
|||||||
/datum/map_z_level/tether_lateload/away_beach
|
/datum/map_z_level/tether_lateload/away_beach
|
||||||
name = "Away Mission - Desert Beach"
|
name = "Away Mission - Desert Beach"
|
||||||
z = Z_LEVEL_BEACH
|
z = Z_LEVEL_BEACH
|
||||||
|
base_turf = /turf/simulated/floor/outdoors/rocks/caves
|
||||||
|
|
||||||
/datum/map_template/tether_lateload/away_beach_cave
|
/datum/map_template/tether_lateload/away_beach_cave
|
||||||
name = "Desert Planet - Z2 Cave"
|
name = "Desert Planet - Z2 Cave"
|
||||||
@@ -181,6 +182,7 @@
|
|||||||
/datum/map_z_level/tether_lateload/away_beach_cave
|
/datum/map_z_level/tether_lateload/away_beach_cave
|
||||||
name = "Away Mission - Desert Cave"
|
name = "Away Mission - Desert Cave"
|
||||||
z = Z_LEVEL_BEACH_CAVE
|
z = Z_LEVEL_BEACH_CAVE
|
||||||
|
base_turf = /turf/simulated/floor/outdoors/rocks/caves
|
||||||
|
|
||||||
/obj/effect/step_trigger/zlevel_fall/beach
|
/obj/effect/step_trigger/zlevel_fall/beach
|
||||||
var/static/target_z
|
var/static/target_z
|
||||||
@@ -207,6 +209,7 @@
|
|||||||
/datum/map_z_level/tether_lateload/away_aerostat
|
/datum/map_z_level/tether_lateload/away_aerostat
|
||||||
name = "Away Mission - Aerostat"
|
name = "Away Mission - Aerostat"
|
||||||
z = Z_LEVEL_AEROSTAT
|
z = Z_LEVEL_AEROSTAT
|
||||||
|
base_turf = /turf/unsimulated/floor/sky/virgo2_sky
|
||||||
|
|
||||||
/datum/map_template/tether_lateload/away_aerostat_surface
|
/datum/map_template/tether_lateload/away_aerostat_surface
|
||||||
name = "Remmi Aerostat - Z2 Surface"
|
name = "Remmi Aerostat - Z2 Surface"
|
||||||
@@ -223,6 +226,7 @@
|
|||||||
/datum/map_z_level/tether_lateload/away_aerostat_surface
|
/datum/map_z_level/tether_lateload/away_aerostat_surface
|
||||||
name = "Away Mission - Aerostat Surface"
|
name = "Away Mission - Aerostat Surface"
|
||||||
z = Z_LEVEL_AEROSTAT_SURFACE
|
z = Z_LEVEL_AEROSTAT_SURFACE
|
||||||
|
base_turf = /turf/simulated/mineral/floor/ignore_mapgen/virgo2
|
||||||
|
|
||||||
|
|
||||||
#include "space/_debrisfield.dm"
|
#include "space/_debrisfield.dm"
|
||||||
|
|||||||