Squashed commit of the following:

commit b3d348258c4c93a1df81652bdf68fd00f4130369
Author: Verkister <superverkelian@hotmail.com>
Date:   Sun Feb 4 22:40:08 2018 +0200

    Squashed commit of the following:

    commit 5faa5f9d063e57400584ab1ae458e626629b6842
    Author: Verkister <superverkelian@hotmail.com>
    Date:   Sun Feb 4 22:31:10 2018 +0200

        Update pai.dm

commit fd4bbdc6b99d74d94befb440ffe5e0c23a98a918
Author: Verkister <superverkelian@hotmail.com>
Date:   Sun Feb 4 11:28:58 2018 +0200

    Makes pAI cards, AI cards, and posis "edible"
    -Also makes it so that pAI cannot fold out if inside a gut.

commit 1d13c207240c4bc296b188533e8cf50b1424cc36
Author: Verkister <superverkelian@hotmail.com>
Date:   Sun Feb 4 10:40:38 2018 +0200

    some more trashcan refactoring

commit 28d02c272dbd218d2d91c91fb1ecec999b9dd05e
Author: Verkister <superverkelian@hotmail.com>
Date:   Sat Feb 3 13:32:14 2018 +0200

    Trashcan perk refactor
This commit is contained in:
Verkister
2018-02-04 22:43:02 +02:00
parent 9fe7b5901c
commit f553219bbd
5 changed files with 108 additions and 283 deletions

View File

@@ -123,6 +123,42 @@ var/global/list/tf_egg_types = list(
"Xenochimera" = /obj/structure/closet/secure_closet/egg/scree, "Xenochimera" = /obj/structure/closet/secure_closet/egg/scree,
"Xenomorph" = /obj/structure/closet/secure_closet/egg/xenomorph) "Xenomorph" = /obj/structure/closet/secure_closet/egg/xenomorph)
var/global/list/edible_trash = list(/obj/item/trash,
/obj/item/device/flashlight,
/obj/item/toy/figure,
/obj/item/weapon/cigbutt,
/obj/item/weapon/bananapeel,
/obj/item/stack/material/cardboard,
/obj/item/weapon/light,
/obj/item/weapon/paper,
/obj/item/weapon/broken_bottle,
/obj/item/weapon/reagent_containers/food,
/obj/item/inflatable/torn,
/obj/item/weapon/flame/match,
/obj/item/clothing/mask/smokable,
/obj/item/weapon/storage/wallet,
/obj/item/weapon/spacecash,
/obj/item/broken_device,
/obj/item/weapon/corncob,
/obj/item/weapon/paperplane,
/obj/item/weapon/pen,
/obj/item/weapon/photo,
/obj/item/weapon/storage/box/wings,
/obj/item/weapon/storage/box/matches,
/obj/item/weapon/storage/fancy/cigarettes,
/obj/item/weapon/storage/fancy/egg_box,
/obj/item/weapon/storage/fancy/candle_box,
/obj/item/weapon/storage/fancy/crayons,
/obj/item/weapon/dice,
/obj/item/weapon/newspaper,
/obj/item/weapon/reagent_containers/glass/rag,
/obj/item/weapon/lipstick,
/obj/item/weapon/soap,
/obj/item/weapon/material/shard,
/obj/item/device/paicard,
/obj/item/device/mmi/digital/posibrain,
/obj/item/device/aicard)
/hook/startup/proc/init_vore_datum_ref_lists() /hook/startup/proc/init_vore_datum_ref_lists()
var/paths var/paths

View File

