Skip to content

Commit

Permalink
Merge pull request #229 from sshado/A-Release
Browse files Browse the repository at this point in the history
v0.1.20
  • Loading branch information
BlueNexus committed Oct 2, 2015
2 parents 04b90f2 + fdf89d9 commit d1789ed
Show file tree
Hide file tree
Showing 50 changed files with 1,090 additions and 133 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ cfg/
baystation12.int
#Ignore .DS_Store
.DS_Store
maps/overmap/aphelion-1.dmm
33 changes: 27 additions & 6 deletions code/ATMOSPHERICS/components/unary/cold_sink.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,38 @@
density = 1
anchored = 1
use_power = 0
idle_power_usage = 5 // 5 Watts for thermostat related circuitry
idle_power_usage = 5 // 5 Watts for thermostat related circuitry

var/heatsink_temperature = T20C // The constant temperature reservoir into which the freezer pumps heat. Probably the hull of the station or something.
var/internal_volume = 600 // L
var/heat_transfer_coeffecient = 1.0 // Coeffecient on heat exchange. It uses decimal division.

var/max_temp
var/min_temp

var/max_power_rating = 20000 // Power rating when the usage is turned up to 100
var/power_setting = 100

var/set_temperature = T20C // Thermostat
var/cooling = 0

min_temp =0
max_temp = 600

/obj/machinery/atmospherics/unary/freezer/engine
name = "engine class gas cooling system"
set_temperature = 2500
max_temp = 3000
min_temp =240
heat_transfer_coeffecient = 0.71

/obj/machinery/atmospherics/unary/freezer/cryogenics
name = "cryogenic class gas cooling system"
set_temperature = 64
min_temp =32
heat_transfer_coeffecient = 0.20
max_power_rating = 30000

/obj/machinery/atmospherics/unary/freezer/New()
..()
initialize_directions = dir
Expand Down Expand Up @@ -74,8 +95,8 @@
data["on"] = use_power ? 1 : 0
data["gasPressure"] = round(air_contents.return_pressure())
data["gasTemperature"] = round(air_contents.temperature)
data["minGasTemperature"] = 0
data["maxGasTemperature"] = round(T20C+500)
data["minGasTemperature"] = min_temp
data["maxGasTemperature"] = max_temp
data["targetGasTemperature"] = round(set_temperature)
data["powerSetting"] = power_setting

Expand Down Expand Up @@ -108,9 +129,9 @@
if(href_list["temp"])
var/amount = text2num(href_list["temp"])
if(amount > 0)
set_temperature = min(set_temperature + amount, 1000)
set_temperature = min(set_temperature + amount, max_temp)
else
set_temperature = max(set_temperature + amount, 0)
set_temperature = max(set_temperature + amount, min_temp)
if(href_list["setPower"]) //setting power to 0 is redundant anyways
var/new_setting = between(0, text2num(href_list["setPower"]), 100)
set_power_level(new_setting)
Expand All @@ -135,7 +156,7 @@
var/cop = FREEZER_PERF_MULT * air_contents.temperature/heatsink_temperature //heatpump coefficient of performance from thermodynamics -> power used = heat_transfer/cop
heat_transfer = min(heat_transfer, cop * power_rating) //limit heat transfer by available power

var/removed = -air_contents.add_thermal_energy(-heat_transfer) //remove the heat
var/removed = -air_contents.add_thermal_energy(-heat_transfer/heat_transfer_coeffecient) //remove the heat
if(debug)
visible_message("[src]: Removing [removed] W.")

Expand Down
8 changes: 8 additions & 0 deletions code/controllers/configuration.dm
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,8 @@ var/list/gamemode_cache = list()
var/alert_desc_blue_downto = "The immediate threat has passed. Security may no longer have weapons drawn at all times, but may continue to have them visible. Random searches are still allowed."
var/alert_desc_red_upto = "There is an immediate serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised."
var/alert_desc_red_downto = "The self-destruct mechanism has been deactivated, there is still however an immediate serious threat to the station. Security may have weapons unholstered at all times, random searches are allowed and advised."
var/alert_desc_black_upto = "A medical emergency is present aboard the NES Aphelion. All crew are to cooperate with the Medical and Security staff. Mandatory quarantine procedures may be enacted and enforced."
var/alert_desc_black_downto = "The medical emergency has passed. All crew are to resume normal operations."
var/alert_desc_delta = "The station's self-destruct mechanism has been engaged. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill."

