mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-01-04 14:33:30 +00:00
Collection of gear and changes from the four gear polls on the forums includes: 2 new automatic weapons, mapped in to ERT and random weapon spawns. Laser carbine balance. Slow emergency softsuits, no armor value other than bio and rad, 4 slowdown. 1 knife, not mapped in, available for Psi's uplink merge. New vests: 2 types, 2 pocket no slowdown, 4 pocket with slowdown, second is available from cargo and one random vest spawn in armory. The first replaces all instances of the old vests. Old vests still exist in code. Mercenary vest with no slowdown, 4 pockets, and slightly better armor, not on map, possibly for Nukes or Traitor Uplink Holster rearrangement for custom loadout. Acid dispenser, mapped into robotics and science. New food items, added to vendors and rations crate. New random medical spawns, added to medbay. Cargo and loadout additions to accommodate new items. 1 beanbag loaded 5 round shotgun added to Warden's closet to compensate for officers having .45 ltls and the HoS having an e-gun, suggested by IRC and server. http://baystation12.net/forums/viewtopic.php?f=5&t=12064 http://baystation12.net/forums/viewtopic.php?f=5&t=12031 http://baystation12.net/forums/viewtopic.php?f=5&t=12027 http://baystation12.net/forums/viewtopic.php?f=5&t=12007
253 lines
7.5 KiB
Plaintext
253 lines
7.5 KiB
Plaintext
|
|
|
|
/obj/structure/reagent_dispensers
|
|
name = "Dispenser"
|
|
desc = "..."
|
|
icon = 'icons/obj/objects.dmi'
|
|
icon_state = "watertank"
|
|
density = 1
|
|
anchored = 0
|
|
pressure_resistance = 2*ONE_ATMOSPHERE
|
|
|
|
var/amount_per_transfer_from_this = 10
|
|
var/possible_transfer_amounts = list(10,25,50,100)
|
|
|
|
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
return
|
|
|
|
New()
|
|
var/datum/reagents/R = new/datum/reagents(1000)
|
|
reagents = R
|
|
R.my_atom = src
|
|
if (!possible_transfer_amounts)
|
|
src.verbs -= /obj/structure/reagent_dispensers/verb/set_APTFT
|
|
..()
|
|
|
|
examine(mob/user)
|
|
if(!..(user, 2))
|
|
return
|
|
user << "\blue It contains:"
|
|
if(reagents && reagents.reagent_list.len)
|
|
for(var/datum/reagent/R in reagents.reagent_list)
|
|
user << "\blue [R.volume] units of [R.name]"
|
|
else
|
|
user << "\blue Nothing."
|
|
|
|
verb/set_APTFT() //set amount_per_transfer_from_this
|
|
set name = "Set transfer amount"
|
|
set category = "Object"
|
|
set src in view(1)
|
|
var/N = input("Amount per transfer from this:","[src]") as null|anything in possible_transfer_amounts
|
|
if (N)
|
|
amount_per_transfer_from_this = N
|
|
|
|
ex_act(severity)
|
|
switch(severity)
|
|
if(1.0)
|
|
del(src)
|
|
return
|
|
if(2.0)
|
|
if (prob(50))
|
|
new /obj/effect/effect/water(src.loc)
|
|
del(src)
|
|
return
|
|
if(3.0)
|
|
if (prob(5))
|
|
new /obj/effect/effect/water(src.loc)
|
|
del(src)
|
|
return
|
|
else
|
|
return
|
|
|
|
blob_act()
|
|
if(prob(50))
|
|
new /obj/effect/effect/water(src.loc)
|
|
del(src)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Dispensers
|
|
/obj/structure/reagent_dispensers/watertank
|
|
name = "watertank"
|
|
desc = "A watertank"
|
|
icon = 'icons/obj/objects.dmi'
|
|
icon_state = "watertank"
|
|
amount_per_transfer_from_this = 10
|
|
New()
|
|
..()
|
|
reagents.add_reagent("water",1000)
|
|
|
|
/obj/structure/reagent_dispensers/fueltank
|
|
name = "fueltank"
|
|
desc = "A fueltank"
|
|
icon = 'icons/obj/objects.dmi'
|
|
icon_state = "weldtank"
|
|
amount_per_transfer_from_this = 10
|
|
var/modded = 0
|
|
var/obj/item/device/assembly_holder/rig = null
|
|
New()
|
|
..()
|
|
reagents.add_reagent("fuel",1000)
|
|
|
|
/obj/structure/reagent_dispensers/fueltank/examine(mob/user)
|
|
if(!..(user, 2))
|
|
return
|
|
if (modded)
|
|
user << "\red Fuel faucet is wrenched open, leaking the fuel!"
|
|
if(rig)
|
|
user << "<span class='notice'>There is some kind of device rigged to the tank."
|
|
|
|
/obj/structure/reagent_dispensers/fueltank/attack_hand()
|
|
if (rig)
|
|
usr.visible_message("[usr] begins to detach [rig] from \the [src].", "You begin to detach [rig] from \the [src]")
|
|
if(do_after(usr, 20))
|
|
usr.visible_message("\blue [usr] detaches [rig] from \the [src].", "\blue You detach [rig] from \the [src]")
|
|
rig.loc = get_turf(usr)
|
|
rig = null
|
|
overlays = new/list()
|
|
|
|
/obj/structure/reagent_dispensers/fueltank/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
src.add_fingerprint(user)
|
|
if (istype(W,/obj/item/weapon/wrench))
|
|
user.visible_message("[user] wrenches [src]'s faucet [modded ? "closed" : "open"].", \
|
|
"You wrench [src]'s faucet [modded ? "closed" : "open"]")
|
|
modded = modded ? 0 : 1
|
|
if (modded)
|
|
message_admins("[key_name_admin(user)] opened fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]), leaking fuel. (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[loc.x];Y=[loc.y];Z=[loc.z]'>JMP</a>)")
|
|
log_game("[key_name(user)] opened fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]), leaking fuel.")
|
|
leak_fuel(amount_per_transfer_from_this)
|
|
if (istype(W,/obj/item/device/assembly_holder))
|
|
if (rig)
|
|
user << "\red There is another device in the way."
|
|
return ..()
|
|
user.visible_message("[user] begins rigging [W] to \the [src].", "You begin rigging [W] to \the [src]")
|
|
if(do_after(user, 20))
|
|
user.visible_message("\blue [user] rigs [W] to \the [src].", "\blue You rig [W] to \the [src]")
|
|
|
|
var/obj/item/device/assembly_holder/H = W
|
|
if (istype(H.a_left,/obj/item/device/assembly/igniter) || istype(H.a_right,/obj/item/device/assembly/igniter))
|
|
message_admins("[key_name_admin(user)] rigged fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]) for explosion. (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[loc.x];Y=[loc.y];Z=[loc.z]'>JMP</a>)")
|
|
log_game("[key_name(user)] rigged fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]) for explosion.")
|
|
|
|
rig = W
|
|
user.drop_item()
|
|
W.loc = src
|
|
|
|
var/icon/test = getFlatIcon(W)
|
|
test.Shift(NORTH,1)
|
|
test.Shift(EAST,6)
|
|
overlays += test
|
|
|
|
return ..()
|
|
|
|
|
|
/obj/structure/reagent_dispensers/fueltank/bullet_act(var/obj/item/projectile/Proj)
|
|
if(Proj.damage_type == BRUTE || Proj.damage_type == BURN)
|
|
if(istype(Proj.firer))
|
|
message_admins("[key_name_admin(Proj.firer)] shot fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]) (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[loc.x];Y=[loc.y];Z=[loc.z]'>JMP</a>).")
|
|
log_game("[key_name(Proj.firer)] shot fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]).")
|
|
|
|
if(!istype(Proj ,/obj/item/projectile/beam/lastertag) && !istype(Proj ,/obj/item/projectile/beam/practice) )
|
|
explode()
|
|
|
|
/obj/structure/reagent_dispensers/fueltank/blob_act()
|
|
explode()
|
|
|
|
/obj/structure/reagent_dispensers/fueltank/ex_act()
|
|
explode()
|
|
|
|
/obj/structure/reagent_dispensers/fueltank/proc/explode()
|
|
if (reagents.total_volume > 500)
|
|
explosion(src.loc,1,2,4)
|
|
else if (reagents.total_volume > 100)
|
|
explosion(src.loc,0,1,3)
|
|
else
|
|
explosion(src.loc,-1,1,2)
|
|
if(src)
|
|
del(src)
|
|
|
|
/obj/structure/reagent_dispensers/fueltank/fire_act(datum/gas_mixture/air, temperature, volume)
|
|
if(temperature > T0C+500)
|
|
explode()
|
|
return ..()
|
|
|
|
/obj/structure/reagent_dispensers/fueltank/Move()
|
|
if (..() && modded)
|
|
leak_fuel(amount_per_transfer_from_this/10.0)
|
|
|
|
/obj/structure/reagent_dispensers/fueltank/proc/leak_fuel(amount)
|
|
if (reagents.total_volume == 0)
|
|
return
|
|
|
|
amount = min(amount, reagents.total_volume)
|
|
reagents.remove_reagent("fuel",amount)
|
|
new /obj/effect/decal/cleanable/liquid_fuel(src.loc, amount,1)
|
|
|
|
/obj/structure/reagent_dispensers/peppertank
|
|
name = "Pepper Spray Refiller"
|
|
desc = "Refill pepper spray canisters."
|
|
icon = 'icons/obj/objects.dmi'
|
|
icon_state = "peppertank"
|
|
anchored = 1
|
|
density = 0
|
|
amount_per_transfer_from_this = 45
|
|
New()
|
|
..()
|
|
reagents.add_reagent("condensedcapsaicin",1000)
|
|
|
|
|
|
/obj/structure/reagent_dispensers/water_cooler
|
|
name = "Water-Cooler"
|
|
desc = "A machine that dispenses water to drink."
|
|
amount_per_transfer_from_this = 5
|
|
icon = 'icons/obj/vending.dmi'
|
|
icon_state = "water_cooler"
|
|
possible_transfer_amounts = null
|
|
anchored = 1
|
|
New()
|
|
..()
|
|
reagents.add_reagent("water",500)
|
|
|
|
|
|
/obj/structure/reagent_dispensers/beerkeg
|
|
name = "beer keg"
|
|
desc = "A beer keg"
|
|
icon = 'icons/obj/objects.dmi'
|
|
icon_state = "beertankTEMP"
|
|
amount_per_transfer_from_this = 10
|
|
New()
|
|
..()
|
|
reagents.add_reagent("beer",1000)
|
|
|
|
/obj/structure/reagent_dispensers/beerkeg/blob_act()
|
|
explosion(src.loc,0,3,5,7,10)
|
|
del(src)
|
|
|
|
/obj/structure/reagent_dispensers/virusfood
|
|
name = "Virus Food Dispenser"
|
|
desc = "A dispenser of virus food."
|
|
icon = 'icons/obj/objects.dmi'
|
|
icon_state = "virusfoodtank"
|
|
amount_per_transfer_from_this = 10
|
|
anchored = 1
|
|
|
|
New()
|
|
..()
|
|
reagents.add_reagent("virusfood", 1000)
|
|
|
|
/obj/structure/reagent_dispensers/acid
|
|
name = "Sulphuric Acid Dispenser"
|
|
desc = "A dispenser of acid for industrial processes."
|
|
icon = 'icons/obj/objects.dmi'
|
|
icon_state = "acidtank"
|
|
amount_per_transfer_from_this = 10
|
|
anchored = 1
|
|
|
|
New()
|
|
..()
|
|
reagents.add_reagent("sacid", 1000)
|