@@ -31,285 +31,3 @@
R.visible_message("<span class='warning'>[user] feeds [R] with [src]!</span>") R.visible_message("<span class='warning'>[user] feeds [R] with [src]!</span>")
return return
..() ..()
/obj/item/device/flashlight/flare/attack(mob/living/M as mob, mob/living/user as mob)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.species.trashcan == 1)
playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
user.drop_item()
var/belly = H.vore_selected
var/datum/belly/selected = H.vore_organs[belly]
forceMove(H)
selected.internal_contents |= src
to_chat(H, "<span class='notice'>You can taste the flavor of spicy cardboard. Wait what?</span>")
return
..()
/obj/item/device/flashlight/glowstick/attack(mob/living/M as mob, mob/living/user as mob)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.species.trashcan == 1)
playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
user.drop_item()
var/belly = H.vore_selected
var/datum/belly/selected = H.vore_organs[belly]
forceMove(H)
selected.internal_contents |= src
to_chat(H, "<span class='notice'>You found out the glowy juice only tastes like regret. Wait what?</span>")
return
..()
/obj/item/toy/figure/attack(mob/living/M as mob, mob/living/user as mob)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.species.trashcan == 1)
playsound(H.loc,'sound/vore/gulp.ogg', rand(10,50), 1)
user.drop_item()
var/belly = H.vore_selected
var/datum/belly/selected = H.vore_organs[belly]
forceMove(H)
selected.internal_contents |= src
visible_message("<span class='warning'>[M] demonstrates their voracious capabilities by swallowing [src] whole!</span>")
return
..()
/obj/item/weapon/cigbutt/attack(mob/living/M as mob, mob/living/user as mob)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.species.trashcan == 1)
playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
user.drop_item()
var/belly = H.vore_selected
var/datum/belly/selected = H.vore_organs[belly]
forceMove(H)
selected.internal_contents |= src
to_chat(H, "<span class='notice'>You can taste the flavor of bitter ash. Classy.</span>")
return
..()
/obj/item/weapon/bananapeel/attack(mob/living/M as mob, mob/living/user as mob)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.species.trashcan == 1)
playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
user.drop_item()
var/belly = H.vore_selected
var/datum/belly/selected = H.vore_organs[belly]
forceMove(H)
selected.internal_contents |= src
to_chat(H, "<span class='notice'>You can taste the flavor of bitter banana.</span>")
return
..()
/obj/item/stack/material/cardboard/attack(mob/living/M as mob, mob/living/user as mob)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.species.trashcan == 1)
playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
user.drop_item()
var/belly = H.vore_selected
var/datum/belly/selected = H.vore_organs[belly]
forceMove(H)
selected.internal_contents |= src
to_chat(H, "<span class='notice'>You can taste the flavor of cardboard. Delicious.</span>")
return
..()
/obj/item/weapon/paper/attack(mob/living/carbon/M as mob, mob/living/user as mob)
if(icon_state == "scrap")
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.species.trashcan == 1)
playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
user.drop_item()
var/belly = H.vore_selected
var/datum/belly/selected = H.vore_organs[belly]
forceMove(H)
selected.internal_contents |= src
to_chat(H, "<span class='notice'>You can taste the dry flavor of bureaucracy.</span>")
return
..()
/obj/item/weapon/light/attack(mob/living/M as mob, mob/living/user as mob)
var/obj/item/weapon/light/L = src
if(ishuman(M) && L.status > 1)
var/mob/living/carbon/human/H = M
if(H.species.trashcan == 1)
playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
user.drop_item()
var/belly = H.vore_selected
var/datum/belly/selected = H.vore_organs[belly]
forceMove(H)
selected.internal_contents |= src
to_chat(H, "<span class='notice'>You can taste the flavor of pain. This can't possibly be healthy for your guts.</span>")
return
..()
/obj/item/weapon/broken_bottle/attack(mob/living/M as mob, mob/living/user as mob)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.species.trashcan == 1)
playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
user.drop_item()
var/belly = H.vore_selected
var/datum/belly/selected = H.vore_organs[belly]
forceMove(H)
selected.internal_contents |= src
to_chat(H, "<span class='notice'>You can taste the flavor of pain. This can't possibly be healthy for your guts.</span>")
return
..()
/obj/item/weapon/reagent_containers/food/drinks/cans/attack(mob/living/M as mob, mob/living/user as mob)
if(ishuman(M) && !reagents.total_volume)
var/mob/living/carbon/human/H = M
if(H.species.trashcan == 1)
playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
user.drop_item()
var/belly = H.vore_selected
var/datum/belly/selected = H.vore_organs[belly]
forceMove(H)
selected.internal_contents |= src
to_chat(H, "<span class='notice'>You can taste the flavor of garbage. Wait what?</span>")
return
..()
/obj/item/weapon/reagent_containers/food/drinks/smallmilk/attack(mob/living/M as mob, mob/living/user as mob)
if(ishuman(M) && !reagents.total_volume)
var/mob/living/carbon/human/H = M
if(H.species.trashcan == 1)
playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
user.drop_item()
var/belly = H.vore_selected
var/datum/belly/selected = H.vore_organs[belly]
forceMove(H)
selected.internal_contents |= src
to_chat(H, "<span class='notice'>You can taste the flavor of creamy garbage. Wait what?</span>")
return
..()
/obj/item/weapon/reagent_containers/food/drinks/smallchocmilk/attack(mob/living/M as mob, mob/living/user as mob)
if(ishuman(M) && !reagents.total_volume)
var/mob/living/carbon/human/H = M
if(H.species.trashcan == 1)
playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
user.drop_item()
var/belly = H.vore_selected
var/datum/belly/selected = H.vore_organs[belly]
forceMove(H)
selected.internal_contents |= src
to_chat(H, "<span class='notice'>You can taste the flavor of chocolate and garbage. Wait what?</span>")
return
..()
/obj/item/weapon/reagent_containers/food/drinks/coffee/attack(mob/living/M as mob, mob/living/user as mob)
if(ishuman(M) && !reagents.total_volume)
var/mob/living/carbon/human/H = M
if(H.species.trashcan == 1)
playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
user.drop_item()
var/belly = H.vore_selected
var/datum/belly/selected = H.vore_organs[belly]
forceMove(H)
selected.internal_contents |= src
to_chat(H, "<span class='notice'>You can taste the flavor of caffeinated garbage. Wait what?</span>")
return
..()
/obj/item/weapon/reagent_containers/food/drinks/tea/attack(mob/living/M as mob, mob/living/user as mob)
if(ishuman(M) && !reagents.total_volume)
var/mob/living/carbon/human/H = M
if(H.species.trashcan == 1)
playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
user.drop_item()
var/belly = H.vore_selected
var/datum/belly/selected = H.vore_organs[belly]
forceMove(H)
selected.internal_contents |= src
to_chat(H, "<span class='notice'>You can taste the flavor of garbage. Wait what?</span>")
return
..()
/obj/item/weapon/reagent_containers/food/drinks/h_chocolate/attack(mob/living/M as mob, mob/living/user as mob)
if(ishuman(M) && !reagents.total_volume)
var/mob/living/carbon/human/H = M
if(H.species.trashcan == 1)
playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
user.drop_item()
var/belly = H.vore_selected
var/datum/belly/selected = H.vore_organs[belly]
forceMove(H)
selected.internal_contents |= src
to_chat(H, "<span class='notice'>You can taste the flavor of chocolate and garbage. Wait what?</span>")
return
..()
/obj/item/weapon/reagent_containers/food/drinks/ice/attack(mob/living/M as mob, mob/living/user as mob)
if(ishuman(M) && !reagents.total_volume)
var/mob/living/carbon/human/H = M
if(H.species.trashcan == 1)
playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
user.drop_item()
var/belly = H.vore_selected
var/datum/belly/selected = H.vore_organs[belly]
forceMove(H)
selected.internal_contents |= src
to_chat(H, "<span class='notice'>You can taste the flavor of cold wet garbage. Wait what?</span>")
return
..()
/obj/item/weapon/reagent_containers/food/drinks/dry_ramen/attack(mob/living/M as mob, mob/living/user as mob)
if(ishuman(M) && !reagents.total_volume)
var/mob/living/carbon/human/H = M
if(H.species.trashcan == 1)
playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
user.drop_item()
var/belly = H.vore_selected
var/datum/belly/selected = H.vore_organs[belly]
forceMove(H)
selected.internal_contents |= src
to_chat(H, "<span class='notice'>You can taste the flavor of garbage. Wait what?</span>")
return
..()
/obj/item/weapon/reagent_containers/food/drinks/sillycup/attack(mob/living/M as mob, mob/living/user as mob)
if(ishuman(M) && !reagents.total_volume)
var/mob/living/carbon/human/H = M
if(H.species.trashcan == 1)
playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
user.drop_item()
var/belly = H.vore_selected
var/datum/belly/selected = H.vore_organs[belly]
forceMove(H)
selected.internal_contents |= src
to_chat(H, "<span class='notice'>You can taste the flavor of garbage. Wait what?</span>")
return
..()
/obj/item/inflatable/torn/attack(mob/living/M as mob, mob/living/user as mob)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.species.trashcan == 1)
playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
user.drop_item()
var/belly = H.vore_selected
var/datum/belly/selected = H.vore_organs[belly]
forceMove(H)
selected.internal_contents |= src
to_chat(H, "<span class='notice'>You can taste the flavor of garbage. Wait what?</span>")
return
..()
/obj/item/weapon/reagent_containers/food/snacks/badrecipe/attack(mob/living/M as mob, mob/living/user as mob)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.species.trashcan == 1)
playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
user.drop_item()
var/belly = H.vore_selected
var/datum/belly/selected = H.vore_organs[belly]
forceMove(H)
selected.internal_contents |= src
to_chat(H, "<span class='notice'>You can taste the flavor of someone's horrible cooking skills.</span>")
return
..()