var/forbid_singulo_possession = 0
Expand Down Expand Up @@ -498,6 +500,12 @@ var/list/gamemode_cache = list()
if("load_jobs_from_txt")
load_jobs_from_txt = 1

if("alert_black_upto")
config.alert_desc_red_upto = value

if("alert_black_downto")
config.alert_desc_red_downto = value

if("alert_red_upto")
config.alert_desc_red_upto = value

Expand Down
2 changes: 1 addition & 1 deletion code/controllers/voting.dm
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ datum/controller/vote
question = "End the shift?"
choices.Add("Initiate Crew Transfer", "Continue The Round")
else
if (get_security_level() == "red" || get_security_level() == "delta")
if (get_security_level() == "red" || get_security_level() == "black" || get_security_level() == "delta")
initiator_key << "The current alert status is too high to call for a crew transfer!"
return 0
if(ticker.current_state <= 2)
Expand Down
4 changes: 3 additions & 1 deletion code/game/gamemodes/game_mode.dm
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,9 @@ var/global/list/additional_antag_types = list()
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/imp_freedom, 3, "Freedom Implant", "FI"),
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/imp_compress, 4, "Compressed Matter Implant", "CI"),
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/imp_explosive, 6, "Explosive Implant (DANGER!)", "EI"),
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/imp_uplink, 10, "Uplink Implant (Contains 5 Telecrystals)", "UI")
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/imp_uplink, 10, "Uplink Implant (Contains 5 Telecrystals)", "UI"),
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/imp_amnesia, 2, "Amnesia Implant", "AMI"),
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/imp_enslavement, 4, "Enslavement Implant", "ENI")
),
"Medical" = list(
new/datum/uplink_item(/obj/item/weapon/storage/box/sinpockets, 1, "Box of Sin-Pockets", "DP"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,13 +114,13 @@
/datum/game_mode/malfunction/verb/elite_encryption_hack()
set category = "Software"
set name = "Elite Encryption Hack"
set desc = "200 CPU - Allows you to hack station's ALERTCON system, changing alert level. Has high chance of failijng."
set desc = "200 CPU - Allows you to hack station's ALERTCON system, changing alert level. Has high chance of failing."
var/price = 200
var/mob/living/silicon/ai/user = usr
if(!ability_prechecks(user, price))
return

var/alert_target = input("Select new alert level:") in list("green", "blue", "red", "delta", "CANCEL")
var/alert_target = input("Select new alert level:") in list("green", "blue", "red", "black", "delta", "CANCEL")
if(!alert_target || !ability_pay(user, price) || alert_target == "CANCEL")
user << "Hack Aborted"
return
Expand Down
10 changes: 4 additions & 6 deletions code/game/machinery/atmoalter/canister.dm
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,8 @@ update_flag
if (src.health <= 10)
var/atom/location = src.loc
location.assume_air(air_contents)


src.release_pressure = 1000
src.destroyed = 1
playsound(src.loc, 'sound/effects/spray.ogg', 10, 1, -3)
src.density = 0
Expand All @@ -181,12 +182,8 @@ update_flag
return 1

/obj/machinery/portable_atmospherics/canister/process()
if (destroyed)
return

..()

if(valve_open)
if((valve_open) || (destroyed))
var/datum/gas_mixture/environment
if(holding)
environment = holding.air_contents
Expand All @@ -196,6 +193,7 @@ update_flag
var/env_pressure = environment.return_pressure()
var/pressure_delta = release_pressure - env_pressure


if((air_contents.temperature > 0) && (pressure_delta > 0))
var/transfer_moles = calculate_transfer_moles(air_contents, environment, pressure_delta)
transfer_moles = min(transfer_moles, (release_flow_rate/air_contents.volume)*air_contents.total_moles) //flow rate limit
Expand Down
11 changes: 9 additions & 2 deletions code/game/machinery/cryopod.dm
Original file line number Diff line number Diff line change
Expand Up @@ -343,8 +343,15 @@
// them win or lose based on cryo is silly so we remove the objective.
if(O.target == occupant.mind)
if(O.owner && O.owner.current)
O.owner.current << "<span class='warning'>You get the feeling your target is no longer within your reach...</span>"
qdel(O)
O.owner.current << "<span class='warning'>You get the feeling your target is no longer within your reach. Time for Plan B...</span>"
O.target = null
spawn(1) //This should ideally fire after the occupant is deleted.
if(!O) return
O.find_target()
if(!(O.target))
all_objectives -= O
O.owner.objectives -= O
del(O)

//Handle job slot/tater cleanup.
var/job = occupant.mind.assigned_role
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/suit_storage_unit.dm
Original file line number Diff line number Diff line change
Expand Up @@ -624,7 +624,7 @@
model_text = "Engineering"
req_access = list(access_construction)
departments = list("Engineering","Atmos")
species = list("Human","Tajara","Skrell","Unathi") //Add Unathi when sprites exist for their suits.
species = list("Human","Tajara","Skrell","Unathi") //Add Kidan when sprites exist for their suits.

/obj/machinery/suit_cycler/mining
name = "Mining suit cycler"
Expand Down
18 changes: 11 additions & 7 deletions code/game/machinery/vending.dm
Original file line number Diff line number Diff line change
Expand Up @@ -749,12 +749,18 @@
products = list(/obj/item/weapon/reagent_containers/food/drinks/cans/cola = 10,/obj/item/weapon/reagent_containers/food/drinks/cans/space_mountain_wind = 10,
/obj/item/weapon/reagent_containers/food/drinks/cans/dr_gibb = 10,/obj/item/weapon/reagent_containers/food/drinks/cans/starkist = 10,
/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle = 10,/obj/item/weapon/reagent_containers/food/drinks/cans/space_up = 10,
/obj/item/weapon/reagent_containers/food/drinks/cans/iced_tea = 10, /obj/item/weapon/reagent_containers/food/drinks/cans/grape_juice = 10)
/obj/item/weapon/reagent_containers/food/drinks/cans/iced_tea = 10, /obj/item/weapon/reagent_containers/food/drinks/cans/grape_juice = 10,
/obj/item/weapon/reagent_containers/food/drinks/cans/cherrycola = 10, /obj/item/weapon/reagent_containers/food/drinks/cans/vanillacola = 10,
/obj/item/weapon/reagent_containers/food/drinks/cans/nanopop = 10, /obj/item/weapon/reagent_containers/food/drinks/cans/mintwalker = 10,
/obj/item/weapon/reagent_containers/food/drinks/cans/noblelotus = 10, /obj/item/weapon/reagent_containers/food/drinks/cans/holyslammer = 10)
contraband = list(/obj/item/weapon/reagent_containers/food/drinks/cans/thirteenloko = 5, /obj/item/weapon/reagent_containers/food/snacks/liquidfood = 6)
prices = list(/obj/item/weapon/reagent_containers/food/drinks/cans/cola = 1,/obj/item/weapon/reagent_containers/food/drinks/cans/space_mountain_wind = 1,
/obj/item/weapon/reagent_containers/food/drinks/cans/dr_gibb = 1,/obj/item/weapon/reagent_containers/food/drinks/cans/starkist = 1,
/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle = 2,/obj/item/weapon/reagent_containers/food/drinks/cans/space_up = 1,
/obj/item/weapon/reagent_containers/food/drinks/cans/iced_tea = 1,/obj/item/weapon/reagent_containers/food/drinks/cans/grape_juice = 1)
/obj/item/weapon/reagent_containers/food/drinks/cans/iced_tea = 1,/obj/item/weapon/reagent_containers/food/drinks/cans/grape_juice = 1,
/obj/item/weapon/reagent_containers/food/drinks/cans/cherrycola = 2, /obj/item/weapon/reagent_containers/food/drinks/cans/vanillacola = 2,
/obj/item/weapon/reagent_containers/food/drinks/cans/nanopop = 1, /obj/item/weapon/reagent_containers/food/drinks/cans/mintwalker = 1,
/obj/item/weapon/reagent_containers/food/drinks/cans/noblelotus = 1, /obj/item/weapon/reagent_containers/food/drinks/cans/holyslammer = 2)
idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan.

