diff --git a/code/ZAS/Controller.dm b/code/ZAS/Controller.dm index 922275bcc91..37935a0ceb4 100644 --- a/code/ZAS/Controller.dm +++ b/code/ZAS/Controller.dm @@ -109,13 +109,13 @@ Class Procs: simulated_turf_count++ S.update_air_properties() - admin_notice({"Geometry initialized in [round(0.1*(world.timeofday-start_time),0.1)] seconds. + admin_notice({"Geometry initialized in [round(0.1*(world.timeofday-start_time),0.1)] seconds. Total Simulated Turfs: [simulated_turf_count] Total Zones: [zones.len] Total Edges: [edges.len] Total Active Edges: [active_edges.len ? "[active_edges.len]" : "None"] -Total Unsimulated Turfs: [world.maxx*world.maxy*world.maxz - simulated_turf_count] +Total Unsimulated Turfs: [world.maxx*world.maxy*world.maxz - simulated_turf_count] "}, R_DEBUG) @@ -154,18 +154,18 @@ Total Unsimulated Turfs: [world.maxx*world.maxy*world.maxz - simulated_turf_coun #ifdef ZASDBG var/updated = 0 #endif - + //defer updating of self-zone-blocked turfs until after all other turfs have been updated. //this hopefully ensures that non-self-zone-blocked turfs adjacent to self-zone-blocked ones //have valid zones when the self-zone-blocked turfs update. var/list/deferred = list() - + for(var/turf/T in updating) //check if the turf is self-zone-blocked if(T.c_airblock(T) & ZONE_BLOCKED) deferred += T continue - + T.update_air_properties() T.post_update_air_properties() T.needs_air_update = 0 diff --git a/code/controllers/voting.dm b/code/controllers/voting.dm index 54f59204fb2..44309b83d95 100644 --- a/code/controllers/voting.dm +++ b/code/controllers/voting.dm @@ -289,7 +289,7 @@ datum/controller/vote else . += "

Vote: [capitalize(mode)]

" . += "Time Left: [time_remaining] s
" . += "" - if(capitalize(mode) == "Gamemode") .+= "" + if(capitalize(mode) == "Gamemode") .+= "" for(var/i = 1, i <= choices.len, i++) var/votes = choices[choices[i]] @@ -299,12 +299,12 @@ datum/controller/vote if(current_votes[C.ckey] == i) . += "" else - . += "" + . += "" else if(current_votes[C.ckey] == i) . += "" else - . += "" + . += "" if (additional_text.len >= i) . += additional_text[i] . += "" diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index 7e9fc0cd04e..75ffcba6e85 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -180,12 +180,12 @@ client body += "
[M.ckey ? M.ckey : "No ckey"] / [M.real_name ? M.real_name : "No real name"]" body += {"
- BRUTE:[M.getBruteLoss()] - FIRE:[M.getFireLoss()] - TOXIN:[M.getToxLoss()] - OXY:[M.getOxyLoss()] - CLONE:[M.getCloneLoss()] - BRAIN:[M.getBrainLoss()] + BRUTE:[M.getBruteLoss()] + FIRE:[M.getFireLoss()] + TOXIN:[M.getToxLoss()] + OXY:[M.getOxyLoss()] + CLONE:[M.getCloneLoss()] + BRAIN:[M.getBrainLoss()] @@ -866,7 +866,7 @@ client return new new_organ(M) - + else if(href_list["remorgan"]) if(!check_rights(R_SPAWN)) return diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 19cf48961e4..7e26f944560 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -314,7 +314,7 @@ if(I in organs.implants) qdel(I) break - H << "Your loyalty implant has been deactivated." + H << "Your loyalty implant has been deactivated." log_admin("[key_name_admin(usr)] has de-loyalty implanted [current].") if("add") H << "You somehow have become the recepient of a loyalty transplant, and it just activated!" diff --git a/code/game/antagonist/antagonist_objectives.dm b/code/game/antagonist/antagonist_objectives.dm index 432c3f6bbe8..3492c0494c5 100644 --- a/code/game/antagonist/antagonist_objectives.dm +++ b/code/game/antagonist/antagonist_objectives.dm @@ -24,9 +24,9 @@ if(!O.completed && !O.check_completion()) result = 0 if(result && victory_text) - world << "[victory_text]" + world << "[victory_text]" if(victory_feedback_tag) feedback_set_details("round_end_result","[victory_feedback_tag]") else if(loss_text) - world << "[loss_text]" + world << "[loss_text]" if(loss_feedback_tag) feedback_set_details("round_end_result","[loss_feedback_tag]") diff --git a/code/game/antagonist/antagonist_print.dm b/code/game/antagonist/antagonist_print.dm index 76110e2b13d..d4a81bf303a 100644 --- a/code/game/antagonist/antagonist_print.dm +++ b/code/game/antagonist/antagonist_print.dm @@ -28,7 +28,7 @@ text += "
The [role_text] was successful!" if(global_objectives && global_objectives.len) - text += "
Their objectives were:" + text += "
Their objectives were:" var/num = 1 for(var/datum/objective/O in global_objectives) text += print_objective(O, num, 1) diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index 120ee88046c..1ac7d7baa6b 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -164,7 +164,7 @@ if(!M.client && M.mind) for(var/mob/dead/observer/ghost in player_list) if(ghost.mind == M.mind) - ghost << "Your corpse has been placed into a cloning scanner. Return to your body if you want to be resurrected/cloned! (Verbs -> Ghost -> Re-enter corpse)" + ghost << "Your corpse has been placed into a cloning scanner. Return to your body if you want to be resurrected/cloned! (Verbs -> Ghost -> Re-enter corpse)" break return diff --git a/code/game/gamemodes/changeling/modularchangling.dm b/code/game/gamemodes/changeling/modularchangling.dm index 5048977789a..abbe9cb9881 100644 --- a/code/game/gamemodes/changeling/modularchangling.dm +++ b/code/game/gamemodes/changeling/modularchangling.dm @@ -1,506 +1,506 @@ -// READ: Don't use the apostrophe in name or desc. Causes script errors. - -var/list/powers = typesof(/datum/power/changeling) - /datum/power/changeling //needed for the badmin verb for now -var/list/datum/power/changeling/powerinstances = list() - -/datum/power //Could be used by other antags too - var/name = "Power" - var/desc = "Placeholder" - var/helptext = "" - var/isVerb = 1 // Is it an active power, or passive? - var/verbpath // Path to a verb that contains the effects. - -/datum/power/changeling - var/allowduringlesserform = 0 - var/genomecost = 500000 // Cost for the changling to evolve this power. - -/datum/power/changeling/absorb_dna - name = "Absorb DNA" - desc = "Permits us to syphon the DNA from a human. They become one with us, and we become stronger." - genomecost = 0 - verbpath = /mob/proc/changeling_absorb_dna - -/datum/power/changeling/transform - name = "Transform" - desc = "We take on the apperance and voice of one we have absorbed." - genomecost = 0 - verbpath = /mob/proc/changeling_transform - -/datum/power/changeling/change_species - name = "Change Species" - desc = "We take on the apperance of a species that we have absorbed." - genomecost = 0 - verbpath = /mob/proc/changeling_change_species - -/datum/power/changeling/fakedeath - name = "Regenerative Stasis" - desc = "We become weakened to a death-like state, where we will rise again from death." - helptext = "Can be used before or after death. Duration varies greatly." - genomecost = 0 - allowduringlesserform = 1 - verbpath = /mob/proc/changeling_fakedeath - -// Hivemind - -/datum/power/changeling/hive_upload - name = "Hive Channel" - desc = "We can channel a DNA into the airwaves, allowing our fellow changelings to absorb it and transform into it as if they acquired the DNA themselves." - helptext = "Allows other changelings to absorb the DNA you channel from the airwaves. Will not help them towards their absorb objectives." - genomecost = 0 - verbpath = /mob/proc/changeling_hiveupload - -/datum/power/changeling/hive_download - name = "Hive Absorb" - desc = "We can absorb a single DNA from the airwaves, allowing us to use more disguises with help from our fellow changelings." - helptext = "Allows you to absorb a single DNA and use it. Does not count towards your absorb objective." - genomecost = 0 - verbpath = /mob/proc/changeling_hivedownload - -/datum/power/changeling/lesser_form - name = "Lesser Form" - desc = "We debase ourselves and become lesser. We become a monkey." - genomecost = 4 - verbpath = /mob/proc/changeling_lesser_form - -/datum/power/changeling/deaf_sting - name = "Deaf Sting" - desc = "We silently sting a human, completely deafening them for a short time." - genomecost = 1 - allowduringlesserform = 1 - verbpath = /mob/proc/changeling_deaf_sting - -/datum/power/changeling/blind_sting - name = "Blind Sting" - desc = "We silently sting a human, completely blinding them for a short time." - genomecost = 2 - allowduringlesserform = 1 - verbpath = /mob/proc/changeling_blind_sting - -/datum/power/changeling/silence_sting - name = "Silence Sting" - desc = "We silently sting a human, completely silencing them for a short time." - helptext = "Does not provide a warning to a victim that they have been stung, until they try to speak and cannot." - genomecost = 3 - allowduringlesserform = 1 - verbpath = /mob/proc/changeling_silence_sting - -/datum/power/changeling/mimicvoice - name = "Mimic Voice" - desc = "We shape our vocal glands to sound like a desired voice." - helptext = "Will turn your voice into the name that you enter. We must constantly expend chemicals to maintain our form like this" - genomecost = 1 - verbpath = /mob/proc/changeling_mimicvoice - -/datum/power/changeling/extractdna - name = "Extract DNA" - desc = "We stealthily sting a target and extract the DNA from them." - helptext = "Will give you the DNA of your target, allowing you to transform into them. Does not count towards absorb objectives." - genomecost = 2 - allowduringlesserform = 1 - verbpath = /mob/proc/changeling_extract_dna_sting - -/datum/power/changeling/transformation_sting - name = "Transformation Sting" - desc = "We silently sting a human, injecting a retrovirus that forces them to transform into another." - helptext = "Does not provide a warning to others. The victim will transform much like a changeling would." - genomecost = 3 - verbpath = /mob/proc/changeling_transformation_sting - -/datum/power/changeling/paralysis_sting - name = "Paralysis Sting" - desc = "We silently sting a human, paralyzing them for a short time." - genomecost = 8 - verbpath = /mob/proc/changeling_paralysis_sting - -/datum/power/changeling/LSDSting - name = "Hallucination Sting" - desc = "We evolve the ability to sting a target with a powerful hallunicationary chemical." - helptext = "The target does not notice they have been stung. The effect occurs after 30 to 60 seconds." - genomecost = 3 - verbpath = /mob/proc/changeling_lsdsting - -/datum/power/changeling/DeathSting - name = "Death Sting" - desc = "We silently sting a human, filling him with potent chemicals. His rapid death is all but assured." - genomecost = 10 - verbpath = /mob/proc/changeling_DEATHsting - -///datum/power/changeling/unfat_sting -// name = "Unfat Sting" -// desc = "We silently sting a human, forcing them to rapidly metabolize their fat." -// genomecost = 1 -// verbpath = /mob/proc/changeling_unfat_sting - -/datum/power/changeling/boost_range - name = "Boost Range" - desc = "We evolve the ability to shoot our stingers at humans, with some preperation." - genomecost = 2 - allowduringlesserform = 1 - verbpath = /mob/proc/changeling_boost_range - -/datum/power/changeling/Epinephrine - name = "Epinephrine sacs" - desc = "We evolve additional sacs of adrenaline throughout our body." - helptext = "Gives the ability to instantly recover from stuns. High chemical cost." - genomecost = 3 - verbpath = /mob/proc/changeling_unstun - -/datum/power/changeling/ChemicalSynth - name = "Rapid Chemical-Synthesis" - desc = "We evolve new pathways for producing our necessary chemicals, permitting us to naturally create them faster." - helptext = "Doubles the rate at which we naturally recharge chemicals." - genomecost = 4 - isVerb = 0 - verbpath = /mob/proc/changeling_fastchemical -/* -/datum/power/changeling/AdvChemicalSynth - name = "Advanced Chemical-Synthesis" - desc = "We evolve new pathways for producing our necessary chemicals, permitting us to naturally create them faster." - helptext = "Doubles the rate at which we naturally recharge chemicals." - genomecost = 8 - isVerb = 0 - verbpath = /mob/proc/changeling_fastchemical -*/ -/datum/power/changeling/EngorgedGlands - name = "Engorged Chemical Glands" - desc = "Our chemical glands swell, permitting us to store more chemicals inside of them." - helptext = "Allows us to store an extra 25 units of chemicals." - genomecost = 4 - isVerb = 0 - verbpath = /mob/proc/changeling_engorgedglands - -/datum/power/changeling/DigitalCamoflague - name = "Digital Camoflauge" - desc = "We evolve the ability to distort our form and proprtions, defeating common altgorthms used to detect lifeforms on cameras." - helptext = "We cannot be tracked by camera while using this skill. However, humans looking at us will find us.. uncanny. We must constantly expend chemicals to maintain our form like this." - genomecost = 1 - allowduringlesserform = 1 - verbpath = /mob/proc/changeling_digitalcamo - -/datum/power/changeling/rapidregeneration - name = "Rapid Regeneration" - desc = "We evolve the ability to rapidly regenerate, negating the need for stasis." - helptext = "Heals a moderate amount of damage every tick." - genomecost = 7 - verbpath = /mob/proc/changeling_rapidregen - - - -// Modularchangling, totally stolen from the new player panel. YAYY -/datum/changeling/proc/EvolutionMenu()//The new one - set category = "Changeling" - set desc = "Level up!" - - if(!usr || !usr.mind || !usr.mind.changeling) return - src = usr.mind.changeling - - if(!powerinstances.len) - for(var/P in powers) - powerinstances += new P() - - var/dat = "Changling Evolution Menu" - - //javascript, the part that does most of the work~ - dat += {" - - - - - - - "} - - //body tag start + onload and onkeypress (onkeyup) javascript event calls - dat += "" - - //title + search bar - dat += {" - -
ChoicesVotesMinimum Players
Minimum Players
[gamemode_names[choices[i]]][votes][gamemode_names[choices[i]]][votes][gamemode_names[choices[i]]][votes][choices[i]][votes][choices[i]][votes][choices[i]][votes]
- - - - - - -
- Changling Evolution Menu
- Hover over a power to see more information
- Current evolution points left to evolve with: [geneticpoints]
- Absorb genomes to acquire more evolution points -

-

- Search: -
- - "} - - //player table header - dat += {" - - "} - - var/i = 1 - for(var/datum/power/changeling/P in powerinstances) - var/ownsthis = 0 - - if(P in purchasedpowers) - ownsthis = 1 - - - var/color = "#e6e6e6" - if(i%2 == 0) - color = "#f2f2f2" - - - dat += {" - - - - - - "} - - i++ - - - //player table ending - dat += {" -
- - - Evolve [P] - Cost: [ownsthis ? "Purchased" : P.genomecost] - -
-
-
- - - - "} - - usr << browse(dat, "window=powers;size=900x480") - - -/datum/changeling/Topic(href, href_list) - ..() - if(!ismob(usr)) - return - - if(href_list["P"]) - var/datum/mind/M = usr.mind - if(!istype(M)) - return - purchasePower(M, href_list["P"]) - call(/datum/changeling/proc/EvolutionMenu)() - - - -/datum/changeling/proc/purchasePower(var/datum/mind/M, var/Pname, var/remake_verbs = 1) - if(!M || !M.changeling) - return - - var/datum/power/changeling/Thepower = Pname - - - for (var/datum/power/changeling/P in powerinstances) - //world << "[P] - [Pname] = [P.name == Pname ? "True" : "False"]" - if(P.name == Pname) - Thepower = P - break - - - if(Thepower == null) - M.current << "This is awkward. Changeling power purchase failed, please report this bug to a coder!" - return - - if(Thepower in purchasedpowers) - M.current << "We have already evolved this ability!" - return - - - if(geneticpoints < Thepower.genomecost) - M.current << "We cannot evolve this... yet. We must acquire more DNA." - return - - geneticpoints -= Thepower.genomecost - - purchasedpowers += Thepower - - if(!Thepower.isVerb && Thepower.verbpath) - call(M.current, Thepower.verbpath)() - else if(remake_verbs) - M.current.make_changeling() - +// READ: Don't use the apostrophe in name or desc. Causes script errors. + +var/list/powers = typesof(/datum/power/changeling) - /datum/power/changeling //needed for the badmin verb for now +var/list/datum/power/changeling/powerinstances = list() + +/datum/power //Could be used by other antags too + var/name = "Power" + var/desc = "Placeholder" + var/helptext = "" + var/isVerb = 1 // Is it an active power, or passive? + var/verbpath // Path to a verb that contains the effects. + +/datum/power/changeling + var/allowduringlesserform = 0 + var/genomecost = 500000 // Cost for the changling to evolve this power. + +/datum/power/changeling/absorb_dna + name = "Absorb DNA" + desc = "Permits us to syphon the DNA from a human. They become one with us, and we become stronger." + genomecost = 0 + verbpath = /mob/proc/changeling_absorb_dna + +/datum/power/changeling/transform + name = "Transform" + desc = "We take on the apperance and voice of one we have absorbed." + genomecost = 0 + verbpath = /mob/proc/changeling_transform + +/datum/power/changeling/change_species + name = "Change Species" + desc = "We take on the apperance of a species that we have absorbed." + genomecost = 0 + verbpath = /mob/proc/changeling_change_species + +/datum/power/changeling/fakedeath + name = "Regenerative Stasis" + desc = "We become weakened to a death-like state, where we will rise again from death." + helptext = "Can be used before or after death. Duration varies greatly." + genomecost = 0 + allowduringlesserform = 1 + verbpath = /mob/proc/changeling_fakedeath + +// Hivemind + +/datum/power/changeling/hive_upload + name = "Hive Channel" + desc = "We can channel a DNA into the airwaves, allowing our fellow changelings to absorb it and transform into it as if they acquired the DNA themselves." + helptext = "Allows other changelings to absorb the DNA you channel from the airwaves. Will not help them towards their absorb objectives." + genomecost = 0 + verbpath = /mob/proc/changeling_hiveupload + +/datum/power/changeling/hive_download + name = "Hive Absorb" + desc = "We can absorb a single DNA from the airwaves, allowing us to use more disguises with help from our fellow changelings." + helptext = "Allows you to absorb a single DNA and use it. Does not count towards your absorb objective." + genomecost = 0 + verbpath = /mob/proc/changeling_hivedownload + +/datum/power/changeling/lesser_form + name = "Lesser Form" + desc = "We debase ourselves and become lesser. We become a monkey." + genomecost = 4 + verbpath = /mob/proc/changeling_lesser_form + +/datum/power/changeling/deaf_sting + name = "Deaf Sting" + desc = "We silently sting a human, completely deafening them for a short time." + genomecost = 1 + allowduringlesserform = 1 + verbpath = /mob/proc/changeling_deaf_sting + +/datum/power/changeling/blind_sting + name = "Blind Sting" + desc = "We silently sting a human, completely blinding them for a short time." + genomecost = 2 + allowduringlesserform = 1 + verbpath = /mob/proc/changeling_blind_sting + +/datum/power/changeling/silence_sting + name = "Silence Sting" + desc = "We silently sting a human, completely silencing them for a short time." + helptext = "Does not provide a warning to a victim that they have been stung, until they try to speak and cannot." + genomecost = 3 + allowduringlesserform = 1 + verbpath = /mob/proc/changeling_silence_sting + +/datum/power/changeling/mimicvoice + name = "Mimic Voice" + desc = "We shape our vocal glands to sound like a desired voice." + helptext = "Will turn your voice into the name that you enter. We must constantly expend chemicals to maintain our form like this" + genomecost = 1 + verbpath = /mob/proc/changeling_mimicvoice + +/datum/power/changeling/extractdna + name = "Extract DNA" + desc = "We stealthily sting a target and extract the DNA from them." + helptext = "Will give you the DNA of your target, allowing you to transform into them. Does not count towards absorb objectives." + genomecost = 2 + allowduringlesserform = 1 + verbpath = /mob/proc/changeling_extract_dna_sting + +/datum/power/changeling/transformation_sting + name = "Transformation Sting" + desc = "We silently sting a human, injecting a retrovirus that forces them to transform into another." + helptext = "Does not provide a warning to others. The victim will transform much like a changeling would." + genomecost = 3 + verbpath = /mob/proc/changeling_transformation_sting + +/datum/power/changeling/paralysis_sting + name = "Paralysis Sting" + desc = "We silently sting a human, paralyzing them for a short time." + genomecost = 8 + verbpath = /mob/proc/changeling_paralysis_sting + +/datum/power/changeling/LSDSting + name = "Hallucination Sting" + desc = "We evolve the ability to sting a target with a powerful hallunicationary chemical." + helptext = "The target does not notice they have been stung. The effect occurs after 30 to 60 seconds." + genomecost = 3 + verbpath = /mob/proc/changeling_lsdsting + +/datum/power/changeling/DeathSting + name = "Death Sting" + desc = "We silently sting a human, filling him with potent chemicals. His rapid death is all but assured." + genomecost = 10 + verbpath = /mob/proc/changeling_DEATHsting + +///datum/power/changeling/unfat_sting +// name = "Unfat Sting" +// desc = "We silently sting a human, forcing them to rapidly metabolize their fat." +// genomecost = 1 +// verbpath = /mob/proc/changeling_unfat_sting + +/datum/power/changeling/boost_range + name = "Boost Range" + desc = "We evolve the ability to shoot our stingers at humans, with some preperation." + genomecost = 2 + allowduringlesserform = 1 + verbpath = /mob/proc/changeling_boost_range + +/datum/power/changeling/Epinephrine + name = "Epinephrine sacs" + desc = "We evolve additional sacs of adrenaline throughout our body." + helptext = "Gives the ability to instantly recover from stuns. High chemical cost." + genomecost = 3 + verbpath = /mob/proc/changeling_unstun + +/datum/power/changeling/ChemicalSynth + name = "Rapid Chemical-Synthesis" + desc = "We evolve new pathways for producing our necessary chemicals, permitting us to naturally create them faster." + helptext = "Doubles the rate at which we naturally recharge chemicals." + genomecost = 4 + isVerb = 0 + verbpath = /mob/proc/changeling_fastchemical +/* +/datum/power/changeling/AdvChemicalSynth + name = "Advanced Chemical-Synthesis" + desc = "We evolve new pathways for producing our necessary chemicals, permitting us to naturally create them faster." + helptext = "Doubles the rate at which we naturally recharge chemicals." + genomecost = 8 + isVerb = 0 + verbpath = /mob/proc/changeling_fastchemical +*/ +/datum/power/changeling/EngorgedGlands + name = "Engorged Chemical Glands" + desc = "Our chemical glands swell, permitting us to store more chemicals inside of them." + helptext = "Allows us to store an extra 25 units of chemicals." + genomecost = 4 + isVerb = 0 + verbpath = /mob/proc/changeling_engorgedglands + +/datum/power/changeling/DigitalCamoflague + name = "Digital Camoflauge" + desc = "We evolve the ability to distort our form and proprtions, defeating common altgorthms used to detect lifeforms on cameras." + helptext = "We cannot be tracked by camera while using this skill. However, humans looking at us will find us.. uncanny. We must constantly expend chemicals to maintain our form like this." + genomecost = 1 + allowduringlesserform = 1 + verbpath = /mob/proc/changeling_digitalcamo + +/datum/power/changeling/rapidregeneration + name = "Rapid Regeneration" + desc = "We evolve the ability to rapidly regenerate, negating the need for stasis." + helptext = "Heals a moderate amount of damage every tick." + genomecost = 7 + verbpath = /mob/proc/changeling_rapidregen + + + +// Modularchangling, totally stolen from the new player panel. YAYY +/datum/changeling/proc/EvolutionMenu()//The new one + set category = "Changeling" + set desc = "Level up!" + + if(!usr || !usr.mind || !usr.mind.changeling) return + src = usr.mind.changeling + + if(!powerinstances.len) + for(var/P in powers) + powerinstances += new P() + + var/dat = "Changling Evolution Menu" + + //javascript, the part that does most of the work~ + dat += {" + + + + + + + "} + + //body tag start + onload and onkeypress (onkeyup) javascript event calls + dat += "" + + //title + search bar + dat += {" + + + + + + + + +
+ Changling Evolution Menu
+ Hover over a power to see more information
+ Current evolution points left to evolve with: [geneticpoints]
+ Absorb genomes to acquire more evolution points +

+

+ Search: +
+ + "} + + //player table header + dat += {" + + "} + + var/i = 1 + for(var/datum/power/changeling/P in powerinstances) + var/ownsthis = 0 + + if(P in purchasedpowers) + ownsthis = 1 + + + var/color = "#e6e6e6" + if(i%2 == 0) + color = "#f2f2f2" + + + dat += {" + + + + + + "} + + i++ + + + //player table ending + dat += {" +
+ + + Evolve [P] - Cost: [ownsthis ? "Purchased" : P.genomecost] + +
+
+
+ + + + "} + + usr << browse(dat, "window=powers;size=900x480") + + +/datum/changeling/Topic(href, href_list) + ..() + if(!ismob(usr)) + return + + if(href_list["P"]) + var/datum/mind/M = usr.mind + if(!istype(M)) + return + purchasePower(M, href_list["P"]) + call(/datum/changeling/proc/EvolutionMenu)() + + + +/datum/changeling/proc/purchasePower(var/datum/mind/M, var/Pname, var/remake_verbs = 1) + if(!M || !M.changeling) + return + + var/datum/power/changeling/Thepower = Pname + + + for (var/datum/power/changeling/P in powerinstances) + //world << "[P] - [Pname] = [P.name == Pname ? "True" : "False"]" + if(P.name == Pname) + Thepower = P + break + + + if(Thepower == null) + M.current << "This is awkward. Changeling power purchase failed, please report this bug to a coder!" + return + + if(Thepower in purchasedpowers) + M.current << "We have already evolved this ability!" + return + + + if(geneticpoints < Thepower.genomecost) + M.current << "We cannot evolve this... yet. We must acquire more DNA." + return + + geneticpoints -= Thepower.genomecost + + purchasedpowers += Thepower + + if(!Thepower.isVerb && Thepower.verbpath) + call(M.current, Thepower.verbpath)() + else if(remake_verbs) + M.current.make_changeling() + diff --git a/code/game/gamemodes/epidemic/epidemic.dm b/code/game/gamemodes/epidemic/epidemic.dm index c7a3851529e..4f98bbcc2bb 100644 --- a/code/game/gamemodes/epidemic/epidemic.dm +++ b/code/game/gamemodes/epidemic/epidemic.dm @@ -34,7 +34,7 @@ ///////////////////////////////////////////////////////// /datum/game_mode/epidemic/send_intercept() - var/intercepttext = "CONFIDENTIAL REPORT
" + var/intercepttext = "CONFIDENTIAL REPORT
" virus_name = "X-[rand(1,99)]™" intercepttext += "Warning: Pathogen [virus_name] has been detected on [station_name()].

" intercepttext += "Code violet quarantine of [station_name()] put under immediate effect.
" @@ -64,7 +64,7 @@ M << "[extra_law]" /datum/game_mode/epidemic/proc/announce_to_kill_crew() - var/intercepttext = "CONFIDENTIAL REPORT
" + var/intercepttext = "CONFIDENTIAL REPORT
" intercepttext += "PATHOGEN [virus_name] IS STILL PRESENT ON [station_name()]. IN COMPLIANCE WITH NANOTRASEN LAWS FOR INTERSTELLAR SAFETY, EMERGENCY SAFETY MEASURES HAVE BEEN AUTHORIZED. ALL INFECTED CREW MEMBERS ON [station_name()] ARE TO BE NEUTRALIZED AND DISPOSED OF IN A MANNER THAT WILL DESTROY ALL TRACES OF THE PATHOGEN. FAILURE TO COMPLY WILL RESULT IN IMMEDIATE DESTRUCTION OF [station_name].
" intercepttext += "CRUISER WILL ARRIVE IN [round(cruiser_seconds()/60)] MINUTES
" diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 9ae0320b679..6cca12d77fd 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -323,10 +323,10 @@ var/global/list/additional_antag_types = list() var/text = "" if(surviving_total > 0) - text += "
There [surviving_total>1 ? "were [surviving_total] survivors" : "was one survivor"]
" - text += " ([escaped_total>0 ? escaped_total : "none"] [emergency_shuttle.evac ? "escaped" : "transferred"]) and [ghosts] ghosts.

" + text += "
There [surviving_total>1 ? "were [surviving_total] survivors" : "was one survivor"]" + text += " ([escaped_total>0 ? escaped_total : "none"] [emergency_shuttle.evac ? "escaped" : "transferred"]) and [ghosts] ghosts.
" else - text += "There were no survivors ([ghosts] ghosts)." + text += "There were no survivors ([ghosts] ghosts)." world << text if(clients > 0) diff --git a/code/game/gamemodes/sandbox/h_sandbox.dm b/code/game/gamemodes/sandbox/h_sandbox.dm index ad2abb22360..df75722aeb6 100644 --- a/code/game/gamemodes/sandbox/h_sandbox.dm +++ b/code/game/gamemodes/sandbox/h_sandbox.dm @@ -105,7 +105,7 @@ datum/hSB hsb.req_access += A hsb.loc = usr.loc - usr << "Sandbox: Created an airlock." + usr << "Sandbox: Created an airlock." if("hsbcanister") var/list/hsbcanisters = typesof(/obj/machinery/portable_atmospherics/canister/) - /obj/machinery/portable_atmospherics/canister/ var/hsbcanister = input(usr, "Choose a canister to spawn.", "Sandbox:") in hsbcanisters + "Cancel" diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 35b1a153970..af13cc1ed08 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -71,14 +71,14 @@ if(2) t1 = "*dead*" else - dat += text("[]\tHealth %: [] ([])

", (occupant.health > 50 ? "" : ""), occupant.health, t1) + dat += text("[]\tHealth %: [] ([])
", (""), occupant.health, t1) if(iscarbon(occupant)) var/mob/living/carbon/C = occupant - dat += text("[]\t-Pulse, bpm: []
", (C.pulse == PULSE_NONE || C.pulse == PULSE_THREADY ? "" : ""), C.get_pulse(GETPULSE_TOOL)) - dat += text("[]\t-Brute Damage %: []
", (occupant.getBruteLoss() < 60 ? "" : ""), occupant.getBruteLoss()) - dat += text("[]\t-Respiratory Damage %: []
", (occupant.getOxyLoss() < 60 ? "" : ""), occupant.getOxyLoss()) - dat += text("[]\t-Toxin Content %: []
", (occupant.getToxLoss() < 60 ? "" : ""), occupant.getToxLoss()) - dat += text("[]\t-Burn Severity %: []
", (occupant.getFireLoss() < 60 ? "" : ""), occupant.getFireLoss()) + dat += text("[]\t-Pulse, bpm: []
", (""), C.get_pulse(GETPULSE_TOOL)) + dat += text("[]\t-Brute Damage %: []
", (""), occupant.getBruteLoss()) + dat += text("[]\t-Respiratory Damage %: []
", (""), occupant.getOxyLoss()) + dat += text("[]\t-Toxin Content %: []
", (""), occupant.getToxLoss()) + dat += text("[]\t-Burn Severity %: []
", (""), occupant.getFireLoss()) dat += text("
Paralysis Summary %: [] ([] seconds left!)
", occupant.paralysis, round(occupant.paralysis / 4)) if(occupant.reagents) for(var/chemical in connected.available_chemicals) diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 855e32a0a16..f3ce2f85bd7 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -236,7 +236,7 @@ dat = format_occupant_data(src.connected.get_occupant_data()) dat += "
Print
" else - dat = " Error: No Body Scanner connected." + dat = "Error: No Body Scanner connected." dat += text("
Close", user) user << browse(dat, "window=scanconsole;size=430x600") @@ -309,30 +309,30 @@ aux = "Unconscious" else aux = "Dead" - dat += text("[]\tHealth %: [] ([])

", (occ["health"] > 50 ? "" : ""), occ["health"], aux) + dat += text("[]\tHealth %: [] ([])
", ("Viral pathogen detected in blood stream.
" - dat += text("[]\t-Brute Damage %: []

", (occ["bruteloss"] < 60 ? "" : ""), occ["bruteloss"]) - dat += text("[]\t-Respiratory Damage %: []
", (occ["oxyloss"] < 60 ? "" : ""), occ["oxyloss"]) - dat += text("[]\t-Toxin Content %: []
", (occ["toxloss"] < 60 ? "" : ""), occ["toxloss"]) - dat += text("[]\t-Burn Severity %: []

", (occ["fireloss"] < 60 ? "" : ""), occ["fireloss"]) + dat += text("[]\t-Brute Damage %: []
", (""), occ["bruteloss"]) + dat += text("[]\t-Respiratory Damage %: []
", (""), occ["oxyloss"]) + dat += text("[]\t-Toxin Content %: []
", (""), occ["toxloss"]) + dat += text("[]\t-Burn Severity %: []

", (""), occ["fireloss"]) - dat += text("[]\tRadiation Level %: []
", (occ["rads"] < 10 ?"" : ""), occ["rads"]) - dat += text("[]\tGenetic Tissue Damage %: []
", (occ["cloneloss"] < 1 ?"" : ""), occ["cloneloss"]) - dat += text("[]\tApprox. Brain Damage %: []
", (occ["brainloss"] < 1 ?"" : ""), occ["brainloss"]) + dat += text("[]\tRadiation Level %: []
", (""), occ["rads"]) + dat += text("[]\tGenetic Tissue Damage %: []
", (""), occ["cloneloss"]) + dat += text("[]\tApprox. Brain Damage %: []
", (""), occ["brainloss"]) dat += text("Paralysis Summary %: [] ([] seconds left!)
", occ["paralysis"], round(occ["paralysis"] / 4)) dat += text("Body Temperature: [occ["bodytemp"]-T0C]°C ([occ["bodytemp"]*1.8-459.67]°F)

") if(occ["borer_present"]) dat += "Large growth detected in frontal lobe, possibly cancerous. Surgical removal is recommended.
" - dat += text("[]\tBlood Level %: [] ([] units)

", (occ["blood_amount"] > 448 ?"" : ""), occ["blood_amount"]*100 / 560, occ["blood_amount"]) + dat += text("[]\tBlood Level %: [] ([] units)
", (""), occ["blood_amount"]*100 / 560, occ["blood_amount"]) dat += text("Inaprovaline: [] units
", occ["inaprovaline_amount"]) dat += text("Soporific: [] units
", occ["stoxin_amount"]) - dat += text("[]\tDermaline: [] units

", (occ["dermaline_amount"] < 30 ? "" : ""), occ["dermaline_amount"]) - dat += text("[]\tBicaridine: [] units
", (occ["bicaridine_amount"] < 30 ? "" : ""), occ["bicaridine_amount"]) - dat += text("[]\tDexalin: [] units
", (occ["dexalin_amount"] < 30 ? "" : ""), occ["dexalin_amount"]) + dat += text("[]\tDermaline: [] units
", (""), occ["dermaline_amount"]) + dat += text("[]\tBicaridine: [] units
", (""), occ["bicaridine_amount"]) + dat += text("[]\tDexalin: [] units
", (""), occ["dexalin_amount"]) for(var/datum/disease/D in occ["tg_diseases_list"]) if(!D.hidden[SCANNER]) diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 95e043db28b..faf8ed713d2 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -1034,7 +1034,7 @@ FIRE ALARM d2 = text("Initiate Time Lock", src) var/second = round(src.time) % 60 var/minute = (round(src.time) - second) / 60 - var/dat = "Fire alarm [d1]\n
The current alert level is: [get_security_level()]


\nTimer System: [d2]
\nTime Left: [(minute ? "[minute]:" : null)][second] - - + +\n
" + var/dat = "Fire alarm [d1]\n
The current alert level is: [get_security_level()]

\nTimer System: [d2]
\nTime Left: [(minute ? "[minute]:" : null)][second] - - + +\n
" user << browse(dat, "window=firealarm") onclose(user, "firealarm") else diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index f5798737018..da62da6f177 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -33,7 +33,7 @@ /obj/item/toy/prize/odysseus = 1, /obj/item/toy/prize/phazon = 1, /obj/item/toy/waterflower = 1, - /obj/random/action_figure = 1, + /obj/random/action_figure = 1, /obj/random/plushie = 1, /obj/item/toy/cultsword = 1 ) @@ -69,10 +69,11 @@ dat += "

[src.temp]

" dat += "
Health: [src.player_hp] | Magic: [src.player_mp] | Enemy Health: [src.enemy_hp]
" + dat += "
" if (src.gameover) - dat += "
New Game" + dat += "New Game" else - dat += "
Attack | " + dat += "Attack | " dat += "Heal | " dat += "Recharge Power" diff --git a/code/game/machinery/computer/lockdown.dm b/code/game/machinery/computer/lockdown.dm deleted file mode 100644 index fd702e55106..00000000000 --- a/code/game/machinery/computer/lockdown.dm +++ /dev/null @@ -1,153 +0,0 @@ -//this computer displays status and remotely activates multiple shutters / blast doors -//todo: lock / electrify specified area doors? might be a bit gamebreaking - -/obj/machinery/computer/lockdown - //for reference - /*name = "lockdown control" - desc = "Used to control blast doors." - icon_state = "lockdown" - circuit = "/obj/item/weapon/circuitboard/lockdown" - var/connected_doors - var/department*/ - var/list/displayedNetworks - - New() - ..() - connected_doors = new/list() - displayedNetworks = new/list() - //only load blast doors for map-defined departments for the moment - //door networks are hardcoded here. - switch(department) - if("Engineering") - connected_doors.Add("Engineering") - //Antiqua Engineering - connected_doors.Add("Reactor core") - connected_doors.Add("Control Room") - connected_doors.Add("Vent Seal") - connected_doors.Add("Rig Storage") - connected_doors.Add("Fore Port Shutters") - connected_doors.Add("Fore Starboard Shutters") - connected_doors.Add("Electrical Storage Shutters") - connected_doors.Add("Locker Room Shutters") - connected_doors.Add("Breakroom Shutters") - connected_doors.Add("Observation Shutters") - //exodus engineering - if("Medbay") - //Exodus Medbay - connected_doors.Add("Genetics Outer Shutters") - connected_doors.Add("Genetics Inner Shutters") - connected_doors.Add("Chemistry Outer Shutters") - connected_doors.Add("Observation Shutters") - connected_doors.Add("Patient Room 1 Shutters") - connected_doors.Add("Patient Room 2 Shutters") - connected_doors.Add("Patient Room 3 Shutters") - - for(var/net in connected_doors) - connected_doors[net] = new/list() - - //loop through the world, grabbing all the relevant doors - spawn(1) - ConnectDoors() - - proc/ConnectDoors() - for(var/list/L in connected_doors) - for(var/item in L) - L.Remove(item) - // - for(var/obj/machinery/door/poddoor/D in world) - if(D.network in connected_doors) - var/list/L = connected_doors[D.network] - L.Add(D) - - attack_ai(mob/user) - attack_hand(user) - - attack_hand(mob/user) - add_fingerprint(user) - if(stat & (BROKEN|NOPOWER)) - return - - if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) ) - if (!istype(user, /mob/living/silicon)) - user.machine = null - user << browse(null, "window=lockdown") - return - - var/t = "Lockdown Control
" - t += "Refresh
" - t += "Close
" - t += "" - var/empty = 1 - for(var/curNetId in connected_doors) - var/list/L = connected_doors[curNetId] - if(!L || L.len == 0) - continue - empty = 0 - t += "" - if(curNetId in displayedNetworks) - t += "" - t += "" - t += "" - - for(var/obj/machinery/door/poddoor/D in connected_doors[curNetId]) - t += "" - t += "" - - if(istype(D,/obj/machinery/door/poddoor/shutters)) - t += "" - else - t += "" - t += "" - t += "" - else - t += "" - t += "
\[-\] " + curNetId + "Open all / Close all
[D.id]Shutter ([D.density ? "Closed" : "Open"])Blast door ([D.density ? "Closed" : "Open"])Toggle
\[+\] " + curNetId + "
" - if(empty) - t += "No networks connected.
" - t += "Refresh
" - t += "Close
" - user << browse(t, "window=lockdown;size=550x600") - onclose(user, "lockdown") - - Topic(href, href_list) - if(..()) return 1 - - if( href_list["close"] ) - usr << browse(null, "window=lockdown") - usr.machine = null - - if( href_list["show_net"] ) - displayedNetworks.Add(href_list["show_net"]) - updateDialog() - - if( href_list["hide_net"] ) - if(href_list["hide_net"] in displayedNetworks) - displayedNetworks.Remove(href_list["hide_net"]) - updateDialog() - - if( href_list["toggle_id"] ) - var/idTag = href_list["toggle_id"] - for(var/net in connected_doors) - for(var/obj/machinery/door/poddoor/D in connected_doors[net]) - if(D.id == idTag) - if(D.density) - D.open() - else - D.close() - break - - if( href_list["open_net"] ) - var/netTag = href_list["open_net"] - for(var/obj/machinery/door/poddoor/D in connected_doors[netTag]) - if(D.density) //for some reason, there's no var saying whether the door is open or not >.> - spawn(0) - D.open() - - if( href_list["close_net"] ) - var/netTag = href_list["close_net"] - for(var/obj/machinery/door/poddoor/D in connected_doors[netTag]) - if(!D.density) - spawn(0) - D.close() - - src.updateDialog() diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm index 779e2a14607..10a3b6f9e03 100644 --- a/code/game/machinery/computer/message.dm +++ b/code/game/machinery/computer/message.dm @@ -213,7 +213,7 @@ [customjob] [customrecepient ? customrecepient.owner : "NONE"] [custommessage]"} - dat += "
Send" + dat += "
Send
" //Request Console Logs if(4) diff --git a/code/game/machinery/computer3/computers/HolodeckControl.dm b/code/game/machinery/computer3/computers/HolodeckControl.dm index 99424b96859..fc781430c40 100644 --- a/code/game/machinery/computer3/computers/HolodeckControl.dm +++ b/code/game/machinery/computer3/computers/HolodeckControl.dm @@ -26,12 +26,12 @@ if(!interactable()) return var/dat = "

Current Loaded Programs

" - dat += "((Empty Court)
)
" - dat += "((Boxing Court)
)
" - dat += "((Basketball Court)
)
" - dat += "((Thunderdome Court)
)
" - dat += "((Beach)
)
" -// dat += "((Shutdown System)
)
" + dat += "((Empty Court))
" + dat += "((Boxing Court))
" + dat += "((Basketball Court))
" + dat += "((Thunderdome Court))
" + dat += "((Beach))
" +// dat += "((Shutdown System))
" dat += "Please ensure that only holographic weapons are used in the holodeck if a combat simulation has been loaded.
" diff --git a/code/game/machinery/computer3/computers/arcade.dm b/code/game/machinery/computer3/computers/arcade.dm index 746551079b5..33282ff1929 100644 --- a/code/game/machinery/computer3/computers/arcade.dm +++ b/code/game/machinery/computer3/computers/arcade.dm @@ -75,11 +75,12 @@ dat += "

[temp]

" dat += "
Health: [player_hp] | Magic: [player_mp] | Enemy Health: [enemy_hp]
" + dat += "
" if (gameover) - dat += "
[topic_link(src,"newgame","New Game")]" + dat += "[topic_link(src,"newgame","New Game")]" else - dat += "
[topic_link(src,"attack","Attack")] | [topic_link(src,"heal","Heal")] | [topic_link(src,"charge","Recharge Power")]" + dat += "[topic_link(src,"attack","Attack")] | [topic_link(src,"heal","Heal")] | [topic_link(src,"charge","Recharge Power")]" dat += "
" diff --git a/code/game/machinery/computer3/computers/card.dm b/code/game/machinery/computer3/computers/card.dm index 3633252a46f..a1a53ac7694 100644 --- a/code/game/machinery/computer3/computers/card.dm +++ b/code/game/machinery/computer3/computers/card.dm @@ -35,7 +35,7 @@ var jobs_all = "" jobs_all += "" - jobs_all += ""//Captain in special because he is head of heads ~Intercross21 + jobs_all += ""//Captain in special because he is head of heads ~Intercross21 jobs_all += "" jobs_all += "" diff --git a/code/game/machinery/computer3/computers/crew.dm b/code/game/machinery/computer3/computers/crew.dm index 836500a3440..2098d79f02a 100644 --- a/code/game/machinery/computer3/computers/crew.dm +++ b/code/game/machinery/computer3/computers/crew.dm @@ -50,7 +50,7 @@ for(var/log in logs) t += log t += "
Command
Special
SpecialCaptainCustom
" - t += "
" + t += "" popup.set_content(t) popup.open() diff --git a/code/game/machinery/computer3/computers/prisoner.dm b/code/game/machinery/computer3/computers/prisoner.dm index c1d7a664c66..0c7937d39a0 100644 --- a/code/game/machinery/computer3/computers/prisoner.dm +++ b/code/game/machinery/computer3/computers/prisoner.dm @@ -49,7 +49,7 @@ if(T.malfunction) loc_display = pick(teleportlocs) dat += "ID: [T.id] | Location: [loc_display]
" - dat += "(Send Message
) |
" + dat += "(Send Message) |
" dat += "********************************
" dat += "
Lock Console" diff --git a/code/game/machinery/computer3/lapvend.dm b/code/game/machinery/computer3/lapvend.dm index 0c038b6c877..be030b526a6 100644 --- a/code/game/machinery/computer3/lapvend.dm +++ b/code/game/machinery/computer3/lapvend.dm @@ -67,14 +67,14 @@ var/dat = "
[vendorname]


" //display the name, and added a horizontal rule if(vendmode == 0) dat += "
Please choose your laptop customization options

" - dat += "
Your comptuer will automatically be loaded with any programs you can use after the transaction is complete." + dat += "
Your comptuer will automatically be loaded with any programs you can use after the transaction is complete.
" dat += "
Some programs will require additional components to be installed!


" dat += "
HDD (Required) : Added

" - dat += "
Card Reader : Single (50) | Dual (125)
" - dat += "
Floppy Drive: Add (50)
" - dat += "
Radio Network card Add (50)
" - dat += "
Camera Card Add (100)
" - dat += "
Network card Area (75) Adjacent (50)Powernet (25)
" + dat += "
Card Reader : Single (50) | Dual (125)

" + dat += "
Floppy Drive: Add (50)

" + dat += "
Radio Network card Add (50)

" + dat += "
Camera Card Add (100)

" + dat += "
Network card Area (75) Adjacent (50)Powernet (25)

" dat += "
Power source upgrade
Extended (175) Unreal (250)" if(vendmode == 0 || vendmode == 1) diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index ff974fbe19d..adc8c99f6a8 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -417,7 +417,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co dat+="Channel messages listed below. If you deem them dangerous to the station, you can Bestow a D-Notice upon the channel.
" if(src.viewing_channel.censored) dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Nanotrasen D-Notice.
" - dat+="No further feed story additions are allowed while the D-Notice is in effect.

" + dat+="No further feed story additions are allowed while the D-Notice is in effect.

" else if( isemptylist(src.viewing_channel.messages) ) dat+="No feed messages found in channel...
" diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index ac561009b61..63f13ebf751 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -99,8 +99,8 @@ if(src.panelopen) //The maintenance panel is open. Time for some shady stuff dat+= "Suit storage unit: Maintenance panel" dat+= "Maintenance panel controls
" - dat+= "The panel is ridden with controls, button and meters, labeled in strange signs and symbols that
you cannot understand. Probably the manufactoring world's language.
Among other things, a few controls catch your eye.

" - dat+= text("A small dial with a small lambda symbol on it. It's pointing towards a gauge that reads [].
Turn towards []
",(src.issuperUV ? "15nm" : "185nm"),src,(src.issuperUV ? "185nm" : "15nm") ) + dat+= "The panel is ridden with controls, button and meters, labeled in strange signs and symbols that
you cannot understand. Probably the manufactoring world's language.
Among other things, a few controls catch your eye.


" + dat+= text("A small dial with a small lambda symbol on it. It's pointing towards a gauge that reads [].
Turn towards []
",(src.issuperUV ? "15nm" : "185nm"),src,(src.issuperUV ? "185nm" : "15nm") ) dat+= text("A thick old-style button, with 2 grimy LED lights next to it. The [] LED is on.
Press button",(src.safetieson? "GREEN" : "RED"),src) dat+= text("

Close panel", user) //user << browse(dat, "window=ssu_m_panel;size=400x500") @@ -116,7 +116,7 @@ if(!src.isbroken) dat+= "Suit storage unit" dat+= "U-Stor-It Suit Storage Unit, model DS1900
" - dat+= "Welcome to the Unit control panel.
" + dat+= "Welcome to the Unit control panel.

" dat+= text("Helmet storage compartment: []
",(src.HELMET ? HELMET.name : "
No helmet detected.") ) if(HELMET && src.isopen) dat+=text("Dispense helmet
",src) @@ -755,7 +755,7 @@ return ..() - + /obj/machinery/suit_cycler/emag_act(var/remaining_charges, var/mob/user) if(emagged) user << "The cycler has already been subverted." @@ -811,7 +811,7 @@ dat += "\[select power level\] \[begin decontamination cycle\]

" dat += "

Customisation

" - dat += "Target product: [target_department], [target_species]." + dat += "Target product: [target_department], [target_species]." dat += "
\[apply customisation routine\]


" if(panel_open) diff --git a/code/game/machinery/telecomms/logbrowser.dm b/code/game/machinery/telecomms/logbrowser.dm index 2f6165a7330..ae9a4d7b096 100644 --- a/code/game/machinery/telecomms/logbrowser.dm +++ b/code/game/machinery/telecomms/logbrowser.dm @@ -92,7 +92,7 @@ else if(C.input_type == "Execution Error") - dat += "
  • [C.name] \[X\]
    " + dat += "
  • [C.name] \[X\]
    " dat += "Output: \"[C.parameters["message"]]\"
    " dat += "

  • " @@ -135,7 +135,7 @@ if("scan") if(servers.len > 0) - temp = "- FAILED: CANNOT PROBE WHEN BUFFER FULL -" + temp = "- FAILED: CANNOT PROBE WHEN BUFFER FULL -" else for(var/obj/machinery/telecomms/server/T in range(25, src)) @@ -143,9 +143,9 @@ servers.Add(T) if(!servers.len) - temp = "- FAILED: UNABLE TO LOCATE SERVERS IN \[[network]\] -" + temp = "- FAILED: UNABLE TO LOCATE SERVERS IN \[[network]\] -" else - temp = "- [servers.len] SERVERS PROBED & BUFFERED -" + temp = "- [servers.len] SERVERS PROBED & BUFFERED -" screen = 0 @@ -159,13 +159,13 @@ var/datum/comm_log_entry/D = SelectedServer.log_entries[text2num(href_list["delete"])] - temp = "- DELETED ENTRY: [D.name] -" + temp = "- DELETED ENTRY: [D.name] -" SelectedServer.log_entries.Remove(D) qdel(D) else - temp = "- FAILED: NO SELECTED MACHINE -" + temp = "- FAILED: NO SELECTED MACHINE -" if(href_list["network"]) @@ -173,14 +173,14 @@ if(newnet && ((usr in range(1, src) || issilicon(usr)))) if(length(newnet) > 15) - temp = "- FAILED: NETWORK TAG STRING TOO LENGHTLY -" + temp = "- FAILED: NETWORK TAG STRING TOO LENGHTLY -" else network = newnet screen = 0 servers = list() - temp = "- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -" + temp = "- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -" updateUsrDialog() return diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm index 15c627420f7..2859083c9d6 100644 --- a/code/game/machinery/telecomms/machine_interactions.dm +++ b/code/game/machinery/telecomms/machine_interactions.dm @@ -231,7 +231,7 @@ /obj/machinery/telecomms/processor/Options_Topic(href, href_list) if(href_list["process"]) - temp = "-% Processing mode changed. %-" + temp = "-% Processing mode changed. %-" src.process_mode = !src.process_mode */ @@ -249,18 +249,18 @@ if(href_list["receive"]) receiving = !receiving - temp = "-% Receiving mode changed. %-" + temp = "-% Receiving mode changed. %-" if(href_list["broadcast"]) broadcasting = !broadcasting - temp = "-% Broadcasting mode changed. %-" + temp = "-% Broadcasting mode changed. %-" if(href_list["change_listening"]) //Lock to the station OR lock to the current position! //You need at least two receivers and two broadcasters for this to work, this includes the machine. var/result = toggle_level() if(result) - temp = "-% [src]'s signal has been successfully changed." + temp = "-% [src]'s signal has been successfully changed." else - temp = "-% [src] could not lock it's signal onto the station. Two broadcasters or receivers required." + temp = "-% [src] could not lock it's signal onto the station. Two broadcasters or receivers required." // BUS @@ -279,10 +279,10 @@ newfreq *= 10 // shift the decimal one place if(newfreq < 10000) change_frequency = newfreq - temp = "-% New frequency to change to assigned: \"[newfreq] GHz\" %-" + temp = "-% New frequency to change to assigned: \"[newfreq] GHz\" %-" else change_frequency = 0 - temp = "-% Frequency changing deactivated %-" + temp = "-% Frequency changing deactivated %-" /obj/machinery/telecomms/Topic(href, href_list) @@ -302,27 +302,27 @@ if("toggle") src.toggled = !src.toggled - temp = "-% [src] has been [src.toggled ? "activated" : "deactivated"]." + temp = "-% [src] has been [src.toggled ? "activated" : "deactivated"]." update_power() /* if("hide") src.hide = !hide - temp = "-% Shadow Link has been [src.hide ? "activated" : "deactivated"]." + temp = "-% Shadow Link has been [src.hide ? "activated" : "deactivated"]." */ if("id") var/newid = copytext(reject_bad_text(input(usr, "Specify the new ID for this machine", src, id) as null|text),1,MAX_MESSAGE_LEN) if(newid && canAccess(usr)) id = newid - temp = "-% New ID assigned: \"[id]\" %-" + temp = "-% New ID assigned: \"[id]\" %-" if("network") var/newnet = input(usr, "Specify the new network for this machine. This will break all current links.", src, network) as null|text if(newnet && canAccess(usr)) if(length(newnet) > 15) - temp = "-% Too many characters in new network tag %-" + temp = "-% Too many characters in new network tag %-" else for(var/obj/machinery/telecomms/T in links) @@ -330,7 +330,7 @@ network = newnet links = list() - temp = "-% New network tag assigned: \"[network]\" %-" + temp = "-% New network tag assigned: \"[network]\" %-" if("freq") @@ -340,21 +340,21 @@ newfreq *= 10 // shift the decimal one place if(!(newfreq in freq_listening) && newfreq < 10000) freq_listening.Add(newfreq) - temp = "-% New frequency filter assigned: \"[newfreq] GHz\" %-" + temp = "-% New frequency filter assigned: \"[newfreq] GHz\" %-" if(href_list["delete"]) // changed the layout about to workaround a pesky runtime -- Doohl var/x = text2num(href_list["delete"]) - temp = "-% Removed frequency filter [x] %-" + temp = "-% Removed frequency filter [x] %-" freq_listening.Remove(x) if(href_list["unlink"]) if(text2num(href_list["unlink"]) <= length(links)) var/obj/machinery/telecomms/T = links[text2num(href_list["unlink"])] - temp = "-% Removed \ref[T] [T.name] from linked entities. %-" + temp = "-% Removed \ref[T] [T.name] from linked entities. %-" // Remove link entries from both T and src. @@ -372,20 +372,20 @@ if(!(P.buffer in src.links)) src.links.Add(P.buffer) - temp = "-% Successfully linked with \ref[P.buffer] [P.buffer.name] %-" + temp = "-% Successfully linked with \ref[P.buffer] [P.buffer.name] %-" else - temp = "-% Unable to acquire buffer %-" + temp = "-% Unable to acquire buffer %-" if(href_list["buffer"]) P.buffer = src - temp = "-% Successfully stored \ref[P.buffer] [P.buffer.name] in buffer %-" + temp = "-% Successfully stored \ref[P.buffer] [P.buffer.name] in buffer %-" if(href_list["flush"]) - temp = "-% Buffer successfully flushed. %-" + temp = "-% Buffer successfully flushed. %-" P.buffer = null src.Options_Topic(href, href_list) diff --git a/code/game/machinery/telecomms/telemonitor.dm b/code/game/machinery/telecomms/telemonitor.dm index 7dd30dd8c3d..fbccf50687a 100644 --- a/code/game/machinery/telecomms/telemonitor.dm +++ b/code/game/machinery/telecomms/telemonitor.dm @@ -92,7 +92,7 @@ if("probe") if(machinelist.len > 0) - temp = "- FAILED: CANNOT PROBE WHEN BUFFER FULL -" + temp = "- FAILED: CANNOT PROBE WHEN BUFFER FULL -" else for(var/obj/machinery/telecomms/T in range(25, src)) @@ -100,9 +100,9 @@ machinelist.Add(T) if(!machinelist.len) - temp = "- FAILED: UNABLE TO LOCATE NETWORK ENTITIES IN \[[network]\] -" + temp = "- FAILED: UNABLE TO LOCATE NETWORK ENTITIES IN \[[network]\] -" else - temp = "- [machinelist.len] ENTITIES LOCATED & BUFFERED -" + temp = "- [machinelist.len] ENTITIES LOCATED & BUFFERED -" screen = 0 @@ -112,13 +112,13 @@ var/newnet = input(usr, "Which network do you want to view?", "Comm Monitor", network) as null|text if(newnet && ((usr in range(1, src) || issilicon(usr)))) if(length(newnet) > 15) - temp = "- FAILED: NETWORK TAG STRING TOO LENGHTLY -" + temp = "- FAILED: NETWORK TAG STRING TOO LENGHTLY -" else network = newnet screen = 0 machinelist = list() - temp = "- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -" + temp = "- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -" updateUsrDialog() return diff --git a/code/game/machinery/telecomms/traffic_control.dm b/code/game/machinery/telecomms/traffic_control.dm index 1123733103f..cf56d0af9dd 100644 --- a/code/game/machinery/telecomms/traffic_control.dm +++ b/code/game/machinery/telecomms/traffic_control.dm @@ -147,7 +147,7 @@ if("scan") if(servers.len > 0) - temp = "- FAILED: CANNOT PROBE WHEN BUFFER FULL -" + temp = "- FAILED: CANNOT PROBE WHEN BUFFER FULL -" else for(var/obj/machinery/telecomms/server/T in range(25, src)) @@ -155,9 +155,9 @@ servers.Add(T) if(!servers.len) - temp = "- FAILED: UNABLE TO LOCATE SERVERS IN \[[network]\] -" + temp = "- FAILED: UNABLE TO LOCATE SERVERS IN \[[network]\] -" else - temp = "- [servers.len] SERVERS PROBED & BUFFERED -" + temp = "- [servers.len] SERVERS PROBED & BUFFERED -" screen = 0 @@ -194,14 +194,14 @@ if(newnet && ((usr in range(1, src) || issilicon(usr)))) if(length(newnet) > 15) - temp = "- FAILED: NETWORK TAG STRING TOO LENGHTLY -" + temp = "- FAILED: NETWORK TAG STRING TOO LENGHTLY -" else network = newnet screen = 0 servers = list() - temp = "- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -" + temp = "- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -" updateUsrDialog() return diff --git a/code/game/mecha/combat/marauder.dm b/code/game/mecha/combat/marauder.dm index bf23e579f3f..5b456e09005 100644 --- a/code/game/mecha/combat/marauder.dm +++ b/code/game/mecha/combat/marauder.dm @@ -136,7 +136,7 @@ if(get_charge() > 0) thrusters = !thrusters src.log_message("Toggled thrusters.") - src.occupant_message("Thrusters [thrusters?"en":"dis"]abled.") + src.occupant_message("Thrusters [thrusters?"en":"dis"]abled.") return diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index 1c723c04ada..6d3d7cd1dfa 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -153,7 +153,7 @@ var/global/list/image/splatter_cache=list() /obj/effect/decal/cleanable/blood/writing/examine(mob/user) ..(user) - user << "It reads: \"[message]\"" + user << "It reads: \"[message]\"" /obj/effect/decal/cleanable/blood/gibs name = "gibs" diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index fbdb7667a1f..3b1056bfed2 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -1238,7 +1238,7 @@ var/global/list/obj/item/device/pda/PDAs = list() for(var/datum/disease/D in C.viruses) if(!D.hidden[SCANNER]) - user.show_message("Warning: [D.form] Detected
    \nName: [D.name].\nType: [D.spread].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure]") + user.show_message("Warning: [D.form] Detected\nName: [D.name].\nType: [D.spread].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure]") if(2) if (!istype(C:dna, /datum/dna)) diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index f7fa46678b0..3d04e91aeca 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -181,7 +181,7 @@
    "} - else + else //
    dat += "Radio Uplink
    " dat += "Radio firmware not loaded. Please install a pAI personality to load firmware.
    " dat += {" diff --git a/code/game/objects/items/devices/violin.dm b/code/game/objects/items/devices/violin.dm index e116689c9ad..2286f787145 100644 --- a/code/game/objects/items/devices/violin.dm +++ b/code/game/objects/items/devices/violin.dm @@ -271,7 +271,7 @@ Notes are played by the names of the note, and optionally, the accidental, and/or the octave number.
    By default, every note is natural and in octave 3. Defining otherwise is remembered for each note.
    Example: C,D,E,F,G,A,B will play a C major scale.
    - After a note has an accidental placed, it will be remembered: C,C4,C,C3 is C3,C4,C4,C3
    + After a note has an accidental placed, it will be remembered: C,C4,C,C3 is C3,C4,C4,C3
    Chords can be played simply by seperating each note with a hyphon: A-C#,Cn-E,E-G#,Gn-B
    A pause may be denoted by an empty chord: C,E,,C,G
    To make a chord be a different time, end it with /x, where the chord length will be length
    diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm index a9ee95db524..df1513bdc7e 100644 --- a/code/game/objects/items/weapons/manuals.dm +++ b/code/game/objects/items/weapons/manuals.dm @@ -373,7 +373,7 @@

    - Weyland-Yutani - Building Better Worlds + Weyland-Yutani - Building Better Worlds

    Autonomous Power Loader Unit \"Ripley\"

    Specifications:

    @@ -384,7 +384,7 @@
  • Height: 2.5m
  • Width: 1.8m
  • Top speed: 5km/hour
  • -
  • Operation in vacuum/hostile environment: Possible +
  • Operation in vacuum/hostile environment: Possible
  • Airtank volume: 500 liters
  • Devices:
      diff --git a/code/game/objects/items/weapons/swords_axes_etc.dm b/code/game/objects/items/weapons/swords_axes_etc.dm index 44be4473932..afbb502c23a 100644 --- a/code/game/objects/items/weapons/swords_axes_etc.dm +++ b/code/game/objects/items/weapons/swords_axes_etc.dm @@ -9,7 +9,7 @@ * Banhammer */ /obj/item/weapon/banhammer/attack(mob/M as mob, mob/user as mob) - M << " You have been banned FOR NO REISIN by [user]" + M << " You have been banned FOR NO REISIN by [user]" user << " You have BANNED [M]" /* diff --git a/code/game/objects/structures/musician.dm b/code/game/objects/structures/musician.dm index d4930acea7b..fa53637f880 100644 --- a/code/game/objects/structures/musician.dm +++ b/code/game/objects/structures/musician.dm @@ -291,7 +291,7 @@ Notes are played by the names of the note, and optionally, the accidental, and/or the octave number.
      By default, every note is natural and in octave 3. Defining otherwise is remembered for each note.
      Example: C,D,E,F,G,A,B will play a C major scale.
      - After a note has an accidental placed, it will be remembered: C,C4,C,C3 is C3,C4,C4,C3
      + After a note has an accidental placed, it will be remembered: C,C4,C,C3 is C3,C4,C4,C3
      Chords can be played simply by seperating each note with a hyphon: A-C#,Cn-E,E-G#,Gn-B
      A pause may be denoted by an empty chord: C,E,,C,G
      To make a chord be a different time, end it with /x, where the chord length will be length
      diff --git a/code/game/response_team.dm b/code/game/response_team.dm index 79a2cf1fdc5..da35f34c462 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -51,7 +51,7 @@ client/verb/JoinResponseTeam() usr << "No emergency response team is currently being sent." return if(jobban_isbanned(usr, "Syndicate") || jobban_isbanned(usr, "Emergency Response Team") || jobban_isbanned(usr, "Security Officer")) - usr << "You are jobbanned from the emergency reponse team!" + usr << "You are jobbanned from the emergency reponse team!" return if(ert.current_antagonists.len > 5) usr << "The emergency response team is already full!" diff --git a/code/modules/admin/DB ban/functions.dm b/code/modules/admin/DB ban/functions.dm index cc26d7153de..9a2d6192afb 100644 --- a/code/modules/admin/DB ban/functions.dm +++ b/code/modules/admin/DB ban/functions.dm @@ -430,9 +430,9 @@ datum/admins/proc/DB_ban_unban_by_id(var/id) if("TEMPBAN") typedesc = "TEMPBAN
      ([duration] minutes [(unbanned) ? "" : "(Edit))"]
      Expires [expiration]
      " if("JOB_PERMABAN") - typedesc = "JOBBAN
      ([job])" + typedesc = "JOBBAN
      ([job])" if("JOB_TEMPBAN") - typedesc = "TEMP JOBBAN
      ([job])
      ([duration] minutes
      Expires [expiration]" + typedesc = "TEMP JOBBAN
      ([job])
      ([duration] minutes
      Expires [expiration]
      " output += "" output += "[typedesc]" diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 447178ecb30..993b37454ff 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -58,7 +58,7 @@ proc/admin_notice(var/message, var/rights) TP - PM - SM - - [admin_jump_link(M, src)]\]

      + [admin_jump_link(M, src)]\]
      Mob type = [M.type]

      Kick | Warn | @@ -335,7 +335,7 @@ proc/admin_notice(var/message, var/rights) if(0) dat += {"Welcome to the admin newscaster.
      Here you can add, edit and censor every newspiece on the network.
      Feed channels and stories entered through here will be uneditable and handled as official news by the rest of the units. -
      Note that this panel allows full freedom over the news network, there are no constrictions except the few basic ones. Don't break things!
      +
      Note that this panel allows full freedom over the news network, there are no constrictions except the few basic ones. Don't break things! "} if(news_network.wanted_issue) dat+= "
      Read Wanted Issue" @@ -420,7 +420,7 @@ proc/admin_notice(var/message, var/rights) if(src.admincaster_feed_channel.censored) dat+={" ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Nanotrasen D-Notice.
      - No further feed story additions are allowed while the D-Notice is in effect.


      + No further feed story additions are allowed while the D-Notice is in effect.

      "} else if( isemptylist(src.admincaster_feed_channel.messages) ) @@ -487,7 +487,7 @@ proc/admin_notice(var/message, var/rights) if(src.admincaster_feed_channel.censored) dat+={" ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Nanotrasen D-Notice.
      - No further feed story additions are allowed while the D-Notice is in effect.


      + No further feed story additions are allowed while the D-Notice is in effect.

      "} else if( isemptylist(src.admincaster_feed_channel.messages) ) @@ -727,7 +727,7 @@ proc/admin_notice(var/message, var/rights) if(confirm == "Cancel") return if(confirm == "Yes") - world << "\red Restarting world! \blue Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key]!" + world << "Restarting world! Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key]!" log_admin("[key_name(usr)] initiated a reboot.") feedback_set_details("end_error","admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]") diff --git a/code/modules/admin/admin_report.dm b/code/modules/admin/admin_report.dm index b0f43741d02..c5cff737ee1 100644 --- a/code/modules/admin/admin_report.dm +++ b/code/modules/admin/admin_report.dm @@ -1,180 +1,180 @@ -// Reports are a way to notify admins of wrongdoings that happened -// while no admin was present. They work a bit similar to news, but -// they can only be read by admins and moderators. - -// a single admin report -datum/admin_report/var - ID // the ID of the report - body // the content of the report - author // key of the author - date // date on which this was created - done // whether this was handled - - offender_key // store the key of the offender - offender_cid // store the cid of the offender - -datum/report_topic_handler - Topic(href,href_list) - ..() - var/client/C = locate(href_list["client"]) - if(href_list["action"] == "show_reports") - C.display_admin_reports() - else if(href_list["action"] == "remove") - C.mark_report_done(text2num(href_list["ID"])) - else if(href_list["action"] == "edit") - C.edit_report(text2num(href_list["ID"])) - -var/datum/report_topic_handler/report_topic_handler - -world/New() - ..() - report_topic_handler = new - -// add a new news datums -proc/make_report(body, author, okey, cid) - var/savefile/Reports = new("data/reports.sav") - var/list/reports - var/lastID - - Reports["reports"] >> reports - Reports["lastID"] >> lastID - - if(!reports) reports = list() - if(!lastID) lastID = 0 - - var/datum/admin_report/created = new() - created.ID = ++lastID - created.body = body - created.author = author - created.date = world.realtime - created.done = 0 - created.offender_key = okey - created.offender_cid = cid - - reports.Insert(1, created) - - Reports["reports"] << reports - Reports["lastID"] << lastID - -// load the reports from disk -proc/load_reports() - var/savefile/Reports = new("data/reports.sav") - var/list/reports - - Reports["reports"] >> reports - - if(!reports) reports = list() - - return reports - -// check if there are any unhandled reports -client/proc/unhandled_reports() - if(!src.holder) return 0 - var/list/reports = load_reports() - - for(var/datum/admin_report/N in reports) - if(N.done) - continue - else return 1 - - return 0 - -// checks if the player has an unhandled report against him -client/proc/is_reported() - var/list/reports = load_reports() - - for(var/datum/admin_report/N in reports) if(!N.done) - if(N.offender_key == src.key) - return 1 - - return 0 - -// display only the reports that haven't been handled -client/proc/display_admin_reports() - set category = "Admin" - set name = "Display Admin Reports" - if(!src.holder) return - - var/list/reports = load_reports() - - var/output = "" - if(unhandled_reports()) - // load the list of unhandled reports - for(var/datum/admin_report/N in reports) - if(N.done) - continue - output += "Reported player: [N.offender_key](CID: [N.offender_cid])
      " - output += "Offense:[N.body]
      " - output += "Occured at [time2text(N.date,"MM/DD hh:mm:ss")]
      " - output += "authored by [N.author]
      " - output += " Flag as Handled" - if(src.key == N.author) - output += " Edit" - output += "
      " - output += "
      " - else - output += "Whoops, no reports!" - - usr << browse(output, "window=news;size=600x400") - - -client/proc/Report(mob/M as mob in world) - set category = "Admin" - if(!src.holder) - return - - var/CID = "Unknown" - if(M.client) - CID = M.client.computer_id - - var/body = input(src.mob, "Describe in detail what you're reporting [M] for", "Report") as null|text - if(!body) return - - - make_report(body, key, M.key, CID) - - spawn(1) - display_admin_reports() - -client/proc/mark_report_done(ID as num) - if(!src.holder || src.holder.level < 0) - return - - var/savefile/Reports = new("data/reports.sav") - var/list/reports - - Reports["reports"] >> reports - - var/datum/admin_report/found - for(var/datum/admin_report/N in reports) - if(N.ID == ID) - found = N - if(!found) src << "* An error occured, sorry." - - found.done = 1 - - Reports["reports"] << reports - - -client/proc/edit_report(ID as num) - if(!src.holder || src.holder.level < 0) - src << "You tried to modify the news, but you're not an admin!" - return - - var/savefile/Reports = new("data/reports.sav") - var/list/reports - - Reports["reports"] >> reports - - var/datum/admin_report/found - for(var/datum/admin_report/N in reports) - if(N.ID == ID) - found = N - if(!found) src << "* An error occured, sorry." - - var/body = input(src.mob, "Enter a body for the news", "Body") as null|message - if(!body) return - - found.body = body - - Reports["reports"] << reports +// Reports are a way to notify admins of wrongdoings that happened +// while no admin was present. They work a bit similar to news, but +// they can only be read by admins and moderators. + +// a single admin report +datum/admin_report/var + ID // the ID of the report + body // the content of the report + author // key of the author + date // date on which this was created + done // whether this was handled + + offender_key // store the key of the offender + offender_cid // store the cid of the offender + +datum/report_topic_handler + Topic(href,href_list) + ..() + var/client/C = locate(href_list["client"]) + if(href_list["action"] == "show_reports") + C.display_admin_reports() + else if(href_list["action"] == "remove") + C.mark_report_done(text2num(href_list["ID"])) + else if(href_list["action"] == "edit") + C.edit_report(text2num(href_list["ID"])) + +var/datum/report_topic_handler/report_topic_handler + +world/New() + ..() + report_topic_handler = new + +// add a new news datums +proc/make_report(body, author, okey, cid) + var/savefile/Reports = new("data/reports.sav") + var/list/reports + var/lastID + + Reports["reports"] >> reports + Reports["lastID"] >> lastID + + if(!reports) reports = list() + if(!lastID) lastID = 0 + + var/datum/admin_report/created = new() + created.ID = ++lastID + created.body = body + created.author = author + created.date = world.realtime + created.done = 0 + created.offender_key = okey + created.offender_cid = cid + + reports.Insert(1, created) + + Reports["reports"] << reports + Reports["lastID"] << lastID + +// load the reports from disk +proc/load_reports() + var/savefile/Reports = new("data/reports.sav") + var/list/reports + + Reports["reports"] >> reports + + if(!reports) reports = list() + + return reports + +// check if there are any unhandled reports +client/proc/unhandled_reports() + if(!src.holder) return 0 + var/list/reports = load_reports() + + for(var/datum/admin_report/N in reports) + if(N.done) + continue + else return 1 + + return 0 + +// checks if the player has an unhandled report against him +client/proc/is_reported() + var/list/reports = load_reports() + + for(var/datum/admin_report/N in reports) if(!N.done) + if(N.offender_key == src.key) + return 1 + + return 0 + +// display only the reports that haven't been handled +client/proc/display_admin_reports() + set category = "Admin" + set name = "Display Admin Reports" + if(!src.holder) return + + var/list/reports = load_reports() + + var/output = "" + if(unhandled_reports()) + // load the list of unhandled reports + for(var/datum/admin_report/N in reports) + if(N.done) + continue + output += "Reported player: [N.offender_key](CID: [N.offender_cid])
      " + output += "Offense:[N.body]
      " + output += "Occured at [time2text(N.date,"MM/DD hh:mm:ss")]
      " + output += "authored by [N.author]
      " + output += " Flag as Handled" + if(src.key == N.author) + output += " Edit" + output += "
      " + output += "
      " + else + output += "Whoops, no reports!" + + usr << browse(output, "window=news;size=600x400") + + +client/proc/Report(mob/M as mob in world) + set category = "Admin" + if(!src.holder) + return + + var/CID = "Unknown" + if(M.client) + CID = M.client.computer_id + + var/body = input(src.mob, "Describe in detail what you're reporting [M] for", "Report") as null|text + if(!body) return + + + make_report(body, key, M.key, CID) + + spawn(1) + display_admin_reports() + +client/proc/mark_report_done(ID as num) + if(!src.holder || src.holder.level < 0) + return + + var/savefile/Reports = new("data/reports.sav") + var/list/reports + + Reports["reports"] >> reports + + var/datum/admin_report/found + for(var/datum/admin_report/N in reports) + if(N.ID == ID) + found = N + if(!found) src << "* An error occured, sorry." + + found.done = 1 + + Reports["reports"] << reports + + +client/proc/edit_report(ID as num) + if(!src.holder || src.holder.level < 0) + src << "You tried to modify the news, but you're not an admin!" + return + + var/savefile/Reports = new("data/reports.sav") + var/list/reports + + Reports["reports"] >> reports + + var/datum/admin_report/found + for(var/datum/admin_report/N in reports) + if(N.ID == ID) + found = N + if(!found) src << "* An error occured, sorry." + + var/body = input(src.mob, "Enter a body for the news", "Body") as null|message + if(!body) return + + found.body = body + + Reports["reports"] << reports diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index b415a317fc2..44987591408 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -535,8 +535,8 @@ var/list/admin_verbs_mentor = list( ban_unban_log_save("[ckey] warned [warned_ckey], resulting in a [AUTOBANTIME] minute autoban.") if(C) message_admins("[key_name_admin(src)] has warned [key_name_admin(C)] resulting in a [AUTOBANTIME] minute ban.") - C << "You have been autobanned due to a warning by [ckey].
      This is a temporary ban, it will be removed in [AUTOBANTIME] minutes." - qdel(C) + C << "You have been autobanned due to a warning by [ckey].
      This is a temporary ban, it will be removed in [AUTOBANTIME] minutes.
      " + del(C) else message_admins("[key_name_admin(src)] has warned [warned_ckey] resulting in a [AUTOBANTIME] minute ban.") AddBan(warned_ckey, D.last_id, "Autobanning due to too many formal warnings", ckey, 1, AUTOBANTIME) diff --git a/code/modules/admin/permissionverbs/permissionedit.dm b/code/modules/admin/permissionverbs/permissionedit.dm index 3bd563aaf58..e028fb73742 100644 --- a/code/modules/admin/permissionverbs/permissionedit.dm +++ b/code/modules/admin/permissionverbs/permissionedit.dm @@ -33,7 +33,7 @@ output += "" output += "[adm_ckey] \[-\]" output += "[rank]" - output += "[rights]
      " + output += "[rights]" output += "" output += {" diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index a25d2de0438..47bdeeb5af4 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -290,7 +290,7 @@ - [M_name] - [M_rname] - [M_key] ([M_job]) + [M_name] - [M_rname] - [M_key] ([M_job])

      diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 1bbec850921..5519eff028d 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -2301,7 +2301,7 @@ if("clear_bombs") //I do nothing if("list_bombers") - var/dat = "Bombing List
      " + var/dat = "Bombing List
      " for(var/l in bombers) dat += text("[l]
      ") usr << browse(dat, "window=bombers") diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index e1ce028c13c..cf8b903a84f 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -865,7 +865,7 @@ Traitors and the like can also be revived with the previous role mostly intact. message_admins("Admin [key_name_admin(usr)] has forced the players to have random appearances.", 1) if(notifyplayers == "Yes") - world << "\blue Admin [usr.key] has forced the players to have completely random identities!" + world << "\blue Admin [usr.key] has forced the players to have completely random identities!" usr << "Remember: you can always disable the randomness by using the verb again, assuming the round hasn't started yet." diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 0cafdb182ee..752e6ed872b 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -441,7 +441,7 @@ datum/preferences for (var/i in special_roles) if(special_roles[i]) //if mode is available on the server if(jobban_isbanned(user, i) || (i == "positronic brain" && jobban_isbanned(user, "AI") && jobban_isbanned(user, "Cyborg")) || (i == "pAI candidate" && jobban_isbanned(user, "pAI"))) - dat += "Be [i]: \[BANNED]
      " + dat += "Be [i]: \[BANNED]
      " else dat += "Be [i]: [src.be_special&(1<
      " n++ diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index 83b2be54138..ce206392c58 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -89,7 +89,7 @@ if(src.loc == usr) usr << "The maintenance panel is [open ? "open" : "closed"]." - usr << "Hardsuit systems are [offline ? "offline" : "online"]." + usr << "Hardsuit systems are [offline ? "offline" : "online"]." /obj/item/weapon/rig/New() ..() @@ -635,7 +635,7 @@ if(!H.equip_to_slot_if_possible(use_obj, equip_to, 0)) use_obj.loc = src else - H << "Your [use_obj.name] [use_obj.gender == PLURAL ? "deploy" : "deploys"] swiftly." + H << "Your [use_obj.name] [use_obj.gender == PLURAL ? "deploy" : "deploys"] swiftly." if(piece == "helmet" && helmet) helmet.update_light(H) @@ -750,7 +750,7 @@ if(dam_module.damage >= 2) wearer << "The [source] has disabled your [dam_module.interface_name]!" else - wearer << "The [source] has damaged your [dam_module.interface_name]!" + wearer << "The [source] has damaged your [dam_module.interface_name]!" dam_module.deactivate() /obj/item/weapon/rig/proc/malfunction_check(var/mob/living/carbon/human/user) diff --git a/code/modules/events/comms_blackout.dm b/code/modules/events/comms_blackout.dm index 3e224a1f5cf..73c2ddb70b1 100644 --- a/code/modules/events/comms_blackout.dm +++ b/code/modules/events/comms_blackout.dm @@ -1,12 +1,12 @@ - -/proc/communications_blackout(var/silent = 1) - - if(!silent) - command_announcement.Announce("Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you-BZZT", new_sound = 'sound/misc/interference.ogg') - else // AIs will always know if there's a comm blackout, rogue AIs could then lie about comm blackouts in the future while they shutdown comms - for(var/mob/living/silicon/ai/A in player_list) - A << "
      " - A << "Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you-BZZT" - A << "
      " - for(var/obj/machinery/telecomms/T in telecomms_list) - T.emp_act(1) + +/proc/communications_blackout(var/silent = 1) + + if(!silent) + command_announcement.Announce("Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you-BZZT", new_sound = 'sound/misc/interference.ogg') + else // AIs will always know if there's a comm blackout, rogue AIs could then lie about comm blackouts in the future while they shutdown comms + for(var/mob/living/silicon/ai/A in player_list) + A << "
      " + A << "Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you-BZZT" + A << "
      " + for(var/obj/machinery/telecomms/T in telecomms_list) + T.emp_act(1) diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index 649dee1e1e5..9d8ceb26037 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -44,20 +44,20 @@ if(!machine.ores_stored[ore] && !show_all_ores) continue var/ore/O = ore_data[ore] if(!O) continue - dat += "[capitalize(O.display_name)][machine.ores_stored[ore]]not processing" + dat += "not processing" if(1) - dat += "orange'>smelting" + dat += "smelting" if(2) - dat += "blue'>compressing" + dat += "compressing" if(3) - dat += "gray'>alloying" + dat += "alloying" else - dat += "red'>not processing" - dat += ".\[change\]" + dat += "not processing" + dat += ".\[change\]" dat += "
      " dat += "Currently displaying [show_all_ores ? "all ore types" : "only available ore types"]. \[[show_all_ores ? "show less" : "show more"]\]
      " diff --git a/code/modules/mob/language/synthetic.dm b/code/modules/mob/language/synthetic.dm index 708e72dd623..dbf91343f13 100644 --- a/code/modules/mob/language/synthetic.dm +++ b/code/modules/mob/language/synthetic.dm @@ -29,7 +29,7 @@ if(drone_only && !istype(S,/mob/living/silicon/robot/drone)) continue else if(istype(S , /mob/living/silicon/ai)) - message_start = "[name], [speaker.name]" + message_start = "[name], [speaker.name]" else if (!S.binarycheck()) continue diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 1faf2f7e7ab..3295e67ea21 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -191,7 +191,7 @@ emp_act if(user == src) // Attacking yourself can't miss target_zone = user.zone_sel.selecting if(!target_zone) - visible_message("\red [user] misses [src] with \the [I]!") + visible_message("[user] misses [src] with \the [I]!") return 1 var/obj/item/organ/external/affecting = get_organ(target_zone) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 76a585c19f6..1b040602138 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -155,7 +155,7 @@ for(var/mob/O in viewers(src, null)) if(O == src) continue - O.show_message(text("\red [src] starts having a seizure!"), 1) + O.show_message(text("[src] starts having a seizure!"), 1) Paralyse(10) make_jittery(1000) if (disabilities & COUGHING) diff --git a/code/modules/mob/living/silicon/robot/drone/drone_console.dm b/code/modules/mob/living/silicon/robot/drone/drone_console.dm index c707f85c68b..dc7c6915d05 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_console.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_console.dm @@ -29,7 +29,7 @@ for(var/mob/living/silicon/robot/drone/D in world) if(D.z != src.z) continue - dat += "
      [D.real_name] ([D.stat == 2 ? "INACTIVE" : "ACTIVE"])" + dat += "
      [D.real_name] ([D.stat == 2 ? "INACTIVE" : "ACTIVE"])" dat += "
      Cell charge: [D.cell.charge]/[D.cell.maxcharge]." dat += "
      Currently located in: [get_area(D)]." dat += "
      Resync | Shutdown
      " diff --git a/code/modules/mob/living/silicon/robot/laws.dm b/code/modules/mob/living/silicon/robot/laws.dm index 2dc3b4e3916..9740c02f870 100644 --- a/code/modules/mob/living/silicon/robot/laws.dm +++ b/code/modules/mob/living/silicon/robot/laws.dm @@ -22,7 +22,7 @@ src << "Laws synced with AI, be sure to note any changes." // TODO: Update to new antagonist system. if(mind && mind.special_role == "traitor" && mind.original == src) - src << "Remember, your AI does NOT share or know about your law 0." + src << "Remember, your AI does NOT share or know about your law 0." else src << "No AI selected to sync laws with, disabling lawsync protocol." lawupdate = 0 diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index c690931c8a7..ad5203bb76f 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -312,7 +312,7 @@ killswitch_time -- if(killswitch_time <= 0) if(src.client) - src << "\red Killswitch Activated" + src << "Killswitch Activated" killswitch = 0 spawn(5) gib() @@ -323,7 +323,7 @@ weaponlock_time -- if(weaponlock_time <= 0) if(src.client) - src << "\red Weapon Lock Timed Out!" + src << "Weapon Lock Timed Out!" weapon_lock = 0 weaponlock_time = 120 diff --git a/code/modules/mob/living/simple_animal/constructs/constructs.dm b/code/modules/mob/living/simple_animal/constructs/constructs.dm index 65bf148ae4d..847ba4909d1 100644 --- a/code/modules/mob/living/simple_animal/constructs/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs/constructs.dm @@ -58,7 +58,7 @@ if(istype(user, /mob/living/simple_animal/construct/builder)) if(health < maxHealth) adjustBruteLoss(-5) - user.visible_message("\The [user] mends some of \the [src]'s wounds.
      ") + user.visible_message("\The [user] mends some of \the [src]'s wounds.") else user << "\The [src] is undamaged." return diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index f1bb76c85d7..7658f28ce1e 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -17,10 +17,10 @@ spawn() alert("You have logged in already with another key this round, please log out of this one NOW or risk being banned!") if(matches) if(M.client) - message_admins("Notice: [key_name_admin(src)] has the same [matches] as [key_name_admin(M)].", 1) + message_admins("Notice: [key_name_admin(src)] has the same [matches] as [key_name_admin(M)].", 1) log_access("Notice: [key_name(src)] has the same [matches] as [key_name(M)].") else - message_admins("Notice: [key_name_admin(src)] has the same [matches] as [key_name_admin(M)] (no longer logged in). ", 1) + message_admins("Notice: [key_name_admin(src)] has the same [matches] as [key_name_admin(M)] (no longer logged in). ", 1) log_access("Notice: [key_name(src)] has the same [matches] as [key_name(M)] (no longer logged in).") /mob/Login() diff --git a/code/modules/paperwork/carbonpaper.dm b/code/modules/paperwork/carbonpaper.dm index ae8357a5582..32242e96694 100644 --- a/code/modules/paperwork/carbonpaper.dm +++ b/code/modules/paperwork/carbonpaper.dm @@ -1,50 +1,51 @@ -/obj/item/weapon/paper/carbon - name = "paper" - icon_state = "paper_stack" - item_state = "paper" - var copied = 0 - var iscopy = 0 - - -/obj/item/weapon/paper/carbon/update_icon() - if(iscopy) - if(info) - icon_state = "cpaper_words" - return - icon_state = "cpaper" - else if (copied) - if(info) - icon_state = "paper_words" - return - icon_state = "paper" - else - if(info) - icon_state = "paper_stack_words" - return - icon_state = "paper_stack" - - - -/obj/item/weapon/paper/carbon/verb/removecopy() - set name = "Remove carbon-copy" - set category = "Object" - set src in usr - - if (copied == 0) - var/obj/item/weapon/paper/carbon/c = src - var/copycontents = html_decode(c.info) - var/obj/item/weapon/paper/carbon/copy = new /obj/item/weapon/paper/carbon (usr.loc) - copycontents = replacetext(copycontents, "" - copy.name = "Copy - " + c.name - copy.fields = c.fields - copy.updateinfolinks() - usr << "You tear off the carbon-copy!" - c.copied = 1 - copy.iscopy = 1 - copy.update_icon() - c.update_icon() - else +/obj/item/weapon/paper/carbon + name = "paper" + icon_state = "paper_stack" + item_state = "paper" + var copied = 0 + var iscopy = 0 + + +/obj/item/weapon/paper/carbon/update_icon() + if(iscopy) + if(info) + icon_state = "cpaper_words" + return + icon_state = "cpaper" + else if (copied) + if(info) + icon_state = "paper_words" + return + icon_state = "paper" + else + if(info) + icon_state = "paper_stack_words" + return + icon_state = "paper_stack" + + + +/obj/item/weapon/paper/carbon/verb/removecopy() + set name = "Remove carbon-copy" + set category = "Object" + set src in usr + + if (copied == 0) + var/obj/item/weapon/paper/carbon/c = src + var/copycontents = html_decode(c.info) + var/obj/item/weapon/paper/carbon/copy = new /obj/item/weapon/paper/carbon (usr.loc) + // + copycontents = replacetext(copycontents, "" + copy.name = "Copy - " + c.name + copy.fields = c.fields + copy.updateinfolinks() + usr << "You tear off the carbon-copy!" + c.copied = 1 + copy.iscopy = 1 + copy.update_icon() + c.update_icon() + else usr << "There are no more carbon copies attached to this paper!" \ No newline at end of file diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 2ae10e1c351..836b5224b6d 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -165,7 +165,7 @@ copied = replacetext(copied, "" + c.info += ""// c.name = copy.name // -- Doohl c.fields = copy.fields c.stamps = copy.stamps @@ -228,7 +228,7 @@ W = photocopy(W) W.loc = p p.pages += W - + p.loc = src.loc p.update_icon() p.icon_state = "paper_words" diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 5ce02cf18da..9706f9e770f 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -366,7 +366,7 @@ output_level = input(usr, "Enter new output level (0-[output_level_max])", "SMES Output Power Control", output_level) as num output_level = max(0, min(output_level_max, output_level)) // clamp to range - investigate_log("input/output; [input_level>output_level?"":""][input_level]/[output_level] | Output-mode: [output_attempt?"on":"off"] | Input-mode: [input_attempt?"auto":"off"] by [usr.key]","singulo") + investigate_log("input/output; on":"off"] | Input-mode: [input_attempt?"auto":"off"] by [usr.key]","singulo") return 1 diff --git a/code/modules/power/turbine.dm b/code/modules/power/turbine.dm index 0119de83088..94920841041 100644 --- a/code/modules/power/turbine.dm +++ b/code/modules/power/turbine.dm @@ -277,7 +277,7 @@ \n
      \n"} else - dat += "\redNo compatible attached compressor found." + dat += "No compatible attached compressor found." user << browse(dat, "window=computer;size=400x500") onclose(user, "computer") diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 14e70bcfa44..170af3b2156 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -233,7 +233,7 @@ if(reflex) user.visible_message( - "\The [user] fires \the [src][pointblank ? " point blank at \the [target]":""] by reflex!", + "\The [user] fires \the [src][pointblank ? " point blank at \the [target]":""] by reflex!", "You fire \the [src] by reflex!", "You hear a [fire_sound_text]!" ) diff --git a/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm b/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm index 5fbe8dcd41f..a881dc65297 100644 --- a/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm +++ b/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm @@ -235,7 +235,7 @@ var/list/valid_secondary_effect_types = list(\ src.add_fingerprint(user) if(my_effect.trigger == TRIGGER_TOUCH) - user << "You touch [src]." + user << "You touch [src]." my_effect.ToggleActivate() else user << "You touch [src], [pick("but nothing of note happens","but nothing happens","but nothing interesting happens","but you notice nothing different","but nothing seems to have happened")]." @@ -321,7 +321,7 @@ var/list/valid_secondary_effect_types = list(\ warn = 1 if(warn) - M << "You accidentally touch [src]." + M << "You accidentally touch [src]." ..() /obj/machinery/artifact/bullet_act(var/obj/item/projectile/P) diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_badfeeling.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_badfeeling.dm index 1244f802cc6..0d6bd0eb63e 100644 --- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_badfeeling.dm +++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_badfeeling.dm @@ -1,70 +1,70 @@ - -/datum/artifact_effect/badfeeling - effecttype = "badfeeling" - effect_type = 2 - var/list/messages = list("You feel worried.",\ - "Something doesn't feel right.",\ - "You get a strange feeling in your gut.",\ - "Your instincts are trying to warn you about something.",\ - "Someone just walked over your grave.",\ - "There's a strange feeling in the air.",\ - "There's a strange smell in the air.",\ - "The tips of your fingers feel tingly.",\ - "You feel witchy.",\ - "You have a terrible sense of foreboding.",\ - "You've got a bad feeling about this.",\ - "Your scalp prickles.",\ - "The light seems to flicker.",\ - "The shadows seem to lengthen.",\ - "The walls are getting closer.",\ - "Something is wrong") - - var/list/drastic_messages = list("You've got to get out of here!",\ - "Someone's trying to kill you!",\ - "There's something out there!",\ - "What's happening to you?",\ - "OH GOD!",\ - "HELP ME!") - -/datum/artifact_effect/badfeeling/DoEffectTouch(var/mob/user) - if(user) - if (istype(user, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = user - if(prob(50)) - if(prob(75)) - H << "[pick(drastic_messages)]" - else - H << "[pick(messages)]" - - if(prob(50)) - H.dizziness += rand(3,5) - -/datum/artifact_effect/badfeeling/DoEffectAura() - if(holder) - var/turf/T = get_turf(holder) - for (var/mob/living/carbon/human/H in range(src.effectrange,T)) - if(prob(5)) - if(prob(75)) - H << "[pick(messages)]" - else - H << "[pick(drastic_messages)]" - - if(prob(10)) - H.dizziness += rand(3,5) - return 1 - -/datum/artifact_effect/badfeeling/DoEffectPulse() - if(holder) - var/turf/T = get_turf(holder) - for (var/mob/living/carbon/human/H in range(src.effectrange,T)) - if(prob(50)) - if(prob(95)) - H << "[pick(drastic_messages)]" - else - H << "[pick(messages)]" - - if(prob(50)) - H.dizziness += rand(3,5) - else if(prob(25)) - H.dizziness += rand(5,15) - return 1 + +/datum/artifact_effect/badfeeling + effecttype = "badfeeling" + effect_type = 2 + var/list/messages = list("You feel worried.",\ + "Something doesn't feel right.",\ + "You get a strange feeling in your gut.",\ + "Your instincts are trying to warn you about something.",\ + "Someone just walked over your grave.",\ + "There's a strange feeling in the air.",\ + "There's a strange smell in the air.",\ + "The tips of your fingers feel tingly.",\ + "You feel witchy.",\ + "You have a terrible sense of foreboding.",\ + "You've got a bad feeling about this.",\ + "Your scalp prickles.",\ + "The light seems to flicker.",\ + "The shadows seem to lengthen.",\ + "The walls are getting closer.",\ + "Something is wrong") + + var/list/drastic_messages = list("You've got to get out of here!",\ + "Someone's trying to kill you!",\ + "There's something out there!",\ + "What's happening to you?",\ + "OH GOD!",\ + "HELP ME!") + +/datum/artifact_effect/badfeeling/DoEffectTouch(var/mob/user) + if(user) + if (istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + if(prob(50)) + if(prob(75)) + H << "[pick(drastic_messages)]" + else + H << "[pick(messages)]" + + if(prob(50)) + H.dizziness += rand(3,5) + +/datum/artifact_effect/badfeeling/DoEffectAura() + if(holder) + var/turf/T = get_turf(holder) + for (var/mob/living/carbon/human/H in range(src.effectrange,T)) + if(prob(5)) + if(prob(75)) + H << "[pick(messages)]" + else + H << "[pick(drastic_messages)]" + + if(prob(10)) + H.dizziness += rand(3,5) + return 1 + +/datum/artifact_effect/badfeeling/DoEffectPulse() + if(holder) + var/turf/T = get_turf(holder) + for (var/mob/living/carbon/human/H in range(src.effectrange,T)) + if(prob(50)) + if(prob(95)) + H << "[pick(drastic_messages)]" + else + H << "[pick(messages)]" + + if(prob(50)) + H.dizziness += rand(3,5) + else if(prob(25)) + H.dizziness += rand(5,15) + return 1 diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_goodfeeling.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_goodfeeling.dm index bc45260b2cc..61719bc9161 100644 --- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_goodfeeling.dm +++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_goodfeeling.dm @@ -1,68 +1,68 @@ - -/datum/artifact_effect/goodfeeling - effecttype = "goodfeeling" - effect_type = 2 - var/list/messages = list("You feel good.",\ - "Everything seems to be going alright",\ - "You've got a good feeling about this",\ - "Your instincts tell you everything is going to be getting better.",\ - "There's a good feeling in the air.",\ - "Something smells... good.",\ - "The tips of your fingers feel tingly.",\ - "You've got a good feeling about this.",\ - "You feel happy.",\ - "You fight the urge to smile.",\ - "Your scalp prickles.",\ - "All the colours seem a bit more vibrant.",\ - "Everything seems a little lighter.",\ - "The troubles of the world seem to fade away.") - - var/list/drastic_messages = list("You want to hug everyone you meet!",\ - "Everything is going so well!",\ - "You feel euphoric.",\ - "You feel giddy.",\ - "You're so happy suddenly, you almost want to dance and sing.",\ - "You feel like the world is out to help you.") - -/datum/artifact_effect/goodfeeling/DoEffectTouch(var/mob/user) - if(user) - if (istype(user, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = user - if(prob(50)) - if(prob(75)) - H << "[pick(drastic_messages)]" - else - H << "[pick(messages)]" - - if(prob(50)) - H.dizziness += rand(3,5) - -/datum/artifact_effect/goodfeeling/DoEffectAura() - if(holder) - var/turf/T = get_turf(holder) - for (var/mob/living/carbon/human/H in range(src.effectrange,T)) - if(prob(5)) - if(prob(75)) - H << "[pick(messages)]" - else - H << "[pick(drastic_messages)]" - - if(prob(5)) - H.dizziness += rand(3,5) - return 1 - -/datum/artifact_effect/goodfeeling/DoEffectPulse() - if(holder) - var/turf/T = get_turf(holder) - for (var/mob/living/carbon/human/H in range(src.effectrange,T)) - if(prob(50)) - if(prob(95)) - H << "[pick(drastic_messages)]" - else - H << "[pick(messages)]" - - if(prob(50)) - H.dizziness += rand(3,5) - else if(prob(25)) - H.dizziness += rand(5,15) - return 1 + +/datum/artifact_effect/goodfeeling + effecttype = "goodfeeling" + effect_type = 2 + var/list/messages = list("You feel good.",\ + "Everything seems to be going alright",\ + "You've got a good feeling about this",\ + "Your instincts tell you everything is going to be getting better.",\ + "There's a good feeling in the air.",\ + "Something smells... good.",\ + "The tips of your fingers feel tingly.",\ + "You've got a good feeling about this.",\ + "You feel happy.",\ + "You fight the urge to smile.",\ + "Your scalp prickles.",\ + "All the colours seem a bit more vibrant.",\ + "Everything seems a little lighter.",\ + "The troubles of the world seem to fade away.") + + var/list/drastic_messages = list("You want to hug everyone you meet!",\ + "Everything is going so well!",\ + "You feel euphoric.",\ + "You feel giddy.",\ + "You're so happy suddenly, you almost want to dance and sing.",\ + "You feel like the world is out to help you.") + +/datum/artifact_effect/goodfeeling/DoEffectTouch(var/mob/user) + if(user) + if (istype(user, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + if(prob(50)) + if(prob(75)) + H << "[pick(drastic_messages)]" + else + H << "[pick(messages)]" + + if(prob(50)) + H.dizziness += rand(3,5) + +/datum/artifact_effect/goodfeeling/DoEffectAura() + if(holder) + var/turf/T = get_turf(holder) + for (var/mob/living/carbon/human/H in range(src.effectrange,T)) + if(prob(5)) + if(prob(75)) + H << "[pick(messages)]" + else + H << "[pick(drastic_messages)]" + + if(prob(5)) + H.dizziness += rand(3,5) + return 1 + +/datum/artifact_effect/goodfeeling/DoEffectPulse() + if(holder) + var/turf/T = get_turf(holder) + for (var/mob/living/carbon/human/H in range(src.effectrange,T)) + if(prob(50)) + if(prob(95)) + H << "[pick(drastic_messages)]" + else + H << "[pick(messages)]" + + if(prob(50)) + H.dizziness += rand(3,5) + else if(prob(25)) + H.dizziness += rand(5,15) + return 1 diff --git a/code/modules/research/xenoarchaeology/tools/suspension_generator.dm b/code/modules/research/xenoarchaeology/tools/suspension_generator.dm index 5dad9a1eb4a..6b77e800eb3 100644 --- a/code/modules/research/xenoarchaeology/tools/suspension_generator.dm +++ b/code/modules/research/xenoarchaeology/tools/suspension_generator.dm @@ -132,9 +132,9 @@ I.loc = src auth_card = I if(attempt_unlock(I, usr)) - usr << "You insert [I], the console flashes \'Access granted.\'" + usr << "You insert [I], the console flashes \'Access granted.\'" else - usr << "You insert [I], the console flashes \'Access denied.\'" + usr << "You insert [I], the console flashes \'Access denied.\'" else if(href_list["ejectcard"]) if(auth_card) if(ishuman(usr)) diff --git a/code/modules/scripting/IDE.dm b/code/modules/scripting/IDE.dm index 2e84639917b..3974e2dee48 100644 --- a/code/modules/scripting/IDE.dm +++ b/code/modules/scripting/IDE.dm @@ -16,13 +16,13 @@ client/verb/tcssave() src << output(null, "tcserror") // clear the errors else src << output(null, "tcserror") - src << output("Failed to save: Unable to locate server machine. (Back up your code before exiting the window!)", "tcserror") + src << output("Failed to save: Unable to locate server machine. (Back up your code before exiting the window!)", "tcserror") else src << output(null, "tcserror") - src << output("Failed to save: Unable to locate machine. (Back up your code before exiting the window!)", "tcserror") + src << output("Failed to save: Unable to locate machine. (Back up your code before exiting the window!)", "tcserror") else src << output(null, "tcserror") - src << output("Failed to save: Unable to locate machine. (Back up your code before exiting the window!)", "tcserror") + src << output("Failed to save: Unable to locate machine. (Back up your code before exiting the window!)", "tcserror") client/verb/tcscompile() @@ -44,7 +44,7 @@ client/verb/tcscompile() if(compileerrors.len) src << output("Compile Errors", "tcserror") for(var/scriptError/e in compileerrors) - src << output("\t>[e.message]", "tcserror") + src << output("\t>[e.message]", "tcserror") src << output("([compileerrors.len] errors)", "tcserror") // Output compile errors to all other people viewing the code too @@ -53,28 +53,28 @@ client/verb/tcscompile() M << output(null, "tcserror") M << output("Compile Errors", "tcserror") for(var/scriptError/e in compileerrors) - M << output("\t>[e.message]", "tcserror") + M << output("\t>[e.message]", "tcserror") M << output("([compileerrors.len] errors)", "tcserror") else - src << output("TCS compilation successful!", "tcserror") + src << output("TCS compilation successful!", "tcserror") src << output("(0 errors)", "tcserror") for(var/mob/M in Machine.viewingcode) if(M.client) - M << output("TCS compilation successful!", "tcserror") + M << output("TCS compilation successful!", "tcserror") M << output("(0 errors)", "tcserror") else src << output(null, "tcserror") - src << output("Failed to compile: Unable to locate server machine. (Back up your code before exiting the window!)", "tcserror") + src << output("Failed to compile: Unable to locate server machine. (Back up your code before exiting the window!)", "tcserror") else src << output(null, "tcserror") - src << output("Failed to compile: Unable to locate machine. (Back up your code before exiting the window!)", "tcserror") + src << output("Failed to compile: Unable to locate machine. (Back up your code before exiting the window!)", "tcserror") else src << output(null, "tcserror") - src << output("Failed to compile: Unable to locate machine. (Back up your code before exiting the window!)", "tcserror") + src << output("Failed to compile: Unable to locate machine. (Back up your code before exiting the window!)", "tcserror") client/verb/tcsrun() set hidden = 1 @@ -95,7 +95,7 @@ client/verb/tcsrun() if(compileerrors.len) src << output("Compile Errors", "tcserror") for(var/scriptError/e in compileerrors) - src << output("\t>[e.message]", "tcserror") + src << output("\t>[e.message]", "tcserror") src << output("([compileerrors.len] errors)", "tcserror") // Output compile errors to all other people viewing the code too @@ -104,17 +104,17 @@ client/verb/tcsrun() M << output(null, "tcserror") M << output("Compile Errors", "tcserror") for(var/scriptError/e in compileerrors) - M << output("\t>[e.message]", "tcserror") + M << output("\t>[e.message]", "tcserror") M << output("([compileerrors.len] errors)", "tcserror") else // Finally, we run the code! - src << output("TCS compilation successful! Code executed.", "tcserror") + src << output("TCS compilation successful! Code executed.", "tcserror") src << output("(0 errors)", "tcserror") for(var/mob/M in Machine.viewingcode) if(M.client) - M << output("TCS compilation successful!", "tcserror") + M << output("TCS compilation successful!", "tcserror") M << output("(0 errors)", "tcserror") var/datum/signal/signal = new() @@ -133,13 +133,13 @@ client/verb/tcsrun() else src << output(null, "tcserror") - src << output("Failed to run: Unable to locate server machine. (Back up your code before exiting the window!)", "tcserror") + src << output("Failed to run: Unable to locate server machine. (Back up your code before exiting the window!)", "tcserror") else src << output(null, "tcserror") - src << output("Failed to run: Unable to locate machine. (Back up your code before exiting the window!)", "tcserror") + src << output("Failed to run: Unable to locate machine. (Back up your code before exiting the window!)", "tcserror") else src << output(null, "tcserror") - src << output("Failed to run: Unable to locate machine. (Back up your code before exiting the window!)", "tcserror") + src << output("Failed to run: Unable to locate machine. (Back up your code before exiting the window!)", "tcserror") client/verb/exittcs() @@ -174,13 +174,13 @@ client/verb/tcsrevert() src << output(null, "tcserror") // clear the errors else src << output(null, "tcserror") - src << output("Failed to revert: Unable to locate server machine.", "tcserror") + src << output("Failed to revert: Unable to locate server machine.", "tcserror") else src << output(null, "tcserror") - src << output("Failed to revert: Unable to locate machine.", "tcserror") + src << output("Failed to revert: Unable to locate machine.", "tcserror") else src << output(null, "tcserror") - src << output("Failed to revert: Unable to locate machine.", "tcserror") + src << output("Failed to revert: Unable to locate machine.", "tcserror") client/verb/tcsclearmem() @@ -196,16 +196,16 @@ client/verb/tcsclearmem() Server.memory = list() // clear the memory // Show results src << output(null, "tcserror") - src << output("Server memory cleared!", "tcserror") + src << output("Server memory cleared!", "tcserror") for(var/mob/M in Machine.viewingcode) if(M.client) - M << output("Server memory cleared!", "tcserror") + M << output("Server memory cleared!", "tcserror") else src << output(null, "tcserror") - src << output("Failed to clear memory: Unable to locate server machine.", "tcserror") + src << output("Failed to clear memory: Unable to locate server machine.", "tcserror") else src << output(null, "tcserror") - src << output("Failed to clear memory: Unable to locate machine.", "tcserror") + src << output("Failed to clear memory: Unable to locate machine.", "tcserror") else src << output(null, "tcserror") - src << output("Failed to clear memory: Unable to locate machine.", "tcserror") + src << output("Failed to clear memory: Unable to locate machine.", "tcserror") diff --git a/code/modules/scripting/Implementations/Telecomms.dm b/code/modules/scripting/Implementations/Telecomms.dm index 4fdd54f31bd..87c6fa5ea36 100644 --- a/code/modules/scripting/Implementations/Telecomms.dm +++ b/code/modules/scripting/Implementations/Telecomms.dm @@ -248,7 +248,7 @@ datum/signal if(source in S.stored_names) newsign.data["name"] = source else - newsign.data["name"] = "[html_encode(uppertext(source))]" + newsign.data["name"] = "[html_encode(uppertext(source))]" newsign.data["realname"] = newsign.data["name"] newsign.data["job"] = job newsign.data["compression"] = 0 diff --git a/code/modules/shuttles/shuttles_multi.dm b/code/modules/shuttles/shuttles_multi.dm index 141cf97d8aa..a7593f76ef8 100644 --- a/code/modules/shuttles/shuttles_multi.dm +++ b/code/modules/shuttles/shuttles_multi.dm @@ -34,12 +34,12 @@ destination_dock_controllers[destination] = docking_controller else var/datum/computer/file/embedded_program/docking/C = locate(controller_tag) - + if(!istype(C)) world << "warning: shuttle with docking tag [controller_tag] could not find it's controller!" else destination_dock_controllers[destination] = C - + //might as well set this up here. if(origin) last_departed = origin last_location = start_location @@ -99,15 +99,15 @@ dat += "
      Toggle cloaking field
      " dat += "Move ship
      " dat += "Return to base
  • " - + //Docking dat += "


    " if(MS.skip_docking_checks()) - dat += "Docking Status: Not in use.
    " + dat += "Docking Status: Not in use." else var/override_en = MS.docking_controller.override_enabled var/docking_status = MS.docking_controller.get_docking_status() - + dat += "Docking Status: " switch(docking_status) if("undocked") @@ -118,16 +118,17 @@ dat += "Undocking" if("docked") dat += "Docked" - + if(override_en) dat += " (Override Enabled)" - + dat += ". \[Refresh\]

    " - + switch(docking_status) if("undocked") - dat += "Dock
    " + dat += "Dock" if("docked") - dat += "Undock
    " + dat += "Undock" + dat += "
    " user << browse("[dat]", "window=[shuttle_tag]shuttlecontrol;size=300x600") @@ -139,11 +140,11 @@ var/choice = alert("The shuttle is currently docked! Please undock before continuing.","Error","Cancel","Force Launch") if(choice == "Cancel") return 0 - + choice = alert("Forcing a shuttle launch while docked may result in severe injury, death and/or damage to property. Are you sure you wish to continue?", "Force Launch", "Force Launch", "Cancel") if(choice == "Cancel") return 0 - + return 1 /obj/machinery/computer/shuttle_control/multi/Topic(href, href_list) @@ -165,11 +166,11 @@ if (MS.moving_status != SHUTTLE_IDLE) usr << "\blue [shuttle_tag] vessel is moving." return - + if(href_list["dock_command"]) MS.dock() return - + if(href_list["undock_command"]) MS.undock() return @@ -178,7 +179,7 @@ if(MS.at_origin) usr << "\red You are already at your home base." return - + if((MS.last_move + MS.cooldown*10) > world.time) usr << "\red The ship's drive is inoperable while the engines are charging." return @@ -186,7 +187,7 @@ if(!check_docking(MS)) updateUsrDialog() return - + if(!MS.return_warning) usr << "\red Returning to your home base will end your mission. If you are sure, press the button again." //TODO: Actually end the mission. @@ -207,11 +208,11 @@ if((MS.last_move + MS.cooldown*10) > world.time) usr << "\red The ship's drive is inoperable while the engines are charging." return - + if(!check_docking(MS)) updateUsrDialog() return - + var/choice = input("Select a destination.") as null|anything in MS.destinations if(!choice) return diff --git a/code/modules/virus2/curer.dm b/code/modules/virus2/curer.dm index ccbbbed9a2c..78884f559f3 100644 --- a/code/modules/virus2/curer.dm +++ b/code/modules/virus2/curer.dm @@ -18,7 +18,7 @@ return if(istype(I,/obj/item/weapon/virusdish)) if(virusing) - user << "The pathogen materializer is still recharging.." + user << "The pathogen materializer is still recharging.." return var/obj/item/weapon/reagent_containers/glass/beaker/product = new(src.loc)