Merge pull request #6018 from Hubblenaut/master

Patch of fixes for bugs and oversights
This commit is contained in:
Zuhayr
2014-08-18 09:28:17 +09:30
10 changed files with 22 additions and 19 deletions

View File

@@ -20,7 +20,7 @@
/datum/game_mode/cult /datum/game_mode/cult
name = "cult" name = "cult"
config_tag = "cult" config_tag = "cult"
restricted_jobs = list("Chaplain","AI", "Cyborg", "Lawyer", "Head of Security", "Captain") restricted_jobs = list("Chaplain","AI", "Cyborg", "Internal Affairs Agent", "Head of Security", "Captain")
protected_jobs = list("Security Officer", "Warden", "Detective") protected_jobs = list("Security Officer", "Warden", "Detective")
required_players = 5 required_players = 5
required_players_secret = 15 required_players_secret = 15

View File

@@ -14,7 +14,7 @@
/datum/game_mode/revolution /datum/game_mode/revolution
name = "revolution" name = "revolution"
config_tag = "revolution" config_tag = "revolution"
restricted_jobs = list("Lawyer", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer") restricted_jobs = list("Internal Affairs Agent", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer")
protected_jobs = list("Security Officer", "Warden", "Detective") protected_jobs = list("Security Officer", "Warden", "Detective")
required_players = 4 required_players = 4
required_players_secret = 15 required_players_secret = 15

View File

@@ -6,7 +6,7 @@
name = "traitor" name = "traitor"
config_tag = "traitor" config_tag = "traitor"
restricted_jobs = list("Cyborg")//They are part of the AI if he is traitor so are they, they use to get double chances restricted_jobs = list("Cyborg")//They are part of the AI if he is traitor so are they, they use to get double chances
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain")//AI", Currently out of the list as malf does not work for shit protected_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "Head of Security", "Captain")//AI", Currently out of the list as malf does not work for shit
required_players = 0 required_players = 0
required_enemies = 1 required_enemies = 1
recommended_enemies = 4 recommended_enemies = 4

View File

@@ -325,7 +325,8 @@ var/global/list/frozen_items = list()
time_entered = world.time time_entered = world.time
// Book keeping! // Book keeping!
log_admin("[key_name_admin(M)] has entered a stasis pod.") var/turf/location = get_turf(src)
log_admin("[key_name_admin(M)] has entered a stasis pod. (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[location.x];Y=[location.y];Z=[location.z]'>JMP</a>)")
message_admins("\blue [key_name_admin(M)] has entered a stasis pod.") message_admins("\blue [key_name_admin(M)] has entered a stasis pod.")
//Despawning occurs when process() is called with an occupant without a client. //Despawning occurs when process() is called with an occupant without a client.

View File

@@ -16,6 +16,7 @@
return 1 return 1
/obj/item/device/transfer_valve/attackby(obj/item/item, mob/user) /obj/item/device/transfer_valve/attackby(obj/item/item, mob/user)
var/turf/location = get_turf(src) // For admin logs
if(istype(item, /obj/item/weapon/tank)) if(istype(item, /obj/item/weapon/tank))
if(tank_one && tank_two) if(tank_one && tank_two)
user << "<span class='warning'>There are already two tanks attached, remove one first.</span>" user << "<span class='warning'>There are already two tanks attached, remove one first.</span>"
@@ -31,7 +32,7 @@
user.drop_item() user.drop_item()
item.loc = src item.loc = src
user << "<span class='notice'>You attach the tank to the transfer valve.</span>" user << "<span class='notice'>You attach the tank to the transfer valve.</span>"
message_admins("[key_name_admin(user)] attached both tanks to a transfer valve.") message_admins("[key_name_admin(user)] attached both tanks to a transfer valve. (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[location.x];Y=[location.y];Z=[location.z]'>JMP</a>)")
log_game("[key_name_admin(user)] attached both tanks to a transfer valve.") log_game("[key_name_admin(user)] attached both tanks to a transfer valve.")
update_icon() update_icon()
@@ -53,7 +54,7 @@
A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb). A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb).
bombers += "[key_name(user)] attached a [item] to a transfer valve." bombers += "[key_name(user)] attached a [item] to a transfer valve."
message_admins("[key_name_admin(user)] attached a [item] to a transfer valve.") message_admins("[key_name_admin(user)] attached a [item] to a transfer valve. (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[location.x];Y=[location.y];Z=[location.z]'>JMP</a>)")
log_game("[key_name_admin(user)] attached a [item] to a transfer valve.") log_game("[key_name_admin(user)] attached a [item] to a transfer valve.")
attacher = user attacher = user
nanomanager.update_uis(src) // update all UIs attached to src nanomanager.update_uis(src) // update all UIs attached to src

View File

@@ -170,7 +170,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost, you won't be able to play this round for another 30 minutes! You can't change your mind so choose wisely!)","Are you sure you want to ghost?","Ghost","Stay in body") var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost, you won't be able to play this round for another 30 minutes! You can't change your mind so choose wisely!)","Are you sure you want to ghost?","Ghost","Stay in body")
if(response != "Ghost") return //didn't want to ghost after-all if(response != "Ghost") return //didn't want to ghost after-all
resting = 1 resting = 1
message_admins("[key_name_admin(usr)] has ghosted.") var/turf/location = get_turf(src)
message_admins("[key_name_admin(usr)] has ghosted. (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[location.x];Y=[location.y];Z=[location.z]'>JMP</a>)")
log_game("[key_name_admin(usr)] has ghosted.") log_game("[key_name_admin(usr)] has ghosted.")
var/mob/dead/observer/ghost = ghostize(0) //0 parameter is so we can never re-enter our body, "Charlie, you can never come baaaack~" :3 var/mob/dead/observer/ghost = ghostize(0) //0 parameter is so we can never re-enter our body, "Charlie, you can never come baaaack~" :3
ghost.timeofdeath = world.time // Because the living mob won't have a time of death and we want the respawn timer to work properly. ghost.timeofdeath = world.time // Because the living mob won't have a time of death and we want the respawn timer to work properly.

