mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-13 11:43:31 +00:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -19,3 +19,16 @@
|
|||||||
containertype = /obj/structure/largecrate/animal/catgirl
|
containertype = /obj/structure/largecrate/animal/catgirl
|
||||||
containername = "Catgirl crate"
|
containername = "Catgirl crate"
|
||||||
contraband = 1
|
contraband = 1
|
||||||
|
|
||||||
|
/datum/supply_pack/randomised/hospitality/pizzavouchers //WE ALWAYS DELIVER WE ALWAYS DELIVER WE ALWAYS DELIVER WE ALWAYS DELIVER WE ALWAYS DELIVER
|
||||||
|
num_contained = 3
|
||||||
|
contains = list(
|
||||||
|
/obj/item/pizzavoucher,
|
||||||
|
/obj/item/pizzavoucher,
|
||||||
|
/obj/item/pizzavoucher
|
||||||
|
)
|
||||||
|
name = "FANTASTIC PIZZA PIE VOUCHER CRATE!"
|
||||||
|
cost = 60
|
||||||
|
containertype = /obj/structure/closet/crate
|
||||||
|
containername = "WE ALWAYS DELIVER!"
|
||||||
|
contraband = 1
|
||||||
|
|||||||
66
code/game/objects/items/falling_object_vr.dm
Normal file
66
code/game/objects/items/falling_object_vr.dm
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
/obj/effect/falling_effect
|
||||||
|
name = "you should not see this"
|
||||||
|
desc = "no data"
|
||||||
|
invisibility = 101
|
||||||
|
anchored = TRUE
|
||||||
|
density = FALSE
|
||||||
|
unacidable = TRUE
|
||||||
|
var/falling_type = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita
|
||||||
|
var/crushing = TRUE
|
||||||
|
|
||||||
|
/obj/effect/falling_effect/Initialize(mapload, type = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita)
|
||||||
|
..()
|
||||||
|
falling_type = type
|
||||||
|
return INITIALIZE_HINT_LATELOAD
|
||||||
|
|
||||||
|
/obj/effect/falling_effect/LateInitialize()
|
||||||
|
new falling_type(src)
|
||||||
|
var/atom/movable/dropped = pick(contents) // Stupid, but allows to get spawn result without efforts if it is other type(Or if it was randomly generated).
|
||||||
|
dropped.loc = get_turf(src)
|
||||||
|
var/initial_x = dropped.pixel_x
|
||||||
|
var/initial_y = dropped.pixel_y
|
||||||
|
dropped.plane = 1
|
||||||
|
dropped.pixel_x = rand(-150, 150)
|
||||||
|
dropped.pixel_y = 500 // When you think that pixel_z is height but you are wrong
|
||||||
|
dropped.density = FALSE
|
||||||
|
dropped.opacity = FALSE
|
||||||
|
animate(dropped, pixel_y = initial_y, pixel_x = initial_x , time = 7)
|
||||||
|
spawn(7)
|
||||||
|
dropped.end_fall(crushing)
|
||||||
|
qdel(src)
|
||||||
|
|
||||||
|
/atom/movable/proc/end_fall(var/crushing = FALSE)
|
||||||
|
if(crushing)
|
||||||
|
for(var/atom/movable/AM in loc)
|
||||||
|
if(AM != src)
|
||||||
|
AM.ex_act(1)
|
||||||
|
|
||||||
|
for(var/mob/living/M in oviewers(3, src))
|
||||||
|
shake_camera(M, 2, 2)
|
||||||
|
|
||||||
|
playsound(loc, 'sound/effects/meteorimpact.ogg', 50, 1)
|
||||||
|
density = initial(density)
|
||||||
|
opacity = initial(opacity)
|
||||||
|
plane = initial(plane)
|
||||||
|
|
||||||
|
/obj/effect/falling_effect/singularity_act()
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/effect/falling_effect/singularity_pull()
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/effect/falling_effect/ex_act()
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
/obj/effect/falling_effect/pizza_delivery
|
||||||
|
name = "PIZZA PIE POWER!"
|
||||||
|
crushing = FALSE
|
||||||
|
|
||||||
|
/obj/effect/falling_effect/pizza_delivery/Initialize(mapload)
|
||||||
|
..()
|
||||||
|
falling_type = pick(prob(25);/obj/item/pizzabox/meat,
|
||||||
|
prob(25);/obj/item/pizzabox/margherita,
|
||||||
|
prob(25);/obj/item/pizzabox/vegetable,
|
||||||
|
prob(25);/obj/item/pizzabox/mushroom)
|
||||||
|
return INITIALIZE_HINT_LATELOAD
|
||||||
61
code/game/objects/items/pizza_voucher_vr.dm
Normal file
61
code/game/objects/items/pizza_voucher_vr.dm
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
/obj/item/pizzavoucher
|
||||||
|
name = "free pizza voucher"
|
||||||
|
desc = "A pocket-sized plastic slip with a button in the middle. The writing on it seems to have faded."
|
||||||
|
icon = 'icons/obj/items.dmi'
|
||||||
|
icon_state = "pizza_voucher"
|
||||||
|
var/spent = FALSE
|
||||||
|
var/special_delivery = FALSE
|
||||||
|
w_class = ITEMSIZE_SMALL
|
||||||
|
|
||||||
|
/obj/item/pizzavoucher/New()
|
||||||
|
var/list/descstrings = list("24/7 PIZZA PIE HEAVEN",
|
||||||
|
"WE ALWAYS DELIVER!",
|
||||||
|
"24-HOUR PIZZA PIE POWER!",
|
||||||
|
"TOMATO SAUCE, CHEESE, WE'VE BOTH BOTH OF THESE!",
|
||||||
|
"COOKED WITH LOVE INSIDE A BIG OVEN!",
|
||||||
|
"WHEN YOU NEED A SLICE OF JOY IN YOUR LIFE!",
|
||||||
|
"WHEN YOU NEED A DISK OF OVEN BAKED BLISS!",
|
||||||
|
"EVERY TIME YOU DREAM OF CIRCULAR CUISINE!",
|
||||||
|
"WE ALWAYS DELIVER! WE ALWAYS DELIVER! WE ALWAYS DELIVER!")
|
||||||
|
desc = "A pocket-sized plastic slip with a button in the middle. \"[pick(descstrings)]\" is written on the back."
|
||||||
|
|
||||||
|
/obj/item/pizzavoucher/attack_self(mob/user)
|
||||||
|
add_fingerprint(user)
|
||||||
|
if(!spent)
|
||||||
|
user.visible_message("<span class='notice'>[user] presses a button on [src]!</span>")
|
||||||
|
desc = desc + " This one seems to be used-up."
|
||||||
|
spent = TRUE
|
||||||
|
if(special_delivery)
|
||||||
|
var/delivery = pick(prob(25);/obj/item/pizzabox/meat,
|
||||||
|
prob(25);/obj/item/pizzabox/margherita,
|
||||||
|
prob(25);/obj/item/pizzabox/vegetable,
|
||||||
|
prob(25);/obj/item/pizzabox/mushroom)
|
||||||
|
command_announcement.Announce("SPECIAL DELIVERY PIZZA ORDER #[rand(1000,9999)]-[rand(100,999)] HAS BEEN RECIEVED. SHIPMENT DISPATCHED VIA BALLISTIC SUPPLY POD FOR IMMEDIATE DELIVERY! THANK YOU AND ENJOY YOUR PIZZA!", "WE ALWAYS DELIVER!")
|
||||||
|
var/crash_x = user.x
|
||||||
|
var/crash_y = user.y
|
||||||
|
var/crash_z = user.z
|
||||||
|
spawn(rand(30, 75))
|
||||||
|
new /datum/random_map/droppod/pizza(null, crash_x, crash_y, crash_z, automated = TRUE, supplied_drop = delivery) // Splat.
|
||||||
|
else
|
||||||
|
user.visible_message("<span class='notice'>A small bluespace rift opens just above your head and spits out a pizza box!</span>")
|
||||||
|
new /obj/effect/falling_effect/pizza_delivery(user.loc)
|
||||||
|
else
|
||||||
|
to_chat(user, "<span class='warning'>The [src] is spent!</span>")
|
||||||
|
|
||||||
|
/obj/item/pizzavoucher/emag_act(var/remaining_charges, var/mob/user)
|
||||||
|
if(spent)
|
||||||
|
to_chat(user, "<span class='warning'>The [src] is spent!</span>")
|
||||||
|
return
|
||||||
|
if(!special_delivery)
|
||||||
|
to_chat(user, "<span class='warning'>You activate the special delivery protocol on the [src]!</span>")
|
||||||
|
special_delivery = TRUE
|
||||||
|
return 1
|
||||||
|
else
|
||||||
|
to_chat(user, "<span class='warning'>The [src] is already in special delivery mode!</span>")
|
||||||
|
|
||||||
|
|
||||||
|
/datum/random_map/droppod/pizza
|
||||||
|
placement_explosion_dev = 0
|
||||||
|
placement_explosion_heavy = 1
|
||||||
|
placement_explosion_light = 2
|
||||||
|
placement_explosion_flash = 4
|
||||||
@@ -106,7 +106,8 @@ something, make sure it's not in one of the other lists.*/
|
|||||||
prob(1);/obj/item/weapon/card/emag_broken,
|
prob(1);/obj/item/weapon/card/emag_broken,
|
||||||
prob(2);/obj/item/device/camera,
|
prob(2);/obj/item/device/camera,
|
||||||
prob(3);/obj/item/device/pda,
|
prob(3);/obj/item/device/pda,
|
||||||
prob(3);/obj/item/device/radio/headset)
|
prob(3);/obj/item/device/radio/headset,
|
||||||
|
prob(1);/obj/item/pizzavoucher)
|
||||||
|
|
||||||
/obj/random/maintenance/security
|
/obj/random/maintenance/security
|
||||||
/*Maintenance loot list. This one is for around security areas*/
|
/*Maintenance loot list. This one is for around security areas*/
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
remains_active = TRUE
|
remains_active = TRUE
|
||||||
|
|
||||||
/obj/structure/ghost_pod/manual/lost_drone/dogborg/create_occupant(var/mob/M)
|
/obj/structure/ghost_pod/manual/lost_drone/dogborg/create_occupant(var/mob/M)
|
||||||
var/response = alert(M, "What type of lost drone are you? Do note, that dogborgs may have experienced different type of corruption ((Potential for having vore-related laws))", "Drone Type", "Regular", "Dogborg")
|
var/response = alert(M, "What type of lost drone are you? Do note, that dogborgs may have experienced different type of corruption ((High potential for having vore-related laws))", "Drone Type", "Regular", "Dogborg")
|
||||||
if(!(response == "Dogborg")) // No response somehow or Regular
|
if(!(response == "Dogborg")) // No response somehow or Regular
|
||||||
return ..()
|
return ..()
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -213,7 +213,8 @@
|
|||||||
prob(1);/obj/item/weapon/spacecash/c100,
|
prob(1);/obj/item/weapon/spacecash/c100,
|
||||||
prob(1);/obj/item/weapon/spacecash/c50,
|
prob(1);/obj/item/weapon/spacecash/c50,
|
||||||
prob(1);/obj/item/weapon/storage/backpack/dufflebag/syndie,
|
prob(1);/obj/item/weapon/storage/backpack/dufflebag/syndie,
|
||||||
prob(1);/obj/item/weapon/storage/box/cups)
|
prob(1);/obj/item/weapon/storage/box/cups,
|
||||||
|
prob(1);/obj/item/pizzavoucher)
|
||||||
|
|
||||||
var/obj/item/I = new path()
|
var/obj/item/I = new path()
|
||||||
return I
|
return I
|
||||||
@@ -244,7 +245,8 @@
|
|||||||
prob(1);/obj/item/weapon/material/knife/tacknife,
|
prob(1);/obj/item/weapon/material/knife/tacknife,
|
||||||
prob(1);/obj/item/weapon/storage/box/survival/space,
|
prob(1);/obj/item/weapon/storage/box/survival/space,
|
||||||
prob(1);/obj/item/weapon/storage/secure/briefcase/trashmoney,
|
prob(1);/obj/item/weapon/storage/secure/briefcase/trashmoney,
|
||||||
prob(1);/obj/item/weapon/reagent_containers/syringe/steroid)
|
prob(1);/obj/item/weapon/reagent_containers/syringe/steroid,
|
||||||
|
prob(1);/obj/item/seeds/gnomes)
|
||||||
|
|
||||||
var/obj/item/I = new path()
|
var/obj/item/I = new path()
|
||||||
return I
|
return I
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/datum/event/drone_pod_drop
|
/datum/event/drone_pod_drop
|
||||||
announceWhen = 1
|
|
||||||
var/turf/land_target = null
|
var/turf/land_target = null
|
||||||
var/attempt_amount = 10
|
var/attempt_amount = 10
|
||||||
|
|
||||||
/datum/event/drone_pod_drop/setup()
|
/datum/event/drone_pod_drop/setup()
|
||||||
startWhen = rand(8,15)
|
startWhen = rand(8,15)
|
||||||
|
announceWhen = startWhen + 5
|
||||||
if(LAZYLEN(using_map.meteor_strike_areas))
|
if(LAZYLEN(using_map.meteor_strike_areas))
|
||||||
var/turf/potential_target = null
|
var/turf/potential_target = null
|
||||||
for(var/i=1, i <= attempt_amount, i++)
|
for(var/i=1, i <= attempt_amount, i++)
|
||||||
@@ -28,4 +28,4 @@
|
|||||||
if(!land_target)
|
if(!land_target)
|
||||||
kill()
|
kill()
|
||||||
|
|
||||||
new /datum/random_map/droppod/supply(null, land_target.x-2, land_target.y-2, land_target.z, supplied_drops = list(/obj/structure/ghost_pod/manual/lost_drone))
|
new /datum/random_map/droppod/supply(null, land_target.x-2, land_target.y-2, land_target.z, supplied_drops = list(/obj/structure/ghost_pod/manual/lost_drone/dogborg))
|
||||||
@@ -25,6 +25,7 @@
|
|||||||
var/apply_color_to_mob = TRUE // Do we color the mob to match the plant?
|
var/apply_color_to_mob = TRUE // Do we color the mob to match the plant?
|
||||||
var/has_item_product // Item products. (Eggy)
|
var/has_item_product // Item products. (Eggy)
|
||||||
var/force_layer
|
var/force_layer
|
||||||
|
var/harvest_sound = null //Vorestation edit - sound the plant makes when harvested
|
||||||
|
|
||||||
// Making the assumption anything in HYDRO-ponics is capable of processing water, and nutrients commonly associated with it, leaving us with the below to be tweaked.
|
// Making the assumption anything in HYDRO-ponics is capable of processing water, and nutrients commonly associated with it, leaving us with the below to be tweaked.
|
||||||
var/list/beneficial_reagents // Reagents considered uniquely 'beneficial' by a plant.
|
var/list/beneficial_reagents // Reagents considered uniquely 'beneficial' by a plant.
|
||||||
@@ -769,6 +770,10 @@
|
|||||||
var/turf/T = get_turf(user)
|
var/turf/T = get_turf(user)
|
||||||
create_spores(T)
|
create_spores(T)
|
||||||
|
|
||||||
|
if(harvest_sound)//Vorestation edit
|
||||||
|
var/turf/M = get_turf(user)
|
||||||
|
playsound(M, harvest_sound, 50, 1, -1)
|
||||||
|
|
||||||
if(!force_amount && get_trait(TRAIT_YIELD) == 0 && !harvest_sample)
|
if(!force_amount && get_trait(TRAIT_YIELD) == 0 && !harvest_sample)
|
||||||
if(istype(user)) user << "<span class='danger'>You fail to harvest anything useful.</span>"
|
if(istype(user)) user << "<span class='danger'>You fail to harvest anything useful.</span>"
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -39,3 +39,6 @@
|
|||||||
set_trait(TRAIT_PRODUCT_ICON,"mushroom6")
|
set_trait(TRAIT_PRODUCT_ICON,"mushroom6")
|
||||||
set_trait(TRAIT_PLANT_ICON,"tree")
|
set_trait(TRAIT_PLANT_ICON,"tree")
|
||||||
set_trait(TRAIT_PRODUCT_COLOUR,"#DADA00")
|
set_trait(TRAIT_PRODUCT_COLOUR,"#DADA00")
|
||||||
|
|
||||||
|
/datum/seed/gnomes
|
||||||
|
harvest_sound = 'sound/items/hooh.ogg'
|
||||||
@@ -117,7 +117,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
// VOREStation Addition Start
|
// VOREStation Addition Start
|
||||||
if(isnum(src.client.player_age))
|
if(config.use_age_restriction_for_jobs && isnum(src.client.player_age))
|
||||||
var/time_till_play = max(0, 3 - src.client.player_age)
|
var/time_till_play = max(0, 3 - src.client.player_age)
|
||||||
if(time_till_play)
|
if(time_till_play)
|
||||||
to_chat(usr, "<span class='danger'>You have not been playing on the server long enough to join as drone.</span>")
|
to_chat(usr, "<span class='danger'>You have not been playing on the server long enough to join as drone.</span>")
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
..()
|
..()
|
||||||
laws = give_random_lawset_vore()
|
laws = give_random_lawset_vore()
|
||||||
|
|
||||||
/mob/living/silicon/proc/give_random_lawset_vore() // Should be filled out with more vorish possibilities later
|
/mob/living/silicon/proc/give_random_lawset_vore()
|
||||||
// Decide what kind of laws we want to draw from.
|
// Decide what kind of laws we want to draw from.
|
||||||
var/law_class = pick(
|
var/law_class = pick(
|
||||||
prob(25);"good",
|
prob(25);"good",
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
prob(15);"corrupted",
|
prob(15);"corrupted",
|
||||||
prob(10);"bad")
|
prob(10);"bad")
|
||||||
|
|
||||||
var/vore_law = prob(50) // 1/2 chance of having vore-related laws
|
var/vore_law = prob(60) // 3/5 chance of having vore-related laws
|
||||||
|
|
||||||
if(vore_law)
|
if(vore_law)
|
||||||
switch(law_class)
|
switch(law_class)
|
||||||
@@ -187,4 +187,4 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -3535,4 +3535,4 @@
|
|||||||
taste_mult = 2
|
taste_mult = 2
|
||||||
reagent_state = LIQUID
|
reagent_state = LIQUID
|
||||||
nutriment_factor = 40 //very filling
|
nutriment_factor = 40 //very filling
|
||||||
color = "#d169b2"
|
color = "#d169b2"
|
||||||
|
|||||||
@@ -101,4 +101,12 @@
|
|||||||
M.adjustToxLoss(removed) //Equivalent to half as much protein, since it's half protein.
|
M.adjustToxLoss(removed) //Equivalent to half as much protein, since it's half protein.
|
||||||
if(M.species.gets_food_nutrition)
|
if(M.species.gets_food_nutrition)
|
||||||
if(alien == IS_SLIME || alien == IS_CHIMERA) //slimes and chimera can get nutrition from injected nutriment and protein
|
if(alien == IS_SLIME || alien == IS_CHIMERA) //slimes and chimera can get nutrition from injected nutriment and protein
|
||||||
M.nutrition += (alt_nutriment_factor * removed)
|
M.nutrition += (alt_nutriment_factor * removed)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/datum/reagent/nutriment/magicdust/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
|
||||||
|
..()
|
||||||
|
playsound(M.loc, 'sound/items/hooh.ogg', 50, 1, -1)
|
||||||
|
if(prob(5))
|
||||||
|
to_chat(M, "<span class='warning'>You feel like you've been gnomed...</span>")
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 64 KiB |
BIN
sound/items/hooh.ogg
Normal file
BIN
sound/items/hooh.ogg
Normal file
Binary file not shown.
@@ -1026,6 +1026,7 @@
|
|||||||
#include "code\game\objects\items\contraband.dm"
|
#include "code\game\objects\items\contraband.dm"
|
||||||
#include "code\game\objects\items\contraband_vr.dm"
|
#include "code\game\objects\items\contraband_vr.dm"
|
||||||
#include "code\game\objects\items\crayons.dm"
|
#include "code\game\objects\items\crayons.dm"
|
||||||
|
#include "code\game\objects\items\falling_object_vr.dm"
|
||||||
#include "code\game\objects\items\glassjar.dm"
|
#include "code\game\objects\items\glassjar.dm"
|
||||||
#include "code\game\objects\items\godfigures.dm"
|
#include "code\game\objects\items\godfigures.dm"
|
||||||
#include "code\game\objects\items\gunbox.dm"
|
#include "code\game\objects\items\gunbox.dm"
|
||||||
@@ -1033,6 +1034,7 @@
|
|||||||
#include "code\game\objects\items\gunbox_yw.dm"
|
#include "code\game\objects\items\gunbox_yw.dm"
|
||||||
#include "code\game\objects\items\latexballoon.dm"
|
#include "code\game\objects\items\latexballoon.dm"
|
||||||
#include "code\game\objects\items\paintkit.dm"
|
#include "code\game\objects\items\paintkit.dm"
|
||||||
|
#include "code\game\objects\items\pizza_voucher_vr.dm"
|
||||||
#include "code\game\objects\items\poi_items.dm"
|
#include "code\game\objects\items\poi_items.dm"
|
||||||
#include "code\game\objects\items\robobag.dm"
|
#include "code\game\objects\items\robobag.dm"
|
||||||
#include "code\game\objects\items\shooting_range.dm"
|
#include "code\game\objects\items\shooting_range.dm"
|
||||||
|
|||||||
Reference in New Issue
Block a user