Merge remote-tracking branch 'VOREStation/master' into upstream-merge-6632

This commit is contained in:
Unknown
2020-01-21 01:28:43 -05:00
39 changed files with 418 additions and 366 deletions
+5
View File
@@ -0,0 +1,5 @@
[diagnostics]
macro_redefined = "off"
macro_undefined_no_definition = "off"
as_local_var = "off"
tmp_no_effect = "off"
+2 -3
View File
@@ -144,9 +144,8 @@ Class Procs:
merge(A.zone,B.zone)
return
var
a_to_b = get_dir(A,B)
b_to_a = get_dir(B,A)
var/a_to_b = get_dir(A,B)
var/b_to_a = get_dir(B,A)
if(!A.connections) A.connections = new
if(!B.connections) B.connections = new
+2 -2
View File
@@ -6,8 +6,8 @@
#define RETURN_PRECISE_POSITION(A) new /datum/position(A)
#define RETURN_PRECISE_POINT(A) new /datum/point(A)
#define RETURN_POINT_VECTOR(ATOM, ANGLE, SPEED) {new /datum/point/vector(ATOM, null, null, null, null, ANGLE, SPEED)}
#define RETURN_POINT_VECTOR_INCREMENT(ATOM, ANGLE, SPEED, AMT) {new /datum/point/vector(ATOM, null, null, null, null, ANGLE, SPEED, AMT)}
#define RETURN_POINT_VECTOR(ATOM, ANGLE, SPEED) (new /datum/point/vector(ATOM, null, null, null, null, ANGLE, SPEED))
#define RETURN_POINT_VECTOR_INCREMENT(ATOM, ANGLE, SPEED, AMT) (new /datum/point/vector(ATOM, null, null, null, null, ANGLE, SPEED, AMT))
/datum/position //For positions with map x/y/z and pixel x/y so you don't have to return lists. Could use addition/subtraction in the future I guess.
var/x = 0
+3 -3
View File
@@ -298,7 +298,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
if(CHANNEL.is_admin_channel)
dat+="<B><FONT style='BACKGROUND-COLOR: LightGreen '><A href='?src=\ref[src];show_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A></FONT></B><BR>"
else
dat+="<B><A href='?src=\ref[src];show_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : ()]<BR></B>"
dat+="<B><A href='?src=\ref[src];show_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : null]<BR></B>"
dat+="<BR><HR><A href='?src=\ref[src];refresh=1'>Refresh</A>"
dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Back</A>"
if(2)
@@ -396,7 +396,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
dat+="<I>No feed channels found active...</I><BR>"
else
for(var/datum/feed_channel/CHANNEL in news_network.network_channels)
dat+="<A href='?src=\ref[src];pick_censor_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : ()]<BR>"
dat+="<A href='?src=\ref[src];pick_censor_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : null]<BR>"
dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Cancel</A>"
if(11)
dat+="<B>[using_map.company_name] D-Notice Handler</B><HR>"
@@ -407,7 +407,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
dat+="<I>No feed channels found active...</I><BR>"
else
for(var/datum/feed_channel/CHANNEL in news_network.network_channels)
dat+="<A href='?src=\ref[src];pick_d_notice=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : ()]<BR>"
dat+="<A href='?src=\ref[src];pick_d_notice=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : null]<BR>"
dat+="<BR><A href='?src=\ref[src];setScreen=[0]'>Back</A>"
if(12)
+2 -2
View File
@@ -818,7 +818,6 @@
if(3)
if(diff==FORWARD)
user.visible_message("[user] installs the external armor layer to [holder].", "You install the external armor layer to [holder].")
qdel(I)
holder.icon_state = "gygax18"
else
user.visible_message("[user] cuts internal armor layer from [holder].", "You cut the internal armor layer from [holder].")
@@ -829,7 +828,8 @@
holder.icon_state = "gygax19-s"
else
user.visible_message("[user] pries the external armor layer from [holder].", "You pry the external armor layer from [holder].")
new /obj/item/mecha_parts/part/gygax_armour(get_turf(holder))
var/obj/item/stack/material/plasteel/MS = new /obj/item/stack/material/plasteel(get_turf(holder)) // Fixes serenity giving Gygax Armor Plates for the reverse action...
MS.amount = 5
holder.icon_state = "gygax17"
if(1)
if(diff==FORWARD)
@@ -253,6 +253,7 @@
if(3)
if(diff==FORWARD)
user.visible_message("[user] installs external reinforced armor layer to [holder].", "You install external reinforced armor layer to [holder].")
qdel(used_atom)//CHOMPedit upstream port. Fixes polecat not useing it's armor plates up.
holder.icon_state = "polecat18"
else
user.visible_message("[user] cuts internal armor layer from [holder].", "You cut the internal armor layer from [holder].")
@@ -262,9 +263,8 @@
user.visible_message("[user] secures external armor layer.", "You secure external reinforced armor layer.")
holder.icon_state = "polecat19"
else
user.visible_message("[user] pries external armor layer from [holder].", "You prie external armor layer from [holder].")
var/obj/item/stack/material/plasteel/MS = new /obj/item/stack/material/plasteel(get_turf(holder))
MS.amount = 5
user.visible_message("[user] pries external armor layer from [holder].", "You pry the external armor layer from [holder].") // Rykka does smol grammar fix.
new /obj/item/mecha_parts/micro/part/polecat_armour(get_turf(holder))// Actually gives you the polecat's armored plates back instead of plasteel.
holder.icon_state = "polecat17"
if(1)
if(diff==FORWARD)
@@ -249,3 +249,14 @@
/obj/item/weapon/stock_parts/capacitor = 1,
/obj/item/weapon/stock_parts/spring = 1,
/obj/item/stack/cable_coil = 5)
/obj/item/weapon/circuitboard/microwave/advanced
name = T_BOARD("deluxe microwave")
build_path = /obj/machinery/microwave/advanced
board_type = new /datum/frame/frame_types/microwave
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
req_components = list(
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/weapon/stock_parts/motor = 1,
/obj/item/weapon/stock_parts/capacitor = 1)
+1 -1
View File
@@ -138,7 +138,7 @@
/turf/simulated/wall/attackby(obj/item/weapon/W as obj, mob/user as mob)
user.setClickCooldown(user.get_attack_speed(W))
if (!user.)
if (!user.IsAdvancedToolUser())
to_chat(user, "<span class='warning'>You don't have the dexterity to do this!</span>")
return
+6 -7
View File
@@ -369,7 +369,7 @@ proc/admin_notice(var/message, var/rights)
if(CHANNEL.is_admin_channel)
dat+="<B><FONT style='BACKGROUND-COLOR: LightGreen'><A href='?src=\ref[src];ac_show_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A></FONT></B><BR>"
else
dat+="<B><A href='?src=\ref[src];ac_show_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : ()]<BR></B>"
dat+="<B><A href='?src=\ref[src];ac_show_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : null]<BR></B>"
dat+={"<BR><HR><A href='?src=\ref[src];ac_refresh=1'>Refresh</A>
<BR><A href='?src=\ref[src];ac_setScreen=[0]'>Back</A>
"}
@@ -453,7 +453,7 @@ proc/admin_notice(var/message, var/rights)
dat+="<I>No feed channels found active...</I><BR>"
else
for(var/datum/feed_channel/CHANNEL in news_network.network_channels)
dat+="<A href='?src=\ref[src];ac_pick_censor_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : ()]<BR>"
dat+="<A href='?src=\ref[src];ac_pick_censor_channel=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : null]<BR>"
dat+="<BR><A href='?src=\ref[src];ac_setScreen=[0]'>Cancel</A>"
if(11)
dat+={"
@@ -466,7 +466,7 @@ proc/admin_notice(var/message, var/rights)
dat+="<I>No feed channels found active...</I><BR>"
else
for(var/datum/feed_channel/CHANNEL in news_network.network_channels)
dat+="<A href='?src=\ref[src];ac_pick_d_notice=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : ()]<BR>"
dat+="<A href='?src=\ref[src];ac_pick_d_notice=\ref[CHANNEL]'>[CHANNEL.channel_name]</A> [(CHANNEL.censored) ? ("<FONT COLOR='red'>***</FONT>") : null]<BR>"
dat+="<BR><A href='?src=\ref[src];ac_setScreen=[0]'>Back</A>"
if(12)
@@ -1223,7 +1223,7 @@ var/datum/announcement/minor/admin_min_announcer = new
out += "<b>Autotraitor <a href='?src=\ref[ticker.mode];toggle=autotraitor'>disabled</a></b>.<br/>"
out += "<b>All antag ids:</b>"
if(ticker.mode.antag_templates && ticker.mode.antag_templates.len).
if(ticker.mode.antag_templates && ticker.mode.antag_templates.len)
for(var/datum/antagonist/antag in ticker.mode.antag_templates)
antag.update_current_antag_max()
out += " <a href='?src=\ref[ticker.mode];debug_antag=[antag.id]'>[antag.id]</a>"
@@ -1532,9 +1532,8 @@ datum/admins/var/obj/item/weapon/paper/admin/faxreply // var to hold fax replies
P.stamps += "<hr><i>This paper has been stamped by the [P.origin] Quantum Relay.</i>"
var/image/stampoverlay = image('icons/obj/bureaucracy.dmi')
var/{x; y;}
x = rand(-2, 0)
y = rand(-1, 2)
var/x = rand(-2, 0)
var/y = rand(-1, 2)
P.offset_x += x
P.offset_y += y
stampoverlay.pixel_x = x
+1 -4
View File
@@ -28,10 +28,7 @@ var/datum/admin_secrets/admin_secrets = new()
/datum/admin_secret_category
var/name = ""
var/desc = ""
var/list/datum/admin_secret_item/items
/datum/admin_secret_category
items = list()
var/list/datum/admin_secret_item/items = list()
/datum/admin_secret_category/proc/can_view(var/mob/user)
for(var/datum/admin_secret_item/item in items)
@@ -100,7 +100,6 @@
slot_r_hand_str = "engiewelding",
)
/*
* Cakehat
*/
@@ -106,7 +106,6 @@
/obj/item/rig_module/self_destruct
)
/obj/item/clothing/gloves/gauntlets/rig/light/ninja
name = "insulated gloves"
siemens_coefficient = 0
+2 -3
View File
@@ -66,9 +66,8 @@ proc/Ellipsis(original_msg, chance = 50)
if(chance <= 0) return "..."
if(chance >= 100) return original_msg
var/list
words = splittext(original_msg," ")
new_words = list()
var/list/words = splittext(original_msg," ")
var/list/new_words = list()
var/new_msg = ""
+280 -280
View File
@@ -1,280 +1,280 @@
// Chaos cake
/datum/recipe/microwave/chaoscake_layerone
reagents = list("flour" = 300,"milk" = 200, "sugar" = 100, "egg" = 30)
fruit = list("poisonberries" = 15, "cherries" = 15)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat/,
/obj/item/weapon/reagent_containers/food/snacks/meat/,
/obj/item/weapon/reagent_containers/food/snacks/meat/,
/obj/item/weapon/reagent_containers/food/snacks/meat/
)
result = /obj/structure/chaoscake
/datum/recipe/microwave/chaoscake_layertwo
reagents = list("flour" = 300, "milk" = 200, "sugar" = 100, "egg" = 30, )
fruit = list("vanilla" = 15, "banana" = 15)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough
)
result = /obj/item/weapon/chaoscake_layer
/datum/recipe/microwave/chaoscake_layerthree
reagents = list("flour" = 240, "milk" = 150, "sugar" = 80, "egg" = 24, "deathbell" = 100)
fruit = list("grapes" = 30)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough
)
result = /obj/item/weapon/chaoscake_layer/three
/datum/recipe/microwave/chaoscake_layerfour
reagents = list("flour" = 240, "milk" = 150, "sugar" = 80, "egg" = 24, "milkshake" = 300)
fruit = list("rice" = 30)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough
)
result = /obj/item/weapon/chaoscake_layer/four
/datum/recipe/microwave/chaoscake_layerfive
reagents = list("flour" = 180, "milk" = 100, "sugar" = 60, "egg" = 18, "blood" = 300)
fruit = list("tomato" = 20)
items = list() //supposed to be made with lobster, still has to be ported.
result = /obj/item/weapon/chaoscake_layer/five
/datum/recipe/microwave/chaoscake_layersix
reagents = list("flour" = 180, "milk" = 100, "sugar" = 60, "egg" = 18, "sprinkles" = 10)
fruit = list("apple" = 30)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar,
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar,
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar
)
result = /obj/item/weapon/chaoscake_layer/six
/datum/recipe/microwave/chaoscake_layerseven
reagents = list("flour" = 120, "milk" = 50, "sugar" = 40, "egg" = 12, "devilskiss" = 200)
fruit = list("potato" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough
)
result = /obj/item/weapon/chaoscake_layer/seven
/datum/recipe/microwave/chaoscake_layereight
reagents = list("flour" = 120, "milk" = 50, "sugar" = 40, "egg" = 12, "cream" = 200)
fruit = list("lemon" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough
)
result = /obj/item/weapon/chaoscake_layer/eight
/datum/recipe/microwave/chaoscake_layernine
reagents = list("water" = 100, "blood" = 100)
fruit = list("goldapple" = 50)
items = list()
result = /obj/item/weapon/chaoscake_layer/nine
/obj/structure/chaoscake
name = "An unfinished cake"
desc = "A single layer of a strange cake, you can see the cherry paste ooze, but it feels very incomplete..."
icon = 'icons/obj/food64x64.dmi'
icon_state = "chaoscake_unfinished-1"
pixel_x = -16
var/slices = 6
var/maxslices = 6
var/stage = 1
var/maxstages = 9
var/edible = 0
var/regentime = 1000
var/interval = 0
var/static/list/desclist2 = list(
"The first layer of a strange cake, you can see the cherry paste ooze.",
"The second layer of the cake sits in place now, smelling of pear with delicious colourful cream.",
"The third layer of cake adds a strange purple layer, glazed over with frosting. It smells of grapes, but with a hint of something foul underneath.",
"With the fourth layer added the cake looks happier again. Reeking of vanilla, it brings up memories of childhood joy.",
"The fifth layer is extremely disturbing on that cake. Smelling of pure copper, it seems that bright blood clots are forming on top.",
"The cake is getting closer with the sixth layer added, the pink hue smelling of chocolate, with colourful sprinkles on top.",
"The first pair of triplets rest on the cake, despite being mostly similar to the first three, an evil aura becomes noticable.",
"The second pair of triplets rest on the cake, if you stand on the bright side, you can feel a good aura lifting your mood.",
"A chaos cake. Both a creation of dark and light, the two cakes are kept in a careful balance by that mystical coin in the middle. It's said its effects would dissipate if the balance is ever tipped in favour of one side too much, so both sides much be cut equally."
)
/obj/item/weapon/chaoscake_layer
name = "A layer of cake"
desc = "a layer of cake, it is made out of colourful cream."
icon = 'icons/obj/food.dmi'
icon_state = "chaoscake_layer-2"
var/layer_stage = 1
/obj/item/weapon/chaoscake_layer/three
desc = "a layer of cake, glazed in purple."
icon_state = "chaoscake_layer-3"
layer_stage = 2
/obj/item/weapon/chaoscake_layer/four
desc = "a layer of cake, reminding you of a colouring book."
icon_state = "chaoscake_layer-4"
layer_stage = 3
/obj/item/weapon/chaoscake_layer/five
desc = "A layer of cake, smells like copper."
icon_state = "chaoscake_layer-5"
layer_stage = 4
/obj/item/weapon/chaoscake_layer/six
desc = "A layer of cake, featuring colourful sprinkles."
icon_state = "chaoscake_layer-6"
layer_stage = 5
/obj/item/weapon/chaoscake_layer/seven
desc = "A triplet of evil cake parts."
icon_state = "chaoscake_layer-7"
layer_stage = 6
/obj/item/weapon/chaoscake_layer/eight
desc = "A triplet of good cake parts."
icon_state = "chaoscake_layer-8"
layer_stage = 7
/obj/item/weapon/chaoscake_layer/nine
name = "A coin of balance"
desc = "A very peculiar coin, it seems to stabilise the air around it."
icon_state = "chaoscake_layer-9"
layer_stage = 8
/obj/structure/chaoscake/proc/HasSliceMissing()
..()
if(slices < maxslices)
if(interval >= regentime)
interval = 0
slices++
HasSliceMissing()
else
interval++
HasSliceMissing()
else
return
/obj/item/weapon/reagent_containers/food/snacks/chaoscakeslice
name = "The Chaos Cake Slice"
desc = "A slice from The Chaos Cake, it pulses weirdly, as if angry to be seperated from the whole"
icon_state = "chaoscake_slice-1"
center_of_mass = list("x"=16, "y"=10)
nutriment_desc = list()
nutriment_amt = 4
volume = 80
/obj/item/weapon/reagent_containers/food/snacks/chaoscakeslice/Initialize()
..()
var/i = rand(1,6)
icon_state = "chaoscake_slice-[i]"
switch(i)
if(1)
name = "Slice Of Evil" //Pretty damn poisonous, takes a lot of work to make safe for consumption, useful for medical.
desc = "An odd slice, despite the grease and cherries oozing off the top, it smells delicious."
nutriment_desc = list("The desire to consume" = 10) // You won't even taste the poison.
reagents.add_reagent("neurotoxic_protein", 2)
reagents.add_reagent("shockchem", 2)
reagents.add_reagent("amatoxin", 2)
reagents.add_reagent("carpotoxin", 2)
reagents.add_reagent("spidertoxin", 2)
bitesize = 7
if(2)
name = "Slice Of Evil" //A bad trip
desc = "A mysterious slice, coated in purple frosting that smells like grapes."
nutriment_desc = list("The desire to show off an party" = 10)
reagents.add_reagent("stoxin", 2)
reagents.add_reagent("space_drugs", 10)
reagents.add_reagent("serotrotium", 4)
reagents.add_reagent("cryptobiolin", 8)
reagents.add_reagent("mindbreaker", 10)
reagents.add_reagent("psilocybin", 10)
bitesize = 30 //even a single bite won't make you escape fate.
if(3)
name = "Slice Of Evil" //acidic
desc = "A menacing slice, smelling clearly of copper, blood clots float on top."
nutriment_desc = list("Infernal Rage" = 10)
reagents.add_reagent("blood", 20)
reagents.add_reagent("stomacid", 10)
reagents.add_reagent("mutagen", 4)
reagents.add_reagent("thirteenloko", 20)
reagents.add_reagent("hyperzine", 10)
bitesize = 30
if(4)
name = "Slice Of Good" //anti-tox
desc = "A colourful slice, smelling of pear and coated in delicious cream."
nutriment_desc = list("Hapiness" = 10)
reagents.add_reagent("anti_toxin", 2)
reagents.add_reagent("tricordrazine", 2)
bitesize = 3
if(5)
name = "Slice Of Good" //anti-oxy
desc = "A light slice, it's pretty to look at and smells of vanilla."
nutriment_desc = list("Freedom" = 10)
reagents.add_reagent("dexalinp", 2)
reagents.add_reagent("tricordrazine", 2)
bitesize = 3
if(6)
name = "Slice Of Good" //anti-burn/brute
desc = "A hearty slice, it smells of chocolate and strawberries."
nutriment_desc = list("Love" = 10)
reagents.add_reagent("bicaridine", 2)
reagents.add_reagent("tricordrazine", 2)
reagents.add_reagent("kelotane", 2)
bitesize = 4
/obj/structure/chaoscake/attackby(var/obj/item/weapon/W, var/mob/living/user)
if(istype(W,/obj/item/weapon/material/knife))
if(edible == 1)
HasSliceMissing()
if(slices <= 0)
user << "The cake hums away quietly as the chaos powered goodness slowly recovers the large amount of lost mass, best to give it a moment before cutting another slice."
return
else
user << "You cut a slice of the cake. The slice looks like the cake was just baked, and you can see before your eyes as the spot where you cut the slice slowly regenerates!"
slices = slices - 1
icon_state = "chaoscake-[slices]"
new /obj/item/weapon/reagent_containers/food/snacks/chaoscakeslice(src.loc)
else
to_chat(user, "<span class='notice'>It looks so good... But it feels so wrong to eat it before it's finished...</span>")
return
if(istype(W,/obj/item/weapon/chaoscake_layer))
var/obj/item/weapon/chaoscake_layer/C = W
if(C.layer_stage == 8)
user << "Finally! The coin on the top, the almighty chaos cake is complete!"
qdel(W)
stage++
desc = desclist2[stage]
icon_state = "chaoscake-6"
edible = 1
name = "The Chaos Cake!"
else if(stage == maxstages)
user << "The cake is already done!"
else if(stage == C.layer_stage)
user << "You add another layer to the cake, nice."
qdel(W)
stage++
desc = desclist2[stage]
icon_state = "chaoscake_stage-[stage]"
else
user << "Hmm, doesnt seem like this layer is supposed to be added there?"
// Chaos cake
/datum/recipe/microwave/chaoscake_layerone
reagents = list("flour" = 300,"milk" = 200, "sugar" = 100, "egg" = 30)
fruit = list("poisonberries" = 15, "cherries" = 15)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat/,
/obj/item/weapon/reagent_containers/food/snacks/meat/,
/obj/item/weapon/reagent_containers/food/snacks/meat/,
/obj/item/weapon/reagent_containers/food/snacks/meat/
)
result = /obj/structure/chaoscake
/datum/recipe/microwave/chaoscake_layertwo
reagents = list("flour" = 300, "milk" = 200, "sugar" = 100, "egg" = 30, )
fruit = list("vanilla" = 15, "banana" = 15)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough
)
result = /obj/item/weapon/chaoscake_layer
/datum/recipe/microwave/chaoscake_layerthree
reagents = list("flour" = 240, "milk" = 150, "sugar" = 80, "egg" = 24, "deathbell" = 100)
fruit = list("grapes" = 30)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough
)
result = /obj/item/weapon/chaoscake_layer/three
/datum/recipe/microwave/chaoscake_layerfour
reagents = list("flour" = 240, "milk" = 150, "sugar" = 80, "egg" = 24, "milkshake" = 300)
fruit = list("rice" = 30)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough
)
result = /obj/item/weapon/chaoscake_layer/four
/datum/recipe/microwave/chaoscake_layerfive
reagents = list("flour" = 180, "milk" = 100, "sugar" = 60, "egg" = 18, "blood" = 300)
fruit = list("tomato" = 20)
items = list() //supposed to be made with lobster, still has to be ported.
result = /obj/item/weapon/chaoscake_layer/five
/datum/recipe/microwave/chaoscake_layersix
reagents = list("flour" = 180, "milk" = 100, "sugar" = 60, "egg" = 18, "sprinkles" = 10)
fruit = list("apple" = 30)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar,
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar,
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar
)
result = /obj/item/weapon/chaoscake_layer/six
/datum/recipe/microwave/chaoscake_layerseven
reagents = list("flour" = 120, "milk" = 50, "sugar" = 40, "egg" = 12, "devilskiss" = 200)
fruit = list("potato" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough
)
result = /obj/item/weapon/chaoscake_layer/seven
/datum/recipe/microwave/chaoscake_layereight
reagents = list("flour" = 120, "milk" = 50, "sugar" = 40, "egg" = 12, "cream" = 200)
fruit = list("lemon" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough
)
result = /obj/item/weapon/chaoscake_layer/eight
/datum/recipe/microwave/chaoscake_layernine
reagents = list("water" = 100, "blood" = 100)
fruit = list("goldapple" = 50)
items = list()
result = /obj/item/weapon/chaoscake_layer/nine
/obj/structure/chaoscake
name = "An unfinished cake"
desc = "A single layer of a strange cake, you can see the cherry paste ooze, but it feels very incomplete..."
icon = 'icons/obj/food64x64.dmi'
icon_state = "chaoscake_unfinished-1"
pixel_x = -16
var/slices = 6
var/maxslices = 6
var/stage = 1
var/maxstages = 9
var/edible = 0
var/regentime = 1000
var/interval = 0
var/static/list/desclist2 = list(
"The first layer of a strange cake, you can see the cherry paste ooze.",
"The second layer of the cake sits in place now, smelling of pear with delicious colourful cream.",
"The third layer of cake adds a strange purple layer, glazed over with frosting. It smells of grapes, but with a hint of something foul underneath.",
"With the fourth layer added the cake looks happier again. Reeking of vanilla, it brings up memories of childhood joy.",
"The fifth layer is extremely disturbing on that cake. Smelling of pure copper, it seems that bright blood clots are forming on top.",
"The cake is getting closer with the sixth layer added, the pink hue smelling of chocolate, with colourful sprinkles on top.",
"The first pair of triplets rest on the cake, despite being mostly similar to the first three, an evil aura becomes noticable.",
"The second pair of triplets rest on the cake, if you stand on the bright side, you can feel a good aura lifting your mood.",
"A chaos cake. Both a creation of dark and light, the two cakes are kept in a careful balance by that mystical coin in the middle. It's said its effects would dissipate if the balance is ever tipped in favour of one side too much, so both sides much be cut equally."
)
/obj/item/weapon/chaoscake_layer
name = "A layer of cake"
desc = "a layer of cake, it is made out of colourful cream."
icon = 'icons/obj/food.dmi'
icon_state = "chaoscake_layer-2"
var/layer_stage = 1
/obj/item/weapon/chaoscake_layer/three
desc = "a layer of cake, glazed in purple."
icon_state = "chaoscake_layer-3"
layer_stage = 2
/obj/item/weapon/chaoscake_layer/four
desc = "a layer of cake, reminding you of a colouring book."
icon_state = "chaoscake_layer-4"
layer_stage = 3
/obj/item/weapon/chaoscake_layer/five
desc = "A layer of cake, smells like copper."
icon_state = "chaoscake_layer-5"
layer_stage = 4
/obj/item/weapon/chaoscake_layer/six
desc = "A layer of cake, featuring colourful sprinkles."
icon_state = "chaoscake_layer-6"
layer_stage = 5
/obj/item/weapon/chaoscake_layer/seven
desc = "A triplet of evil cake parts."
icon_state = "chaoscake_layer-7"
layer_stage = 6
/obj/item/weapon/chaoscake_layer/eight
desc = "A triplet of good cake parts."
icon_state = "chaoscake_layer-8"
layer_stage = 7
/obj/item/weapon/chaoscake_layer/nine
name = "A coin of balance"
desc = "A very peculiar coin, it seems to stabilise the air around it."
icon_state = "chaoscake_layer-9"
layer_stage = 8
/obj/structure/chaoscake/proc/HasSliceMissing()
..()
if(slices < maxslices)
if(interval >= regentime)
interval = 0
slices++
HasSliceMissing()
else
interval++
HasSliceMissing()
else
return
/obj/item/weapon/reagent_containers/food/snacks/chaoscakeslice
name = "The Chaos Cake Slice"
desc = "A slice from The Chaos Cake, it pulses weirdly, as if angry to be seperated from the whole"
icon_state = "chaoscake_slice-1"
center_of_mass = list("x"=16, "y"=10)
nutriment_desc = list()
nutriment_amt = 4
volume = 80
/obj/item/weapon/reagent_containers/food/snacks/chaoscakeslice/Initialize()
..()
var/i = rand(1,6)
icon_state = "chaoscake_slice-[i]"
switch(i)
if(1)
name = "Slice Of Evil" //Pretty damn poisonous, takes a lot of work to make safe for consumption, useful for medical.
desc = "An odd slice, despite the grease and cherries oozing off the top, it smells delicious."
nutriment_desc = list("The desire to consume" = 10) // You won't even taste the poison.
reagents.add_reagent("neurotoxic_protein", 2)
reagents.add_reagent("shockchem", 2)
reagents.add_reagent("amatoxin", 2)
reagents.add_reagent("carpotoxin", 2)
reagents.add_reagent("spidertoxin", 2)
bitesize = 7
if(2)
name = "Slice Of Evil" //A bad trip
desc = "A mysterious slice, coated in purple frosting that smells like grapes."
nutriment_desc = list("The desire to show off an party" = 10)
reagents.add_reagent("stoxin", 2)
reagents.add_reagent("space_drugs", 10)
reagents.add_reagent("serotrotium", 4)
reagents.add_reagent("cryptobiolin", 8)
reagents.add_reagent("mindbreaker", 10)
reagents.add_reagent("psilocybin", 10)
bitesize = 30 //even a single bite won't make you escape fate.
if(3)
name = "Slice Of Evil" //acidic
desc = "A menacing slice, smelling clearly of copper, blood clots float on top."
nutriment_desc = list("Infernal Rage" = 10)
reagents.add_reagent("blood", 20)
reagents.add_reagent("stomacid", 10)
reagents.add_reagent("mutagen", 4)
reagents.add_reagent("thirteenloko", 20)
reagents.add_reagent("hyperzine", 10)
bitesize = 30
if(4)
name = "Slice Of Good" //anti-tox
desc = "A colourful slice, smelling of pear and coated in delicious cream."
nutriment_desc = list("Hapiness" = 10)
reagents.add_reagent("anti_toxin", 2)
reagents.add_reagent("tricordrazine", 2)
bitesize = 3
if(5)
name = "Slice Of Good" //anti-oxy
desc = "A light slice, it's pretty to look at and smells of vanilla."
nutriment_desc = list("Freedom" = 10)
reagents.add_reagent("dexalinp", 2)
reagents.add_reagent("tricordrazine", 2)
bitesize = 3
if(6)
name = "Slice Of Good" //anti-burn/brute
desc = "A hearty slice, it smells of chocolate and strawberries."
nutriment_desc = list("Love" = 10)
reagents.add_reagent("bicaridine", 2)
reagents.add_reagent("tricordrazine", 2)
reagents.add_reagent("kelotane", 2)
bitesize = 4
/obj/structure/chaoscake/attackby(var/obj/item/weapon/W, var/mob/living/user)
if(istype(W,/obj/item/weapon/material/knife))
if(edible == 1)
HasSliceMissing()
if(slices <= 0)
user << "The cake hums away quietly as the chaos powered goodness slowly recovers the large amount of lost mass, best to give it a moment before cutting another slice."
return
else
user << "You cut a slice of the cake. The slice looks like the cake was just baked, and you can see before your eyes as the spot where you cut the slice slowly regenerates!"
slices = slices - 1
icon_state = "chaoscake-[slices]"
new /obj/item/weapon/reagent_containers/food/snacks/chaoscakeslice(src.loc)
else
to_chat(user, "<span class='notice'>It looks so good... But it feels so wrong to eat it before it's finished...</span>")
return
if(istype(W,/obj/item/weapon/chaoscake_layer))
var/obj/item/weapon/chaoscake_layer/C = W
if(C.layer_stage == 8)
user << "Finally! The coin on the top, the almighty chaos cake is complete!"
qdel(W)
stage++
desc = desclist2[stage]
icon_state = "chaoscake-6"
edible = 1
name = "The Chaos Cake!"
else if(stage == maxstages)
user << "The cake is already done!"
else if(stage == C.layer_stage)
user << "You add another layer to the cake, nice."
qdel(W)
stage++
desc = desclist2[stage]
icon_state = "chaoscake_stage-[stage]"
else
user << "Hmm, doesnt seem like this layer is supposed to be added there?"
+21 -9
View File
@@ -126,7 +126,7 @@
to_chat(user, "<span class='warning'>It's dirty!</span>")
return 1
else if(is_type_in_list(O,acceptable_items))
if (contents.len>=(max_n_of_items + component_parts.len + 1)) //Adds component_parts to the maximum number of items. The 1 is from the circuit
if (contents.len>=(max_n_of_items + component_parts.len + circuit_item_capacity)) //Adds component_parts to the maximum number of items. changed 1 to actually just be the circuit item capacity var.
to_chat(user, "<span class='warning'>This [src] is full of ingredients, you cannot put more.</span>")
return 1
if(istype(O, /obj/item/stack) && O:get_amount() > 1) // This is bad, but I can't think of how to change it
@@ -310,14 +310,26 @@
sleep(5) //VOREStation Edit - Quicker Microwaves
return 1
/obj/machinery/microwave/proc/has_extra_item()
for (var/obj/O in ((contents - component_parts) - circuit))
if ( \
!istype(O,/obj/item/weapon/reagent_containers/food) && \
!istype(O, /obj/item/weapon/grown) \
)
return 1
return 0
/obj/machinery/microwave/proc/has_extra_item() //- coded to have different microwaves be able to handle different items
if(item_level == 0)
for (var/obj/O in ((contents - component_parts) - circuit))
if ( \
!istype(O,/obj/item/weapon/reagent_containers/food) && \
!istype(O, /obj/item/weapon/grown) \
)
return 1
return 0
if(item_level == 1)
for (var/obj/O in ((contents - component_parts) - circuit))
if ( \
!istype(O, /obj/item/weapon/reagent_containers/food) && \
!istype(O, /obj/item/weapon/grown) && \
!istype(O, /obj/item/slime_extract) && \
!istype(O, /obj/item/organ) && \
!istype(O, /obj/item/stack/material) \
)
return 1
return 0
/obj/machinery/microwave/proc/start()
src.visible_message("<span class='notice'>The microwave turns on.</span>", "<span class='notice'>You hear a microwave.</span>")
+1 -1
View File
@@ -377,7 +377,7 @@
return
// Check if we should even bother working on the current seed datum.
if(seed.mutants. && seed.mutants.len && severity > 1)
if(seed.mutants && seed.mutants.len && severity > 1)
mutate_species()
return
+1 -1
View File
@@ -297,7 +297,7 @@
user << browse(dat + "<html><head><title>[P.name]</title></head>" \
+ "<body style='overflow:hidden'>" \
+ "<div> <img src='tmp_photo.png' width = '180'" \
+ "[P.scribble ? "<div> Written on the back:<br><i>[P.scribble]</i>" : ]"\
+ "[P.scribble ? "<div> Written on the back:<br><i>[P.scribble]</i>" : null]"\
+ "</body></html>", "window=[name]")
else if(!isnull(pages[page]))
if(!(istype(usr, /mob/living/carbon/human) || isobserver(usr) || istype(usr, /mob/living/silicon)))
@@ -1186,7 +1186,7 @@
if(LAZYLEN(species.descriptors))
descriptors = list()
for(var/desctype in species.descriptors)
var/datum/mob_descriptor.descriptor = species.descriptors[desctype]
var/datum/mob_descriptor/descriptor = species.descriptors[desctype]
descriptors[desctype] = descriptor.default_value
spawn(0)
@@ -575,9 +575,8 @@ emp_act
return perm
// This is for preventing harm by being covered in water, which only prometheans need to deal with.
// This is not actually used for now since the code for prometheans gets changed a lot.
/mob/living/carbon/human/get_water_protection()
var/protection = ..() // Todo: Replace with species var later.
var/protection = species.water_resistance
if(protection == 1) // No point doing permeability checks if it won't matter.
return protection
// Wearing clothing with a low permeability_coefficient can protect from water.
@@ -585,7 +584,7 @@ emp_act
var/converted_protection = 1 - protection
var/perm = reagent_permeability()
converted_protection *= perm
return 1-converted_protection
return CLAMP(1-converted_protection, 0, 1)
/mob/living/carbon/human/shank_attack(obj/item/W, obj/item/weapon/grab/G, mob/user, hit_zone)
@@ -614,4 +613,4 @@ emp_act
G.last_action = world.time
flick(G.hud.icon_state, G.hud)
return 1
return 1
@@ -142,6 +142,7 @@
"Your skin prickles in the heat."
)
var/water_resistance = 0.1 // How wet the species gets from being splashed. Only really useful for Prometheans.
var/passive_temp_gain = 0 // Species will gain this much temperature every second
var/hazard_high_pressure = HAZARD_HIGH_PRESSURE // Dangerously high pressure.
@@ -71,6 +71,8 @@ var/datum/species/shapeshifter/promethean/prometheans
rarity_value = 5
siemens_coefficient = 0.8
water_resistance = 0
genders = list(MALE, FEMALE, NEUTER, PLURAL)
unarmed_types = list(/datum/unarmed_attack/slime_glomp)
@@ -171,8 +173,8 @@ var/datum/species/shapeshifter/promethean/prometheans
var/regen_burn = TRUE
var/regen_tox = TRUE
var/regen_oxy = TRUE
if(H.fire_stacks < 0) // If you're soaked, you're melting.
H.adjustToxLoss(3 * heal_rate) // Tripled because 0.5 is miniscule, and fire_stacks are capped in both directions
if(H.fire_stacks < 0 && H.get_water_protection() <= 0.5) // If over half your body is soaked, you're melting.
H.adjustToxLoss(max(0,(3 - (3 * H.get_water_protection())) * heal_rate)) // Tripled because 0.5 is miniscule, and fire_stacks are capped in both directions.
healing = FALSE
//Prometheans automatically clean every surface they're in contact with every life tick - this includes the floor without shoes.
@@ -104,7 +104,7 @@
if("corrupted") // Load them up with ion laws.
var/datum/ai_laws/laws = new() // Start with an empty lawset.
for(1 to rand(1, 3))
for(var/i in 1 to rand(1, 3))
laws.add_ion_law(generate_ion_law(exclude_crew_names = TRUE))
return laws
+1 -1
View File
@@ -269,7 +269,7 @@
return FALSE
var/turf/below = GetBelow(src)
if((locate(/obj/structure/disposalpipe/up) in below) || locate(/obj/machinery/atmospherics/pipe/zpipe/up in below))
if((locate(/obj/structure/disposalpipe/up) in below) || locate(/obj/machinery/atmospherics/pipe/zpipe/up) in below)
return FALSE
/mob/living/can_fall()
+1 -1
View File
@@ -546,7 +546,7 @@
stamps += (stamps=="" ? "<HR>" : "<BR>") + "<i>This paper has been stamped with the [P.name].</i>"
var/image/stampoverlay = image('icons/obj/bureaucracy.dmi')
var/{x; y;}
var/x, y
if(istype(P, /obj/item/weapon/stamp/captain) || istype(P, /obj/item/weapon/stamp/centcomm))
x = rand(-2, 0)
y = rand(-1, 2)
+1 -1
View File
@@ -134,7 +134,7 @@
user << browse(dat + "<html><head><title>[P.name]</title></head>" \
+ "<body style='overflow:hidden'>" \
+ "<div> <img src='tmp_photo.png' width = '180'" \
+ "[P.scribble ? "<div> Written on the back:<br><i>[P.scribble]</i>" : ]"\
+ "[P.scribble ? "<div> Written on the back:<br><i>[P.scribble]</i>" : null]"\
+ "</body></html>", "window=[name]")
/obj/item/weapon/paper_bundle/attack_self(mob/user as mob)
+1 -1
View File
@@ -1184,7 +1184,7 @@
// defines a state machine, returns the new state
obj/machinery/power/apc/proc/autoset(var/cur_state, var/on)
switch(cur_state)
if(POWERCHAN_OFF); //autoset will never turn on a channel set to off
//if(POWERCHAN_OFF); //autoset will never turn on a channel set to off
if(POWERCHAN_OFF_AUTO)
if(on == 1)
return POWERCHAN_ON_AUTO
@@ -194,7 +194,7 @@
..()
/datum/reagent/water/affect_touch(var/mob/living/carbon/M, var/alien, var/removed)
if(alien == IS_SLIME)
if(alien == IS_SLIME && prob(10))
M.visible_message("<span class='warning'>[M]'s flesh sizzles where the water touches it!</span>", "<span class='danger'>Your flesh burns in the water!</span>")
..()
*/ //VOREStation Edit End.
@@ -3527,6 +3527,28 @@
glass_name = "fusionnaire"
glass_desc = "A relatively new cocktail, mostly served in the bars of NanoTrasen owned stations."
/datum/reagent/ethanol/deathbell
name = "Deathbell"
id = "deathbell"
description = "A successful experiment to make the most alcoholic thing possible."
taste_description = "your brains smashed out by a smooth brick of hard, ice cold alcohol"
color = "#9f6aff"
taste_mult = 5
strength = 10
adj_temp = 10
targ_temp = 330
glass_name = "Deathbell"
glass_desc = "The perfect blend of the most alcoholic things a bartender can get their hands on."
/datum/reagent/ethanol/deathbell/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
if(dose * strength >= strength) // Early warning
M.make_dizzy(24) // Intentionally higher than normal to compensate for it's previous effects.
if(dose * strength >= strength * 2.5) // Slurring takes longer. Again, intentional.
M.slurring = max(M.slurring, 30)
/datum/reagent/nutriment/magicdust
name = "Magic Dust"
id = "magicdust"
@@ -2210,6 +2210,13 @@
required_reagents = list("sake" = 1, "melonliquor" = 1)
result_amount = 2
/datum/chemical_reaction/drinks/deathbell
name = "Deathbell"
id = "deathbell"
result = "deathbell"
required_reagents = list("antifreeze" = 1, "gargleblaster" = 1, "syndicatebomb" =1)
result_amount = 3
/datum/chemical_reaction/bitters
name = "Bitters"
id = "bitters"
@@ -614,6 +614,13 @@ CIRCUITS BELOW
build_path = /obj/item/weapon/circuitboard/aicore
sort_string = "XAAAA"
/datum/design/circuit/microwave/advanced
name = "deluxe microwave"
id = "deluxe microwave"
req_tech = list(TECH_DATA = 5, TECH_ENGINEERING = 5, TECH_BLUESPACE = 4)
build_path = /obj/item/weapon/circuitboard/microwave/advanced
sort_string = "MAAAC"
/* I have no idea how this was even running before, but it doesn't seem to be necessary.
///////////////////////////////////
+1 -1
View File
@@ -393,7 +393,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
var/obj/item/weapon/paper/PR = new/obj/item/weapon/paper
PR.name = "list of researched technologies"
PR.info = "<center><b>[station_name()] Science Laboratories</b>"
PR.info += "<h2>[ (text2num(href_list["print"]) == 2) ? "Detailed" : ] Research Progress Report</h2>"
PR.info += "<h2>[ (text2num(href_list["print"]) == 2) ? "Detailed" : null] Research Progress Report</h2>"
PR.info += "<i>report prepared at [stationtime2text()] station time</i></center><br>"
if(text2num(href_list["print"]) == 2)
PR.info += GetResearchListInfo()
+7 -9
View File
@@ -53,10 +53,9 @@
if(/token/word)
return new/node/expression/value/variable(T.value)
if(/token/accessor)
var
token/accessor/A=T
node/expression/value/variable/E//=new(A.member)
stack/S=new()
var/token/accessor/A=T
var/node/expression/value/variable/E//=new(A.member)
var/stack/S=new()
while(istype(A.object, /token/accessor))
S.Push(A)
A=A.object
@@ -181,11 +180,10 @@
- <ParseParamExpression()>
*/
ParseExpression(list/end=list(/token/end), list/ErrChars=list("{", "}"))
var/stack
opr=new
val=new
var/stack/opr=new
var/stack/val=new
src.expecting=VALUE
for()
while(TRUE)
if(EndOfExpression(end))
break
if(istype(curToken, /token/symbol) && ErrChars.Find(curToken.value))
@@ -278,7 +276,7 @@
NextToken() //skip open parenthesis, already found
var/loops = 0
for()
while(TRUE)
loops++
if(loops>=1000)
CRASH("Something TERRIBLE has gone wrong in ParseFunctionExpression ;__;")
+1 -1
View File
@@ -134,7 +134,7 @@ var/const/Represents a special statement in the code triggered by a keyword.
parser.NextToken()
if(!parser.CheckToken("(", /token/symbol))
return KW_FAIL
for() //for now parameters can be separated by whitespace - they don't need a comma in between
while(TRUE) //for now parameters can be separated by whitespace - they don't need a comma in between
if(istype(parser.curToken, /token/symbol))
switch(parser.curToken.value)
if(",")
+1 -1
View File
@@ -172,7 +172,7 @@
if(!CheckToken("(", /token/symbol)) //Check for and skip open parenthesis
return
var/loops = 0
for()
while(TRUE)
loops++
if(loops>=6000)
CRASH("Something TERRIBLE has gone wrong in ParseFunctionStatement ;__;")
+15 -20
View File
@@ -153,8 +153,7 @@
start - The character used to start the string.
*/
ReadString(start)
var
buf
var/buf
for(, codepos <= length(code), codepos++)//codepos to length(code))
var/char=copytext(code, codepos, codepos+1)
switch(char)
@@ -189,9 +188,8 @@
Reads characters separated by an item in <delim> into a token.
*/
ReadWord()
var
char=copytext(code, codepos, codepos+1)
buf
var/char=copytext(code, codepos, codepos+1)
var/buf
while(!delim.Find(char) && codepos<=length(code))
buf+=char
char=copytext(code, ++codepos, codepos+1)
@@ -206,9 +204,8 @@
Reads a symbol into a token.
*/
ReadSymbol()
var
char=copytext(code, codepos, codepos+1)
buf
var/char=copytext(code, codepos, codepos+1)
var/buf
while(options.symbols.Find(buf+char))
buf+=char
@@ -223,10 +220,9 @@
Reads a number into a token.
*/
ReadNumber()
var
char=copytext(code, codepos, codepos+1)
buf
dec=0
var/char=copytext(code, codepos, codepos+1)
var/buf
var/dec=0
while(options.IsDigit(char) || (char=="." && !dec))
if(char==".") dec=1
@@ -246,14 +242,13 @@
*/
ReadComment()
var
char=copytext(code, codepos, codepos+1)
nextchar=copytext(code, codepos+1, codepos+2)
charstring = char+nextchar
comm = 1
// 1: single-line comment
// 2: multi-line comment
expectedend = 0
var/char=copytext(code, codepos, codepos+1)
var/nextchar=copytext(code, codepos+1, codepos+2)
var/charstring = char+nextchar
var/comm = 1
// 1: single-line comment
// 2: multi-line comment
var/expectedend = 0
if(charstring == "//" || charstring == "/*")
if(charstring == "/*")
Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 21 KiB

+1
View File
@@ -1933,6 +1933,7 @@
#include "code\modules\food\food\snacks.dm"
#include "code\modules\food\food\snacks_vr.dm"
#include "code\modules\food\food\z_custom_food_vr.dm"
#include "code\modules\food\food\thecake.dm"
#include "code\modules\food\food\drinks\bottle.dm"
#include "code\modules\food\food\drinks\cup.dm"
#include "code\modules\food\food\drinks\drinkingglass.dm"