diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index cfd292b4dab..708ae253922 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -56,6 +56,7 @@ /datum/supply_packs/paper name = "Bureaucracy crate" contains = list(/obj/structure/filingcabinet/chestdrawer/wheeled, + /obj/item/device/camera_film, /obj/item/weapon/hand_labeler, /obj/item/hand_labeler_refill, /obj/item/hand_labeler_refill, @@ -68,7 +69,7 @@ /obj/item/weapon/folder/yellow, /obj/item/weapon/clipboard, /obj/item/weapon/clipboard) - cost = 25 + cost = 15 containertype = /obj/structure/closet/crate containername = "Bureaucracy crate" @@ -79,23 +80,6 @@ containertype = /obj/structure/closet/crate/freezer containername = "monkey crate" - -/datum/supply_packs/beanbagammo - name = "Beanbag shells" - contains = list(/obj/item/ammo_casing/shotgun/beanbag, - /obj/item/ammo_casing/shotgun/beanbag, - /obj/item/ammo_casing/shotgun/beanbag, - /obj/item/ammo_casing/shotgun/beanbag, - /obj/item/ammo_casing/shotgun/beanbag, - /obj/item/ammo_casing/shotgun/beanbag, - /obj/item/ammo_casing/shotgun/beanbag, - /obj/item/ammo_casing/shotgun/beanbag, - /obj/item/ammo_casing/shotgun/beanbag, - /obj/item/ammo_casing/shotgun/beanbag) - cost = 10 - containertype = /obj/structure/closet/crate - containername = "beanbag shells" - /datum/supply_packs/toner name = "Toner Cartridges" contains = list(/obj/item/device/toner, @@ -546,7 +530,7 @@ /obj/item/weapon/gun/energy/taser, /obj/item/weapon/gun/energy/taser, /obj/item/weapon/storage/box/flashbangs, - /obj/item/weapon/storage/box/flashbangs) + /obj/item/weapon/storage/box/teargas) cost = 30 containertype = /obj/structure/closet/crate/secure/weapon containername = "weapons crate" @@ -581,23 +565,16 @@ name = "Riot gear crate" contains = list(/obj/item/weapon/melee/baton, /obj/item/weapon/melee/baton, - /obj/item/weapon/melee/baton, - /obj/item/weapon/shield/riot, /obj/item/weapon/shield/riot, /obj/item/weapon/shield/riot, /obj/item/weapon/storage/box/flashbangs, - /obj/item/weapon/storage/box/flashbangs, - /obj/item/weapon/storage/box/flashbangs, - /obj/item/weapon/handcuffs, - /obj/item/weapon/handcuffs, - /obj/item/weapon/handcuffs, + /obj/item/weapon/storage/box/teargas, + /obj/item/weapon/storage/box/handcuffs, /obj/item/clothing/head/helmet/riot, /obj/item/clothing/suit/armor/riot, /obj/item/clothing/head/helmet/riot, - /obj/item/clothing/suit/armor/riot, - /obj/item/clothing/head/helmet/riot, - /obj/item/clothing/suit/armor/riot) - cost = 60 + /obj/item/clothing/suit/armor/riot,) + cost = 45 containertype = /obj/structure/closet/crate/secure containername = "riot gear crate" access = access_armory diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index ecd28fbb9cd..28810f10e96 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -199,6 +199,7 @@ if(!(cult_mind in cult) && is_convertable_to_cult(cult_mind)) cult += cult_mind update_cult_icons_added(cult_mind) + cult_mind.current.attack_log += "\[[time_stamp()]\] Has been converted to the cult!" return 1 @@ -214,6 +215,7 @@ cult_mind.current << "\red An unfamiliar white light flashes through your mind, cleansing the taint of the dark-one and the memories of your time as his servant with it." cult_mind.memory = "" update_cult_icons_removed(cult_mind) + cult_mind.current.attack_log += "\[[time_stamp()]\] Has renounced the cult!" if(show_message) for(var/mob/M in viewers(cult_mind.current)) M << "[cult_mind.current] looks like they just reverted to their old faith!" diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index bedd230ebcc..c3ea730d87a 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -191,6 +191,7 @@ return 0 revolutionaries += rev_mind rev_mind.current << "\red You are now a revolutionary! Help your cause. Do not harm your fellow freedom fighters. You can identify your comrades by the red \"R\" icons, and your leaders by the blue \"R\" icons. Help them kill the heads to win the revolution!" + rev_mind.current.attack_log += "\[[time_stamp()]\] Has been converted to the revolution!" rev_mind.special_role = "Revolutionary" update_rev_icons_added(rev_mind) return 1 @@ -201,6 +202,7 @@ if(rev_mind in revolutionaries) revolutionaries -= rev_mind rev_mind.special_role = null + rev_mind.current.attack_log += "\[[time_stamp()]\] Has renounced the revolution!" if(beingborged) rev_mind.current << "\red The frame's firmware detects and deletes your neural reprogramming! You remember nothing from the moment you were flashed until now." diff --git a/code/game/gamemodes/wizard/rightandwrong.dm b/code/game/gamemodes/wizard/rightandwrong.dm index 688708b6c68..c8cb794460c 100644 --- a/code/game/gamemodes/wizard/rightandwrong.dm +++ b/code/game/gamemodes/wizard/rightandwrong.dm @@ -12,6 +12,7 @@ var/datum/objective/survive/survive = new survive.owner = H.mind H.mind.objectives += survive + H.attack_log += "\[[time_stamp()]\] Was made into a survivor, and trusts no one!" H << "You are the survivor! Your own safety matters above all else, trust no one and kill anyone who gets in your way. However, armed as you are, now would be the perfect time to settle that score or grab that pair of yellow gloves you've been eyeing..." var/obj_count = 1 for(var/datum/objective/OBJ in H.mind.objectives) diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index cfc09d442da..e5dd00a3199 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -1,20 +1,20 @@ /obj/machinery/computer/pod - name = "pod launch control" - desc = "A controll for launching pods. Some people prefer firing Mechas." + name = "mass driver launch control" + desc = "A combined blastdoor and mass driver control unit." icon_state = "computer_generic" - var/id = 1.0 + circuit = "/obj/item/weapon/circuitboard/pod" var/obj/machinery/mass_driver/connected = null - var/timing = 0.0 - var/time = 30.0 var/title = "Mass Driver Controls" + var/id = 1 + var/timing = 0 + var/time = 30 + var/range = 4 -/obj/machinery/computer/pod/New() - ..() - spawn( 5 ) - for(var/obj/machinery/mass_driver/M in world) - if(M.id == id) - connected = M +/obj/machinery/computer/pod/initialize() + for(var/obj/machinery/mass_driver/M in range(range, src)) + if(M.id == id) + connected = M /obj/machinery/computer/pod/proc/alarm() @@ -25,88 +25,31 @@ viewers(null, null) << "Cannot locate mass driver connector. Cancelling firing sequence!" return - for(var/obj/machinery/door/poddoor/M in world) + for(var/obj/machinery/door/poddoor/M in range(range, src)) if(M.id == id) M.open() - return - sleep(20) - for(var/obj/machinery/mass_driver/M in world) + sleep(20) + for(var/obj/machinery/mass_driver/M in range(range, src)) if(M.id == id) M.power = connected.power M.drive() sleep(50) - for(var/obj/machinery/door/poddoor/M in world) + for(var/obj/machinery/door/poddoor/M in range(range, src)) if(M.id == id) M.close() -/obj/machinery/computer/pod/attackby(I as obj, user as mob) - if(istype(I, /obj/item/weapon/screwdriver)) - playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1) - if(do_after(user, 20)) - if(stat & BROKEN) - user << "\blue The broken glass falls out." - var/obj/structure/computerframe/A = new /obj/structure/computerframe( loc ) - new /obj/item/weapon/shard( loc ) - - //generate appropriate circuitboard. Accounts for /pod/old computer types - var/obj/item/weapon/circuitboard/pod/M = null - if(istype(src, /obj/machinery/computer/pod/old)) - M = new /obj/item/weapon/circuitboard/olddoor( A ) - if(istype(src, /obj/machinery/computer/pod/old/syndicate)) - M = new /obj/item/weapon/circuitboard/syndicatedoor( A ) - if(istype(src, /obj/machinery/computer/pod/old/swf)) - M = new /obj/item/weapon/circuitboard/swfdoor( A ) - else //it's not an old computer. Generate standard pod circuitboard. - M = new /obj/item/weapon/circuitboard/pod( A ) - - for (var/obj/C in src) - C.loc = loc - M.id = id - A.circuit = M - A.state = 3 - A.icon_state = "3" - A.anchored = 1 - del(src) - else - user << "\blue You disconnect the monitor." - var/obj/structure/computerframe/A = new /obj/structure/computerframe( loc ) - - //generate appropriate circuitboard. Accounts for /pod/old computer types - var/obj/item/weapon/circuitboard/pod/M = null - if(istype(src, /obj/machinery/computer/pod/old)) - M = new /obj/item/weapon/circuitboard/olddoor( A ) - if(istype(src, /obj/machinery/computer/pod/old/syndicate)) - M = new /obj/item/weapon/circuitboard/syndicatedoor( A ) - if(istype(src, /obj/machinery/computer/pod/old/swf)) - M = new /obj/item/weapon/circuitboard/swfdoor( A ) - else //it's not an old computer. Generate standard pod circuitboard. - M = new /obj/item/weapon/circuitboard/pod( A ) - - for (var/obj/C in src) - C.loc = loc - M.id = id - A.circuit = M - A.state = 4 - A.icon_state = "4" - A.anchored = 1 - del(src) - else - attack_hand(user) - return - - -/obj/machinery/computer/pod/attack_ai(var/mob/user as mob) +/obj/machinery/computer/pod/attack_ai(mob/user) return attack_hand(user) -/obj/machinery/computer/pod/attack_paw(var/mob/user as mob) +/obj/machinery/computer/pod/attack_paw(mob/user) return attack_hand(user) -/obj/machinery/computer/pod/attack_hand(var/mob/user as mob) +/obj/machinery/computer/pod/attack_hand(mob/user) if(..()) return @@ -133,13 +76,10 @@ dat += "
\nToggle Outer Door
" dat += "

