diff --git a/baystation12.dme b/baystation12.dme index 52310b50e60..42bf49595c2 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -203,6 +203,7 @@ #define FILE_DIR "icons/spideros_icons" #define FILE_DIR "icons/Testing" #define FILE_DIR "icons/turf" +#define FILE_DIR "icons/vehicles" #define FILE_DIR "icons/vending_icons" #define FILE_DIR "interface" #define FILE_DIR "maps" diff --git a/code/ATMOSPHERICS/atmospherics.dm b/code/ATMOSPHERICS/atmospherics.dm index fca51ad7ce2..d745a48d89d 100644 --- a/code/ATMOSPHERICS/atmospherics.dm +++ b/code/ATMOSPHERICS/atmospherics.dm @@ -20,40 +20,39 @@ obj/machinery/atmospherics - var/initialize_directions = 0 - var/color +obj/machinery/atmospherics/var/initialize_directions = 0 +obj/machinery/atmospherics/var/color - process() - build_network() +obj/machinery/atmospherics/process() + build_network() - proc - network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference) - // Check to see if should be added to network. Add self if so and adjust variables appropriately. - // Note don't forget to have neighbors look as well! +obj/machinery/atmospherics/proc/network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference) + // Check to see if should be added to network. Add self if so and adjust variables appropriately. + // Note don't forget to have neighbors look as well! - return null + return null - build_network() - // Called to build a network from this node +obj/machinery/atmospherics/proc/build_network() + // Called to build a network from this node - return null + return null - return_network(obj/machinery/atmospherics/reference) - // Returns pipe_network associated with connection to reference - // Notes: should create network if necessary - // Should never return null +obj/machinery/atmospherics/proc/return_network(obj/machinery/atmospherics/reference) + // Returns pipe_network associated with connection to reference + // Notes: should create network if necessary + // Should never return null - return null + return null - reassign_network(datum/pipe_network/old_network, datum/pipe_network/new_network) - // Used when two pipe_networks are combining +obj/machinery/atmospherics/proc/reassign_network(datum/pipe_network/old_network, datum/pipe_network/new_network) + // Used when two pipe_networks are combining - return_network_air(datum/network/reference) - // Return a list of gas_mixture(s) in the object - // associated with reference pipe_network for use in rebuilding the networks gases list - // Is permitted to return null +obj/machinery/atmospherics/proc/return_network_air(datum/network/reference) + // Return a list of gas_mixture(s) in the object + // associated with reference pipe_network for use in rebuilding the networks gases list + // Is permitted to return null - disconnect(obj/machinery/atmospherics/reference) +obj/machinery/atmospherics/proc/disconnect(obj/machinery/atmospherics/reference) - update_icon() - return null \ No newline at end of file +obj/machinery/atmospherics/update_icon() + return null \ No newline at end of file diff --git a/code/defines/obj/storage.dm b/code/defines/obj/storage.dm index e5253e9441b..1bfc31340d2 100644 --- a/code/defines/obj/storage.dm +++ b/code/defines/obj/storage.dm @@ -88,7 +88,7 @@ /obj/item/weapon/storage/pillbottlebox name = "box of pill bottles" desc = "It has pictures of pill bottles on its front." - icon_state = "box" + icon_state = "pillbox" item_state = "syringe_kit" foldable = /obj/item/stack/sheet/cardboard //BubbleWrap @@ -292,12 +292,19 @@ update_icon() for(var/obj/item/weapon/card/id/ID in contents) - if(ID.icon_state == "gold") - icon_state = "walletid_gold" - return - else if(ID.icon_state == "id") - icon_state = "walletid" - return + switch(ID.icon_state) + if("id") + icon_state = "walletid" + return + if("silver") + icon_state = "walletid_silver" + return + if("gold") + icon_state = "walletid_gold" + return + if("centcom") + icon_state = "walletid_centcom" + return icon_state = "wallet" diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 151b75843be..a44b28b76ec 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -142,12 +142,12 @@ var/list/obj/machinery/newscaster/allCasters = list() //list that will contain r /obj/machinery/newscaster/attack_hand(mob/user as mob) if(!src.ispowered || src.isbroken) return - if(istype(user, /mob/living/carbon/human) ) - var/mob/living/carbon/human/human_user = user + if(istype(user, /mob/living/carbon/human) || istype(user,/mob/living/silicon) ) + var/mob/living/human_or_robot_user = user var/dat dat = text("Newscaster

