Merge branch 'master' into polaris-sync-2018-02-07

This commit is contained in:
Aronai Sieyes
2018-02-07 23:06:03 -05:00
committed by Arokha Sieyes
43 changed files with 43485 additions and 191 deletions
@@ -77,7 +77,7 @@
if(do_after(user, 30, trashman) && !patient && !trashman.buckled && length(contents) < max_item_count)
trashman.forceMove(src)
trashman.reset_view(src)
processing_objects.Add(src)
processing_objects |= src
user.visible_message("<span class='warning'>[hound.name]'s internal analyzer groans lightly as [trashman] slips inside.</span>", "<span class='notice'>Your internal analyzer groans lightly as [trashman] slips inside.</span>")
playsound(hound, 'sound/vore/gulp.ogg', 80, 1)
update_patient()
@@ -127,7 +127,7 @@
if(do_after(user, 30, trashman) && !patient && !trashman.buckled && length(contents) < max_item_count)
trashman.forceMove(src)
trashman.reset_view(src)
processing_objects.Add(src)
processing_objects |= src
user.visible_message("<span class='warning'>[hound.name]'s garbage processor groans lightly as [trashman] slips inside.</span>", "<span class='notice'>Your garbage compactor groans lightly as [trashman] slips inside.</span>")
playsound(hound, 'sound/vore/gulp.ogg', 80, 1)
update_patient()
@@ -154,7 +154,7 @@
H.forceMove(src)
H.reset_view(src)
update_patient()
processing_objects.Add(src)
processing_objects |= src
user.visible_message("<span class='warning'>[hound.name]'s medical pod lights up as [H.name] slips inside into their [src.name].</span>", "<span class='notice'>Your medical pod lights up as [H] slips into your [src]. Life support functions engaged.</span>")
message_admins("[key_name(hound)] has eaten [key_name(patient)] as a dogborg. ([hound ? "<a href='?_src_=holder;adminplayerobservecoodjump=1;X=[hound.x];Y=[hound.y];Z=[hound.z]'>JMP</a>" : "null"])")
playsound(hound, 'sound/vore/gulp.ogg', 80, 1)
@@ -317,7 +317,7 @@
else
cleaning = 1
drain(startdrain)
processing_objects.Add(src)
processing_objects |= src
update_patient()
sleeperUI(usr)
if(patient)
@@ -37,6 +37,7 @@
cooperative = TRUE
firing_lines = TRUE
investigates = TRUE
run_at_them = FALSE //VOREStation Edit
speak_chance = 1
speak = list(
@@ -86,7 +87,7 @@
/mob/living/simple_animal/hostile/hivebot/range/ion
name = "engineering hivebot"
desc = "A robot. It has a tool which emits focused electromagnetic pulses, which are deadly to other synthetic adverseries."
projectiletype = /obj/item/projectile/ion
projectiletype = /obj/item/projectile/ion/small //VOREStation Edit
projectilesound = 'sound/weapons/Laser.ogg'
icon_living = "engi"
ranged = TRUE
@@ -139,7 +139,7 @@
loot_list = list(/obj/item/weapon/gun/projectile/automatic/c20r = 100)
/mob/living/simple_animal/hostile/syndicate/ranged/space
name = "syndicate sommando"
name = "space mercenary" //VOREStation Edit
icon_state = "syndicaterangedpsace"
icon_living = "syndicaterangedpsace"
@@ -154,6 +154,7 @@
min_n2 = 0
max_n2 = 0
minbodytemp = 0
maxbodytemp = 900 //VOREStation edit - We'll pretend they have good suits
corpse = /obj/effect/landmark/mobcorpse/syndicatecommando
@@ -343,9 +343,22 @@
var/moving_to = 0 // otherwise it always picks 4, fuck if I know. Did I mention fuck BYOND
moving_to = pick(cardinal)
dir = moving_to //How about we turn them the direction they are moving, yay.
Move(get_step(src,moving_to))
var/turf/T = get_step(src,moving_to)
if(avoid_turf(T))
return
Move(T)
lifes_since_move = 0
// Checks to see if mob doesn't like this kind of turf
/mob/living/simple_animal/proc/avoid_turf(var/turf/turf)
if(!turf)
return TRUE //Avoid the nothing, yes
if(istype(turf,/turf/simulated/sky))
return TRUE //Mobs aren't that stupid, probably
return FALSE //Override it on stuff to adjust
// Handles random chatter, called from Life() when stance = STANCE_IDLE
/mob/living/simple_animal/proc/handle_idle_speaking()
if(rand(0,200) < speak_chance)
@@ -198,3 +198,12 @@
update_icon()
stop_automated_movement = 0
..()
// Checks to see if mob doesn't like this kind of turf
/mob/living/simple_animal/avoid_turf(var/turf/turf)
//So we only check if the parent didn't find anything terrible
if((. = ..(turf)))
return .
if(istype(turf,/turf/unsimulated/floor/sky))
return TRUE //Mobs aren't that stupid, probably
@@ -0,0 +1,25 @@
/mob/living/simple_animal/hostile/jelly
name = "jelly blob"
desc = "Some sort of undulating blob of slime!"
icon = 'icons/mob/vore.dmi'
icon_dead = "jelly_dead"
icon_living = "jelly"
icon_state = "jelly"
faction = "virgo2"
maxHealth = 50
health = 50
melee_damage_lower = 5
melee_damage_upper = 15
speak_chance = 2
emote_hear = list("squishes","spluts","splorts","sqrshes","makes slime noises")
emote_see = list("undulates quietly")
// Activate Noms!
/mob/living/simple_animal/hostile/jelly
vore_active = 1
vore_pounce_chance = 0
vore_icons = SA_ICON_LIVING
swallowTime = 2 SECONDS // Hungry little bastards.
@@ -0,0 +1,211 @@
/mob/living/simple_animal/shadekin //Spawn this one only if you're looking for a bad time. Not friendly.
name = "shadekin"
desc = "Some sort of fluffer. Big ears, long tail! "
icon = 'icons/mob/vore_shadekin.dmi'
icon_state = "dark"
icon_living = "dark"
icon_dead = "dead"
faction = "shadekin"
maxHealth = 200
health = 200
move_to_delay = 3
investigates = TRUE
reacts = TRUE
run_at_them = FALSE
speak_chance = 2
cooperative = FALSE
min_oxy = 0
max_oxy = 0
min_tox = 0
max_tox = 0
min_co2 = 0
max_co2 = 0
min_n2 = 0
max_n2 = 0
minbodytemp = 0
maxbodytemp = 900
speak = list("Mar.", "Mar?", "Mar!")
emote_hear = list("chrrrrrs","wurbles", "wrrrrbles")
emote_see = list("tailtwitches","earflicks")
say_maybe_target = list("...mar?")
say_got_target = list("MAR!!!")
melee_damage_lower = 10
melee_damage_upper = 20
response_help = "pets the"
response_disarm = "bops the"
response_harm = "hits the"
attacktext = "mauled"
friendly = list("boops", "pawbs")
reactions = list("Mar?" = "Marrr.", "Mar!" = "Mar???", "Mar." = "Marrr.")
old_x = -16
old_y = 0
pixel_x = -16
pixel_y = 0
var/eye_state = "e_red"
var/eye_desc
vore_active = TRUE
vore_pounce_chance = 25
vore_icons = SA_ICON_LIVING
swallowTime = 2 SECONDS
vore_escape_chance = 25
//None, they stay as their defaults.
vore_digest_chance = 0
vore_absorb_chance = 0
/mob/living/simple_animal/shadekin/initialize()
. = ..()
icon_living = icon_state
if(eye_state)
overlays += image(icon,null,eye_state)
if(eye_desc)
desc += "This one has [eye_desc]!"
/mob/living/simple_animal/shadekin/death(gibbed, deathmessage = "phases out!")
spawn(20)
qdel(src) //Back from whence you came!
. = ..(FALSE, deathmessage)
/mob/living/simple_animal/shadekin/Found(var/atom/A)
if(specific_targets && isliving(A)) //Healing!
var/mob/living/L = A
var/health_percent = (L.health/L.maxHealth)*100
if(health_percent <= 50)
return A
. = ..()
/mob/living/simple_animal/shadekin/Life()
if((. = ..()))
//Drawing energy from bluespace?
if(nutrition != initial(nutrition))
nutrition += nutrition > initial(nutrition) ? -1 : 1
/////////////////////////////////////////////////////////////////
/mob/living/simple_animal/shadekin/red
eye_state = "e_red"
hostile = TRUE
retaliate = TRUE
stop_when_pulled = FALSE
destroy_surroundings = TRUE
eye_desc = "red eyes"
vore_stomach_flavor = "You slip passed pointy triangle teeth and down the slick, \
slippery gullet of the creature. It's warm, and the air is thick. You can hear \
its body squelch and shift around you as you settle into its stomach! Thick digestive \
enzymes cling to you within that dark space, tingling and stinging immediately! The weight of \
the doughy walls press in around you instantly, churning you up as you begin to digest!"
/mob/living/simple_animal/shadekin/red/white
icon_state = "white"
/mob/living/simple_animal/shadekin/red/dark
icon_state = "dark"
/mob/living/simple_animal/shadekin/red/brown
icon_state = "brown"
/////////////////////////////////////////////////////////////////
/mob/living/simple_animal/shadekin/blue
eye_state = "e_blue"
health = 100
maxHealth = 100
hostile = TRUE //Not actually, they eat injured people to heal them. See found()
retaliate = FALSE
stop_when_pulled = TRUE
specific_targets = TRUE //For finding injured people
destroy_surroundings = FALSE
vore_default_mode = DM_HEAL
vore_escape_chance = 75
vore_bump_chance = 20
vore_standing_too = 1
vore_pounce_chance = 80
swallowTime = 4 SECONDS //A little longer to compensate for the above
vore_ignores_undigestable = FALSE
melee_damage_lower = 0
melee_damage_upper = 0
attacktext = "shoved"
eye_desc = "blue eyes"
vore_stomach_flavor = "You slip passed pointy triangle teeth and down the slick, \
slippery gullet of the creature. It's warm, and the air is thick. You can hear its body \
squelch and shift around you as you settle into its stomach! It's oddly calm, and very dark. \
The doughy flesh rolls across your form in gentle waves. The aches and pains across your form slowly begin to \
diminish, your body is healing much faster than normal! Youre also soon soaked in harmless slime."
/mob/living/simple_animal/shadekin/blue/white
icon_state = "white"
/mob/living/simple_animal/shadekin/blue/dark
icon_state = "dark"
/mob/living/simple_animal/shadekin/blue/brown
icon_state = "brown"
/////////////////////////////////////////////////////////////////
/mob/living/simple_animal/shadekin/purple
eye_state = "e_purple"
health = 150
maxHealth = 150
hostile = FALSE
retaliate = TRUE
stop_when_pulled = FALSE
destroy_surroundings = TRUE
vore_default_mode = DM_HOLD
vore_digest_chance = 25
vore_absorb_chance = 25
eye_desc = "purple eyes"
vore_stomach_flavor = "You slip passed pointy triangle teeth and down the slick, slippery gullet of the creature. \
It's warm, and the air is thick. You can hear its body squelch and shift around you as you settle into its stomach! \
Its relatively calm inside the dark organ. Wet and almost molten for how gooey your surroundings feel. \
You can feel the doughy walls cling to you posessively... Its almost like you could sink into them. \
There is also an ominous gurgling from somewhere nearby..."
/mob/living/simple_animal/shadekin/purple/white
icon_state = "white"
/mob/living/simple_animal/shadekin/purple/dark
icon_state = "dark"
/mob/living/simple_animal/shadekin/purple/brown
icon_state = "brown"
/////////////////////////////////////////////////////////////////
/mob/living/simple_animal/shadekin/yellow
eye_state = "e_yellow"
health = 150
maxHealth = 150
hostile = FALSE
retaliate = TRUE
stop_when_pulled = FALSE
destroy_surroundings = TRUE
vore_default_mode = DM_DRAIN
vore_digest_chance = 5
vore_ignores_undigestable = FALSE
eye_desc = "yellow eyes"
vore_stomach_flavor = "You slip passed pointy triangle teeth and down the slick, slippery gullet \
of the creature. It's warm, and the air is thick. You can hear its body squelch and shift around you \
as you settle into its stomach! The doughy walls within cling to you heavily, churning down on you, wearing \
you out!! There doesnt appear to be any actual danger here, harmless slime clings to you, but its getting \
harder and harder to move as those walls press in on you insistently!"
/mob/living/simple_animal/shadekin/yellow/white
icon_state = "white"
/mob/living/simple_animal/shadekin/yellow/dark
icon_state = "dark"
/mob/living/simple_animal/shadekin/yellow/brown
icon_state = "brown"
/////////////////////////////////////////////////////////////////
//Fluffy specific fluffer
/mob/living/simple_animal/shadekin/blue/rivyr
name = "Rivyr"
desc = "She appears to be a fluffer of some sort. Deep blue eyes and curious attitude."
icon_state = "rivyr"
vore_stomach_flavor = "Blue flesh gleams in the fading light as you slip down the little mars gullet! \
Gooey flesh and heat surrounds your form as youre tucked away into the darkness of her stomach! Thick slimes cling \
to you, but they seem to be harmless. The organ gently churns around you, clinging to your shape and forcing \
you to curl up a bit. You can feel her rub at you some through the layers of flesh and fluff, while aches \
and pains begin to fade away across your body."
+3
View File
@@ -219,3 +219,6 @@
var/seedarkness = 1 //Determines mob's ability to see shadows. 1 = Normal vision, 0 = darkvision
var/get_rig_stats = 0 //Moved from computer.dm
var/low_priority = FALSE //Skip processing life() if there's just no players on this Z-level
+3 -3
View File
@@ -5,7 +5,7 @@
plane_masters[VIS_CH_BACKUP] = new /obj/screen/plane_master{plane = PLANE_CH_BACKUP} //Backup implant status
plane_masters[VIS_CH_VANTAG] = new /obj/screen/plane_master{plane = PLANE_CH_VANTAG} //Vore Antags
plane_masters[VIS_AUGMENTED] = new /obj/screen/plane_master/augmented(my_mob) //Augmented reality
plane_masters[VIS_AUGMENTED] = new /obj/screen/plane_master/augmented(null,my_mob) //Augmented reality
/////////////////
//AR planemaster does some special image handling
@@ -14,8 +14,8 @@
var/state = FALSE //Saves cost with the lists
var/mob/my_mob
/obj/screen/plane_master/augmented/New(var/mob/M)
..()
/obj/screen/plane_master/augmented/New(var/newloc, var/mob/M)
..(newloc)
my_mob = M
logged_in_event.register(my_mob,src,/obj/screen/plane_master/augmented/proc/apply)
+1 -4
View File
@@ -365,7 +365,7 @@
items_preserved |= item
else
internal_contents -= item
owner.nutrition += (digested)
owner.nutrition += (5 * digested)
if(isrobot(owner))
var/mob/living/silicon/robot/R = owner
R.cell.charge += (50 * digested)
@@ -489,9 +489,6 @@
return
internal_contents -= content
target.internal_contents += content
if(content in items_preserved)
items_preserved -= content
target.items_preserved += content
if(isliving(content))
var/mob/living/M = content
if(target.inside_flavor)
+1
View File
@@ -605,6 +605,7 @@
var/datum/belly/selected = vore_organs[belly]
I.forceMove(src)
selected.internal_contents |= I
updateVRPanel()
if(istype(I,/obj/item/device/flashlight/flare) || istype(I,/obj/item/weapon/flame/match) || istype(I,/obj/item/weapon/storage/box/matches))
to_chat(src, "<span class='notice'>You can taste the flavor of spicy cardboard.</span>")
else if(istype(I,/obj/item/device/flashlight/glowstick))