Deconflicts
@@ -1171,6 +1171,7 @@
|
||||
/obj/machinery/atmospherics/pipe/tank/nitrogen
|
||||
name = "Pressure Tank (Nitrogen)"
|
||||
icon_state = "n2_map"
|
||||
volume = 40000 //Vorestation edit
|
||||
|
||||
/obj/machinery/atmospherics/pipe/tank/nitrogen/New()
|
||||
air_temporary = new
|
||||
|
||||
@@ -28,7 +28,8 @@
|
||||
/obj/item/weapon/disk/limb/dsi_vulpkanin,
|
||||
/obj/item/weapon/disk/limb/dsi_akula,
|
||||
/obj/item/weapon/disk/limb/dsi_spider,
|
||||
/obj/item/weapon/disk/limb/eggnerdltd
|
||||
/obj/item/weapon/disk/limb/eggnerdltd,
|
||||
/obj/item/weapon/disk/limb/eggnerdltdred
|
||||
)
|
||||
cost = 40
|
||||
containertype = /obj/structure/closet/crate/secure
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
/datum/job/hop
|
||||
alt_titles = list("Deputy Director", "Crew Resources Officer")
|
||||
@@ -1,2 +0,0 @@
|
||||
/datum/job/janitor
|
||||
alt_titles = list("Custodian", "Sanitation Technician", "Maid")
|
||||
49
code/game/jobs/job/z_all_jobs_vr.dm
Normal file
@@ -0,0 +1,49 @@
|
||||
//Contains all modified jobs for easy access and editing.
|
||||
|
||||
/datum/job/hop
|
||||
alt_titles = list("Deputy Director", "Crew Resources Officer")
|
||||
|
||||
/datum/job/doctor
|
||||
total_positions = 5
|
||||
spawn_positions = 5
|
||||
|
||||
/datum/job/janitor //Lots of janitor substations on station.
|
||||
total_positions = 3
|
||||
spawn_positions = 3
|
||||
alt_titles = list("Custodian", "Sanitation Technician", "Maid")
|
||||
|
||||
/datum/job/officer
|
||||
total_positions = 4
|
||||
spawn_positions = 4
|
||||
|
||||
/datum/job/cargo_tech
|
||||
total_positions = 3
|
||||
spawn_positions = 3
|
||||
|
||||
/datum/job/psychiatrist
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
|
||||
/datum/job/mining
|
||||
total_positions = 4
|
||||
spawn_positions = 4
|
||||
|
||||
/datum/job/cyborg
|
||||
total_positions = 3
|
||||
spawn_positions = 3
|
||||
|
||||
/datum/job/bartender
|
||||
total_positions = 2
|
||||
spawn_positions = 2
|
||||
|
||||
/datum/job/chef
|
||||
total_positions = 2 //IT TAKES A LOT TO MAKE A STEW
|
||||
spawn_positions = 2 //A PINCH OF SALT AND LAUGHTER, TOO
|
||||
|
||||
/datum/job/engineer
|
||||
total_positions = 5
|
||||
spawn_positions = 5
|
||||
|
||||
/datum/job/atmos
|
||||
total_positions = 3
|
||||
spawn_positions = 3
|
||||
@@ -588,7 +588,7 @@
|
||||
//Departments that the cycler can paint suits to look like.
|
||||
var/list/departments = list("Engineering","Mining","Medical","Security","Atmos","HAZMAT","Construction","Biohazard","Emergency Medical Response","Crowd Control")
|
||||
//Species that the suits can be configured to fit.
|
||||
var/list/species = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Promethean", "Xenomorph Hybrid", "Xenochimera","Vasilissan") //VORESTATION EDIT
|
||||
var/list/species = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Promethean", "Xenomorph Hybrid", "Xenochimera","Vasilissan", "Rapala") //VORESTATION EDIT
|
||||
|
||||
var/target_department
|
||||
var/target_species
|
||||
@@ -753,7 +753,7 @@
|
||||
//Clear the access reqs, disable the safeties, and open up all paintjobs.
|
||||
user << "<span class='danger'>You run the sequencer across the interface, corrupting the operating protocols.</span>"
|
||||
departments = list("Engineering","Mining","Medical","Security","Atmos","HAZMAT","Construction","Biohazard","Crowd Control","Emergency Medical Response","^%###^%$")
|
||||
species = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Promethean", "Xenomorph Hybrid", "Vasilissan") //VORESTATION EDIT
|
||||
species = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Promethean", "Xenomorph Hybrid", "Vasilissan", "Rapala") //VORESTATION EDIT
|
||||
|
||||
emagged = 1
|
||||
safeties = 0
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
/obj/machinery/suit_cycler
|
||||
species = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Promethean", "Xenomorph Hybrid", "Xenochimera","Vasilissan") //Added xenochimera while I was at it. Someone put in an issue about it.
|
||||
species = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Promethean", "Xenomorph Hybrid", "Xenochimera","Vasilissan", "Rapala") //Added xenochimera while I was at it. Someone put in an issue about it.
|
||||
|
||||
13
code/game/objects/effects/spider_vr.dm
Normal file
@@ -0,0 +1,13 @@
|
||||
/obj/effect/spider/spiderling/grub
|
||||
name = "grub larva"
|
||||
desc = "It never stays still for long."
|
||||
//M.icon = 'grub_vr.dmi'
|
||||
icon_state = "spiderling"
|
||||
|
||||
obj/effect/spider/spiderling/grub/process()
|
||||
if(amount_grown >= 100)
|
||||
var/spawn_type = /mob/living/simple_animal/retaliate/solargrub
|
||||
new spawn_type(src.loc, src)
|
||||
qdel(src)
|
||||
else
|
||||
..()
|
||||
@@ -130,7 +130,7 @@
|
||||
prob(5);/obj/item/weapon/storage/backpack,
|
||||
prob(5);/obj/item/weapon/storage/backpack/satchel/norm,
|
||||
prob(5);/obj/item/weapon/storage/box,
|
||||
prob(5);/obj/random/cigarettes,
|
||||
// prob(5);/obj/random/cigarettes,
|
||||
prob(4);/obj/item/broken_device,
|
||||
prob(4);/obj/item/clothing/head/hardhat,
|
||||
prob(4);/obj/item/clothing/mask/breath,
|
||||
@@ -226,14 +226,14 @@
|
||||
prob(3);/obj/item/weapon/material/knuckledusters,
|
||||
prob(3);/obj/item/weapon/reagent_containers/syringe/drugs,
|
||||
prob(2);/obj/item/weapon/handcuffs/fuzzy,
|
||||
prob(2);/obj/item/weapon/legcuffs,
|
||||
// prob(2);/obj/item/weapon/legcuffs,
|
||||
prob(2);/obj/item/weapon/storage/box/syndie_kit/spy,
|
||||
prob(2);/obj/item/weapon/grenade/anti_photon,
|
||||
prob(1);/obj/item/clothing/suit/storage/vest/heavy/merc,
|
||||
prob(1);/obj/item/device/nif/bad,
|
||||
prob(1);/obj/item/device/radio_jammer,
|
||||
prob(1);/obj/item/device/sleevemate,
|
||||
prob(1);/obj/item/device/bodysnatcher,
|
||||
prob(1);/obj/item/device/bodysnatcher,
|
||||
prob(1);/obj/item/weapon/beartrap,
|
||||
prob(1);/obj/item/weapon/cell/hyper/empty,
|
||||
prob(1);/obj/item/weapon/disk/nifsoft/compliance,
|
||||
|
||||
@@ -33,3 +33,8 @@
|
||||
path = /obj/item/clothing/mask/gas/swat/vox
|
||||
sort_category = "Xenowear"
|
||||
whitelisted = "Vox"
|
||||
|
||||
/datum/gear/uniform/loincloth
|
||||
display_name = "loincloth"
|
||||
path = /obj/item/clothing/suit/storage/fluff/loincloth
|
||||
sort_category = "Xenowear"
|
||||
@@ -462,6 +462,13 @@
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/shoes/proc/handle_movement(var/turf/walking, var/running)
|
||||
if(prob(1) && !recent_squish) //VOREStation edit begin
|
||||
recent_squish = 1
|
||||
spawn(100)
|
||||
recent_squish = 0
|
||||
for(var/mob/living/M in contents)
|
||||
var/emote = pick(inside_emotes)
|
||||
M << emote //VOREStation edit end
|
||||
return
|
||||
|
||||
/obj/item/clothing/shoes/update_clothing_icon()
|
||||
|
||||
@@ -1,3 +1,31 @@
|
||||
/obj/item/clothing
|
||||
var/recent_struggle = 0
|
||||
|
||||
/obj/item/clothing/shoes
|
||||
var/list/inside_emotes = list()
|
||||
var/recent_squish = 0
|
||||
|
||||
/obj/item/clothing/shoes/New()
|
||||
inside_emotes = list(
|
||||
"<font color='red'>You feel weightless for a moment as \the [name] moves upwards.</font>",
|
||||
"<font color='red'>\The [name] are a ride you've got no choice but to participate in as the wearer moves.</font>",
|
||||
"<font color='red'>The wearer of \the [name] moves, pressing down on you.</font>",
|
||||
"<font color='red'>More motion while \the [name] move, feet pressing down against you.</font>"
|
||||
)
|
||||
|
||||
..()
|
||||
/* //Must be handled in clothing.dm
|
||||
/obj/item/clothing/shoes/proc/handle_movement(var/turf/walking, var/running)
|
||||
if(prob(1) && !recent_squish)
|
||||
recent_squish = 1
|
||||
spawn(100)
|
||||
recent_squish = 0
|
||||
for(var/mob/living/M in contents)
|
||||
var/emote = pick(inside_emotes)
|
||||
M << emote
|
||||
return
|
||||
*/
|
||||
|
||||
//This is a crazy 'sideways' override.
|
||||
/obj/item/clothing/shoes/attackby(var/obj/item/I, var/mob/user)
|
||||
if(istype(I,/obj/item/weapon/holder/micro))
|
||||
@@ -23,6 +51,28 @@
|
||||
|
||||
..()
|
||||
|
||||
/obj/item/clothing/relaymove(var/mob/living/user,var/direction)
|
||||
|
||||
if(recent_struggle)
|
||||
return
|
||||
|
||||
recent_struggle = 1
|
||||
|
||||
spawn(100)
|
||||
recent_struggle = 0
|
||||
|
||||
if(ishuman(src.loc))
|
||||
var/mob/living/carbon/human/H = src.loc
|
||||
if(H.shoes == src)
|
||||
H << "<font color='red'>[user]'s tiny body presses against you in \the [src], squirming!</font>"
|
||||
user << "<font color='red'>Your body presses out against [H]'s form! Well, what little you can get to!</font>"
|
||||
else
|
||||
H << "<font color='red'>[user]'s form shifts around in the \the [src], squirming!</font>"
|
||||
user << "<font color='red'>You move around inside the [src], to no avail.</font>"
|
||||
else
|
||||
src.visible_message("<font color='red'>\The [src] moves a little!</font>")
|
||||
user << "<font color='red'>You throw yourself against the inside of \the [src]!</font>"
|
||||
|
||||
//Mask
|
||||
/obj/item/clothing/mask
|
||||
name = "mask"
|
||||
|
||||
@@ -56,3 +56,6 @@
|
||||
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/clothing/glasses/sunglasses/sechud/tactical
|
||||
item_flags = AIRTIGHT
|
||||
@@ -74,6 +74,8 @@
|
||||
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Solar Storm", /datum/event/solar_storm, 30, list(ASSIGNMENT_ENGINEER = 40, ASSIGNMENT_SECURITY = 30), 1),
|
||||
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Virology Breach", /datum/event/prison_break/virology, 0, list(ASSIGNMENT_MEDICAL = 100), 1),
|
||||
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Xenobiology Breach", /datum/event/prison_break/xenobiology, 0, list(ASSIGNMENT_SCIENCE = 100), 1),
|
||||
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Grub Infestation", /datum/event/grub_infestation, 75, list(ASSIGNMENT_SECURITY = 50, ASSIGNMENT_ENGINEER = 50), 1),
|
||||
//Evil grubs that drain station power slightly
|
||||
)
|
||||
add_disabled_events(list(
|
||||
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Appendicitis", /datum/event/spontaneous_appendicitis, 0, list(ASSIGNMENT_MEDICAL = 30), 1),
|
||||
|
||||
26
code/modules/events/grubinfestation_vr.dm
Normal file
@@ -0,0 +1,26 @@
|
||||
/datum/event/grub_infestation
|
||||
announceWhen = 90
|
||||
var/spawncount = 1
|
||||
|
||||
|
||||
/datum/event/grub_infestation/setup()
|
||||
announceWhen = rand(announceWhen, announceWhen + 60)
|
||||
spawncount = rand(4 * severity, 6 * severity) //grub larva only have a 50% chance to grow big and strong
|
||||
sent_spiders_to_station = 0
|
||||
|
||||
/datum/event/grub_infestation/announce()
|
||||
command_announcement.Announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", new_sound = 'sound/AI/aliens.ogg')
|
||||
|
||||
|
||||
/datum/event/grub_infestation/start()
|
||||
var/list/vents = list()
|
||||
for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in world)
|
||||
if(!temp_vent.welded && temp_vent.network && temp_vent.loc.z in using_map.station_levels)
|
||||
if(temp_vent.network.normal_members.len > 50)
|
||||
vents += temp_vent
|
||||
|
||||
while((spawncount >= 1) && vents.len)
|
||||
var/obj/vent = pick(vents)
|
||||
new /obj/effect/spider/spiderling/grub(vent.loc)
|
||||
vents -= vent
|
||||
spawncount--
|
||||
@@ -113,4 +113,26 @@
|
||||
items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/egg/roiz
|
||||
)
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/boiledegg/roiz
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/boiledegg/roiz
|
||||
|
||||
/datum/recipe/pillbugball
|
||||
reagents = list("carbon" = 5)
|
||||
items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat
|
||||
)
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/bugball
|
||||
|
||||
/datum/recipe/mammi
|
||||
fruit = list("orange" = 1)
|
||||
reagents = list("water" = 10, "flour" = 10, "milk" = 5, "sodiumchloride" = 1)
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/mammi
|
||||
|
||||
/datum/recipe/makaroni
|
||||
reagents = list("flour" = 15, "milk" = 5)
|
||||
items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/egg,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge
|
||||
)
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/makaroni
|
||||
|
||||
@@ -312,6 +312,7 @@
|
||||
msg += attempt_vr(src,"examine_bellies",args) //VOREStation Code
|
||||
msg += attempt_vr(src,"examine_pickup_size",args) //VOREStation Code
|
||||
msg += attempt_vr(src,"examine_step_size",args) //VOREStation Code
|
||||
msg += attempt_vr(src,"nif_examine",args) //VOREStation Code
|
||||
|
||||
if(mSmallsize in mutations)
|
||||
msg += "[T.He] [T.is] small halfling!\n"
|
||||
|
||||
@@ -152,4 +152,12 @@
|
||||
var/message = ""
|
||||
if((H.get_effective_size() - src.get_effective_size()) >= 0.75)
|
||||
message = "<font color='red'>They are small enough that you could easily trample them!</font>\n"
|
||||
return message
|
||||
return message
|
||||
|
||||
/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?
|
||||
return "" //If so, no message.
|
||||
else
|
||||
message += "[H.nif_examine]\n"
|
||||
return message
|
||||
@@ -1,7 +1,7 @@
|
||||
/datum/species/shapeshifter/promethean
|
||||
min_age = 18
|
||||
max_age = 80
|
||||
valid_transform_species = list("Human", "Unathi", "Tajara", "Skrell", "Diona", "Teshari", "Monkey","Sergal","Akula","Nevrean","Highlander Zorren","Flatland Zorren", "Vulpkanin", "Vasilissan", "Neaera", "Stok", "Farwa", "Sobaka", "Wolpin", "Saru", "Sparra")
|
||||
valid_transform_species = list("Human", "Unathi", "Tajara", "Skrell", "Diona", "Teshari", "Monkey","Sergal","Akula","Nevrean","Highlander Zorren","Flatland Zorren", "Vulpkanin", "Vasilissan", "Rapala", "Neaera", "Stok", "Farwa", "Sobaka", "Wolpin", "Saru", "Sparra")
|
||||
heal_rate = 0.2 //They heal .2, along with the natural .2 heal per tick when below the organ natural heal damage threshhold.
|
||||
siemens_coefficient = 1 //Prevents them from being immune to tasers and stun weapons.
|
||||
death_message = "goes limp, their body becoming softer..."
|
||||
|
||||
@@ -331,3 +331,40 @@
|
||||
gluttonous = 0
|
||||
spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED
|
||||
min_age = 18
|
||||
|
||||
datum/species/harpy
|
||||
name = "Rapala"
|
||||
name_plural = "Rapalans"
|
||||
icobase = 'icons/mob/human_races/r_harpy_vr.dmi'
|
||||
deform = 'icons/mob/human_races/r_def_harpy_vr.dmi'
|
||||
tail = "tail"
|
||||
icobase_tail = 1
|
||||
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/punch, /datum/unarmed_attack/bite)
|
||||
num_alternate_languages = 3
|
||||
secondary_langs = list(LANGUAGE_BIRDSONG)
|
||||
name_language = null
|
||||
color_mult = 1
|
||||
|
||||
min_age = 18
|
||||
max_age = 80
|
||||
|
||||
blurb = "An Avian species, coming from a distant planet, the Rapalas are the very proud race.\
|
||||
Sol researchers have commented on them having a very close resemblance to the mythical race called 'Harpies',\
|
||||
who are known for having massive winged arms and talons as feet. They've been clocked at speeds of over 35 miler per hour chasing the planet's many fish-like fauna.\
|
||||
The Rapalan's home-world 'Verita' is a strangely habitable gas giant, while no physical earth exists, there are fertile floating islands orbiting around the planet from past asteroid activity."
|
||||
|
||||
//primitive_form = "Saru"
|
||||
|
||||
spawn_flags = SPECIES_CAN_JOIN
|
||||
appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR
|
||||
|
||||
//flesh_color = "#AFA59E"
|
||||
//base_color = "#777777"
|
||||
//tail_hair = "feathers"
|
||||
//reagent_tag = IS_SERGAL
|
||||
|
||||
heat_discomfort_strings = list(
|
||||
"Your feathers prickle in the heat.",
|
||||
"You feel uncomfortably warm.",
|
||||
"Your overheated skin itches."
|
||||
)
|
||||
|
||||
@@ -779,6 +779,9 @@ default behaviour is:
|
||||
spawn() C.mob_breakout(src)
|
||||
return TRUE
|
||||
|
||||
if(istype(loc,/obj/item/clothing))
|
||||
spawn() escape_clothes(loc)
|
||||
|
||||
if(attempt_vr(src,"vore_process_resist",args)) return TRUE //VOREStation Code
|
||||
|
||||
/mob/living/proc/escape_inventory(obj/item/weapon/holder/H)
|
||||
|
||||
114
code/modules/mob/living/simple_animal/vore/solargrub.dm
Normal file
@@ -0,0 +1,114 @@
|
||||
/*
|
||||
A work in progress, lore will go here later.
|
||||
List of things solar grubs should be able to do:
|
||||
|
||||
2. have three stages of growth depending on time. (Or energy drained altho that seems like a hard one to code)
|
||||
3. be capable of eating people that get knocked out. (also be able to shock attackers that don’t wear insulated gloves.)
|
||||
5. ((potentially use digested people to reproduce))
|
||||
6. add glow?
|
||||
*/
|
||||
|
||||
#define SINK_POWER 1
|
||||
|
||||
/mob/living/simple_animal/retaliate/solargrub
|
||||
name = "juvenile solargrub"
|
||||
desc = "A young sparkling solargrub"
|
||||
icon = 'icons/mob/vore.dmi' //all of these are placeholders
|
||||
icon_state = "solargrub"
|
||||
icon_living = "solargrub"
|
||||
icon_dead = "solargrub-dead"
|
||||
|
||||
faction = "grubs"
|
||||
maxHealth = 250 //grubs can take a lot of harm
|
||||
health = 250
|
||||
move_to_delay = 5
|
||||
|
||||
melee_damage_lower = 1
|
||||
melee_damage_upper = 5
|
||||
|
||||
speak_chance = 1
|
||||
emote_see = list("squelches", "squishes")
|
||||
|
||||
speed = 2
|
||||
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat
|
||||
|
||||
response_help = "pokes"
|
||||
response_disarm = "pushes"
|
||||
response_harm = "roughly pushes"
|
||||
|
||||
// solar grubs are not affected by atmos
|
||||
min_oxy = 0
|
||||
max_oxy = 0
|
||||
min_tox = 0
|
||||
max_tox = 0
|
||||
min_co2 = 0
|
||||
max_co2 = 0
|
||||
min_n2 = 0
|
||||
max_n2 = 0
|
||||
|
||||
resistances = list(
|
||||
HALLOSS = 0,
|
||||
BRUTE = 1,
|
||||
BURN = 0.1,
|
||||
TOX = 0,
|
||||
OXY = 0,
|
||||
CLONE = 0
|
||||
)
|
||||
|
||||
var/poison_per_bite = 5 //grubs cause a shock when they bite someone
|
||||
var/poison_type = "shockchem"
|
||||
var/poison_chance = 100
|
||||
var/datum/powernet/PN // Our powernet
|
||||
var/obj/structure/cable/attached // the attached cable
|
||||
|
||||
/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/Life()
|
||||
. = ..()
|
||||
if(!. || ai_inactive) return
|
||||
|
||||
if(stance == STANCE_IDLE)
|
||||
//first, check for potential cables nearby to powersink
|
||||
var/turf/S = loc
|
||||
attached = locate() in S
|
||||
if(attached)
|
||||
if(prob(2))
|
||||
src.visible_message("<span class='notice'>\The [src] begins to sink power from the net.</span>")
|
||||
anchored = 1
|
||||
PN = attached.powernet
|
||||
PN.draw_power(150000)
|
||||
var/apc_drain_rate = 4000 //5000 seems a bit high, knocking it down to 4000
|
||||
for(var/obj/machinery/power/terminal/T in PN.nodes)
|
||||
if(istype(T.master, /obj/machinery/power/apc))
|
||||
var/obj/machinery/power/apc/A = T.master
|
||||
if(A.operating && A.cell)
|
||||
var/cur_charge = A.cell.charge / CELLRATE
|
||||
var/drain_val = min(apc_drain_rate, cur_charge)
|
||||
A.cell.use(drain_val * CELLRATE)
|
||||
else if(!attached && anchored)
|
||||
anchored = 0
|
||||
PN = null
|
||||
|
||||
/mob/living/simple_animal/retaliate/solargrub //active noms
|
||||
vore_active = 1
|
||||
vore_capacity = 1
|
||||
vore_pounce_chance = 0 //grubs only eat incapacitated targets
|
||||
|
||||
/mob/living/simple_animal/retaliate/solargrub/PunchTarget()
|
||||
. = ..()
|
||||
if(isliving(.))
|
||||
var/mob/living/L = .
|
||||
if(L.reagents)
|
||||
L.reagents.add_reagent(poison_type, poison_per_bite)
|
||||
if(prob(poison_chance))
|
||||
L << "<span class='warning'>You feel a shock rushing through your veins.</span>"
|
||||
L.reagents.add_reagent(poison_type, poison_per_bite)
|
||||
|
||||
/mob/living/simple_animal/retaliate/solargrub/death()
|
||||
src.anchored = 0
|
||||
..()
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
/datum/sprite_accessory/hair
|
||||
|
||||
species_allowed = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Xenochimera", "Xenomorph Hybrid", "Vasilissan") //This lets all races use the default hairstyles.
|
||||
species_allowed = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Xenochimera", "Xenomorph Hybrid", "Vasilissan", "Rapala") //This lets all races use the default hairstyles.
|
||||
|
||||
sergal_plain
|
||||
name = "Sergal Plain"
|
||||
@@ -41,13 +41,13 @@
|
||||
name = "Bald"
|
||||
icon_state = "bald"
|
||||
gender = MALE
|
||||
species_allowed = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Xenochimera", "Xenomorph Hybrid", "Vasilissan", "Xenochimera") //Lets all the races be bald if they want.
|
||||
species_allowed = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Xenochimera", "Xenomorph Hybrid", "Vasilissan", "Xenochimera", "Rapala") //Lets all the races be bald if they want.
|
||||
|
||||
ponytail6_fixed //Eggnerd's done with waiting for upstream fixes lmao.
|
||||
name = "Ponytail 6 but fixed"
|
||||
icon = 'icons/mob/human_face_vr.dmi'
|
||||
icon_state = "hair_ponytail6"
|
||||
species_allowed = list("Human","Skrell","Unathi","Tajara", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Xenochimera", "Xenomorph Hybrid")
|
||||
species_allowed = list("Human","Skrell","Unathi","Tajara", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Xenochimera", "Xenomorph Hybrid", "Rapala")
|
||||
|
||||
una_hood
|
||||
name = "Cobra Hood"
|
||||
@@ -333,7 +333,7 @@
|
||||
gender = NEUTER
|
||||
|
||||
/datum/sprite_accessory/facial_hair
|
||||
species_allowed = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Xenochimera", "Xenomorph Hybrid", "Vasilissan") //This lets all races use the facial hair styles.
|
||||
species_allowed = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Xenochimera", "Xenomorph Hybrid", "Vasilissan", "Rapala") //This lets all races use the facial hair styles.
|
||||
|
||||
|
||||
vulp_none
|
||||
@@ -675,6 +675,18 @@
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND)
|
||||
|
||||
harpy_feathers
|
||||
name = "Rapala leg Feather"
|
||||
icon_state = "harpy-feathers"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG)
|
||||
|
||||
harpy_legs
|
||||
name = "Rapala leg coloring"
|
||||
icon_state = "harpy-leg"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG)
|
||||
|
||||
alurane
|
||||
name = "Alurane Body"
|
||||
icon_state = "alurane"
|
||||
|
||||
@@ -204,7 +204,8 @@
|
||||
list_pos = NIF_THERMALS
|
||||
cost = 1000
|
||||
a_drain = 0.1
|
||||
access = access_captain
|
||||
illegal = TRUE
|
||||
access = 999
|
||||
tick_flags = NIF_ACTIVETICK
|
||||
|
||||
activate()
|
||||
|
||||
@@ -55,12 +55,26 @@
|
||||
/obj/item/weapon/disk/limb/talon
|
||||
company = "Talon LLC"
|
||||
|
||||
/datum/robolimb/zenghu_taj
|
||||
company = "Zeng-Hu - Tajaran"
|
||||
desc = "This limb has a rubbery fleshtone covering with visible seams."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/zenghu/zenghu_taj.dmi'
|
||||
unavailable_to_build = 1
|
||||
parts = list(BP_HEAD)
|
||||
/datum/robolimb/zenghu_taj //This wasn't indented. At all. It's a miracle this didn't break literally everything.
|
||||
company = "Zeng-Hu - Tajaran"
|
||||
desc = "This limb has a rubbery fleshtone covering with visible seams."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/zenghu/zenghu_taj.dmi'
|
||||
unavailable_to_build = 1
|
||||
parts = list(BP_HEAD)
|
||||
|
||||
/datum/robolimb/eggnerdltdred
|
||||
company = "Eggnerd Prototyping Ltd. (Red)"
|
||||
desc = "A slightly more refined limb variant from Eggnerd Prototyping. Its got red plating instead of orange."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/rahboopred/rahboopred.dmi'
|
||||
blood_color = "#5e280d"
|
||||
includes_tail = 1
|
||||
unavailable_to_build = 1
|
||||
|
||||
/obj/item/weapon/disk/limb/eggnerdltdred
|
||||
company = "Eggnerd Prototyping Ltd. (Red)"
|
||||
icon = 'icons/obj/items_vr.dmi'
|
||||
icon_state = "verkdisk"
|
||||
|
||||
|
||||
//Darkside Incorperated synthetic augmentation list! Many current most used fuzzy and notsofuzzy races made into synths here.
|
||||
|
||||
@@ -153,4 +167,4 @@
|
||||
suggested_species = "Vasilissan"
|
||||
|
||||
/obj/item/weapon/disk/limb/dsi_spider
|
||||
company = "DSI - Vasilissan"
|
||||
company = "DSI - Vasilissan"
|
||||
|
||||
@@ -29,3 +29,19 @@
|
||||
|
||||
/datum/reagent/numbing_enzyme/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
M.add_chemical_effect(CE_PAINKILLER, 200)
|
||||
|
||||
/datum/reagent/vermicetol
|
||||
name = "Vermicetol"
|
||||
id = "vermicetol"
|
||||
description = "A potent chemical that treats burn damage at an exceptional rate and lasts a while."
|
||||
taste_description = "sparkles"
|
||||
reagent_state = SOLID
|
||||
color = "#964e06"
|
||||
overdose = 10
|
||||
scannable = 1
|
||||
metabolism = 0.02
|
||||
mrate_static = TRUE
|
||||
|
||||
/datum/reagent/vermicetol/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(alien != IS_DIONA)
|
||||
M.heal_organ_damage(0, 21 * removed) //more potent than keloderm
|
||||
|
||||
@@ -124,3 +124,17 @@
|
||||
P.absorbed = 0
|
||||
M.visible_message("<font color='green'><b>Something spills into [M]'s [lowertext(B.name)]!</b></font>")
|
||||
return
|
||||
|
||||
//Special toxins for solargrubs
|
||||
|
||||
/datum/reagent/grubshock
|
||||
name = "200 V" //in other words a painful shock
|
||||
id = "shockchem"
|
||||
description = "A liquid that quickly dissapates to deliver a painful shock."
|
||||
reagent_state = LIQUID
|
||||
color = "#E4EC2F"
|
||||
metabolism = 2.50
|
||||
var/power = 11
|
||||
|
||||
/datum/reagent/grubshock/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
M.take_organ_damage(0, removed * power * 0.2)
|
||||
|
||||
@@ -73,6 +73,23 @@
|
||||
required_reagents = list("milk" = 2, "hydrogen" = 1, "potassium" = 1)
|
||||
result_amount = 3
|
||||
|
||||
/datum/chemical_reaction/vermicetol
|
||||
name = "Vermicetol"
|
||||
id = "vermicetol"
|
||||
result = "vermicetol"
|
||||
required_reagents = list("kelotane" = 1, "dermaline" = 1, "shockchem" = 1, "phoron" = 0.1)
|
||||
catalysts = list("phoron" = 5)
|
||||
result_amount = 3
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
/// Special drinks
|
||||
/datum/chemical_reaction/drinks/grubshake
|
||||
name = "Grub protein drink"
|
||||
id = "grubshake"
|
||||
result = "grubshake"
|
||||
required_reagents = list("shockchem" = 5, "water" = 25)
|
||||
result_amount = 30
|
||||
|
||||
///////////////////////////////
|
||||
//SLIME CORES BELOW HERE///////
|
||||
///////////////////////////////
|
||||
|
||||
@@ -190,6 +190,91 @@
|
||||
reagents.add_reagent("protein", 4)
|
||||
bitesize = 2
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat
|
||||
name = "grubmeat"
|
||||
desc = "A slab of grub meat, it gives a gentle shock if you touch it"
|
||||
icon = 'icons/obj/food_vr.dmi'
|
||||
icon_state = "grubmeat"
|
||||
center_of_mass = list("x"=16, "y"=10)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat/New()
|
||||
..()
|
||||
reagents.add_reagent("protein", 1)
|
||||
reagents.add_reagent("shockchem", 6)
|
||||
bitesize = 6
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/bugball
|
||||
name = "bugball"
|
||||
desc = "A hard chitin, dont chip a tooth!"
|
||||
icon = 'icons/obj/food_vr.dmi'
|
||||
icon_state = "pillbugball"
|
||||
trash = /obj/item/weapon/reagent_containers/food/snacks/pillbug
|
||||
nutriment_amt = 1
|
||||
nutriment_desc = list("crunchy shell bits" = 5)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grub/bugball/New()
|
||||
..()
|
||||
reagents.add_reagent("protein", 1)
|
||||
reagents.add_reagent("carbon", 5)
|
||||
bitesize = 7
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/pillbug
|
||||
name = "pillbug"
|
||||
desc = "A delicacy discovered and popularized by a famous restaurant called Mudca's Meat Hut."
|
||||
icon = 'icons/obj/food_vr.dmi'
|
||||
icon_state = "pillbug"
|
||||
trash = /obj/item/weapon/reagent_containers/food/snacks/pillbugempty
|
||||
nutriment_amt = 3
|
||||
nutriment_desc = list("sparkles" = 5, "ancient inca culture" =3)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/pillbug/New()
|
||||
..()
|
||||
reagents.add_reagent("protein", 3)
|
||||
reagents.add_reagent("shockchem", 6)
|
||||
bitesize = 6
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/pillbugempty
|
||||
name = "pillbug shell"
|
||||
desc = "Waste not, want not."
|
||||
icon = 'icons/obj/food_vr.dmi'
|
||||
icon_state = "pillbugempty"
|
||||
nutriment_amt = 1
|
||||
nutriment_desc = list("crunchy shell bits" = 5)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/pillbug/New()
|
||||
..()
|
||||
reagents.add_reagent("protein", 1)
|
||||
reagents.add_reagent("carbon", 5)
|
||||
bitesize = 3
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/mammi
|
||||
name = "mämmi"
|
||||
desc = "Traditional finnish desert, some like it, others don't. It's drifting in some milk, add sugar!"
|
||||
icon = 'icons/obj/food_vr.dmi'
|
||||
icon_state = "mammi"
|
||||
trash = /obj/item/trash/plate
|
||||
nutriment_amt = 3
|
||||
nutriment_desc = list("brothy sweet goodness" = 5)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/mammi/New()
|
||||
..()
|
||||
bitesize = 3
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/makaroni
|
||||
name = "makaronilaatikko"
|
||||
desc = "A special kind of macaroni, it's a big dish, and this one has special meat in it."
|
||||
icon = 'icons/obj/food_vr.dmi'
|
||||
icon_state = "makaroni"
|
||||
trash = /obj/item/trash/plate
|
||||
nutriment_amt = 15
|
||||
nutriment_desc = list("Cheese" = 5, "eggs" = 3, "pasta" = 4, "sparkles" = 3)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/makaroni/New()
|
||||
..()
|
||||
reagents.add_reagent("protein", 1)
|
||||
reagents.add_reagent("shockchem", 6)
|
||||
bitesize = 7
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/monkeycube/sobakacube
|
||||
name = "sobaka cube"
|
||||
monkey_type = "Sobaka"
|
||||
|
||||
@@ -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 <EFBFBD>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"
|
||||
@@ -989,7 +989,7 @@ obj/item/weapon/material/hatchet/tacknife/combatknife/fluff/katarina/handle_shie
|
||||
..()
|
||||
|
||||
//verkister: Cameron Eggbert - Science goggles that ACTUALLY do nothing.
|
||||
/obj/item/clothing/glasses/science_proper
|
||||
/obj/item/clothing/glasses/fluff/science_proper
|
||||
name = "Aesthetic Science Goggles"
|
||||
desc = "The goggles really do nothing this time!"
|
||||
icon_state = "purple"
|
||||
@@ -997,12 +997,13 @@ obj/item/weapon/material/hatchet/tacknife/combatknife/fluff/katarina/handle_shie
|
||||
item_flags = AIRTIGHT
|
||||
|
||||
//verkister: Opie Eggbert - Spiffy fluff goggles
|
||||
/obj/item/clothing/glasses/spiffygogs
|
||||
/obj/item/clothing/glasses/fluff/spiffygogs
|
||||
name = "Chad Goggles"
|
||||
desc = "You can almost feel the raw power radiating off these strange specs."
|
||||
icon = 'icons/vore/custom_items_vr.dmi'
|
||||
icon_override = 'icons/vore/custom_clothes_vr.dmi'
|
||||
icon_state = "spiffygogs"
|
||||
slot_flags = SLOT_EYES | SLOT_EARS
|
||||
item_state_slots = list(slot_r_hand_str = "glasses", slot_l_hand_str = "glasses")
|
||||
toggleable = 1
|
||||
off_state = "spiffygogsup"
|
||||
@@ -1396,4 +1397,4 @@ obj/item/weapon/material/hatchet/tacknife/combatknife/fluff/katarina/handle_shie
|
||||
H.monkeyize()
|
||||
qdel(src) //One time use.
|
||||
else //If not, do nothing.
|
||||
to_chat(user,"<span class='warning'>You are unable to inject other people.</span>")
|
||||
to_chat(user,"<span class='warning'>You are unable to inject other people.</span>")
|
||||
|
||||
@@ -614,7 +614,7 @@ item_path: /obj/item/clothing/head/fluff/runac
|
||||
{
|
||||
ckey: verkister
|
||||
character_name: Cameron Eggbert
|
||||
item_path: /obj/item/clothing/glasses/science_proper
|
||||
item_path: /obj/item/clothing/glasses/fluff/science_proper
|
||||
}
|
||||
{
|
||||
ckey: verkister
|
||||
@@ -624,7 +624,7 @@ item_path: /obj/item/weapon/disk/limb/eggnerdltd
|
||||
{
|
||||
ckey: verkister
|
||||
character_name: Opie Eggbert
|
||||
item_path: /obj/item/clothing/glasses/spiffygogs
|
||||
item_path: /obj/item/clothing/glasses/fluff/spiffygogs
|
||||
}
|
||||
{
|
||||
ckey: virgo113
|
||||
|
||||
BIN
icons/mob/human_races/cyberlimbs/rahboopred/rahboopred.dmi
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 43 KiB |
BIN
icons/mob/human_races/r_def_harpy_vr.dmi
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
icons/mob/human_races/r_harpy_vr.dmi
Normal file
|
After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 165 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 171 KiB After Width: | Height: | Size: 173 KiB |
@@ -5547,7 +5547,6 @@
|
||||
"ccI" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 6},/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 9},/turf/simulated/floor/tiled/steel_dirty/virgo3b,/area/engineering/atmos/intake)
|
||||
"ccJ" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/machinery/alarm{breach_detection = 0; dir = 8; pixel_x = 25; pixel_y = 0; report_danger_level = 0},/turf/simulated/floor/tiled/steel_dirty/virgo3b,/area/engineering/atmos/intake)
|
||||
"ccK" = (/obj/effect/floor_decal/techfloor{dir = 8},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/visible/black{dir = 5},/turf/simulated/floor/tiled/techfloor,/area/engineering/atmos/processing)
|
||||
"ccL" = (/obj/machinery/power/thermoregulator,/turf/simulated/floor,/area/engineering/atmos/storage)
|
||||
|
||||
(1,1,1) = {"
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaacaacaacaacaacaacaacaacaacaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
@@ -5744,7 +5743,7 @@ aKsaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaK
|
||||
aKsaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaGvaUDaUraUrbeIaWRaWRaWRaWRaWRaGvbeJbeKaGvaKuaKuaKuaKuaWwbeLbeLbeMbeNbeMbeLbeLbeLaIhbePbbVbbVbeQbeRbeSbeRbeQbeTbeUbeVbeWbeXbeYbcObeZbfabfbbfcbfabfdbcMahsahsahsahsbaabaabaabaabbzbfebbzbaabffbfgbfhbbzbcWbbzbbzbcqbaaaKuaKuaKuaKuaKuaKuaKuaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKs
|
||||
aKsaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaGvaUDaUraUrbfiaGvbfjbfkbflbfmbfnbfobfpaGvaKuaKuaKuaKuaKubeLbfqbfrbfsbftbfubfvbeLaIibfxbbVbfybeQbfzbfAbfBbeQbeQbeQbfCbfDbetbfEbcMbfFbfGbfHbfIbfJbfKbcMbfLbfMbfNbfNbfNbfObfNbeDbeDbeDbfPbaabfQbfRbfSbbzbfTbfUbfVbfWbaaaKuaKuaKuaKuaKuaKuaKuaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKs
|
||||
aKsaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaGvaUDaVtaWpaUraGvbfXaGvaGvaGvaGvbeJbfYaGvaKuaKuaKuaKuaKubeLbfZbgabgbbgcbgdbgebeLaIjbggbbVbghbeQbgibgjbgkbglbgmbeQbgnbgobetbgpbcMbcMbcObcObcObcObcMbcMaWzaWzaWzaWzaWzaWzbaabaabaabaabaabaabaabaabgrbgsbRNbgubgvbaabaaaKuaKuaKuaKuaKuaKuaKuaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKs
|
||||
aKsaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaGvbgwaUraUrbSEaGvaGvaGvaKuaKuaGvbgybgzaGvaKuaKuaKuaKuaKubeLbgAbgBbgCcbcbgEbgFbeLaIsbgHbbVbgIbeQbgJbgKbgLbgMbgNbgObgPbgQbgRbgSbgTbgUbgWbgWbgWbgWbgWbgYaWzbgZbhabhbccLaWzaKuaKuaKuaKuaKuaKuaKubaabhdbacbaabaabaabaaaKuaKuaKuaKuaKuaKuaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKs
|
||||
aKsaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaGvbgwaUraUrbSEaGvaGvaGvaKuaKuaGvbgybgzaGvaKuaKuaKuaKuaKubeLbgAbgBbgCcbcbgEbgFbeLaIsbgHbbVbgIbeQbgJbgKbgLbgMbgNbgObgPbgQbgRbgSbgTbgUbgWbgWbgWbgWbgWbgYaWzbgZbhabhbbhbaWzaKuaKuaKuaKuaKuaKuaKubaabhdbacbaabaabaabaaaKuaKuaKuaKuaKuaKuaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKs
|
||||
aKsaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaGvbhebhfbhgbhgaGvaKuaKuaKuaKuaGvbeJbfYaGvaKuaKuaKuaKuaKubeLbhhbhibhjbhkbhlbhmbeLaItbhobbVbhpbeQbhqbhrbhsbhtbhubeQbhvbhwbhxbhybhzbhzbhzbhzbhAbhAbhBbhCbhDbhEbhFbhGbhHaWzaKuaKuaKuaKuaKuaKuaKubaabhIbbzbaaaKuaKuaKuaKuaKuaKuaKuaKuaKuaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKs
|
||||
aKsaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaGvaGvaGvaGvaGvaGvaKuaKuaKuaKuaGvbeJbfYbhJbhJbhJbhJbhJbhJbeLbeLbeLbeLbeLbeLbeLbeLaIvbhLbhMbhMbhMbhMbhMbhMbhMbhMbhMbhMbhNbhObhPbhMbhMbhMbhMbhMbhMbhMbbVaWzbhQbhFbhGbhGaWzaKuaKuaKuaKuaKuaKuaKubaabhIbaabaaaKuaKuaKuaKuaKuaKuaKuaKuaKuaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKs
|
||||
aKsaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaKuaGvbeJbfYbhJbhRbhSbhTbhUbhVbhJaKubhMbhWbhXbhYbhZbiaaIwaIxaIAbiqaIyaIzaINaITaILaIMaIWaIYaIUaIVaJebiqbirbisbitbiubivbhMaKuaWzbiwbhFbhFbiyaWzaKuaKuaKuaKuaKuaKuaKubaabhIbaabizaKuaKuaKuaKuaKuaKuaKuaKuaKuaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKtaKs
|
||||
|
||||
@@ -557,10 +557,8 @@
|
||||
#include "code\game\jobs\whitelist_vr.dm"
|
||||
#include "code\game\jobs\job\assistant.dm"
|
||||
#include "code\game\jobs\job\captain.dm"
|
||||
#include "code\game\jobs\job\captain_vr.dm"
|
||||
#include "code\game\jobs\job\civilian.dm"
|
||||
#include "code\game\jobs\job\civilian_chaplain.dm"
|
||||
#include "code\game\jobs\job\civilian_vr.dm"
|
||||
#include "code\game\jobs\job\engineering.dm"
|
||||
#include "code\game\jobs\job\job.dm"
|
||||
#include "code\game\jobs\job\job_vr.dm"
|
||||
@@ -569,6 +567,7 @@
|
||||
#include "code\game\jobs\job\security.dm"
|
||||
#include "code\game\jobs\job\silicon.dm"
|
||||
#include "code\game\jobs\job\special.dm"
|
||||
#include "code\game\jobs\job\z_all_jobs_vr.dm"
|
||||
#include "code\game\machinery\adv_med.dm"
|
||||
#include "code\game\machinery\adv_med_vr.dm"
|
||||
#include "code\game\machinery\ai_slipper.dm"
|
||||
@@ -803,6 +802,7 @@
|
||||
#include "code\game\objects\effects\misc.dm"
|
||||
#include "code\game\objects\effects\overlays.dm"
|
||||
#include "code\game\objects\effects\portals.dm"
|
||||
#include "code\game\objects\effects\spider_vr.dm"
|
||||
#include "code\game\objects\effects\spiders.dm"
|
||||
#include "code\game\objects\effects\step_triggers.dm"
|
||||
#include "code\game\objects\effects\zone_divider.dm"
|
||||
@@ -1490,6 +1490,7 @@
|
||||
#include "code\modules\events\event_manager.dm"
|
||||
#include "code\modules\events\gravity.dm"
|
||||
#include "code\modules\events\grid_check.dm"
|
||||
#include "code\modules\events\grubinfestation_vr.dm"
|
||||
#include "code\modules\events\ian_storm_vr.dm"
|
||||
#include "code\modules\events\infestation.dm"
|
||||
#include "code\modules\events\ion_storm.dm"
|
||||
@@ -1952,6 +1953,7 @@
|
||||
#include "code\modules\mob\living\simple_animal\animals\pike_vr.dm"
|
||||
#include "code\modules\mob\living\simple_animal\animals\slime.dm"
|
||||
#include "code\modules\mob\living\simple_animal\animals\snake_vr.dm"
|
||||
#include "code\modules\mob\living\simple_animal\vore\solargrub.dm"
|
||||
#include "code\modules\mob\living\simple_animal\animals\spiderbot.dm"
|
||||
#include "code\modules\mob\living\simple_animal\animals\tomato.dm"
|
||||
#include "code\modules\mob\living\simple_animal\animals\tree.dm"
|
||||
|
||||