merging upstream master into local repo

This commit is contained in:
VistaPOWA
2014-01-11 17:14:48 +01:00
95 changed files with 2646 additions and 2416 deletions
@@ -40,7 +40,10 @@ Bonus
if(istype(M, /mob/living/carbon/human))
var/mob/living/carbon/human/H = M
var/parts = H.get_damaged_organs(1,1) //1,1 because it needs inputs.
var/list/parts = H.get_damaged_organs(1,1) //1,1 because it needs inputs.
if(!parts.len)
return
for(var/obj/item/organ/limb/L in parts)
L.heal_damage(get_damage, get_damage, 0)
@@ -49,6 +52,8 @@ Bonus
if(M.getFireLoss() > 0 || M.getBruteLoss() > 0)
M.adjustFireLoss(-get_damage)
M.adjustBruteLoss(-get_damage)
else
return
M.adjustToxLoss(get_damage)
return 1
@@ -35,7 +35,7 @@ Bonus
/datum/symptom/heal/proc/Heal(var/mob/living/M, var/datum/disease/advance/A)
var/get_damage = rand(1, 2)
var/get_damage = rand(8, 14)
M.adjustToxLoss(-get_damage)
return 1
@@ -119,4 +119,4 @@ Bonus
A.cure()
/datum/symptom/heal/longevity/Start(var/datum/disease/advance/A)
longevity = rand(initial(longevity) - 5, initial(longevity) + 5)
longevity = rand(initial(longevity) - 5, initial(longevity) + 5)
@@ -30,8 +30,8 @@ Bonus
var/mob/living/M = A.affected_mob
switch(A.stage)
if(1, 2, 3, 4)
M << "<span class='notice'>[pick("Your lungs feel sore.", "You are now breathing manually.")]</span>"
M << "<span class='notice'>[pick("Your lungs feel great.", "You are now breathing manually.", "You don't feel the need to breathe.")]</span>"
else
if (M.reagents.get_reagent_amount("inaprovaline") < 30)
M.reagents.add_reagent("inaprovaline", 10)
return
if (M.reagents.get_reagent_amount("dexalin") < 40)
M.reagents.add_reagent("dexalin", 20)
return
+5 -4
View File
@@ -139,9 +139,10 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
sleep(1)
charge_counter++
/obj/effect/proc_holder/spell/proc/perform(list/targets, recharge = 1) //if recharge is started is important for the trigger spells
/obj/effect/proc_holder/spell/proc/perform(list/targets, recharge = 1, mob/user = usr) //if recharge is started is important for the trigger spells
before_cast(targets)
invocation()
user.attack_log += text("\[[time_stamp()]\] <font color='red'>[user.real_name] ([user.ckey]) cast the spell [name].</font>")
spawn(0)
if(charge_type == "recharge" && recharge)
start_recharge()
@@ -183,11 +184,11 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
if(smoke_spread)
if(smoke_spread == 1)
var/datum/effect/effect/system/harmless_smoke_spread/smoke = new /datum/effect/effect/system/harmless_smoke_spread()
smoke.set_up(smoke_amt, 0, location) //no idea what the 0 is
smoke.set_up(smoke_amt, 0, location, smoke_amt == 1 ? 15 : 0) // if more than one smoke, spread it around
smoke.start()
else if(smoke_spread == 2)
var/datum/effect/effect/system/bad_smoke_spread/smoke = new /datum/effect/effect/system/bad_smoke_spread()
smoke.set_up(smoke_amt, 0, location) //no idea what the 0 is
smoke.set_up(smoke_amt, 0, location, smoke_amt == 1 ? 15 : 0) // same here
smoke.start()
/obj/effect/proc_holder/spell/proc/cast(list/targets)
@@ -257,7 +258,7 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
//Adds a safety check post-input to make sure those targets are actually in range.
var/mob/M = input("Choose the target for the spell.", "Targeting") as mob in possible_targets
if(M in view_or_range(range, user, selection_type)) targets += M
else
var/list/possible_targets = list()
for(var/mob/living/target in view_or_range(range, user, selection_type))
+1 -1
View File
@@ -67,4 +67,4 @@
summon_type = list(/obj/machinery/bot/ed209)
summon_amt = 10
range = 3
newVars = list("emagged" = 1,"name" = "Wizard's Justicebot")
newVars = list("emagged" = 2,"name" = "Wizard's Justicebot")
+2 -1
View File
@@ -31,4 +31,5 @@
if(!picked || !isturf(picked))
return
target.loc = picked
if(!target.Move(picked))
target.loc = picked
+1 -1
View File
@@ -107,7 +107,7 @@
smoke_spread = 1
smoke_amt = 10
smoke_amt = 1
inner_tele_radius = 0
outer_tele_radius = 6
+3 -1
View File
@@ -684,11 +684,13 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
cost = 50
containertype = /obj/structure/closet/critter/corgi
containername = "corgi crate"
/datum/supply_packs/organic/cat
name = "Cat crate"
cost = 40
cost = 50 //Cats are worth as much as corgis.
containertype = /obj/structure/closet/critter/cat
containername = "cat crate"
/datum/supply_packs/organic/pug
name = "Pug crate"
cost = 50
+2
View File
@@ -386,6 +386,7 @@ var/list/uplink_items = list()
You can wrench the bomb down to prevent removal. The crew may attempt to defuse the bomb."
item = /obj/item/device/sbeacondrop/bomb
cost = 5
excludefrom = list(/datum/game_mode/traitor/double_agents)
/datum/uplink_item/device_tools/syndicate_detonator
name = "Syndicate Detonator"
@@ -393,6 +394,7 @@ var/list/uplink_items = list()
Useful for when speed matters or you wish to synchronize multiple bomb blasts. Be sure to stand clear of the blast radius before using the detonator."
item = /obj/item/device/syndicatedetonator
cost = 1
gamemodes = list(/datum/game_mode/nuclear)
/datum/uplink_item/device_tools/teleporter
name = "Teleporter Circuit Board"
+9 -10
View File
@@ -9,10 +9,15 @@ var/const/WIRE_DELAY = 4 // Raises the timer on pulse, does nothing on cut
var/const/WIRE_PROCEED = 8 // Lowers the timer, explodes if cut while the bomb is active
var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if pulsed while already active, will stop a timer a bomb on cut
/datum/wires/syndicatebomb/CanUse(var/mob/living/L)
var/obj/machinery/syndicatebomb/P = holder
if(P.open_panel)
return 1
return 0
/datum/wires/syndicatebomb/UpdatePulsed(var/index)
var/obj/machinery/syndicatebomb/P = holder
if(P.degutted)
return
switch(index)
if(WIRE_BOOM)
if (P.active)
@@ -38,19 +43,13 @@ var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if
playsound(P.loc, 'sound/machines/click.ogg', 30, 1)
P.loc.visible_message("\red \icon[holder] You hear the bomb start ticking!")
P.active = 1
if(!P.open_panel) //Needs to exist in case the wire is pulsed with a signaler while the panel is closed
P.icon_state = "syndicate-bomb-active"
else
P.icon_state = "syndicate-bomb-active-wires"
processing_objects.Add(P)
P.icon_state = "[initial(P.icon_state)]-active[P.open_panel ? "-wires" : ""]"
else
P.loc.visible_message("\blue \icon[holder] The bomb seems to hesitate for a moment.")
P.timer += 5
/datum/wires/syndicatebomb/UpdateCut(var/index, var/mended)
var/obj/machinery/syndicatebomb/P = holder
if(P.degutted)
return
switch(index)
if(WIRE_EXPLODE)
if(!mended)
@@ -73,6 +72,6 @@ var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if
if(WIRE_ACTIVATE)
if (!mended && P.active)
P.loc.visible_message("\blue \icon[holder] The timer stops! The bomb has been defused!")
P.icon_state = "syndicate-bomb-inactive-wires" //no cutting possible with the panel closed
P.icon_state = "[initial(P.icon_state)]-inactive[P.open_panel ? "-wires" : ""]"
P.active = 0
P.defused = 1
+15 -3
View File
@@ -72,8 +72,12 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown",
html = GetInteractWindow()
if(html)
user.set_machine(holder)
//user << browse(html, "window=wires;size=[window_x]x[window_y]")
//onclose(user, "wires")
else
user.unset_machine()
// No content means no window.
user << browse(null, "window=wires")
return
var/datum/browser/popup = new(user, "wires", holder.name, window_x, window_y)
popup.set_content(html)
popup.set_title_image(user.browse_rsc_icon(holder.icon, holder.icon_state))
@@ -278,4 +282,12 @@ var/const/POWER = 8
/datum/wires/proc/IsAllCut()
if(wires_status == (1 << wire_count) - 1)
return 1
return 0
return 0
//
//Shuffle and Mend
//
/datum/wires/proc/Shuffle()
wires_status = 0
GenerateWires()