-Breathing plasma will now give you the plasma reagent for toxic damage which will need treatment, in order to remove it from your body quickly. This creates a nice poison effect.

-Made the plasma reagent damage you more.
-Syndicate agent cards will now work inside pdas/wallets.
-Switched some comments around in event.dm
-There was a bug with a local variable list which became null, the problem was that there is no where in the code which could've nulled it. My only theory is that not having . = list() first maybe caused problems, but it seems unlikely. I changed it anyway and I'll keep watch for it re-appearing.
-Fixed a bug with the new firedoors not keeping out heat, since they have an opacity of 0. I switched everything around to accommodate this.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5516 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
giacomand@gmail.com
2013-01-11 13:53:48 +00:00
parent 51ea8d3d0d
commit 13b25d24cf
14 changed files with 39 additions and 26 deletions

View File

@@ -665,7 +665,7 @@ Auto Patrol: []"},
if(src.emagged == 2) return 10 //Everyone is a criminal!
if((src.idcheck) || (isnull(perp:wear_id)) || (istype(perp:wear_id, /obj/item/weapon/card/id/syndicate)))
if((src.idcheck) || (isnull(perp:wear_id)) || (istype(perp:wear_id.GetID(), /obj/item/weapon/card/id/syndicate)))
if((istype(perp.l_hand, /obj/item/weapon/gun) && !istype(perp.l_hand, /obj/item/weapon/gun/projectile/shotgun)) || istype(perp.l_hand, /obj/item/weapon/melee/baton))
if(!istype(perp.l_hand, /obj/item/weapon/gun/energy/laser/bluetag) \
@@ -692,7 +692,7 @@ Auto Patrol: []"},
threatcount += 2
//Agent cards lower threatlevel when normal idchecking is off.
if((istype(perp:wear_id, /obj/item/weapon/card/id/syndicate)) && src.idcheck)
if((perp.wear_id && istype(perp:wear_id.GetID(), /obj/item/weapon/card/id/syndicate)) && src.idcheck)
threatcount -= 2
if(src.lasercolor == "b")//Lasertag turrets target the opposing team, how great is that? -Sieve

View File

@@ -623,7 +623,7 @@ Auto Patrol: []"},
threatcount += 2
//Agent cards lower threatlevel.
if(istype(perp:wear_id, /obj/item/weapon/card/id/syndicate))
if(perp.wear_id && istype(perp:wear_id.GetID(), /obj/item/weapon/card/id/syndicate))
threatcount -= 2
if(src.check_records)

View File

@@ -74,7 +74,7 @@
human = 1
var/mob/living/carbon/human/H = M
//Cameras can't track people wearing an agent card or a ninja hood.
if(istype(H.wear_id, /obj/item/weapon/card/id/syndicate))
if(H.wear_id && istype(H.wear_id.GetID(), /obj/item/weapon/card/id/syndicate))
continue
if(istype(H.head, /obj/item/clothing/head/helmet/space/space_ninja))
var/obj/item/clothing/head/helmet/space/space_ninja/hood = H.head
@@ -131,15 +131,16 @@
if (U.cameraFollow == null)
return
if (istype(target, /mob/living/carbon/human))
if(istype(target:wear_id, /obj/item/weapon/card/id/syndicate))
var/mob/living/carbon/human/H = target
if(H.wear_id && istype(H.wear_id.GetID(), /obj/item/weapon/card/id/syndicate))
U << "Follow camera mode terminated."
U.cameraFollow = null
return
if(istype(target:head, /obj/item/clothing/head/helmet/space/space_ninja) && !target:head:canremove)
if(istype(H.head, /obj/item/clothing/head/helmet/space/space_ninja) && !H.head.canremove)
U << "Follow camera mode terminated."
U.cameraFollow = null
return
if(target.digitalcamo)
if(H.digitalcamo)
U << "Follow camera mode terminated."
U.cameraFollow = null
return

View File

@@ -92,7 +92,6 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }.
normalspeed = 1
var/obj/item/weapon/airlock_electronics/electronics = null
var/hasShocked = 0 //Prevents multiple shocks from happening
var/heat_proof = 0 // For glass airlocks
/obj/machinery/door/airlock/command
name = "Airlock"
@@ -633,13 +632,6 @@ About the new airlock wires panel:
return 0
/obj/machinery/door/airlock/update_heat_protection(var/turf/simulated/source)
if(istype(source))
if(src.density && (src.opacity || src.heat_proof))
source.thermal_conductivity = DOOR_HEAT_TRANSFER_COEFFICIENT
else
source.thermal_conductivity = initial(source.thermal_conductivity)
/obj/machinery/door/airlock/update_icon()
if(overlays) overlays.Cut()
if(density)

View File

@@ -17,6 +17,7 @@
var/autoclose = 0
var/glass = 0
var/normalspeed = 1
var/heat_proof = 0 // For glass airlocks/opacity firedoors
/obj/machinery/door/New()
..()
@@ -280,7 +281,7 @@
/obj/machinery/door/proc/update_heat_protection(var/turf/simulated/source)
if(istype(source))
if(src.density && src.opacity)
if(src.density && (src.opacity || src.heat_proof))
source.thermal_conductivity = DOOR_HEAT_TRANSFER_COEFFICIENT
else
source.thermal_conductivity = initial(source.thermal_conductivity)

