Merge branch 'dev-freeze' into dev

Conflicts:
	icons/obj/ammo.dmi
This commit is contained in:
Chinsky
2013-11-30 05:15:22 +04:00
32 changed files with 2113 additions and 1796 deletions
+1
View File
@@ -253,6 +253,7 @@
'nano/templates/cryo.tmpl',
'nano/templates/geoscanner.tmpl',
'nano/templates/dna_modifier.tmpl',
'nano/templates/telescience_console.tmpl',
'nano/images/uiBackground.png',
'nano/images/uiIcons16.png',
'nano/images/uiIcons24.png',
@@ -296,6 +296,14 @@
if(armor >= 2) return
/mob/living/carbon/human/proc/is_loyalty_implanted(mob/living/carbon/human/M)
for(var/L in M.contents)
if(istype(L, /obj/item/weapon/implant/loyalty))
for(var/datum/organ/external/O in M.organs)
if(L in O.implants)
return 1
return 0
/mob/living/carbon/human/attack_slime(mob/living/carbon/slime/M as mob)
if(M.Victim) return // can't attack while eating!
@@ -1257,4 +1265,4 @@ mob/living/carbon/human/yank_out_object()
if(species)
return 1
else
return 0
return 0
@@ -262,7 +262,7 @@
grabbed_by += G
G.synch()
G.affecting = src
LAssailant = M
for(var/mob/O in viewers(src, null))
@@ -298,6 +298,7 @@
grabbed_by += G
G.synch()
G.affecting = src
LAssailant = M
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
+4 -1
View File
@@ -23,7 +23,10 @@
var/online = 1
var/n_tag = null
var/obj/machinery/power/terminal/terminal = null
//Holders for powerout event.
var/last_output = 0
var/last_charge = 0
var/last_online = 0
/obj/machinery/power/smes/New()
..()
+5
View File
@@ -194,6 +194,11 @@
playsound(user, fire_sound, 10, 1)
else
playsound(user, fire_sound, 50, 1)
if(istype(in_chamber, /obj/item/projectile/beam/lastertag))
user.show_message("<span class = 'warning'>You feel rather silly, trying to commit suicide with a toy.</span>")
mouthshoot = 0
return
in_chamber.on_hit(M)
if (in_chamber.damage_type != HALLOSS)
user.apply_damage(in_chamber.damage*2.5, in_chamber.damage_type, "head", used_weapon = "Point blank shot in the mouth with \a [in_chamber]")
+37 -12
View File
@@ -10,9 +10,11 @@
icon_state = "dispenser"
use_power = 0
idle_power_usage = 40
var/ui_name = "Chem Dispenser 5000"
var/energy = 100
var/max_energy = 100
var/amount = 30
var/amount = 30
var/accept_glass = 0
var/beaker = null
var/recharged = 0
var/hackedcheck = 0
@@ -116,7 +118,7 @@
data["energy"] = energy
data["maxEnergy"] = max_energy
data["isBeakerLoaded"] = beaker ? 1 : 0
data["glass"] = accept_glass
var beakerContents[0]
var beakerCurrentVolume = 0
if(beaker && beaker:reagents && beaker:reagents.reagent_list.len)
@@ -142,7 +144,7 @@
var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, ui_key)
if (!ui)
// the ui does not exist, so we'll create a new one
ui = new(user, src, ui_key, "chem_dispenser.tmpl", "Chem Dispenser 5000", 370, 605)
ui = new(user, src, ui_key, "chem_dispenser.tmpl", ui_name, 370, 605)
// When the UI is first opened this is the data it will use
ui.set_initial_data(data)
ui.open()
@@ -164,7 +166,7 @@
if(href_list["dispense"])
if (dispensable_reagents.Find(href_list["dispense"]) && beaker != null)
var/obj/item/weapon/reagent_containers/glass/B = src.beaker
var/obj/item/weapon/reagent_containers/B = src.beaker
var/datum/reagents/R = B.reagents
var/space = R.maximum_volume - R.total_volume
@@ -173,14 +175,14 @@
if(href_list["ejectBeaker"])
if(beaker)
var/obj/item/weapon/reagent_containers/glass/B = beaker
var/obj/item/weapon/reagent_containers/B = beaker
B.loc = loc
beaker = null
add_fingerprint(usr)
return 1 // update UIs attached to this object
/obj/machinery/chem_dispenser/attackby(var/obj/item/weapon/reagent_containers/glass/B as obj, var/mob/user as mob)
/obj/machinery/chem_dispenser/attackby(var/obj/item/weapon/reagent_containers/B as obj, var/mob/user as mob)
if(isrobot(user))
return
@@ -197,7 +199,9 @@
if(src.beaker)
user << "Something is already loaded into the machine."
return
if(istype(B, /obj/item/weapon/reagent_containers/glass||/obj/item/weapon/reagent_containers/food))
if(istype(B, /obj/item/weapon/reagent_containers/glass) || istype(B, /obj/item/weapon/reagent_containers/food))
if(!accept_glass && istype(B,/obj/item/weapon/reagent_containers/food))
user << "<span class='notice'>This machine only accepts beakers</span>"
src.beaker = B
user.drop_item()
B.loc = src
@@ -221,9 +225,11 @@
icon_state = "soda_dispenser"
name = "soda fountain"
desc = "A drink fabricating machine, capable of producing many sugary drinks with just one touch."
ui_name = "Soda Dispens-o-matic"
energy = 100
accept_glass = 1
max_energy = 100
dispensable_reagents = list("water","ice","coffee","tea","icetea","space_cola","spacemountainwind","dr_gibb","space_up","tonic","sodawater","lemon_lime","sugar","orangejuice","limejuice")
dispensable_reagents = list("water","ice","coffee","cream","tea","icetea","cola","spacemountainwind","dr_gibb","space_up","tonic","sodawater","lemon_lime","sugar","orangejuice","limejuice","watermelonjuice")
/obj/machinery/chem_dispenser/soda/attackby(var/obj/item/weapon/B as obj, var/mob/user as mob)
..()
@@ -242,13 +248,16 @@
/obj/machinery/chem_dispenser/beer
icon_state = "booze_dispenser"
name = "booze dispenser"
ui_name = "Booze Portal 9001"
energy = 100
accept_glass = 1
max_energy = 100
desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one."
dispensable_reagents = list("water","ice","coffee","tea","cream","lemon_lime","sugar","orangejuice","limejuice","cola","sodawater","tonic","beer","kahlua","whiskey","wine","vodka","gin","rum","tequila","vermouth","cognac","ale","mead")
dispensable_reagents = list("lemon_lime","sugar","orangejuice","limejuice","sodawater","tonic","beer","kahlua","whiskey","wine","vodka","gin","rum","tequilla","vermouth","cognac","ale","mead")
/obj/machinery/chem_dispenser/beer/attackby(var/obj/item/weapon/B as obj, var/mob/user as mob)
..()
if(istype(B, /obj/item/device/multitool))
if(hackedcheck == 0)
user << "You disable the 'nanotrasen-are-cheap-bastards' lock, enabling hidden and very expensive boozes."
@@ -281,6 +290,7 @@
var/bottlesprite = "1" //yes, strings
var/pillsprite = "1"
var/client/has_sprites = list()
var/max_pill_count = 20
/obj/machinery/chem_master/New()
var/datum/reagents/R = new/datum/reagents(100)
@@ -424,12 +434,26 @@
reagents.clear_reagents()
icon_state = "mixer0"
else if (href_list["createpill"] || href_list["createpill_multiple"])
var/name = reject_bad_text(input(usr,"Name:","Name your pill!",reagents.get_master_reagent_name()))
var/count = 1
if (href_list["createpill_multiple"]) count = isgoodnumber(input("Select the number of pills to make.", 10, pillamount) as num)
if (count > 20) count = 20 //Pevent people from creating huge stacks of pills easily. Maybe move the number to defines?
if(reagents.total_volume/count < 1) //Sanity checking.
return
if (href_list["createpill_multiple"])
count = Clamp(isgoodnumber(input("Select the number of pills to make.", 10, pillamount) as num),1,max_pill_count)
if(reagents.total_volume/count < 1) //Sanity checking.
return
var/amount_per_pill = reagents.total_volume/count
if (amount_per_pill > 50) amount_per_pill = 50
var/name = reject_bad_text(input(usr,"Name:","Name your pill!","[reagents.get_master_reagent_name()] ([amount_per_pill] units)"))
if(reagents.total_volume/count < 1) //Sanity checking.
return
while (count--)
var/obj/item/weapon/reagent_containers/pill/P = new/obj/item/weapon/reagent_containers/pill(src.loc)
if(!name) name = reagents.get_master_reagent_name()
@@ -442,6 +466,7 @@
if(loaded_pill_bottle.contents.len < loaded_pill_bottle.storage_slots)
P.loc = loaded_pill_bottle
src.updateUsrDialog()
else if (href_list["createbottle"])
if(!condi)
var/name = reject_bad_text(input(usr,"Name:","Name your bottle!",reagents.get_master_reagent_name()))
+4 -5
View File
@@ -2626,7 +2626,7 @@ datum
color = "#619494" // rgb: 97, 148, 148
drink/cold/space_cola
name = "Cola"
name = "Space Cola"
id = "cola"
description = "A refreshing beverage."
reagent_state = LIQUID
@@ -2649,7 +2649,7 @@ datum
return
drink/cold/spacemountainwind
name = "Space Mountain Wind"
name = "Mountain Wind"
id = "spacemountainwind"
description = "Blows right through you like a space wind."
color = "#102000" // rgb: 16, 32, 0
@@ -2907,8 +2907,8 @@ datum
if (adj_drowsy) M.drowsyness = max(0,M.drowsyness + adj_drowsy)
if (adj_sleepy) M.sleeping = max(0,M.sleeping + adj_sleepy)
if(!src.data) data = 1
src.data += boozepwr
if(!src.data || (!isnum(src.data) && src.data.len)) data = 1 //if it doesn't exist we set it. if it's a list we're going to set it to 1 as well. This is to
src.data += boozepwr //avoid a runtime error associated with drinking blood mixed in drinks (demon's blood).
var/d = data
@@ -3456,7 +3456,6 @@ datum
description = "AHHHH!!!!"
color = "#820000" // rgb: 130, 0, 0
boozepwr = 3
ethanol/vodkatonic
name = "Vodka and Tonic"
id = "vodkatonic"
+6
View File
@@ -16,6 +16,12 @@ var/list/GPS_list = list()
GPS_list.Add(src)
name = "global positioning system ([gpstag])"
overlays += "working"
/obj/item/device/gps/Del()
GPS_list.Remove(src)
..()
/obj/item/device/gps/Del()
GPS_list.Remove(src)
..()
/obj/item/device/gps/Del()
GPS_list.Remove(src)