diff --git a/baystation12.dme b/baystation12.dme index 7cf49a27f6b..24e64a560b5 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -159,6 +159,7 @@ #define FILE_DIR "code/unused/powerarmor" #define FILE_DIR "code/unused/spacecraft" #define FILE_DIR "code/WorkInProgress" +#define FILE_DIR "code/WorkInProgress/animusstation" #define FILE_DIR "code/WorkInProgress/Apples" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn/BirdMan" @@ -1142,8 +1143,12 @@ #include "code\WorkInProgress\AI_Visibility.dm" #include "code\WorkInProgress\buildmode.dm" #include "code\WorkInProgress\explosion_particles.dm" +<<<<<<< HEAD #include "code\WorkInProgress\Cael_Aislinn\BirdMan\bird_transformation.dm" #include "code\WorkInProgress\Cael_Aislinn\BirdMan\birdman.dm" +======= +#include "code\WorkInProgress\animusstation\atm.dm" +>>>>>>> fca7924e47da378a3223559e6833dc831d35e8bc #include "code\WorkInProgress\Cael_Aislinn\Rust\core_field.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\core_gen.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\core_monitor.dm" @@ -1164,7 +1169,6 @@ #include "code\WorkInProgress\Cael_Aislinn\Tajara\tajaran.dm" #include "code\WorkInProgress\Cael_Aislinn\Tajara\whisper.dm" #include "code\WorkInProgress\Chinsky\ashtray.dm" -#include "code\WorkInProgress\Mini\ATM.dm" #include "code\WorkInProgress\Mini\atmos_control.dm" #include "code\WorkInProgress\Mini\pipe_heater.dm" #include "code\WorkInProgress\Mloc\Shortcuts.dm" diff --git a/code/WorkInProgress/Ported/Abi79/uplinks.dm b/code/WorkInProgress/Ported/Abi79/uplinks.dm index f7af9e38cf3..203cbb77bb7 100644 --- a/code/WorkInProgress/Ported/Abi79/uplinks.dm +++ b/code/WorkInProgress/Ported/Abi79/uplinks.dm @@ -95,7 +95,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid if(uses > 6) randomItems.Add("/obj/item/weapon/aiModule/syndicate") //Hacked AI Upload Module - randomItems.Add("/obj/machinery/singularity_beacon/syndicate") //Singularity Beacon + randomItems.Add("/obj/item/device/radio/beacon/syndicate") //Singularity Beacon if(uses > 5) randomItems.Add("/obj/item/weapon/gun/projectile") //Revolver @@ -108,7 +108,6 @@ A list of items and costs is stored under the datum of every game mode, alongsid randomItems.Add("/obj/item/weapon/melee/energy/sword") //Energy Sword randomItems.Add("/obj/item/clothing/mask/gas/voice") //Voice Changer randomItems.Add("/obj/item/device/chameleon") //Chameleon Projector - randomItems.Add("/obj/item/clothing/glasses/thermal") //Syndicate Space Suit if(uses > 2) randomItems.Add("/obj/item/weapon/storage/emp_kit") //EMP Grenades @@ -120,15 +119,19 @@ A list of items and costs is stored under the datum of every game mode, alongsid randomItems.Add("/obj/item/weapon/storage/syndie_kit/space") //Syndicate Space Suit randomItems.Add("/obj/item/device/encryptionkey/binary") //Binary Translator Key randomItems.Add("/obj/item/weapon/storage/syndie_kit/imp_freedom") //Freedom Implant + randomItems.Add("/obj/item/clothing/glasses/thermal") //Thermal Imaging Goggles if(uses > 1) - var/list/usrItems = usr.get_contents() +/* + var/list/usrItems = usr.get_contents() //Checks to see if the user has a revolver before giving ammo var/hasRevolver = 0 for(var/obj/I in usrItems) //Only add revolver ammo if the user has a gun that can shoot it if(istype(I,/obj/item/weapon/gun/projectile)) hasRevolver = 1 if(hasRevolver) randomItems.Add("/obj/item/ammo_magazine/a357") //Revolver ammo +*/ + randomItems.Add("/obj/item/ammo_magazine/a357") //Revolver ammo randomItems.Add("/obj/item/clothing/shoes/syndigaloshes") //No-Slip Syndicate Shoes randomItems.Add("/obj/item/weapon/plastique") //C4 @@ -145,19 +148,19 @@ A list of items and costs is stored under the datum of every game mode, alongsid switch(href_list["buy_item"]) //Ok, this gets a little messy, sorry. if("/obj/item/weapon/circuitboard/teleporter") uses -= 20 - if("/obj/item/toy/syndicateballoon" , "/obj/item/weapon/storage/syndie_kit/imp_uplink") + if("/obj/item/toy/syndicateballoon" , "/obj/item/weapon/storage/syndie_kit/imp_uplink" , "/obj/item/weapon/storage/box/syndicate") uses -= 10 - if("/obj/item/weapon/aiModule/syndicate" , "/obj/machinery/singularity_beacon/syndicate" , "/obj/item/weapon/storage/box/syndicate") + if("/obj/item/weapon/aiModule/syndicate" , "/obj/item/device/radio/beacon/syndicate") uses -= 7 if("/obj/item/weapon/gun/projectile") uses -= 6 if("/obj/item/weapon/gun/energy/crossbow" , "/obj/item/device/powersink") uses -= 5 - if("/obj/item/weapon/melee/energy/sword" , "/obj/item/clothing/mask/gas/voice" , "/obj/item/device/chameleon" , "/obj/item/clothing/glasses/thermal") + if("/obj/item/weapon/melee/energy/sword" , "/obj/item/clothing/mask/gas/voice" , "/obj/item/device/chameleon") uses -= 4 if("/obj/item/weapon/storage/emp_kit" , "/obj/item/weapon/pen/paralysis" , "/obj/item/weapon/cartridge/syndicate" , "/obj/item/clothing/under/chameleon" , \ "/obj/item/weapon/card/id/syndicate" , "/obj/item/weapon/card/emag" , "/obj/item/weapon/storage/syndie_kit/space" , "/obj/item/device/encryptionkey/binary" , \ - "/obj/item/weapon/storage/syndie_kit/imp_freedom") + "/obj/item/weapon/storage/syndie_kit/imp_freedom" , "/obj/item/clothing/glasses/thermal") uses -= 3 if("/obj/item/ammo_magazine/a357" , "/obj/item/clothing/shoes/syndigaloshes" , "/obj/item/weapon/plastique") uses -= 2 diff --git a/code/WorkInProgress/Ported/policetape.dm b/code/WorkInProgress/Ported/policetape.dm index bb6db3117b7..4a6d1b7c066 100644 --- a/code/WorkInProgress/Ported/policetape.dm +++ b/code/WorkInProgress/Ported/policetape.dm @@ -73,7 +73,7 @@ var/turf/T = get_turf(A) var/obj/item/tape/P = new tape_type(T.x,T.y,T.z) P.loc = locate(T.x,T.y,T.z) - P.icon_state = "door" + P.icon_state = "[src.icon_base]_door" P.layer = 3.2 user << "\blue You finish placing the [src]." diff --git a/code/WorkInProgress/SkyMarshal/wardrobes.dm b/code/WorkInProgress/SkyMarshal/wardrobes.dm index 01612e1dd85..56b7f4d36fb 100755 --- a/code/WorkInProgress/SkyMarshal/wardrobes.dm +++ b/code/WorkInProgress/SkyMarshal/wardrobes.dm @@ -249,7 +249,7 @@ new /obj/item/device/flashlight/pen(src) new /obj/item/clothing/gloves/latex(src) new /obj/item/clothing/suit/bio_suit/cmo(src) - new /obj/item/clothing/head/bio_hood/general(src) + new /obj/item/clothing/head/bio_hood/cmo(src) new /obj/item/clothing/suit/storage/labcoat/cmo(src) new /obj/item/clothing/suit/storage/labcoat/cmoalt(src) new /obj/item/clothing/shoes/brown(src) @@ -432,6 +432,7 @@ new /obj/item/device/radio/headset/headset_sec(src) new /obj/item/clothing/shoes/brown(src) new /obj/item/clothing/under/det(src) + new /obj/item/weapon/camera_film(src) /obj/item/wardrobe/officer name = "\improper Security Officer Wardrobe" @@ -538,7 +539,7 @@ new /obj/item/device/pda/quartermaster(src) new /obj/item/device/radio/headset/headset_cargo(src) new /obj/item/clothing/shoes/black(src) - new /obj/item/clothing/under/rank/cargo(src) + new /obj/item/clothing/under/rank/cargotech(src) /obj/item/wardrobe/mining name = "\improper Shaft Miner Wardrobe" diff --git a/code/WorkInProgress/animusstation/atm.dm b/code/WorkInProgress/animusstation/atm.dm new file mode 100644 index 00000000000..cbb61e6e79c --- /dev/null +++ b/code/WorkInProgress/animusstation/atm.dm @@ -0,0 +1,165 @@ +/* + +TODO: +give money an actual use (QM stuff, vending machines) +send money to people (might be worth attaching money to custom database thing for this, instead of being in the ID) +log transactions + +*/ + +/obj/machinery/atm + name = "\improper NanoTrasen Automatic Teller Machine" + desc = "For all your monetary needs!" + icon = 'terminals.dmi' + icon_state = "atm" + anchored = 1 + use_power = 1 + idle_power_usage = 10 + var + obj/item/weapon/card/id/card + obj/item/weapon/spacecash/cashes = list() + inserted = 0 + accepted = 0 + pincode = 0 + + attackby(var/obj/A, var/mob/user) + if(istype(A,/obj/item/weapon/spacecash)) + cashes += A + user.drop_item() + A.loc = src + inserted += A:worth + return + if(istype(A,/obj/item/weapon/coin)) + if(istype(A,/obj/item/weapon/coin/iron)) + cashes += A + user.drop_item() + A.loc = src + inserted += 1 + return + if(istype(A,/obj/item/weapon/coin/silver)) + cashes += A + user.drop_item() + A.loc = src + inserted += 10 + return + if(istype(A,/obj/item/weapon/coin/gold)) + cashes += A + user.drop_item() + A.loc = src + inserted += 50 + return + if(istype(A,/obj/item/weapon/coin/plasma)) + cashes += A + user.drop_item() + A.loc = src + inserted += 2 + return + if(istype(A,/obj/item/weapon/coin/diamond)) + cashes += A + user.drop_item() + A.loc = src + inserted += 300 + return + user << "You insert your [A.name] in ATM" + ..() + + attack_hand(var/mob/user) + if(istype(user, /mob/living/silicon)) + user << "\red Artificial unit recognized. Artificial units do not currently receive monetary compensation, as per NanoTrasen regulation #1005." + return + + if(!(stat && NOPOWER) && ishuman(user)) + var/dat + user.machine = src + if(!accepted) + if(scan(user)) + pincode = input(usr,"Enter a pin-code") as num + if(card.checkaccess(pincode,usr)) + accepted = 1 +// usr << sound('nya.mp3') + else + dat = null + dat += "

