Merge remote-tracking branch 'upstream/dev-freeze' into dev

This commit is contained in:
PsiOmega
2015-02-26 08:22:25 +01:00
97 changed files with 1252 additions and 1109 deletions
-1
View File
@@ -70,7 +70,6 @@
/obj/proc/user_unbuckle_mob(mob/user)
var/mob/living/M = unbuckle_mob()
world << 3
if(M)
if(M != user)
M.visible_message(\
+2 -2
View File
@@ -13,13 +13,13 @@ A list of items and costs is stored under the datum of every game mode, alongsid
var/reference = ""
var/description = ""
datum/uplink_item/New(var/itemPath, var/itemCost as num, var/itemName as text, var/itemReference as text, var/itemDescription)
datum/uplink_item/New(var/itemPath, var/itemCost, var/itemName, var/itemReference, var/itemDescription)
cost = itemCost
path = itemPath
name = itemName
reference = itemReference
description = itemDescription
datum/uplink_item/proc/description()
if(!description)
// Fallback description
@@ -37,7 +37,7 @@
R.icon_state = "[R.ckey]-Standard"
del(R.module)
R.module = null
R.camera.network.Remove(list("Engineering","Medical","MINE"))
R.camera.remove_networks(list("Engineering","Medical","MINE"))
R.updatename("Default")
R.status_flags |= CANPUSH
R.updateicon()
@@ -113,6 +113,7 @@
/obj/item/device/pda,
/obj/item/device/radio/headset,
/obj/item/weapon/melee,
/obj/item/weapon/gun/projectile/sec,
/obj/item/taperoll/police
)
+58 -27
View File
@@ -170,21 +170,26 @@
prob(1);/obj/item/weapon/reagent_containers/syringe/drugs)
/obj/random/armory
name = "Random Armory Weapon"
/obj/random/energy
name = "Random Energy Weapon"
desc = "This is a random security weapon."
icon = 'icons/obj/gun.dmi'
icon_state = "energykill100"
item_to_spawn()
return pick(prob(3);/obj/item/weapon/gun/projectile/shotgun/pump,\
prob(2);/obj/item/weapon/gun/energy/ionrifle,\
prob(2);/obj/item/weapon/gun/projectile/automatic/wt550,\
prob(1);/obj/item/weapon/gun/projectile/automatic/z8,\
prob(2);/obj/item/weapon/gun/energy/laser,\
return pick(prob(2);/obj/item/weapon/gun/energy/laser,\
prob(1);/obj/item/weapon/gun/energy/gun,\
prob(2);/obj/item/weapon/gun/energy/stunrevolver)
/obj/random/projectile
name = "Random Projectile Weapon"
desc = "This is a random security weapon."
icon = 'icons/obj/gun.dmi'
icon_state = "revolver"
item_to_spawn()
return pick(prob(3);/obj/item/weapon/gun/projectile/shotgun/pump,\
prob(2);/obj/item/weapon/gun/projectile/automatic/wt550,\
prob(3);/obj/item/weapon/gun/projectile/sec,\
prob(2);/obj/item/weapon/gun/projectile/sec/wood,\
prob(3);/obj/item/weapon/gun/energy/taser,\
prob(1);/obj/item/weapon/gun/projectile/shotgun/pump/combat)
@@ -202,28 +207,54 @@
prob(2);/obj/item/ammo_magazine/c45m/rubber,\
prob(2);/obj/item/ammo_magazine/c45m/flash,\
prob(1);/obj/item/ammo_magazine/mc9mmt,\
prob(3);/obj/item/ammo_magazine/mc9mmt/rubber,\
prob(2);/obj/item/ammo_magazine/a556)
prob(3);/obj/item/ammo_magazine/mc9mmt/rubber)
/obj/random/armor
name = "Random Armor"
desc = "This is a random armor vest."
icon = 'icons/obj/clothing/suits.dmi'
icon_state = "kvest"
/obj/random/action_figure
name = "random action figure"
desc = "This is a random action figure."
icon = 'icons/obj/toy.dmi'
icon_state = "assistant"
item_to_spawn()
return pick(prob(4);/obj/item/clothing/suit/storage/vest,\
prob(3);/obj/item/clothing/suit/storage/vest/officer,\
prob(3);/obj/item/clothing/suit/storage/vest/warden,\
prob(3);/obj/item/clothing/suit/storage/vest/hos,\
prob(2);/obj/item/clothing/suit/storage/vest/pcrc,\
prob(1);/obj/item/clothing/suit/storage/vest/detective,\
prob(2);/obj/item/clothing/suit/storage/vest/heavy,\
prob(2);/obj/item/clothing/suit/storage/vest/heavy/officer,\
prob(2);/obj/item/clothing/suit/storage/vest/heavy/warden,\
prob(2);/obj/item/clothing/suit/storage/vest/heavy/hos,\
prob(2);/obj/item/clothing/suit/storage/vest/heavy/pcrc)
return pick(/obj/item/toy/figure/cmo,\
/obj/item/toy/figure/assistant,\
/obj/item/toy/figure/atmos,\
/obj/item/toy/figure/bartender,\
/obj/item/toy/figure/borg,\
/obj/item/toy/figure/gardener,\
/obj/item/toy/figure/captain,\
/obj/item/toy/figure/cargotech,\
/obj/item/toy/figure/ce,\
/obj/item/toy/figure/chaplain,\
/obj/item/toy/figure/chef,\
/obj/item/toy/figure/chemist,\
/obj/item/toy/figure/clown,\
/obj/item/toy/figure/corgi,\
/obj/item/toy/figure/detective,\
/obj/item/toy/figure/dsquad,\
/obj/item/toy/figure/engineer,\
/obj/item/toy/figure/geneticist,\
/obj/item/toy/figure/hop,\
/obj/item/toy/figure/hos,\
/obj/item/toy/figure/qm,\
/obj/item/toy/figure/janitor,\
/obj/item/toy/figure/agent,\
/obj/item/toy/figure/librarian,\
/obj/item/toy/figure/md,\
/obj/item/toy/figure/mime,\
/obj/item/toy/figure/miner,\
/obj/item/toy/figure/ninja,\
/obj/item/toy/figure/wizard,\
/obj/item/toy/figure/rd,\
/obj/item/toy/figure/roboticist,\
/obj/item/toy/figure/scientist,\
/obj/item/toy/figure/syndie,\
/obj/item/toy/figure/secofficer,\
/obj/item/toy/figure/warden,\
/obj/item/toy/figure/psychologist,\
/obj/item/toy/figure/paramedic,\
/obj/item/toy/figure/ert)
/obj/random/plushie
name = "random plushie"
@@ -54,7 +54,7 @@
new /obj/item/weapon/storage/box/ids(src)
new /obj/item/weapon/storage/box/ids( src )
new /obj/item/weapon/gun/energy/gun(src)
new /obj/item/weapon/gun/projectile/colt/flash(src)
new /obj/item/weapon/gun/projectile/sec/flash(src)
new /obj/item/device/flash(src)
return
@@ -157,10 +157,9 @@
new /obj/item/weapon/storage/belt/security(src)
new /obj/item/weapon/reagent_containers/spray/pepper(src)
new /obj/item/weapon/melee/baton/loaded(src)
new /obj/item/weapon/gun/energy/taser(src)
new /obj/item/weapon/gun/energy/gun(src)
new /obj/item/weapon/storage/box/holobadge(src)
new /obj/item/clothing/head/beret/sec/warden(src)
new /obj/item/weapon/gun/projectile/shotgun/pump(src)
return
@@ -190,7 +189,6 @@
new /obj/item/weapon/reagent_containers/spray/pepper(src)
new /obj/item/weapon/grenade/flashbang(src)
new /obj/item/weapon/melee/baton/loaded(src)
new /obj/item/weapon/gun/energy/taser(src)
new /obj/item/clothing/glasses/sunglasses/sechud(src)
new /obj/item/taperoll/police(src)
new /obj/item/device/hailer(src)
+4 -4
View File
@@ -15,7 +15,7 @@
if (1)
new /obj/item/weapon/shard( src.loc )
if (occupied)
new /obj/item/weapon/gun/energy/laser/captain( src.loc )
new /obj/item/weapon/gun/energy/captain( src.loc )
occupied = 0
del(src)
if (2)
@@ -39,14 +39,14 @@
if (prob(75))
new /obj/item/weapon/shard( src.loc )
if (occupied)
new /obj/item/weapon/gun/energy/laser/captain( src.loc )
new /obj/item/weapon/gun/energy/captain( src.loc )
occupied = 0
del(src)
/obj/structure/displaycase/meteorhit(obj/O as obj)
new /obj/item/weapon/shard( src.loc )
new /obj/item/weapon/gun/energy/laser/captain( src.loc )
new /obj/item/weapon/gun/energy/captain( src.loc )
del(src)
@@ -78,7 +78,7 @@
/obj/structure/displaycase/attack_hand(mob/user as mob)
if (src.destroyed && src.occupied)
new /obj/item/weapon/gun/energy/laser/captain( src.loc )
new /obj/item/weapon/gun/energy/captain( src.loc )
user << "\b You deactivate the hover field built into the case."
src.occupied = 0
src.add_fingerprint(user)
+20 -13
View File
@@ -67,22 +67,29 @@
//Flimsy grilles aren't so great at stopping projectiles. However they can absorb some of the impact
var/damage = Proj.damage
var/passthrough
if(damage > 30)
passthrough = 1
if(prob(20))
Proj.damage *= 0.5 //weaken the projectile
else
//weaker bullets are affected to a greater extent
if(prob(20))
passthrough = 0
else
Proj.damage *= 0.5 //weaken the projectile
passthrough = 1
var/passthrough = 0
//20% chance that the grille provides a bit more cover than usual. Support structure for example might take up 20% of the grille's area.
//If they click on the grille itself then we assume they are aiming at the grille itself and the extra cover behaviour is always used.
switch(Proj.damage_type)
if(BRUTE)
//bullets
if(Proj.original == src || prob(20))
Proj.damage *= between(0, Proj.damage/60, 0.5)
if(prob(max((damage-10)/25, 0))*100)
passthrough = 1
else
Proj.damage *= between(0, Proj.damage/60, 1)
passthrough = 1
if(BURN)
//beams and other projectiles are either blocked completely by grilles or stop half the damage.
if(!(Proj.original == src || prob(20)))
Proj.damage *= 0.5
passthrough = 1
if(passthrough)
. = -1
damage *= 0.1 //if the bullet passes through then the grille avoids most of the damage
damage = between(0, (damage - Proj.damage)*(Proj.damage_type == BRUTE? 0.4 : 1), 10) //if the bullet passes through then the grille avoids most of the damage
src.health -= damage*0.2
spawn(0) healthcheck() //spawn to make sure we return properly if the grille is deleted