diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 04612128eff..b84b9f467c5 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -23,7 +23,7 @@ /mob/living/carbon/human/RangedAttack(var/atom/A) if(!gloves && !mutations.len) return var/obj/item/clothing/gloves/G = gloves - if((LASER in mutations) && a_intent == "harm") + if((LASER in mutations) && a_intent == "hurt") LaserEyes(A) // moved into a proc below else if(istype(G) && G.Touch(A,0)) // for magic gloves diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 26172431f40..66708db7f7b 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -101,7 +101,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ hologram.SetLuminosity(2) //hologram lighting SetLuminosity(2) //pad lighting icon_state = "holopad1" - A.current = src + A.holo = src master = A//AI is the master. use_power = 2//Active power usage. return 1 @@ -109,8 +109,8 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ /obj/machinery/hologram/holopad/proc/clear_holo() // hologram.SetLuminosity(0)//Clear lighting. //handled by the lighting controller when its ower is deleted del(hologram)//Get rid of hologram. - if(master.current == src) - master.current = null + if(master.holo == src) + master.holo = null master = null//Null the master, since no-one is using it now. SetLuminosity(0) //pad lighting (hologram lighting will be handled automatically since its owner was deleted) icon_state = "holopad0" diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index b54f526585c..ccafc8f42c2 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -100,7 +100,7 @@ break if(istype (M, /mob/dead/observer)) continue - if(M.buckled) + if(M.buckled || M.pinned.len) continue if(M.client) diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index b3b0404054d..9874c91fd1b 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -86,7 +86,7 @@ /obj/structure/stool/bed/proc/buckle_mob(mob/M as mob, mob/user as mob) if (!ticker) user << "You can't buckle anyone in before the game starts." - if ( !ismob(M) || (get_dist(src, user) > 1) || (M.loc != src.loc) || user.restrained() || user.lying || user.stat || M.buckled || istype(user, /mob/living/silicon/pai) ) + if ( !ismob(M) || (get_dist(src, user) > 1) || (M.loc != src.loc) || user.restrained() || user.lying || user.stat || M.buckled || M.pinned.len || istype(user, /mob/living/silicon/pai) ) return if (istype(M, /mob/living/carbon/slime)) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm old mode 100644 new mode 100755 diff --git a/code/modules/hydroponics/hydro_tray.dm b/code/modules/hydroponics/hydro_tray.dm index dc0dda59e45..72e8d923036 100644 --- a/code/modules/hydroponics/hydro_tray.dm +++ b/code/modules/hydroponics/hydro_tray.dm @@ -104,7 +104,7 @@ "cryoxadone" = list( 3, 0, 0 ), "ammonia" = list( 0.5, 0, 0 ), "diethylamine" = list( 1, 0, 0 ), - "nutriment" = list( 0.5, 1, 0 ), + "nutriment" = list( 0.5, 0.1, 0 ), "radium" = list( -1.5, 0, 0.2 ), "adminordrazine" = list( 1, 1, 1 ), "robustharvest" = list( 0, 0.2, 0 ), @@ -242,7 +242,7 @@ if(seed.exude_gasses && seed.exude_gasses.len) for(var/gas in seed.exude_gasses) environment.adjust_gas(gas, max(1,round((seed.exude_gasses[gas]*seed.potency)/seed.exude_gasses.len))) - + // If we're attached to a pipenet, then we should let the pipenet know we might have modified some gasses if (closed_system && connected_port) update_connected_network() @@ -302,7 +302,7 @@ lastproduce = age if(prob(3)) // On each tick, there's a chance the pest population will increase - pestlevel += 1 * HYDRO_SPEED_MULTIPLIER + pestlevel += 0.1 * HYDRO_SPEED_MULTIPLIER check_level_sanity() update_icon() @@ -326,9 +326,9 @@ if(toxic_reagents[R.id]) toxins += toxic_reagents[R.id] * reagent_total if(weedkiller_reagents[R.id]) - weedlevel += weedkiller_reagents[R.id] * reagent_total + weedlevel -= weedkiller_reagents[R.id] * reagent_total if(pestkiller_reagents[R.id]) - pestlevel += pestkiller_reagents[R.id] * reagent_total + pestlevel -= pestkiller_reagents[R.id] * reagent_total // Beneficial reagents have a few impacts along with health buffs. if(beneficial_reagents[R.id]) diff --git a/code/modules/hydroponics/seed_datums.dm b/code/modules/hydroponics/seed_datums.dm index f1d12a1a6a5..b4917515d46 100644 --- a/code/modules/hydroponics/seed_datums.dm +++ b/code/modules/hydroponics/seed_datums.dm @@ -188,26 +188,35 @@ proc/populate_seed_list() if(gene.values.len < 6) return - yield = round(yield*0.5) - endurance = round(endurance*0.5) + yield = round(yield*0.8) + endurance = round(endurance*0.8) lifespan = round(lifespan*0.8) if(!products) products = list() products |= gene.values[1] if(!chems) chems = list() - for(var/rid in gene.values[2]) - var/existing_chem - for(var/chem in chems) - if(rid == chem) - existing_chem = 1 - break - if(existing_chem) - chems[rid][1] = max(1,round((chems[rid][1]+gene.values[2][rid][1])/2)) - chems[rid][2] = max(1,round((chems[rid][2]+gene.values[2][rid][2])/2)) + var/list/gene_value = gene.values[2] + for(var/rid in gene_value) + + var/list/gene_chem = gene_value[rid] + + if(chems[rid]) + + var/list/chem_value = chems[rid] + + chems[rid][1] = max(1,round((gene_chem[1] + chem_value[1])/2)) + + if(gene_chem.len > 1) + if(chem_value > 1) + chems[rid][2] = max(1,round((gene_chem[2] + chem_value[2])/2)) + else + chems[rid][2] = gene_chem[2] + else - chems[rid] = gene.values[2][rid] + var/list/new_chem = gene_chem[rid] + chems[rid] = new_chem.Copy() var/list/new_gasses = gene.values[3] if(istype(new_gasses)) @@ -375,7 +384,7 @@ proc/populate_seed_list() yield_mod = 0 total_yield = yield else - total_yield = max(1,rand(yield_mod,yield_mod+yield)) + total_yield = yield + rand(yield_mod) currently_querying = list() for(var/i = 0;i= PULSE_NORM) temp-- - break //one reagent is enough - //comment out the breaks to make med effects stack - for(var/datum/reagent/R in reagents.reagent_list) //handles different chems' influence on pulse if(R.id in tachycardics) if(temp <= PULSE_FAST && temp >= PULSE_NONE) temp++ - break - for(var/datum/reagent/R in reagents.reagent_list) //To avoid using fakedeath - if(R.id in heartstopper) + if(R.id in heartstopper) //To avoid using fakedeath temp = PULSE_NONE - break - for(var/datum/reagent/R in reagents.reagent_list) //Conditional heart-stoppage - if(R.id in cheartstopper) + if(R.id in cheartstopper) //Conditional heart-stoppage if(R.volume >= R.overdose) temp = PULSE_NONE - break return temp diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 792ef9296f9..40cc69f2c47 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -44,7 +44,7 @@ var/list/ai_verbs_default = list( density = 1 status_flags = CANSTUN|CANPARALYSE var/list/network = list("SS13") - var/obj/machinery/camera/current = null + var/obj/machinery/camera/camera = null var/list/connected_robots = list() var/aiRestorePowerRoutine = 0 //var/list/laws = list() @@ -364,9 +364,9 @@ var/list/ai_verbs_default = list( cancel_call_proc(src) /mob/living/silicon/ai/check_eye(var/mob/user as mob) - if (!current) + if (!camera) return null - user.reset_view(current) + user.reset_view(camera) return 1 /mob/living/silicon/ai/blob_act() @@ -550,10 +550,10 @@ var/list/ai_verbs_default = list( updatehealth() /mob/living/silicon/ai/reset_view(atom/A) - if(current) - current.SetLuminosity(0) + if(camera) + camera.SetLuminosity(0) if(istype(A,/obj/machinery/camera)) - current = A + camera = A ..() if(istype(A,/obj/machinery/camera)) if(camera_light_on) A.SetLuminosity(AI_CAMERA_LUMINOSITY) @@ -742,9 +742,9 @@ var/list/ai_verbs_default = list( camera_light_on = !camera_light_on src << "Camera lights [camera_light_on ? "activated" : "deactivated"]." if(!camera_light_on) - if(current) - current.SetLuminosity(0) - current = null + if(camera) + camera.SetLuminosity(0) + camera = null else lightNearbyCamera() @@ -755,23 +755,23 @@ var/list/ai_verbs_default = list( /mob/living/silicon/ai/proc/lightNearbyCamera() if(camera_light_on && camera_light_on < world.timeofday) - if(src.current) + if(src.camera) var/obj/machinery/camera/camera = near_range_camera(src.eyeobj) - if(camera && src.current != camera) - src.current.SetLuminosity(0) + if(camera && src.camera != camera) + src.camera.SetLuminosity(0) if(!camera.light_disabled) - src.current = camera - src.current.SetLuminosity(AI_CAMERA_LUMINOSITY) + src.camera = camera + src.camera.SetLuminosity(AI_CAMERA_LUMINOSITY) else - src.current = null + src.camera = null else if(isnull(camera)) - src.current.SetLuminosity(0) - src.current = null + src.camera.SetLuminosity(0) + src.camera = null else var/obj/machinery/camera/camera = near_range_camera(src.eyeobj) if(camera && !camera.light_disabled) - src.current = camera - src.current.SetLuminosity(AI_CAMERA_LUMINOSITY) + src.camera = camera + src.camera.SetLuminosity(AI_CAMERA_LUMINOSITY) camera_light_on = world.timeofday + 1 * 20 // Update the light every 2 seconds. diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm index a0382f20251..da15e5158ad 100644 --- a/code/modules/mob/living/silicon/ai/freelook/eye.dm +++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm @@ -47,9 +47,8 @@ if(ai.client) ai.client.eye = src //Holopad - if(istype(ai.current, /obj/machinery/hologram/holopad)) - var/obj/machinery/hologram/holopad/H = ai.current - H.move_hologram() + if(ai.holo) + ai.holo.move_hologram() /mob/aiEye/proc/getLoc() @@ -67,7 +66,7 @@ var/sprint = 10 var/cooldown = 0 var/acceleration = 1 - + var/obj/machinery/hologram/holopad/holo = null // Intiliaze the eye by assigning it's "ai" variable to us. Then set it's loc to us. /mob/living/silicon/ai/New() @@ -127,8 +126,7 @@ /mob/living/silicon/ai/proc/view_core() - - current = null + camera = null cameraFollow = null unset_machine() diff --git a/code/modules/mob/living/silicon/say.dm b/code/modules/mob/living/silicon/say.dm index 2784a42da3c..0b971cfab1f 100644 --- a/code/modules/mob/living/silicon/say.dm +++ b/code/modules/mob/living/silicon/say.dm @@ -153,8 +153,8 @@ if (!message) return - var/obj/machinery/hologram/holopad/T = src.current - if(istype(T) && T.hologram && T.master == src)//If there is a hologram and its master is the user. + var/obj/machinery/hologram/holopad/T = src.holo + if(T && T.hologram && T.master == src)//If there is a hologram and its master is the user. var/verb = say_quote(message) //Human-like, sorta, heard by those who understand humans. diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index f1a5c15c4b9..7fb6ee98542 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -34,7 +34,7 @@ max_n2 = 0 minbodytemp = 0 - break_stuff_probability = 2 + break_stuff_probability = 15 faction = "carp" diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 31e6f38c3e3..3aaaf8ec97a 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -193,6 +193,10 @@ /mob/living/simple_animal/hostile/proc/DestroySurroundings() if(prob(break_stuff_probability)) for(var/dir in cardinal) // North, South, East, West + for(var/obj/structure/window/obstacle in get_step(src, dir)) + if(obstacle.dir == reverse_dir[dir]) // So that windows get smashed in the right order + obstacle.attack_animal(src) + return var/obj/structure/obstacle = locate(/obj/structure, get_step(src, dir)) if(istype(obstacle, /obj/structure/window) || istype(obstacle, /obj/structure/closet) || istype(obstacle, /obj/structure/table) || istype(obstacle, /obj/structure/grille)) obstacle.attack_animal(src) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 515d6b0bc86..c2100f140ce 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -96,8 +96,8 @@ /obj/item/weapon/paper/attack_ai(var/mob/living/silicon/ai/user as mob) var/dist - if(istype(user) && user.current) //is AI - dist = get_dist(src, user.current) + if(istype(user) && user.camera) //is AI + dist = get_dist(src, user.camera) else //cyborg or AI not seeing through a camera dist = get_dist(src, user) if(dist < 2) @@ -113,7 +113,7 @@ user.visible_message("You show the paper to [M]. ", \ " [user] holds up a paper and shows it to [M]. ") M << examine() - + else if(user.zone_sel.selecting == "mouth") // lipstick wiping if(ishuman(M)) var/mob/living/carbon/human/H = M diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 6998dd5cc4f..1eae70f8cab 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -344,7 +344,6 @@ /obj/machinery/power/smes/proc/ion_act() if(src.z == 1) if(prob(1)) //explosion - world << "\red SMES explosion in [src.loc.loc]" for(var/mob/M in viewers(src)) M.show_message("\red The [src.name] is making strange noises!", 3, "\red You hear sizzling electronics.", 2) sleep(10*pick(4,5,6,7,10,14)) @@ -356,7 +355,6 @@ del(src) return if(prob(15)) //Power drain - world << "\red SMES power drain in [src.loc.loc]" var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() @@ -365,7 +363,6 @@ else emp_act(2) if(prob(5)) //smoke only - world << "\red SMES smoke in [src.loc.loc]" var/datum/effect/effect/system/smoke_spread/smoke = new /datum/effect/effect/system/smoke_spread() smoke.set_up(3, 0, src.loc) smoke.attach(src) diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 8c46f146052..65f906ef54b 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -14,15 +14,13 @@ var/energy = 100 var/max_energy = 100 var/amount = 30 - var/accept_glass = 0 + var/accept_glass = 0 //At 0 ONLY accepts glass containers. Kinda misleading varname. var/beaker = null var/recharged = 0 var/hackedcheck = 0 var/list/dispensable_reagents = list("hydrogen","lithium","carbon","nitrogen","oxygen","fluorine", "sodium","aluminum","silicon","phosphorus","sulfur","chlorine","potassium","iron", "copper","mercury","radium","water","ethanol","sugar","sacid","tungsten") - var/list/broken_requirements = list() - var/broken_on_spawn = 0 /obj/machinery/chem_dispenser/proc/recharge() if(stat & (BROKEN|NOPOWER)) return @@ -38,7 +36,6 @@ nanomanager.update_uis(src) // update all UIs attached to src /obj/machinery/chem_dispenser/process() - if(recharged <= 0) recharge() recharged = 15 @@ -50,27 +47,6 @@ recharge() dispensable_reagents = sortList(dispensable_reagents) - if(broken_on_spawn) - var/amount = pick(1,2,2,3,4) - var/list/options = list() - options[/obj/item/weapon/stock_parts/capacitor/adv] = "Add an advanced capacitor to fix it." - options[/obj/item/weapon/stock_parts/console_screen] = "Replace the console screen to fix it." - options[/obj/item/weapon/stock_parts/manipulator/pico] = "Upgrade to a pico manipulator to fix it." - options[/obj/item/weapon/stock_parts/matter_bin/adv] = "Give it an advanced matter bin to fix it." - options[/obj/item/stack/sheet/mineral/diamond] = "Line up a cut diamond with the nozzle to fix it." - options[/obj/item/stack/sheet/mineral/uranium] = "Position a uranium sheet inside to fix it." - options[/obj/item/stack/sheet/mineral/phoron] = "Enter a block of phoron to fix it." - options[/obj/item/stack/sheet/mineral/silver] = "Cover the internals with a silver lining to fix it." - options[/obj/item/stack/sheet/mineral/gold] = "Wire a golden filament to fix it." - options[/obj/item/stack/sheet/plasteel] = "Surround the outside with a plasteel cover to fix it." - options[/obj/item/stack/sheet/rglass] = "Insert a pane of reinforced glass to fix it." - stat |= BROKEN - while(amount > 0) - amount -= 1 - - var/index = pick(options) - broken_requirements[index] = options[index] - options -= index /obj/machinery/chem_dispenser/ex_act(severity) switch(severity) @@ -101,9 +77,6 @@ * @return nothing */ /obj/machinery/chem_dispenser/ui_interact(mob/user, ui_key = "main",var/datum/nanoui/ui = null, var/force_open = 1) - if(broken_requirements.len) - user << "[src] is broken. [broken_requirements[broken_requirements[1]]]" - return if(stat & (BROKEN|NOPOWER)) return if(user.stat || user.restrained()) return @@ -179,19 +152,6 @@ /obj/machinery/chem_dispenser/attackby(var/obj/item/weapon/reagent_containers/B as obj, var/mob/user as mob) if(isrobot(user)) return - - if(broken_requirements.len && B.type == broken_requirements[1]) - broken_requirements -= broken_requirements[1] - user << "You fix [src]." - if(istype(B,/obj/item/stack)) - var/obj/item/stack/S = B - S.use(1) - else - user.drop_item() - del(B) - if(broken_requirements.len==0) - stat ^= BROKEN - return if(src.beaker) user << "Something is already loaded into the machine." return @@ -214,7 +174,6 @@ /obj/machinery/chem_dispenser/attack_hand(mob/user as mob) if(stat & BROKEN) return - ui_interact(user) /obj/machinery/chem_dispenser/soda @@ -241,6 +200,7 @@ dispensable_reagents -= list("thirteenloko") hackedcheck = 0 return + /obj/machinery/chem_dispenser/beer icon_state = "booze_dispenser" name = "booze dispenser" diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 0d8986fcfd6..cdb8e950b01 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -2077,7 +2077,7 @@ datum description = "This is what makes chilis hot." reagent_state = LIQUID color = "#B31008" // rgb: 179, 16, 8 - + on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom @@ -2091,7 +2091,7 @@ datum H << "\red Your insides feel uncomfortably hot !" if(2 to 20) if(prob(5)) - H << "\red Your insides feel uncomfortably hot !" + H << "\red Your insides feel uncomfortably hot !" if(20 to INFINITY) H.apply_effect(2,AGONY,0) if(prob(5)) @@ -2199,10 +2199,10 @@ datum on_mob_life(var/mob/living/M as mob) if(!M) - M = holder.my_atom - M.bodytemperature = max(M.bodytemperature - 10 * TEMPERATURE_DAMAGE_COEFFICIENT, 0) + M = holder.my_atom + M.bodytemperature = max(M.bodytemperature - 10 * TEMPERATURE_DAMAGE_COEFFICIENT, 0) if(prob(1)) - M.emote("shiver") + M.emote("shiver") if(istype(M, /mob/living/carbon/slime)) M.bodytemperature = max(M.bodytemperature - rand(10,20), 0) holder.remove_reagent("capsaicin", 5) diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index c8e317ca86f..1753bae9e37 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -130,7 +130,7 @@ datum water //I can't believe we never had this. name = "Water" id = "water" - result = null + result = "water" required_reagents = list("oxygen" = 2, "hydrogen" = 1) result_amount = 1 diff --git a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm index 9e5dbbb4d4d..63a34ec90c9 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm @@ -61,7 +61,7 @@ //Display an attack message. for(var/mob/O in viewers(user, null)) if(target != user) O.show_message(text("\red [target] has been hit over the head with a bottle of [src.name], by [user]!"), 1) - else O.show_message(text("\red [target] hit himself with a bottle of [src.name] on the head!"), 1) + else O.show_message(text("\red [target] hit \himself with a bottle of [src.name] on the head!"), 1) //Weaken the target for the duration that we calculated and divide it by 5. if(armor_duration) target.apply_effect(min(armor_duration, 10) , WEAKEN, armor_block) // Never weaken more than a flash! @@ -70,7 +70,7 @@ //Default attack message and don't weaken the target. for(var/mob/O in viewers(user, null)) if(target != user) O.show_message(text("\red [target] has been attacked with a bottle of [src.name], by [user]!"), 1) - else O.show_message(text("\red [target] has attacked himself with a bottle of [src.name]!"), 1) + else O.show_message(text("\red [target] has attacked \himself with a bottle of [src.name]!"), 1) //Attack logs user.attack_log += text("\[[time_stamp()]\] Has attacked [target.name] ([target.ckey]) with a bottle!") diff --git a/code/modules/shuttles/shuttle.dm b/code/modules/shuttles/shuttle.dm index c931e9fc299..27e4231266f 100644 --- a/code/modules/shuttles/shuttle.dm +++ b/code/modules/shuttles/shuttle.dm @@ -34,10 +34,11 @@ if (moving_status == SHUTTLE_IDLE) return //someone cancelled the launch + arrive_time = world.time + travel_time*10 moving_status = SHUTTLE_INTRANSIT move(departing, interim, direction) - arrive_time = world.time + travel_time*10 + while (world.time < arrive_time) sleep(5) diff --git a/code/modules/shuttles/shuttle_emergency.dm b/code/modules/shuttles/shuttle_emergency.dm index c7fff897e6d..daa783e4d11 100644 --- a/code/modules/shuttles/shuttle_emergency.dm +++ b/code/modules/shuttles/shuttle_emergency.dm @@ -16,12 +16,15 @@ else travel_time = SHUTTLE_TRANSIT_DURATION - //update move_time so we get correct ETAs + //update move_time and launch_time so we get correct ETAs move_time = travel_time + emergency_shuttle.launch_time = world.time ..() /datum/shuttle/ferry/emergency/move(var/area/origin,var/area/destination) + ..(origin, destination) + if (origin == area_station) //leaving the station emergency_shuttle.departed = 1 @@ -30,8 +33,6 @@ else captain_announce("The Crew Transfer Shuttle has left the station. Estimate [round(emergency_shuttle.estimate_arrival_time()/60,1)] minutes until the shuttle docks at Central Command.") - ..(origin, destination) - /datum/shuttle/ferry/emergency/can_launch(var/user) if (istype(user, /obj/machinery/computer/shuttle_control/emergency)) var/obj/machinery/computer/shuttle_control/emergency/C = user diff --git a/code/modules/surgery/braincore.dm b/code/modules/surgery/braincore.dm index 267e989a414..0d4940f313c 100644 --- a/code/modules/surgery/braincore.dm +++ b/code/modules/surgery/braincore.dm @@ -214,7 +214,7 @@ end_step(mob/living/user, mob/living/carbon/slime/target, target_zone, obj/item/tool) user.visible_message("\blue [user] cuts through [target]'s flesh with \the [tool].", \ - "\blue You cut through [target]'s flesh with \the [tool], exposing the cores.") + "\blue You cut through [target]'s flesh with \the [tool], revealing its silky innards.") target.brain_op_stage = 1 fail_step(mob/living/user, mob/living/carbon/slime/target, target_zone, obj/item/tool) diff --git a/icons/obj/hydroponics.dmi b/icons/obj/hydroponics.dmi index ba381b5bec4..ae4d61c053a 100644 Binary files a/icons/obj/hydroponics.dmi and b/icons/obj/hydroponics.dmi differ