From 6b3ce37300c0ff435c1afd59deff46afaf605bae Mon Sep 17 00:00:00 2001 From: Mark Suckerberg <29362068+MarkSuckerberg@users.noreply.github.com> Date: Sun, 23 May 2021 20:16:55 -0500 Subject: [PATCH] SpacemanDMM Sanity (#12) * SpacemanDMM Sanity fixes preceding slashes (or lack therof), make dmdoc use the typepaths rather than names, and a few disambiguations. * trigger spacemandmm reparse in CBT 'Build All' task (#58061) * Close every issue made by ZeWaka (#58701) sure whatever i totally know what im doing * Ensure consistent working directory in build.bat (#59193) * Deletes duplicate export property (#58212) * Simplified Node Bootstrap mk. II (#56797) Script tools/bootstrap/node_.ps1 will now only download a single node.exe file (32-bit variant) and nothing more. Since we don't need to unzip, we removed a dependency on a .NET component. Removed logging, because TGS4 already logs stdout/err, while all this fancy output redirection breaks on older PowerShell versions. node.bat uses a system-wide node exe if available CBT will not mislead users by printing things like "missing tgstation.dmb" Co-authored-by: William Wallace Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com> Co-authored-by: AnturK Co-authored-by: ZeWaka Co-authored-by: Aleksej Komarov --- .vscode/tasks.json | 11 ++- Build.bat | 2 +- SpacemanDMM.toml | 7 ++ code/__HELPERS/unsorted.dm | 2 +- code/datums/traits/good.dm | 4 +- code/datums/traits/neutral.dm | 2 +- code/game/machinery/doors/airlock.dm | 2 +- code/game/machinery/hologram.dm | 2 +- code/game/mecha/combat/durand.dm | 2 +- code/game/objects/items/dice.dm | 2 +- code/game/objects/items/grenades/festive.dm | 4 +- code/game/objects/structures/tables_racks.dm | 2 +- code/modules/admin/verbs/one_click_antag.dm | 2 +- .../antagonists/_common/antag_datum.dm | 2 +- .../atmospherics/gasmixtures/reactions.dm | 6 +- code/modules/client/preferences_toggles.dm | 2 +- .../recipes/tablecraft/recipes_pastry.dm | 2 +- code/modules/mining/aux_base_camera.dm | 14 ++-- .../living/carbon/human/species_types/IPC.dm | 2 +- .../mob/living/simple_animal/hostile/bear.dm | 4 +- .../simple_animal/hostile/giant_spider.dm | 2 +- .../living/simple_animal/hostile/hostile.dm | 2 +- .../simple_animal/hostile/megafauna/drake.dm | 2 +- .../simple_animal/hostile/space_dragon.dm | 2 +- .../simple_animal/hostile/venus_human_trap.dm | 2 +- code/modules/photography/photos/album.dm | 4 +- .../projectiles/guns/ballistic/rifle.dm | 8 +- .../reagents/reagent_containers/chem_pack.dm | 2 +- .../research/nanites/nanite_programs.dm | 4 +- .../crossbreeding/_status_effects.dm | 4 +- .../shuttle/spaceship_navigation_beacon.dm | 2 +- code/world.dm | 2 +- .../tgui/components/AnimatedNumber.js | 2 +- tgui/packages/tgui/format.js | 2 +- tools/bootstrap/node.bat | 10 ++- tools/bootstrap/node_.ps1 | 76 ++++++++----------- tools/build/cbt/fs.js | 1 - tools/build/cbt/glob.js | 2 +- tools/build/cbt/task.js | 2 +- tools/mapmerge2/dmm.py | 2 +- .../code/datums/status_effects/debuffs.dm | 2 +- .../hostile/mining_mobs/basilisk.dm | 10 +-- whitesands/code/modules/mob/say_vr.dm | 2 +- .../chemistry/reagents/medicine_reagents.dm | 4 +- 44 files changed, 120 insertions(+), 107 deletions(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index ac83a00b311b..39378eff6531 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -11,7 +11,11 @@ "$dreammaker", "$eslint-stylish" ], - "group": "build", + "group": { + "kind": "build", + "isDefault": true + }, + "dependsOn": "dm: reparse", "label": "Build All" }, { @@ -34,6 +38,11 @@ ], "group": "build", "label": "tgui: build" + }, + { + "command": "${command:dreammaker.reparse}", + "group": "build", + "label": "dm: reparse" } ] } diff --git a/Build.bat b/Build.bat index dd3a6fd9d981..8225158e4d87 100644 --- a/Build.bat +++ b/Build.bat @@ -1,2 +1,2 @@ -@call tools\build\build +@call "%~dp0\tools\build\build" @pause diff --git a/SpacemanDMM.toml b/SpacemanDMM.toml index b82747225467..81aff0d55768 100644 --- a/SpacemanDMM.toml +++ b/SpacemanDMM.toml @@ -1,2 +1,9 @@ [langserver] dreamchecker = true + +[code_standards] +disallow_relative_type_definitions = true +disallow_relative_proc_definitions = true + +[dmdoc] +use_typepath_names = true diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index b2c0ff0af31c..8b6b3966514d 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1031,7 +1031,7 @@ B --><-- A return closest_atom -proc/pick_closest_path(value, list/matches = get_fancy_list_of_atom_types()) +/proc/pick_closest_path(value, list/matches = get_fancy_list_of_atom_types()) if (value == FALSE) //nothing should be calling us with a number, so this is safe value = input("Enter type to find (blank for all, cancel to cancel)", "Search for type") as null|text if (isnull(value)) diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm index 36a47dcb345b..07eeedae3625 100644 --- a/code/datums/traits/good.dm +++ b/code/datums/traits/good.dm @@ -61,7 +61,7 @@ lose_text = "You feel isolated from others." medical_record_text = "Patient is highly perceptive of and sensitive to social cues, or may possibly have ESP. Further testing needed." -datum/quirk/fan_clown +/datum/quirk/fan_clown name = "Clown Fan" desc = "You enjoy clown antics and get a mood boost from wearing your clown pin." value = 1 @@ -81,7 +81,7 @@ datum/quirk/fan_clown var/datum/atom_hud/fan = GLOB.huds[DATA_HUD_FAN] fan.add_hud_to(H) -datum/quirk/fan_mime +/datum/quirk/fan_mime name = "Mime Fan" desc = "You enjoy mime antics and get a mood boost from wearing your mime pin." value = 1 diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm index 8dd52dcb7868..94fd49e452bc 100644 --- a/code/datums/traits/neutral.dm +++ b/code/datums/traits/neutral.dm @@ -30,7 +30,7 @@ var/datum/species/species = H.dna.species if(initial(species.liked_food) & MEAT) species.liked_food |= MEAT - if(!initial(species.disliked_food) & MEAT) + if(!(initial(species.disliked_food) & MEAT)) species.disliked_food &= ~MEAT /datum/quirk/snob diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 710684cd504a..cf1f13a0b4d3 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -778,7 +778,7 @@ else . += "It looks very robust." - if(issilicon(user) && (!machine_stat & BROKEN)) + if(issilicon(user) && !(machine_stat & BROKEN)) . += "Shift-click [src] to [ density ? "open" : "close"] it." . += "Ctrl-click [src] to [ locked ? "raise" : "drop"] its bolts." . += "Alt-click [src] to [ secondsElectrified ? "un-electrify" : "permanently electrify"] it." diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index bb3195333e9f..b26c08c44571 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -84,7 +84,7 @@ Possible to do for anyone motivated enough: desc = "It's a floor-mounted device for projecting holographic images. This one will refuse to auto-connect incoming calls." secure = TRUE -obj/machinery/holopad/secure/Initialize() +/obj/machinery/holopad/secure/Initialize() . = ..() var/obj/item/circuitboard/machine/holopad/board = circuit board.secure = TRUE diff --git a/code/game/mecha/combat/durand.dm b/code/game/mecha/combat/durand.dm index 6c2532633a80..99f803076915 100644 --- a/code/game/mecha/combat/durand.dm +++ b/code/game/mecha/combat/durand.dm @@ -94,7 +94,7 @@ Expects a turf. Returns true if the attack should be blocked, false if not.*/ . = TRUE return -obj/mecha/combat/durand/attack_generic(mob/user, damage_amount = 0, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, armor_penetration = 0) +/obj/mecha/combat/durand/attack_generic(mob/user, damage_amount = 0, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, armor_penetration = 0) if(defense_check(user.loc)) log_message("Attack absorbed by defense field. Attacker - [user].", LOG_MECHA, color="orange") shield.attack_generic(user, damage_amount, damage_type, damage_flag, sound_effect, armor_penetration) diff --git a/code/game/objects/items/dice.dm b/code/game/objects/items/dice.dm index 205caa3f600e..4b599292f090 100644 --- a/code/game/objects/items/dice.dm +++ b/code/game/objects/items/dice.dm @@ -93,7 +93,7 @@ /obj/item/dice/d6 name = "d6" -obj/item/dice/d6/ebony +/obj/item/dice/d6/ebony name = "ebony die" desc = "A die with six sides made of dense black wood. It feels cold and heavy in your hand." icon_state = "de6" diff --git a/code/game/objects/items/grenades/festive.dm b/code/game/objects/items/grenades/festive.dm index f5b534d95787..cedcb23dcca6 100644 --- a/code/game/objects/items/grenades/festive.dm +++ b/code/game/objects/items/grenades/festive.dm @@ -84,7 +84,7 @@ /obj/item/grenade/firecracker/fire_act(exposed_temperature, exposed_volume) prime() -obj/item/grenade/firecracker/wirecutter_act(mob/living/user, obj/item/I) +/obj/item/grenade/firecracker/wirecutter_act(mob/living/user, obj/item/I) if(active) return if(det_time) @@ -96,7 +96,7 @@ obj/item/grenade/firecracker/wirecutter_act(mob/living/user, obj/item/I) else to_chat(user, "You've already removed all of the fuse!") -obj/item/grenade/firecracker/preprime(mob/user, delayoverride, msg = TRUE, volume = 80) +/obj/item/grenade/firecracker/preprime(mob/user, delayoverride, msg = TRUE, volume = 80) var/turf/T = get_turf(src) log_grenade(user, T) if(user) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 95e2814eafe2..b815f5d66fd3 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -118,7 +118,7 @@ to_chat(user, "Throwing [pushed_mob] onto the table might hurt them!") return var/added_passtable = FALSE - if(!pushed_mob.pass_flags & PASSTABLE) + if(!(pushed_mob.pass_flags & PASSTABLE)) added_passtable = TRUE pushed_mob.pass_flags |= PASSTABLE pushed_mob.Move(src.loc) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index faad838fd4f3..7ccf61eb733c 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -378,7 +378,7 @@ chosen_candidate.client.prefs.copy_to(ERTOperative) ERTOperative.key = chosen_candidate.key - if(ertemplate.enforce_human || !ERTOperative.dna.species.changesource_flags & ERT_SPAWN) // Don't want any exploding plasmemes + if(ertemplate.enforce_human || !(ERTOperative.dna.species.changesource_flags & ERT_SPAWN)) // Don't want any exploding plasmemes ERTOperative.set_species(/datum/species/human) //Give antag datum diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index ec8faf19147b..de12c9235d81 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -273,7 +273,7 @@ GLOBAL_LIST_EMPTY(antagonists) show_name_in_check_antagonists = TRUE //They're all different var/datum/team/custom_team -datum/antagonist/custom/create_team(datum/team/team) +/datum/antagonist/custom/create_team(datum/team/team) custom_team = team /datum/antagonist/custom/get_team() diff --git a/code/modules/atmospherics/gasmixtures/reactions.dm b/code/modules/atmospherics/gasmixtures/reactions.dm index 2eeb00a34047..e379c1715f11 100644 --- a/code/modules/atmospherics/gasmixtures/reactions.dm +++ b/code/modules/atmospherics/gasmixtures/reactions.dm @@ -246,18 +246,18 @@ return cached_results["fire"] ? REACTING : NO_REACTION //freon reaction (is not a fire yet) -datum/gas_reaction/freonfire +/datum/gas_reaction/freonfire priority = -3 name = "Freon combustion" id = "freonfire" -datum/gas_reaction/freonfire/init_reqs() +/datum/gas_reaction/freonfire/init_reqs() min_requirements = list( /datum/gas/oxygen = MINIMUM_MOLE_COUNT, /datum/gas/freon = MINIMUM_MOLE_COUNT ) -datum/gas_reaction/freonfire/react(datum/gas_mixture/air, datum/holder) +/datum/gas_reaction/freonfire/react(datum/gas_mixture/air, datum/holder) var/energy_released = 0 var/old_heat_capacity = air.heat_capacity() var/temperature = air.return_temperature() diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm index dd0485661d94..4db287b5167e 100644 --- a/code/modules/client/preferences_toggles.dm +++ b/code/modules/client/preferences_toggles.dm @@ -284,7 +284,7 @@ TOGGLE_CHECKBOX(/datum/verbs/menu/Settings, listen_ooc)() return C.prefs.chat_toggles & CHAT_OOC //BeginWS Edit -TOGGLE_CHECKBOX(datum/verbs/menu/settings, listen_looc)() +TOGGLE_CHECKBOX(/datum/verbs/menu/settings, listen_looc)() set name = "Show/Hide LOOC" set category = "Preferences" set desc = "Toggles seeing Local Out Of Character chat" diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm index 8dfcb5b9097e..94419a58c283 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm @@ -23,7 +23,7 @@ ) result = /obj/item/reagent_containers/food/snacks/donut/chaos -datum/crafting_recipe/food/donut/meat +/datum/crafting_recipe/food/donut/meat time = 15 name = "Meat donut" reqs = list( diff --git a/code/modules/mining/aux_base_camera.dm b/code/modules/mining/aux_base_camera.dm index 89b6bbb0b2e6..dd98e05079db 100644 --- a/code/modules/mining/aux_base_camera.dm +++ b/code/modules/mining/aux_base_camera.dm @@ -202,27 +202,27 @@ name = "Select Airlock Type" button_icon_state = "airlock_select" -datum/action/innate/aux_base/airlock_type/Activate() +/datum/action/innate/aux_base/airlock_type/Activate() if(..()) return B.RCD.change_airlock_setting() -datum/action/innate/aux_base/window_type +/datum/action/innate/aux_base/window_type name = "Select Window Type" button_icon_state = "window_select" -datum/action/innate/aux_base/window_type/Activate() +/datum/action/innate/aux_base/window_type/Activate() if(..()) return B.RCD.toggle_window_type() -datum/action/innate/aux_base/place_fan +/datum/action/innate/aux_base/place_fan name = "Place Tiny Fan" button_icon_state = "build_fan" -datum/action/innate/aux_base/place_fan/Activate() +/datum/action/innate/aux_base/place_fan/Activate() if(..()) return @@ -244,11 +244,11 @@ datum/action/innate/aux_base/place_fan/Activate() to_chat(owner, "Tiny fan placed. [B.fans_remaining] remaining.") playsound(fan_turf, 'sound/machines/click.ogg', 50, TRUE) -datum/action/innate/aux_base/install_turret +/datum/action/innate/aux_base/install_turret name = "Install Plasma Anti-Wildlife Turret" button_icon_state = "build_turret" -datum/action/innate/aux_base/install_turret/Activate() +/datum/action/innate/aux_base/install_turret/Activate() if(..()) return diff --git a/code/modules/mob/living/carbon/human/species_types/IPC.dm b/code/modules/mob/living/carbon/human/species_types/IPC.dm index df6437c5a2c9..e2d24821d8a8 100644 --- a/code/modules/mob/living/carbon/human/species_types/IPC.dm +++ b/code/modules/mob/living/carbon/human/species_types/IPC.dm @@ -65,7 +65,7 @@ else if(MUTCOLORS in C.dna.species.species_traits) C.dna.species.species_traits -= MUTCOLORS -datum/species/ipc/on_species_loss(mob/living/carbon/C) +/datum/species/ipc/on_species_loss(mob/living/carbon/C) . = ..() if(change_screen) change_screen.Remove(C) diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm index 8d9d60326740..946a9e52c125 100644 --- a/code/modules/mob/living/simple_animal/hostile/bear.dm +++ b/code/modules/mob/living/simple_animal/hostile/bear.dm @@ -123,7 +123,7 @@ to_chat(user, "You strap the armor plating to [A] and sharpen [A.p_their()] claws with the nail filer. This was a great idea.") qdel(src) -mob/living/simple_animal/hostile/bear/butter //The mighty companion to Cak. Several functions used from it. +/mob/living/simple_animal/hostile/bear/butter //The mighty companion to Cak. Several functions used from it. name = "Terrygold" icon_state = "butterbear" icon_living = "butterbear" @@ -168,7 +168,7 @@ mob/living/simple_animal/hostile/bear/butter //The mighty companion to Cak. Seve to_chat(src, "Your name is now \"new_name\"!") name = new_name -mob/living/simple_animal/hostile/bear/butter/AttackingTarget() //Makes some attacks by the butter bear slip those who dare cross its path. +/mob/living/simple_animal/hostile/bear/butter/AttackingTarget() //Makes some attacks by the butter bear slip those who dare cross its path. if(isliving(target)) var/mob/living/L = target if((L.body_position == STANDING_UP)) diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index 720c4d555b53..f4df86cafb60 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -389,7 +389,7 @@ name = "Wrap" panel = "Spider" active = FALSE - datum/action/spell_action/action = null + action = null desc = "Wrap something or someone in a cocoon. If it's a living being, you'll also consume them, allowing you to lay eggs." ranged_mousepointer = 'icons/effects/mouse_pointers/wrap_target.dmi' action_icon = 'icons/mob/actions/actions_animal.dmi' diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index f52ffbebcd35..2ee08eb33b43 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -466,7 +466,7 @@ DestroyObjectsInDirection(direction) -mob/living/simple_animal/hostile/proc/DestroySurroundings() // for use with megafauna destroying everything around them +/mob/living/simple_animal/hostile/proc/DestroySurroundings() // for use with megafauna destroying everything around them if(environment_smash) EscapeConfinement() for(var/dir in GLOB.cardinals) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index 87da8560327c..120245bdb6e4 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -521,7 +521,7 @@ Difficulty: Medium else animate(src, pixel_x = -16, pixel_z = 0, time = 5) -obj/effect/temp_visual/fireball +/obj/effect/temp_visual/fireball icon = 'icons/obj/wizard.dmi' icon_state = "fireball" name = "fireball" diff --git a/code/modules/mob/living/simple_animal/hostile/space_dragon.dm b/code/modules/mob/living/simple_animal/hostile/space_dragon.dm index 4b369c86e425..abdd04a7fd05 100644 --- a/code/modules/mob/living/simple_animal/hostile/space_dragon.dm +++ b/code/modules/mob/living/simple_animal/hostile/space_dragon.dm @@ -208,7 +208,7 @@ * Arguments: * * turf/T - The turf to trigger the effects on. */ -mob/living/simple_animal/hostile/space_dragon/proc/dragon_fire_line(turf/T) +/mob/living/simple_animal/hostile/space_dragon/proc/dragon_fire_line(turf/T) var/list/hit_list = list() hit_list += src new /obj/effect/hotspot(T) diff --git a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm index e8bdca48400a..c22ae43a3e58 100644 --- a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm +++ b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm @@ -186,5 +186,5 @@ * Arguments: * * datum/beam/vine - The vine to be removed from the list. */ -mob/living/simple_animal/hostile/venus_human_trap/proc/remove_vine(datum/beam/vine, force) +/mob/living/simple_animal/hostile/venus_human_trap/proc/remove_vine(datum/beam/vine, force) vines -= vine diff --git a/code/modules/photography/photos/album.dm b/code/modules/photography/photos/album.dm index 835b93c09d36..2ba5f5499307 100644 --- a/code/modules/photography/photos/album.dm +++ b/code/modules/photography/photos/album.dm @@ -96,10 +96,10 @@ name = "photo album (Library)" persistence_id = "library" -obj/item/storage/photo_album/chapel +/obj/item/storage/photo_album/chapel name = "photo album (Chapel)" persistence_id = "chapel" -obj/item/storage/photo_album/prison +/obj/item/storage/photo_album/prison name = "photo album (Prison)" persistence_id = "prison" diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index 178668b251ee..b545bdbd4709 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -16,11 +16,11 @@ tac_reloads = FALSE weapon_weight = WEAPON_MEDIUM -obj/item/gun/ballistic/rifle/update_overlays() +/obj/item/gun/ballistic/rifle/update_overlays() . = ..() . += "[icon_state]_bolt[bolt_locked ? "_locked" : ""]" -obj/item/gun/ballistic/rifle/rack(mob/user = null) +/obj/item/gun/ballistic/rifle/rack(mob/user = null) if (bolt_locked == FALSE) to_chat(user, "You open the bolt of \the [src].") playsound(src, rack_sound, rack_sound_volume, rack_sound_vary) @@ -30,12 +30,12 @@ obj/item/gun/ballistic/rifle/rack(mob/user = null) return drop_bolt(user) -obj/item/gun/ballistic/rifle/can_shoot() +/obj/item/gun/ballistic/rifle/can_shoot() if (bolt_locked) return FALSE return ..() -obj/item/gun/ballistic/rifle/attackby(obj/item/A, mob/user, params) +/obj/item/gun/ballistic/rifle/attackby(obj/item/A, mob/user, params) if (!bolt_locked) to_chat(user, "The bolt is closed!") return diff --git a/code/modules/reagents/reagent_containers/chem_pack.dm b/code/modules/reagents/reagent_containers/chem_pack.dm index 4bb64506100e..666f812e7054 100644 --- a/code/modules/reagents/reagent_containers/chem_pack.dm +++ b/code/modules/reagents/reagent_containers/chem_pack.dm @@ -33,7 +33,7 @@ . += "Alt-click to seal it." -obj/item/reagent_containers/chem_pack/attack_self(mob/user) +/obj/item/reagent_containers/chem_pack/attack_self(mob/user) if(sealed) return ..() diff --git a/code/modules/research/nanites/nanite_programs.dm b/code/modules/research/nanites/nanite_programs.dm index 7ae9c8faac8a..06c7bf13d45f 100644 --- a/code/modules/research/nanites/nanite_programs.dm +++ b/code/modules/research/nanites/nanite_programs.dm @@ -247,14 +247,14 @@ software_error() /datum/nanite_program/proc/on_shock(shock_damage) - if(!program_flags & NANITE_SHOCK_IMMUNE) + if(!(program_flags & NANITE_SHOCK_IMMUNE)) if(prob(10)) software_error() else if(prob(33)) qdel(src) /datum/nanite_program/proc/on_minor_shock() - if(!program_flags & NANITE_SHOCK_IMMUNE) + if(!(program_flags & NANITE_SHOCK_IMMUNE)) if(prob(10)) software_error() diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index 2d988b8aed11..be4a4d6714c7 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -222,7 +222,7 @@ duration = -1 alert_type = null -datum/status_effect/rebreathing/tick() +/datum/status_effect/rebreathing/tick() owner.adjustOxyLoss(-6, 0) //Just a bit more than normal breathing. /////////////////////////////////////////////////////// @@ -504,7 +504,7 @@ datum/status_effect/rebreathing/tick() ADD_TRAIT(owner, TRAIT_NOSLIPWATER, "slimestatus") return ..() -datum/status_effect/stabilized/blue/on_remove() +/datum/status_effect/stabilized/blue/on_remove() REMOVE_TRAIT(owner, TRAIT_NOSLIPWATER, "slimestatus") /datum/status_effect/stabilized/metal diff --git a/code/modules/shuttle/spaceship_navigation_beacon.dm b/code/modules/shuttle/spaceship_navigation_beacon.dm index ec6efb1e6b4f..e5b4cf4ea79c 100644 --- a/code/modules/shuttle/spaceship_navigation_beacon.dm +++ b/code/modules/shuttle/spaceship_navigation_beacon.dm @@ -21,7 +21,7 @@ . = ..() SSshuttle.beacons |= src -obj/machinery/spaceship_navigation_beacon/emp_act() +/obj/machinery/spaceship_navigation_beacon/emp_act() locked = TRUE /obj/machinery/spaceship_navigation_beacon/Destroy() diff --git a/code/world.dm b/code/world.dm index 728f1ccefcc4..77183816d388 100644 --- a/code/world.dm +++ b/code/world.dm @@ -18,7 +18,7 @@ view = "15x15" hub = "Exadv1.spacestation13" hub_password = "kMZy3U5jJHSiBQjr" - name = "White Sands" + name = "Shiptest 13" fps = 20 #ifdef FIND_REF_NO_CHECK_TICK loop_checks = FALSE diff --git a/tgui/packages/tgui/components/AnimatedNumber.js b/tgui/packages/tgui/components/AnimatedNumber.js index e8d5e618fac9..05b89c96d022 100644 --- a/tgui/packages/tgui/components/AnimatedNumber.js +++ b/tgui/packages/tgui/components/AnimatedNumber.js @@ -63,7 +63,7 @@ export class AnimatedNumber extends Component { if (!isSafeNumber(targetValue)) { return targetValue || null; } - let formattedValue = currentValue; + let formattedValue; // Use custom formatter if (format) { formattedValue = format(currentValue); diff --git a/tgui/packages/tgui/format.js b/tgui/packages/tgui/format.js index 6ee02b4b1314..6de63f29cef6 100644 --- a/tgui/packages/tgui/format.js +++ b/tgui/packages/tgui/format.js @@ -100,7 +100,7 @@ export const formatMoney = (value, precision = 0) => { */ export const formatDb = value => { const db = 20 * Math.log(value) / Math.log(10); - const sign = db >= 0 ? '+' : db < 0 ? '–' : ''; + const sign = db >= 0 ? '+' : '–'; let formatted = Math.abs(db); if (formatted === Infinity) { formatted = 'Inf'; diff --git a/tools/bootstrap/node.bat b/tools/bootstrap/node.bat index 5e721641463e..ac0a76c41612 100644 --- a/tools/bootstrap/node.bat +++ b/tools/bootstrap/node.bat @@ -1 +1,9 @@ -@call powershell.exe -NoLogo -ExecutionPolicy Bypass -File "%~dp0\node_.ps1" %* +@echo off +where node.exe >nul 2>nul +if %errorlevel% == 0 ( + echo | set /p printed_str="Using system-wide Node " + call node.exe --version + call node.exe %* +) else ( + call powershell.exe -NoLogo -ExecutionPolicy Bypass -File "%~dp0\node_.ps1" %* +) diff --git a/tools/bootstrap/node_.ps1 b/tools/bootstrap/node_.ps1 index 935b7e7a8518..6730975370bb 100644 --- a/tools/bootstrap/node_.ps1 +++ b/tools/bootstrap/node_.ps1 @@ -1,15 +1,21 @@ -# bootstrap/node_.ps1 -# -# Node bootstrapping script for Windows. -# -# Automatically downloads a Node version to a cache directory and invokes it. -# -# The underscore in the name is so that typing `bootstrap/node` into -# PowerShell finds the `.bat` file first, which ensures this script executes -# regardless of ExecutionPolicy. -$host.ui.RawUI.WindowTitle = "starting :: node $args" +## bootstrap/node_.ps1 +## +## Node bootstrapping script for Windows. +## +## Automatically downloads a Node version to a cache directory and invokes it. +## +## The underscore in the name is so that typing `bootstrap/node` into +## PowerShell finds the `.bat` file first, which ensures this script executes +## regardless of ExecutionPolicy. + +#Requires -Version 4.0 + +$Host.ui.RawUI.WindowTitle = "starting :: node $Args" $ErrorActionPreference = "Stop" -Add-Type -AssemblyName System.IO.Compression.FileSystem + +## This forces UTF-8 encoding across all powershell built-ins +$OutputEncoding = [System.Console]::OutputEncoding = [System.Text.Encoding]::UTF8 +$PSDefaultParameterValues['*:Encoding'] = 'utf8' function ExtractVersion { param([string] $Path, [string] $Key) @@ -21,47 +27,31 @@ function ExtractVersion { throw "Couldn't find value for $Key in $Path" } -# Convenience variables -$Bootstrap = Split-Path $script:MyInvocation.MyCommand.Path -$Cache = "$Bootstrap/.cache" +## Convenience variables +$BaseDir = Split-Path $script:MyInvocation.MyCommand.Path +$Cache = "$BaseDir/.cache" if ($Env:TG_BOOTSTRAP_CACHE) { $Cache = $Env:TG_BOOTSTRAP_CACHE } -$NodeVersion = ExtractVersion -Path "$Bootstrap/../../dependencies.sh" -Key "NODE_VERSION_PRECISE" -$NodeFullVersion = "node-v$NodeVersion-win-x64" -$NodeDir = "$Cache/$NodeFullVersion" +$NodeVersion = ExtractVersion -Path "$BaseDir/../../dependencies.sh" -Key "NODE_VERSION_PRECISE" +$NodeDir = "$Cache/node-v$NodeVersion" $NodeExe = "$NodeDir/node.exe" -$Log = "$Cache/last-command.log" -# Download and unzip Node +## Download and unzip Node if (!(Test-Path $NodeExe -PathType Leaf)) { - $host.ui.RawUI.WindowTitle = "Downloading Node $NodeVersion..." - New-Item $Cache -ItemType Directory -ErrorAction silentlyContinue | Out-Null - - $Archive = "$Cache/node-v$NodeVersion.zip" + $Host.ui.RawUI.WindowTitle = "Downloading Node $NodeVersion..." + New-Item $NodeDir -ItemType Directory -ErrorAction silentlyContinue | Out-Null Invoke-WebRequest ` - "https://nodejs.org/download/release/v$NodeVersion/$NodeFullVersion.zip" ` - -OutFile $Archive ` + "https://nodejs.org/download/release/v$NodeVersion/win-x86/node.exe" ` + -OutFile $NodeExe ` -ErrorAction Stop - $tmp = "$Cache/tmp" - if (Test-Path $tmp) { - Remove-Item $tmp -Recurse - } - [System.IO.Compression.ZipFile]::ExtractToDirectory($Archive, $tmp) - Move-Item $tmp/node-* $Cache - Remove-Item $tmp - Remove-Item $Archive } -# Invoke Node with all command-line arguments -Write-Output $NodeExe | Out-File -Encoding utf8 $Log -[System.String]::Join([System.Environment]::NewLine, $args) | Out-File -Encoding utf8 -Append $Log -Write-Output "---" | Out-File -Encoding utf8 -Append $Log -$Env:PATH = "$NodeDir;$ENV:Path" # Set PATH so that recursive calls find it -$host.ui.RawUI.WindowTitle = "node $args" +## Set PATH so that recursive calls find it +$Env:PATH = "$NodeDir;$ENV:Path" + +## Invoke Node with all command-line arguments +$Host.ui.RawUI.WindowTitle = "node $Args" $ErrorActionPreference = "Continue" -& $NodeExe $args 2>&1 | ForEach-Object { - "$_" | Out-File -Encoding utf8 -Append $Log - "$_" | Out-Host -} +& "$NodeExe" @Args exit $LastExitCode diff --git a/tools/build/cbt/fs.js b/tools/build/cbt/fs.js index f479a32bd645..68a5a8bfbf07 100644 --- a/tools/build/cbt/fs.js +++ b/tools/build/cbt/fs.js @@ -132,5 +132,4 @@ module.exports = { compareFiles, stat, resolveGlob, - compareFiles, }; diff --git a/tools/build/cbt/glob.js b/tools/build/cbt/glob.js index df6e153b38d1..234a5ad011d5 100644 --- a/tools/build/cbt/glob.js +++ b/tools/build/cbt/glob.js @@ -1851,7 +1851,7 @@ function mark (self, p) { // lotta situps... function makeAbs (self, f) { - var abs = f; + var abs; if (f.charAt(0) === '/') { abs = path__default['default'].join(self.root, f); } else if (pathIsAbsolute(f) || f === '') { diff --git a/tools/build/cbt/task.js b/tools/build/cbt/task.js index 8b2ccbf3bb8f..f074ec0b8b71 100644 --- a/tools/build/cbt/task.js +++ b/tools/build/cbt/task.js @@ -69,7 +69,7 @@ class Task { if (!this.script) { return; } - console.warn(` => Starting '${this.name}': ${needsRebuild}`); + console.warn(` => Starting '${this.name}'`); const startedAt = Date.now(); // Run the script await this.script(); diff --git a/tools/mapmerge2/dmm.py b/tools/mapmerge2/dmm.py index 2d87cfc17244..453cdf5c8af5 100644 --- a/tools/mapmerge2/dmm.py +++ b/tools/mapmerge2/dmm.py @@ -58,7 +58,7 @@ def set_tile(self, coord, tile): self.grid[coord] = self.get_or_generate_key(tile) def generate_new_key(self): - free_keys = self._ensure_free_keys(1) + self._ensure_free_keys(1) max_key = max_key_for(self.key_length) # choose one of the free keys at random key = random.randint(0, max_key - 1) diff --git a/whitesands/code/datums/status_effects/debuffs.dm b/whitesands/code/datums/status_effects/debuffs.dm index 3be643c76aa0..9d40f494d2c7 100644 --- a/whitesands/code/datums/status_effects/debuffs.dm +++ b/whitesands/code/datums/status_effects/debuffs.dm @@ -1,4 +1,4 @@ -datum/status_effect/metab_frozen +/datum/status_effect/metab_frozen id = "metab_frozen" duration = 5 SECONDS status_type = STATUS_EFFECT_REFRESH diff --git a/whitesands/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/whitesands/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm index 1d800bd1a7f4..459d35ea965f 100644 --- a/whitesands/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm +++ b/whitesands/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -102,7 +102,7 @@ projectiletype = /obj/projectile/temp/basilisk_heat addtimer(CALLBACK(src, .proc/cool_down), 3000) -mob/living/simple_animal/hostile/asteroid/basilisk/proc/cool_down() +/mob/living/simple_animal/hostile/asteroid/basilisk/proc/cool_down() visible_message("[src] appears to be cooling down...") if(stat != DEAD) icon_state = "Basilisk" @@ -144,14 +144,14 @@ mob/living/simple_animal/hostile/asteroid/basilisk/proc/cool_down() return FALSE return TRUE -mob/living/simple_animal/hostile/asteroid/basilisk/whitesands/attacked_by(obj/item/I, mob/living/user) +/mob/living/simple_animal/hostile/asteroid/basilisk/whitesands/attacked_by(obj/item/I, mob/living/user) if(I.force) if(shell_damage(I.force)) // Damage was absorbed by the shell, no need to go further send_item_attack_message(I, user) return TRUE return ..() - -mob/living/simple_animal/hostile/asteroid/basilisk/whitesands/bullet_act(obj/projectile/P) + +/mob/living/simple_animal/hostile/asteroid/basilisk/whitesands/bullet_act(obj/projectile/P) shell_damage(BULLET_SHELL_DAMAGE) return ..() @@ -160,7 +160,7 @@ mob/living/simple_animal/hostile/asteroid/basilisk/whitesands/bullet_act(obj/pro shell_damage(BULLET_SHELL_DAMAGE) ..() -mob/living/simple_animal/hostile/asteroid/basilisk/whitesands/drop_loot() +/mob/living/simple_animal/hostile/asteroid/basilisk/whitesands/drop_loot() if(has_shell) for(var/l in shell_loot) // You get the stuff anyways new l(loc) diff --git a/whitesands/code/modules/mob/say_vr.dm b/whitesands/code/modules/mob/say_vr.dm index 1e7ee3672387..9791bf0ebed6 100644 --- a/whitesands/code/modules/mob/say_vr.dm +++ b/whitesands/code/modules/mob/say_vr.dm @@ -39,7 +39,7 @@ return M.get_top_level_mob() return src -proc/get_top_level_mob(var/mob/S) +/proc/get_top_level_mob(var/mob/S) if(istype(S.loc,/mob)&&S.loc!=S) var/mob/M=S.loc return M.get_top_level_mob() diff --git a/whitesands/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/whitesands/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 4589cd693541..1d9d905c7a23 100644 --- a/whitesands/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/whitesands/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -193,7 +193,7 @@ M.add_atom_colour(color, TEMPORARY_COLOUR_PRIORITY) // Changes color to puce ..() -datum/reagent/medicine/puce_essence/expose_atom(atom/A, volume) +/datum/reagent/medicine/puce_essence/expose_atom(atom/A, volume) if(!iscarbon(A)) A.add_atom_colour(color, WASHABLE_COLOUR_PRIORITY) ..() @@ -221,7 +221,7 @@ datum/reagent/medicine/puce_essence/expose_atom(atom/A, volume) M.add_atom_colour(color, TEMPORARY_COLOUR_PRIORITY) // Changes color to chartreuse ..() -datum/reagent/medicine/chartreuse/expose_atom(atom/A, volume) +/datum/reagent/medicine/chartreuse/expose_atom(atom/A, volume) if(!iscarbon(A)) A.add_atom_colour(color, WASHABLE_COLOUR_PRIORITY) ..()