Files
Waterpig bb70889f6e TG Upstream Part 1
3591 individual conflicts

Update build.js

Update install_node.sh

Update byond.js

oh my fucking god

hat

slow

huh

holy shit

we all fall down

2 more I missed

2900 individual conflicts

2700 Individual conflicts

replaces yarn file with tg version, bumping us down to 2200-ish

Down to 2000 individual conflicts

140 down

mmm

aaaaaaaaaaaaaaaaaaa

not yt

575

soon

900 individual conflicts

600 individual conflicts, 121 file conflicts

im not okay

160 across 19 files

29 in 4 files

0 conflicts, compiletime fix time

some minor incap stuff

missed ticks

weird dupe definition stuff

missed ticks 2

incap fixes

undefs and pie fix

Radio update and some extra minor stuff

returns a single override

no more dupe definitions, 175 compiletime errors

Unticked file fix

sound and emote stuff

honk and more radio stuff
2024-10-19 08:04:33 -07:00

222 lines
7.0 KiB
Plaintext

/*
* Wrapping Paper
*/
/obj/item/stack/wrapping_paper
name = "wrapping paper"
desc = "Wrap packages with this festive paper to make gifts."
icon = 'icons/obj/stack_objects.dmi'
icon_state = "wrap_paper"
inhand_icon_state = "wrap_paper"
greyscale_config = /datum/greyscale_config/wrap_paper
item_flags = NOBLUDGEON
amount = 25
max_amount = 25
resistance_flags = FLAMMABLE
merge_type = /obj/item/stack/wrapping_paper
singular_name = "wrapping paper"
/obj/item/stack/wrapping_paper/Initialize(mapload)
. = ..()
if(!greyscale_colors)
//Generate random valid colors for paper and ribbon
var/generated_base_color = "#" + random_color()
var/generated_ribbon_color = "#" + random_color()
var/list/base_hsv = rgb2hsv(generated_base_color)
var/list/ribbon_hsv = rgb2hsv(generated_ribbon_color)
//If colors are too dark, set to original colors
if(base_hsv[3] < 50)
generated_base_color = COLOR_VIBRANT_LIME
if(ribbon_hsv[3] < 50)
generated_ribbon_color = COLOR_RED
//Set layers to these colors, base then ribbon
set_greyscale(colors = list(generated_base_color, generated_ribbon_color))
/obj/item/stack/wrapping_paper/click_alt(mob/user)
var/new_base = input(user, "", "Select a base color", color) as color
var/new_ribbon = input(user, "", "Select a ribbon color", color) as color
if(!new_base || !new_ribbon)
return CLICK_ACTION_BLOCKING
set_greyscale(colors = list(new_base, new_ribbon))
return CLICK_ACTION_SUCCESS
//preset wrapping paper meant to fill the original color configuration
/obj/item/stack/wrapping_paper/xmas
greyscale_colors = "#00FF00#FF0000"
/obj/item/stack/wrapping_paper/use(used, transfer, check = TRUE)
var/turf/T = get_turf(src)
. = ..()
if(QDELETED(src) && !transfer)
new /obj/item/c_tube(T)
/obj/item/stack/wrapping_paper/small
desc = "Wrap packages with this festive paper to make gifts. This roll looks a bit skimpy."
amount = 10
merge_type = /obj/item/stack/wrapping_paper/small
/*
* Package Wrap
*/
/obj/item/stack/package_wrap
name = "package wrapper"
singular_name = "wrapping sheet"
desc = "You can use this to wrap items in."
icon = 'icons/obj/stack_objects.dmi'
icon_state = "deliveryPaper"
item_flags = NOBLUDGEON
amount = 25
max_amount = 25
resistance_flags = FLAMMABLE
grind_results = list(/datum/reagent/cellulose = 5)
merge_type = /obj/item/stack/package_wrap
/obj/item/stack/package_wrap/suicide_act(mob/living/user)
user.visible_message(span_suicide("[user] begins wrapping [user.p_them()]self in \the [src]! It looks like [user.p_theyre()] trying to commit suicide!"))
if(use(3))
var/obj/item/delivery/big/parcel = new(get_turf(user.loc))
parcel.base_icon_state = "deliverypackage5"
parcel.update_icon()
user.forceMove(parcel)
parcel.contains_mobs = TRUE // SKYRAT EDIT - CARGO BORGS
parcel.add_fingerprint(user)
return OXYLOSS
else
balloon_alert(user, "not enough paper!")
return SHAME
/obj/item/proc/can_be_package_wrapped() //can the item be wrapped with package wrapper into a delivery package
return TRUE
/obj/item/storage/can_be_package_wrapped()
return FALSE
/obj/item/storage/box/can_be_package_wrapped()
return TRUE
/obj/item/delivery/can_be_package_wrapped()
return FALSE
/obj/item/stack/package_wrap/storage_insert_on_interaction(datum/storage, atom/storage_holder, mob/user)
if(isitem(storage_holder))
// Don't insert if the target can be wrapped
var/obj/item/item = storage_holder
return !item.can_be_package_wrapped()
return TRUE
/obj/item/stack/package_wrap/interact_with_atom(obj/interacting_with, mob/living/user, list/modifiers)
if(!isobj(interacting_with))
return NONE
if(interacting_with.anchored)
return NONE
// SKYRAT EDIT START - Cargo borgs
if(!amount)
return
// SKYRAT EDIT END
if(isitem(interacting_with))
var/obj/item/item = interacting_with
if(!item.can_be_package_wrapped())
balloon_alert(user, "can't be wrapped!")
return ITEM_INTERACT_BLOCKING
if(user.is_holding(item))
if(!user.dropItemToGround(item))
return ITEM_INTERACT_BLOCKING
else if(!isturf(item.loc))
return ITEM_INTERACT_BLOCKING
if(use(1))
var/obj/item/delivery/small/parcel = new(get_turf(item.loc))
if(user.Adjacent(item))
parcel.add_fingerprint(user)
item.add_fingerprint(user)
user.put_in_hands(parcel)
item.forceMove(parcel)
var/size = round(item.w_class)
parcel.name = "[weight_class_to_text(size)] parcel"
parcel.update_weight_class(size)
size = min(size, 5)
parcel.base_icon_state = "deliverypackage[size]"
parcel.update_icon()
else
return ITEM_INTERACT_BLOCKING
else if(istype(interacting_with, /obj/structure/closet))
var/obj/structure/closet/closet = interacting_with
if(closet.opened)
balloon_alert(user, "can't wrap while open!")
return ITEM_INTERACT_BLOCKING
if(!closet.delivery_icon) //no delivery icon means unwrappable closet (e.g. body bags)
balloon_alert(user, "can't wrap!")
return ITEM_INTERACT_BLOCKING
if(use(3))
var/obj/item/delivery/big/parcel = new(get_turf(closet.loc))
parcel.base_icon_state = closet.delivery_icon
parcel.update_icon()
parcel.drag_slowdown = closet.drag_slowdown
closet.forceMove(parcel)
parcel.add_fingerprint(user)
closet.add_fingerprint(user)
// SKYRAT EDIT START - CARGO BORGS
for(var/item in closet.get_all_contents())
if(istype(item, /mob))
parcel.contains_mobs = TRUE
break
// SKYRAT EDIT END
else
balloon_alert(user, "not enough paper!")
return ITEM_INTERACT_BLOCKING
else if(istype(interacting_with, /obj/machinery/portable_atmospherics))
var/obj/machinery/portable_atmospherics/portable_atmospherics = interacting_with
if(portable_atmospherics.anchored)
balloon_alert(user, "can't wrap while anchored!")
return ITEM_INTERACT_BLOCKING
if(use(3))
var/obj/item/delivery/big/parcel = new(get_turf(portable_atmospherics.loc))
parcel.base_icon_state = "deliverybox"
parcel.update_icon()
parcel.drag_slowdown = portable_atmospherics.drag_slowdown
portable_atmospherics.forceMove(parcel)
parcel.add_fingerprint(user)
portable_atmospherics.add_fingerprint(user)
else
balloon_alert(user, "not enough paper!")
return ITEM_INTERACT_BLOCKING
else
balloon_alert(user, "can't wrap!")
return ITEM_INTERACT_BLOCKING
user.visible_message(span_notice("[user] wraps [interacting_with]."))
user.log_message("has used [name] on [key_name(interacting_with)]", LOG_ATTACK, color="blue")
return ITEM_INTERACT_SUCCESS
/obj/item/stack/package_wrap/use(used, transfer = FALSE, check = TRUE)
var/turf/T = get_turf(src)
. = ..()
if(QDELETED(src) && !transfer)
new /obj/item/c_tube(T)
/obj/item/stack/package_wrap/small
desc = "You can use this to wrap items in. This roll looks a bit skimpy."
w_class = WEIGHT_CLASS_SMALL
amount = 5
merge_type = /obj/item/stack/package_wrap/small
/obj/item/c_tube
name = "cardboard tube"
desc = "A tube... of cardboard."
icon = 'icons/obj/stack_objects.dmi'
icon_state = "c_tube"
inhand_icon_state = "c_tube"
throwforce = 0
w_class = WEIGHT_CLASS_TINY
throw_speed = 3
throw_range = 5