Pile of bugfixes

Nodrak:
- Bags of Holding can no longer be brought to the clown planet
- Made a quick new sprite for broken telescreens
- Removed the clusterbang from the HoS safe. It is currently bugged and not in presentable condition, however, someone is working on it. 
- Added a machine check to shift+click. Partial fixes issue 534 (see Zek's stuff for more.) I'm not really sure of a better way to fix this that wouldn't involve a whole pile of coding...
- Cigarettes now evenly distribute chemicals injected into a pack of cigarettes. Partial fix for issue 548 (see Zek's stuff for more.)

Commit for Zekkeit/39kk9t
- The gibber now provides attack logs of who the mob gibbed, or who the mob was gibbed by. How can you tell who a mob was gibbed by when the mob gets destroyed? Well read the next enhancement!
- Attack logs now transfer to the ghost of the mob who dies
- You can no longer survive cold by cooling yourself down before jumping into space. Fixes issue 206.
- Ghost() is now a client proc, not a mob proc. Fixes issue 442
- Fix for issue 493.
- Added a range check to shift+click. Fixes issue 534.
- Cigarette packs are now limited to (15*number of cigarettes) units of reagents. Fixes Issue 548.
- Added organ inaccuracy to guns. This means, for example, that you wont hit the mob's chest with 100% accuracy. You may end up hitting the mob's arm, or head instead. Accuracy is directly related to distance.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4022 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
johnsonmt88@gmail.com
2012-07-10 06:10:22 +00:00
parent 11e69586c5
commit 8231234a64
55 changed files with 770 additions and 190 deletions
+9 -5
View File
@@ -36,6 +36,7 @@ Works together with spawning an observer, noted above.
if(client)
client.screen.len = null//Clear the hud, just to be sure.
var/mob/dead/observer/ghost = new(src,transfer_mind)//Transfer safety to observer spawning proc.
ghost.attack_log |= attack_log
if(transfer_mind)//When a body is destroyed.
if(mind)
mind.transfer_to(ghost)
@@ -44,7 +45,7 @@ Works together with spawning an observer, noted above.
else//Else just modify their key and connect them.
ghost.key = key
verbs -= /mob/proc/ghost
verbs -= /client/proc/ghost
if (ghost.client)
ghost.client.eye = ghost
@@ -59,7 +60,7 @@ Works together with spawning an observer, noted above.
/*
This is the proc mobs get to turn into a ghost. Forked from ghostize due to compatibility issues.
*/
/mob/proc/ghost()
/client/proc/ghost()
set category = "Ghost"
set name = "Ghost"
set desc = "You cannot be revived as a ghost."
@@ -68,9 +69,11 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
src << "Only dead people and admins get to ghost, and admins don't use this verb to ghost while alive."
return*/
if(key)
var/mob/dead/observer/ghost = new(src)
var/mob/dead/observer/ghost = new(mob) //Duh.
ghost.loc = get_turf(mob) //This is to prevent ghosts from appearing at the arrival shuttle.
ghost.attack_log |= mob.attack_log //THE LEGACY MUST LIVE ON
ghost.key = key
verbs -= /mob/proc/ghost
verbs -= /client/proc/ghost
if (ghost.client)
ghost.client.eye = ghost
return
@@ -145,9 +148,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
return
if(corpse.ajourn)
corpse.ajourn=0
corpse.attack_log |= attack_log //copy the ghost's attack log to the corpse. THE LEGACY MUST LIVE ON
client.mob = corpse
if (corpse.stat==2)
verbs += /mob/proc/ghost
verbs += /client/proc/ghost
del(src)
/mob/dead/observer/proc/dead_tele()
@@ -25,7 +25,7 @@
if (src.key)
spawn(10)
if(src.key && src.stat == 2)
src.verbs += /mob/proc/ghost
src.client.verbs += /client/proc/ghost
tod = worldtime2text() //weasellos time of death patch
if (mind) mind.store_memory("Time of death: [tod]", 0)
@@ -7,7 +7,7 @@
src.client.eye = src.loc
src.client.perspective = EYE_PERSPECTIVE
if (src.stat == DEAD)
src.verbs += /mob/proc/ghost
src.verbs += /client/proc/ghost
return
/*
@@ -99,7 +99,7 @@
src.client.eye = src.loc
src.client.perspective = EYE_PERSPECTIVE
if (src.stat == 2)
src.verbs += /mob/proc/ghost
src.verbs += /client/proc/ghost
return
@@ -23,7 +23,7 @@
if (src.client)
spawn(10)
if(src.client && src.stat == 2)
src.verbs += /mob/proc/ghost
src.client.verbs += /client/proc/ghost
if(mind) // Skie - Added check that there's someone controlling the alien
tod = worldtime2text() //weasellos time of death patch
@@ -5,6 +5,6 @@
src.client.eye = src.loc
src.client.perspective = EYE_PERSPECTIVE
if (src.stat == 2)
src.verbs += /mob/proc/ghost
src.verbs += /client/proc/ghost
return
@@ -40,7 +40,7 @@
src.client.eye = src.loc
src.client.perspective = EYE_PERSPECTIVE
if (!container || !istype(container, /obj/item/device/mmi))
src.verbs += /mob/proc/ghost
src.verbs += /client/proc/ghost
return
@@ -20,5 +20,5 @@
if (key)
spawn(50)
if(key && stat == 2)
ghost()
src.client.verbs += /client/proc/ghost
return ..(gibbed)
+3 -2
View File
@@ -75,8 +75,9 @@
if(!environment)
return
var/environment_heat_capacity = environment.heat_capacity()
if(istype(loc, /turf/space))
environment_heat_capacity = loc:heat_capacity
if(istype(get_turf(src), /turf/space))
var/turf/heat_turf = get_turf(src)
environment_heat_capacity = heat_turf.heat_capacity
if((environment.temperature > (T0C + 50)) || (environment.temperature < (T0C + 10)))
var/transfer_coefficient
@@ -79,9 +79,11 @@
//This is where the suicide assemblies checks would go
if (client)
//world <<"Woo, there's a client!"
spawn(10)
if(client && src.stat == 2)
verbs += /mob/proc/ghost
//world <<"You're sooooooo dead, let's ghost!"
client.verbs += /client/proc/ghost
tod = worldtime2text() //weasellos time of death patch
if(mind)
+7 -5
View File
@@ -420,9 +420,10 @@
return
var/environment_heat_capacity = environment.heat_capacity()
var/loc_temp = T0C
if(istype(loc, /turf/space))
environment_heat_capacity = loc:heat_capacity
loc_temp = 2.7
if(istype(get_turf(src), /turf/space))
var/turf/heat_turf = get_turf(src)
environment_heat_capacity = heat_turf.heat_capacity
loc_temp = heat_turf.temperature
else if(istype(loc, /obj/machinery/atmospherics/unary/cryo_cell))
loc_temp = loc:air_contents.temperature
else
@@ -430,7 +431,7 @@
var/thermal_protection = get_thermal_protection()
//world << "Loc temp: [loc_temp] - Body temp: [bodytemperature] - Fireloss: [getFireLoss()] - Thermal protection: [get_thermal_protection()] - Fire protection: [thermal_protection + add_fire_protection(loc_temp)]"
//world << "Loc temp: [loc_temp] - Body temp: [bodytemperature] - Fireloss: [getFireLoss()] - Thermal protection: [get_thermal_protection()] - Fire protection: [thermal_protection + add_fire_protection(loc_temp)] - Heat capacity: [environment_heat_capacity] - Location: [loc] - src: [src]"
if(stat != 2 && abs(bodytemperature - 310.15) < 50)
bodytemperature += adjust_body_temperature(bodytemperature, 310.15, thermal_protection)
@@ -591,7 +592,7 @@
proc/handle_temperature_damage(body_part, exposed_temperature, exposed_intensity)
if(nodamage)
return
//world <<"body_part = [body_part], exposed_temperature = [exposed_temperature], exposed_intensity = [exposed_intensity]"
var/discomfort = min(abs(exposed_temperature - bodytemperature)*(exposed_intensity)/2000000, 1.0)
if(exposed_temperature > bodytemperature)
@@ -601,6 +602,7 @@
discomfort *= 3 //I don't like magic numbers. I'll make mutantraces a datum with vars sometime later. -- Urist
else
discomfort *= 1.5 //Dangercon 2011 - Upping damage by use of magic numbers - Errorage
//world <<"[discomfort]"
switch(body_part)
if(HEAD)
@@ -7,6 +7,6 @@
src.client.eye = src.loc
src.client.perspective = EYE_PERSPECTIVE
if (src.stat == DEAD)
src.verbs += /mob/proc/ghost
src.verbs += /client/proc/ghost
return
@@ -37,6 +37,6 @@
if (src.key)
spawn(50)
if(src.key && src.stat == 2)
src.verbs += /mob/proc/ghost
src.client.verbs += /client/proc/ghost
return ..(gibbed)
@@ -318,9 +318,10 @@
//var/environment_heat_capacity = environment.heat_capacity()
var/loc_temp = T0C
if(istype(loc, /turf/space))
if(istype(get_turf(src), /turf/space))
//environment_heat_capacity = loc:heat_capacity
loc_temp = 2.7
var/turf/heat_turf = get_turf(src)
loc_temp = heat_turf.temperature
else if(istype(loc, /obj/machinery/atmospherics/unary/cryo_cell))
loc_temp = loc:air_contents.temperature
else
@@ -7,6 +7,6 @@
src.client.eye = src.loc
src.client.perspective = EYE_PERSPECTIVE
if (src.stat == DEAD)
src.verbs += /mob/proc/ghost
src.verbs += /client/proc/ghost
return
@@ -67,6 +67,6 @@
if (src.key)
spawn(50)
if(src.key && src.stat == 2)
src.verbs += /mob/proc/ghost
src.client.verbs += /client/proc/ghost
return ..(gibbed)
@@ -330,8 +330,9 @@
if(!environment)
return
var/environment_heat_capacity = environment.heat_capacity()
if(istype(loc, /turf/space))
environment_heat_capacity = loc:heat_capacity
if(istype(get_turf(src), /turf/space))
var/turf/heat_turf = get_turf(src)
environment_heat_capacity = heat_turf.heat_capacity
if((environment.temperature > (T0C + 50)) || (environment.temperature < (T0C + 10)))
var/transfer_coefficient
@@ -7,5 +7,5 @@
src.client.eye = src.loc
src.client.perspective = EYE_PERSPECTIVE
if (src.stat == DEAD)
src.verbs += /mob/proc/ghost
src.verbs += /client/proc/ghost
return
+1 -1
View File
@@ -53,5 +53,5 @@
if (key)
spawn(50)
if(key && stat == 2)
verbs += /mob/proc/ghost
client.verbs += /client/proc/ghost
return ..(gibbed)
+1 -1
View File
@@ -22,7 +22,7 @@
src.client.eye = src.loc
src.client.perspective = EYE_PERSPECTIVE
if (src.stat == 2)
src.verbs += /mob/proc/ghost
src.verbs += /client/proc/ghost
else
for(var/obj/machinery/ai_status_display/O in world) //change status
spawn(0)
+1 -1
View File
@@ -8,5 +8,5 @@
src.client.eye = src.loc
src.client.perspective = EYE_PERSPECTIVE
if (src.stat == 2)
src.verbs += /mob/proc/ghost
src.verbs += /client/proc/ghost
return
@@ -72,5 +72,5 @@
if (src.key)
spawn(50)
if(src.key && src.stat == 2)
src.verbs += /mob/proc/ghost
src.verbs += /client/proc/ghost
return ..(gibbed)
@@ -7,7 +7,7 @@
src.client.eye = src.loc
src.client.perspective = EYE_PERSPECTIVE
if (src.stat == 2)
src.verbs += /mob/proc/ghost
src.verbs += /client/proc/ghost
if(src.real_name == "Cyborg")
src.ident = rand(1, 999)
src.real_name += " "