View File

@@ -212,7 +212,7 @@
var/mob/living/carbon/human/H = src var/mob/living/carbon/human/H = src
H.w_uniform.add_fingerprint(M) H.w_uniform.add_fingerprint(M)
if(lying) if(lying || src.sleeping)
src.sleeping = max(0,src.sleeping-5) src.sleeping = max(0,src.sleeping-5)
if(src.sleeping == 0) if(src.sleeping == 0)
src.resting = 0 src.resting = 0

View File

@@ -2,7 +2,7 @@
//NOTE: Breathing happens once per FOUR TICKS, unless the last breath fails. In which case it happens once per ONE TICK! So oxyloss healing is done once per 4 ticks while oxyloss damage is applied once per tick! //NOTE: Breathing happens once per FOUR TICKS, unless the last breath fails. In which case it happens once per ONE TICK! So oxyloss healing is done once per 4 ticks while oxyloss damage is applied once per tick!
#define HUMAN_MAX_OXYLOSS 1 //Defines how much oxyloss humans can get per tick. A tile with no air at all (such as space) applies this value, otherwise it's a percentage of it. #define HUMAN_MAX_OXYLOSS 1 //Defines how much oxyloss humans can get per tick. A tile with no air at all (such as space) applies this value, otherwise it's a percentage of it.
#define HUMAN_CRIT_MAX_OXYLOSS ( (last_tick_duration) /5) //The amount of damage you'll get when in critical condition. We want this to be a 5 minute deal = 300s. There are 100HP to get through, so (1/3)*last_tick_duration per second. Breaths however only happen every 4 ticks. #define HUMAN_CRIT_MAX_OXYLOSS ( (last_tick_duration) /6) //The amount of damage you'll get when in critical condition. We want this to be a 5 minute deal = 300s. There are 50HP to get through, so (1/6)*last_tick_duration per second. Breaths however only happen every 4 ticks.
#define HEAT_DAMAGE_LEVEL_1 2 //Amount of damage applied when your body temperature just passes the 360.15k safety point #define HEAT_DAMAGE_LEVEL_1 2 //Amount of damage applied when your body temperature just passes the 360.15k safety point
#define HEAT_DAMAGE_LEVEL_2 4 //Amount of damage applied when your body temperature passes the 400K point #define HEAT_DAMAGE_LEVEL_2 4 //Amount of damage applied when your body temperature passes the 400K point
@@ -71,7 +71,7 @@
//No need to update all of these procs if the guy is dead. //No need to update all of these procs if the guy is dead.
if(stat != DEAD && !in_stasis) if(stat != DEAD && !in_stasis)
if(air_master.current_cycle%4==2 || failed_last_breath) //First, resolve location and get a breath if(air_master.current_cycle%4==2 || failed_last_breath || (health < config.health_threshold_crit)) //First, resolve location and get a breath
breathe() //Only try to take a breath every 4 ticks, unless suffocating breathe() //Only try to take a breath every 4 ticks, unless suffocating
else //Still give containing object the chance to interact else //Still give containing object the chance to interact

View File

@@ -244,7 +244,7 @@
if(I && I.damage > 0) if(I && I.damage > 0)
if(I.robotic < 2) if(I.robotic < 2)
user.visible_message("\blue [user] treats damage to [target]'s [I.name] with [tool_name].", \ user.visible_message("\blue [user] treats damage to [target]'s [I.name] with [tool_name].", \
"You treat damage to [target]'s [I.name] with [tool_name]." ) "\blue You treat damage to [target]'s [I.name] with [tool_name]." )
else else
user.visible_message("\blue [user] pokes [target]'s mechanical [I.name] with [tool_name]...", \ user.visible_message("\blue [user] pokes [target]'s mechanical [I.name] with [tool_name]...", \
"\blue You poke [target]'s mechanical [I.name] with [tool_name]... \red For no effect, since it's robotic.") "\blue You poke [target]'s mechanical [I.name] with [tool_name]... \red For no effect, since it's robotic.")

View File

@@ -89,7 +89,7 @@ proc/do_surgery(mob/living/M, mob/living/user, obj/item/tool)
//We had proper tools! (or RNG smiled.) and User did not move or change hands. //We had proper tools! (or RNG smiled.) and User did not move or change hands.
if( prob(S.tool_quality(tool)) && do_mob(user, M, rand(S.min_duration, S.max_duration))) if( prob(S.tool_quality(tool)) && do_mob(user, M, rand(S.min_duration, S.max_duration)))
S.end_step(user, M, user.zone_sel.selecting, tool) //finish successfully S.end_step(user, M, user.zone_sel.selecting, tool) //finish successfully
else //or else if (tool in user.contents && user.Adjacent(M)) //or
S.fail_step(user, M, user.zone_sel.selecting, tool) //malpractice~ S.fail_step(user, M, user.zone_sel.selecting, tool) //malpractice~
return 1 //don't want to do weapony things after surgery return 1 //don't want to do weapony things after surgery
return 0 return 0