//This one's from bay12
Expand Down Expand Up @@ -1038,7 +1044,7 @@
/obj/item/clothing/under/color/white = 10, /obj/item/clothing/under/color/yellow = 10, /obj/item/clothing/under/purple = 10,
/obj/item/clothing/under/aqua = 10, /obj/item/clothing/under/lightblue = 10, /obj/item/clothing/under/lightpurple = 10,
/obj/item/clothing/under/lightgreen = 10, /obj/item/clothing/under/lightblue = 10, /obj/item/clothing/under/brown = 10)
contraband = list(/obj/item/clothing/under/psyche = 1)
contraband = list(/obj/item/clothing/under/rank/clown = 1)
prices = list(/obj/item/clothing/under/color/black = 10, /obj/item/clothing/under/color/blackf = 10,
/obj/item/clothing/under/color/blue = 10, /obj/item/clothing/under/color/green = 10, /obj/item/clothing/under/color/grey = 10,
/obj/item/clothing/under/color/orange = 10, /obj/item/clothing/under/color/pink = 10, /obj/item/clothing/under/color/red = 10,
Expand All @@ -1054,10 +1060,8 @@
icon_state = "shoe"
products = list(/obj/item/clothing/shoes/blue = 10, /obj/item/clothing/shoes/red = 10,
/obj/item/clothing/shoes/yellow = 10, /obj/item/clothing/shoes/green = 10, /obj/item/clothing/shoes/orange = 10,
/obj/item/clothing/shoes/purple = 10, /obj/item/clothing/shoes/red = 10, /obj/item/clothing/shoes/leather = 10,
/obj/item/clothing/shoes/jackboots = 10)
/obj/item/clothing/shoes/purple = 10, /obj/item/clothing/shoes/red = 10, /obj/item/clothing/shoes/leather = 10)
contraband = list (/obj/item/clothing/shoes/clown_shoes = 1)
prices = list (/obj/item/clothing/shoes/blue = 10, /obj/item/clothing/shoes/red = 10,
/obj/item/clothing/shoes/yellow = 10, /obj/item/clothing/shoes/green = 10, /obj/item/clothing/shoes/orange = 10,
/obj/item/clothing/shoes/purple = 10, /obj/item/clothing/shoes/red = 10, /obj/item/clothing/shoes/leather = 10,
/obj/item/clothing/shoes/jackboots = 25)
/obj/item/clothing/shoes/purple = 10, /obj/item/clothing/shoes/red = 10, /obj/item/clothing/shoes/leather = 10)
58 changes: 58 additions & 0 deletions code/game/objects/items/weapons/implants/implant.dm
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,64 @@ the implant may become unstable and either pre-maturely inject the subject or si
return 1


