Merge pull request #2860 from VOREStation/polaris-sync-2018-01-27

Polaris Sync 2018-01-27
This commit is contained in:
Aronai Sieyes
2018-01-28 14:08:14 -05:00
committed by GitHub
106 changed files with 16929 additions and 105 deletions
+4
View File
@@ -1050,6 +1050,8 @@ var/list/admin_verbs_event_manager = list(
set category = "Fun"
set name = "Man Up"
set desc = "Tells mob to man up and deal with it."
if(alert("Are you sure you want to tell them to man up?","Confirmation","Deal with it","No")=="No") return
T << "<span class='notice'><b><font size=3>Man up and deal with it.</font></b></span>"
T << "<span class='notice'>Move on.</span>"
@@ -1061,6 +1063,8 @@ var/list/admin_verbs_event_manager = list(
set category = "Fun"
set name = "Man Up Global"
set desc = "Tells everyone to man up and deal with it."
if(alert("Are you sure you want to tell the whole server up?","Confirmation","Deal with it","No")=="No") return
for (var/mob/T as mob in mob_list)
T << "<br><center><span class='notice'><b><font size=4>Man up.<br> Deal with it.</font></b><br>Move on.</span></center><br>"
@@ -29,6 +29,12 @@
display_name = "the traveler's guide to vir"
path = /obj/item/weapon/book/codex //VOREStation Edit
cost = 0
/datum/gear/utility/news
display_name = "daedalus pocket newscaster"
path = /obj/item/weapon/book/codex/lore/news
cost = 0
/* //VORESTATION REMOVAL
/datum/gear/utility/corp_regs
display_name = "corporate regulations and legal code"
+1 -1
View File
@@ -70,7 +70,7 @@ BLIND // can't see anything
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
toggleable = 1
vision_flags = SEE_TURFS
enables_planes = (VIS_FULLBRIGHT)
enables_planes = list(VIS_FULLBRIGHT, VIS_MESONS)
/obj/item/clothing/glasses/meson/New()
..()
+151 -1
View File
@@ -965,6 +965,16 @@ I said no!
)
result = /obj/item/weapon/ruinedvirusdish
/datum/recipe/onionrings
fruit = list("onion" = 1)
reagents = list("flour" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/onionrings
/datum/recipe/onionsoup
fruit = list("onion" = 1)
reagents = list("water" = 10)
result = /obj/item/weapon/reagent_containers/food/snacks/onionsoup
//////////////////////////////////////////
// bs12 food port stuff
//////////////////////////////////////////
@@ -1011,6 +1021,146 @@ I said no!
reagents = list("sugar" = 5, "frostoil" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/mint
////////////////////////
// TGstation food ports
////////////////////////
/datum/recipe/meatbun
fruit = list("cabbage" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meatball,
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
)
result = /obj/item/weapon/reagent_containers/food/snacks/meatbun
/datum/recipe/sashimi
reagents = list("soysauce" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/carpmeat
)
result = /obj/item/weapon/reagent_containers/food/snacks/sashimi
/datum/recipe/benedict
items = list(
/obj/item/weapon/reagent_containers/food/snacks/cutlet,
/obj/item/weapon/reagent_containers/food/snacks/friedegg,
/obj/item/weapon/reagent_containers/food/snacks/slice/bread
)
result = /obj/item/weapon/reagent_containers/food/snacks/benedict
/datum/recipe/bakedbeans
fruit = list("soybeans" = 2)
reagents = list("ketchup" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/beans
/datum/recipe/sugarcookie
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough
)
reagents = list("sugar" = 5, "egg" = 3)
result = /obj/item/weapon/reagent_containers/food/snacks/sugarcookie
/datum/recipe/berrymuffin
reagents = list("milk" = 5, "sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough
)
fruit = list("berries" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/berrymuffin
/datum/recipe/ghostmuffin
reagents = list("milk" = 5, "sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/ectoplasm
)
fruit = list("berries" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/ghostmuffin
/datum/recipe/eggroll
reagents = list("soysauce" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/friedegg
)
fruit = list("cabbage" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/eggroll
/datum/recipe/fruitsalad
fruit = list("orange" = 1, "apple" = 1, "grapes" = 1, "watermelon" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/fruitsalad
/datum/recipe/eggbowl
reagents = list("water" = 5, "rice" = 10, "egg" = 3)
result = /obj/item/weapon/reagent_containers/food/snacks/eggbowl
/datum/recipe/porkbowl
reagents = list("water" = 5, "rice" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/cutlet
)
result = /obj/item/weapon/reagent_containers/food/snacks/porkbowl
/datum/recipe/tortilla
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough
)
result = /obj/item/weapon/reagent_containers/food/snacks/tortilla
/datum/recipe/meatburrito
fruit = list("soybeans" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/tortilla,
/obj/item/weapon/reagent_containers/food/snacks/cutlet,
/obj/item/weapon/reagent_containers/food/snacks/cutlet
)
result = /obj/item/weapon/reagent_containers/food/snacks/meatburrito
/datum/recipe/cheeseburrito
fruit = list("soybeans" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/tortilla,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge
)
result = /obj/item/weapon/reagent_containers/food/snacks/cheeseburrito
/datum/recipe/fuegoburrito
fruit = list("soybeans" = 1, "chili" = 2)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/tortilla
)
result = /obj/item/weapon/reagent_containers/food/snacks/fuegoburrito
/datum/recipe/nachos
reagents = list("sodiumchloride" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/tortilla
)
result = /obj/item/weapon/reagent_containers/food/snacks/nachos
/datum/recipe/cheesenachos
reagents = list("sodiumchloride" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/tortilla,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge
)
result = /obj/item/weapon/reagent_containers/food/snacks/cheesenachos
/datum/recipe/cubannachos
fruit = list("chili" = 1)
reagents = list("ketchup" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/tortilla
)
result = /obj/item/weapon/reagent_containers/food/snacks/cubannachos
/datum/recipe/piginblanket
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
/obj/item/weapon/reagent_containers/food/snacks/sausage
)
result = /obj/item/weapon/reagent_containers/food/snacks/piginblanket
// Cakes.
/datum/recipe/cake
@@ -1060,4 +1210,4 @@ I said no!
/datum/recipe/cake/brain
items = list(/obj/item/organ/internal/brain)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/braincake
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/braincake
+2 -2
View File
@@ -90,10 +90,10 @@ var/global/datum/controller/plants/plant_controller // Set in New().
var/list/plant_traits = ALL_GENES
while(plant_traits && plant_traits.len)
var/gene_tag = pick(plant_traits)
var/gene_mask = "[uppertext(num2hex(rand(0,255)))]"
var/gene_mask = "[uppertext(num2hex(rand(0,255), 2))]"
while(gene_mask in used_masks)
gene_mask = "[uppertext(num2hex(rand(0,255)))]"
gene_mask = "[uppertext(num2hex(rand(0,255), 2))]"
var/decl/plantgene/G
+20 -1
View File
@@ -691,7 +691,7 @@
name = "potato"
seed_name = "potato"
display_name = "potatoes"
chems = list("nutriment" = list(1,10), "potato" = list(10,10))
chems = list("nutriment" = list(1,10), "potatojuice" = list(10,10))
kitchen_tag = "potato"
/datum/seed/potato/New()
@@ -706,6 +706,24 @@
set_trait(TRAIT_PLANT_ICON,"bush2")
set_trait(TRAIT_WATER_CONSUMPTION, 6)
/datum/seed/onion
name = "onion"
seed_name = "onion"
display_name = "onions"
chems = list("nutriment" = list(1,10))
kitchen_tag = "onion"
/datum/seed/onion/New()
..()
set_trait(TRAIT_MATURATION,10)
set_trait(TRAIT_PRODUCTION,1)
set_trait(TRAIT_YIELD,4)
set_trait(TRAIT_POTENCY,10)
set_trait(TRAIT_PRODUCT_ICON,"onion")
set_trait(TRAIT_PRODUCT_COLOUR,"#E0C367")
set_trait(TRAIT_PLANT_ICON,"carrot")
set_trait(TRAIT_WATER_CONSUMPTION, 6)
/datum/seed/soybean
name = "soybean"
seed_name = "soybean"
@@ -910,6 +928,7 @@
/datum/seed/citrus/lemon/New()
..()
set_trait(TRAIT_PRODUCES_POWER,1)
set_trait(TRAIT_PRODUCT_ICON,"lemon")
set_trait(TRAIT_PRODUCT_COLOUR,"#F0E226")
set_trait(TRAIT_FLESH_COLOUR,"#F0E226")
set_trait(TRAIT_IDEAL_LIGHT, 6)
+3
View File
@@ -237,6 +237,9 @@ var/global/list/plant_seed_sprites = list()
/obj/item/seeds/lemonseed
seed_type = "lemon"
/obj/item/seeds/onionseed
seed_type = "onion"
/obj/item/seeds/orangeseed
seed_type = "orange"
+1
View File
@@ -60,6 +60,7 @@
/obj/item/seeds/limeseed = 3,
/obj/item/seeds/mtearseed = 2,
/obj/item/seeds/orangeseed = 3,
/obj/item/seeds/onionseed = 3,
/obj/item/seeds/peanutseed = 3,
/obj/item/seeds/plumpmycelium = 3,
/obj/item/seeds/poppyseed = 3,
+7
View File
@@ -24,6 +24,13 @@
has the words 'Don't Panic' in small, friendly letters on the cover."
icon_state = "codex"
root_type = /datum/lore/codex/category/main_vir_lore
/obj/item/weapon/book/codex/lore/news
name = "Daedalus Pocket Newscaster"
desc = "A regularly-updating compendium of articles on current events. Essential for new arrivals in the Vir system and anyone interested in politics."
icon_state = "newscodex"
root_type = /datum/lore/codex/category/main_news
/* //VORESTATION REMOVAL
// Combines SOP/Regs/Law
/obj/item/weapon/book/codex/corp_regs
+1 -1
View File
@@ -28,5 +28,5 @@
to an immigrant from another system or even from outside human space, and anyone inbetween. The publisher wishes to note that any opinions expressed \
in this text does not reflect the opinions of the publisher, and are instead the author's.\
<br><br>\
Eshi Tache has also written other <i>The Traveler's Guide</i> books, including <i>Sol Edition</i>, <i>Tau Ceti Edition</i>, <i>Sirius Edition</i>, and more, \
Eshi Tache has also written other <i>The Traveler's Guide</i> books, including <i>Sol Edition</i>, <i>Tau Ceti Edition</i>, <i>Alpha Centauri Edition</i>, and more, \
which you can find in your local book store, library, or e-reader device."
+34
View File
@@ -0,0 +1,34 @@
/datum/lore/codex/category/main_news // The top-level categories for the news thing
name = "Index"
data = "Below you'll find a list of articles relevant to the current (as of 2562) political climate, especially concerning the Almach Rim \
region. Each is labled by date of publication and title. This list is self-updating, and from time to time the publisher will push new \
articles. You are encouraged to check back frequently."
children = list(
/datum/lore/codex/page/article1,
/datum/lore/codex/page/about_news,
)
/datum/lore/codex/page/about_news
name = "About the Publisher"
data = "The <i>Daedalus Pocket Newscaster</i> is produced and maintained by Occulum Broadcast, the foremost authority on media distribution \
and owner-operator of the award-winning Daedalus Dispatch newsletter. We use our unparalleled network of freelance reporters, political scientists, \
and other experts to deliver hour-by-hour analysis of a complex interstellar political climate, an analysis which you now hold in your hands. For more \
information, feel free to visit our homepage at oc.about.tsc, or the sites of any of our constituents."
/datum/lore/codex/page/article1
name = "08/30/61-- VGA Legalizes Prometheans; Nanotrasen Begins Manufacture and Testing"
data = "Today's meeting of the Vir Bicameral led to the passing of the Wynther-Helsey Bill, an implementation of the legal framework \
used in Aetolus to handle the production and cultivation of the Macrolimbus species dubbed \"Prometheans\". These ill-researched organisms \
possess cognitive abilities easily equaling those of A-class drones, but so far have not been included under the EIO's list of dangerous \
intelligences and are thus much more profitable for manufacture as expert systems by corporations such as NanoTrasen.\
<br></br>\
While many systems in the Almach Rim have already passed similar bills, this is the first system so close to Sol to have done so. More\
concerning still is NanoTrasen's business practice regarding the intelligences: much like their positronic lines, sources within the\
company indicate that they will be \"farmed out\" to employees of the corporation and residents of their Northern Star and Cynosure\
habitation complexes. Quote our source, who wishes to remain anonymous, \"\[we\] call the program 'Lend-Lease', sometimes. The whole idea\
is that we only have to pay the\ cost of the Promethean core, which is about 2000-3000 thalers after startup costs, and we still get\
the data we need while \[our\] own employees pay to feed 'em and put hours into raising them.\"\
<br></br>\
The bill passed fairly quietly this afternoon, owing to the closed nature of the Bicamarial. A post-facto Occulum poll of voting-age\
VGA citizens suggest that fully 80% of them did not even know what a Promethean was prior to the most recent general election. A\
follow-up poll indicates that an appreciable number of Sivians do not support the framework's current implementation."
+20 -2
View File
@@ -39,7 +39,25 @@
// Prevents borging (specifically the MMI part), actual effect is on the MMI.
/datum/modifier/no_borg
name = "Cyboernetic Incompatability"
name = "Cybernetic Incompatability"
desc = "For whatever reason, your brain is incompatable with direct cybernetic interfaces, such as the MMI."
flags = MODIFIER_GENETIC
flags = MODIFIER_GENETIC
//////////////////////////////////////
//Species-Specific Cloning Modifiers//
/////////////////////////////////////
/datum/modifier/cloning_sickness/promethean
name = "reformation sickness"
desc = "Your core feels damaged, as you were reformed with the improper machinery."
on_created_text = "<span class='warning'><font size='3'>Your core aches.</font></span>"
on_expired_text = "<span class='notice'><font size='3'>You feel your core's strength returning to normal.</font></span>"
incoming_damage_percent = 1 //Level the incoming damage from the parent modifier. They already take 200% burn.
incoming_brute_damage_percent = 1.5 //150% incoming brute damage. Decreases the effectiveness of their 0.75 modifier.
incoming_hal_damage_percent = 1.25 //125% incoming halloss.
outgoing_melee_damage_percent = 0.5 //50% less outgoing melee damage.
attack_speed_percent = 1.2 //20% slower attack speed.
+2 -2
View File
@@ -64,13 +64,13 @@
name = "Larger"
desc = "Your body is larger than average."
icon_scale_percent = 1.2
icon_scale_percent = 1.1
/datum/modifier/trait/large
name = "Large"
desc = "Your body is a bit larger than average."
icon_scale_percent = 1.1
icon_scale_percent = 1.05
/datum/modifier/trait/small
name = "Small"
@@ -437,8 +437,7 @@
fear_amount += 1
if(istype(S.species, /datum/species/shapeshifter/promethean))
fear_amount += 4
else
return
return fear_amount
/datum/modifier/trait/phobia/trypanophobe
+2
View File
@@ -87,7 +87,9 @@
// Checks if the mob's own name is included inside message. Handles both first and last names.
/mob/proc/check_mentioned(var/message)
var/not_included = list("a", "the", "of", "in", "for", "through", "throughout", "therefore", "here", "there", "then", "now", "I", "you", "they", "he", "she", "by")
var/list/valid_names = splittext(real_name, " ") // Should output list("John", "Doe") as an example.
valid_names -= not_included
var/list/nicknames = splittext(nickname, " ")
valid_names += nicknames
valid_names += special_mentions()
@@ -15,6 +15,7 @@
var/speech_bubble_appearance = "normal" // Part of icon_state to use for speech bubbles when talking. See talk.dmi for available icons.
var/fire_icon_state = "humanoid" // The icon_state used inside OnFire.dmi for when on fire.
var/suit_storage_icon = 'icons/mob/belt_mirror.dmi' // Icons used for worn items in suit storage slot.
// Damage overlay and masks.
var/damage_overlays = 'icons/mob/human_races/masks/dam_human.dmi'
@@ -90,6 +91,7 @@
var/death_sound
var/death_message = "seizes up and falls limp, their eyes dead and lifeless..."
var/knockout_message = "has been knocked unconscious!"
var/cloning_modifier = /datum/modifier/cloning_sickness
// Environment tolerance/life processes vars.
var/reagent_tag //Used for metabolizing reagents.
@@ -44,6 +44,8 @@ var/datum/species/shapeshifter/promethean/prometheans
burn_mod = 2
oxy_mod = 0
cloning_modifier = /datum/modifier/cloning_sickness/promethean
cold_level_1 = 280 //Default 260 - Lower is better
cold_level_2 = 220 //Default 200
cold_level_3 = 130 //Default 120
@@ -33,6 +33,7 @@
damage_overlays = 'icons/mob/human_races/masks/dam_seromi.dmi'
damage_mask = 'icons/mob/human_races/masks/dam_mask_seromi.dmi'
blood_mask = 'icons/mob/human_races/masks/blood_seromi.dmi'
suit_storage_icon = 'icons/mob/species/seromi/belt_mirror.dmi'
fire_icon_state = "generic" // Humanoid is too big for them and spriting a new one is really annoying.
@@ -935,7 +935,7 @@ var/global/list/damage_icon_parts = list()
if(s_store)
var/t_state = s_store.item_state
if(!t_state) t_state = s_store.icon_state
overlays_standing[SUIT_STORE_LAYER] = image("icon" = 'icons/mob/belt_mirror.dmi', "icon_state" = "[t_state]")
overlays_standing[SUIT_STORE_LAYER] = image("icon" = species.suit_storage_icon, "icon_state" = "[t_state]")
s_store.screen_loc = ui_sstore1 //TODO
else
overlays_standing[SUIT_STORE_LAYER] = null
-2
View File
@@ -208,10 +208,8 @@
set_light(min(round(fire_stacks), 3), round(fire_stacks), l_color = "#FF9933")
return TRUE
//VOREStation Add - Glowy trait
else if(glow_toggle)
set_light(2, l_color = glow_color) //2 is PDA brightness, so neutral in terms of balance
//VOREStation Add End
else
set_light(0)
+5 -1
View File
@@ -47,4 +47,8 @@
var/evasion = 0 // Makes attacks harder to land. Each number equals 15% more likely to miss. Negative numbers increase hit chance.
var/force_max_speed = 0 // If 1, the mob runs extremely fast and cannot be slowed.
var/image/dsoverlay = null //Overlay used for darksight eye adjustments
var/image/dsoverlay = null //Overlay used for darksight eye adjustments
var/glow_toggle = 0 // If they're glowing!
var/glow_color = "#FFFFFF" // The color they're glowing!
+2
View File
@@ -34,6 +34,8 @@
plane_masters[VIS_D_COLORBLIND] = new /obj/screen/plane_master/colorblindness //Colorblindness (affects world)
plane_masters[VIS_D_COLORBLINDI]= new /obj/screen/plane_master/colorblindness/items //Colorblindness (items in HUD, subplane of above, don't toggle)
plane_masters[VIS_MESONS] = new /obj/screen/plane_master{plane = PLANE_MESONS} //Meson-specific things like open ceilings.
..()
/datum/plane_holder/Destroy()
+1
View File
@@ -52,6 +52,7 @@
below = GetBelow(src)
turf_changed_event.register(below, src, /turf/simulated/open/update_icon)
levelupdate()
below.update_icon() // So the 'ceiling-less' overlay gets added.
for(var/atom/movable/A in src)
A.fall()
OS_controller.add_turf(src, 1)
+5
View File
@@ -13,6 +13,7 @@
throw_range = 5
origin_tech = list(TECH_BIO = 3)
attack_verb = list("attacked", "slapped", "whacked")
var/clone_source = FALSE
var/mob/living/carbon/brain/brainmob = null
/obj/item/organ/internal/brain/robotize()
@@ -133,6 +134,10 @@
icon = 'icons/mob/slimes.dmi'
icon_state = "green slime extract"
parent_organ = BP_TORSO
clone_source = TRUE
/obj/item/orgam/internal/brain/slime/is_open_container()
return 1
/obj/item/organ/internal/brain/golem
name = "chem"
+1 -1
View File
@@ -251,7 +251,7 @@
t = replacetext(t, "\[u\]", "<U>")
t = replacetext(t, "\[/u\]", "</U>")
t = replacetext(t, "\[time\]", "[stationtime2text()]")
t = replacetext(t, "\[date\]", "[station_date]")
t = replacetext(t, "\[date\]", "[stationdate2text()]")
t = replacetext(t, "\[large\]", "<font size=\"4\">")
t = replacetext(t, "\[/large\]", "</font>")
if(findtext(t, "\[sign\]"))
+18 -5
View File
@@ -13,6 +13,7 @@
var/icon_state_off = "bbox_off"
density = 1
anchored = 1
circuit = /obj/item/weapon/circuitboard/breakerbox
var/on = 0
var/busy = 0
var/directions = list(1,2,4,8,5,6,9,10)
@@ -20,15 +21,22 @@
var/update_locked = 0
/obj/machinery/power/breakerbox/Destroy()
for(var/obj/structure/cable/C in src.loc)
qdel(C)
. = ..()
for(var/datum/nano_module/rcon/R in world)
R.FindDevices()
/obj/machinery/power/breakerbox/initialize()
. = ..()
default_apply_parts()
/obj/machinery/power/breakerbox/activated
icon_state = "bbox_on"
// Enabled on server startup. Used in substations to keep them in bypass mode.
// Enabled on server startup. Used in substations to keep them in bypass mode.
/obj/machinery/power/breakerbox/activated/initialize()
. = ..()
set_state(1)
/obj/machinery/power/breakerbox/examine(mob/user)
@@ -87,10 +95,15 @@
if(newtag)
RCon_tag = newtag
user << "<span class='notice'>You changed the RCON tag to: [newtag]</span>"
if(on)
to_chat(user, "<font color='red'>Disable the breaker before performing maintenance.</font>")
return
if(default_deconstruction_screwdriver(user, W))
return
if(default_deconstruction_crowbar(user, W))
return
if(default_part_replacement(user, W))
return
/obj/machinery/power/breakerbox/proc/set_state(var/state)
on = state
+7 -3
View File
@@ -900,6 +900,7 @@ obj/structure/cable/proc/cableColor(var/colorC)
slot_flags = SLOT_BELT
attack_verb = list("whipped", "lashed", "disciplined", "flogged")
stacktype = null
toolspeed = 0.25
/obj/item/stack/cable_coil/alien/New(loc, length = MAXCOIL, var/param_color = null) //There has to be a better way to do this.
if(embed_chance == -1) //From /obj/item, don't want to do what the normal cable_coil does
@@ -912,14 +913,17 @@ obj/structure/cable/proc/cableColor(var/colorC)
/obj/item/stack/cable_coil/alien/update_icon()
icon_state = initial(icon_state)
/obj/item/stack/cable_coil/alien/can_use(var/used)
return 1
/obj/item/stack/cable_coil/alien/use() //It's endless
return
return 1
/obj/item/stack/cable_coil/alien/add() //Still endless
return
return 0
/obj/item/stack/cable_coil/alien/update_wclass()
return
return 0
/obj/item/stack/cable_coil/alien/examine(mob/user)
var/msg = "A spool of cable."
+2 -2
View File
@@ -186,8 +186,8 @@
if(percent_unstable < 0)
percent_unstable = 0
else
if(percent_unstable > 100)
percent_unstable = 100
if(percent_unstable > 1)
percent_unstable = 1
if(percent_unstable > 0)
percent_unstable = max(0, percent_unstable-rand(0.01,0.03))
@@ -38,4 +38,8 @@
return 0
/obj/effect/fusion_particle_catcher/CanPass(var/atom/movable/mover, var/turf/target, var/height=0, var/air_group=0)
return ismob(mover)
if(istype(mover, /obj/item/projectile/beam))
return 0
if(istype(mover, /obj/effect/accelerated_particle))
return 0
return 1
@@ -32,6 +32,13 @@
/obj/machinery/power/sensor/proc/auto_set_name()
name = "[name_tag] - Powernet Sensor"
/obj/machinery/power/sensor/Destroy()
. = ..()
// TODO - Switch power_monitor to register deletion events instead of this.
for(var/obj/machinery/computer/power_monitor/PM in world)
if(PM.power_monitor)
PM.power_monitor.refresh_sensors()
// Proc: check_grid_warning()
// Parameters: None
// Description: Checks connected powernet for warnings. If warning is found returns 1
@@ -20,7 +20,7 @@
FG1.cleanup()
if(FG2 && !FG2.clean_up)
FG2.cleanup()
..()
. = ..()
/obj/machinery/containment_field/attack_hand(mob/user as mob)
if(get_dist(src, user) > 1)
@@ -168,7 +168,7 @@ field_generator power level display
/obj/machinery/field_generator/Destroy()
src.cleanup()
..()
. = ..()
@@ -312,12 +312,12 @@ field_generator power level display
/obj/machinery/field_generator/proc/cleanup()
clean_up = 1
for (var/obj/machinery/containment_field/F in fields)
if (isnull(F))
if (QDELETED(F))
continue
qdel(F)
fields = list()
for(var/obj/machinery/field_generator/FG in connected_gens)
if (isnull(FG))
if (QDELETED(FG))
continue
FG.connected_gens.Remove(src)
if(!FG.clean_up)//Makes the other gens clean up as well
@@ -581,7 +581,7 @@
/datum/reagent/drink/juice/potato
name = "Potato Juice"
id = "potato"
id = "potatojuice"
description = "Juice of the potato. Bleh."
taste_description = "potatoes"
nutrition = 2
@@ -1021,7 +1021,7 @@
/datum/reagent/drink/milkshake/berryshake
name = "Berry Milkshake"
id = "Berryshake"
id = "berryshake"
description = "A refreshing berry milkshake."
taste_description = "cold refreshing berries and cream"
color = "#ffb2b2" // rgb(255, 178, 178)
@@ -1973,6 +1973,34 @@
reagents.add_reagent("tomatojuice", 10)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/onionsoup
name = "Onion Soup"
desc = "A soup with layers."
icon_state = "onionsoup"
trash = /obj/item/trash/snack_bowl
filling_color = "#E0C367"
center_of_mass = list("x"=16, "y"=7)
nutriment_amt = 5
nutriment_desc = list("onion" = 2, "soup" = 2)
/obj/item/weapon/reagent_containers/food/snacks/onionsoup/New()
..()
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/onionrings
name = "Onion Soup"
desc = "Crispy rings."
icon_state = "onionrings"
trash = /obj/item/trash/plate
filling_color = "#E0C367"
center_of_mass = list("x"=16, "y"=7)
nutriment_amt = 5
nutriment_desc = list("onion" = 2)
/obj/item/weapon/reagent_containers/food/snacks/onionrings/New()
..()
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/rofflewaffles
name = "Roffle Waffles"
desc = "Waffles from Roffle. Co."
@@ -3568,3 +3596,251 @@
/obj/item/weapon/reagent_containers/food/snacks/croissant/New()
..()
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/meatbun
name = "meat bun"
desc = "Chinese street food, in neither China nor a street."
filling_color = "#DEDEAB"
icon_state = "meatbun"
nutriment_amt = 4
/obj/item/weapon/reagent_containers/food/snacks/meatbun/New()
..()
bitesize = 2
reagents.add_reagent("protein", 4)
/obj/item/weapon/reagent_containers/food/snacks/sashimi
name = "carp sashimi"
desc = "Expertly prepared. Still toxic."
filling_color = "#FFDEFE"
icon_state = "sashimi"
nutriment_amt = 6
/obj/item/weapon/reagent_containers/food/snacks/sashimi/New()
..()
reagents.add_reagent("protein", 2)
reagents.add_reagent("carpotoxin", 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/benedict
name = "eggs benedict"
desc = "Hey, there's only one egg in this!"
filling_color = "#FFDF78"
icon_state = "benedict"
nutriment_amt = 4
/obj/item/weapon/reagent_containers/food/snacks/benedict/New()
..()
reagents.add_reagent("protein", 2)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/beans
name = "baked beans"
desc = "Musical fruit in a slightly less musical container."
filling_color = "#FC6F28"
icon_state = "beans"
nutriment_amt = 4
nutriment_desc = list("beans" = 4)
/obj/item/weapon/reagent_containers/food/snacks/beans/New()
..()
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/sugarcookie
name = "sugar cookie"
desc = "Just like your little sister used to make."
filling_color = "#DBC94F"
icon_state = "sugarcookie"
nutriment_amt = 5
nutriment_desc = list("sweetness" = 4, "cookie" = 1)
/obj/item/weapon/reagent_containers/food/snacks/sugarcookie/New()
..()
bitesize = 1
/obj/item/weapon/reagent_containers/food/snacks/berrymuffin
name = "berry muffin"
desc = "A delicious and spongy little cake, with berries."
icon_state = "berrymuffin"
filling_color = "#E0CF9B"
center_of_mass = list("x"=17, "y"=4)
nutriment_amt = 6
nutriment_desc = list("sweetness" = 2, "muffin" = 2, "berries" = 2)
/obj/item/weapon/reagent_containers/food/snacks/berrymuffin/New()
..()
reagents.add_reagent("nutriment", 6)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/ghostmuffin
name = "booberry muffin"
desc = "My stomach is a graveyard! No living being can quench my bloodthirst!"
icon_state = "berrymuffin"
filling_color = "#799ACE"
center_of_mass = list("x"=17, "y"=4)
nutriment_amt = 6
nutriment_desc = list("spookiness" = 4, "muffin" = 1, "berries" = 1)
/obj/item/weapon/reagent_containers/food/snacks/ghostmuffin/New()
..()
reagents.add_reagent("nutriment", 6)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/eggroll
name = "egg roll"
desc = "Free with orders over 10 thalers."
icon_state = "eggroll"
filling_color = "#799ACE"
center_of_mass = list("x"=17, "y"=4)
nutriment_amt = 4
nutriment_desc = list("egg" = 4)
/obj/item/weapon/reagent_containers/food/snacks/eggroll/New()
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("protein", 2)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/fruitsalad
name = "fruit salad"
desc = "Your standard fruit salad."
icon_state = "fruitsalad"
filling_color = "#FF3867"
nutriment_amt = 10
nutriment_desc = list("fruit" = 10)
/obj/item/weapon/reagent_containers/food/snacks/fruitsalad/New()
..()
reagents.add_reagent("nutriment", 10)
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/eggbowl
name = "egg bowl"
desc = "A bowl of fried rice with egg mixed in."
icon_state = "eggbowl"
trash = /obj/item/trash/snack_bowl
filling_color = "#FFFBDB"
nutriment_amt = 6
nutriment_desc = list("rice" = 2, "egg" = 4)
/obj/item/weapon/reagent_containers/food/snacks/eggbowl/New()
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("protein", 4)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/porkbowl
name = "pork bowl"
desc = "A bowl of fried rice with cuts of meat."
icon_state = "porkbowl"
trash = /obj/item/trash/snack_bowl
filling_color = "#FFFBDB"
nutriment_amt = 6
nutriment_desc = list("rice" = 2, "meat" = 4)
/obj/item/weapon/reagent_containers/food/snacks/porkbowl/New()
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("protein", 4)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/tortilla
name = "tortilla"
desc = "The base for all your burritos."
icon_state = "tortilla"
nutriment_amt = 1
nutriment_desc = list("bread" = 1)
/obj/item/weapon/reagent_containers/food/snacks/tortilla/New()
..()
reagents.add_reagent("nutriment", 2)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/meatburrito
name = "carne asada burrito"
desc = "The best burrito for meat lovers."
icon_state = "carneburrito"
nutriment_amt = 6
nutriment_desc = list("tortilla" = 3, "meat" = 3)
/obj/item/weapon/reagent_containers/food/snacks/meatburrito/New()
..()
reagents.add_reagent("protein", 6)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/cheeseburrito
name = "Cheese burrito"
desc = "It's a burrito filled with cheese."
icon_state = "cheeseburrito"
nutriment_amt = 6
nutriment_desc = list("tortilla" = 3, "cheese" = 3)
/obj/item/weapon/reagent_containers/food/snacks/cheeseburrito/New()
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("protein", 2)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/fuegoburrito
name = "fuego phoron burrito"
desc = "A super spicy burrito."
icon_state = "fuegoburrito"
nutriment_amt = 6
nutriment_desc = list("chili peppers" = 5, "tortilla" = 1)
/obj/item/weapon/reagent_containers/food/snacks/fuegoburrito/New()
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("capsaicin", 4)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/nachos
name = "nachos"
desc = "Chips from Old Mexico."
icon_state = "nachos"
nutriment_amt = 2
nutriment_desc = list("salt" = 1)
/obj/item/weapon/reagent_containers/food/snacks/nachos/New()
..()
reagents.add_reagent("nutriment", 1)
bitesize = 1
/obj/item/weapon/reagent_containers/food/snacks/cheesenachos
name = "cheesy nachos"
desc = "The delicious combination of nachos and melting cheese."
icon_state = "cheesenachos"
nutriment_amt = 5
nutriment_desc = list("salt" = 2, "cheese" = 3)
/obj/item/weapon/reagent_containers/food/snacks/cheesenachos/New()
..()
reagents.add_reagent("nutriment", 5)
reagents.add_reagent("protein", 2)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/cubannachos
name = "cuban nachos"
desc = "That's some dangerously spicy nachos."
icon_state = "cubannachos"
nutriment_amt = 6
nutriment_desc = list("salt" = 1, "cheese" = 2, "chili peppers" = 3)
/obj/item/weapon/reagent_containers/food/snacks/cubannachos/New()
..()
reagents.add_reagent("nutriment", 5)
reagents.add_reagent("capsaicin", 4)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/piginblanket
name = "pig in a blanket"
desc = "A sausage embedded in soft, fluffy pastry. Free this pig from its blanket prison by eating it."
icon_state = "piginblanket"
nutriment_amt = 6
nutriment_desc = list("meat" = 3, "pastry" = 3)
/obj/item/weapon/reagent_containers/food/snacks/piginblanket/New()
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("protein", 4)
bitesize = 3
+8
View File
@@ -1229,6 +1229,14 @@ CIRCUITS BELOW
build_path = /obj/item/weapon/circuitboard/grid_checker
sort_string = "JBABC"
/datum/design/circuit/breakerbox
name = "breaker box"
desc = "Allows for the construction of circuit boards used to build a breaker box."
id = "breakerbox"
req_tech = list(TECH_POWER = 3, TECH_ENGINEERING = 3)
build_path = /obj/item/weapon/circuitboard/breakerbox
sort_string = "JBABD"
/datum/design/circuit/gas_heater
name = "gas heating system"
id = "gasheater"
-2
View File
@@ -21,8 +21,6 @@
var/absorbing_prey = 0 // Determines if the person is using the succubus drain or not. See station_special_abilities_vr.
var/drain_finalized = 0 // Determines if the succubus drain will be KO'd/absorbed. Can be toggled on at any time.
var/fuzzy = 1 // Preference toggle for sharp/fuzzy icon.
var/glow_toggle = 0 // If they're glowing!
var/glow_color = "#FFFFFF" // The color they're glowing!
//
// Hook for generic creation of stuff on new creatures
+2 -2
View File
@@ -34,10 +34,10 @@ var/global/datum/controller/xenobio/xenobio_controller // Set in New().
var/list/xenobio_traits = ALL_XENO_GENES
while(xenobio_traits && xenobio_traits.len)
var/gene_tag = pick(xenobio_traits)
var/gene_mask = "[uppertext(num2hex(rand(0,255)))]"
var/gene_mask = "[uppertext(num2hex(rand(0,255), 2))]"
while(gene_mask in used_masks)
gene_mask = "[uppertext(num2hex(rand(0,255)))]"
gene_mask = "[uppertext(num2hex(rand(0,255), 2))]"
used_masks += gene_mask
xenobio_traits -= gene_tag