Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into construction

# Conflicts:
#	_maps/map_files/cyberiad/cyberiad.dmm
This commit is contained in:
Markolie
2017-02-08 19:21:57 +01:00
83 changed files with 1537 additions and 1081 deletions
+2 -1
View File
@@ -363,7 +363,8 @@
break
/obj/structure/alien/egg/bullet_act(obj/item/projectile/Proj)
health -= Proj.damage
if((Proj.damage_type == BRUTE || Proj.damage_type == BURN))
health -= Proj.damage
..()
healthcheck()
@@ -2,11 +2,12 @@
icon = 'icons/obj/assemblies.dmi'
name = "tank transfer valve"
icon_state = "valve_1"
item_state = "ttv"
desc = "Regulates the transfer of air between two tanks"
var/obj/item/weapon/tank/tank_one
var/obj/item/weapon/tank/tank_two
var/obj/item/device/attached_device
var/mob/attacher = null
var/obj/item/weapon/tank/tank_one = null
var/obj/item/weapon/tank/tank_two = null
var/obj/item/device/assembly/attached_device = null
var/mob/living/attacher = null
var/valve_open = 0
var/toggle = 1
origin_tech = "materials=1;engineering=1"
@@ -21,75 +22,79 @@
if(attached_device)
qdel(attached_device)
attached_device = null
attacher = null
return ..()
/obj/item/device/transfer_valve/proc/process_activation(var/obj/item/device/D)
/obj/item/device/transfer_valve/IsAssemblyHolder()
return 1
/obj/item/device/transfer_valve/attackby(obj/item/item, mob/user, params)
if(istype(item, /obj/item/weapon/tank))
/obj/item/device/transfer_valve/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/tank))
if(tank_one && tank_two)
to_chat(user, "<span class='warning'>There are already two tanks attached, remove one first.</span>")
return
if(!tank_one)
tank_one = item
user.drop_item()
item.loc = src
if(!user.unEquip(I))
return
tank_one = I
I.forceMove(src)
to_chat(user, "<span class='notice'>You attach the tank to the transfer valve.</span>")
if(I.w_class > w_class)
w_class = I.w_class
else if(!tank_two)
tank_two = item
user.drop_item()
item.loc = src
if(!user.unEquip(I))
return
tank_two = I
I.forceMove(src)
to_chat(user, "<span class='notice'>You attach the tank to the transfer valve.</span>")
if(I.w_class > w_class)
w_class = I.w_class
update_icon()
nanomanager.update_uis(src) // update all UIs attached to src
//TODO: Have this take an assemblyholder
else if(isassembly(item))
var/obj/item/device/assembly/A = item
else if(isassembly(I))
var/obj/item/device/assembly/A = I
if(A.secured)
to_chat(user, "<span class='notice'>The device is secured.</span>")
return
if(attached_device)
to_chat(user, "<span class='warning'>There is already a device attached to the valve, remove it first.</span>")
return
user.remove_from_mob(item)
user.remove_from_mob(A)
attached_device = A
A.loc = src
to_chat(user, "<span class='notice'>You attach the [item] to the valve controls and secure it.</span>")
A.forceMove(src)
to_chat(user, "<span class='notice'>You attach the [A] to the valve controls and secure it.</span>")
A.holder = src
A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb).
bombers += "[key_name(user)] attached a [item] to a transfer valve."
msg_admin_attack("[key_name_admin(user)]attached [item] to a transfer valve.")
log_game("[key_name_admin(user)] attached [item] to a transfer valve.")
bombers += "[key_name(user)] attached a [A] to a transfer valve."
msg_admin_attack("[key_name_admin(user)]attached [A] to a transfer valve.")
log_game("[key_name_admin(user)] attached [A] to a transfer valve.")
attacher = user
nanomanager.update_uis(src) // update all UIs attached to src
return
/obj/item/device/transfer_valve/HasProximity(atom/movable/AM as mob|obj)
if(!attached_device) return
/obj/item/device/transfer_valve/HasProximity(atom/movable/AM)
if(!attached_device)
return
attached_device.HasProximity(AM)
return
/obj/item/device/transfer_valve/hear_talk(mob/living/M as mob, msg)
/obj/item/device/transfer_valve/hear_talk(mob/living/M, msg)
..()
for(var/obj/O in contents)
O.hear_talk(M, msg)
/obj/item/device/transfer_valve/hear_message(mob/living/M as mob, msg)
/obj/item/device/transfer_valve/hear_message(mob/living/M, msg)
..()
for(var/obj/O in contents)
O.hear_message(M, msg)
/obj/item/device/transfer_valve/attack_self(mob/user as mob)
/obj/item/device/transfer_valve/attack_self(mob/user)
ui_interact(user)
/obj/item/device/transfer_valve/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
/obj/item/device/transfer_valve/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1)
// update the ui if it exists, returns null if no ui is passed/found
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
@@ -113,36 +118,40 @@
/obj/item/device/transfer_valve/Topic(href, href_list)
..()
if( usr.stat || usr.restrained() )
if(usr.incapacitated())
return 0
if(src.loc != usr)
if(loc != usr)
return 0
if(tank_one && href_list["tankone"])
split_gases()
valve_open = 0
tank_one.loc = get_turf(src)
tank_one.forceMove(get_turf(src))
tank_one = null
update_icon()
if((!tank_two || tank_two.w_class < 4) && (w_class > 3))
w_class = 3
else if(tank_two && href_list["tanktwo"])
split_gases()
valve_open = 0
tank_two.loc = get_turf(src)
tank_two.forceMove(get_turf(src))
tank_two = null
update_icon()
if((!tank_one || tank_one.w_class < 4) && (w_class > 3))
w_class = 3
else if(href_list["open"])
toggle_valve()
else if(attached_device)
if(href_list["rem_device"])
attached_device.loc = get_turf(src)
attached_device:holder = null
attached_device.forceMove(get_turf(src))
attached_device.holder = null
attached_device = null
update_icon()
if(href_list["device"])
attached_device.attack_self(usr)
src.add_fingerprint(usr)
add_fingerprint(usr)
return 1 // Returning 1 sends an update to attached UIs
/obj/item/device/transfer_valve/process_activation(var/obj/item/device/D)
/obj/item/device/transfer_valve/proc/process_activation(obj/item/device/D)
if(toggle)
toggle = 0
toggle_valve()
@@ -188,7 +197,7 @@
*/
/obj/item/device/transfer_valve/proc/toggle_valve()
if(valve_open==0 && (tank_one && tank_two))
if(!valve_open && tank_one && tank_two)
valve_open = 1
var/turf/bombturf = get_turf(src)
var/area/A = get_area(bombturf)
@@ -206,17 +215,12 @@
log_game("Bomb valve opened at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with [attached_device ? attached_device : "no device"], attached by [attacher_name]. Last touched by: [key_name(mob)]")
merge_gases()
spawn(20) // In case one tank bursts
for(var/i=0,i<5,i++)
src.update_icon()
for(var/i in 1 to 5)
update_icon()
sleep(10)
src.update_icon()
update_icon()
else if(valve_open==1 && (tank_one && tank_two))
else if(valve_open && tank_one && tank_two)
split_gases()
valve_open = 0
src.update_icon()
// this doesn't do anything but the timer etc. expects it to be here
// eventually maybe have it update icon to show state (timer, prox etc.) like old bombs
/obj/item/device/transfer_valve/proc/c_state()
return
update_icon()
@@ -3,6 +3,7 @@
gender = PLURAL
singular_name = "wired glass floor tile"
desc = "A glass tile, which is wired, somehow."
icon = 'icons/obj/tiles.dmi'
icon_state = "glass_wire"
w_class = 3
force = 3.0
@@ -12,9 +12,6 @@ Mineral Sheets
- Tranqillite
- Enriched Uranium
- Platinum
- Metallic Hydrogen
- Tritium
- Osmium
*/
var/global/list/datum/stack_recipe/sandstone_recipes = list ( \
@@ -24,23 +21,34 @@ var/global/list/datum/stack_recipe/sandstone_recipes = list ( \
var/global/list/datum/stack_recipe/silver_recipes = list ( \
new/datum/stack_recipe("silver door", /obj/structure/mineral_door/silver, 10, one_per_turf = 1, on_floor = 1), \
null, \
new/datum/stack_recipe("silver tile", /obj/item/stack/tile/mineral/silver, 1, 4, 20), \
)
var/global/list/datum/stack_recipe/diamond_recipes = list ( \
new/datum/stack_recipe("diamond door", /obj/structure/mineral_door/transparent/diamond, 10, one_per_turf = 1, on_floor = 1), \
null, \
new/datum/stack_recipe("diamond tile", /obj/item/stack/tile/mineral/diamond, 1, 4, 20), \
)
var/global/list/datum/stack_recipe/uranium_recipes = list ( \
new/datum/stack_recipe("uranium door", /obj/structure/mineral_door/uranium, 10, one_per_turf = 1, on_floor = 1), \
null, \
new/datum/stack_recipe("uranium tile", /obj/item/stack/tile/mineral/uranium, 1, 4, 20), \
)
var/global/list/datum/stack_recipe/gold_recipes = list ( \
new/datum/stack_recipe("golden door", /obj/structure/mineral_door/gold, 10, one_per_turf = 1, on_floor = 1), \
null, \
new/datum/stack_recipe("gold tile", /obj/item/stack/tile/mineral/gold, 1, 4, 20), \
null, \
new/datum/stack_recipe("Simple Crown", /obj/item/clothing/head/crown, 5), \
)
var/global/list/datum/stack_recipe/plasma_recipes = list ( \
new/datum/stack_recipe("plasma door", /obj/structure/mineral_door/transparent/plasma, 10, one_per_turf = 1, on_floor = 1), \
null, \
new/datum/stack_recipe("plasma tile", /obj/item/stack/tile/mineral/plasma, 1, 4, 20), \
)
var/global/list/datum/stack_recipe/plastic_recipes = list ( \
@@ -61,13 +69,24 @@ var/global/list/datum/stack_recipe/plastic_recipes = list ( \
)
var/global/list/datum/stack_recipe/bananium_recipes = list ( \
new/datum/stack_recipe("bananium tile", /obj/item/stack/tile/mineral/bananium, 1, 4, 20), \
null, \
new/datum/stack_recipe("bananium computer frame", /obj/structure/computerframe/HONKputer, 50, time = 25, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("bananium grenade casing", /obj/item/weapon/grenade/bananade/casing, 4, on_floor = 1), \
)
var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \
new/datum/stack_recipe("silent tile", /obj/item/stack/tile/silent, 1, 4, 20), \
new/datum/stack_recipe("invisible wall", /obj/structure/barricade/mime, 5, one_per_turf = 1, on_floor = 1, time = 50), \
null, \
new/datum/stack_recipe("silent tile", /obj/item/stack/tile/mineral/tranquillite, 1, 4, 20), \
)
var/global/list/datum/stack_recipe/abductor_recipes = list ( \
new/datum/stack_recipe("alien bed", /obj/structure/stool/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/abductor_tableframe, 1, time = 15, one_per_turf = 1, on_floor = 1), \
null, \
new/datum/stack_recipe("alien floor tile", /obj/item/stack/tile/mineral/abductor, 1, 4, 20), \
)
/obj/item/stack/sheet/mineral
@@ -100,11 +119,11 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \
/obj/item/stack/sheet/mineral/diamond
name = "diamond"
icon_state = "sheet-diamond"
singular_name = "diamond"
origin_tech = "materials=6"
sheettype = "diamond"
materials = list(MAT_DIAMOND=MINERAL_MATERIAL_AMOUNT)
/obj/item/stack/sheet/mineral/diamond/New()
..()
recipes = diamond_recipes
@@ -112,6 +131,7 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \
/obj/item/stack/sheet/mineral/uranium
name = "uranium"
icon_state = "sheet-uranium"
singular_name = "uranium sheet"
origin_tech = "materials=5"
sheettype = "uranium"
materials = list(MAT_URANIUM=MINERAL_MATERIAL_AMOUNT)
@@ -123,6 +143,7 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \
/obj/item/stack/sheet/mineral/plasma
name = "solid plasma"
icon_state = "sheet-plasma"
singular_name = "plasma sheet"
origin_tech = "plasmatech=2;materials=2"
sheettype = "plasma"
materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT)
@@ -161,6 +182,7 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \
/obj/item/stack/sheet/mineral/gold
name = "gold"
icon_state = "sheet-gold"
singular_name = "gold bar"
origin_tech = "materials=4"
sheettype = "gold"
materials = list(MAT_GOLD=MINERAL_MATERIAL_AMOUNT)
@@ -172,6 +194,7 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \
/obj/item/stack/sheet/mineral/silver
name = "silver"
icon_state = "sheet-silver"
singular_name = "silver bar"
origin_tech = "materials=3"
sheettype = "silver"
materials = list(MAT_SILVER=MINERAL_MATERIAL_AMOUNT)
@@ -183,23 +206,24 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \
/obj/item/stack/sheet/mineral/bananium
name = "bananium"
icon_state = "sheet-clown"
singular_name = "bananium sheet"
origin_tech = "materials=4"
sheettype = "bananium"
materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT)
/obj/item/stack/sheet/mineral/bananium/New(var/loc, var/amount=null)
/obj/item/stack/sheet/mineral/bananium/New(loc, amount=null)
..()
recipes = bananium_recipes
/obj/item/stack/sheet/mineral/tranquillite
name = "tranquillite"
singular_name = "beret"
icon_state = "sheet-mime"
singular_name = "beret"
origin_tech = "materials=4"
sheettype = "tranquillite"
materials = list(MAT_TRANQUILLITE=MINERAL_MATERIAL_AMOUNT)
/obj/item/stack/sheet/mineral/tranquillite/New(var/loc, var/amount=null)
/obj/item/stack/sheet/mineral/tranquillite/New(loc, amount=null)
..()
recipes = tranquillite_recipes
@@ -209,9 +233,7 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \
origin_tech = "materials=6"
materials = list(MAT_URANIUM=3000)
/*
* Alien Alloy
*/
//Alien Alloy
/obj/item/stack/sheet/mineral/abductor
name = "alien alloy"
icon = 'icons/obj/abductor.dmi'
@@ -225,14 +247,6 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \
origin_tech = "materials=6;abductor=1"
sheettype = "abductor"
var/global/list/datum/stack_recipe/abductor_recipes = list ( \
new/datum/stack_recipe("alien bed", /obj/structure/stool/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/abductor_tableframe, 1, time = 15, one_per_turf = 1, on_floor = 1), \
null, \
new/datum/stack_recipe("alien floor tile", /obj/item/stack/tile/mineral/abductor, 1, 4, 20), \
)
/obj/item/stack/sheet/mineral/abductor/New(var/loc, var/amount=null)
/obj/item/stack/sheet/mineral/abductor/New(loc, amount=null)
recipes = abductor_recipes
..()
@@ -1,3 +1,68 @@
/obj/item/stack/tile/mineral/plasma
name = "plasma tile"
singular_name = "plasma floor tile"
desc = "A tile made out of highly flammable plasma. This can only end well."
icon_state = "tile_plasma"
origin_tech = "plasmatech=1"
turf_type = /turf/simulated/floor/mineral/plasma
mineralType = "plasma"
materials = list(MAT_PLASMA=500)
/obj/item/stack/tile/mineral/uranium
name = "uranium tile"
singular_name = "uranium floor tile"
desc = "A tile made out of uranium. You feel a bit woozy."
icon_state = "tile_uranium"
turf_type = /turf/simulated/floor/mineral/uranium
mineralType = "uranium"
materials = list(MAT_URANIUM=500)
/obj/item/stack/tile/mineral/gold
name = "gold tile"
singular_name = "gold floor tile"
desc = "A tile made out of gold, the swag seems strong here."
icon_state = "tile_gold"
turf_type = /turf/simulated/floor/mineral/gold
mineralType = "gold"
materials = list(MAT_GOLD=500)
/obj/item/stack/tile/mineral/silver
name = "silver tile"
singular_name = "silver floor tile"
desc = "A tile made out of silver, the light shining from it is blinding."
icon_state = "tile_silver"
turf_type = /turf/simulated/floor/mineral/silver
mineralType = "silver"
materials = list(MAT_SILVER=500)
/obj/item/stack/tile/mineral/diamond
name = "diamond tile"
singular_name = "diamond floor tile"
desc = "A tile made out of diamond. Wow, just, wow."
icon_state = "tile_diamond"
origin_tech = "materials=2"
turf_type = /turf/simulated/floor/mineral/diamond
mineralType = "diamond"
materials = list(MAT_DIAMOND=500)
/obj/item/stack/tile/mineral/bananium
name = "bananium tile"
singular_name = "bananium floor tile"
desc = "A tile made out of bananium, HOOOOOOOOONK!"
icon_state = "tile_bananium"
turf_type = /turf/simulated/floor/mineral/bananium
mineralType = "bananium"
materials = list(MAT_BANANIUM=500)
/obj/item/stack/tile/mineral/tranquillite
name = "silent tile"
singular_name = "silent floor tile"
desc = "A tile made out of tranquillite, SHHHHHHHHH!"
icon_state = "tile_tranquillite"
turf_type = /turf/simulated/floor/mineral/tranquillite
mineralType = "tranquillite"
materials = list(MAT_TRANQUILLITE=500)
/obj/item/stack/tile/mineral/abductor
name = "alien floor tile"
singular_name = "alien floor tile"
@@ -1,19 +1,8 @@
/* Different misc types of tiles
* Contains:
* Grass
* Wood
* Carpet
* Plasteel
* Light
* Fakespace
* High-traction
\\ If you don't update the contains list, I'm going to shank you
*/
/obj/item/stack/tile
name = "broken tile"
singular_name = "broken tile"
desc = "A broken tile. This should not exist."
icon = 'icons/obj/items.dmi'
icon = 'icons/obj/tiles.dmi'
icon_state = "tile"
item_state = "tile"
w_class = 3
@@ -23,12 +12,64 @@
throw_range = 20
max_amount = 60
flags = CONDUCT
origin_tech = "materials=1"
var/turf_type = null
var/mineralType = null
/*
* Grass
*/
/obj/item/stack/tile/New(loc, amount)
..()
pixel_x = rand(-3, 3)
pixel_y = rand(-3, 3) //randomize a little
/obj/item/stack/tile/attackby(obj/item/W, mob/user, params)
if(iswelder(W))
var/obj/item/weapon/weldingtool/WT = W
if(is_hot(W) && !mineralType)
to_chat(user, "<span class='warning'>You can not reform this!</span>")
return
if(get_amount() < 4)
to_chat(user, "<span class='warning'>You need at least four tiles to do this!</span>")
return
if(WT.remove_fuel(0,user))
if(mineralType == "plasma")
atmos_spawn_air(SPAWN_HEAT | SPAWN_TOXINS, 5)
user.visible_message("<span class='warning'>[user.name] sets the plasma tiles on fire!</span>", \
"<span class='warning'>You set the plasma tiles on fire!</span>")
qdel(src)
return
if (mineralType == "metal")
var/obj/item/stack/sheet/metal/new_item = new(user.loc)
user.visible_message("[user.name] shaped [src] into metal with the welding tool.", \
"<span class='notice'>You shaped [src] into metal with the welding tool.</span>", \
"<span class='italics'>You hear welding.</span>")
var/obj/item/stack/rods/R = src
src = null
var/replace = (user.get_inactive_hand()==R)
R.use(4)
if(!R && replace)
user.put_in_hands(new_item)
else
var/sheet_type = text2path("/obj/item/stack/sheet/mineral/[mineralType]")
var/obj/item/stack/sheet/mineral/new_item = new sheet_type(user.loc)
user.visible_message("[user.name] shaped [src] into a sheet with the welding tool.", \
"<span class='notice'>You shaped [src] into a sheet with the welding tool.</span>", \
"<span class='italics'>You hear welding.</span>")
var/obj/item/stack/rods/R = src
src = null
var/replace = (user.get_inactive_hand()==R)
R.use(4)
if (!R && replace)
user.put_in_hands(new_item)
else
return ..()
//Grass
/obj/item/stack/tile/grass
name = "grass tiles"
gender = PLURAL
@@ -39,21 +80,18 @@
turf_type = /turf/simulated/floor/grass
burn_state = FLAMMABLE
/*
* Wood
*/
//Wood
/obj/item/stack/tile/wood
name = "wood floor tiles"
gender = PLURAL
singular_name = "wood floor tile"
desc = "an easy to fit wood floor tile"
icon_state = "tile-wood"
origin_tech = "biotech=1"
turf_type = /turf/simulated/floor/wood
burn_state = FLAMMABLE
/*
* Carpets
*/
//Carpets
/obj/item/stack/tile/carpet
name = "carpet"
singular_name = "carpet"
@@ -62,9 +100,7 @@
turf_type = /turf/simulated/floor/carpet
burn_state = FLAMMABLE
/*
* Plasteel
*/
//Plasteel
/obj/item/stack/tile/plasteel
name = "floor tiles"
gender = PLURAL
@@ -80,9 +116,7 @@
turf_type = /turf/simulated/floor/plasteel
mineralType = "metal"
/*
* Light
*/
//Light
/obj/item/stack/tile/light
name = "light tiles"
gender = PLURAL
@@ -94,9 +128,7 @@
attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "smashed")
turf_type = /turf/simulated/floor/light
/*
* Fakespace
*/
//Fakespace
/obj/item/stack/tile/fakespace
name = "astral carpet"
singular_name = "astral carpet"
@@ -120,16 +152,6 @@
/obj/item/stack/tile/noslip/loaded
amount = 20
/obj/item/stack/tile/silent
name = "silent tile"
singular_name = "silent floor tile"
desc = "A tile made out of tranquillite, SHHHHHHHHH!"
icon_state = "tile-silent"
origin_tech = "materials=1"
turf_type = /turf/simulated/floor/silent
mineralType = "tranquillite"
materials = list(MAT_TRANQUILLITE=500)
//Pod floor
/obj/item/stack/tile/pod
name = "pod floor tile"
+15 -9
View File
@@ -43,14 +43,20 @@
/obj/item/toy/balloon/attack(mob/living/carbon/human/M as mob, mob/user as mob)
return
/obj/item/toy/balloon/afterattack(atom/A as mob|obj, mob/user as mob, proximity)
if(!proximity) return
if(istype(A, /obj/structure/reagent_dispensers) && get_dist(src,A) <= 1)
A.reagents.trans_to(src, 10)
to_chat(user, "<span class='notice'>You fill the balloon with the contents of [A].</span>")
desc = "A translucent balloon with some form of liquid sloshing around in it."
update_icon()
return
/obj/item/toy/balloon/afterattack(atom/A, mob/user, proximity)
if(!proximity)
return
if(istype(A, /obj/structure/reagent_dispensers))
var/obj/structure/reagent_dispensers/RD = A
if(RD.reagents.total_volume <= 0)
to_chat(user, "<span class='warning'>[RD] is empty.</span>")
else if(reagents.total_volume >= 10)
to_chat(user, "<span class='warning'>[src] is full.</span>")
else
A.reagents.trans_to(src, 10)
to_chat(user, "<span class='notice'>You fill the balloon with the contents of [A].</span>")
desc = "A translucent balloon with some form of liquid sloshing around in it."
update_icon()
/obj/item/toy/balloon/wash(mob/user, atom/source)
if(reagents.total_volume < 10)
@@ -877,7 +883,7 @@ obj/item/toy/cards/deck/syndicate/black
/obj/item/toy/minimeteor
name = "Mini-Meteor"
desc = "Relive the excitement of a meteor shower! SweetMeat-eor. Co is not responsible for any injuries, headaches or hearing loss caused by Mini-Meteor™"
desc = "Relive the excitement of a meteor shower! SweetMeat-eor. Co is not responsible for any injuries, headaches or hearing loss caused by Mini-Meteor."
icon = 'icons/obj/toy.dmi'
icon_state = "minimeteor"
w_class = 2
@@ -49,6 +49,10 @@
return ..()
/obj/item/weapon/implant/storage/proc/get_contents() //Used for swiftly returning a list of the implant's contents i.e. for checking a theft objective's completion.
if(storage && storage.contents)
return storage.contents
/obj/item/weapon/implanter/storage
name = "implanter (storage)"
@@ -30,6 +30,14 @@
processing_objects.Remove(src)
return ..()
/obj/item/weapon/stock_parts/cell/on_varedit(modified_var)
if(modified_var == "self_recharge")
if(self_recharge)
processing_objects.Add(src)
else
processing_objects.Remove(src)
..()
/obj/item/weapon/stock_parts/cell/suicide_act(mob/user)
to_chat(viewers(user), "<span class='suicide'>[user] is licking the electrodes of the [src.name]! It looks like \he's trying to commit suicide.</span>")
return (FIRELOSS)
@@ -391,59 +391,32 @@
icon_state = "monkeycubebox"
storage_slots = 7
can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/monkeycube")
New()
..()
for(var/i = 1; i <= 5; i++)
new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped(src)
/obj/item/weapon/storage/box/farwacubes
var/monkey_cube_type = /obj/item/weapon/reagent_containers/food/snacks/monkeycube
/obj/item/weapon/storage/box/monkeycubes/New()
..()
for(var/i in 1 to 5)
new monkey_cube_type(src)
/obj/item/weapon/storage/box/monkeycubes/farwacubes
name = "farwa cube box"
desc = "Drymate brand farwa cubes. Just add water!"
icon = 'icons/obj/food/food.dmi'
icon_state = "monkeycubebox"
storage_slots = 7
can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/farwacube")
New()
..()
for(var/i = 1; i <= 5; i++)
new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/farwacube(src)
monkey_cube_type = /obj/item/weapon/reagent_containers/food/snacks/monkeycube/farwacube
/obj/item/weapon/storage/box/stokcubes
/obj/item/weapon/storage/box/monkeycubes/stokcubes
name = "stok cube box"
desc = "Drymate brand stok cubes. Just add water!"
icon = 'icons/obj/food/food.dmi'
icon_state = "monkeycubebox"
storage_slots = 7
can_hold = list("/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/stokcube")
New()
..()
for(var/i = 1; i <= 5; i++)
new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/stokcube(src)
monkey_cube_type = /obj/item/weapon/reagent_containers/food/snacks/monkeycube/stokcube
/obj/item/weapon/storage/box/neaeracubes
/obj/item/weapon/storage/box/monkeycubes/neaeracubes
name = "neaera cube box"
desc = "Drymate brand neaera cubes. Just add water!"
icon = 'icons/obj/food/food.dmi'
icon_state = "monkeycubebox"
storage_slots = 7
can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/neaeracube")
New()
..()
for(var/i = 1; i <= 5; i++)
new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/neaeracube(src)
monkey_cube_type = /obj/item/weapon/reagent_containers/food/snacks/monkeycube/neaeracube
/obj/item/weapon/storage/box/wolpincubes
/obj/item/weapon/storage/box/monkeycubes/wolpincubes
name = "wolpin cube box"
desc = "Drymate brand wolpin cubes. Just add water!"
icon = 'icons/obj/food/food.dmi'
icon_state = "monkeycubebox"
storage_slots = 7
can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/wolpincube")
New()
..()
for(var/i = 1; i <= 5; i++)
new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/wolpincube(src)
monkey_cube_type = /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wolpincube
/obj/item/weapon/storage/box/permits
name = "box of construction permits"
+6 -17
View File
@@ -266,22 +266,9 @@
else
return ..()
/obj/item/weapon/weldingtool/afterattack(obj/O as obj, mob/user as mob, proximity)
if(!proximity) return
if(istype(O, /obj/structure/reagent_dispensers/fueltank) && in_range(src, O))
if(!welding)
O.reagents.trans_to(src, max_fuel)
to_chat(user, "<span class='notice'>[src] refueled.</span>")
playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6)
update_icon()
return
else
message_admins("[key_name_admin(user)] triggered a fueltank explosion.")
log_game("[key_name(user)] triggered a fueltank explosion.")
to_chat(user, "<span class='warning'>That was stupid of you.</span>")
O.ex_act()
return
/obj/item/weapon/weldingtool/afterattack(atom/O, mob/user, proximity)
if(!proximity)
return
if(welding)
remove_fuel(1)
var/turf/location = get_turf(user)
@@ -289,7 +276,9 @@
if(isliving(O))
var/mob/living/L = O
L.IgniteMob()
if(L.IgniteMob())
message_admins("[key_name_admin(user)] set [key_name_admin(L)] on fire")
log_game("[key_name(user)] set [key_name(L)] on fire")
/obj/item/weapon/weldingtool/attack_self(mob/user)
toggle(user)
@@ -572,3 +572,38 @@
new /obj/item/weapon/storage/box/beakers(src)
new /obj/item/weapon/hand_labeler(src)
new /obj/item/weapon/hand_labeler(src)
/obj/structure/closet/crate/sci
name = "science crate"
desc = "A science crate."
icon_state = "scicrate"
icon_opened = "scicrateopen"
icon_closed = "scicrate"
/obj/structure/closet/crate/secure/scisec
name = "secure science crate"
desc = "A crate with a lock on it, painted in the scheme of the station's scientists."
icon_state = "scisecurecrate"
icon_opened = "scisecurecrateopen"
icon_closed = "scisecurecrate"
/obj/structure/closet/crate/engineering
name = "engineering crate"
desc = "An engineering crate."
icon_state = "engicrate"
icon_opened = "engicrateopen"
icon_closed = "engicrate"
/obj/structure/closet/crate/secure/engineering
name = "secure engineering crate"
desc = "A crate with a lock on it, painted in the scheme of the station's engineers."
icon_state = "engisecurecrate"
icon_opened = "engisecurecrateopen"
icon_closed = "engisecurecrate"
/obj/structure/closet/crate/engineering/electrical
name = "electrical engineering crate"
desc = "An electrical engineering crate."
icon_state = "electricalcrate"
icon_opened = "electricalcrateopen"
icon_closed = "electricalcrate"