Close" add_fingerprint(usr) - //user << browse(dat, "window=computer;size=400x500") - //onclose(user, "computer") var/datum/browser/popup = new(user, "computer", title, 400, 500) popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) popup.open() - return /obj/machinery/computer/pod/process() @@ -153,7 +93,6 @@ time = 0 timing = 0 updateDialog() - return /obj/machinery/computer/pod/Topic(href, href_list) @@ -175,37 +114,40 @@ time += tp time = min(max(round(time), 0), 120) if(href_list["door"]) - for(var/obj/machinery/door/poddoor/M in world) + for(var/obj/machinery/door/poddoor/M in range(range, src)) if(M.id == id) if(M.density) M.open() else M.close() + if(href_list["drive"]) + for(var/obj/machinery/mass_driver/M in range(range, src)) + if(M.id == id) + M.power = connected.power + M.drive() updateUsrDialog() - return - /obj/machinery/computer/pod/old icon_state = "old" - name = "DoorMex Control Console" + name = "\improper DoorMex Control Console" title = "Door Controls" - /obj/machinery/computer/pod/old/syndicate - name = "ProComp Executive IIc" + name = "\improper ProComp Executive IIc" desc = "The Syndicate operate on a tight budget. Operates external airlocks." title = "External Airlock Controls" req_access = list(access_syndicate) -/obj/machinery/computer/pod/old/syndicate/attack_hand(var/mob/user as mob) +/obj/machinery/computer/pod/old/syndicate/attack_hand(mob/user) if(!allowed(user)) - user << "\red Access Denied" + user << "Access denied." return else ..() + /obj/machinery/computer/pod/old/swf - name = "Magix System IV" + name = "\improper Magix System IV" desc = "An arcane artifact that holds much magic. Running E-Knock 2.2: Sorceror's Edition" diff --git a/code/game/machinery/mass_driver.dm b/code/game/machinery/mass_driver.dm index 036edb8730d..6d82f6f054e 100644 --- a/code/game/machinery/mass_driver.dm +++ b/code/game/machinery/mass_driver.dm @@ -1,42 +1,39 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 - /obj/machinery/mass_driver name = "mass driver" - desc = "Shoots things into space." + desc = "The finest in spring-loaded piston toy technology, now on a space station near you." icon = 'icons/obj/stationobjs.dmi' icon_state = "mass_driver" - anchored = 1.0 + anchored = 1 use_power = 1 idle_power_usage = 2 active_power_usage = 50 - - var/power = 1.0 - var/code = 1.0 - var/id = 1.0 - var/drive_range = 50 //this is mostly irrelevant since current mass drivers throw into space, but you could make a lower-range mass driver for interstation transport or something I guess. + var/power = 1 + var/code = 1 + var/id = 1 + var/drive_range = 50 //this is mostly irrelevant since current mass drivers throw into space, but you could make a lower-range mass driver for interstation transport or something I guess. - proc/drive(amount) - if(stat & (BROKEN|NOPOWER)) - return - use_power(500) - var/O_limit - var/atom/target = get_edge_target_turf(src, dir) - for(var/atom/movable/O in loc) - if(!O.anchored||istype(O, /obj/mecha))//Mechs need their launch platforms. - O_limit++ - if(O_limit >= 20) - for(var/mob/M in hearers(src, null)) - M << "\blue The mass driver lets out a screech, it mustn't be able to handle any more items." - break - use_power(500) - spawn( 0 ) - O.throw_at(target, drive_range * power, power) - flick("mass_driver1", src) +/obj/machinery/mass_driver/proc/drive(amount) + if(stat & (BROKEN|NOPOWER)) return + use_power(500) + var/O_limit + var/atom/target = get_edge_target_turf(src, dir) + for(var/atom/movable/O in loc) + if(!O.anchored || istype(O, /obj/mecha)) //Mechs need their launch platforms. + O_limit++ + if(O_limit >= 20) + for(var/mob/M in hearers(src, null)) + M << "[src] lets out a screech, it doesn't seem to be able to handle the load." + break + use_power(500) + spawn(0) + O.throw_at(target, drive_range * power, power) + flick("mass_driver1", src) - emp_act(severity) - if(stat & (BROKEN|NOPOWER)) - return - drive() - ..(severity) \ No newline at end of file + +/obj/machinery/mass_driver/emp_act(severity) + if(stat & (BROKEN|NOPOWER)) + return + drive() + ..(severity) \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 4a1b1c240fb..63ad048e25e 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -71,7 +71,6 @@ new /obj/item/weapon/tank/emergency_oxygen/engi( src ) return - /obj/item/weapon/storage/box/gloves name = "box of latex gloves" desc = "Contains white gloves." @@ -101,7 +100,6 @@ new /obj/item/clothing/mask/surgical(src) new /obj/item/clothing/mask/surgical(src) - /obj/item/weapon/storage/box/syringes name = "syringes" desc = "A box full of syringes." @@ -145,7 +143,6 @@ new /obj/item/weapon/dnainjector/m2h(src) new /obj/item/weapon/dnainjector/m2h(src) - /obj/item/weapon/storage/box/blanks name = "box of blank shells" desc = "It has a picture of a gun and several warning symbols on the front." @@ -160,8 +157,6 @@ new /obj/item/ammo_casing/shotgun/blank(src) new /obj/item/ammo_casing/shotgun/blank(src) - - /obj/item/weapon/storage/box/flashbangs name = "box of flashbangs (WARNING)" desc = "WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use." @@ -177,6 +172,21 @@ new /obj/item/weapon/grenade/flashbang(src) new /obj/item/weapon/grenade/flashbang(src) +/obj/item/weapon/storage/box/teargas + name = "box of tear gas grenades (WARNING)" + desc = "WARNING: These devices are extremely dangerous and can cause blindness and skin irritation." + icon_state = "flashbang" + + New() + ..() + new /obj/item/weapon/grenade/chem_grenade/teargas(src) + new /obj/item/weapon/grenade/chem_grenade/teargas(src) + new /obj/item/weapon/grenade/chem_grenade/teargas(src) + new /obj/item/weapon/grenade/chem_grenade/teargas(src) + new /obj/item/weapon/grenade/chem_grenade/teargas(src) + new /obj/item/weapon/grenade/chem_grenade/teargas(src) + new /obj/item/weapon/grenade/chem_grenade/teargas(src) + /obj/item/weapon/storage/box/emps name = "emp grenades" desc = "A box with 5 emp grenades." @@ -190,7 +200,6 @@ new /obj/item/weapon/grenade/empgrenade(src) new /obj/item/weapon/grenade/empgrenade(src) - /obj/item/weapon/storage/box/trackimp name = "tracking implant kit" desc = "Box full of scum-bag tracking utensils." @@ -221,7 +230,6 @@ new /obj/item/weapon/implanter(src) new /obj/item/weapon/implantpad(src) - /obj/item/weapon/storage/box/rxglasses name = "prescription glasses" desc = "This box contains nerd glasses." @@ -250,7 +258,6 @@ new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) - /obj/item/weapon/storage/box/condimentbottles name = "box of condiment bottles" desc = "It has a large ketchup smear on it." @@ -264,8 +271,6 @@ new /obj/item/weapon/reagent_containers/food/condiment(src) new /obj/item/weapon/reagent_containers/food/condiment(src) - - /obj/item/weapon/storage/box/cups name = "box of paper cups" desc = "It has pictures of paper cups on the front." @@ -279,7 +284,6 @@ new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src ) - /obj/item/weapon/storage/box/donkpockets name = "box of donk-pockets" desc = "Instructions: Heat in microwave. Product will cool if not eaten within seven minutes." @@ -306,7 +310,6 @@ for(var/i = 1; i <= 5; i++) new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped(src) - /obj/item/weapon/storage/box/ids name = "spare IDs" desc = "Has so many empty IDs." @@ -337,7 +340,6 @@ new /obj/item/weapon/cartridge/security(src) new /obj/item/weapon/cartridge/security(src) - /obj/item/weapon/storage/box/handcuffs name = "spare handcuffs" desc = "A box full of handcuffs." @@ -381,7 +383,6 @@ new /obj/item/weapon/storage/pill_bottle( src ) new /obj/item/weapon/storage/pill_bottle( src ) - /obj/item/weapon/storage/box/snappops name = "snap pop box" desc = "Eight wrappers of fun! Ages 8 and up. Not suitable for children." @@ -394,7 +395,6 @@ for(var/i=1; i <= storage_slots; i++) new /obj/item/toy/snappop(src) - /obj/item/weapon/storage/box/matches name = "matchbox" desc = "A small box of Almost But Not Quite Plasma Premium Matches." @@ -419,7 +419,6 @@ W.update_icon() return - /obj/item/weapon/storage/box/lights name = "replacement bulbs" icon = 'icons/obj/storage.dmi' diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 20e28773b77..70061e29bea 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -1750,7 +1750,7 @@ datum condensedcapsaicin name = "Condensed Capsaicin" id = "condensedcapsaicin" - description = "This shit goes in pepperspray." + description = "A chemical agent used for self-defense and in police work." reagent_state = LIQUID color = "#B31008" // rgb: 179, 16, 8 @@ -1782,26 +1782,29 @@ datum if ( !safe_thing ) safe_thing = victim.glasses if ( eyes_covered && mouth_covered ) - victim << "\red Your [safe_thing] protects you from the pepperspray!" return else if ( mouth_covered ) // Reduced effects if partially protected - victim << "\red Your [safe_thing] protect you from most of the pepperspray!" + if(prob(5)) + victim.emote("scream") victim.eye_blurry = max(M.eye_blurry, 3) victim.eye_blind = max(M.eye_blind, 1) - victim.Paralyse(1) + victim.confused = max(M.confused, 3) + victim.damageoverlaytemp = 60 + victim.Weaken(1) victim.drop_item() return else if ( eyes_covered ) // Eye cover is better than mouth cover - victim << "\red Your [safe_thing] protects your eyes from the pepperspray!" - victim.emote("scream") - victim.eye_blurry = max(M.eye_blurry, 1) + victim.eye_blurry = max(M.eye_blurry, 3) + victim.damageoverlaytemp = 30 return else // Oh dear :D - victim.emote("scream") - victim << "\red You're sprayed directly in the eyes with pepperspray!" + if(prob(5)) + victim.emote("scream") victim.eye_blurry = max(M.eye_blurry, 5) victim.eye_blind = max(M.eye_blind, 2) - victim.Paralyse(1) + victim.confused = max(M.confused, 6) + victim.damageoverlaytemp = 75 + victim.Weaken(3) victim.drop_item() frostoil diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 42313a99f85..83c31b916cd 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -449,6 +449,13 @@ datum new /obj/item/stack/sheet/mineral/plasma(location) return + capsaicincondensation + name = "Capsaicincondensation" + id = "capsaicincondensation" + result = "condensedcapsaicin" + required_reagents = list("capsaicin" = 1, "ethanol" = 5) + result_amount = 5 + virus_food name = "Virus Food" id = "virusfood" diff --git a/html/changelog.html b/html/changelog.html index 80650f2aa67..0c5dc01968d 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -49,7 +49,19 @@ should be listed in the changelog upon commit tho. Thanks. --> - + + +
+

4 September 2013

+

Cheridan updated:

+ +
+

6 April 2013