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

Conflicts:
	code/modules/mob/living/carbon/human/life.dm
	code/modules/projectiles/guns/energy/stun.dm
	code/modules/projectiles/guns/projectile/pistol.dm
	code/modules/projectiles/guns/projectile/revolver.dm
This commit is contained in:
PsiOmegaDelta
2015-06-20 20:40:06 +02:00
26 changed files with 811 additions and 792 deletions

View File

@@ -8,6 +8,7 @@
use_power = 1
idle_power_usage = 2
active_power_usage = 4
anchored = 1
var/lit = 0
var/id = null
var/on_icon = "sign_on"

View File

@@ -62,8 +62,8 @@ var/global/list/ashtray_cache = list()
cig.transfer_fingerprints_to(butt)
qdel(cig)
W = butt
spawn(1)
TemperatureAct(150)
//spawn(1)
// TemperatureAct(150)
else if (cig.lit == 0)
user << "You place [cig] in [src] without even smoking it. Why would you do that?"

View File

@@ -17,6 +17,7 @@
var/thrown_force_divisor = 0.5
var/default_material = DEFAULT_WALL_MATERIAL
var/material/material
var/drops_debris = 1
/obj/item/weapon/material/New(var/newloc, var/material_key)
..(newloc)
@@ -70,33 +71,37 @@
health--
check_health()
/obj/item/weapon/material/proc/check_health()
/obj/item/weapon/material/proc/check_health(var/consumed)
if(health<=0)
shatter()
shatter(consumed)
/obj/item/weapon/material/proc/shatter()
/obj/item/weapon/material/proc/shatter(var/consumed)
var/turf/T = get_turf(src)
T.visible_message("<span class='danger'>\The [src] [material.destruction_desc]!</span>")
if(istype(loc, /mob/living))
var/mob/living/M = loc
M.drop_from_inventory(src)
playsound(src, "shatter", 70, 1)
material.place_shard(T)
if(!consumed && drops_debris) material.place_shard(T)
qdel(src)
/*
Commenting this out pending rebalancing of radiation based on small objects.
/obj/item/weapon/material/process()
if(!material.radioactivity)
return
for(var/mob/living/L in range(1,src))
L.apply_effect(round(material.radioactivity/3),IRRADIATE,0)
L.apply_effect(round(material.radioactivity/30),IRRADIATE,0)
*/
/*
// Commenting this out while fires are so spectacularly lethal, as I can't seem to get this balanced appropriately.
/obj/item/weapon/material/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
TemperatureAct(exposed_temperature)
// This might need adjustment. Will work that out later.
/obj/item/weapon/material/proc/TemperatureAct(temperature)
health -= material.combustion_effect(get_turf(src), temperature, 0.1)
check_health()
check_health(1)
/obj/item/weapon/material/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/weldingtool))
@@ -104,4 +109,5 @@
if(material.ignition_point && WT.remove_fuel(0, user))
TemperatureAct(150)
else
return ..()
return ..()
*/

View File