View File

@@ -91,10 +91,14 @@
/datum/trait/trashcan /datum/trait/trashcan
name = "Trash Can" name = "Trash Can"
desc = "Allows you to dispose of the snack wrappings on the go instead of having to look for a bin or littering like an animal." desc = "Allows you to dispose of some garbage on the go instead of having to look for a bin or littering like an animal."
cost = 0 cost = 0
var_changes = list("trashcan" = 1) var_changes = list("trashcan" = 1)
/datum/trait/trashcan/apply(var/datum/species/S,var/mob/living/carbon/human/H)
..(S,H)
H.verbs |= /mob/living/proc/eat_trash
/datum/trait/glowing_eyes /datum/trait/glowing_eyes
name = "Glowing Eyes" name = "Glowing Eyes"
desc = "Your eyes show up above darkness. SPOOKY! And kinda edgey too." desc = "Your eyes show up above darkness. SPOOKY! And kinda edgey too."

View File

@@ -270,6 +270,10 @@
return 0 return 0
else if(istype(card.loc,/mob)) else if(istype(card.loc,/mob))
var/mob/holder = card.loc var/mob/holder = card.loc
var/datum/belly/inside_belly = check_belly(card) //VOREStation edit.
if(inside_belly) //VOREStation edit.
to_chat(src, "<span class='notice'>There is no room to unfold in here. You're good and stuck.</span>") //VOREStation edit.
return 0 //VOREStation edit.
if(ishuman(holder)) if(ishuman(holder))
var/mob/living/carbon/human/H = holder var/mob/living/carbon/human/H = holder
for(var/obj/item/organ/external/affecting in H.organs) for(var/obj/item/organ/external/affecting in H.organs)

