Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Hawk_v3
2020-01-13 18:37:42 +00:00
16 changed files with 173 additions and 12 deletions

View 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

View 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

View File

@@ -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(2);/obj/item/device/camera,
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
/*Maintenance loot list. This one is for around security areas*/

View File

@@ -2,7 +2,7 @@
remains_active = TRUE
/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
return ..()
else

View File

@@ -213,7 +213,8 @@
prob(1);/obj/item/weapon/spacecash/c100,
prob(1);/obj/item/weapon/spacecash/c50,
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()
return I
@@ -244,7 +245,8 @@
prob(1);/obj/item/weapon/material/knife/tacknife,
prob(1);/obj/item/weapon/storage/box/survival/space,
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()
return I