Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Tastyfish
2011-12-29 02:26:06 -05:00
12 changed files with 212 additions and 30 deletions
@@ -0,0 +1,49 @@
/obj/item/weapon/weldpack
name = "Portable welding tank."
desc = "For welding on the go!"
icon_state = "backpack"
w_class = 4.0
flags = 259.0
var/max_fuel = 100
/obj/item/weapon/weldpack/New()
var/datum/reagents/R = new/datum/reagents(100) //5 refills
reagents = R
R.my_atom = src
R.add_reagent("fuel", 100)
/obj/item/weapon/weldpack/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/weldingtool)
if(W.welding & prob(15))
message_admins("[key_name_admin(user)] triggered a fueltank explosion.")
log_game("[key_name(user)] triggered a fueltank explosion.")
user << "\red That was stupid of you."
explosion(src.loc,-1,0,2)
if(src)
del(src)
return
else
if(W.welding)
user << "\red That was close!"
src.reagents.trans_to(W, W.max_fuel)
user << "\blue Welder refilled!"
playsound(src.loc, 'refill.ogg', 50, 1, -6)
return
user << "\blue The tank scoffs at your insolence. It only provides services to welders."
return
/obj/item/weapon/weldpack/afterattack(obj/O as obj, mob/user as mob)
if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.reagents.total_volume < max_fuel)
O.reagents.trans_to(src, max_fuel)
user << "\blue Tank refilled!"
playsound(src.loc, 'refill.ogg', 50, 1, -6)
return
else if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.reagents.total_volume == max_fuel)
user << "\blue Tank is already full!"
return
/obj/item/weapon/weldpack/examine()
set src in usr
usr << text("\icon[] [] units of fuel left!", src, src.reagents.total_volume)
..()
return
+1
View File
@@ -220,6 +220,7 @@ obj/machinery/computer/forensic_scanning
var/obj/item/weapon/paper/P = new(loc)
P.name = "Scan Data ([scan_name])"
P.info = "<tt>[scan_data]</tt>"
P.overlays += "paper_words"
else
temp = "Print Failed: No Data"
if("erase")
+1 -1
View File
@@ -375,7 +375,7 @@
item_state = "det"
color = "detective"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
var/obj/item/weapon/gun/projectile/detective/gun
var/obj/item/weapon/gun
/obj/item/clothing/under/scratch
name = "White Suit"
+21 -16
View File
@@ -5,7 +5,7 @@
/datum/game_mode/traitor
name = "traitor"
config_tag = "traitor"
restricted_jobs = list("Cyborg", "AI")//Approved by headmins for a week test, if you see this it would be nice if you didn't spread it everywhere
restricted_jobs = list("Cyborg")//Approved by headmins for a week test, if you see this it would be nice if you didn't spread it everywhere
required_players = 0
required_enemies = 1
@@ -13,7 +13,7 @@
var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds)
var/traitors_possible = 4 //hard limit on traitors if scaling is turned off
var/const/traitor_scaling_coeff = 5.0 //how much does the amount of players get divided by to determine traitors
var/const/traitor_scaling_coeff = 10.0 //how much does the amount of players get divided by to determine traitors
/datum/game_mode/traitor/announce()
@@ -31,7 +31,7 @@
var/num_traitors = 1
if(config.traitor_scaling)
num_traitors = max(1, round((num_players())/(traitor_scaling_coeff)))
num_traitors = max(1, round((num_players())/(traitor_scaling_coeff)) + 1)
else
num_traitors = max(1, min(num_players(), traitors_possible))
@@ -83,18 +83,23 @@
traitor.objectives += block_objective
else
switch(rand(1,100))
if(1 to 50)
var/datum/objective/assassinate/kill_objective = new
kill_objective.owner = traitor
kill_objective.find_target()
traitor.objectives += kill_objective
else
var/datum/objective/steal/steal_objective = new
steal_objective.owner = traitor
steal_objective.find_target()
traitor.objectives += steal_objective
switch(rand(1,100))
for(var/i = 1, i <= rand(1,3), i++)
switch(rand(1,100))
if(1 to 40)
var/datum/objective/assassinate/kill_objective = new
kill_objective.owner = traitor
kill_objective.find_target()
traitor.objectives += kill_objective
else
var/datum/objective/steal/steal_objective = new
steal_objective.owner = traitor
steal_objective.find_target()
traitor.objectives += steal_objective
if (!(locate(/datum/objective/escape) in traitor.objectives))
var/datum/objective/escape/escape_objective = new
escape_objective.owner = traitor
traitor.objectives += escape_objective
/* switch(rand(1,100))
if(1 to 90)
if (!(locate(/datum/objective/escape) in traitor.objectives))
var/datum/objective/escape/escape_objective = new
@@ -105,7 +110,7 @@
if (!(locate(/datum/objective/hijack) in traitor.objectives))
var/datum/objective/hijack/hijack_objective = new
hijack_objective.owner = traitor
traitor.objectives += hijack_objective
traitor.objectives += hijack_objective*/
return
@@ -57,7 +57,6 @@
new /obj/item/clothing/gloves/hos(src)
new /obj/item/clothing/head/helmet/HoS/dermal(src)
new /obj/item/device/radio/headset/heads/hos(src)
new /obj/item/weapon/shield/riot(src)
new /obj/item/weapon/storage/lockbox/loyalty(src)
new /obj/item/weapon/storage/flashbang_kit(src)
new /obj/item/weapon/storage/belt/security(src)
+2 -1
View File
@@ -44,7 +44,8 @@
menu_message += "<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=imp_freedom'>Freedom Implant (with injector)</A> (3)<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=imp_uplink'>Uplink Implant (5 crystals inside)</A> (10)<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=paralysispen'>Paralysis Pen</A> (3)<BR>" //Note that this goes to the updated sleepypen now.
// menu_message += "<A href='byond://?src=\ref[src];buy_item=paralysispen'>Paralysis Pen</A> (3)<BR>"
//When given the choice, people have been P2W
menu_message += "<A href='byond://?src=\ref[src];buy_item=sleepypen'>Sleepy Pen</A> (4)<BR>" //Terrible -Pete.
menu_message += "<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=detomatix'>Detomatix Cartridge</A> (3)<BR>"
@@ -207,6 +207,7 @@
t1 += "[src.storedinfo[i]]<BR>"
P.info = t1
P.name = "paper- 'Transcript'"
P.overlays += "paper_words"
/obj/item/device/taperecorder/attack_self(mob/user)
+18 -2
View File
@@ -8,11 +8,13 @@
anchored = 1
icon = 'chemical.dmi'
icon_state = "dispenser"
use_power = 1
var/energy = 25
var/max_energy = 75
var/amount = 30
var/beaker = null
var/list/dispensable_reagents = list("hydrogen","lithium","carbon","nitrogen","oxygen","fluorine","sodium","aluminum","silicon","phosphorus","sulfur","chlorine","potassium","iron","copper","mercury","radium","water","ethanol","sugar","acid","milk",)
var/charging_reagents = 0
ex_act(severity)
switch(severity)
@@ -33,12 +35,16 @@
return
proc/updateWindow(mob/user as mob)
winset(user, "chemdispenser.energy", "text=\"Energy: [src.energy]\"")
winset(user, "chemdispenser.energy", "text=\"Energy: [round(src.energy)]\"")
winset(user, "chemdispenser.amount", "text=\"Amount: [src.amount]\"")
if (beaker)
winset(user, "chemdispenser.eject", "text=\"Eject beaker\"")
else
winset(user, "chemdispenser.eject", "text=\"\[Insert beaker\]\"")
if(charging_reagents)
winset(user, "chemdispenser.charging", "text=\"Charging\"")
else
winset(user, "chemdispenser.charging", "text=\"Not Charging\"")
proc/initWindow(mob/user as mob)
var/i = 0
var list/nameparams = params2list(winget(user, "chemdispenser_reagents.template_name", "pos;size;type;image;image-mode"))
@@ -77,6 +83,8 @@
var/obj/item/weapon/reagent_containers/glass/B = src.beaker
B.loc = src.loc
src.beaker = null
else if (data == "tcharge")
src.charging_reagents = !src.charging_reagents
else if (copytext(data, 1, 7) == "amount")
if (text2num(copytext(data, 7)))
amount = text2num(copytext(data, 7))
@@ -85,7 +93,7 @@
var/obj/item/weapon/reagent_containers/glass/B = src.beaker
var/datum/reagents/R = B.reagents
var/space = R.maximum_volume - R.total_volume
R.add_reagent(data, min(amount, energy * 10, space))
R.add_reagent(data, min(amount, round(energy) * 10, space))
energy = max(energy - min(amount, space) / 10, 0)
amount = round(amount, 10) // Chem dispenser doesnt really have that much prescion
@@ -143,6 +151,14 @@
user.skincmds["chemdispenser"] = src
return
/obj/machinery/chem_dispenser/process()
if(stat & NOPOWER) return
if(!charging_reagents) return
use_power(5000)
src.energy += 0.01
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+3 -3
View File
@@ -1,5 +1,5 @@
/obj/item/clothing/suit/armor
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/pepperspray,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs)
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/pepperspray,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/policetaperoll)
body_parts_covered = UPPER_TORSO|LOWER_TORSO
flags = FPRINT | TABLEPASS
@@ -62,7 +62,7 @@
item_state = "gearharness"
body_parts_covered = UPPER_TORSO|LOWER_TORSO
flags = FPRINT | TABLEPASS | ONESIZEFITSALL
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/pepperspray,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs)
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/pepperspray,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/policetaperoll)
/obj/item/clothing/suit/armor/reactive
name = "Reactive Teleport Armor"
@@ -81,7 +81,7 @@
item_state = "armourrigvest"
body_parts_covered = UPPER_TORSO|LOWER_TORSO
flags = FPRINT | TABLEPASS | ONESIZEFITSALL
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/pepperspray,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs)
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/pepperspray,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/policetaperoll)
armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
/obj/item/clothing/suit/armor/reactive/IsShield()
+3 -3
View File
@@ -12,7 +12,7 @@
icon_state = "detective"
item_state = "det_suit"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
allowed = list(/obj/item/weapon/tank/emergency_oxygen, /obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/cigpacket,/obj/item/weapon/zippo,/obj/item/device/detective_scanner,/obj/item/device/taperecorder)
allowed = list(/obj/item/weapon/tank/emergency_oxygen, /obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/cigpacket,/obj/item/weapon/zippo,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/policetaperoll)
armor = list(melee = 50, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0)
@@ -23,7 +23,7 @@
item_state = "armor"
flags = FPRINT | TABLEPASS | ONESIZEFITSALL
body_parts_covered = UPPER_TORSO|LOWER_TORSO
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs)
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/policetaperoll)
armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
/obj/item/clothing/under/det/verb/holster()
@@ -32,7 +32,7 @@
set src in usr
if(!gun)
if(istype(usr.get_active_hand(),/obj/item/weapon/gun/projectile/detective))
if(istype(usr.get_active_hand(),/obj/item/weapon/gun/projectile/detective) || istype(usr.get_active_hand(),/obj/item/weapon/gun/energy/stunrevolver))
gun = usr.get_active_hand()
usr.drop_item()
gun.loc = src
+1 -1
View File
@@ -221,7 +221,7 @@
//I see no reason to restrict such way of whispering
if ("whisper")
whisper(message_old)
whisper(copytext(message_old, 3))
return
if ("binary")
+112 -2
View File
@@ -323,6 +323,116 @@ window "chemdispenser"
macro = ""
menu = ""
on-close = ""
elem "charging"
type = BUTTON
pos = 72,24
size = 88x20
anchor1 = none
anchor2 = none
font-family = ""
font-size = 0
font-style = ""
text-color = #000000
background-color = none
is-visible = true
is-disabled = false
is-transparent = false
is-default = false
border = none
drop-zone = false
right-click = false
saved-params = "is-checked"
on-size = ""
text = "[Not charging]"
image = ""
command = "skincmd \"chemdispenser;tcharge\""
is-flat = false
stretch = false
is-checked = false
group = ""
button-type = pushbutton
elem "button4"
type = BUTTON
pos = 208,4
size = 48x20
anchor1 = none
anchor2 = none
font-family = ""
font-size = 0
font-style = ""
text-color = #000000
background-color = none
is-visible = true
is-disabled = false
is-transparent = false
is-default = false
border = none
drop-zone = false
right-click = false
saved-params = "is-checked"
on-size = ""
text = "[Other]"
image = ""
command = "skincmd \"chemdispenser;amountc\""
is-flat = false
stretch = false
is-checked = false
group = ""
button-type = pushbutton
elem "child2"
type = CHILD
pos = 0,48
size = 340x432
anchor1 = none
anchor2 = none
font-family = ""
font-size = 0
font-style = ""
text-color = #000000
background-color = none
is-visible = true
is-disabled = false
is-transparent = false
is-default = false
border = none
drop-zone = false
right-click = false
saved-params = "splitter"
on-size = ""
left = "chemdispenser_reagents"
right = ""
is-vert = false
splitter = 50
show-splitter = true
lock = none
elem "button3"
type = BUTTON
pos = 208,4
size = 48x20
anchor1 = none
anchor2 = none
font-family = ""
font-size = 0
font-style = ""
text-color = #000000
background-color = none
is-visible = true
is-disabled = false
is-transparent = false
is-default = false
border = none
drop-zone = false
right-click = false
saved-params = "is-checked"
on-size = ""
text = "[Other]"
image = ""
command = "skincmd \"chemdispenser;amountc\""
is-flat = false
stretch = false
is-checked = false
group = ""
button-type = pushbutton
elem "energy"
type = LABEL
pos = 8,24
@@ -517,8 +627,8 @@ window "chemdispenser"
text-wrap = false
elem "child1"
type = CHILD
pos = 0,40
size = 340x440
pos = 0,56
size = 340x424
anchor1 = none
anchor2 = none
font-family = ""