View File

@@ -88,6 +88,7 @@
icon = 'icons/obj/doors/edge_Doorfire.dmi'
glass = 1 //There is a glass window so you can see through the door
//This is needed due to BYOND limitations in controlling visibility
heat_proof = 1
CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(istype(mover) && mover.checkpass(PASSGLASS))

View File

@@ -558,7 +558,7 @@ Status: []<BR>"},
return 10
if(auth_weapons) // check for weapon authorization
if((isnull(perp:wear_id)) || (istype(perp:wear_id, /obj/item/weapon/card/id/syndicate)))
if((isnull(perp:wear_id)) || (istype(perp:wear_id.GetID(), /obj/item/weapon/card/id/syndicate)))
if((src.allowed(perp)) && !(src.lasercolor)) // if the perp has security access, return 0
return 0

View File

@@ -10,13 +10,13 @@
//Called when the tick is equal to the startWhen variable.
//Allows you to announce before starting or vice versa.
//Allows you to start before announcing or vice versa.
//Only called once.
/datum/event/proc/start()
return
//Called when the tick is equal to the announceWhen variable.
//Allows you to start before announcing or vice versa.
//Allows you to announce before starting or vice versa.
//Only called once.
/datum/event/proc/announce()
return

View File

@@ -411,8 +411,10 @@
co2overloadtime = 0
if(Toxins_pp > safe_toxins_max) // Too much toxins
var/ratio = breath.toxins/safe_toxins_max
adjustToxLoss(min(ratio, MIN_PLASMA_DAMAGE)) //Limit amount of damage toxin exposure can do per second
var/ratio = (breath.toxins/safe_toxins_max) * 10
//adjustToxLoss(Clamp(ratio, MIN_PLASMA_DAMAGE, MAX_PLASMA_DAMAGE)) //Limit amount of damage toxin exposure can do per second
if(reagents)
reagents.add_reagent("plasma", Clamp(ratio, MIN_PLASMA_DAMAGE, MAX_PLASMA_DAMAGE))
toxins_alert = max(toxins_alert, 1)
else
toxins_alert = 0

View File

@@ -287,8 +287,10 @@
co2overloadtime = 0
if(Toxins_pp > safe_toxins_max) // Too much toxins
var/ratio = breath.toxins/safe_toxins_max
adjustToxLoss(min(ratio, MIN_PLASMA_DAMAGE)) //Limit amount of damage toxin exposure can do per second
var/ratio = (breath.toxins/safe_toxins_max) * 10
//adjustToxLoss(Clamp(ratio, MIN_PLASMA_DAMAGE, MAX_PLASMA_DAMAGE)) //Limit amount of damage toxin exposure can do per second
if(reagents)
reagents.add_reagent("plasma", Clamp(ratio, MIN_PLASMA_DAMAGE, MAX_PLASMA_DAMAGE))
toxins_alert = max(toxins_alert, 1)
else
toxins_alert = 0

View File

@@ -143,9 +143,12 @@
/obj/machinery/power/proc/get_connections()
if(!directwired) return get_indirect_connections()
. = list()
if(!directwired)
return get_indirect_connections()
var/cdir
for(var/card in cardinal)

View File

@@ -5,6 +5,7 @@
//The reaction procs must ALWAYS set src = null, this detaches the proc from the object (the reagent)
//so that it can continue working when the reagent is deleted while the proc is still active.
datum
reagent
var/name = "Reagent"
@@ -1152,7 +1153,7 @@ datum
if(!M) M = holder.my_atom
if(holder.has_reagent("inaprovaline"))
holder.remove_reagent("inaprovaline", 2)
M.adjustToxLoss(1)
M.adjustToxLoss(3)
..()
return
reaction_obj(var/obj/O, var/volume)

View File

@@ -17,7 +17,8 @@
#define MOLES_N2STANDARD MOLES_CELLSTANDARD*N2STANDARD // N2 standard value (79%)
#define MOLES_PLASMA_VISIBLE 0.7 //Moles in a standard cell after which plasma is visible
#define MIN_PLASMA_DAMAGE 20
#define MIN_PLASMA_DAMAGE 5
#define MAX_PLASMA_DAMAGE 15
#define BREATH_VOLUME 0.5 //liters in a normal breath
#define BREATH_PERCENTAGE BREATH_VOLUME/CELL_VOLUME

View File

@@ -48,6 +48,15 @@ Stuff which is in development and not yet visible to players or just code relate
should be listed in the changelog upon commit tho. Thanks. -->
<!-- To take advantage of the pretty new format (well it was new when I wrote this anyway), open the "add-to-changelog.html" file in any browser and add the stuff and then generate the html code and paste it here -->
<div class="commit sansserif">
<h2 class="date">11 January 2013</h2>
<h3 class="author">Giacom updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Plasma (Air) will give the breather the plasma reagent, for a toxic effect, instead of just straight damage.</li>
<li class="bugfix">The agent card will now work inside PDAs/Wallets; meaning the AI won't be able to track you.</li>
</ul>
</div>
<div class="commit sansserif">
<h2 class="date">09 January 2013</h2>
<h3 class="author">Malkevin updated:</h3>