NanoTrasen Automatic Teller Machine


" + dat += "For all your monetary needs!

" + dat += "Welcome, [card.registered_name]. You have [card.money] credits deposited.
" + dat += "Current inserted item value: [inserted] credits.

" + dat += "Please, select action
" + dat += "Withdraw Physical Credits
" + dat += "Eject Inserted Items
" + dat += "Convert Inserted Items to Credits
" + dat += "Lock ATM
" + user << browse(dat,"window=atm") + onclose(user,"close") + proc + withdraw(var/mob/user) + if(accepted) + var/amount = input("How much would you like to withdraw?", "Amount", 0) in list(1,10,20,50,100,200,500,1000, 0) + if(amount == 0) + return + if(card.money >= amount) + card.money -= amount + switch(amount) + if(1) + new /obj/item/weapon/spacecash(loc) + if(10) + new /obj/item/weapon/spacecash/c10(loc) + if(20) + new /obj/item/weapon/spacecash/c20(loc) + if(50) + new /obj/item/weapon/spacecash/c50(loc) + if(100) + new /obj/item/weapon/spacecash/c100(loc) + if(200) + new /obj/item/weapon/spacecash/c200(loc) + if(500) + new /obj/item/weapon/spacecash/c500(loc) + if(1000) + new /obj/item/weapon/spacecash/c1000(loc) + else + user << "\red Error: Insufficient funds." + return + + scan(var/mob/user) + if(istype(user,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + if(H.wear_id) + if(istype(H.wear_id, /obj/item/weapon/card/id)) + card = H.wear_id + return 1 + if(istype(H.wear_id,/obj/item/device/pda)) + var/obj/item/device/pda/P = H.wear_id + if(istype(P.id,/obj/item/weapon/card/id)) + card = P.id + return 1 + return 0 + return 0 + + insert() + if(accepted) + card.money += inserted + inserted = 0 + + Topic(href,href_list) + if (usr.machine==src && get_dist(src, usr) <= 1 || istype(usr, /mob/living/silicon/ai)) + if(href_list["eca"]) + if(accepted) + for(var/obj/item/weapon/spacecash/M in cashes) + M.loc = loc + inserted = 0 + if(!cashes) + cashes = null + if(href_list["with"] && card) + withdraw(usr) + if(href_list["ins"] && card) + if(accepted) + card.money += inserted + inserted = 0 + if(href_list["lock"]) + card = null + accepted = 0 + usr.machine = null + usr << browse(null,"window=atm") + src.updateUsrDialog() + else + usr.machine = null + usr << browse(null,"window=atm") diff --git a/code/defines/obj/supplypacks.dm b/code/defines/obj/supplypacks.dm index d1f725a972d..076a0bccd49 100755 --- a/code/defines/obj/supplypacks.dm +++ b/code/defines/obj/supplypacks.dm @@ -76,6 +76,8 @@ name = "Arts and Crafts supplies" contains = list("/obj/item/weapon/storage/crayonbox", "/obj/item/weapon/camera_test", + "/obj/item/weapon/camera_film", + "/obj/item/weapon/camera_film", "/obj/item/weapon/storage/photo_album", "/obj/item/weapon/packageWrap", "/obj/item/weapon/reagent_containers/glass/paint/red", diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 1bc78daa926..39b66e92b0f 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -159,7 +159,7 @@ ammo = 30 /obj/item/weapon/spacecash - name = "space cash" + name = "stack of credits" desc = "It's worth 1 credit." gender = PLURAL icon = 'items.dmi' @@ -175,6 +175,7 @@ var/access = list() access = access_crate_cash var/worth = 1 + var/amount = 1 /obj/item/weapon/spacecash/c10 icon_state = "spacecash10" @@ -211,6 +212,51 @@ access = access_crate_cash desc = "It's worth 1000 credits." worth = 1000 +/obj/item/weapon/spacecash/attack_self(var/mob/user) + var/dat = "Space cash stack" + dat += "Credit amount - [worth * amount]
" + dat += "Take amount
" + user << browse(dat,"window=money") + +/obj/item/weapon/spacecash/Topic(href, href_list) + if(href_list["takemoney"]) + var/a = 1 + a = input(usr,"How much you want take?") as num + if((a > src.amount) || (a < 0)) + usr << "\red You don't have that many credits." + return + src.amount -= a + var/obj/item/weapon/spacecash/S + if(a <= 0) + return + switch(src.worth) + if(1) + S = new /obj/item/weapon/spacecash(get_turf(src)) + if(10) + S = new /obj/item/weapon/spacecash/c10(get_turf(src)) + if(20) + S = new /obj/item/weapon/spacecash/c20(get_turf(src)) + if(50) + S = new /obj/item/weapon/spacecash/c50(get_turf(src)) + if(100) + S = new /obj/item/weapon/spacecash/c100(get_turf(src)) + if(200) + S = new /obj/item/weapon/spacecash/c200(get_turf(src)) + if(500) + S = new /obj/item/weapon/spacecash/c500(get_turf(src)) + if(1000) + S = new /obj/item/weapon/spacecash/c1000(get_turf(src)) + S.amount = a + if(src.amount == 0) + del(src) +/obj/item/weapon/spacecash/attackby(var/obj/I, var/mob/user) + if(!I) + return + if(istype(I,src)) + src.amount += I:amount + user << "You add [I:amount] credits to stack." + del(I) + /obj/item/device/mass_spectrometer desc = "A hand-held mass spectrometer which identifies trace chemicals in a blood sample." @@ -573,11 +619,12 @@ item_state = "card-id" var/access = list() var/registered_name = null // The name registered_name on the card - + var/pin = 0 + var/money = 0 var/assignment = null var/over_jumpsuit = 1 // If set to 0, it won't display on top of the mob's jumpsuit var/dorm = 0 // determines if this ID has claimed a dorm already - + var/obj/item/weapon/credit_card/card var/blood_type = "\[UNSET\]" var/dna_hash = "\[UNSET\]" var/fingerprint_hash = "\[UNSET\]" @@ -865,6 +912,7 @@ /obj/item/weapon/handcuffs/cable name = "cable restraints" desc = "Looks like some cables tied together. Could be used to tie something up." + icon_state = "cuff_red" /obj/item/weapon/locator name = "locator" diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index e67d702ed53..6153568bcba 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -45,7 +45,6 @@ Stealth and Camouflage Items; /obj/item/clothing/shoes/syndigaloshes:2:No-Slip Syndicate Shoes; /obj/item/weapon/card/id/syndicate:3:Agent ID card; /obj/item/clothing/mask/gas/voice:4:Voice Changer; -/obj/item/clothing/glasses/thermal:4:Thermal Imaging Glasses; /obj/item/device/chameleon:4:Chameleon-Projector; /obj/item/weapon/stamperaser:1:Stamp Remover and Forger; Whitespace:Seperator; @@ -56,11 +55,12 @@ Devices and Tools; /obj/item/device/encryptionkey/traitor:3:Traitor Radio Key; /obj/item/device/encryptionkey/binary:3:Binary Translator Key; /obj/item/weapon/storage/syndie_kit/space:3:Space Suit; +/obj/item/clothing/glasses/thermal:3:Thermal Imaging Glasses; /obj/item/weapon/aiModule/syndicate:7:Hacked AI Upload Module; /obj/item/weapon/plastique:2:C-4 (Destroys walls); /obj/item/weapon/syndie/c4explosive:4:Low Power Explosive Charge, with Detonator; /obj/item/device/powersink:5:Powersink (DANGER!); -/obj/machinery/singularity_beacon/syndicate:7:Singularity Beacon (DANGER!); +/obj/item/device/radio/beacon/syndicate:7:Singularity Beacon (DANGER!); /obj/item/weapon/circuitboard/teleporter:10:Teleporter Circuit Board; Whitespace:Seperator; Implants; diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index 41490b1de7f..1436addff08 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -122,7 +122,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 H.equip_if_possible(new /obj/item/device/radio/headset/headset_cargo(H), H.slot_ears) - H.equip_if_possible(new /obj/item/clothing/under/rank/cargo(H), H.slot_w_uniform) + H.equip_if_possible(new /obj/item/clothing/under/rank/cargotech(H), H.slot_w_uniform) H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes) H.equip_if_possible(new /obj/item/device/pda/quartermaster(H), H.slot_belt) return 1 diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 7b9e21ab0ac..4bdc2b9890e 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -304,6 +304,11 @@ var/global/datum/controller/occupations/job_master C.assignment = title C.name = "[C.registered_name]'s ID Card ([C.assignment])" C.access = get_access(rank) + C.pin = rand(1000,9999) + C.money = 10 * rand(50,200) + H << "\blue Your station account has [C.money] credits. The pin-code is [C.pin]." + if(H.mind) + H.mind.memory += "Your pin-code is - [C.pin]
" H.equip_if_possible(C, H.slot_wear_id) if(!H.equip_if_possible(new /obj/item/weapon/pen(H), H.slot_r_store)) H.equip_if_possible(new /obj/item/weapon/pen(H), H.slot_ears) diff --git a/code/game/machinery/airlock_control.dm b/code/game/machinery/airlock_control.dm index afb73392adf..d93ff2a4985 100644 --- a/code/game/machinery/airlock_control.dm +++ b/code/game/machinery/airlock_control.dm @@ -175,7 +175,10 @@ obj/machinery/access_button icon_state = "access_button_off" attack_hand(mob/user) - if(radio_connection) + if(!allowed(user)) + user << "\red Access Denied" + + else if(radio_connection) var/datum/signal/signal = new signal.transmission_method = 1 //radio signal signal.data["tag"] = master_tag diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index ccc94d6fdbe..f0cb70659c3 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -371,7 +371,7 @@ "\red You hear a whine as \the [src]'s is hit by something dense.") H.UpdateDamageIcon() H.updatehealth() - playsound(src.loc, 'punch1.ogg', 50, 1, -3) + playsound(src.loc, 'tablehit1.ogg', 50, 1, -3) else //Lets do REAL DAMAGE, YEAH! G.affecting.attack_log += text("\[[time_stamp()]\] Has been smashed on a table by [G.assailant.name] ([G.assailant.ckey])") G.assailant.attack_log += text("\[[time_stamp()]\] Smashed [G.affecting.name] ([G.affecting.ckey]) on a table.") @@ -409,7 +409,7 @@ "\red You hear the nauseating crunch of bone and gristle on solid metal.") H.UpdateDamageIcon() H.updatehealth() - playsound(src.loc, 'punch1.ogg', 50, 1, -3) + playsound(src.loc, 'tablehit1.ogg', 50, 1, -3) return G.affecting.loc = src.loc G.affecting.Weaken(5) diff --git a/code/game/machinery/door_control.dm b/code/game/machinery/door_control.dm index 7c9e3135609..3b7e784473c 100644 --- a/code/game/machinery/door_control.dm +++ b/code/game/machinery/door_control.dm @@ -63,6 +63,7 @@ return if(!allowed(user) && (wires & 1)) + user << "\red Access Denied" flick("doorctrl-denied",src) return @@ -81,8 +82,8 @@ if(specialfunctions & IDSCAN) D.aiDisabledIdScanner = 1 if(specialfunctions & BOLTS) - spawn(5) - D.locked = 1 + D.locked = 1 + D.update_icon() if(specialfunctions & SHOCK) D.secondsElectrified = -1 @@ -95,8 +96,8 @@ if(specialfunctions & IDSCAN) D.aiDisabledIdScanner = 0 if(specialfunctions & BOLTS) - spawn(5) - D.locked = 0 + D.locked = 0 + D.update_icon() if(specialfunctions & SHOCK) D.secondsElectrified = 0 diff --git a/code/game/objects/closets/secure/cargo.dm b/code/game/objects/closets/secure/cargo.dm index 6ae193e14d7..85e59b83a4f 100644 --- a/code/game/objects/closets/secure/cargo.dm +++ b/code/game/objects/closets/secure/cargo.dm @@ -13,7 +13,7 @@ New() ..() sleep(2) - new /obj/item/clothing/under/rank/cargo(src) + new /obj/item/clothing/under/rank/cargotech(src) new /obj/item/clothing/shoes/brown(src) new /obj/item/device/radio/headset/headset_cargo(src) new /obj/item/clothing/gloves/black(src) diff --git a/code/game/objects/closets/secure/medical.dm b/code/game/objects/closets/secure/medical.dm index 1f4bacbad35..da7e6aec545 100644 --- a/code/game/objects/closets/secure/medical.dm +++ b/code/game/objects/closets/secure/medical.dm @@ -72,6 +72,20 @@ new /obj/item/device/pda/medical(src) new /obj/item/weapon/storage/firstaid/regular(src) new /obj/item/device/flashlight/pen(src) + switch(pick(list("blue", "green", "purple"))) + if ("blue") + new /obj/item/clothing/under/rank/medical/blue(src) + if ("green") + new /obj/item/clothing/under/rank/medical/green(src) + if ("purple") + new /obj/item/clothing/under/rank/medical/purple(src) + switch(pick(list("blue", "green", "purple"))) + if ("blue") + new /obj/item/clothing/under/rank/medical/blue(src) + if ("green") + new /obj/item/clothing/under/rank/medical/green(src) + if ("purple") + new /obj/item/clothing/under/rank/medical/purple(src) new /obj/item/weapon/cartridge/medical(src) new /obj/item/device/radio/headset/headset_med(src) return diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 3993a1e2acf..fbaf1ff3d6b 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -63,7 +63,10 @@ O.place = "handcuff" M.requests += O spawn( 0 ) - playsound(src.loc, 'handcuffs.ogg', 30, 1, -2) + if(istype(src, /obj/item/weapon/handcuffs/cable)) + playsound(src.loc, 'cablecuff.ogg', 30, 1, -2) + else + playsound(src.loc, 'handcuffs.ogg', 30, 1, -2) O.process() return else @@ -77,7 +80,10 @@ O.place = "handcuff" M.requests += O spawn( 0 ) - playsound(src.loc, 'handcuffs.ogg', 30, 1, -2) + if(istype(src, /obj/item/weapon/handcuffs/cable)) + playsound(src.loc, 'cablecuff.ogg', 30, 1, -2) + else + playsound(src.loc, 'handcuffs.ogg', 30, 1, -2) O.process() return return diff --git a/code/game/objects/items/weapons/cameras.dm b/code/game/objects/items/weapons/cameras.dm index a4f12d5b597..8acba217c74 100644 --- a/code/game/objects/items/weapons/cameras.dm +++ b/code/game/objects/items/weapons/cameras.dm @@ -38,7 +38,7 @@ /obj/item/weapon/camera_test name = "camera" icon = 'items.dmi' - desc = "A one use - polaroid camera. 10 photos left." + desc = "A polaroid camera. It has 30 photos left." icon_state = "camera" item_state = "electropack" w_class = 2.0 @@ -47,6 +47,7 @@ throwforce = 5 throw_speed = 4 throw_range = 10 + var/pictures_max = 30 var/pictures_left = 30 var/can_use = 1 @@ -60,6 +61,13 @@ var/icon/img //Big photo image var/scribble //Scribble on the back. +/obj/item/weapon/camera_film + name = "film cartridge" + icon = 'items.dmi' + desc = "A camera film cartridge. Insert it into a camera to reload it." + icon_state = "film" + item_state = "electropack" + w_class = 1.0 /obj/item/weapon/photo/attack_self(var/mob/user as mob) ..() @@ -145,9 +153,11 @@ if (can_use) can_use = 0 icon_state = "camera_off" + usr << "\red You turn the camera off." else can_use = 1 icon_state = "camera" + usr << "\blue You turn the camera on." /obj/item/weapon/camera_test/proc/get_mobs(turf/the_turf as turf) var/mob_detail @@ -206,7 +216,7 @@ playsound(src.loc, pick('polaroid1.ogg','polaroid2.ogg'), 75, 1, -3) pictures_left-- - src.desc = "A one use - polaroid camera. [pictures_left] photos left." + src.desc = "A polaroid camera. It has [pictures_left] photos left." user << "\blue [pictures_left] photos left." can_use = 0 icon_state = "camera_off" @@ -214,4 +224,16 @@ can_use = 1 icon_state = "camera" - +/obj/item/weapon/camera_test/attackby(A as obj, mob/user as mob) + if (istype(A, /obj/item/weapon/camera_film)) + if (src.pictures_left >= pictures_max) + user << "\blue It's already full!" + return 1 + else + del(A) + src.pictures_left = src.pictures_max + src.desc = "A polaroid camera. It has [pictures_left] photos left." + user << text("\blue You reload the camera film!",) + user.update_clothing() + return 1 + return diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index 5f6a3e80ebe..96e712bc5d0 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -107,6 +107,12 @@ FINGERPRINT CARD else ..() +/obj/item/weapon/card/id/proc/checkaccess(p,var/mob/user) + if(p == pin) + user << "\green Access granted" + return 1 + user << "\red Access denied" + return 0 // FINGERPRINT HOLDER diff --git a/code/game/objects/radio/beacon.dm b/code/game/objects/radio/beacon.dm index 0aae0f9e698..2d29968457a 100644 --- a/code/game/objects/radio/beacon.dm +++ b/code/game/objects/radio/beacon.dm @@ -6,7 +6,6 @@ var/code = "electronic" origin_tech = "bluespace=1" - /obj/item/device/radio/beacon/hear_talk() return @@ -32,3 +31,19 @@ proc/digest_delay() spawn(600) del(src) + + +// SINGULO BEACON SPAWNER + +/obj/item/device/radio/beacon/syndicate + name = "suspicious beacon" + desc = "A label on it reads: Activate to have a singularity beacon teleported to your location." + origin_tech = "bluespace=1;syndicate=7" + +/obj/item/device/radio/beacon/syndicate/attack_self(mob/user as mob) + if(user) + user << "\blue Locked In" + new /obj/machinery/singularity_beacon/syndicate( user.loc ) + playsound(src, 'pop.ogg', 100, 1, 1) + del(src) + return \ No newline at end of file diff --git a/code/game/objects/stool.dm b/code/game/objects/stool.dm index 1fffa4c72c0..3a2bb3f1a18 100644 --- a/code/game/objects/stool.dm +++ b/code/game/objects/stool.dm @@ -151,6 +151,18 @@ icon_state = "down" anchored = 0 +/obj/item/roller + name = "roller bed" + desc = "A collapsed roller bed that can be carried around." + icon = 'rollerbed.dmi' + icon_state = "folded" + w_class = 4.0 // Can't be put in backpacks. Oh well. + + attack_self(mob/user) + var/obj/structure/stool/bed/roller/R = new /obj/structure/stool/bed/roller(user.loc) + R.add_fingerprint(user) + del(src) + //obj/structure/stool/bed/roller/Move() /obj/structure/stool/bed/Move() ..() @@ -181,7 +193,20 @@ buckled_mob.pixel_y = 0 buckled_mob.anchored = 0 buckled_mob.buckled = null + buckled_mob = null density = 0 icon_state = "down" ..() return + +/obj/structure/stool/bed/roller/MouseDrop(over_object, src_location, over_location) + ..() + if((over_object == usr && (in_range(src, usr) || usr.contents.Find(src)))) + if(!ishuman(usr)) return + if(buckled_mob) return 0 + visible_message("[usr] collapses \the [src.name]") + new/obj/item/roller(get_turf(src)) + spawn(0) + del(src) + return + diff --git a/code/game/objects/storage/belt.dm b/code/game/objects/storage/belt.dm index 91d2086cbee..47f8c7095cd 100644 --- a/code/game/objects/storage/belt.dm +++ b/code/game/objects/storage/belt.dm @@ -149,6 +149,7 @@ "/obj/item/weapon/melee/baton", "/obj/item/weapon/melee/classic_baton", "/obj/item/weapon/camera_test", + "/obj/item/weapon/camera_film", "/obj/item/weapon/cigpacket", "/obj/item/weapon/zippo", "/obj/item/device/taperecorder", diff --git a/code/game/objects/storage/storage.dm b/code/game/objects/storage/storage.dm index a266e6474c0..f5fb5c38588 100644 --- a/code/game/objects/storage/storage.dm +++ b/code/game/objects/storage/storage.dm @@ -316,7 +316,7 @@ /obj/item/weapon/storage/box/syndicate/New() ..() - switch (pickweight(list("bloodyspai" = 1, "stealth" = 1, "screwed" = 1, "guns" = 1, "freedom" = 1))) + switch (pickweight(list("bloodyspai" = 1, "stealth" = 1, "screwed" = 1, "guns" = 1, "freedom" = 1, "hacker" = 1, "lordsingulo" = 1))) if ("bloodyspai") new /obj/item/clothing/under/chameleon(src) new /obj/item/clothing/mask/gas/voice(src) @@ -352,6 +352,19 @@ U.imp = new /obj/item/weapon/implant/uplink(U) return + if ("hacker") + new /obj/item/weapon/aiModule/syndicate(src) + new /obj/item/weapon/card/emag(src) + new /obj/item/device/encryptionkey/binary(src) + return + + if ("lordsingulo") + new /obj/item/device/radio/beacon/syndicate(src) + new /obj/item/clothing/suit/space/syndicate(src) + new /obj/item/clothing/head/helmet/space/syndicate(src) + new /obj/item/weapon/card/emag(src) + return + /obj/item/weapon/storage/dice/New() new /obj/item/weapon/dice( src ) new /obj/item/weapon/dice/d20( src ) diff --git a/code/game/objects/tables_racks.dm b/code/game/objects/tables_racks.dm index 86e02346fd4..f41e750df34 100644 --- a/code/game/objects/tables_racks.dm +++ b/code/game/objects/tables_racks.dm @@ -189,7 +189,7 @@ TABLE AND RACK OBJECT INTERATIONS "\red You hear the nauseating crunch of bone and gristle on solid metal.") H.UpdateDamageIcon() H.updatehealth() - playsound(src.loc, 'punch1.ogg', 50, 1, -3) + playsound(src.loc, 'tablehit1.ogg', 50, 1, -3) return G.affecting.loc = src.loc G.affecting.Weaken(5) diff --git a/code/modules/chemical/Chemistry-Tools.dm b/code/modules/chemical/Chemistry-Tools.dm index 4625e91f428..59f7393eb73 100644 --- a/code/modules/chemical/Chemistry-Tools.dm +++ b/code/modules/chemical/Chemistry-Tools.dm @@ -2034,7 +2034,7 @@ icon_state = "beakerlarge" item_state = "beaker" m_amt = 0 - g_amt = 15000 + g_amt = 5000 volume = 100 amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10,15,25,30,50,100) diff --git a/code/modules/clothing/jumpsuit.dm b/code/modules/clothing/jumpsuit.dm index 67e8cd57b54..afefffb0a4d 100644 --- a/code/modules/clothing/jumpsuit.dm +++ b/code/modules/clothing/jumpsuit.dm @@ -273,7 +273,7 @@ armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0) /obj/item/clothing/under/rank/medical - desc = "It's made of a special fiber that provides minor protection against biohazards. it has a cross on the chest denoting that the wearer is trained medical personnel." + desc = "It's made of a special fiber that provides minor protection against biohazards. It has a cross on the chest denoting that the wearer is trained medical personnel." name = "medical doctor's jumpsuit" icon_state = "medical" item_state = "w_suit" @@ -281,12 +281,32 @@ permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) +//SKRUBS + +/obj/item/clothing/under/rank/medical/blue + name = "medical scrubs" + desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in baby blue." + icon_state = "scrubsblue" + color = "scrubsblue" + +/obj/item/clothing/under/rank/medical/green + name = "medical scrubs" + desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in dark green." + icon_state = "scrubsgreen" + color = "scrubsgreen" + +/obj/item/clothing/under/rank/medical/purple + name = "medical scrubs" + desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in deep purple." + icon_state = "scrubspurple" + color = "scrubspurple" + /obj/item/clothing/under/rank/chief_medical_officer desc = "It's a jumpsuit worn by those with the experience to be \"Chief Medical Officer\". It provides minor biological protection." name = "chief medical officer's jumpsuit" - icon_state = "medical" + icon_state = "cmo" item_state = "w_suit" - color = "medical" + color = "cmo" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 10, rad = 0) @@ -301,17 +321,17 @@ /obj/item/clothing/under/rank/cargo name = "quartermaster's jumpsuit" - desc = "It's a jumpsuit worn by the quartermaster. It's specially designed to prevent back injuries caused by heavy lifting." - icon_state = "lightbrown" + desc = "It's a jumpsuit worn by the quartermaster. It's specially designed to prevent back injuries caused by pushing paper." + icon_state = "qm" item_state = "lb_suit" - color = "cargo" + color = "qm" /obj/item/clothing/under/rank/cargotech - name = "cargotech's jumpsuit" - desc = "'Shooooorts! They're comfy and easy to wear!'" + name = "cargo technician's jumpsuit" + desc = "Shooooorts! They're comfy and easy to wear!" icon_state = "cargotech" - item_state = "cargotech" - color = "cargotech" + item_state = "lb_suit" + color = "cargo" /obj/item/clothing/under/rank/mailman name = "mailman's jumpsuit" @@ -532,6 +552,7 @@ armor = list(melee = 100, bullet = 100, laser = 100,energy = 100, bomb = 100, bio = 100, rad = 100) // Cheerleader outfits or something + /obj/item/clothing/under/cheerleader name = "cheerleader uniform" desc = "Looks breezy." @@ -552,6 +573,7 @@ /obj/item/clothing/under/cheerleader/white icon_state = "white_cheer" color = "white_cheer" + //End of cheerleaders /obj/item/clothing/under/captainmal diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index 415e32c6982..a4f85275d46 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -62,6 +62,9 @@ /obj/item/clothing/suit/bio_suit/cmo icon_state = "bio_cmo" +/obj/item/clothing/head/bio_hood/cmo + icon_state = "bio_cmo" + /obj/item/clothing/suit/bio_suit/plaguedoctorsuit name = "Plague doctor suit" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index ea4ab718da3..7a057f2b826 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1208,10 +1208,11 @@ if (handcuffed) pulling = null + var/h1 = handcuffed.icon_state if (!lying) - overlays += image("icon" = 'mob.dmi', "icon_state" = "handcuff1", "layer" = MOB_LAYER) + overlays += image("icon" = 'mob.dmi', "icon_state" = "[h1]1", "layer" = MOB_LAYER) else - overlays += image("icon" = 'mob.dmi', "icon_state" = "handcuff2", "layer" = MOB_LAYER) + overlays += image("icon" = 'mob.dmi', "icon_state" = "[h1]2", "layer" = MOB_LAYER) if (client) client.screen -= contents diff --git a/html/changelog.html b/html/changelog.html index b395bda5b81..675c3d72fc4 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -49,11 +49,32 @@ should be listed in the changelog upon commit though. Thanks. -->

17 May 2012

+

TG updated:

+ +

Erthilo updated:

+

Abi79 updated:

-

SkyMarshal updated: