Merge remote-tracking branch 'origin/master' into TGUI-3.0
This commit is contained in:
@@ -257,6 +257,8 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
|
||||
return
|
||||
if (active)
|
||||
return //prevent the AI from activating an already active doomsday
|
||||
if (owner_AI.shunted)
|
||||
return //prevent AI from activating doomsday while shunted.
|
||||
active = TRUE
|
||||
set_us_up_the_bomb(owner)
|
||||
|
||||
|
||||
@@ -475,43 +475,26 @@
|
||||
|
||||
/obj/effect/spawner/lootdrop/snowdin/dungeonlite
|
||||
name = "dungeon lite"
|
||||
loot = list(/obj/item/melee/classic_baton = 11,
|
||||
/obj/item/melee/classic_baton/telescopic = 12,
|
||||
/obj/item/book/granter/spell/smoke = 10,
|
||||
loot = list(/obj/item/book/granter/spell/smoke = 10,
|
||||
/obj/item/book/granter/spell/blind = 10,
|
||||
/obj/item/storage/firstaid/regular = 45,
|
||||
/obj/item/storage/firstaid/toxin = 35,
|
||||
/obj/item/storage/firstaid/brute = 27,
|
||||
/obj/item/storage/firstaid/fire = 27,
|
||||
/obj/item/storage/toolbox/syndicate = 12,
|
||||
/obj/item/grenade/plastic/c4 = 7,
|
||||
/obj/item/grenade/clusterbuster/smoke = 15,
|
||||
/obj/item/clothing/under/chameleon = 13,
|
||||
/obj/item/clothing/shoes/chameleon/noslip = 10,
|
||||
/obj/item/borg/upgrade/ddrill = 3)
|
||||
|
||||
/obj/effect/spawner/lootdrop/snowdin/dungeonmid
|
||||
name = "dungeon mid"
|
||||
loot = list(/obj/item/defibrillator/compact = 6,
|
||||
/obj/item/storage/firstaid/tactical = 35,
|
||||
/obj/item/shield/energy = 6,
|
||||
/obj/item/shield/riot/tele = 12,
|
||||
/obj/item/dnainjector/lasereyesmut = 7,
|
||||
/obj/item/gun/magic/wand/fireball/inert = 3,
|
||||
loot = list(/obj/item/shield/riot = 12,
|
||||
/obj/item/pneumatic_cannon = 15,
|
||||
/obj/item/melee/transforming/energy/sword = 7,
|
||||
/obj/item/book/granter/spell/knock = 15,
|
||||
/obj/item/book/granter/spell/summonitem = 20,
|
||||
/obj/item/book/granter/spell/forcewall = 17,
|
||||
/obj/item/storage/backpack/holding = 12,
|
||||
/obj/item/grenade/spawnergrenade/manhacks = 6,
|
||||
/obj/item/grenade/spawnergrenade/spesscarp = 7,
|
||||
/obj/item/grenade/clusterbuster/inferno = 3,
|
||||
/obj/item/stack/sheet/mineral/diamond{amount = 15} = 10,
|
||||
/obj/item/stack/sheet/mineral/uranium{amount = 15} = 10,
|
||||
/obj/item/stack/sheet/mineral/plasma{amount = 15} = 10,
|
||||
/obj/item/stack/sheet/mineral/gold{amount = 15} = 10,
|
||||
/obj/item/book/granter/spell/barnyard = 4,
|
||||
/obj/item/pickaxe/drill/diamonddrill = 6,
|
||||
/obj/item/borg/upgrade/vtec = 7,
|
||||
/obj/item/borg/upgrade/disablercooler = 7)
|
||||
@@ -519,21 +502,12 @@
|
||||
|
||||
/obj/effect/spawner/lootdrop/snowdin/dungeonheavy
|
||||
name = "dungeon heavy"
|
||||
loot = list(/obj/item/twohanded/singularityhammer = 25,
|
||||
/obj/item/twohanded/mjollnir = 10,
|
||||
/obj/item/twohanded/fireaxe = 25,
|
||||
loot = list(/obj/item/twohanded/fireaxe = 25,
|
||||
/obj/item/organ/brain/alien = 17,
|
||||
/obj/item/twohanded/dualsaber = 15,
|
||||
/obj/item/organ/heart/demon = 7,
|
||||
/obj/item/gun/ballistic/automatic/c20r/unrestricted = 16,
|
||||
/obj/item/gun/magic/wand/resurrection/inert = 15,
|
||||
/obj/item/gun/magic/wand/resurrection = 10,
|
||||
/obj/item/uplink/old = 2,
|
||||
/obj/item/book/granter/spell/charge = 12,
|
||||
/obj/item/grenade/clusterbuster/spawner_manhacks = 15,
|
||||
/obj/item/book/granter/spell/fireball = 10,
|
||||
/obj/item/organ/heart/cursed = 7,
|
||||
/obj/item/book/granter/spell/forcewall = 17,
|
||||
/obj/item/gun/magic/wand/fireball/inert = 3,
|
||||
/obj/item/pickaxe/drill/jackhammer = 30,
|
||||
/obj/item/borg/upgrade/syndicate = 13,
|
||||
/obj/item/borg/upgrade/selfrepair = 17)
|
||||
|
||||
/obj/effect/spawner/lootdrop/snowdin/dungeonmisc
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
//Spacebattle Areas
|
||||
|
||||
/area/awaymission/spacebattle
|
||||
name = "Space Battle"
|
||||
icon_state = "awaycontent1"
|
||||
requires_power = FALSE
|
||||
|
||||
/area/awaymission/spacebattle/cruiser
|
||||
name = "Nanotrasen Cruiser"
|
||||
icon_state = "awaycontent2"
|
||||
|
||||
/area/awaymission/spacebattle/syndicate1
|
||||
name = "Syndicate Assault Ship 1"
|
||||
icon_state = "awaycontent3"
|
||||
|
||||
/area/awaymission/spacebattle/syndicate2
|
||||
name = "Syndicate Assault Ship 2"
|
||||
icon_state = "awaycontent4"
|
||||
|
||||
/area/awaymission/spacebattle/syndicate3
|
||||
name = "Syndicate Assault Ship 3"
|
||||
icon_state = "awaycontent5"
|
||||
|
||||
/area/awaymission/spacebattle/syndicate4
|
||||
name = "Syndicate War Sphere 1"
|
||||
icon_state = "awaycontent6"
|
||||
|
||||
/area/awaymission/spacebattle/syndicate5
|
||||
name = "Syndicate War Sphere 2"
|
||||
icon_state = "awaycontent7"
|
||||
|
||||
/area/awaymission/spacebattle/syndicate6
|
||||
name = "Syndicate War Sphere 3"
|
||||
icon_state = "awaycontent8"
|
||||
|
||||
/area/awaymission/spacebattle/syndicate7
|
||||
name = "Syndicate Fighter"
|
||||
icon_state = "awaycontent9"
|
||||
|
||||
/area/awaymission/spacebattle/secret
|
||||
name = "Hidden Chamber"
|
||||
icon_state = "awaycontent10"
|
||||
|
||||
/mob/living/simple_animal/hostile/syndicate/ranged/spacebattle
|
||||
loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,
|
||||
/obj/item/gun/ballistic/automatic/c20r,
|
||||
/obj/item/shield/energy)
|
||||
|
||||
/mob/living/simple_animal/hostile/syndicate/melee/spacebattle
|
||||
deathmessage = "falls limp as they release their grip from the energy weapons, activating their self-destruct function!"
|
||||
loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier)
|
||||
@@ -437,3 +437,12 @@
|
||||
item_state = "hunter"
|
||||
armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 15, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
/obj/item/clothing/head/kepi
|
||||
name = "kepi"
|
||||
desc = "A white cap with visor. Oui oui, mon capitane!"
|
||||
icon_state = "kepi"
|
||||
|
||||
/obj/item/clothing/head/kepi/old
|
||||
icon_state = "kepi_old"
|
||||
desc = "A flat, white circular cap with a visor, that demands some honor from it's wearer."
|
||||
|
||||
@@ -85,8 +85,8 @@
|
||||
/datum/round_event_control/stray_cargo/syndicate
|
||||
name = "Stray Syndicate Cargo Pod"
|
||||
typepath = /datum/round_event/stray_cargo/syndicate
|
||||
weight = 6
|
||||
max_occurrences = 1
|
||||
weight = 0
|
||||
max_occurrences = 0
|
||||
earliest_start = 30 MINUTES
|
||||
|
||||
/datum/round_event/stray_cargo/syndicate
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
/mob/living/carbon/proc/handle_dreams()
|
||||
if(prob(10) && !dreaming)
|
||||
dream()
|
||||
|
||||
/mob/living/carbon/proc/dream()
|
||||
set waitfor = FALSE
|
||||
var/list/dream_fragments = list()
|
||||
|
||||
@@ -303,12 +303,12 @@ All foods are distributed among various categories. Use common sense.
|
||||
var/obj/item/result
|
||||
if(cooked_type)
|
||||
result = new cooked_type(T)
|
||||
//if the result is food, set its food quality to the original food item's quality
|
||||
if(isfood(result))
|
||||
var/obj/item/reagent_containers/food/food_output = result
|
||||
food_output.adjust_food_quality(food_quality + M.quality_increase)
|
||||
if(istype(M))
|
||||
initialize_cooked_food(result, M.efficiency)
|
||||
//if the result is food, set its food quality to the original food item's quality
|
||||
if(isfood(result))
|
||||
var/obj/item/reagent_containers/food/food_output = result
|
||||
food_output.adjust_food_quality(food_quality + M.quality_increase)
|
||||
else
|
||||
initialize_cooked_food(result, 1)
|
||||
SSblackbox.record_feedback("tally", "food_made", 1, result.type)
|
||||
|
||||
@@ -468,6 +468,7 @@
|
||||
if(ReadHSV(temp_hsv)[3] >= ReadHSV("#7F7F7F")[3]) // mutantcolors must be bright
|
||||
H.dna.features["mcolor"] = sanitize_hexcolor(new_color, 6)
|
||||
H.update_body()
|
||||
H.update_hair()
|
||||
else
|
||||
to_chat(H, "<span class='notice'>Invalid color. Your color is not bright enough.</span>")
|
||||
else if(select_alteration == "Hair Style")
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/mob/living/carbon/BiologicalLife(seconds, times_fired)
|
||||
if(stat == DEAD)
|
||||
return FALSE
|
||||
//Reagent processing needs to come before breathing, to prevent edge cases.
|
||||
handle_organs()
|
||||
if(stat == DEAD)
|
||||
return FALSE
|
||||
if(!(. = ..()))
|
||||
return
|
||||
handle_blood()
|
||||
|
||||
@@ -1136,6 +1136,7 @@
|
||||
return
|
||||
if(!is_station_level(z))
|
||||
return
|
||||
malf.ShutOffDoomsdayDevice()
|
||||
occupier = new /mob/living/silicon/ai(src, malf.laws, malf) //DEAR GOD WHY? //IKR????
|
||||
occupier.adjustOxyLoss(malf.getOxyLoss())
|
||||
if(!findtext(occupier.name, "APC Copy"))
|
||||
|
||||
@@ -228,6 +228,11 @@
|
||||
var/last_chrg = inputting
|
||||
var/last_onln = outputting
|
||||
|
||||
//check for self-recharging cells in stock parts and use them to self-charge
|
||||
for(var/obj/item/stock_parts/cell/C in component_parts)
|
||||
if(C.self_recharge)
|
||||
charge += min(capacity-charge, C.chargerate) // If capacity-charge is smaller than the attempted charge rate, this avoids overcharging
|
||||
|
||||
//inputting
|
||||
if(terminal && input_attempt)
|
||||
input_available = terminal.surplus()
|
||||
|
||||
@@ -387,7 +387,8 @@
|
||||
return FALSE
|
||||
|
||||
if("analyze")
|
||||
var/datum/reagent/R = GLOB.name2reagent[params["id"]]
|
||||
var/reagent = GLOB.name2reagent[params["id"]]
|
||||
var/datum/reagent/R = GLOB.chemical_reagents_list[reagent]
|
||||
if(R)
|
||||
var/state = "Unknown"
|
||||
if(initial(R.reagent_state) == 1)
|
||||
@@ -400,13 +401,9 @@
|
||||
var/T = initial(R.metabolization_rate) * (60 / P)
|
||||
if(istype(R, /datum/reagent/fermi))
|
||||
fermianalyze = TRUE
|
||||
var/datum/chemical_reaction/Rcr = get_chemical_reaction(R)
|
||||
var/datum/chemical_reaction/Rcr = get_chemical_reaction(reagent)
|
||||
var/pHpeakCache = (Rcr.OptimalpHMin + Rcr.OptimalpHMax)/2
|
||||
var/datum/reagent/targetReagent = reagents.has_reagent(R)
|
||||
|
||||
if(!targetReagent)
|
||||
CRASH("Tried to find a reagent that doesn't exist in the chem_master!")
|
||||
analyzeVars = list("name" = initial(R.name), "state" = state, "color" = initial(R.color), "description" = initial(R.description), "metaRate" = T, "overD" = initial(R.overdose_threshold), "addicD" = initial(R.addiction_threshold), "purityF" = targetReagent.purity, "inverseRatioF" = initial(R.inverse_chem_val), "purityE" = initial(Rcr.PurityMin), "minTemp" = initial(Rcr.OptimalTempMin), "maxTemp" = initial(Rcr.OptimalTempMax), "eTemp" = initial(Rcr.ExplodeTemp), "pHpeak" = pHpeakCache)
|
||||
analyzeVars = list("name" = initial(R.name), "state" = state, "color" = initial(R.color), "description" = initial(R.description), "metaRate" = T, "overD" = initial(R.overdose_threshold), "addicD" = initial(R.addiction_threshold), "purityF" = R.purity, "inverseRatioF" = initial(R.inverse_chem_val), "purityE" = initial(Rcr.PurityMin), "minTemp" = initial(Rcr.OptimalTempMin), "maxTemp" = initial(Rcr.OptimalTempMax), "eTemp" = initial(Rcr.ExplodeTemp), "pHpeak" = pHpeakCache)
|
||||
else
|
||||
fermianalyze = FALSE
|
||||
analyzeVars = list("name" = initial(R.name), "state" = state, "color" = initial(R.color), "description" = initial(R.description), "metaRate" = T, "overD" = initial(R.overdose_threshold), "addicD" = initial(R.addiction_threshold))
|
||||
|
||||
@@ -386,6 +386,20 @@
|
||||
/obj/item/reagent_containers/glass/beaker/waterbottle/large/empty
|
||||
list_reagents = list()
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/waterbottle/wataur
|
||||
name = "Bottled Wataur"
|
||||
desc = "Finally, a bottle as proportionate as you."
|
||||
icon = 'icons/obj/drinks.dmi'
|
||||
icon_state = "wataur"
|
||||
custom_materials = list(/datum/material/plastic=0)
|
||||
list_reagents = list(/datum/reagent/water = 100)
|
||||
volume = 100
|
||||
amount_per_transfer_from_this = 20
|
||||
possible_transfer_amounts = list(5,10,15,20,25,30,50, 100)
|
||||
container_flags = TEMP_WEAK|APTFT_ALTCLICK|APTFT_VERB
|
||||
container_HP = 1
|
||||
cached_icon = "wataur"
|
||||
|
||||
/obj/item/reagent_containers/glass/get_belt_overlay()
|
||||
return mutable_appearance('icons/obj/clothing/belt_overlays.dmi', "bottle")
|
||||
|
||||
|
||||
@@ -264,6 +264,79 @@
|
||||
construction_time = 600
|
||||
category = list("Gygax")
|
||||
|
||||
//Medical Gygax
|
||||
/datum/design/medigax_chassis
|
||||
name = "Exosuit Chassis (\"Medical Gygax\")"
|
||||
id = "medigax_chassis"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/chassis/medigax
|
||||
materials = list(/datum/material/iron=20000)
|
||||
construction_time = 100
|
||||
category = list("Medical-Spec Gygax")
|
||||
|
||||
/datum/design/medigax_torso
|
||||
name = "Exosuit Torso (\"Medical Gygax\")"
|
||||
id = "medigax_torso"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/medigax_torso
|
||||
materials = list(/datum/material/iron=20000,/datum/material/glass=10000,/datum/material/diamond=2000)
|
||||
construction_time = 300
|
||||
category = list("Medical-Spec Gygax")
|
||||
|
||||
/datum/design/medigax_head
|
||||
name = "Exosuit Head (\"Medical Gygax\")"
|
||||
id = "medigax_head"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/medigax_head
|
||||
materials = list(/datum/material/iron=10000,/datum/material/glass=5000, /datum/material/diamond=2000)
|
||||
construction_time = 200
|
||||
category = list("Medical-Spec Gygax")
|
||||
|
||||
/datum/design/medigax_left_arm
|
||||
name = "Exosuit Left Arm (\"Medical Gygax\")"
|
||||
id = "medigax_left_arm"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/medigax_left_arm
|
||||
materials = list(/datum/material/iron=15000, /datum/material/diamond=1000)
|
||||
construction_time = 200
|
||||
category = list("Medical-Spec Gygax")
|
||||
|
||||
/datum/design/medigax_right_arm
|
||||
name = "Exosuit Right Arm (\"Medical Gygax\")"
|
||||
id = "medigax_right_arm"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/medigax_right_arm
|
||||
materials = list(/datum/material/iron=15000, /datum/material/diamond=1000)
|
||||
construction_time = 200
|
||||
category = list("Medical-Spec Gygax")
|
||||
|
||||
/datum/design/medigax_left_leg
|
||||
name = "Exosuit Left Leg (\"Medical Gygax\")"
|
||||
id = "medigax_left_leg"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/medigax_left_leg
|
||||
materials = list(/datum/material/iron=15000, /datum/material/diamond=2000)
|
||||
construction_time = 200
|
||||
category = list("Medical-Spec Gygax")
|
||||
|
||||
/datum/design/medigax_right_leg
|
||||
name = "Exosuit Right Leg (\"Medical Gygax\")"
|
||||
id = "medigax_right_leg"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/medigax_right_leg
|
||||
materials = list(/datum/material/iron=15000, /datum/material/diamond=2000)
|
||||
construction_time = 200
|
||||
category = list("Medical-Spec Gygax")
|
||||
|
||||
/datum/design/medigax_armor
|
||||
name = "Exosuit Armor (\"Medical Gygax\")"
|
||||
id = "medigax_armor"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/medigax_armor
|
||||
materials = list(/datum/material/iron=15000,/datum/material/diamond=10000,/datum/material/titanium=10000)
|
||||
construction_time = 600
|
||||
category = list("Medical-Spec Gygax")
|
||||
|
||||
//Durand
|
||||
/datum/design/durand_chassis
|
||||
name = "Exosuit Chassis (\"Durand\")"
|
||||
|
||||
@@ -42,6 +42,14 @@
|
||||
"gygax_peri", "gygax_targ", "gygax_armor")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
|
||||
/datum/techweb_node/medigax
|
||||
id = "mech_medigax"
|
||||
display_name = "EXOSUIT: Medical-Spec Gygax"
|
||||
description = "Medical-Spec Gygax designs"
|
||||
prereq_ids = list("mech_gygax", "mecha_odysseus")
|
||||
design_ids = list("medigax_chassis", "medigax_torso", "medigax_head", "medigax_left_arm", "medigax_right_arm", "medigax_left_leg", "medigax_right_leg", "medigax_armor")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
|
||||
/datum/techweb_node/durand
|
||||
id = "mech_durand"
|
||||
display_name = "EXOSUIT: Durand"
|
||||
|
||||
@@ -193,6 +193,8 @@
|
||||
var/datum/uplink_item/I = uplink_items[category][item]
|
||||
if(src == I || !I.item)
|
||||
continue
|
||||
if(istype(I, /datum/uplink_item/bundles_TC/reroll)) //oops!
|
||||
continue
|
||||
if(U.telecrystals < I.cost)
|
||||
continue
|
||||
if(I.limited_stock == 0)
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/sol_dry = 10,
|
||||
/obj/item/reagent_containers/glass/beaker/waterbottle = 10)
|
||||
contraband = list(/obj/item/reagent_containers/food/drinks/soda_cans/thirteenloko = 6,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/shamblers = 6)
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/shamblers = 6,
|
||||
/obj/item/reagent_containers/glass/beaker/waterbottle/wataur = 2)
|
||||
premium = list(/obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola = 1,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/air = 1,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/grey_bull = 1,
|
||||
|
||||
Reference in New Issue
Block a user