@@ -14,6 +14,7 @@
attack_verb = list("stabbed", "slashed", "sliced", "cut")
default_material = "glass"
unbreakable = 1 //It's already broken.
drops_debris = 0
/obj/item/weapon/material/shard/suicide_act(mob/user)
viewers(user) << pick("<span class='danger'>\The [user] is slitting \his wrists with \the [src]! It looks like \he's trying to commit suicide.</span>",

View File

@@ -20,20 +20,20 @@
/obj/item/weapon/beartrap/attack_self(mob/user as mob)
..()
if(deployed && can_use(user))
if(!deployed && can_use(user))
user.visible_message(
"<span class='danger'>[user] starts to deploy \the [src].</span>",
"<span class='danger'>You begin deploying \the [src]!</span>",
"<span class='danger'>[user] starts to deploy \the [src].</span>",
"<span class='danger'>You begin deploying \the [src]!</span>",
"You hear the slow creaking of a spring."
)
if (do_after(user, 60))
user.visible_message(
"<span class='danger'>[user] has deployed \the [src].</span>",
"<span class='danger'>[user] has deployed \the [src].</span>",
"<span class='danger'>You have deployed \the [src]!</span>",
"You hear a latch click loudly."
)
deployed = 1
user.drop_from_inventory(src)
update_icon()
@@ -42,7 +42,7 @@
/obj/item/weapon/beartrap/attack_hand(mob/user as mob)
if(buckled_mob && can_use(user))
user.visible_message(
"<span class='notice'>[user] begins freeing [buckled_mob] from \the [src].</span>",
"<span class='notice'>[user] begins freeing [buckled_mob] from \the [src].</span>",
"<span class='notice'>You carefully begin to free [buckled_mob] from \the [src].</span>",
)
if(do_after(user, 60))
@@ -51,13 +51,13 @@
anchored = 0
else if(deployed && can_use(user))
user.visible_message(
"<span class='danger'>[user] starts to disarm \the [src].</span>",
"<span class='danger'>[user] starts to disarm \the [src].</span>",
"<span class='notice'>You begin disarming \the [src]!</span>",
"You hear a latch click followed by the slow creaking of a spring."
)
if(do_after(user, 60))
user.visible_message(
"<span class='danger'>[user] has disarmed \the [src].</span>",
"<span class='danger'>[user] has disarmed \the [src].</span>",
"<span class='notice'>You have disarmed \the [src]!</span>"
)
deployed = 0
@@ -86,15 +86,18 @@
//trap the victim in place
if(!blocked)
set_dir(L.dir)
can_buckle = 1
buckle_mob(L)
L << "<span class='danger'>The steel jaws of \the [src] bite into you, trapping you in place!</span>"
deployed = 0
can_buckle = initial(can_buckle)
/obj/item/weapon/beartrap/Crossed(AM as mob|obj)
if(isliving(AM))
if(deployed && isliving(AM))
var/mob/living/L = AM
if(L.m_intent == "run")
L.visible_message(
"<span class='danger'>[L] steps on \the [src].</span>",
"<span class='danger'>[L] steps on \the [src].</span>",
"<span class='danger'>You step on \the [src]!</span>",
"<b>You hear a loud metallic snap!</b>"
)

View File

@@ -22,6 +22,7 @@
/obj/structure/bed/New(var/newloc, var/new_material, var/new_padding_material)
..(newloc)
color = null
if(!new_material)
new_material = DEFAULT_WALL_MATERIAL
material = get_material_by_name(new_material)

View File

@@ -129,6 +129,6 @@
return
/turf/simulated/wall/proc/can_join_with(var/turf/simulated/wall/W)
if(material && W.material && material.name == W.material.name)
if(material && W.material && material.icon_base == W.material.icon_base)
return 1
return 0

View File

@@ -72,12 +72,12 @@
if(icon_state == icon_badge)
icon_state = icon_nobadge
usr << "You unclip the badge from the vest."
usr << "You conceal \the [src]'s badge."
else if(icon_state == icon_nobadge)
icon_state = icon_badge
usr << "You clip the badge to the vest."
usr << "You reveal \the [src]'s badge."
else
usr << "You can't find a badge for [src]."
usr << "\The [src] does not have a vest badge."
return
update_clothing_icon()

View File

@@ -6,6 +6,7 @@
icon_state = "aiupload"
density = 1
req_one_access = list(access_hop, access_captain, access_cent_captain)
anchored = 1
var/receipt_num
var/machine_id = ""
var/obj/item/weapon/card/id/held_card

View File

@@ -255,6 +255,8 @@ var/list/name_to_material
stack_origin_tech = list(TECH_MATERIAL = 2, TECH_PHORON = 2)
door_icon_base = "stone"
/*
// Commenting this out while fires are so spectacularly lethal, as I can't seem to get this balanced appropriately.
/material/phoron/combustion_effect(var/turf/T, var/temperature, var/effect_multiplier)
if(isnull(ignition_point))
return 0
@@ -268,6 +270,7 @@ var/list/name_to_material
spawn (0)
target_tile.hotspot_expose(temperature, 400)
return round(totalPhoron/100)
*/
/material/stone
name = "sandstone"

View File

@@ -15,6 +15,7 @@
var/max_grown = 200
var/time_of_birth
var/language
var/death_msg = "lets out a waning guttural screech, green blood bubbling from its maw."
/mob/living/carbon/alien/New()

View File

@@ -1,4 +1,4 @@
/mob/living/carbon/alien/death(gibbed)
if(!gibbed && dead_icon)
icon_state = dead_icon
return ..(gibbed,"lets out a waning guttural screech, green blood bubbling from its maw.")
return ..(gibbed,death_msg)

View File

@@ -5,7 +5,7 @@
speak_emote = list("chirrups")
icon_state = "nymph"
language = "Rootspeak"
death_msg = "expires with a pitiful chirrup..."
universal_understand = 1
universal_speak = 0 // Dionaea do not need to speak to people other than other dionaea.
holder_type = /obj/item/weapon/holder/diona

View File

@@ -948,6 +948,9 @@
if( (getOxyLoss() > 50) || (config.health_threshold_crit > health) )
Paralyse(3)
//UNCONSCIOUS. NO-ONE IS HOME
if((getOxyLoss() > 50) || (health <= config.health_threshold_crit))
Paralyse(3)
if(hallucination)
if(hallucination >= 20)
if(prob(3))

View File

@@ -18,7 +18,7 @@
remains_type = /obj/effect/decal/cleanable/ash
death_message = "dissolves into ash..."
flags = IS_RESTRICTED | NO_BLOOD | NO_POISON | NO_SCAN | NO_SLIP | NO_POISON
flags = IS_RESTRICTED | NO_BLOOD | NO_SCAN | NO_SLIP | NO_POISON
/datum/species/shadow/handle_death(var/mob/living/carbon/human/H)
spawn(1)

View File

@@ -929,7 +929,7 @@ var/global/list/damage_icon_parts = list()
tail_overlay = set_tail_state(t_state)
if(tail_overlay)
spawn(15)
spawn(20)
//check that the animation hasn't changed in the meantime
if(overlays_standing[TAIL_LAYER] == tail_overlay && tail_overlay.icon_state == t_state)
animate_tail_stop()

View File

@@ -3,14 +3,14 @@
//drop && roll
if(on_fire)
fire_stacks -= 2
Weaken(5)
spin(52,2)
fire_stacks -= 1.2
Weaken(3)
spin(32,2)
visible_message(
"<span class='danger'>[src] rolls on the floor, trying to put themselves out!</span>",
"<span class='notice'>You stop, drop, and roll!</span>"
)
sleep(50)
sleep(30)
if(fire_stacks <= 0)
visible_message(
"<span class='danger'>[src] has successfully extinguished themselves!</span>",
@@ -19,13 +19,13 @@
ExtinguishMob()
return
..()
if(handcuffed)
spawn() escape_handcuffs()
else if(legcuffed)
spawn() escape_legcuffs()
..()
/mob/living/carbon/proc/escape_handcuffs()
if(!(last_special <= world.time)) return

View File

@@ -108,7 +108,7 @@
icon_state = "syndicateranged"
icon_living = "syndicateranged"
casingtype = /obj/item/ammo_casing/a12mm
projectilesound = 'sound/weapons/Gunshot_smg.ogg'
projectilesound = 'sound/weapons/Gunshot_light.ogg'
projectiletype = /obj/item/projectile/bullet/pistol/medium
weapon1 = /obj/item/weapon/gun/projectile/automatic/c20r

View File

@@ -25,7 +25,7 @@
item_state = "stunrevolver"
fire_sound = 'sound/weapons/Gunshot.ogg'
origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_POWER = 2)
projectile_type = /obj/item/projectile/energy/electrode/stunshot
projectile_type = /obj/item/projectile/energy/electrode
max_shots = 8

View File

@@ -38,7 +38,7 @@
caliber = "12mm"
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 2, TECH_ILLEGAL = 8)
slot_flags = SLOT_BELT|SLOT_BACK
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
fire_sound = 'sound/weapons/Gunshot_light.ogg'
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/a12mm
auto_eject = 1
@@ -86,7 +86,7 @@
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 2)
slot_flags = SLOT_BELT
ammo_type = "/obj/item/ammo_casing/c9mmr"
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
fire_sound = 'sound/weapons/Gunshot_light.ogg'
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/mc9mmt/rubber
@@ -182,7 +182,7 @@
origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 1, TECH_ILLEGAL = 2)
slot_flags = SLOT_BACK
ammo_type = "/obj/item/ammo_casing/a762"
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
fire_sound = 'sound/weapons/Gunshot_light.ogg'
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/a762

View File

@@ -5,6 +5,7 @@
icon_state = "colt"
caliber = ".45"
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
fire_sound = 'sound/weapons/Gunshot_light.ogg'
load_method = MAGAZINE
/obj/item/weapon/gun/projectile/colt/detective
@@ -36,6 +37,7 @@
magazine_type = /obj/item/ammo_magazine/c45m/rubber
caliber = ".45"
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
fire_sound = 'sound/weapons/Gunshot_light.ogg'
load_method = MAGAZINE
/obj/item/weapon/gun/projectile/sec/flash
@@ -112,6 +114,7 @@
caliber = "9mm"
silenced = 0
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2, TECH_ILLEGAL = 2)
fire_sound = 'sound/weapons/Gunshot_light.ogg'
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/mc9mm

View File

@@ -22,6 +22,7 @@
max_shells = 6
caliber = "38"
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
fire_sound = 'sound/weapons/Gunshot_light.ogg'
ammo_type = /obj/item/ammo_casing/c38
/obj/item/weapon/gun/projectile/revolver/detective/verb/rename_gun()

View File

@@ -44,11 +44,6 @@
name = "electrode"
icon_state = "spark"
nodamage = 1
/*
stun = 10
weaken = 10
stutter = 10
*/
taser_effect = 1
agony = 40
damage_type = HALLOSS

File diff suppressed because it is too large Load Diff

Binary file not shown.