/obj/item/weapon/implant/enslavement
name = "strange implant"
desc = "That's a strange implant."

get_data()
var/dat = {"
<b>Implant Specifications:</b><BR>
<b>Name:</b> MK-U17R4.<BR>
<b>Life:</b> Exceds Host Lifespan<BR>
<b>Important Notes:</b> Personnel injected with this device often appear to develop a crippling dependency on another person.<BR>
<HR>
<b>Implant Details:</b><BR>
<b>Function:</b> Modifies thought processes to ensure a desired response.<BR>
<b>Special Features:</b> Contains a small mechanism that redirects electric signals in the brain. <BR>
<b>Integrity:</b> Dura-titanium hull ensures the chip will survive longer than the host."}
return dat


implanted(mob/M)
if(!istype(M, /mob/living/carbon/human)) return 0
var/mob/living/carbon/human/H = M
if(H.is_loyalty_implanted(H))
H.visible_message("[H] seems to resist the implant!", "You feel something try to invade your mind, but your loyalty implant blocks it!")
return 0

H << "\red You feel your mind blank, and a dark, whispering voice echos through your mind, binding you to [M.slaver]."
H << "<b>1. You will follow any and all orders from [M.slaver] at all times.</b>"
H << "<b>2. You will not act against [M.slaver] in any way, shape, or form.</b>"
H << "<b>3. You will aid [M.slaver] in every way, shape, and form at all costs. Following orders takes priority over giving aid.</b>"

/obj/item/weapon/implant/amnesia
name = "strange implant"
desc = "That's a strange implant."


get_data()
var/dat = {"
<b>Implant Specifications:</b><BR>
<b>Name:</b> Brain-Drain 3000<BR>
<b>Life:</b> UNKNOWN.<BR>
<b>Important Notes:</b> Personnel injected with this device experience dampening across the length of their cerebral cortex, halting specific thought processes.<BR>
<HR>
<b>Implant Details:</b><BR>
<b>Function:</b> Contains small pods of nanobots that seem to be programmed to target memory-related regions of the brain.<BR>
<b>Special Features:</b> Now comes in strawberry!<BR>
<b>Integrity:</b> The nanobots will cease functionality when the controller is removed."}
return dat


implanted(mob/M)
if(!istype(M, /mob/living/carbon/human)) return 0
var/mob/living/carbon/human/H = M
if(H.is_loyalty_implanted(H))
H.visible_message("[H] seems to hesitate for a moment.", "You feel odd. You can't quite tell if [M.slaver] is there any more. You are sure they are, but something is wrong.")
return 0

H << "<b>Your thoughts drain away. You no longer remember anything about [M.slaver], nor can you hold on to any new memories related to them for long.</b>"

/obj/item/weapon/implant/adrenalin
name = "adrenalin"
desc = "Removes all stuns and knockdowns."
Expand Down
18 changes: 18 additions & 0 deletions code/game/objects/items/weapons/implants/implanter.dm
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
admin_attack_log(user, M, "Implanted using \the [src.name] ([src.imp.name])", "Implanted with \the [src.name] ([src.imp.name])", "used an implanter, [src.name] ([src.imp.name]), on")

user.show_message("\red You implanted the implant into [M].")
M.slaver = user
if(src.imp.implanted(M))
src.imp.loc = M
src.imp.imp_in = M
Expand All @@ -61,6 +62,23 @@
return


/obj/item/weapon/implanter/enslavement
name = "implanter-enslavement"

/obj/item/weapon/implanter/enslavement/New()
src.imp = new /obj/item/weapon/implant/enslavement( src )
..()
update()
return

/obj/item/weapon/implanter/amnesia
name = "implanter-amnesia"

/obj/item/weapon/implanter/amnesia/New()
src.imp = new /obj/item/weapon/implant/amnesia( src )
..()
update()
return

/obj/item/weapon/implanter/loyalty
name = "implanter-loyalty"
Expand Down
14 changes: 14 additions & 0 deletions code/game/objects/items/weapons/storage/boxes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -627,3 +627,17 @@
new /obj/item/weapon/light/tube(src)
for(var/i = 0; i < 7; i++)
new /obj/item/weapon/light/bulb(src)

/obj/item/weapon/storage/box/pmeson
name = "box of prescription meson scanners"
desc = "For the visually impaired engineers."

New()
..()
new /obj/item/clothing/glasses/meson/prescription(src)
new /obj/item/clothing/glasses/meson/prescription(src)
new /obj/item/clothing/glasses/meson/prescription(src)
new /obj/item/clothing/glasses/meson/prescription(src)
new /obj/item/clothing/glasses/meson/prescription(src)
new /obj/item/clothing/glasses/meson/prescription(src)
new /obj/item/clothing/glasses/meson/prescription(src)
14 changes: 14 additions & 0 deletions code/game/objects/items/weapons/storage/firstaid.dm
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,20 @@
new /obj/item/weapon/reagent_containers/pill/tramadol( src )
new /obj/item/weapon/reagent_containers/pill/tramadol( src )

/obj/item/weapon/storage/pill_bottle/paracetamol
name = "bottle of paracetamol pills"
desc = "Contains pills used to relieve minor pain."

New()
..()
new /obj/item/weapon/reagent_containers/pill/paracetamol( src )
new /obj/item/weapon/reagent_containers/pill/paracetamol( src )
new /obj/item/weapon/reagent_containers/pill/paracetamol( src )
new /obj/item/weapon/reagent_containers/pill/paracetamol( src )
new /obj/item/weapon/reagent_containers/pill/paracetamol( src )
new /obj/item/weapon/reagent_containers/pill/paracetamol( src )
new /obj/item/weapon/reagent_containers/pill/paracetamol( src )

/obj/item/weapon/storage/pill_bottle/citalopram
name = "bottle of Citalopram pills"
desc = "Contains pills used to stabilize a patient's mood."
Expand Down
20 changes: 20 additions & 0 deletions code/game/objects/items/weapons/storage/uplink_kits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,26 @@
O.update()
return

/obj/item/weapon/storage/box/syndie_kit/imp_enslavement
name = "boxed enslavement implant (with injector)"

/obj/item/weapon/storage/box/syndie_kit/imp_enslavement/New()
..()
var/obj/item/weapon/implanter/O = new(src)
O.imp = new /obj/item/weapon/implant/enslavement(O)
O.update()
return

/obj/item/weapon/storage/box/syndie_kit/imp_amnesia
name = "boxed amnesia implant (with injector)"

/obj/item/weapon/storage/box/syndie_kit/imp_amnesia/New()
..()
var/obj/item/weapon/implanter/O = new(src)
O.imp = new /obj/item/weapon/implant/amnesia(O)
O.update()
return

/obj/item/weapon/storage/box/syndie_kit/imp_compress
name = "box (C)"

Expand Down
Loading

0 comments on commit d1789ed

Please sign in to comment.