View File

@@ -587,3 +587,66 @@
var/new_color = input(src,"Select a new color","Body Glow",glow_color) as color var/new_color = input(src,"Select a new color","Body Glow",glow_color) as color
if(new_color) if(new_color)
glow_color = new_color glow_color = new_color
/mob/living/proc/eat_trash()
set name = "Eat Trash"
set category = "Abilities"
set desc = "Consume held garbage."
var/obj/item/I = get_active_hand()
if(!I)
to_chat(src, "<span class='notice'>You are not holding anything.</span>")
return
if(is_type_in_list(I,edible_trash))
playsound(src.loc,'sound/vore/gulp.ogg', 20, 1)
drop_item()
var/belly = vore_selected
var/datum/belly/selected = vore_organs[belly]
I.forceMove(src)
selected.internal_contents |= I
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))
to_chat(src, "<span class='notice'>You found out the glowy juice only tastes like regret.</span>")
else if(istype(I,/obj/item/weapon/cigbutt))
to_chat(src, "<span class='notice'>You can taste the flavor of bitter ash. Classy.</span>")
else if(istype(I,/obj/item/clothing/mask/smokable))
var/obj/item/clothing/mask/smokable/C = I
if(C.lit)
to_chat(src, "<span class='notice'>You can taste the flavor of burning ash. Spicy!</span>")
else
to_chat(src, "<span class='notice'>You can taste the flavor of aromatic rolling paper and funny looks.</span>")
else if(istype(I,/obj/item/weapon/paper))
to_chat(src, "<span class='notice'>You can taste the dry flavor of bureaucracy.</span>")
else if(istype(I,/obj/item/weapon/dice))
to_chat(src, "<span class='notice'>You can taste the bitter flavor of cheating.</span>")
else if(istype(I,/obj/item/weapon/lipstick))
to_chat(src, "<span class='notice'>You can taste the flavor of couture and style. Toddler at the make-up bag style.</span>")
else if(istype(I,/obj/item/weapon/soap))
to_chat(src, "<span class='notice'>You can taste the bitter flavor of verbal purification.</span>")
else if(istype(I,/obj/item/weapon/spacecash) || istype(I,/obj/item/weapon/storage/wallet))
to_chat(src, "<span class='notice'>You can taste the flavor of wealth and reckless waste.</span>")
else if(istype(I,/obj/item/weapon/broken_bottle) || istype(I,/obj/item/weapon/material/shard))
to_chat(src, "<span class='notice'>You can taste the flavor of pain. This can't possibly be healthy for your guts.</span>")
else if(istype(I,/obj/item/weapon/light))
var/obj/item/weapon/light/L = I
if(L.status == LIGHT_BROKEN)
to_chat(src, "<span class='notice'>You can taste the flavor of pain. This can't possibly be healthy for your guts.</span>")
else
to_chat(src, "<span class='notice'>You can taste the flavor of really bad ideas.</span>")
else if(istype(I,/obj/item/toy/figure))
visible_message("<span class='warning'>[src] demonstrates their voracious capabilities by swallowing [I] whole!</span>")
else if(istype(I,/obj/item/device/paicard) || istype(I,/obj/item/device/mmi/digital/posibrain) || istype(I,/obj/item/device/aicard))
visible_message("<span class='warning'>[src] demonstrates their voracious capabilities by swallowing [I] whole!</span>")
to_chat(src, "<span class='notice'>You can taste the sweet flavor of digital friendship. Or maybe it is something else.</span>")
else if(istype(I,/obj/item/weapon/reagent_containers/food))
var/obj/item/weapon/reagent_containers/food/F = I
if(!F.reagents.total_volume)
to_chat(src, "<span class='notice'>You can taste the flavor of garbage and leftovers. Delicious?</span>")
else
to_chat(src, "<span class='notice'>You can taste the flavor of gluttonous waste of food.</span>")
else
to_chat(src, "<span class='notice'>You can taste the flavor of garbage. Delicious.</span>")
return
to_chat(src, "<span class='notice'>This item is not appropriate for ethical consumption.</span>")
return