diff --git a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm index 41b35e2f108..29a654fbc65 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm @@ -589,17 +589,88 @@ Congratulations! You are now trained for xenobiology research!"} name = "resting contraption" desc = "This looks similar to contraptions from earth. Could aliens be stealing our technology?" icon = 'icons/obj/abductor.dmi' + buildstacktype = /obj/item/stack/sheet/mineral/abductor icon_state = "bed" +/obj/structure/table_frame/abductor + name = "alien table frame" + desc = "A strudy table frame made from alien alloy." + icon_state = "alien_frame" + framestack = /obj/item/stack/sheet/mineral/abductor + framestackamount = 1 + density = 1 + +/obj/structure/table_frame/abductor/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/wrench)) + user << "You start disassembling [src]..." + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + if(do_after(user, 30/I.toolspeed, target = src)) + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + for(var/i = 1, i <= framestackamount, i++) + new framestack(get_turf(src)) + qdel(src) + return + if(istype(I, /obj/item/stack/sheet/mineral/abductor)) + var/obj/item/stack/sheet/P = I + if(P.get_amount() < 1) + user << "You need one alien alloy sheet to do this!" + return + user << "You start adding [P] to [src]..." + if(do_after(user, 50, target = src)) + P.use(1) + new /obj/structure/table/abductor(src.loc) + qdel(src) + return + /obj/structure/table/abductor name = "alien table" desc = "Advanced flat surface technology at work!" icon = 'icons/obj/smooth_structures/alien_table.dmi' icon_state = "alien_table" + buildstack = /obj/item/stack/sheet/mineral/abductor + framestack = /obj/item/stack/sheet/mineral/abductor + buildstackamount = 1 + framestackamount = 1 canSmoothWith = null + frame = /obj/structure/table_frame/abductor + /obj/structure/closet/abductor name = "alien locker" desc = "Contains secrets of the universe." icon_state = "abductor" - icon_door = "abductor" \ No newline at end of file + icon_door = "abductor" + can_weld_shut = FALSE + material_drop = /obj/item/stack/sheet/mineral/abductor + +/obj/structure/door_assembly/door_assembly_abductor + name = "alien airlock assembly" + icon = 'icons/obj/doors/airlocks/abductor/abductor_airlock.dmi' + overlays_file = 'icons/obj/doors/airlocks/abductor/overlays.dmi' + typetext = "abductor" + icontext = "abductor" + airlock_type = /obj/machinery/door/airlock/abductor + anchored = 1 + state = 1 + +/obj/structure/door_assembly/door_assembly_abductor/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/weapon/weldingtool) && !anchored ) + var/obj/item/weapon/weldingtool/WT = W + if(WT.remove_fuel(0,user)) + user.visible_message("[user] disassembles the airlock assembly.", \ + "You start to disassemble the airlock assembly...") + playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + if(do_after(user, 40/W.toolspeed, target = src)) + if( !WT.isOn() ) + return + user << "You disassemble the airlock assembly." + new /obj/item/stack/sheet/mineral/abductor(get_turf(src), 4) + qdel(src) + else + return + else if(istype(W, /obj/item/weapon/airlock_painter)) + return // no repainting + else if(istype(W, /obj/item/stack/sheet)) + return // no material modding + else + ..() \ No newline at end of file diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index 335e502f706..00357c87d86 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -299,11 +299,14 @@ /obj/machinery/door/airlock/abductor name = "alien airlock" + desc = "With humanity's current technological level, it could take years to hack this advanced airlock... or maybe we should give screwdriver a try?" icon = 'icons/obj/doors/airlocks/abductor/abductor_airlock.dmi' overlays_file = 'icons/obj/doors/airlocks/abductor/overlays.dmi' doortype = /obj/structure/door_assembly/door_assembly_abductor opacity = 1 - explosion_block = 2 + explosion_block = 3 + hackProof = 1 + aiControlDisabled = 1 ////////////////////////////////// /* diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index 1670a24e98e..7f73e2254be 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -265,7 +265,7 @@ var/global/list/datum/stack_recipe/snow_recipes = list ( \ /obj/item/stack/sheet/mineral/snow/New(var/loc, var/amount=null) recipes = snow_recipes pixel_x = rand(0,4)-4 - pixel_y = rand(0,4)-4 + pixel_y = rand(,4)-4 ..() /****************************** Others ****************************/ @@ -311,4 +311,37 @@ var/global/list/datum/stack_recipe/snow_recipes = list ( \ w_class = 3 throw_speed = 1 throw_range = 3 - origin_tech = "materials=4" \ No newline at end of file + origin_tech = "materials=4" + +/* + * Alien Alloy + */ +/obj/item/stack/sheet/mineral/abductor + name = "alien alloy" + icon = 'icons/obj/abductor.dmi' + icon_state = "sheet-abductor" + singular_name = "alien alloy sheet" + force = 5 + throwforce = 5 + w_class = 3 + throw_speed = 1 + throw_range = 3 + origin_tech = "materials=6;abductor=1" + sheettype = "abductor" + +var/global/list/datum/stack_recipe/abductor_recipes = list ( \ + new/datum/stack_recipe("alien chair", /obj/structure/chair, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("alien bed", /obj/structure/bed/abductor, 2, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("alien locker", /obj/structure/closet/abductor, 1, time = 15, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("alien table frame", /obj/structure/table_frame/abductor, 1, time = 15, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("alien airlock assembly", /obj/structure/door_assembly/door_assembly_abductor, 4, time = 20, one_per_turf = 1, on_floor = 1), \ + null, \ + new/datum/stack_recipe("alien floor tile", /obj/item/stack/tile/mineral/abductor, 1, 4, 20), \ +/* null, \ + new/datum/stack_recipe("Abductor Agent Statue", /obj/structure/statue/bananium/clown, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("Abductor Sciencist Statue", /obj/structure/statue/bananium/clown, 5, one_per_turf = 1, on_floor = 1)*/ + ) + +/obj/item/stack/sheet/mineral/abductor/New(var/loc, var/amount=null) + recipes = abductor_recipes + ..() \ No newline at end of file diff --git a/code/game/objects/items/stacks/tiles/tile_mineral.dm b/code/game/objects/items/stacks/tiles/tile_mineral.dm index 319b1035190..967d4613a80 100644 --- a/code/game/objects/items/stacks/tiles/tile_mineral.dm +++ b/code/game/objects/items/stacks/tiles/tile_mineral.dm @@ -58,3 +58,12 @@ mineralType = "bananium" materials = list(MAT_BANANIUM=500) +/obj/item/stack/tile/mineral/abductor + name = "alien floor tile" + singular_name = "alien floor tile" + desc = "A tile made out of alien alloy." + icon = 'icons/obj/abductor.dmi' + icon_state = "tile_abductor" + origin_tech = "materials=6;abductor=1" + turf_type = /turf/simulated/floor/mineral/abductor + mineralType = "abductor" \ No newline at end of file diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index e73d8c64566..94ea8e37317 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -292,16 +292,6 @@ anchored = 1 state = 1 -/obj/structure/door_assembly/door_assembly_abductor - name = "alien airlock assembly" - icon = 'icons/obj/doors/airlocks/abductor/abductor_airlock.dmi' - overlays_file = 'icons/obj/doors/airlocks/abductor/overlays.dmi' - typetext = "abductor" - icontext = "abductor" - airlock_type = /obj/machinery/door/airlock/abductor - anchored = 1 - state = 1 - /obj/structure/door_assembly/door_assembly_wood name = "wooden airlock assembly" icon = 'icons/obj/doors/airlocks/station/wood.dmi' diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index 1de69c421da..6fb3e3cb3bc 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -271,3 +271,12 @@ mineral = "metal" walltype = "iron" canSmoothWith = list(/obj/structure/falsewall/iron, /turf/simulated/wall/mineral/iron) + +/obj/structure/falsewall/abductor + name = "alien wall" + desc = "A wall with alien alloy plating." + icon = 'icons/turf/walls/abductor_wall.dmi' + icon_state = "abductor" + mineral = "abductor" + walltype = "abductor" + canSmoothWith = list(/obj/structure/falsewall/abductor, /turf/simulated/wall/mineral/abductor) diff --git a/code/game/turfs/simulated/floor/mineral_floor.dm b/code/game/turfs/simulated/floor/mineral_floor.dm index 612aec92013..35344e06e72 100644 --- a/code/game/turfs/simulated/floor/mineral_floor.dm +++ b/code/game/turfs/simulated/floor/mineral_floor.dm @@ -169,3 +169,34 @@ last_event = world.time active = 0 return + +// ALIEN ALLOY +/turf/simulated/floor/mineral/abductor + name = "alien floor" + icon_state = "alienpod1" + floor_tile = /obj/item/stack/tile/mineral/abductor + icons = list("alienpod1", "alienpod2", "alienpod3", "alienpod4", "alienpod5", "alienpod6", "alienpod7", "alienpod8", "alienpod9") + +/turf/simulated/floor/mineral/abductor/New() + ..() + icon_state = "alienpod[rand(1,9)]" + +/turf/simulated/floor/mineral/abductor/break_tile() + return //unbreakable + +/turf/simulated/floor/mineral/abductor/burn_tile() + return //unburnable + +/turf/simulated/floor/mineral/abductor/make_plating() + return ChangeTurf(/turf/simulated/floor/plating/abductor2) + + +/turf/simulated/floor/plating/abductor2 + name = "alien plating" + icon_state = "alienplating" + +/turf/simulated/floor/plating/abductor2/break_tile() + return //unbreakable + +/turf/simulated/floor/plating/abductor2/burn_tile() + return //unburnable \ No newline at end of file diff --git a/code/game/turfs/simulated/walls_mineral.dm b/code/game/turfs/simulated/walls_mineral.dm index 7333c428b75..e9014cd60a7 100644 --- a/code/game/turfs/simulated/walls_mineral.dm +++ b/code/game/turfs/simulated/walls_mineral.dm @@ -173,4 +173,16 @@ mineral = "snow" hardness = 80 sheet_type = /obj/item/stack/sheet/mineral/snow - canSmoothWith = null \ No newline at end of file + canSmoothWith = null + +/turf/simulated/wall/mineral/abductor + name = "alien wall" + desc = "A wall with alien alloy plating." + icon = 'icons/turf/walls/abductor_wall.dmi' + icon_state = "abductor" + walltype = "abductor" + mineral = "abductor" + sheet_type = /obj/item/stack/sheet/mineral/abductor + slicing_duration = 200 //alien wall takes twice as much time to slice + explosion_block = 3 + canSmoothWith = list(/turf/simulated/wall/mineral/abductor, /obj/structure/falsewall/abductor) \ No newline at end of file diff --git a/icons/obj/abductor.dmi b/icons/obj/abductor.dmi index c08d266200f..0896e9a500a 100644 Binary files a/icons/obj/abductor.dmi and b/icons/obj/abductor.dmi differ diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index 610481c7f22..b838b5a1044 100644 Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ diff --git a/icons/turf/walls/abductor_wall.dmi b/icons/turf/walls/abductor_wall.dmi new file mode 100644 index 00000000000..5d0f47046b3 Binary files /dev/null and b/icons/turf/walls/abductor_wall.dmi differ