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

This commit is contained in:
PsiOmega
2014-12-15 08:58:28 +01:00
15 changed files with 336 additions and 326 deletions
+8 -5
View File
@@ -504,11 +504,6 @@
if("python_path")
if(value)
config.python_path = value
else
if(world.system_type == UNIX)
config.python_path = "/usr/bin/env python2"
else //probably windows, if not this should work anyway
config.python_path = "python"
if("use_lib_nudge")
config.use_lib_nudge = 1
@@ -741,3 +736,11 @@
runnable_modes[M] = probabilities[M.config_tag]
//world << "DEBUG: runnable_mode\[[runnable_modes.len]\] = [M.config_tag]"
return runnable_modes
/datum/configuration/proc/post_load()
//apply a default value to config.python_path, if needed
if (!config.python_path)
if(world.system_type == UNIX)
config.python_path = "/usr/bin/env python2"
else //probably windows, if not this should work anyway
config.python_path = "python"
+9 -10
View File
@@ -531,7 +531,6 @@ As such, it's hard-coded for now. No reason for it not to be, really.
else
equip_to_slot_or_del(new /obj/item/clothing/under/color/black(src), slot_w_uniform)
equip_to_slot_or_del(new /obj/item/clothing/mask/gas/voice/space_ninja(src), slot_wear_mask)
equip_to_slot_or_del(new /obj/item/device/flashlight(src), slot_belt)
var/obj/item/weapon/rig/light/ninja/ninjasuit = new(src)
@@ -546,16 +545,16 @@ As such, it's hard-coded for now. No reason for it not to be, really.
equip_to_slot_or_del(ninjasuit,slot_back)
if(istype(wear_suit,/obj/item/weapon/rig))
var/obj/item/weapon/rig/rig = wear_suit
if(rig.air_supply)
internal = rig.air_supply
if(!internal && s_store)
internal = s_store
if(internal)
internals.icon_state = "internal1"
spawn(10)
ninjasuit.toggle_seals(src,1)
if(istype(back,/obj/item/weapon/rig))
var/obj/item/weapon/rig/rig = back
if(rig.air_supply)
internal = rig.air_supply
if(!internal && s_store)
internal = s_store
if(internal)
internals.icon_state = "internal1"
return 1
+2
View File
@@ -111,6 +111,8 @@
pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24)
pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0
update_icon()
if(ticker && ticker.current_state == 3)//if the game is running
src.initialize()
return
first_run()
+7 -8
View File
@@ -1,6 +1,5 @@
/*********************MANUALS (BOOKS)***********************/
//Oh god what the fuck I am not good at computer
/obj/item/weapon/book/manual
icon = 'icons/obj/library.dmi'
due_date = 0 // Game time in 1/10th seconds
@@ -13,7 +12,7 @@
author = "Engineering Encyclopedia" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
title = "Station Repairs and Construction"
/obj/item/weapon/book/manual/engineering_construction/initialize()
/obj/item/weapon/book/manual/engineering_construction/New()
..()
dat = {"
@@ -34,7 +33,7 @@
author = "Engineering Encyclopedia" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
title = "Particle Accelerator User's Guide"
/obj/item/weapon/book/manual/engineering_particle_accelerator/initialize()
/obj/item/weapon/book/manual/engineering_particle_accelerator/New()
..()
dat = {"<html>
<head>
@@ -81,7 +80,7 @@
author = "Waleed Asad"
title = "Supermatter Engine User's Guide"
/obj/item/weapon/book/manual/supermatter_engine/initialize()
/obj/item/weapon/book/manual/supermatter_engine/New()
..()
dat = {"<html>
<head>
@@ -193,7 +192,7 @@
author = "Engineering Encyclopedia" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
title = "Hacking"
/obj/item/weapon/book/manual/engineering_hacking/initialize()
/obj/item/weapon/book/manual/engineering_hacking/New()
..()
dat = {"
@@ -750,7 +749,7 @@
author = "NanoTrasen"
title = "Corporate Regulations"
/obj/item/weapon/book/manual/security_space_law/initialize()
/obj/item/weapon/book/manual/security_space_law/New()
..()
dat = {"
@@ -774,7 +773,7 @@
author = "NanoTrasen Medicine Department"
title = "NT Medical Diagnostics Manual"
/obj/item/weapon/book/manual/medical_diagnostics_manual/initialize()
/obj/item/weapon/book/manual/medical_diagnostics_manual/New()
..()
dat = {"<html>
<head>
@@ -821,7 +820,7 @@
author = "Engineering Encyclopedia"
title = "Engineering Textbook"
/obj/item/weapon/book/manual/engineering_guide/initialize()
/obj/item/weapon/book/manual/engineering_guide/New()
..()
dat = {"
-6
View File
@@ -16,12 +16,6 @@
var/damtype = "brute"
var/force = 0
/obj/New()
..()
// If the game is already underway initialize will no longer be called for us
if(ticker && ticker.current_state == GAME_STATE_PLAYING)
initialize()
/obj/Topic(href, href_list, var/nowindow = 0)
// Calling Topic without a corresponding window open causes runtime errors
if(nowindow)
+16 -7
View File
@@ -10,13 +10,22 @@
var/obj/item/voice_changer/changer
origin_tech = "syndicate=4"
/obj/item/clothing/mask/gas/voice/verb/Toggle_Voice_Changer()
set category = "Object"
set src in usr
changer.active = !changer.active
usr << "<span class='notice'>You [changer.active ? "enable" : "disable"] the voice-changing module in \the [src].</span>"
/obj/item/clothing/mask/gas/voice/verb/Set_Voice(name as text)
set category = "Object"
set src in usr
var/voice = sanitize(copytext(name,1,MAX_MESSAGE_LEN))
if(!voice || !length(voice)) return
changer.voice = voice
usr << "<span class='notice'>You are now mimicking <B>[changer.voice]</B>.</span>"
/obj/item/clothing/mask/gas/voice/New()
..()
changer = new(src)
/obj/item/clothing/mask/gas/voice/space_ninja
name = "ninja mask"
desc = "A close-fitting mask that acts both as an air filter and a post-modern fashion statement."
icon_state = "s-ninja"
item_state = "s-ninja_mask"
siemens_coefficient = 0.2
@@ -269,7 +269,7 @@
if(!raw_choice)
return 0
voice_holder.voice = sanitize(copytext(raw_choice,1,MAX_MESSAGE_LEN))
usr << "You are now mimicking <B>[voice_holder.voice]</B>.</font>"
usr << "<font color='blue'>You are now mimicking <B>[voice_holder.voice]</B>.</font>"
return 1
/obj/item/rig_module/maneuvering_jets
+1 -1
View File
@@ -88,7 +88,7 @@
"adminordrazine" = 1,
"milk" = 0.9,
"beer" = 0.7,
"flourine" = -0.5,
"fluorine" = -0.5,
"chlorine" = -0.5,
"phosphorus" = -0.5,
"water" = 1,
+23 -34
View File
@@ -94,8 +94,10 @@
//Disabilities
handle_disabilities()
//Organ failure.
//Organs and blood
handle_organs()
handle_blood()
stabilize_body_temperature() //Body temperature adjusts itself (self-regulation)
//Random events (vomiting etc)
handle_random_events()
@@ -1070,22 +1072,6 @@
take_overall_damage(2,0)
traumatic_shock++
if (drowsyness)
drowsyness--
eye_blurry = max(2, eye_blurry)
if (prob(5))
sleeping += 1
Paralyse(5)
confused = max(0, confused - 1)
// decrement dizziness counter, clamped to 0
if(resting)
dizziness = max(0, dizziness - 15)
jitteriness = max(0, jitteriness - 15)
else
dizziness = max(0, dizziness - 3)
jitteriness = max(0, jitteriness - 3)
if(!(species.flags & IS_SYNTHETIC)) handle_trace_chems()
updatehealth()
@@ -1101,10 +1087,6 @@
silent = 0
else //ALIVE. LIGHTS ARE ON
updatehealth() //TODO
if(!in_stasis)
stabilize_body_temperature() //Body temperature adjusts itself
handle_organs() //Optimized.
handle_blood()
if(health <= config.health_threshold_dead || (species.has_organ["brain"] && !has_brain()))
death()
@@ -1119,13 +1101,6 @@
if( (getOxyLoss() > 50) || (config.health_threshold_crit > health) )
Paralyse(3)
/* Done by handle_breath()
if( health <= 20 && prob(1) )
spawn(0)
emote("gasp")
if(!reagents.has_reagent("inaprovaline"))
adjustOxyLoss(1)*/
if(hallucination)
if(hallucination >= 20)
if(prob(3))
@@ -1168,22 +1143,17 @@
if( prob(2) && health && !hal_crit )
spawn(0)
emote("snore")
else if(resting)
if(halloss > 0)
adjustHalLoss(-3)
//CONSCIOUS
else
stat = CONSCIOUS
if(halloss > 0)
adjustHalLoss(-1)
//Periodically double-check embedded_flag
if(embedded_flag && !(life_tick % 10))
var/list/E
E = get_visible_implants(0)
if(!E.len)
embedded_flag = 0
//Eyes
//Check rig first because it's two-check and other checks will override it.
if(istype(back,/obj/item/weapon/rig))
@@ -1223,9 +1193,28 @@
else if(ear_damage < 25) //ear damage heals slowly under this threshold. otherwise you'll need earmuffs
ear_damage = max(ear_damage-0.05, 0)
//Resting
if(resting)
dizziness = max(0, dizziness - 15)
jitteriness = max(0, jitteriness - 15)
adjustHalLoss(-3)
else
dizziness = max(0, dizziness - 3)
jitteriness = max(0, jitteriness - 3)
adjustHalLoss(-1)
//Other
handle_statuses()
if (drowsyness)
drowsyness--
eye_blurry = max(2, eye_blurry)
if (prob(5))
sleeping += 1
Paralyse(5)
confused = max(0, confused - 1)
// If you're dirty, your gloves will become dirty, too.
if(gloves && germ_level > gloves.germ_level && prob(10))
gloves.germ_level += 1
+22 -6
View File
@@ -104,10 +104,17 @@
W.germ_level += 1
/mob/living/carbon/human/proc/handle_stance()
if (lying || resting)
return // don't need to process any of this if they aren't standing anyways
// Don't need to process any of this if they aren't standing anyways
// unless their stance is damaged, and we want to check if they should stay down
if (!stance_damage && (lying || resting) && (life_tick % 4) == 0)
return
stance_damage = 0
// Buckled to a bed/chair. Stance damage is forced to 0 since they're sitting on something solid
if (istype(buckled, /obj/structure/stool/bed))
return
for (var/organ in list("l_leg","l_foot","r_leg","r_foot"))
var/datum/organ/external/E = organs_by_name[organ]
if (E.status & ORGAN_DESTROYED)
@@ -115,9 +122,18 @@
else if (E.is_malfunctioning() || (E.is_broken() && !(E.status & ORGAN_SPLINTED)) || !E.is_usable())
stance_damage += 1
// Canes and crutches help you stand (if the latter is ever added)
// One cane mitigates a broken leg+foot, or a missing foot.
// Two canes are needed for a lost leg. If you are missing both legs, canes aren't gonna help you.
if (istype(l_hand, /obj/item/weapon/cane))
stance_damage -= 2
if (istype(l_hand, /obj/item/weapon/cane))
stance_damage -= 2
// standing is poor
if(stance_damage >= 4 || (stance_damage >= 2 && prob(5)))
Weaken(5)
if(species && !(species.flags & NO_PAIN))
emote("scream")
emote("collapse")
if(!(lying || resting))
if(species && !(species.flags & NO_PAIN))
emote("scream")
custom_emote(1, "collapses!")
Weaken(5) //can't emote while weakened, apparently.
+2 -2
View File
@@ -380,7 +380,7 @@ datum
id = "inaprovaline"
description = "Inaprovaline is a synaptic stimulant and cardiostimulant. Commonly used to stabilize patients."
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
color = "#00BFFF" // rgb: 200, 165, 220
overdose = REAGENTS_OVERDOSE*2
scannable = 1
@@ -1595,7 +1595,7 @@ datum
id = "phoron"
description = "Phoron in its liquid form."
reagent_state = LIQUID
color = "#00BFFF" // rgb: 231, 27, 0
color = "#E71B00" // rgb: 231, 27, 0
toxpwr = 3
on_mob_life(var/mob/living/M as mob)
+3 -3
View File
@@ -12,7 +12,7 @@ em {font-style: normal;font-weight: bold;}
{color: #638500;}
.prefix {font-weight: bold;}
.log_message {color: #789FC7;}
.log_message {color: #386AFF; font-weight: bold;}
/* OOC */
.ooc {font-weight: bold;}
@@ -29,12 +29,12 @@ em {font-style: normal;font-weight: bold;}
.pm .howto {color: #ff0000; font-weight: bold; font-size: 200%;}
.pm .in {color: #ff0000;}
.pm .out {color: #B54A4A;}
.pm .other {color: #498db6;}
.pm .other {color: #164664;}
/* Admin: Channels */
.mod_channel {color: #735638; font-weight: bold;}
.mod_channel .admin {color: #e40045; font-weight: bold;}
.admin_channel {color: #402A14; font-weight: bold;}
.admin_channel {color: #9611D4; font-weight: bold;}
/* Radio: Misc */
.deadsay {color: #530FAD;}
+4 -3
View File
@@ -6,6 +6,7 @@ var/global/datum/global_init/init = new ()
/datum/global_init/New()
makeDatumRefLists()
load_configuration()
del(src)
@@ -33,8 +34,8 @@ var/global/datum/global_init/init = new ()
if(byond_version < RECOMMENDED_VERSION)
world.log << "Your server's byond version does not meet the recommended requirements for this server. Please update BYOND"
load_configuration()
config.post_load()
if(config && config.server_name != null && config.server_suffix && world.port > 0)
// dumb and hardcoded but I don't care~
config.server_name += " #[(world.port % 1000) / 100]"
@@ -259,7 +260,7 @@ var/world_topic_spam_protect_time = world.timeofday
join_motd = file2text("config/motd.txt")
/world/proc/load_configuration()
/proc/load_configuration()
config = new /datum/configuration()
config.load("config/config.txt")
config.load("config/game_options.txt","game_options")