mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 03:25:49 +01:00
Merge remote-tracking branch 'upstream/master' into blood-changes
This commit is contained in:
@@ -65,8 +65,8 @@
|
||||
|
||||
|
||||
/obj/item/areaeditor/permit/create_area()
|
||||
..()
|
||||
qdel(src)
|
||||
if(..())
|
||||
qdel(src)
|
||||
|
||||
//free golem blueprints, like permit but can claim as much as needed
|
||||
|
||||
@@ -186,25 +186,26 @@
|
||||
|
||||
|
||||
/obj/item/areaeditor/proc/create_area()
|
||||
var/area_created = FALSE
|
||||
var/res = detect_room(get_turf(usr))
|
||||
if(!istype(res,/list))
|
||||
switch(res)
|
||||
if(ROOM_ERR_SPACE)
|
||||
to_chat(usr, "<span class='warning'>The new area must be completely airtight.</span>")
|
||||
return
|
||||
return area_created
|
||||
if(ROOM_ERR_TOOLARGE)
|
||||
to_chat(usr, "<span class='warning'>The new area is too large.</span>")
|
||||
return
|
||||
return area_created
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>Error! Please notify administration.</span>")
|
||||
return
|
||||
return area_created
|
||||
var/list/turf/turfs = res
|
||||
var/str = trim(stripped_input(usr,"New area name:", "Blueprint Editing", "", MAX_NAME_LEN))
|
||||
if(!str || !length(str)) //cancel
|
||||
return
|
||||
return area_created
|
||||
if(length(str) > 50)
|
||||
to_chat(usr, "<span class='warning'>The given name is too long. The area remains undefined.</span>")
|
||||
return
|
||||
return area_created
|
||||
var/area/A = new
|
||||
A.name = str
|
||||
A.power_equip = FALSE
|
||||
@@ -220,7 +221,8 @@
|
||||
thing.change_area(old_area, A)
|
||||
|
||||
interact()
|
||||
return
|
||||
area_created = TRUE
|
||||
return area_created
|
||||
|
||||
/obj/item/areaeditor/proc/edit_area()
|
||||
var/area/A = get_area()
|
||||
|
||||
@@ -591,6 +591,9 @@ REAGENT SCANNER
|
||||
var/scan_time = 10 SECONDS //how long does it take to scan
|
||||
var/scan_cd = 60 SECONDS //how long before we can scan again
|
||||
|
||||
/obj/item/bodyanalyzer/get_cell()
|
||||
return power_supply
|
||||
|
||||
/obj/item/bodyanalyzer/advanced
|
||||
cell_type = /obj/item/stock_parts/cell/upgraded/plus
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \
|
||||
created_window = /obj/structure/window/basic
|
||||
full_window = /obj/structure/window/full/basic
|
||||
merge_type = /obj/item/stack/sheet/glass
|
||||
point_value = 1
|
||||
|
||||
/obj/item/stack/sheet/glass/fifty
|
||||
amount = 50
|
||||
@@ -90,6 +91,7 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \
|
||||
created_window = /obj/structure/window/reinforced
|
||||
full_window = /obj/structure/window/full/reinforced
|
||||
merge_type = /obj/item/stack/sheet/rglass
|
||||
point_value = 4
|
||||
|
||||
/obj/item/stack/sheet/rglass/cyborg
|
||||
materials = list()
|
||||
@@ -113,6 +115,7 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \
|
||||
origin_tech = "plasmatech=2;materials=2"
|
||||
created_window = /obj/structure/window/plasmabasic
|
||||
full_window = /obj/structure/window/full/plasmabasic
|
||||
point_value = 19
|
||||
|
||||
/obj/item/stack/sheet/plasmaglass/New(loc, amount)
|
||||
recipes = GLOB.pglass_recipes
|
||||
@@ -154,6 +157,7 @@ GLOBAL_LIST_INIT(prglass_recipes, list ( \
|
||||
created_window = /obj/structure/window/plasmareinforced
|
||||
full_window = /obj/structure/window/full/plasmareinforced
|
||||
armor = list("melee" = 20, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0)
|
||||
point_value = 23
|
||||
|
||||
/obj/item/stack/sheet/plasmarglass/New(loc, amount)
|
||||
recipes = GLOB.prglass_recipes
|
||||
|
||||
@@ -144,6 +144,7 @@ var/global/list/datum/stack_recipe/snow_recipes = list(
|
||||
origin_tech = "materials=6"
|
||||
sheettype = "diamond"
|
||||
materials = list(MAT_DIAMOND=MINERAL_MATERIAL_AMOUNT)
|
||||
point_value = 25
|
||||
|
||||
/obj/item/stack/sheet/mineral/diamond/New()
|
||||
..()
|
||||
@@ -156,6 +157,7 @@ var/global/list/datum/stack_recipe/snow_recipes = list(
|
||||
origin_tech = "materials=5"
|
||||
sheettype = "uranium"
|
||||
materials = list(MAT_URANIUM=MINERAL_MATERIAL_AMOUNT)
|
||||
point_value = 20
|
||||
|
||||
/obj/item/stack/sheet/mineral/uranium/New()
|
||||
..()
|
||||
@@ -170,6 +172,7 @@ var/global/list/datum/stack_recipe/snow_recipes = list(
|
||||
materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT)
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 5
|
||||
point_value = 20
|
||||
|
||||
/obj/item/stack/sheet/mineral/plasma/New()
|
||||
..()
|
||||
@@ -196,6 +199,7 @@ var/global/list/datum/stack_recipe/snow_recipes = list(
|
||||
origin_tech = "materials=4"
|
||||
sheettype = "gold"
|
||||
materials = list(MAT_GOLD=MINERAL_MATERIAL_AMOUNT)
|
||||
point_value = 20
|
||||
|
||||
/obj/item/stack/sheet/mineral/gold/New()
|
||||
..()
|
||||
@@ -208,6 +212,7 @@ var/global/list/datum/stack_recipe/snow_recipes = list(
|
||||
origin_tech = "materials=4"
|
||||
sheettype = "silver"
|
||||
materials = list(MAT_SILVER=MINERAL_MATERIAL_AMOUNT)
|
||||
point_value = 20
|
||||
|
||||
/obj/item/stack/sheet/mineral/silver/New()
|
||||
..()
|
||||
@@ -220,6 +225,7 @@ var/global/list/datum/stack_recipe/snow_recipes = list(
|
||||
origin_tech = "materials=4"
|
||||
sheettype = "bananium"
|
||||
materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT)
|
||||
point_value = 50
|
||||
|
||||
/obj/item/stack/sheet/mineral/bananium/New(loc, amount=null)
|
||||
..()
|
||||
@@ -233,6 +239,7 @@ var/global/list/datum/stack_recipe/snow_recipes = list(
|
||||
sheettype = "tranquillite"
|
||||
materials = list(MAT_TRANQUILLITE=MINERAL_MATERIAL_AMOUNT)
|
||||
wall_allowed = FALSE //no tranquilite walls in code
|
||||
point_value = 50
|
||||
|
||||
/obj/item/stack/sheet/mineral/tranquillite/New(loc, amount=null)
|
||||
..()
|
||||
@@ -253,6 +260,7 @@ var/global/list/datum/stack_recipe/snow_recipes = list(
|
||||
throw_range = 3
|
||||
sheettype = "titanium"
|
||||
materials = list(MAT_TITANIUM=MINERAL_MATERIAL_AMOUNT)
|
||||
point_value = 20
|
||||
|
||||
var/global/list/datum/stack_recipe/titanium_recipes = list (
|
||||
new/datum/stack_recipe("titanium tile", /obj/item/stack/tile/mineral/titanium, 1, 4, 20),
|
||||
@@ -282,6 +290,7 @@ var/global/list/datum/stack_recipe/titanium_recipes = list (
|
||||
throw_range = 3
|
||||
sheettype = "plastitanium"
|
||||
materials = list(MAT_TITANIUM=2000, MAT_PLASMA=2000)
|
||||
point_value = 45
|
||||
|
||||
var/global/list/datum/stack_recipe/plastitanium_recipes = list (
|
||||
new/datum/stack_recipe("plas-titanium tile", /obj/item/stack/tile/mineral/plastitanium, 1, 4, 20),
|
||||
|
||||
@@ -105,6 +105,7 @@ var/global/list/datum/stack_recipe/metal_recipes = list(
|
||||
flags = CONDUCT
|
||||
origin_tech = "materials=1"
|
||||
merge_type = /obj/item/stack/sheet/metal
|
||||
point_value = 2
|
||||
|
||||
/obj/item/stack/sheet/metal/cyborg
|
||||
materials = list()
|
||||
@@ -151,6 +152,7 @@ var/global/list/datum/stack_recipe/plasteel_recipes = list(
|
||||
flags = CONDUCT
|
||||
origin_tech = "materials=2"
|
||||
merge_type = /obj/item/stack/sheet/plasteel
|
||||
point_value = 23
|
||||
|
||||
/obj/item/stack/sheet/plasteel/New(var/loc, var/amount=null)
|
||||
recipes = plasteel_recipes
|
||||
|
||||
@@ -9,22 +9,10 @@
|
||||
attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "smashed")
|
||||
var/perunit = MINERAL_MATERIAL_AMOUNT
|
||||
var/sheettype = null //this is used for girders in the creation of walls/false walls
|
||||
var/point_value = 0 //turn-in value for the gulag stacker - loosely relative to its rarity.
|
||||
|
||||
var/created_window = null //apparently glass sheets don't share a base type for glass specifically, so each had to define these vars individually
|
||||
var/full_window = null //moving the var declaration to here so this can be checked cleaner until someone is willing to make them share a base type properly
|
||||
usesound = 'sound/items/deconstruct.ogg'
|
||||
toolspeed = 1
|
||||
var/wall_allowed = TRUE //determines if sheet can be used in wall construction or not.
|
||||
|
||||
|
||||
// Since the sheetsnatcher was consolidated into weapon/storage/bag we now use
|
||||
// item/attackby() properly, making this unnecessary
|
||||
|
||||
/*/obj/item/stack/sheet/attackby(obj/item/W as obj, mob/user as mob, params)
|
||||
if(istype(W, /obj/item/storage/bag/sheetsnatcher))
|
||||
var/obj/item/storage/bag/sheetsnatcher/S = W
|
||||
if(!S.mode)
|
||||
S.add(src,user)
|
||||
else
|
||||
for(var/obj/item/stack/sheet/stack in locate(src.x,src.y,src.z))
|
||||
S.add(stack,user)
|
||||
..()*/
|
||||
|
||||
@@ -22,6 +22,9 @@
|
||||
var/obj/item/stock_parts/cell/high/bcell = null
|
||||
var/combat = 0 //can we revive through space suits?
|
||||
|
||||
/obj/item/defibrillator/get_cell()
|
||||
return bcell
|
||||
|
||||
/obj/item/defibrillator/New() //starts without a cell for rnd
|
||||
..()
|
||||
paddles = make_paddles()
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
|
||||
#define RPD_COOLDOWN_TIME 4 //How long should we have to wait between dispensing pipes?
|
||||
#define RPD_WALLBUILD_TIME 40 //How long should drilling into a wall take?
|
||||
#define RPD_MENU_ROTATE "Rotate pipes" //Stuff for radial menu
|
||||
#define RPD_MENU_FLIP "Flip pipes" //Stuff for radial menu
|
||||
#define RPD_MENU_DELETE "Delete pipes" //Stuff for radial menu
|
||||
|
||||
/obj/item/rpd
|
||||
name = "rapid pipe dispenser"
|
||||
@@ -172,6 +175,9 @@ var/list/pipemenu = list(
|
||||
ui.open()
|
||||
ui.set_auto_update(1)
|
||||
|
||||
/obj/item/rpd/AltClick(mob/user)
|
||||
radial_menu(user)
|
||||
|
||||
/obj/item/rpd/ui_data(mob/user, ui_key = "main", datum/topic_state/state = inventory_state)
|
||||
var/data[0]
|
||||
data["iconrotation"] = iconrotation
|
||||
@@ -200,6 +206,44 @@ var/list/pipemenu = list(
|
||||
return
|
||||
SSnanoui.update_uis(src)
|
||||
|
||||
//RPD radial menu
|
||||
|
||||
/obj/item/rpd/proc/check_menu(mob/living/user)
|
||||
if(!istype(user))
|
||||
return
|
||||
if(user.incapacitated())
|
||||
return
|
||||
if(loc != user)
|
||||
return
|
||||
return TRUE
|
||||
|
||||
/obj/item/rpd/proc/radial_menu(mob/user)
|
||||
if(!check_menu(user))
|
||||
to_chat(user, "<span class='notice'>You can't do that right now!</span>")
|
||||
return
|
||||
var/list/choices = list(
|
||||
RPD_MENU_ROTATE = image(icon = 'icons/obj/interface.dmi', icon_state = "rpd_rotate"),
|
||||
RPD_MENU_FLIP = image(icon = 'icons/obj/interface.dmi', icon_state = "rpd_flip"),
|
||||
RPD_MENU_DELETE = image(icon = 'icons/obj/interface.dmi', icon_state = "rpd_delete"),
|
||||
"UI" = image(icon = 'icons/obj/interface.dmi', icon_state = "ui_interact")
|
||||
)
|
||||
var/selected_mode = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, .proc/check_menu, user))
|
||||
if(!check_menu(user))
|
||||
return
|
||||
if(selected_mode == "UI")
|
||||
ui_interact(user)
|
||||
else
|
||||
switch(selected_mode)
|
||||
if(RPD_MENU_ROTATE)
|
||||
mode = RPD_ROTATE_MODE
|
||||
if(RPD_MENU_FLIP)
|
||||
mode = RPD_FLIP_MODE
|
||||
if(RPD_MENU_DELETE)
|
||||
mode = RPD_DELETE_MODE
|
||||
else
|
||||
return //Either nothing was selected, or an invalid mode was selected
|
||||
to_chat(user, "<span class='notice'>You set [src]'s mode.</span>")
|
||||
|
||||
/obj/item/rpd/afterattack(atom/target, mob/user, proximity)
|
||||
..()
|
||||
if(loc != user)
|
||||
@@ -236,3 +280,6 @@ var/list/pipemenu = list(
|
||||
|
||||
#undef RPD_COOLDOWN_TIME
|
||||
#undef RPD_WALLBUILD_TIME
|
||||
#undef RPD_MENU_ROTATE
|
||||
#undef RPD_MENU_FLIP
|
||||
#undef RPD_MENU_DELETE
|
||||
|
||||
@@ -20,6 +20,9 @@
|
||||
user.visible_message("<span class='suicide'>[user] is putting the live [name] in [user.p_their()] mouth! It looks like [user.p_theyre()] trying to commit suicide.</span>")
|
||||
return FIRELOSS
|
||||
|
||||
/obj/item/melee/baton/get_cell()
|
||||
return bcell
|
||||
|
||||
/obj/item/melee/baton/New()
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
@@ -39,8 +39,7 @@
|
||||
return T.attackby(C, user) //hand this off to the turf instead (for building plating, catwalks, etc)
|
||||
|
||||
/obj/structure/lattice/deconstruct(disassembled = TRUE)
|
||||
if(!can_deconstruct)
|
||||
new /obj/item/stack/rods(get_turf(src), number_of_rods)
|
||||
new /obj/item/stack/rods(get_turf(src), number_of_rods)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/lattice/blob_act()
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
/obj/structure/mineral_door/Move()
|
||||
var/turf/T = loc
|
||||
..()
|
||||
. = ..()
|
||||
move_update_air(T)
|
||||
|
||||
/obj/structure/mineral_door/Bumped(atom/user)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/structure/target_stake/Move()
|
||||
..()
|
||||
. = ..()
|
||||
// Move the pinned target along with the stake
|
||||
if(pinned_target in view(3, src))
|
||||
pinned_target.loc = loc
|
||||
|
||||
@@ -46,7 +46,7 @@ obj/structure/windoor_assembly/Destroy()
|
||||
|
||||
/obj/structure/windoor_assembly/Move()
|
||||
var/turf/T = loc
|
||||
..()
|
||||
. = ..()
|
||||
setDir(ini_dir)
|
||||
move_update_air(T)
|
||||
|
||||
|
||||
@@ -431,7 +431,7 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f
|
||||
|
||||
/obj/structure/window/Move()
|
||||
var/turf/T = loc
|
||||
..()
|
||||
. = ..()
|
||||
setDir(ini_dir)
|
||||
move_update_air(T)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user