Newscaster Unit #[src.unit_no]

") - src.scan_user(human_user) //Newscaster scans you + src.scan_user(human_or_robot_user) //Newscaster scans you switch(screen) if(0) @@ -160,7 +160,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //list that will contain r dat+= "
Submit new Feed story" dat+= "
Print newspaper" dat+= "
Re-scan User" - dat+= "

Exit" + dat+= "

Exit" if(src.securityCaster) var/wanted_already = 0 for(var/obj/machinery/newscaster/N in allCasters) @@ -363,8 +363,8 @@ var/list/obj/machinery/newscaster/allCasters = list() //list that will contain r dat+="I'm sorry to break your immersion. This shit's bugged. Report this bug to Agouri, polyxenitopalidou@gmail.com" - human_user << browse(dat, "window=newscaster_main;size=400x600") - onclose(human_user, "newscaster_main") + human_or_robot_user << browse(dat, "window=newscaster_main;size=400x600") + onclose(human_or_robot_user, "newscaster_main") /*if(src.isbroken) //debugging shit return @@ -377,7 +377,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //list that will contain r /obj/machinery/newscaster/Topic(href, href_list) if(..()) return - if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai))) + if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) usr.machine = src if(href_list["set_channel_name"]) src.channel_name = strip_html(input(usr, "Provide a Feed Channel Name", "Network Channel Handler", "")) @@ -444,6 +444,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //list that will contain r FC.messages += newMsg // To avoid further confusion, this one for adds the message to all existing newscasters' channel_list's channels. break // Another for to go through newscasters is not needed. Due to the nature of submit_new_CHANNEL, every reference src.screen=4 // to a channel in ANY newscaster is the same. Editing one will edit them all. + for(var/obj/machinery/newscaster/NEWSCASTER in allCasters) NEWSCASTER.newsAlert(src.channel_name) @@ -747,7 +748,7 @@ obj/item/weapon/newspaper/attack_self(mob/user as mob) obj/item/weapon/newspaper/Topic(href, href_list) var/mob/living/U = usr ..() - if ((src in U.contents) || ( istype(loc, /turf) && in_range(src, U) ) ) + if ((src in U.contents) || ( istype(loc, /turf) && in_range(src, U) )) U.machine = src if(href_list["next_page"]) if(curr_page==src.pages+1) @@ -796,21 +797,26 @@ obj/item/weapon/newspaper/attackby(obj/item/weapon/W as obj, mob/user as mob) ////////////////////////////////////helper procs -/obj/machinery/newscaster/proc/scan_user(mob/living/carbon/human/human_user as mob) - if(human_user.wear_id) //Newscaster scans you - if(istype(human_user.wear_id, /obj/item/device/pda) ) //autorecognition, woo! - var/obj/item/device/pda/P = human_user.wear_id - if(P.id) - src.scanned_user = "[P.id.registered_name] ([P.id.assignment])" +/obj/machinery/newscaster/proc/scan_user(mob/living/user as mob) + if(istype(user,/mob/living/carbon/human)) //User is a human + var/mob/living/carbon/human/human_user = user + if(human_user.wear_id) //Newscaster scans you + if(istype(human_user.wear_id, /obj/item/device/pda) ) //autorecognition, woo! + var/obj/item/device/pda/P = human_user.wear_id + if(P.id) + src.scanned_user = "[P.id.registered_name] ([P.id.assignment])" + else + src.scanned_user = "Unknown" + else if(istype(human_user.wear_id, /obj/item/weapon/card/id) ) + var/obj/item/weapon/card/id/ID = human_user.wear_id + src.scanned_user ="[ID.registered_name] ([ID.assignment])" else - src.scanned_user = "Unknown" - else if(istype(human_user.wear_id, /obj/item/weapon/card/id) ) - var/obj/item/weapon/card/id/ID = human_user.wear_id - src.scanned_user ="[ID.registered_name] ([ID.assignment])" + src.scanned_user ="Unknown" else src.scanned_user ="Unknown" else - src.scanned_user ="Unknown" + var/mob/living/silicon/ai_user = user + src.scanned_user = "[ai_user.name] ([ai_user.job])" /obj/machinery/newscaster/proc/print_paper() diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index 217a4b9f931..0b88d78a530 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -75,7 +75,12 @@ H.apply_effect(10, STUTTER, 0) user.lastattacked = M H.lastattacker = user - charges-- + if(isrobot(src.loc)) + var/mob/living/silicon/robot/R = src.loc + if(R && R.cell) + R.cell.use(50) + else + charges-- H.visible_message("[M] has been stunned with the [src] by [user]!") playsound(src.loc, 'Egloves.ogg', 50, 1, -1) if(charges < 1) diff --git a/code/game/objects/stacks/glass.dm b/code/game/objects/stacks/glass.dm index 76d63e9d337..d21d25886b4 100644 --- a/code/game/objects/stacks/glass.dm +++ b/code/game/objects/stacks/glass.dm @@ -262,6 +262,8 @@ SHARDS playsound(src.loc, 'glass_step.ogg', 50, 1) if(ishuman(M)) var/mob/living/carbon/human/H = M + if(H.mutantrace == "lizard") //Soghun have... Scales? Yeah that works + return if(!((H.shoes) || (H.wear_suit && H.wear_suit.body_parts_covered & FEET))) var/datum/organ/external/affecting = H.get_organ(pick("l_foot", "r_foot")) if(affecting.status & ROBOT) diff --git a/code/game/objects/uplinks.dm b/code/game/objects/uplinks.dm index b9aa1276c51..3c138a527ab 100644 --- a/code/game/objects/uplinks.dm +++ b/code/game/objects/uplinks.dm @@ -145,7 +145,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid randomItems.Add("/obj/item/weapon/soap/syndie") //Syndicate Soap randomItems.Add("/obj/item/weapon/storage/toolbox/syndicate") //Syndicate Toolbox - if(!randomItems) + if(!randomItems.len) del(randomItems) return 0 else diff --git a/code/game/objects/watercloset.dm b/code/game/objects/watercloset.dm index 38b8c5ea470..1a0d1e09a34 100644 --- a/code/game/objects/watercloset.dm +++ b/code/game/objects/watercloset.dm @@ -58,7 +58,10 @@ var/obj/item/weapon/grab/G = I var/mob/GM = G.affecting if(ismob(G.affecting)) - if(G.state>1 && GM.loc == get_turf(src)) + if(G.state>1) + if(!GM.loc == get_turf(src)) + user << "[GM.name] needs to be on the toilet." + return if(open && !swirlie) user.visible_message("[user] starts to give [GM.name] a swirlie!", "You start to give [GM.name] a swirlie!") swirlie = GM @@ -101,7 +104,10 @@ var/obj/item/weapon/grab/G = I var/mob/GM = G.affecting if(ismob(G.affecting)) - if(G.state>1 && GM.loc == get_turf(src)) + if(G.state>1) + if(!GM.loc == get_turf(src)) + user << "[GM.name] needs to be on the urinal." + return user.visible_message("[user] slams [GM.name] into the [src]!", "You slam [GM.name] into the [src]!") GM.adjustBruteLoss(8) else diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 54befddcbc3..08470a9a2e9 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -266,7 +266,8 @@ proc/move_mining_shuttle() /*****************************Shovel********************************/ /obj/item/weapon/shovel - name = "Shovel" + name = "shovel" + desc = "A large tool for digging and moving dirt." icon = 'items.dmi' icon_state = "shovel" flags = FPRINT | TABLEPASS| CONDUCT @@ -278,11 +279,14 @@ proc/move_mining_shuttle() m_amt = 50 origin_tech = "materials=1;engineering=1" - - - - - +/obj/item/weapon/shovel/spade + name = "spade" + desc = "A small tool for digging and moving dirt." + icon_state = "spade" + item_state = "spade" + force = 5.0 + throwforce = 7.0 + w_class = 2.0 /**********************Mining car (Crate like thing, not the rail car)**************************/ diff --git a/code/modules/mob/new_player/preferences.dm b/code/modules/mob/new_player/preferences.dm index 9b566bba4b2..24b4a5c9235 100644 --- a/code/modules/mob/new_player/preferences.dm +++ b/code/modules/mob/new_player/preferences.dm @@ -128,6 +128,8 @@ datum/preferences // OOC Metadata: var/metadata = "" + var/sound_adminhelp = 0 + New() hair_style = new/datum/sprite_accessory/hair/short @@ -261,9 +263,13 @@ datum/preferences if(config.allow_Metadata) dat += "OOC Notes: Edit
" - if((user.client) && (user.client.holder) && (user.client.holder.rank) && (user.client.holder.level >= 5)) - dat += "
OOC
" - dat += "Change colour
__
" + if((user.client) && (user.client.holder) && (user.client.holder.rank)) + dat += "
Adminhelp sound: " + dat += "[(sound_adminhelp)?"On":"Off"] toggle" + + if(user.client.holder.level >= 5) + dat += "
OOC
" + dat += "Change color
__
" dat += "
Occupation Choices
" dat += "\tSet Preferences
" @@ -875,6 +881,9 @@ datum/preferences if(ooccolor) src.ooccolor = ooccolor + if(link_tags["toggleadminhelpsound"]) + src.sound_adminhelp = !src.sound_adminhelp + if(link_tags["f_style"]) if(species != "Human") //Non-humans don't have hair stuff yet. return @@ -1175,6 +1184,7 @@ datum/preferences proc/setup_client(var/client/C) if(C) + C.sound_adminhelp = src.sound_adminhelp C.midis = src.midis C.ooccolor = src.ooccolor C.be_alien = be_special & BE_ALIEN diff --git a/code/modules/mob/new_player/savefile.dm b/code/modules/mob/new_player/savefile.dm index f0c4c3a6bd6..4cc787486ed 100644 --- a/code/modules/mob/new_player/savefile.dm +++ b/code/modules/mob/new_player/savefile.dm @@ -159,6 +159,8 @@ datum/preferences/proc/savefile_save(mob/user, slot) F["OOC_Notes"] << src.metadata + F["sound_adminhelp"] << src.sound_adminhelp + return 1 // loads the savefile corresponding to the mob's ckey @@ -264,6 +266,8 @@ datum/preferences/proc/savefile_load(mob/user, slot) F["OOC_Notes"] >> src.metadata + F["sound_adminhelp"] >> src.sound_adminhelp + if(isnull(metadata)) metadata = "" diff --git a/html/changelog.html b/html/changelog.html index 63274d2fbc0..ae1f9dfdef0 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -91,6 +91,15 @@ should be listed in the changelog upon commit though. Thanks. -->
  • Fixes medical items. Gauze/kits/ointment can now be applied correctly again.
  • +
    +

    26 June 2012

    +

    TG updated:

    + +
    +

    25 June 2012

    Erthilo updated:

    diff --git a/icons/mob/items_lefthand.dmi b/icons/mob/items_lefthand.dmi index fa909660e26..127bf82a851 100644 Binary files a/icons/mob/items_lefthand.dmi and b/icons/mob/items_lefthand.dmi differ diff --git a/icons/mob/items_righthand.dmi b/icons/mob/items_righthand.dmi index 190315199dc..7a541c4a34e 100644 Binary files a/icons/mob/items_righthand.dmi and b/icons/mob/items_righthand.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 69c55d472b1..759442da114 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 6292adc2211..176d76c5b4c 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/icons/obj/vehicles.dmi b/icons/obj/vehicles.dmi deleted file mode 100644 index 2dbaedd6397..00000000000 Binary files a/icons/obj/vehicles.dmi and /dev/null differ diff --git a/icons/vehicles/vehicles.dmi b/icons/vehicles/vehicles.dmi new file mode 100644 index 00000000000..5650366b18e Binary files /dev/null and b/icons/vehicles/vehicles.dmi differ