diff --git a/code/__defines/gamemode.dm b/code/__defines/gamemode.dm index 61a977b5bf2f6..34f171523147f 100644 --- a/code/__defines/gamemode.dm +++ b/code/__defines/gamemode.dm @@ -37,7 +37,7 @@ #define MODE_ERT "ert" #define MODE_ACTOR "actor" #define MODE_MERCENARY "mercenary" -#define MODE_NINJA "ninja" +#define MODE_NINJA "operatives" #define MODE_RAIDER "raider" #define MODE_WIZARD "wizard" #define MODE_CHANGELING "changeling" diff --git a/code/_macros.dm b/code/_macros.dm index 6f2068c17298f..b4a22b3d029e7 100644 --- a/code/_macros.dm +++ b/code/_macros.dm @@ -42,6 +42,8 @@ #define isbeam(A) istype(A, /obj/item/projectile/beam) +#define ismagazine(A) istype(A, /obj/item/ammo_magazine) + #define isbrain(A) istype(A, /mob/living/carbon/brain) #define iscarbon(A) istype(A, /mob/living/carbon) diff --git a/code/datums/uplink/hardsuit_modules.dm b/code/datums/uplink/hardsuit_modules.dm index 50ce2ed52c0b4..3338119a0eb74 100644 --- a/code/datums/uplink/hardsuit_modules.dm +++ b/code/datums/uplink/hardsuit_modules.dm @@ -26,7 +26,7 @@ name = "\improper Mounted Energy Gun" desc = "A module that drains your power reserves in order to fire an arm mounted energy gun." item_cost = 48 - path = /obj/item/rig_module/mounted/egun + path = /obj/item/rig_module/mounted/energy/egun /datum/uplink_item/item/hardsuit_modules/power_sink name = "\improper Power Sink" @@ -38,5 +38,5 @@ name = "\improper Mounted Laser Cannon" desc = "A module capable of draining your suit's power reserves in order to fire a shoulder mounted laser cannon." item_cost = 64 - path = /obj/item/rig_module/mounted/lcannon + path = /obj/item/rig_module/mounted/energy/lcannon antag_roles = list(MODE_MERCENARY) diff --git a/code/game/antagonist/outsider/ninja.dm b/code/game/antagonist/outsider/ninja.dm index 117a1cef37f21..7f48fb6101597 100644 --- a/code/game/antagonist/outsider/ninja.dm +++ b/code/game/antagonist/outsider/ninja.dm @@ -2,16 +2,16 @@ GLOBAL_DATUM_INIT(ninjas, /datum/antagonist/ninja, new) /datum/antagonist/ninja id = MODE_NINJA - role_text = "Ninja" - role_text_plural = "Ninja" + role_text = "Operative" + role_text_plural = "Operatives" landmark_id = "ninjastart" - welcome_text = "You are an elite mercenary assassin of the Spider Clan. You have a variety of abilities at your disposal, thanks to your nano-enhanced cyber armor." + welcome_text = "You are an elite operative of some interest group. You have a variety of abilities at your disposal, thanks to your advanced hardsuit." flags = ANTAG_OVERRIDE_JOB | ANTAG_OVERRIDE_MOB | ANTAG_CLEAR_EQUIPMENT | ANTAG_CHOOSE_NAME | ANTAG_RANDSPAWN | ANTAG_VOTABLE | ANTAG_SET_APPEARANCE antaghud_indicator = "hudninja" initial_spawn_req = 1 - initial_spawn_target = 1 - hard_cap = 1 + initial_spawn_target = 2 + hard_cap = 2 hard_cap_round = 3 min_player_age = 18 @@ -81,41 +81,40 @@ GLOBAL_DATUM_INIT(ninjas, /datum/antagonist/ninja, new) player.StoreMemory("Directive: [SPAN_DANGER("[directive]")]
", /singleton/memory_options/system) to_chat(player, "Remember your directive: [directive].") -/datum/antagonist/ninja/update_antag_mob(datum/mind/player) - ..() - var/ninja_title = pick(GLOB.ninja_titles) - var/ninja_name = pick(GLOB.ninja_names) - var/mob/living/carbon/human/H = player.current - if(istype(H)) - H.real_name = "[ninja_title] [ninja_name]" - H.SetName(H.real_name) - player.name = H.name - /datum/antagonist/ninja/equip(mob/living/carbon/human/player) . = ..() if(.) - var/obj/item/device/radio/R = new /obj/item/device/radio/headset(player) + var/obj/item/device/radio/R = new /obj/item/device/radio/headset/syndicate(player) player.equip_to_slot_or_del(R, slot_l_ear) player.equip_to_slot_or_del(new /obj/item/clothing/under/color/black(player), slot_w_uniform) - player.equip_to_slot_or_del(new /obj/item/device/flashlight(player), slot_belt) - create_id("Infiltrator", player) - equip_rig(/obj/item/rig/light/ninja, player) + create_id("Operative", player) var/obj/item/modular_computer/pda/syndicate/U = new player.put_in_hands(U) var/singleton/uplink_source/pda/uplink_source = new uplink_source.setup_uplink_source(player, 0) + var/obj/item/ninja_kit/kit = new + player.put_in_hands(kit) + +/datum/antagonist/ninja/equip_vox(mob/living/carbon/human/vox, mob/living/carbon/human/old) + vox.equip_to_slot_or_del(new /obj/item/clothing/under/vox/vox_casual(vox), slot_w_uniform) + vox.equip_to_slot_or_del(new /obj/item/clothing/shoes/magboots/vox(vox), slot_shoes) + vox.equip_to_slot_or_del(new /obj/item/clothing/gloves/vox(vox), slot_gloves) + vox.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/vox(vox), slot_wear_mask) + vox.equip_to_slot_or_del(new /obj/item/tank/nitrogen(vox), slot_back) + vox.put_in_hands(locate(/obj/item/modular_computer/pda/syndicate) in old.contents) + vox.set_internals(locate(/obj/item/tank) in vox.contents) /datum/antagonist/ninja/proc/generate_ninja_directive(side) var/directive = "[side=="face"?"[GLOB.using_map.company_name]":"A criminal syndicate"] is your employer. "//Let them know which side they're on. switch(rand(1,19)) if(1) - directive += "The Spider Clan must not be linked to this operation. Remain hidden and covert when possible." + directive += "Your interest group must not be linked to this operation. Remain hidden and covert when possible." if(2) - directive += "[GLOB.using_map.station_name] is financed by an enemy of the Spider Clan. Cause as much structural damage as desired." + directive += "[GLOB.using_map.station_name] is financed by an enemy of your interest group. Cause as much structural damage as desired." if(3) directive += "A wealthy animal rights activist has made a request we cannot refuse. Prioritize saving animal lives whenever possible." if(4) - directive += "The Spider Clan absolutely cannot be linked to this operation. Eliminate witnesses at your discretion." + directive += "Your interest group absolutely cannot be linked to this operation. Eliminate witnesses at your discretion." if(5) directive += "We are currently negotiating with [GLOB.using_map.company_name] [GLOB.using_map.boss_name]. Prioritize saving human lives over ending them." if(6) @@ -123,7 +122,7 @@ GLOBAL_DATUM_INIT(ninjas, /datum/antagonist/ninja, new) if(7) directive += "A financial backer has made an offer we cannot refuse. Implicate criminal involvement in the operation." if(8) - directive += "Let no one question the mercy of the Spider Clan. Ensure the safety of all non-essential personnel you encounter." + directive += "Let no one question the mercy of your interest group. Ensure the safety of all non-essential personnel you encounter." if(9) directive += "A free agent has proposed a lucrative business deal. Implicate [GLOB.using_map.company_name] involvement in the operation." if(10) @@ -136,15 +135,15 @@ GLOBAL_DATUM_INIT(ninjas, /datum/antagonist/ninja, new) directive += "Some disgruntled [GLOB.using_map.company_name] employees have been supportive of our operations. Be wary of any mistreatment by command staff." if(14) var/xenorace = pick(SPECIES_UNATHI, SPECIES_SKRELL) - directive += "A group of [xenorace] radicals have been loyal supporters of the Spider Clan. Favor [xenorace] crew whenever possible." + directive += "A group of [xenorace] radicals have been loyal supporters of your interest group. Favor [xenorace] crew whenever possible." if(15) - directive += "The Spider Clan has recently been accused of religious insensitivity. Attempt to speak with the Chaplain and prove these accusations false." + directive += "Your interest group has recently been accused of religious insensitivity. Attempt to speak with the Chaplain and prove these accusations false." if(16) - directive += "The Spider Clan has been bargaining with a competing prosthetics manufacturer. Try to shine [GLOB.using_map.company_name] prosthetics in a bad light." + directive += "Your interest group has been bargaining with a competing prosthetics manufacturer. Try to shine [GLOB.using_map.company_name] prosthetics in a bad light." if(17) - directive += "The Spider Clan has recently begun recruiting outsiders. Consider suitable candidates and assess their behavior amongst the crew." + directive += "Your interest group has recently begun recruiting outsiders. Consider suitable candidates and assess their behavior amongst the crew." if(18) - directive += "A cyborg liberation group has expressed interest in our serves. Prove the Spider Clan merciful towards law-bound synthetics." + directive += "A cyborg liberation group has expressed interest in our serves. Prove your interest group is merciful towards law-bound synthetics." else directive += "There are no special supplemental instructions at this time." return directive diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 29c70a42c096c..9b7d61721376b 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -252,6 +252,20 @@ if(istype(hit_atom,/mob/living)) var/mob/living/M = hit_atom M.hitby(src,TT) + var/obj/item/rig/rig = get_rig() + var/mob/living/carbon/human/lunger = src + var/mob/living/carbon/human/victim = M + if (istype(lunger) && istype(victim) && istype(rig)) ///Post-collision combat grab check. Independent of jumping. + for (var/obj/item/rig_module/actuators/R in rig.installed_modules) + if (R.active && R.combatType) + visible_message( + SPAN_WARNING("\The [lunger] latches onto \the [victim]!"), + SPAN_WARNING("You latch onto \the [victim] at the end of your lunge!") + ) + lunger.species.attempt_grab(lunger, victim) + if(istype(lunger.get_active_hand(), /obj/item/grab/normal)) + var/obj/item/grab/normal/G = lunger.get_active_hand() + G.upgrade() else if(isobj(hit_atom)) var/obj/O = hit_atom diff --git a/code/game/gamemodes/ninja/ninja.dm b/code/game/gamemodes/ninja/ninja.dm index f34fd21df5f2c..0405699da803e 100644 --- a/code/game/gamemodes/ninja/ninja.dm +++ b/code/game/gamemodes/ninja/ninja.dm @@ -1,15 +1,15 @@ /datum/game_mode/ninja - name = "Ninja" - round_description = "An agent of the Spider Clan is onboard!" + name = "Operative" + round_description = "An elite operative is on board!" extended_round_description = "What was that?! Was that a person or did your eyes just play tricks on you? \ - You have no idea. That slim-suited, cryptic individual is an enigma to you and all of your knowledge. \ + You have no idea. That hardsuited, cryptic individual is an enigma to you and all of your knowledge. \ Their purpose is unknown. Their mission is unknown. How they arrived to this secure and isolated \ - section of the galaxy, you don't know. What you do know is that there is a silent shadow-stalker piercing \ - through your defenses with technological capabilities eons ahead of your time. They can avoid \ - the omniscience of the AI and rival the most hardened weapons your people are capable of. Tread lightly and \ - only hope this unknown assassin isn't here for you." - config_tag = "ninja" - required_players = 5 + section of the galaxy, you don't know. What you do know is that there is a smooth-criminal piercing \ + through your defenses with technological capabilities decades ahead of your time. The equipment they \ + carry is enough to turn heads far enough that they pop right off. Tread lightly and only hope this operative \ + isn't here for you." + config_tag = "operative" + required_players = 10 required_enemies = 1 end_on_antag_death = FALSE antag_tags = list(MODE_NINJA) diff --git a/code/game/objects/items/devices/personal_shield.dm b/code/game/objects/items/devices/personal_shield.dm index 7f8ea4cb43489..e9983e686560d 100644 --- a/code/game/objects/items/devices/personal_shield.dm +++ b/code/game/objects/items/devices/personal_shield.dm @@ -195,3 +195,83 @@ SetName("activated [initial(name)]") else SetName(initial(name)) + +/obj/item/rig_module/personal_shield + name = "hardsuit energy shield" + desc = "Truly a life-saver: this device protects its user from being hit by objects moving very, very fast. It draws power from a hardsuit's internal battery." + icon = 'icons/obj/tools/batterer.dmi' + icon_state = "battereroff" + var/shield_type = /obj/aura/personal_shield/device + var/shield_power_cost = 100 + var/obj/aura/personal_shield/device/shield + + VAR_PRIVATE/currently_stored_power = 500 + VAR_PRIVATE/max_stored_power = 500 + VAR_PRIVATE/restored_power_per_tick = 5 + VAR_PRIVATE/enable_when_powered = FALSE + + toggleable = TRUE + + interface_name = "energy shield" + interface_desc = "A device that protects its user from being hit by fast moving projectiles. Its internal capacitor can hold 5 charges at a time and recharges slowly over time." + module_cooldown = 10 SECONDS + origin_tech = list(TECH_MATERIAL = 5, TECH_POWER = 6, TECH_MAGNET = 6, TECH_ESOTERIC = 6, TECH_ENGINEERING = 7) + activate_string = "Enable Shield" + deactivate_string = "Disable Shield" + +/obj/item/rig_module/personal_shield/Initialize() + . = ..() + if (holder.cell) + currently_stored_power = holder.cell.use(max_stored_power) + +/obj/item/rig_module/personal_shield/activate() + if (!..()) + return FALSE + + var/mob/living/carbon/human/H = holder.wearer + + if (shield || !H) + return FALSE + if (currently_stored_power < shield_power_cost) + to_chat(H, SPAN_WARNING("\The [src]'s internal capacitor does not have enough charge.")) + return FALSE + shield = new shield_type(H, src) + return TRUE + +/obj/item/rig_module/personal_shield/deactivate() + if (!..()) + return FALSE + + if (!shield) + return + QDEL_NULL(shield) + return TRUE + +/obj/item/rig_module/personal_shield/Process(wait) + if (!holder.cell?.charge || currently_stored_power >= max_stored_power) + return PROCESS_KILL + var/amount_to_restore = min(restored_power_per_tick * wait, max_stored_power - currently_stored_power) + currently_stored_power += holder.cell.use(amount_to_restore) + + if (enable_when_powered && currently_stored_power >= shield_power_cost) + activate(get_holder_of_type(src, /mob)) + +/obj/item/rig_module/personal_shield/proc/take_charge() + if (!actual_take_charge()) + deactivate() + return FALSE + return TRUE + +/obj/item/rig_module/personal_shield/proc/actual_take_charge() + if (!holder.cell) + return FALSE + if (currently_stored_power < shield_power_cost) + return FALSE + + currently_stored_power -= shield_power_cost + START_PROCESSING(SSobj, src) + + if (currently_stored_power < shield_power_cost) + enable_when_powered = TRUE + return FALSE + return TRUE diff --git a/code/game/objects/items/gunboxes.dm b/code/game/objects/items/gunboxes.dm index 058b66c0d89cb..811cb7b1036db 100644 --- a/code/game/objects/items/gunboxes.dm +++ b/code/game/objects/items/gunboxes.dm @@ -17,3 +17,24 @@ user.put_in_any_hand_if_possible(new_weapon) to_chat(user, SPAN_NOTICE("You take \the [new_weapon] out of \the [src].")) qdel(src) + +/obj/item/ninja_kit + name = "loadout selection kit" + desc = "A secure box containing standard operation kit for special forces operatives." + icon = 'icons/obj/tools/xenoarcheology_tools.dmi' + icon_state = "excavation" + var/list/faction_options = list( + "Solar Special Operations Unit" = /obj/structure/closet/crate/ninja/sol, + "Gilgameshi Commando" = /obj/structure/closet/crate/ninja/gcc, + "Syndicate Mercenary" = /obj/structure/closet/crate/ninja/merc, + "Corporate Operative" = /obj/structure/closet/crate/ninja/corpo, + "Spider-Clan Ninja" = /obj/structure/closet/crate/ninja + ) + +/obj/item/ninja_kit/attack_self(mob/user) + var/choice = input(user, "What is your choice?") as null|anything in faction_options + if (choice && user.use_sanity_check(src)) + var/new_item_path = faction_options[choice] + var/obj/new_item = new new_item_path(get_turf(src)) + to_chat(user, SPAN_NOTICE("You have chosen \the [new_item].")) + qdel(src) diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 9f1a5a37cf45b..f0c1f2078a5ba 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -316,3 +316,53 @@ /obj/structure/closet/crate/uranium/WillContain() return list(/obj/item/stack/material/uranium/ten = 5) + +///Base ninja equipment +/obj/structure/closet/crate/ninja + name = "ninja equipment crate" + desc = "An ominous equipment crate." + closet_appearance = /singleton/closet_appearance/crate/secure/weapon + +/obj/structure/closet/crate/ninja/WillContain() + return list( + /obj/item/rig/light/ninja, + /obj/item/material/sword/katana, + /obj/item/storage/box/syndie_kit/silenced + ) + +///Ninja equipment loadouts. Overwritten in torch/structures/closets.dm because of away/example check evils +/obj/structure/closet/crate/ninja/sol + name = "sol equipment crate" + desc = "A tactical equipment crate." + +/obj/structure/closet/crate/ninja/sol/WillContain() + return list( + /obj/item/rig/light/ninja/sol + ) + +/obj/structure/closet/crate/ninja/gcc + name = "gcc equipment crate" + desc = "A heavy equipment crate." + +/obj/structure/closet/crate/ninja/gcc/WillContain() + return list( + /obj/item/rig/light/ninja/gcc + ) + +/obj/structure/closet/crate/ninja/corpo + name = "corporate equipment crate" + desc = "A patented equipment crate." + +/obj/structure/closet/crate/ninja/corpo/WillContain() + return list( + /obj/item/rig/light/ninja/corpo + ) + +/obj/structure/closet/crate/ninja/merc + name = "mercenary equipment crate" + desc = "A traitorous equipment crate." + +/obj/structure/closet/crate/ninja/merc/WillContain() + return list( + /obj/item/rig/merc/ninja + ) diff --git a/code/modules/augment/active/armblades.dm b/code/modules/augment/active/armblades.dm index 5ed7bdad2a3a7..75e71588007b2 100644 --- a/code/modules/augment/active/armblades.dm +++ b/code/modules/augment/active/armblades.dm @@ -13,6 +13,14 @@ edge = TRUE attack_verb = list("stabbed", "sliced", "cut") +/obj/item/material/armblade/mounted + name = "hardsuit armblade" + desc = "An extra large, extra sharp armblade. Rip and tear." + default_material = MATERIAL_PLASTEEL + +/obj/item/material/armblade/mounted/dropped() /// This should not exist on its own + ..() + QDEL_IN(src, 0) /obj/item/organ/internal/augment/active/item/armblade name = "embedded blade" diff --git a/code/modules/clothing/spacesuits/rig/modules/combat.dm b/code/modules/clothing/spacesuits/rig/modules/combat.dm index 6108716d9f55d..c9fdf21ae571b 100644 --- a/code/modules/clothing/spacesuits/rig/modules/combat.dm +++ b/code/modules/clothing/spacesuits/rig/modules/combat.dm @@ -191,10 +191,10 @@ list("illumination grenade", "illumination grenade", /obj/item/grenade/light, 6), ) -/obj/item/rig_module/mounted +/obj/item/rig_module/mounted ///Separated into energy and ballistics to allow their respective interactions name = "mounted gun" - desc = "Somesort of mounted gun." + desc = "Some sort of mounted gun." selectable = 1 usable = 1 module_cooldown = 0 @@ -205,29 +205,66 @@ engage_string = "Configure" interface_name = "mounted gun" - interface_desc = "A shoulder-mounted cell-powered laser gun." + interface_desc = "A suit mounted gun." - var/obj/item/gun/gun -/obj/item/rig_module/mounted/Initialize() +/obj/item/rig_module/mounted/energy + abstract_type = /obj/item/rig_module/mounted/energy + var/obj/item/gun/energy/laser + +/obj/item/rig_module/mounted/energy/Initialize() . = ..() - if(ispath(gun)) - gun = new gun(src) - gun.canremove = 0 + if (ispath(laser)) + laser = new laser(src) + laser.canremove = FALSE -/obj/item/rig_module/mounted/engage(atom/target) +/obj/item/rig_module/mounted/energy/engage(atom/target) - if(!..() || !gun) - return 0 + if (!..() || !laser) + return FALSE - if(!target) - gun.attack_self(holder.wearer) + if (!target) + laser.attack_self(holder.wearer) return - gun.Fire(target,holder.wearer) - return 1 + laser.Fire(target,holder.wearer) + return TRUE + +/obj/item/rig_module/mounted/ballistic + abstract_type = /obj/item/rig_module/mounted/ballistic + var/obj/item/gun/projectile/ballistic + +/obj/item/rig_module/mounted/ballistic/Initialize() + . = ..() + if (ispath(ballistic)) + ballistic = new ballistic(src) + ballistic.canremove = FALSE + +/obj/item/rig_module/mounted/ballistic/engage(atom/target) + + if (!..() || !ballistic) + return FALSE + + if (!target) + ballistic.attack_self(holder.wearer) + return -/obj/item/rig_module/mounted/lcannon + ballistic.Fire(target,holder.wearer) + return TRUE + +/obj/item/rig_module/mounted/ballistic/accepts_item(obj/item/input, mob/living/user) + var /obj/item/rig/rig = get_rig(src) + + if (!istype(input) || !istype(user) || !rig) + return FALSE + + if (ismagazine(input) && ballistic.ammo_magazine) /// Weapon will attempt to eject the current magazine/ammo if it is loaded when a new magazine is used on it. + ballistic.unload_ammo(user, FALSE) + + else /// Weapon will load normally if no magazine is present + ballistic.load_ammo(input, user) + +/obj/item/rig_module/mounted/energy/lcannon name = "mounted laser cannon" desc = "A shoulder-mounted battery-powered laser cannon mount." @@ -235,10 +272,23 @@ interface_name = "mounted laser cannon" interface_desc = "A shoulder-mounted cell-powered laser cannon." + origin_tech = list(TECH_POWER = 6, TECH_COMBAT = 6, TECH_ENGINEERING = 6) - gun = /obj/item/gun/energy/lasercannon/mounted + laser = /obj/item/gun/energy/lasercannon/mounted + +/obj/item/rig_module/mounted/energy/ion + + name = "mounted ion gun" + desc = "A shoulder-mounted battery-powered ion gun mount." + usable = 0 + + interface_name = "mounted ion gun" + interface_desc = "A shoulder-mounted cell-powered ion gun." + origin_tech = list(TECH_POWER = 6, TECH_COMBAT = 6, TECH_ENGINEERING = 6) -/obj/item/rig_module/mounted/egun + laser = /obj/item/gun/energy/ionrifle/mounted + +/obj/item/rig_module/mounted/energy/egun name = "mounted energy gun" desc = "A shoulder-mounted energy projector." @@ -250,9 +300,9 @@ interface_desc = "A shoulder-mounted suit-powered energy gun." origin_tech = list(TECH_POWER = 6, TECH_COMBAT = 6, TECH_ENGINEERING = 6) - gun = /obj/item/gun/energy/gun/mounted + laser = /obj/item/gun/energy/gun/mounted -/obj/item/rig_module/mounted/taser +/obj/item/rig_module/mounted/energy/taser name = "mounted electrolaser" desc = "A shoulder-mounted nonlethal energy projector." @@ -265,9 +315,9 @@ interface_desc = "A shoulder-mounted, cell-powered electrolaser." origin_tech = list(TECH_POWER = 5, TECH_COMBAT = 5, TECH_ENGINEERING = 6) - gun = /obj/item/gun/energy/taser/mounted + laser = /obj/item/gun/energy/taser/mounted -/obj/item/rig_module/mounted/plasmacutter +/obj/item/rig_module/mounted/energy/plasmacutter name = "mounted plasma cutter" desc = "A forearm-mounted plasma cutter." @@ -280,23 +330,23 @@ interface_desc = "A forearm-mounted suit-powered plasma cutter." origin_tech = list(TECH_MATERIAL = 5, TECH_PHORON = 4, TECH_ENGINEERING = 7, TECH_COMBAT = 5) - gun = /obj/item/gun/energy/plasmacutter/mounted + laser = /obj/item/gun/energy/plasmacutter/mounted -/obj/item/rig_module/mounted/plasmacutter/engage(atom/target) +/obj/item/rig_module/mounted/energy/plasmacutter/engage(atom/target) - if(!check() || !gun) + if(!check() || !laser) return 0 if(holder.wearer.a_intent == I_HURT || !target.Adjacent(holder.wearer)) - gun.Fire(target,holder.wearer) + laser.Fire(target,holder.wearer) return 1 else - var/resolved = target.attackby(gun,holder.wearer) - if(!resolved && gun && target) - gun.afterattack(target,holder.wearer,1) + var/resolved = target.attackby(laser,holder.wearer) + if(!resolved && laser && target) + laser.afterattack(target,holder.wearer,1) return 1 -/obj/item/rig_module/mounted/energy_blade +/obj/item/rig_module/mounted/energy/energy_blade name = "energy blade projector" desc = "A powerful cutting beam projector." @@ -317,9 +367,9 @@ active_power_cost = 0.5 KILOWATTS passive_power_cost = 0 - gun = /obj/item/gun/energy/crossbow/ninja/mounted + laser = /obj/item/gun/energy/crossbow/ninja/mounted -/obj/item/rig_module/mounted/energy_blade/Process() +/obj/item/rig_module/mounted/energy/energy_blade/Process() if(holder && holder.wearer) if(!(locate(/obj/item/melee/energy/blade) in holder.wearer)) @@ -328,7 +378,7 @@ return ..() -/obj/item/rig_module/mounted/energy_blade/activate() +/obj/item/rig_module/mounted/energy/energy_blade/activate() var/mob/living/M = holder.wearer if (!M.HasFreeHand()) @@ -340,10 +390,10 @@ blade.creator = M M.put_in_hands(blade) - if(!..() || !gun) + if(!..() || !laser) return 0 -/obj/item/rig_module/mounted/energy_blade/deactivate() +/obj/item/rig_module/mounted/energy/energy_blade/deactivate() ..() @@ -355,6 +405,20 @@ for(var/obj/item/melee/energy/blade/blade in M.contents) qdel(blade) +/obj/item/rig_module/mounted/ballistic/minigun + + name = "mounted minigun" + desc = "An arm-mounted minigun. Reloading this looks like a pain." + icon_state = "egun" + + suit_overlay_active = "mounted-taser" + + interface_name = "mounted minigun" + interface_desc = "An arm-mounted minigun. While it carries a large amount of ammo, reloading it takes a very long time. Use an ammo box on your suit control module to reload." + origin_tech = list(TECH_POWER = 4, TECH_COMBAT = 8, TECH_ENGINEERING = 6) + + ballistic = /obj/item/gun/projectile/automatic/minigun/mounted ///Reloading handled in automatic.dm + /obj/item/rig_module/fabricator name = "matter fabricator" @@ -405,3 +469,124 @@ interface_desc = "An integrated microfactory that produces wet floor signs from thin air and electricity." fabrication_type = /obj/item/caution + +/obj/item/rig_module/actuators /// While on, will dampen the fall from any height and scale power usage accordingly. Enables the user to also jump up 1 z-level. + name = "agility enhancement actuators" + desc = "A set of electromechanical actuators that drastically increase a hardsuit's mobility. They allow the suit to be able to absorb impacts from long falls and leap incredible distances." + icon_state = "actuators" + + interface_name = "leg actuators" + interface_desc = "Allows you to fall from heights without taking damage and quickly jump up a level if there is something above you." + + use_power_cost = 50 KILOWATTS + module_cooldown = 10 SECONDS + toggleable = TRUE + selectable = TRUE + usable = FALSE + /// Combat versions are able to lunge at mobs and grab them. + var/combatType = TRUE + /// Leaping radius. Inclusive. Applies to diagonal distances. + var/leapDistance = 4 + engage_string = "Toggle Powered Lunge" + activate_string = "Engage Mobility Enhancement" + deactivate_string = "Disable Mobility Enhancement" + + +/obj/item/rig_module/actuators/engage(atom/target, mob/user) + if (!..()) + return FALSE + + if (!target) + return TRUE + + var/mob/living/carbon/human/H = holder.wearer + + if (!isturf(H.loc)) + to_chat(H, SPAN_WARNING("You cannot leap out of your current location!")) + return FALSE + + var/turf/T = get_turf(target) + + if (!T || T.density) + to_chat(H, SPAN_WARNING("You cannot leap at solid walls!")) + return FALSE + + var/dist = max(get_dist(T, get_turf(H)), 0) /// The target the user has selected + + if (dist) + for (var/A in T) + var/atom/aA = A + if (combatType && ismob(aA)) /// Combat versions of this module allow you to leap at mobs + continue + + if (aA.density) + to_chat(H, SPAN_WARNING("You cannot leap at a location with solid objects on it!")) + return FALSE + + if (T.z != H.z || dist > leapDistance) + to_chat(H, SPAN_WARNING("You cannot leap at such a distant object!")) + return FALSE + + if (dist) + H.visible_message(SPAN_WARNING("\The [H]'s suit whirrs aggressively, launching them towards \the [target]!"), + SPAN_WARNING("Your suit whirrs aggressively, launching you towards \the [target]!"), + SPAN_WARNING("You hear an electric whirr followed by a weighty thump!")) + H.face_atom(T) + H.throw_at(T, leapDistance, 0.5, H, FALSE) + return TRUE + +/obj/item/rig_module/mounted/arm_blade + + name = "forearm-mounted armblades" + desc = "A pair of steel armblades to be mounted onto a hardsuit." + icon_state = "module" + + suit_overlay_active = null + + activate_string = "Extend Blade" + deactivate_string = "Retract Blade" + + interface_name = "forearm-mounted blade" + interface_desc = "A pair of steel armblades built into each forearm of your hardsuit." + + usable = 0 + selectable = 0 + toggleable = 1 + use_power_cost = 10 KILOWATTS + active_power_cost = 0.5 KILOWATTS + passive_power_cost = 0 + +/obj/item/rig_module/mounted/arm_blade/Process() + + if(holder && holder.wearer) + if(!(locate(/obj/item/material/armblade) in holder.wearer)) + deactivate() + return 0 + + return ..() + +/obj/item/rig_module/mounted/arm_blade/activate() + var/mob/living/M = holder.wearer + + if (!M.HasFreeHand()) + to_chat(M, SPAN_DANGER("Your hands are full.")) + deactivate() + return + + var/obj/item/material/armblade/mounted/blade = new(M) + M.put_in_hands(blade) + + if(!..()) + return 0 + +/obj/item/rig_module/mounted/arm_blade/deactivate() + + ..() + + var/mob/living/M = holder.wearer + + if(!M) + return + + for(var/obj/item/material/armblade/mounted/blade in M.contents) + qdel(blade) diff --git a/code/modules/clothing/spacesuits/rig/modules/ninja.dm b/code/modules/clothing/spacesuits/rig/modules/ninja.dm index 5fb896c503db9..7a98bbaf48bc5 100644 --- a/code/modules/clothing/spacesuits/rig/modules/ninja.dm +++ b/code/modules/clothing/spacesuits/rig/modules/ninja.dm @@ -16,8 +16,8 @@ disruptable = 1 disruptive = 0 - use_power_cost = 250 KILOWATTS - active_power_cost = 30 KILOWATTS + use_power_cost = 500 KILOWATTS + active_power_cost = 60 KILOWATTS passive_power_cost = 0 module_cooldown = 10 SECONDS origin_tech = list(TECH_MATERIAL = 5, TECH_POWER = 6, TECH_MAGNET = 6, TECH_ESOTERIC = 6, TECH_ENGINEERING = 7) @@ -60,7 +60,7 @@ name = "teleportation module" desc = "A complex, sleek-looking, hardsuit-integrated teleportation module." icon_state = "teleporter" - use_power_cost = 400 KILOWATTS + use_power_cost = 800 KILOWATTS redundant = 1 usable = 1 selectable = 1 diff --git a/code/modules/clothing/spacesuits/rig/modules/utility.dm b/code/modules/clothing/spacesuits/rig/modules/utility.dm index 3b51d07d99b25..cd29532620781 100644 --- a/code/modules/clothing/spacesuits/rig/modules/utility.dm +++ b/code/modules/clothing/spacesuits/rig/modules/utility.dm @@ -166,8 +166,10 @@ list("dylovene", "dylovene", /datum/reagent/dylovene, 20), list("glucose", "glucose", /datum/reagent/nutriment/glucose, 80), list("hyronalin", "hyronalin", /datum/reagent/hyronalin, 20), + list("bicaridine", "bicaridine", /datum/reagent/bicaridine, 20), list("dermaline", "dermaline", /datum/reagent/dermaline, 20), list("spaceacillin", "spaceacillin", /datum/reagent/spaceacillin, 20), + list("coagulant", "coagulant", /datum/reagent/coagulant, 20), list("tramadol", "tramadol", /datum/reagent/tramadol, 20) ) diff --git a/code/modules/clothing/spacesuits/rig/suits/combat.dm b/code/modules/clothing/spacesuits/rig/suits/combat.dm index c99efd8812fc0..d78645d2e52e3 100644 --- a/code/modules/clothing/spacesuits/rig/suits/combat.dm +++ b/code/modules/clothing/spacesuits/rig/suits/combat.dm @@ -72,7 +72,7 @@ /obj/item/rig/combat/equipped initial_modules = list( - /obj/item/rig_module/mounted/egun, + /obj/item/rig_module/mounted/energy/egun, /obj/item/rig_module/vision/thermal, /obj/item/rig_module/grenade_launcher, /obj/item/rig_module/ai_container, @@ -157,7 +157,7 @@ /obj/item/rig/military/equipped initial_modules = list( - /obj/item/rig_module/mounted/egun, + /obj/item/rig_module/mounted/energy/egun, /obj/item/rig_module/vision/multi, /obj/item/rig_module/grenade_launcher, /obj/item/rig_module/ai_container, diff --git a/code/modules/clothing/spacesuits/rig/suits/ert.dm b/code/modules/clothing/spacesuits/rig/suits/ert.dm index a7165e45c320d..8a73a350e567f 100644 --- a/code/modules/clothing/spacesuits/rig/suits/ert.dm +++ b/code/modules/clothing/spacesuits/rig/suits/ert.dm @@ -79,7 +79,7 @@ initial_modules = list( /obj/item/rig_module/ai_container, /obj/item/rig_module/maneuvering_jets, - /obj/item/rig_module/mounted/plasmacutter, + /obj/item/rig_module/mounted/energy/plasmacutter, /obj/item/rig_module/device/rcd, /obj/item/rig_module/cooling_unit ) @@ -126,7 +126,7 @@ /obj/item/rig_module/ai_container, /obj/item/rig_module/maneuvering_jets, /obj/item/rig_module/grenade_launcher, - /obj/item/rig_module/mounted/egun, + /obj/item/rig_module/mounted/energy/egun, /obj/item/rig_module/cooling_unit ) @@ -149,7 +149,7 @@ /obj/item/rig_module/ai_container, /obj/item/rig_module/maneuvering_jets, /obj/item/rig_module/grenade_launcher, - /obj/item/rig_module/mounted/egun, + /obj/item/rig_module/mounted/energy/egun, /obj/item/rig_module/cooling_unit, /obj/item/rig_module/datajack ) diff --git a/code/modules/clothing/spacesuits/rig/suits/light.dm b/code/modules/clothing/spacesuits/rig/suits/light.dm index 3d3d383e8ee23..e17d5fac346f3 100644 --- a/code/modules/clothing/spacesuits/rig/suits/light.dm +++ b/code/modules/clothing/spacesuits/rig/suits/light.dm @@ -47,11 +47,11 @@ species_restricted = list(SPECIES_HUMAN,SPECIES_IPC) /obj/item/clothing/shoes/magboots/rig/light - name = "shoes" + name = "boots" species_restricted = list(SPECIES_HUMAN,SPECIES_IPC) /obj/item/clothing/head/helmet/space/rig/light - name = "hood" + name = "helmet" species_restricted = list(SPECIES_HUMAN,SPECIES_IPC) /obj/item/rig/light/hacker @@ -123,7 +123,7 @@ initial_modules = list( /obj/item/rig_module/teleporter, /obj/item/rig_module/stealth_field, - /obj/item/rig_module/mounted/energy_blade, + /obj/item/rig_module/mounted/energy/energy_blade, /obj/item/rig_module/vision, /obj/item/rig_module/voice, /obj/item/rig_module/fabricator/energy_net, @@ -133,12 +133,13 @@ /obj/item/rig_module/power_sink, /obj/item/rig_module/datajack, /obj/item/rig_module/self_destruct, - /obj/item/rig_module/cooling_unit + /obj/item/rig_module/cooling_unit, + /obj/item/rig_module/maneuvering_jets ) /obj/item/rig/light/ninja/verb/rename_suit() - set name = "Name Ninja Suit" - set desc = "Rename your black voidsuit." + set name = "Name Operative Suit" + set desc = "Rename your hardsuit." set category = "Object" var/mob/M = usr if(!M.mind) return 0 @@ -154,8 +155,8 @@ /obj/item/rig/light/ninja/verb/rewrite_suit_desc() - set name = "Describe Ninja suit" - set desc = "Give your voidsuit a custom description." + set name = "Describe Operative suit" + set desc = "Give your hardsuit a custom description." set category = "Object" var/mob/M = usr if(!M.mind) return 0 @@ -176,6 +177,90 @@ breach_threshold = 38 //comparable to regular hardsuits species_restricted = list(SPECIES_HUMAN,SPECIES_IPC) +/obj/item/rig/light/ninja/sol + name = "solar operative suit control module" + desc = "A sleek, military hardsuit with no model number or identifying logos besides a small Solar crest on its control module. Get tactical, marine." + suit_type = "operative" + icon_state = "solop_rig" + online_slowdown = 1 + offline_slowdown = 2 + initial_modules = list( + /obj/item/rig_module/vision, + /obj/item/rig_module/chem_dispenser/ninja, + /obj/item/rig_module/voice, + /obj/item/rig_module/grenade_launcher/ninja, + /obj/item/rig_module/ai_container, + /obj/item/rig_module/personal_shield, + /obj/item/rig_module/power_sink, + /obj/item/rig_module/datajack, + /obj/item/rig_module/self_destruct, + /obj/item/rig_module/cooling_unit, + /obj/item/rig_module/maneuvering_jets + ) + +/obj/item/rig/light/ninja/gcc + name = "gilgamesh heavy suit control module" + desc = "A ridiculously bulky military hardsuit with no model number or identifying logos besides a small ICCG crest on its control module. This suit is built like a tank and weighs as much as one." + suit_type = "heavy" + icon_state = "gcc_rig" + online_slowdown = 2 ///chunky + offline_slowdown = 4 + armor = list( + melee = ARMOR_MELEE_VERY_HIGH, + bullet = ARMOR_BALLISTIC_RIFLE, + laser = ARMOR_LASER_MAJOR, + energy = ARMOR_ENERGY_RESISTANT, + bomb = ARMOR_BOMB_PADDED, + bio = ARMOR_BIO_SHIELDED + ) + initial_modules = list( + /obj/item/rig_module/vision, + /obj/item/rig_module/chem_dispenser/ninja, + /obj/item/rig_module/voice, + /obj/item/rig_module/grenade_launcher/ninja, + /obj/item/rig_module/ai_container, + /obj/item/rig_module/power_sink, + /obj/item/rig_module/datajack, + /obj/item/rig_module/self_destruct, + /obj/item/rig_module/mounted/ballistic/minigun, + /obj/item/rig_module/cooling_unit, + /obj/item/rig_module/maneuvering_jets + ) + +/obj/item/clothing/suit/space/rig/light/ninja/gcc + breach_threshold = 50 ///chunky + +/obj/item/rig/light/ninja/corpo + name = "corporate mercenary suit control module" + desc = "A light hardsuit with minimal armor plating. The control panel marks it as a Hephaestus X-11 Lightweight, a mobile combat suit commonly issued to corporate security teams." + suit_type = "corporate" + icon_state = "corpo_rig" + online_slowdown = -1 ///speedster suit + armor = list( + melee = ARMOR_MELEE_RESISTANT, + bullet = ARMOR_BALLISTIC_RESISTANT, + laser = ARMOR_LASER_HANDGUNS, + energy = ARMOR_ENERGY_RESISTANT, + bomb = ARMOR_BOMB_PADDED, + bio = ARMOR_BIO_SHIELDED + ) + + initial_modules = list( + /obj/item/rig_module/actuators, + /obj/item/rig_module/mounted/arm_blade, + /obj/item/rig_module/mounted/energy/ion, + /obj/item/rig_module/vision, + /obj/item/rig_module/chem_dispenser/ninja, + /obj/item/rig_module/voice, + /obj/item/rig_module/grenade_launcher/ninja, + /obj/item/rig_module/ai_container, + /obj/item/rig_module/power_sink, + /obj/item/rig_module/datajack, + /obj/item/rig_module/self_destruct, + /obj/item/rig_module/cooling_unit, + /obj/item/rig_module/maneuvering_jets + ) + /obj/item/rig/light/stealth name = "stealth suit control module" suit_type = "stealth" diff --git a/code/modules/clothing/spacesuits/rig/suits/merc.dm b/code/modules/clothing/spacesuits/rig/suits/merc.dm index 859bd7c22f89b..46e15bed7e3a6 100644 --- a/code/modules/clothing/spacesuits/rig/suits/merc.dm +++ b/code/modules/clothing/spacesuits/rig/suits/merc.dm @@ -20,7 +20,7 @@ boot_type = /obj/item/clothing/shoes/magboots/rig/merc initial_modules = list( - /obj/item/rig_module/mounted/lcannon, + /obj/item/rig_module/mounted/energy/lcannon, /obj/item/rig_module/vision/thermal, /obj/item/rig_module/grenade_launcher, /obj/item/rig_module/ai_container, @@ -39,6 +39,24 @@ /obj/item/rig_module/cooling_unit ) +///Variant for Operative gamemode +/obj/item/rig/merc/ninja + cell_type = /obj/item/cell/hyper + + initial_modules = list( + /obj/item/rig_module/mounted/energy/lcannon, + /obj/item/rig_module/vision, + /obj/item/rig_module/chem_dispenser/ninja, + /obj/item/rig_module/voice, + /obj/item/rig_module/grenade_launcher/ninja, + /obj/item/rig_module/ai_container, + /obj/item/rig_module/power_sink, + /obj/item/rig_module/datajack, + /obj/item/rig_module/self_destruct, + /obj/item/rig_module/cooling_unit, + /obj/item/rig_module/maneuvering_jets + ) + /obj/item/clothing/gloves/rig/merc item_flags = ITEM_FLAG_THICKMATERIAL | ITEM_FLAG_NOCUFFS | ITEM_FLAG_AIRTIGHT siemens_coefficient = 0 diff --git a/code/modules/clothing/spacesuits/rig/suits/station.dm b/code/modules/clothing/spacesuits/rig/suits/station.dm index 702ce27558e54..7b06fbf0712d5 100644 --- a/code/modules/clothing/spacesuits/rig/suits/station.dm +++ b/code/modules/clothing/spacesuits/rig/suits/station.dm @@ -92,7 +92,7 @@ /obj/item/rig/industrial/equipped initial_modules = list( - /obj/item/rig_module/mounted/plasmacutter, + /obj/item/rig_module/mounted/energy/plasmacutter, /obj/item/rig_module/device/drill, /obj/item/rig_module/device/orescanner, /obj/item/rig_module/device/rcd, @@ -171,7 +171,7 @@ /obj/item/rig/eva/equipped initial_modules = list( - /obj/item/rig_module/mounted/plasmacutter, + /obj/item/rig_module/mounted/energy/plasmacutter, /obj/item/rig_module/maneuvering_jets, /obj/item/rig_module/device/rcd, /obj/item/rig_module/vision/meson, @@ -209,7 +209,7 @@ initial_modules = list( /obj/item/rig_module/ai_container, /obj/item/rig_module/maneuvering_jets, - /obj/item/rig_module/mounted/plasmacutter, + /obj/item/rig_module/mounted/energy/plasmacutter, /obj/item/rig_module/device/rcd, /obj/item/rig_module/device/flash, /obj/item/rig_module/vision/meson, @@ -437,7 +437,7 @@ /obj/item/rig_module/vision/sechud, /obj/item/rig_module/maneuvering_jets, /obj/item/rig_module/grenade_launcher, - /obj/item/rig_module/mounted/taser, + /obj/item/rig_module/mounted/energy/taser, /obj/item/rig_module/cooling_unit ) diff --git a/code/modules/clothing/spacesuits/rig/suits/vox.dm b/code/modules/clothing/spacesuits/rig/suits/vox.dm index a789486360aee..661ee648808e2 100644 --- a/code/modules/clothing/spacesuits/rig/suits/vox.dm +++ b/code/modules/clothing/spacesuits/rig/suits/vox.dm @@ -25,7 +25,7 @@ initial_modules = list( /obj/item/rig_module/vision/meson, - /obj/item/rig_module/mounted/plasmacutter, + /obj/item/rig_module/mounted/energy/plasmacutter, /obj/item/rig_module/maneuvering_jets, /obj/item/rig_module/power_sink, /obj/item/rig_module/cooling_unit diff --git a/code/modules/item_worth/worths_list.dm b/code/modules/item_worth/worths_list.dm index 96e3406867a71..570b71ce0f8d1 100644 --- a/code/modules/item_worth/worths_list.dm +++ b/code/modules/item_worth/worths_list.dm @@ -523,9 +523,9 @@ var/global/list/worths = list( /obj/item/inflatable = 30, /obj/item/roller_bed = 80, /obj/item/rig_module/grenade_launcher = 1500, - /obj/item/rig_module/mounted/egun = 2100, - /obj/item/rig_module/mounted/energy_blade = 2200, - /obj/item/rig_module/mounted/lcannon = 4100, + /obj/item/rig_module/mounted/energy/egun = 2100, + /obj/item/rig_module/mounted/energy/energy_blade = 2200, + /obj/item/rig_module/mounted/energy/lcannon = 4100, /obj/item/rig_module/stealth_field = 2500, /obj/item/rig_module/teleporter = 3000, /obj/item/rig_module/fabricator/energy_net = 1200, diff --git a/code/modules/multiz/movement.dm b/code/modules/multiz/movement.dm index c0f0dc47609f9..034e403a2d01a 100644 --- a/code/modules/multiz/movement.dm +++ b/code/modules/multiz/movement.dm @@ -234,13 +234,22 @@ visible_message("\The [src] falls through \the [landing]!", "You hear a whoosh of displaced air.") else visible_message("\The [src] slams into \the [landing]!", "You hear something slam into the deck.") - if(fall_damage()) - for(var/mob/living/M in landing.contents) - if(M == src) + var/obj/item/rig/rig = get_rig() + if (istype(rig)) + for (var/obj/item/rig_module/actuators/A in rig.installed_modules) + if (A.active) + visible_message( + SPAN_NOTICE("\The [src]'s suit whirrs loudly as \the [rig] absorbs the fall!"), + SPAN_NOTICE("You hear an electric *whirr* right after the slam!") + ) + if (fall_damage()) + for (var/mob/living/M in landing.contents) + if (M == src) continue visible_message("\The [src] hits \the [M.name]!") M.take_overall_damage(fall_damage()) + /atom/movable/proc/fall_damage() return 0 @@ -255,7 +264,14 @@ if(species && species.handle_fall_special(src, landing)) return + var/obj/item/rig/rig = get_rig() + if (istype(rig)) + for (var/obj/item/rig_module/actuators/A in rig.installed_modules) + if (A.active && rig.check_power_cost(src, 50 KILOWATTS, A, 0)) + return + ..() + var/min_damage = 7 var/max_damage = 14 apply_damage(rand(min_damage, max_damage), DAMAGE_BRUTE, BP_HEAD, armor_pen = 50) @@ -287,7 +303,27 @@ var/turf/T = get_turf(A) var/turf/above = GetAbove(src) + var/obj/item/rig/rig = get_rig() if(above && T.Adjacent(bound_overlay) && above.CanZPass(src, UP)) //Certain structures will block passage from below, others not + + if (istype(rig)) ///RIG actuator jumps overcome gravity. + for (var/obj/item/rig_module/actuators/R in rig.installed_modules) + if (R.active && rig.check_power_cost(src, 50 KILOWATTS, A, 0)) + visible_message( + SPAN_NOTICE("\The [src] prepares to leap upwards onto \the [A]!"), + SPAN_NOTICE("You crouch, preparing to leap upwards onto \the [A]!") + ) + if (do_after(src, 2 SECONDS, A, DO_PUBLIC_UNIQUE)) + if(src.incapacitated() || src.restrained()) + to_chat(src, SPAN_WARNING("You are in no condition to activate your suit.")) + return TRUE + visible_message( + SPAN_NOTICE("\The [src]'s suit whirrs aggressively as they leap up to \the [A]!"), + SPAN_NOTICE("You leap to \the [A]!") + ) + src.Move(T) + return TRUE + if(loc.has_gravity() && !can_overcome_gravity()) return FALSE diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm index 7e62fea70f24b..5429a10d4f35c 100644 --- a/code/modules/projectiles/ammunition/boxes.dm +++ b/code/modules/projectiles/ammunition/boxes.dm @@ -369,6 +369,20 @@ max_ammo = 8 multiple_sprites = TRUE +/obj/item/ammo_magazine/box/minigun + name = "minigun box" + icon_state = "minigun" + origin_tech = list(TECH_COMBAT = 4) + mag_type = MAGAZINE + caliber = CALIBER_PISTOL_SMALL + matter = list(MATERIAL_STEEL = 10000) + ammo_type = /obj/item/ammo_casing/pistol/small + max_ammo = 200 + multiple_sprites = TRUE + +/obj/item/ammo_magazine/box/minigun/empty + initial_ammo = 0 + /obj/item/ammo_magazine/shotgunmag name = "shotgun magazine" desc = "A magazine for semi-automatic shotguns." diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 88914fbd606cf..6947cd65d38cf 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -32,6 +32,15 @@ max_shots = 3 projectile_type = /obj/item/projectile/ion/small +/obj/item/gun/energy/ionrifle/mounted + name = "mounted ion gun" + desc = "You should not see this. Call a developer." + fire_delay = 30 + one_hand_penalty = 0 + self_recharge = TRUE + use_external_power = TRUE + has_safety = FALSE + /obj/item/gun/energy/decloner name = "biological demolecularisor" desc = "A gun that discharges high amounts of controlled radiation to slowly break a target into component elements." diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index cef977869ffa8..81c9fef2a2efb 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -405,3 +405,63 @@ else icon_state = "battlerifle-empty" wielded_item_state = "battlerifle-wielded-empty" + +/obj/item/gun/projectile/automatic/minigun + name = "minigun" + desc = "A man-portable minigun lacking any branding on it. It fires small 7mm projectiles at an obscene rate of fire. Six barrels of fun." + icon = 'icons/obj/guns/minigun.dmi' + icon_state = "minigun" + item_state = "l6closedmag" /// Onmob is WIP sprite + w_class = ITEM_SIZE_HUGE + force = 15 + caliber = CALIBER_PISTOL_SMALL + origin_tech = list(TECH_COMBAT = 8, TECH_MATERIAL = 4, TECH_ESOTERIC = 8) + slot_flags = 0 + load_method = MAGAZINE + magazine_type = /obj/item/ammo_magazine/box/minigun + allowed_magazines = /obj/item/ammo_magazine/box/minigun + accuracy = 1 + one_hand_penalty = 20 + mag_insert_sound = 'sound/weapons/guns/interaction/lmg_magin.ogg' + mag_remove_sound = 'sound/weapons/guns/interaction/lmg_magout.ogg' + can_special_reload = FALSE + + firemodes = list( + list(mode_name="full auto", can_autofire=1, burst=1, fire_delay=0.4, move_delay=1, burst_accuracy = list(0,-1,-2,-3,-4,-4,-4,-4,-4), dispersion = list(1.0, 1.0, 2.0, 2.0, 2.5), burst_delay = 1), + list(mode_name="long bursts", can_autofire=0, burst=10, fire_delay=0.2, burst_accuracy = list(0,-1,-2,-3,-4,-8,-8,-16,-16), dispersion = list(1.0, 2.0, 3.0, 3.0, 4.0), burst_delay = 1) + ) + +/obj/item/gun/projectile/automatic/minigun/mounted + name = "mounted minigun" + accuracy = 0 /// Less accurate than a full-sized minigun and only fires in bursts, but has no one-hand penalty. + one_hand_penalty = 0 + has_safety = FALSE + auto_eject = TRUE + auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg' + + firemodes = list( + list(mode_name="long bursts", can_autofire=0, burst=5, fire_delay=0.2, burst_accuracy = list(0,-1,-2,-3,-4,-4,-4,-4,-4), dispersion = list(1.0, 1.0, 2.0, 2.0, 2.5), burst_delay = 1), + list(mode_name="longer bursts", can_autofire=0, burst=10, fire_delay=0.2, burst_accuracy = list(0,-1,-2,-3,-4,-8,-8,-16,-16), dispersion = list(1.0, 2.0, 3.0, 3.0, 4.0), burst_delay = 1) + ) + +/obj/item/gun/projectile/automatic/minigun/mounted/load_ammo(obj/item/A, mob/user) + var/obj/item/rig/rig = get_rig() + if (istype(rig)) + if (!rig.offline && rig.suit_is_deployed()) + user.visible_message(SPAN_NOTICE("\The [user] begins the slow process of re-arming \The [src]."), range = 4) + do_after(user, 10 SECONDS, src, DO_PUBLIC_UNIQUE | DO_BAR_OVER_USER) + ..() + else + to_chat(user, SPAN_DANGER("You can't reload your minigun without deploying your hardsuit!")) + return + +/obj/item/gun/projectile/automatic/minigun/mounted/unload_ammo(mob/user, allow_dump=0) + var/obj/item/rig/rig = get_rig() + if (istype(rig)) + if (!rig.offline && rig.suit_is_deployed()) + user.visible_message(SPAN_NOTICE("\The [user] begins ejecting the magazine from \The [src]."), range = 4) + do_after(user, 2 SECONDS, src, DO_PUBLIC_UNIQUE | DO_BAR_OVER_USER) + ..() + else + to_chat(user, SPAN_DANGER("You can't unload your minigun without deploying your hardsuit!")) + return diff --git a/code/modules/research/designs/designs_mechfab.dm b/code/modules/research/designs/designs_mechfab.dm index 68008854d6dce..1f7e5ed563682 100644 --- a/code/modules/research/designs/designs_mechfab.dm +++ b/code/modules/research/designs/designs_mechfab.dm @@ -748,7 +748,7 @@ /datum/design/item/mechfab/rig/plasmacutter category = "Hardsuits" name = "Plasma Cutter" - build_path = /obj/item/rig_module/mounted/plasmacutter + build_path = /obj/item/rig_module/mounted/energy/plasmacutter materials = list(MATERIAL_STEEL = 2000, MATERIAL_GLASS = 1000, MATERIAL_PLASTIC = 1000, MATERIAL_GOLD = 700, MATERIAL_PHORON = 500) req_tech = list(TECH_MATERIAL = 4, TECH_PHORON = 3, TECH_ENGINEERING = 6, TECH_COMBAT = 4) id = "rig_plasmacutter" @@ -829,7 +829,7 @@ /datum/design/item/mechfab/rig/taser category = "Hardsuits" name = "Electrolaser" - build_path = /obj/item/rig_module/mounted/taser + build_path = /obj/item/rig_module/mounted/energy/taser materials = list(MATERIAL_STEEL = 4000, MATERIAL_PLASTIC = 2500, MATERIAL_GLASS = 2000, MATERIAL_GOLD = 1000) req_tech = list(TECH_POWER = 5, TECH_COMBAT = 5, TECH_ENGINEERING = 6) id = "rig_taser" @@ -838,7 +838,7 @@ /datum/design/item/mechfab/rig/egun category = "Hardsuits" name = "Energy Gun" - build_path = /obj/item/rig_module/mounted/egun + build_path = /obj/item/rig_module/mounted/energy/egun materials = list(MATERIAL_STEEL = 6000, MATERIAL_GLASS = 3000, MATERIAL_PLASTIC = 2500, MATERIAL_GOLD = 2000, MATERIAL_SILVER = 1000) req_tech = list(TECH_POWER = 6, TECH_COMBAT = 6, TECH_ENGINEERING = 6) id = "rig_egun" diff --git a/code/modules/shuttles/antagonist.dm b/code/modules/shuttles/antagonist.dm index e7542c6b595d7..6fafc2920fa85 100644 --- a/code/modules/shuttles/antagonist.dm +++ b/code/modules/shuttles/antagonist.dm @@ -16,5 +16,4 @@ /obj/machinery/computer/shuttle_control/multi/ninja name = "stealth shuttle control console" req_access = list(access_syndicate) - shuttle_tag = "Ninja" - + shuttle_tag = "Tremulous Intent" diff --git a/icons/mob/onmob/onmob_feet.dmi b/icons/mob/onmob/onmob_feet.dmi index c7296b49103f6..3b9add2da9a79 100644 Binary files a/icons/mob/onmob/onmob_feet.dmi and b/icons/mob/onmob/onmob_feet.dmi differ diff --git a/icons/mob/onmob/onmob_hands.dmi b/icons/mob/onmob/onmob_hands.dmi index 2021f3a7e8ee2..43964e3ce8f4a 100644 Binary files a/icons/mob/onmob/onmob_hands.dmi and b/icons/mob/onmob/onmob_hands.dmi differ diff --git a/icons/mob/onmob/onmob_head.dmi b/icons/mob/onmob/onmob_head.dmi index 2670d2d7b401d..2a34029b30293 100644 Binary files a/icons/mob/onmob/onmob_head.dmi and b/icons/mob/onmob/onmob_head.dmi differ diff --git a/icons/mob/onmob/onmob_rig_back.dmi b/icons/mob/onmob/onmob_rig_back.dmi index c91f57bd98c99..075bc824abfb0 100644 Binary files a/icons/mob/onmob/onmob_rig_back.dmi and b/icons/mob/onmob/onmob_rig_back.dmi differ diff --git a/icons/mob/onmob/onmob_suit.dmi b/icons/mob/onmob/onmob_suit.dmi index 89d35b5fcbee4..71331bc146c25 100644 Binary files a/icons/mob/onmob/onmob_suit.dmi and b/icons/mob/onmob/onmob_suit.dmi differ diff --git a/icons/obj/clothing/obj_feet.dmi b/icons/obj/clothing/obj_feet.dmi index d9958f9427fc2..18d7df3ed1928 100644 Binary files a/icons/obj/clothing/obj_feet.dmi and b/icons/obj/clothing/obj_feet.dmi differ diff --git a/icons/obj/clothing/obj_hands.dmi b/icons/obj/clothing/obj_hands.dmi index ef3ae3ba91d39..09b807a538398 100644 Binary files a/icons/obj/clothing/obj_hands.dmi and b/icons/obj/clothing/obj_hands.dmi differ diff --git a/icons/obj/clothing/obj_head.dmi b/icons/obj/clothing/obj_head.dmi index 87b22c93b7a7e..479862140e9ea 100644 Binary files a/icons/obj/clothing/obj_head.dmi and b/icons/obj/clothing/obj_head.dmi differ diff --git a/icons/obj/clothing/obj_suit.dmi b/icons/obj/clothing/obj_suit.dmi index f38e751544bf4..ffdf5c3725673 100644 Binary files a/icons/obj/clothing/obj_suit.dmi and b/icons/obj/clothing/obj_suit.dmi differ diff --git a/icons/obj/guns/minigun.dmi b/icons/obj/guns/minigun.dmi new file mode 100644 index 0000000000000..5f82b8f554b91 Binary files /dev/null and b/icons/obj/guns/minigun.dmi differ diff --git a/icons/obj/rig_modules.dmi b/icons/obj/rig_modules.dmi index c650d52811850..63f03d33849eb 100644 Binary files a/icons/obj/rig_modules.dmi and b/icons/obj/rig_modules.dmi differ diff --git a/icons/obj/weapons/ammo.dmi b/icons/obj/weapons/ammo.dmi index f0ee3b3bb7ce9..0dfd534b19cf1 100644 Binary files a/icons/obj/weapons/ammo.dmi and b/icons/obj/weapons/ammo.dmi differ diff --git a/maps/antag_spawn/ert/ert_base.dmm b/maps/antag_spawn/ert/ert_base.dmm index 3b17c4ed1cc41..dad074d2ad553 100644 --- a/maps/antag_spawn/ert/ert_base.dmm +++ b/maps/antag_spawn/ert/ert_base.dmm @@ -1092,8 +1092,8 @@ /area/map_template/rescue_base/base) "cp" = ( /obj/structure/table/rack, -/obj/item/rig_module/mounted/taser, -/obj/item/rig_module/mounted/taser, +/obj/item/rig_module/mounted/energy/taser, +/obj/item/rig_module/mounted/energy/taser, /obj/item/rig_module/maneuvering_jets, /obj/item/rig_module/maneuvering_jets, /obj/item/rig_module/chem_dispenser/injector, @@ -1138,12 +1138,12 @@ /area/map_template/rescue_base/base) "cs" = ( /obj/structure/table/rack, -/obj/item/rig_module/mounted/taser, -/obj/item/rig_module/mounted/taser, +/obj/item/rig_module/mounted/energy/taser, +/obj/item/rig_module/mounted/energy/taser, /obj/item/rig_module/maneuvering_jets, /obj/item/rig_module/maneuvering_jets, -/obj/item/rig_module/mounted/egun, -/obj/item/rig_module/mounted/egun, +/obj/item/rig_module/mounted/energy/egun, +/obj/item/rig_module/mounted/energy/egun, /obj/item/rig_module/chem_dispenser/combat, /obj/item/rig_module/chem_dispenser/combat, /obj/item/rig_module/grenade_launcher, @@ -1151,7 +1151,6 @@ /obj/item/rig_module/vision/sechud, /obj/item/rig_module/device/flash, /obj/item/rig_module/device/flash, -/obj/item/rig_module/mounted, /obj/structure/window/reinforced/crescent{ dir = 1 }, @@ -1559,7 +1558,7 @@ "cY" = ( /obj/structure/window/reinforced/crescent, /obj/structure/table/rack, -/obj/item/rig_module/mounted/taser, +/obj/item/rig_module/mounted/energy/taser, /obj/item/rig_module/vision/nvg, /obj/item/rig_module/device/flash, /obj/structure/window/reinforced/crescent{ @@ -1573,14 +1572,14 @@ "cZ" = ( /obj/structure/window/reinforced/crescent, /obj/structure/table/rack, -/obj/item/rig_module/mounted/taser, -/obj/item/rig_module/mounted/taser, +/obj/item/rig_module/mounted/energy/taser, +/obj/item/rig_module/mounted/energy/taser, /obj/item/rig_module/maneuvering_jets, /obj/item/rig_module/maneuvering_jets, /obj/item/rig_module/device/drill, /obj/item/rig_module/device/drill, -/obj/item/rig_module/mounted/plasmacutter, -/obj/item/rig_module/mounted/plasmacutter, +/obj/item/rig_module/mounted/energy/plasmacutter, +/obj/item/rig_module/mounted/energy/plasmacutter, /obj/item/rig_module/device/rcd, /obj/item/rig_module/device/rcd, /obj/item/rig_module/vision/meson, diff --git a/maps/antag_spawn/ninja/ninja.dm b/maps/antag_spawn/ninja/ninja.dm index 077061564fcf1..9dac650456de8 100644 --- a/maps/antag_spawn/ninja/ninja.dm +++ b/maps/antag_spawn/ninja/ninja.dm @@ -1,5 +1,5 @@ /datum/map_template/ruin/antag_spawn/ninja - name = "Ninja Base" + name = "Operative Base" suffixes = list("ninja/ninja_base.dmm") shuttles_to_initialise = list(/datum/shuttle/autodock/multi/antag/ninja) apc_test_exempt_areas = list( @@ -7,21 +7,19 @@ ) /datum/shuttle/autodock/multi/antag/ninja - name = "Ninja" + name = "Tremulous Intent" defer_initialisation = TRUE warmup_time = 0 - destination_tags = list( - "nav_ninja_start" - ) shuttle_area = /area/map_template/ninja_dojo/start current_location = "nav_ninja_start" landmark_transition = "nav_ninja_transition" announcer = "Proximity Sensor Array" + home_waypoint = "nav_ninja_start" arrival_message = "Attention, anomalous sensor reading detected entering vessel proximity." departure_message = "Attention, anomalous sensor reading detected leaving vessel proximity." /obj/effect/shuttle_landmark/ninja/start - name = "Clan Dojo" + name = "Operations Bunker" landmark_tag = "nav_ninja_start" /obj/effect/shuttle_landmark/ninja/internim @@ -30,18 +28,18 @@ // Areas /area/map_template/ninja_dojo - name = "\improper Ninja Base" + name = "\improper Operative Base" icon_state = "green" requires_power = 0 - dynamic_lighting = 1 + dynamic_lighting = TRUE area_flags = AREA_FLAG_RAD_SHIELDED | AREA_FLAG_ION_SHIELDED req_access = list(access_syndicate) /area/map_template/ninja_dojo/dojo - name = "\improper Clan Dojo" + name = "\improper Operations Bunker" dynamic_lighting = 0 /area/map_template/ninja_dojo/start - name = "\improper Clan Dojo" + name = "\improper Operations Bunker" icon_state = "shuttlered" - base_turf = /turf/simulated/floor/plating \ No newline at end of file + base_turf = /turf/simulated/floor/plating diff --git a/maps/antag_spawn/ninja/ninja_base.dmm b/maps/antag_spawn/ninja/ninja_base.dmm index f8a3cb3694269..2d10aea7a2e19 100644 --- a/maps/antag_spawn/ninja/ninja_base.dmm +++ b/maps/antag_spawn/ninja/ninja_base.dmm @@ -1,3368 +1,220 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"ac" = ( -/turf/unsimulated/floor{ - icon = 'icons/turf/snow.dmi'; - icon_state = "snowwhite" - }, -/area/map_template/ninja_dojo/dojo) -"ad" = ( -/turf/unsimulated/floor{ - icon_state = "snow" - }, -/area/map_template/ninja_dojo/dojo) -"ae" = ( -/obj/effect/floor_decal/asteroid, -/turf/unsimulated/floor{ - icon_state = "snow" - }, -/area/map_template/ninja_dojo/dojo) -"af" = ( -/obj/effect/floor_decal/asteroid, -/turf/unsimulated/floor{ - icon = 'icons/turf/snow.dmi'; - icon_state = "snowwhite" - }, -/area/map_template/ninja_dojo/dojo) -"ag" = ( -/obj/structure/flora/tree/dead, -/turf/unsimulated/floor{ - icon_state = "snow" - }, -/area/map_template/ninja_dojo/dojo) -"ah" = ( -/obj/structure/flora/tree/pine, -/turf/unsimulated/floor{ - icon_state = "snow" - }, -/area/map_template/ninja_dojo/dojo) -"ai" = ( -/obj/structure/flora/tree/dead, -/turf/unsimulated/floor{ - icon = 'icons/turf/snow.dmi'; - icon_state = "snowwhite" - }, -/area/map_template/ninja_dojo/dojo) -"aj" = ( -/turf/simulated/wall/wood, -/area/map_template/ninja_dojo/dojo) -"ak" = ( -/obj/structure/table/glass, -/obj/item/storage/firstaid/surgery, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"al" = ( -/obj/machinery/optable, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"am" = ( -/obj/structure/closet/medical_wall{ - pixel_y = 32 - }, -/obj/item/tank/anesthetic, -/obj/item/clothing/mask/breath/medical, -/obj/item/clothing/gloves/latex, -/obj/item/clothing/mask/surgical, -/obj/structure/hygiene/sink{ - dir = 1; - pixel_y = 16 - }, -/obj/item/reagent_containers/glass/bottle/stoxin, -/obj/item/reagent_containers/glass/bottle/stoxin, -/obj/item/reagent_containers/syringe, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"an" = ( -/obj/structure/table/glass, -/obj/item/reagent_containers/ivbag/nanoblood, -/obj/item/reagent_containers/ivbag/blood/human/oneg, -/obj/item/reagent_containers/ivbag/blood/human/oneg, -/obj/item/reagent_containers/ivbag/blood/skrell/oneg, -/obj/item/reagent_containers/ivbag/blood/skrell/oneg, -/obj/item/reagent_containers/ivbag/blood/unathi/oneg, -/obj/item/reagent_containers/ivbag/blood/unathi/oneg, -/obj/structure/window/reinforced/crescent{ - dir = 4 - }, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"ao" = ( -/obj/machinery/atmospherics/unary/cryo_cell, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"ap" = ( -/obj/machinery/atmospherics/portables_connector, -/obj/machinery/portable_atmospherics/canister/oxygen/prechilled, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"aq" = ( -/obj/item/reagent_containers/glass/beaker/cryoxadone, -/obj/structure/table/glass, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"ar" = ( -/obj/structure/table/glass, -/obj/item/reagent_containers/spray/sterilizine, -/obj/item/reagent_containers/spray/cleaner, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"as" = ( -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"at" = ( -/obj/structure/table/glass, -/obj/item/storage/firstaid/o2{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/fire{ - pixel_x = 1 - }, -/obj/structure/window/reinforced/crescent{ - dir = 4 - }, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"au" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 5 - }, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"av" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 9 - }, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"aw" = ( -/obj/structure/table/glass, -/obj/item/storage/box/beakers, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"ax" = ( -/obj/machinery/computer/teleporter, -/turf/unsimulated/floor{ - icon_state = "plating"; - name = "plating" - }, -/area/map_template/ninja_dojo/dojo) -"ay" = ( -/obj/machinery/tele_projector, -/turf/unsimulated/floor{ - icon_state = "plating"; - name = "plating" - }, -/area/map_template/ninja_dojo/dojo) -"az" = ( -/obj/machinery/tele_pad, -/obj/effect/floor_decal/industrial/hatch/yellow, -/turf/unsimulated/floor{ - icon_state = "plating"; - name = "plating" - }, -/area/map_template/ninja_dojo/dojo) -"aA" = ( -/obj/effect/wingrille_spawn/reinforced/crescent, -/turf/unsimulated/floor{ - icon_state = "plating"; - name = "plating" - }, -/area/map_template/ninja_dojo/dojo) -"aB" = ( -/obj/structure/table/glass, -/obj/item/reagent_containers/syringe/antiviral, -/obj/item/reagent_containers/syringe/antiviral, -/obj/item/stack/medical/advanced/bruise_pack, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"aC" = ( -/obj/structure/table/glass, -/obj/item/storage/firstaid/toxin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/adv{ - pixel_x = 1 - }, -/obj/item/storage/firstaid/radiation, -/obj/structure/window/reinforced/crescent{ - dir = 4 - }, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"aD" = ( -/obj/machinery/chemical_dispenser/ert, -/obj/item/reagent_containers/glass/beaker/large, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"aE" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"aF" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/obj/item/device/radio/intercom/syndicate{ - dir = 8; - pixel_x = 22 - }, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"aG" = ( -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"aH" = ( -/obj/structure/flora/tree/pine, -/turf/unsimulated/floor{ - icon = 'icons/turf/snow.dmi'; - icon_state = "snowwhite" - }, -/area/map_template/ninja_dojo/dojo) -"aI" = ( -/obj/structure/iv_stand, -/obj/structure/window/reinforced/crescent, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"aJ" = ( -/obj/structure/table/glass, -/obj/item/storage/firstaid/regular, -/obj/item/storage/firstaid/combat, -/obj/structure/window/reinforced/crescent{ - dir = 4 - }, -/obj/structure/window/reinforced/crescent, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"aK" = ( -/obj/effect/floor_decal/spline/fancy/wood/corner, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"aL" = ( -/obj/effect/floor_decal/spline/fancy/wood, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"aM" = ( -/obj/effect/floor_decal/spline/fancy/wood, -/obj/machinery/chemical_dispenser/full, -/obj/item/reagent_containers/glass/beaker/large, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"aN" = ( -/obj/machinery/door/morgue{ - name = "Teleporter" - }, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"aO" = ( -/obj/effect/floor_decal/carpet/blue{ - dir = 8 - }, -/obj/effect/floor_decal/carpet/blue{ - dir = 1 - }, -/obj/effect/floor_decal/carpet/blue{ - dir = 9 - }, -/obj/effect/landmark{ - name = "ninjastart" - }, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "bcarpet" - }, -/area/map_template/ninja_dojo/dojo) -"aP" = ( -/obj/effect/floor_decal/carpet/blue{ - dir = 1 - }, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "bcarpet" - }, -/area/map_template/ninja_dojo/dojo) -"aQ" = ( -/obj/effect/floor_decal/carpet/blue{ - dir = 1 - }, -/obj/effect/floor_decal/carpet/blue{ - dir = 4 - }, -/obj/effect/floor_decal/carpet/blue{ - dir = 5 - }, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "bcarpet" - }, -/area/map_template/ninja_dojo/dojo) -"aR" = ( -/obj/machinery/bodyscanner{ - dir = 8 - }, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"aS" = ( -/obj/machinery/body_scanconsole{ - dir = 8 - }, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"aT" = ( -/obj/effect/floor_decal/spline/fancy/wood{ - dir = 4 - }, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"aU" = ( -/obj/structure/flora/pottedplant/bamboo, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"aV" = ( -/obj/structure/flora/pottedplant/orientaltree, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"aW" = ( -/obj/effect/floor_decal/carpet/blue{ - dir = 8 - }, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "bcarpet" - }, -/area/map_template/ninja_dojo/dojo) -"aX" = ( -/obj/effect/floor_decal/chapel{ - dir = 1 - }, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "bcarpet" - }, -/area/map_template/ninja_dojo/dojo) -"aY" = ( -/obj/effect/floor_decal/chapel{ - dir = 4 - }, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "bcarpet" - }, -/area/map_template/ninja_dojo/dojo) -"aZ" = ( -/obj/effect/floor_decal/carpet/blue{ - dir = 4 - }, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "bcarpet" - }, -/area/map_template/ninja_dojo/dojo) -"ba" = ( -/obj/machinery/door/morgue{ - name = "Medical" - }, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bb" = ( -/obj/item/device/radio/intercom/syndicate{ - dir = 1; - pixel_y = -22 - }, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bc" = ( -/obj/machinery/door/morgue{ - name = "Dojo" - }, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bd" = ( -/obj/effect/floor_decal/chapel{ - dir = 8 - }, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "bcarpet" - }, -/area/map_template/ninja_dojo/dojo) -"be" = ( -/obj/effect/floor_decal/chapel, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "bcarpet" - }, -/area/map_template/ninja_dojo/dojo) -"bf" = ( -/obj/effect/floor_decal/spline/fancy/wood, -/obj/machinery/sleeper{ - dir = 4 - }, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"bg" = ( -/obj/effect/floor_decal/spline/fancy/wood{ - dir = 6 - }, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"bh" = ( -/obj/machinery/door/unpowered/simple/wood, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bi" = ( -/obj/effect/floor_decal/carpet/blue, -/obj/effect/floor_decal/carpet/blue{ - dir = 8 - }, -/obj/effect/floor_decal/carpet/blue{ - dir = 10 - }, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "bcarpet" - }, -/area/map_template/ninja_dojo/dojo) -"bj" = ( -/obj/effect/floor_decal/carpet/blue, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "bcarpet" - }, -/area/map_template/ninja_dojo/dojo) -"bk" = ( -/obj/effect/floor_decal/carpet/blue{ - dir = 4 - }, -/obj/effect/floor_decal/carpet/blue, -/obj/effect/floor_decal/carpet/blue{ - dir = 6 - }, -/obj/effect/landmark{ - name = "ninjastart" - }, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "bcarpet" - }, -/area/map_template/ninja_dojo/dojo) -"bl" = ( -/obj/structure/table/rack, -/obj/item/storage/belt/medical, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bm" = ( -/obj/item/device/radio/intercom/syndicate{ - dir = 8; - pixel_x = 22 - }, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bn" = ( -/turf/unsimulated/floor{ - icon = 'icons/turf/snow.dmi'; - icon_state = "snowplating" - }, -/area/map_template/ninja_dojo/dojo) -"bo" = ( -/obj/effect/floor_decal/snow, -/turf/unsimulated/floor{ - icon = 'icons/turf/snow.dmi'; - icon_state = "snowplating" - }, -/area/map_template/ninja_dojo/dojo) -"bp" = ( -/obj/item/device/radio/intercom/syndicate{ - dir = 4; - pixel_x = -22 - }, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bq" = ( -/obj/structure/table/rack, -/obj/item/clothing/accessory/storage/white_vest, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"br" = ( -/obj/structure/table/rack, -/obj/item/defibrillator/compact/combat/loaded, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bs" = ( -/obj/structure/table/rack, -/obj/item/toy/katana{ - name = "practice katana" - }, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bt" = ( -/obj/structure/flora/ausbushes/palebush, -/turf/unsimulated/floor{ - icon_state = "snow" - }, -/area/map_template/ninja_dojo/dojo) -"bu" = ( -/obj/structure/bookcase, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bv" = ( -/obj/structure/flora/pottedplant/flower, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bw" = ( -/obj/structure/table/woodentable, -/obj/machinery/chemical_dispenser/bar_soft/full, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bx" = ( -/obj/structure/table/woodentable, -/obj/item/storage/box/glasses, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"by" = ( -/obj/structure/table/woodentable, -/obj/item/storage/box/donkpocket_premium, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bz" = ( -/obj/structure/table/woodentable, -/obj/machinery/microwave, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bA" = ( -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/obj/effect/floor_decal/carpet{ - dir = 1 - }, -/obj/effect/floor_decal/carpet{ - dir = 9 - }, -/turf/unsimulated/floor{ - icon_state = "carpet" - }, -/area/map_template/ninja_dojo/dojo) -"bB" = ( -/obj/effect/floor_decal/carpet{ - dir = 1 - }, -/turf/unsimulated/floor{ - icon_state = "carpet" - }, -/area/map_template/ninja_dojo/dojo) -"bC" = ( -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/obj/effect/floor_decal/carpet{ - dir = 1 - }, -/obj/effect/floor_decal/carpet{ - dir = 5 - }, -/turf/unsimulated/floor{ - icon_state = "carpet" - }, -/area/map_template/ninja_dojo/dojo) -"bD" = ( -/turf/unsimulated/floor{ - icon_state = "freezerfloor" - }, -/area/map_template/ninja_dojo/dojo) -"bE" = ( -/obj/effect/floor_decal/snow, -/turf/unsimulated/floor{ - icon_state = "freezerfloor" - }, -/area/map_template/ninja_dojo/dojo) -"bF" = ( -/obj/structure/table/woodentable, -/obj/item/reagent_containers/food/drinks/dry_ramen, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bG" = ( -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/turf/unsimulated/floor{ - icon_state = "carpet" - }, -/area/map_template/ninja_dojo/dojo) -"bH" = ( -/turf/unsimulated/floor{ - icon_state = "carpet" - }, -/area/map_template/ninja_dojo/dojo) -"bI" = ( -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/turf/unsimulated/floor{ - icon_state = "carpet" - }, -/area/map_template/ninja_dojo/dojo) -"bJ" = ( -/obj/effect/floor_decal/snow, -/turf/unsimulated/floor{ - icon = 'icons/turf/snow.dmi'; - icon_state = "ice" - }, -/area/map_template/ninja_dojo/dojo) -"bK" = ( -/obj/machinery/door/morgue{ - name = "Sleeping Chamber" - }, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bL" = ( -/obj/structure/table/woodentable, -/obj/item/device/flashlight/lamp, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bM" = ( -/obj/effect/floor_decal/snow, -/obj/structure/aliumizer, -/turf/unsimulated/floor{ - icon = 'icons/turf/snow.dmi'; - icon_state = "ice" - }, -/area/map_template/ninja_dojo/dojo) -"bN" = ( -/obj/effect/landmark{ - name = "ninjastart" - }, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bO" = ( -/obj/structure/bed/padded, -/obj/item/bedsheet/brown, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bP" = ( -/obj/effect/floor_decal/carpet, -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/obj/effect/floor_decal/carpet{ - dir = 10 - }, -/turf/unsimulated/floor{ - icon_state = "carpet" - }, -/area/map_template/ninja_dojo/dojo) -"bQ" = ( -/obj/effect/floor_decal/carpet, -/turf/unsimulated/floor{ - icon_state = "carpet" - }, -/area/map_template/ninja_dojo/dojo) -"bR" = ( -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/obj/effect/floor_decal/carpet, -/obj/effect/floor_decal/carpet{ - dir = 6 - }, -/turf/unsimulated/floor{ - icon_state = "carpet" - }, -/area/map_template/ninja_dojo/dojo) -"bS" = ( -/obj/structure/table/woodentable, -/obj/item/reagent_containers/food/snacks/soylentgreen, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bT" = ( -/obj/structure/bookcase{ - name = "bookcase (Tactics)" - }, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bU" = ( -/obj/structure/flora/pottedplant/shoot, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bV" = ( -/obj/structure/bookcase{ - name = "bookcase (Religious)" - }, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bW" = ( -/obj/structure/table/woodentable, -/obj/item/toy/figure/wizard, -/obj/item/device/radio/intercom/syndicate{ - dir = 1; - pixel_y = -22 - }, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bX" = ( -/obj/structure/table/woodentable, -/obj/item/clothing/shoes/sandal, -/obj/item/clothing/mask/balaclava, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bY" = ( -/obj/structure/undies_wardrobe, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"bZ" = ( -/obj/machinery/door/morgue{ - name = "Bath" - }, -/turf/unsimulated/floor{ - icon_state = "freezerfloor" - }, -/area/map_template/ninja_dojo/dojo) -"ca" = ( -/obj/structure/table/woodentable, -/obj/item/flame/candle, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"cb" = ( -/obj/effect/floor_decal/spline/fancy/wood/corner, -/obj/item/device/radio/intercom/syndicate{ - dir = 4; - pixel_x = -22 - }, -/turf/unsimulated/floor{ - icon_state = "freezerfloor" - }, -/area/map_template/ninja_dojo/dojo) -"cc" = ( -/obj/effect/floor_decal/spline/fancy/wood, -/turf/unsimulated/floor{ - icon_state = "freezerfloor" - }, -/area/map_template/ninja_dojo/dojo) -"cd" = ( -/obj/effect/floor_decal/spline/fancy/wood, -/obj/structure/hygiene/toilet{ - pixel_y = 8 - }, -/turf/unsimulated/floor{ - icon_state = "freezerfloor" - }, -/area/map_template/ninja_dojo/dojo) -"ce" = ( -/obj/machinery/door/morgue{ - name = "Shrine" - }, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"cf" = ( -/obj/effect/landmark{ - name = "ninjastart" - }, -/obj/effect/floor_decal/carpet{ - dir = 10 - }, -/obj/effect/floor_decal/carpet{ - dir = 6 - }, -/obj/effect/floor_decal/carpet{ - dir = 9 - }, -/obj/effect/floor_decal/carpet{ - dir = 5 - }, -/turf/unsimulated/floor{ - icon_state = "carpet" - }, -/area/map_template/ninja_dojo/dojo) -"cg" = ( -/obj/structure/table/rack{ - desc = "A simple wooden altar covered in cloth."; - icon = 'icons/obj/cult.dmi'; - icon_state = "churchaltar"; - name = "wooden altar" - }, -/obj/item/material/sword/katana, -/turf/unsimulated/floor{ - dir = 8; - icon_state = "wood" - }, -/area/map_template/ninja_dojo/dojo) -"ch" = ( -/obj/effect/floor_decal/spline/fancy/wood{ - dir = 4 - }, -/turf/unsimulated/floor{ - icon_state = "freezerfloor" - }, -/area/map_template/ninja_dojo/dojo) -"ci" = ( -/turf/unsimulated/floor{ - icon = 'icons/misc/beach.dmi'; - icon_state = "seashallow"; - name = "water" - }, -/area/map_template/ninja_dojo/dojo) -"cj" = ( -/obj/effect/floor_decal/spline/fancy/wood{ - dir = 4 - }, -/obj/structure/hygiene/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/item/storage/mirror{ - pixel_x = -32 - }, -/turf/unsimulated/floor{ - icon_state = "freezerfloor" - }, -/area/map_template/ninja_dojo/dojo) -"ck" = ( -/obj/effect/paint/black, -/turf/simulated/wall/r_titanium, -/area/map_template/ninja_dojo/start) -"cl" = ( -/obj/machinery/door/morgue{ - name = "Equipment" - }, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"cm" = ( -/obj/machinery/fabricator/hacked, -/obj/effect/floor_decal/industrial/outline/grey, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"cn" = ( -/obj/structure/table/rack, -/obj/item/stack/material/steel{ - amount = 50 - }, -/obj/item/stack/material/steel{ - amount = 50 - }, -/obj/item/stack/material/glass{ - amount = 50 - }, -/obj/item/stack/material/glass{ - amount = 50 - }, -/obj/effect/floor_decal/industrial/outline/grey, -/obj/item/stack/material/plastic/fifty, -/obj/item/stack/material/aluminium/fifty, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"co" = ( -/obj/structure/table/steel_reinforced, -/obj/item/storage/secure/briefcase/money, -/obj/effect/floor_decal/industrial/outline/grey, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"cp" = ( -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"cq" = ( -/obj/structure/table/rack, -/obj/effect/floor_decal/industrial/outline/grey, -/obj/item/device/multitool/hacktool, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"cr" = ( -/obj/structure/table/rack, -/obj/item/storage/belt/utility/full, -/obj/item/device/multitool, -/obj/effect/floor_decal/industrial/outline/grey, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"cs" = ( -/obj/structure/table/steel_reinforced, -/obj/effect/floor_decal/industrial/outline/grey, -/obj/item/implanter/freedom, -/obj/item/implantcase/freedom, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"ct" = ( -/obj/structure/table/steel_reinforced, -/obj/item/device/radio/uplink, -/obj/effect/floor_decal/industrial/outline/grey, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"cu" = ( -/obj/machinery/door/airlock/centcom{ - name = "Equipment" - }, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"cv" = ( -/obj/machinery/acting/changer, -/obj/effect/floor_decal/industrial/outline/grey, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"cw" = ( -/obj/structure/table/rack, -/obj/item/stack/nanopaste, -/obj/item/stack/nanopaste, -/obj/effect/floor_decal/industrial/outline/grey, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"cx" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 1 - }, -/obj/effect/paint/black, -/turf/simulated/wall/r_titanium, -/area/map_template/ninja_dojo/start) -"cy" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/cell_charger, -/obj/effect/floor_decal/industrial/outline/grey, -/obj/item/clothing/accessory/storage/bandolier, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"cz" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/recharger, -/obj/effect/floor_decal/industrial/outline/grey, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"cA" = ( -/obj/structure/table/rack, -/obj/item/material/star/ninja, -/obj/item/material/star/ninja, -/obj/item/material/star/ninja, -/obj/item/material/star/ninja, -/obj/item/material/star/ninja, -/obj/item/material/star/ninja, -/obj/effect/floor_decal/industrial/outline/grey, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"cB" = ( -/obj/structure/table/rack, -/obj/item/material/star, -/obj/item/material/star, -/obj/item/material/star, -/obj/item/material/star, -/obj/item/material/star, -/obj/item/material/star, -/obj/effect/floor_decal/industrial/outline/grey, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"cC" = ( -/obj/structure/table/rack, -/obj/item/clothing/accessory/storage/black_vest, -/obj/effect/floor_decal/industrial/outline/grey, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"cD" = ( -/obj/structure/table/rack, -/obj/item/storage/belt/holster/security/tactical, -/obj/effect/floor_decal/industrial/outline/grey, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"cE" = ( -/obj/structure/table/steel_reinforced, -/obj/item/plastique, -/obj/item/plastique, -/obj/item/device/radio/intercom/syndicate{ - dir = 1; - pixel_y = -22 - }, -/obj/effect/floor_decal/industrial/outline/grey, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"cF" = ( -/obj/structure/table/steel_reinforced, -/obj/item/storage/box/anti_photons, -/obj/effect/floor_decal/industrial/outline/grey, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/dojo) -"cG" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 4; - icon_state = "warning" - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/table/rack, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"cH" = ( -/obj/machinery/computer/teleporter, -/turf/simulated/floor/plating, -/area/map_template/ninja_dojo/start) -"cI" = ( -/obj/machinery/tele_projector, -/turf/simulated/floor/plating, -/area/map_template/ninja_dojo/start) -"cJ" = ( -/obj/machinery/tele_pad, -/obj/effect/floor_decal/industrial/hatch/yellow, -/turf/simulated/floor/plating, -/area/map_template/ninja_dojo/start) -"cK" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/portables_connector, -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/machinery/portable_atmospherics/canister/air/airlock, -/obj/effect/floor_decal/industrial/warning{ - dir = 8; - icon_state = "warning" - }, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"cL" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/obj/machinery/light{ - dir = 8; - icon_state = "tube1" - }, -/obj/effect/floor_decal/industrial/outline/grey, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"cM" = ( -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"cN" = ( -/obj/effect/floor_decal/industrial/warning/corner{ - dir = 4; - icon_state = "warningcorner" - }, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"cO" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"cP" = ( -/obj/effect/floor_decal/industrial/warning/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"cQ" = ( -/obj/machinery/embedded_controller/radio/airlock/docking_port{ - frequency = 1331; - id_tag = "ninja_shuttle"; - pixel_x = -8; - pixel_y = 25; - req_access = list("ACCESS_SYNDICATE") - }, -/obj/machinery/light{ - dir = 8; - icon_state = "tube1" - }, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"cR" = ( -/obj/machinery/door/airlock/external{ - frequency = 1331; - id_tag = "ninja_shuttle_outer"; - name = "Ship External Access" - }, -/obj/machinery/door/blast/regular{ - density = 0; - icon_state = "pdoor0"; - id_tag = "ninjadoor"; - name = "Blast Door"; - opacity = 0 - }, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"cS" = ( -/obj/machinery/sleeper{ - dir = 4 - }, -/obj/effect/floor_decal/industrial/outline/grey, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"cT" = ( -/obj/effect/shuttle_landmark/ninja/start, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"cU" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 5 - }, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1331; - master_tag = "ninja_shuttle"; - name = "interior access button"; - pixel_x = 25; - pixel_y = 25; - req_access = list("ACCESS_SYNDICATE") - }, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"cV" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - frequency = 1331; - id_tag = "ninja_shuttle_inner"; - name = "Ship External Access" - }, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"cW" = ( -/obj/machinery/airlock_sensor{ - frequency = 1331; - id_tag = "ninja_shuttle_sensor"; - pixel_x = 8; - pixel_y = -25 - }, -/obj/machinery/atmospherics/unary/vent_pump/high_volume/shuttle{ - dir = 8; - id_tag = "ninja_shuttle_pump" - }, -/obj/machinery/button/blast_door{ - id_tag = "ninjadoor"; - name = "remote shutter control"; - pixel_x = 25 - }, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"cX" = ( -/obj/structure/closet, -/obj/machinery/light{ - dir = 8; - icon_state = "tube1" - }, -/obj/effect/floor_decal/industrial/outline/grey, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"cY" = ( -/obj/structure/table/rack, -/obj/effect/floor_decal/industrial/outline/grey, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"cZ" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/light{ - dir = 8; - icon_state = "tube1" - }, -/obj/item/device/radio/intercom/syndicate{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/cell_charger, -/obj/item/screwdriver, -/obj/effect/floor_decal/industrial/outline/grey, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"da" = ( -/obj/structure/bed/chair/shuttle, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"db" = ( -/obj/machinery/button/blast_door{ - id_tag = "ninjawindow"; - name = "remote shutter control"; - pixel_x = 36; - pixel_y = -24 - }, -/obj/machinery/button/windowtint{ - id = "ninja_ship"; - pixel_x = -24; - pixel_y = -25 - }, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"dc" = ( -/obj/structure/table/steel_reinforced, -/obj/machinery/recharger, -/obj/item/wrench, -/obj/machinery/light{ - dir = 4; - icon_state = "tube1" - }, -/obj/effect/floor_decal/industrial/outline/grey, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"dd" = ( -/obj/effect/floor_decal/industrial/outline/grey, -/obj/machinery/computer/station_alert/all{ - dir = 1 - }, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"de" = ( -/obj/effect/floor_decal/industrial/outline/grey, -/obj/machinery/computer/shuttle_control/multi/ninja{ - dir = 1 - }, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"df" = ( -/obj/effect/floor_decal/industrial/outline/grey, -/obj/machinery/computer/modular/preset/security{ - dir = 1; - icon_state = "console" - }, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/map_template/ninja_dojo/start) -"dg" = ( -/obj/machinery/door/blast/regular{ - id_tag = "ninjawindow"; - name = "Blast Shutter" - }, -/obj/effect/wallframe_spawn/reinforced/polarized{ - id = "ninja_ship" - }, -/obj/effect/paint/black, -/turf/simulated/floor/plating, -/area/map_template/ninja_dojo/start) -"ss" = ( -/turf/unsimulated/wall, -/area/map_template/ninja_dojo/dojo) -"zr" = ( -/obj/effect/floor_decal/snow, -/turf/unsimulated/wall, -/area/map_template/ninja_dojo/dojo) +"ac" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowwhite"},/area/map_template/ninja_dojo/dojo) +"ad" = (/turf/unsimulated/floor{icon_state = "snow"},/area/map_template/ninja_dojo/dojo) +"ae" = (/obj/effect/floor_decal/asteroid,/turf/unsimulated/floor{icon_state = "snow"},/area/map_template/ninja_dojo/dojo) +"af" = (/obj/effect/floor_decal/asteroid,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowwhite"},/area/map_template/ninja_dojo/dojo) +"ag" = (/obj/structure/flora/tree/dead,/turf/unsimulated/floor{icon_state = "snow"},/area/map_template/ninja_dojo/dojo) +"ah" = (/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon_state = "snow"},/area/map_template/ninja_dojo/dojo) +"ai" = (/obj/structure/flora/tree/dead,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowwhite"},/area/map_template/ninja_dojo/dojo) +"aj" = (/obj/effect/wallframe_spawn/reinforced,/turf/simulated/wall/prepainted,/area/map_template/ninja_dojo/dojo) +"ak" = (/obj/structure/table/glass,/obj/item/storage/firstaid/surgery,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"al" = (/obj/machinery/optable,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"am" = (/obj/structure/closet/medical_wall{pixel_y = 32},/obj/item/tank/anesthetic,/obj/item/clothing/mask/breath/medical,/obj/item/clothing/gloves/latex,/obj/item/clothing/mask/surgical,/obj/structure/hygiene/sink{dir = 1; pixel_y = 16},/obj/item/reagent_containers/glass/bottle/stoxin,/obj/item/reagent_containers/glass/bottle/stoxin,/obj/item/reagent_containers/syringe,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"an" = (/obj/structure/table/glass,/obj/item/reagent_containers/ivbag/nanoblood,/obj/item/reagent_containers/ivbag/blood/human/oneg,/obj/item/reagent_containers/ivbag/blood/human/oneg,/obj/item/reagent_containers/ivbag/blood/skrell/oneg,/obj/item/reagent_containers/ivbag/blood/skrell/oneg,/obj/item/reagent_containers/ivbag/blood/unathi/oneg,/obj/item/reagent_containers/ivbag/blood/unathi/oneg,/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"ao" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"ap" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"aq" = (/obj/item/reagent_containers/glass/beaker/cryoxadone,/obj/structure/table/glass,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"ar" = (/obj/structure/table/glass,/obj/item/reagent_containers/spray/sterilizine,/obj/item/reagent_containers/spray/cleaner,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"as" = (/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"at" = (/obj/structure/table/glass,/obj/item/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/storage/firstaid/fire{pixel_x = 1},/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"au" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5},/obj/effect/floor_decal/corner/blue,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"av" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/obj/effect/floor_decal/corner/blue{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"aw" = (/obj/structure/table/glass,/obj/item/storage/box/beakers,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"ax" = (/obj/machinery/computer/teleporter,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/map_template/ninja_dojo/dojo) +"ay" = (/obj/machinery/tele_projector,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/map_template/ninja_dojo/dojo) +"az" = (/obj/machinery/tele_pad,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/map_template/ninja_dojo/dojo) +"aA" = (/obj/effect/floor_decal/corner/black/border{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"aB" = (/obj/structure/table/glass,/obj/item/reagent_containers/syringe/antiviral,/obj/item/reagent_containers/syringe/antiviral,/obj/item/stack/medical/advanced/bruise_pack,/obj/machinery/light{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"aC" = (/obj/structure/table/glass,/obj/item/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/storage/firstaid/adv{pixel_x = 1},/obj/item/storage/firstaid/radiation,/obj/structure/window/reinforced/crescent{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"aD" = (/obj/item/reagent_containers/glass/beaker/large,/obj/machinery/light{dir = 4},/obj/machinery/chemical_dispenser/full,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"aE" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"aF" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"aG" = (/obj/machinery/cryopod{dir = 1},/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/map_template/ninja_dojo/dojo) +"aH" = (/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowwhite"},/area/map_template/ninja_dojo/dojo) +"aI" = (/obj/structure/iv_stand,/obj/structure/window/reinforced/crescent,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"aJ" = (/obj/structure/table/glass,/obj/item/storage/firstaid/regular,/obj/item/storage/firstaid/combat,/obj/structure/window/reinforced/crescent{dir = 4},/obj/structure/window/reinforced/crescent,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"aK" = (/obj/effect/floor_decal/corner/blue{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"aL" = (/obj/machinery/door/blast/regular/open{icon_state = "pdoor0"; id_tag = "prototype_chamber_blast"},/obj/effect/floor_decal/floordetail/tiled,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"aM" = (/obj/item/reagent_containers/glass/beaker/large,/obj/machinery/chem_master,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"aN" = (/obj/effect/floor_decal/corner/black/border{dir = 7},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"aO" = (/obj/effect/floor_decal/corner/blue{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"aQ" = (/obj/structure/table/glass,/obj/effect/floor_decal/corner/black/border{dir = 7},/obj/item/paper_bin,/obj/item/pen,/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo) +"aR" = (/obj/machinery/bodyscanner{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"aS" = (/obj/machinery/body_scanconsole{dir = 8},/obj/effect/floor_decal/corner/blue{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"aT" = (/obj/effect/floor_decal/corner/blue{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 5},/obj/effect/floor_decal/corner/blue{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"aU" = (/obj/effect/floor_decal/industrial/outline/blue,/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"aV" = (/obj/effect/floor_decal/corner/black/border{dir = 10},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"aW" = (/obj/structure/table/rack,/obj/item/tank/oxygen,/obj/item/tank/oxygen,/obj/item/tank/oxygen,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"aX" = (/obj/machinery/door/blast/regular/open{id_tag = "bsdwindow"; name = "Exit"},/turf/unsimulated/wall,/area/map_template/ninja_dojo/dojo) +"aY" = (/turf/unsimulated/floor{dir = 9; icon_state = "vault"},/area/map_template/ninja_dojo/dojo) +"aZ" = (/obj/structure/table/rack,/obj/item/storage/belt/medical/emt,/obj/item/storage/firstaid/adv,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"ba" = (/obj/effect/floor_decal/corner/black/border{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bb" = (/obj/effect/floor_decal/industrial/outline/blue,/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bc" = (/obj/effect/floor_decal/corner/black/border{dir = 6},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bd" = (/turf/simulated/wall/prepainted,/area/map_template/ninja_dojo/dojo) +"be" = (/obj/machinery/door/blast/regular/open{icon_state = "pdoor0"; id_tag = "prototype_chamber_blast"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowplating"},/area/map_template/ninja_dojo/dojo) +"bf" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"},/obj/machinery/light{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowplating"},/area/map_template/ninja_dojo/dojo) +"bh" = (/obj/machinery/light{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bi" = (/obj/machinery/light,/obj/effect/floor_decal/corner/black/bordercorner{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bj" = (/obj/structure/bed/chair/office/dark,/obj/item/device/radio/intercom/syndicate{dir = 4; pixel_x = -22},/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo) +"bl" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/floor_decal/floordetail/tiled,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/map_template/ninja_dojo/dojo) +"bm" = (/obj/structure/table/rack,/obj/item/tank/nitrogen,/obj/item/tank/nitrogen,/obj/item/tank/nitrogen,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bn" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowplating"},/area/map_template/ninja_dojo/dojo) +"bo" = (/obj/effect/floor_decal/snow,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowplating"},/area/map_template/ninja_dojo/dojo) +"bp" = (/obj/structure/window/reinforced/polarized{dir = 1},/obj/structure/window/reinforced/polarized,/obj/effect/floor_decal/floordetail/tiled,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/map_template/ninja_dojo/dojo) +"bq" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo) +"br" = (/obj/effect/floor_decal/corner/black/border{dir = 1},/obj/effect/floor_decal/corner/black/border{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bs" = (/obj/machinery/light{dir = 8},/obj/effect/floor_decal/corner/black/border{dir = 7},/obj/effect/floor_decal/corner/black/border{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bt" = (/obj/structure/pit/closed/grave,/turf/unsimulated/floor{icon_state = "snow"},/area/map_template/ninja_dojo/dojo) +"bu" = (/obj/machinery/light{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bv" = (/obj/effect/floor_decal/corner/blue,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"bw" = (/obj/effect/floor_decal/corner/black/border{dir = 7},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"bx" = (/obj/machinery/recharger/wallcharger{dir = 4; pixel_x = -23; pixel_y = -3},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"by" = (/obj/effect/landmark{name = "ninjastart"},/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/floordetail/tiled,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/map_template/ninja_dojo/dojo) +"bz" = (/obj/machinery/acting/changer,/obj/effect/floor_decal/industrial/warning{dir = 9; icon_state = "warning"},/obj/effect/floor_decal/industrial/warning{dir = 6; icon_state = "warning"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bA" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bB" = (/obj/effect/floor_decal/corner/black/bordercorner{dir = 5},/obj/machinery/light{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bC" = (/obj/machinery/door/airlock/centcom{name = "Equipment"},/turf/unsimulated/floor{icon_state = "snow"},/area/map_template/ninja_dojo/dojo) +"bD" = (/obj/effect/floor_decal/corner/black/border{dir = 1},/obj/machinery/light{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bE" = (/obj/effect/floor_decal/corner/black/border{dir = 9},/obj/machinery/rotating_alarm/supermatter{dir = 4; name = "emergency alarm"; on = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bF" = (/obj/effect/floor_decal/corner/black/border{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bG" = (/obj/effect/floor_decal/corner/black/bordercorner{dir = 8},/obj/effect/floor_decal/corner/black/bordercorner{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bH" = (/obj/effect/floor_decal/industrial/warning{dir = 4; icon_state = "warning"},/obj/effect/floor_decal/industrial/warning{dir = 4; icon_state = "warning"},/turf/unsimulated/floor{dir = 9; icon_state = "vault"},/area/map_template/ninja_dojo/dojo) +"bI" = (/obj/machinery/door/blast/regular/open{dir = 4; icon_state = "pdoor0"; id_tag = "prototype_chamber_blast"},/obj/effect/floor_decal/floordetail/tiled,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bJ" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bK" = (/obj/effect/floor_decal/corner/black/bordercorner{dir = 4},/obj/machinery/light{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bL" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/effect/floor_decal/floordetail/tiled,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/map_template/ninja_dojo/dojo) +"bM" = (/obj/effect/floor_decal/corner/black/border{dir = 10},/obj/machinery/rotating_alarm/supermatter{dir = 4; name = "emergency alarm"; on = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bN" = (/obj/machinery/cryopod{dir = 2},/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/map_template/ninja_dojo/dojo) +"bO" = (/obj/effect/paint_stripe/yellow,/turf/simulated/wall/prepainted,/area/map_template/ninja_dojo/dojo) +"bP" = (/obj/effect/floor_decal/corner/black/border{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bQ" = (/obj/effect/floor_decal/corner/black/border{dir = 5},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bR" = (/obj/structure/table/rack,/obj/item/storage/box/syndie_kit/chameleon,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bS" = (/obj/effect/floor_decal/asteroid,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowplating"},/area/map_template/ninja_dojo/dojo) +"bT" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/effect/floor_decal/industrial/warning/corner{dir = 4; icon_state = "warningcorner"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bU" = (/obj/structure/shuttle/engine/propulsion{dir = 1},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/map_template/ninja_dojo/start) +"bV" = (/obj/machinery/light{dir = 8},/obj/effect/floor_decal/industrial/warning/corner{dir = 4; icon_state = "warningcorner"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bW" = (/obj/machinery/light{dir = 8},/obj/effect/floor_decal/industrial/warning/corner{dir = 2; icon_state = "warningcorner"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bX" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"bZ" = (/obj/effect/wallframe_spawn/reinforced,/turf/space,/area/map_template/ninja_dojo/dojo) +"ca" = (/obj/structure/table/glass,/obj/effect/floor_decal/corner/black/border{dir = 10},/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo) +"cb" = (/obj/machinery/computer/modular/preset/medical,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/floor_decal/corner/black/border{dir = 6},/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo) +"ce" = (/obj/machinery/door/airlock/centcom{name = "Equipment"},/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo) +"cf" = (/obj/effect/floor_decal/corner/black/bordercorner{dir = 7},/obj/machinery/light,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"cg" = (/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo) +"ch" = (/obj/structure/bed/chair/office/dark{dir = 1},/obj/item/device/radio/intercom/syndicate{dir = 8; pixel_x = 22},/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo) +"ci" = (/obj/effect/floor_decal/corner/black/border{dir = 6},/obj/structure/table/glass,/obj/item/stack/material/aluminium/fifty,/obj/item/stack/material/glass/fifty,/obj/item/stack/material/plasteel/fifty,/obj/item/stack/material/plastic/fifty,/obj/item/stack/material/steel/fifty,/obj/item/stack/material/steel/fifty,/obj/item/stack/material/titanium/fifty,/obj/item/stack/material/glass/fifty,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"cj" = (/obj/machinery/rotating_alarm/supermatter{dir = 8; name = "emergency alarm"; on = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"ck" = (/obj/effect/paint/black,/turf/simulated/wall/r_titanium,/area/map_template/ninja_dojo/start) +"cl" = (/obj/effect/floor_decal/corner/black/border{dir = 9},/obj/machinery/fabricator/hacked,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"cm" = (/obj/effect/floor_decal/corner/black/border{dir = 10},/obj/machinery/fabricator/hacked,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"cn" = (/obj/effect/floor_decal/industrial/warning{dir = 4; icon_state = "warning"},/turf/unsimulated/floor{dir = 9; icon_state = "vault"},/area/map_template/ninja_dojo/dojo) +"co" = (/obj/structure/aliumizer,/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/effect/floor_decal/industrial/warning{dir = 5; icon_state = "warning"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"cp" = (/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"cq" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo) +"cr" = (/obj/machinery/rotating_alarm/supermatter{dir = 4; name = "emergency alarm"; on = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"cs" = (/obj/structure/table/rack,/obj/item/melee/energy/machete{pixel_x = 9; pixel_y = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"cu" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"},/obj/machinery/light{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowplating"},/area/map_template/ninja_dojo/dojo) +"cv" = (/obj/effect/floor_decal/industrial/warning{dir = 1; icon_state = "warning"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"cw" = (/obj/effect/floor_decal/industrial/warning{dir = 4; icon_state = "warning"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"cy" = (/obj/structure/table/rack,/obj/item/storage/belt/utility/full,/obj/item/device/multitool,/obj/item/tape_roll,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"cz" = (/obj/effect/floor_decal/snow,/obj/machinery/light{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowplating"},/area/map_template/ninja_dojo/dojo) +"cA" = (/obj/structure/table/rack,/obj/item/storage/box/flashbangs,/obj/item/storage/box/smokes,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"cB" = (/obj/machinery/light,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snowplating"},/area/map_template/ninja_dojo/dojo) +"cC" = (/obj/effect/landmark{name = "ninjastart"},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/effect/floor_decal/floordetail/tiled,/turf/unsimulated/floor{dir = 1; icon_state = "vault"},/area/map_template/ninja_dojo/dojo) +"cD" = (/obj/machinery/light,/obj/effect/floor_decal/corner/black/bordercorner{dir = 3},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"cE" = (/obj/machinery/door/blast/regular/open{dir = 4; name = "Operative Cryo Chamber"},/turf/unsimulated/wall,/area/map_template/ninja_dojo/dojo) +"cF" = (/obj/effect/wallframe_spawn/reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"cG" = (/obj/effect/floor_decal/industrial/warning{dir = 4; icon_state = "warning"},/obj/machinery/light{dir = 1},/obj/structure/table/rack,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"cH" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plating,/area/map_template/ninja_dojo/start) +"cI" = (/obj/machinery/tele_projector,/turf/simulated/floor/plating,/area/map_template/ninja_dojo/start) +"cJ" = (/obj/machinery/tele_pad,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/plating,/area/map_template/ninja_dojo/start) +"cK" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/portables_connector,/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/effect/floor_decal/industrial/warning{dir = 8; icon_state = "warning"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"cL" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"},/obj/effect/floor_decal/industrial/outline/grey,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"cM" = (/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"cN" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4; icon_state = "warningcorner"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"cO" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"cP" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"cQ" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1331; id_tag = "ninja_shuttle"; pixel_x = -8; pixel_y = 25; req_access = list("ACCESS_SYNDICATE")},/obj/machinery/light{dir = 8; icon_state = "tube1"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"cR" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "ninja_shuttle_outer"; name = "Ship External Access"},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id_tag = "ninjadoor"; name = "Blast Door"; opacity = 0},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"cS" = (/obj/machinery/sleeper{dir = 4},/obj/effect/floor_decal/industrial/outline/grey,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"cT" = (/obj/effect/shuttle_landmark/ninja/start,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"cU" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "ninja_shuttle"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access = list("ACCESS_SYNDICATE")},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"cV" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "ninja_shuttle_inner"; name = "Ship External Access"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"cW" = (/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "ninja_shuttle_sensor"; pixel_x = 8; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_pump/high_volume/shuttle{dir = 8; id_tag = "ninja_shuttle_pump"},/obj/machinery/button/blast_door{id_tag = "ninjadoor"; name = "remote shutter control"; pixel_x = 25},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"cX" = (/obj/structure/closet,/obj/machinery/light{dir = 8; icon_state = "tube1"},/obj/effect/floor_decal/industrial/outline/grey,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"cY" = (/obj/structure/table/rack,/obj/effect/floor_decal/industrial/outline/grey,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"cZ" = (/obj/structure/table/steel_reinforced,/obj/machinery/light{dir = 8; icon_state = "tube1"},/obj/item/device/radio/intercom/syndicate{dir = 4; pixel_x = -22},/obj/machinery/cell_charger,/obj/item/screwdriver,/obj/effect/floor_decal/industrial/outline/grey,/obj/item/toy/figure/ninja,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"da" = (/obj/structure/bed/chair/shuttle,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"db" = (/obj/machinery/button/blast_door{id_tag = "ninjawindow"; name = "remote shutter control"; pixel_x = 36; pixel_y = -24},/obj/machinery/button/windowtint{id = "ninja_ship"; pixel_x = -24; pixel_y = -25},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"dc" = (/obj/structure/table/steel_reinforced,/obj/machinery/recharger,/obj/item/wrench,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/effect/floor_decal/industrial/outline/grey,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"dd" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/computer/station_alert/all{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"de" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/computer/shuttle_control/multi/ninja{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"df" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/computer/modular/preset/security{dir = 1; icon_state = "console"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/start) +"dg" = (/obj/machinery/door/blast/regular{id_tag = "ninjawindow"; name = "Blast Shutter"},/obj/effect/wallframe_spawn/reinforced/polarized{id = "ninja_ship"},/obj/effect/paint/black,/turf/simulated/floor/plating,/area/map_template/ninja_dojo/start) +"gy" = (/obj/structure/table/rack,/obj/item/clothing/mask/gas/swat/vox,/obj/item/clothing/mask/gas/swat/vox,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"qc" = (/obj/effect/floor_decal/corner/blue{dir = 1},/obj/effect/floor_decal/corner/blue{dir = 5},/obj/effect/floor_decal/corner/blue,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"ss" = (/turf/unsimulated/wall,/area/map_template/ninja_dojo/dojo) +"uZ" = (/obj/effect/floor_decal/corner/blue{dir = 8},/obj/effect/floor_decal/corner/blue,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"vP" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1; icon_state = "warningcorner"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"vQ" = (/obj/machinery/light{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 1; icon_state = "warningcorner"},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"wG" = (/obj/effect/floor_decal/corner/black/border{dir = 5},/obj/structure/table/glass,/obj/item/stack/material/aluminium/fifty,/obj/item/stack/material/glass/fifty,/obj/item/stack/material/glass/fifty,/obj/item/stack/material/plasteel/fifty,/obj/item/stack/material/steel/fifty,/obj/item/stack/material/steel/fifty,/obj/item/stack/material/titanium/fifty,/obj/item/stack/material/plastic/fifty,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"wX" = (/obj/structure/table/glass,/obj/effect/floor_decal/corner/black/border{dir = 1},/obj/item/newspaper,/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo) +"zr" = (/obj/effect/floor_decal/snow,/turf/unsimulated/wall,/area/map_template/ninja_dojo/dojo) +"BB" = (/obj/effect/floor_decal/corner/black/bordercorner{dir = 8},/obj/machinery/light,/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"Cj" = (/obj/structure/table/rack,/obj/random/biggun,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"Hl" = (/obj/structure/table/glass,/obj/effect/floor_decal/corner/black/border{dir = 5},/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo) +"JH" = (/obj/structure/table/rack,/obj/item/clothing/mask/gas/swat,/obj/item/clothing/mask/gas/swat,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"JM" = (/obj/machinery/door/blast/regular/open{icon_state = "pdoor0"; id_tag = "prototype_chamber_blast"},/obj/effect/floor_decal/floordetail/tiled,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"KK" = (/obj/effect/floor_decal/corner/black/bordercorner{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"LW" = (/obj/structure/table/rack,/obj/item/storage/box/handcuffs,/obj/item/storage/box/handcuffs,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"MC" = (/obj/effect/floor_decal/corner/blue{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"Oo" = (/obj/machinery/light,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"OL" = (/obj/effect/floor_decal/corner/black/border{dir = 7},/obj/machinery/light,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) +"PF" = (/obj/machinery/computer/modular/preset/civilian{dir = 1; icon_state = "console"},/obj/effect/floor_decal/corner/black/border{dir = 9},/turf/simulated/floor/tiled,/area/map_template/ninja_dojo/dojo) +"RX" = (/obj/effect/floor_decal/corner/black/border{dir = 7},/obj/effect/floor_decal/corner/blue{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"TP" = (/obj/effect/floor_decal/corner/blue{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/map_template/ninja_dojo/dojo) +"UV" = (/obj/structure/table/rack,/obj/item/storage/belt/holster/security/tactical,/obj/item/storage/belt/holster/security/tactical,/obj/effect/floor_decal/corner/black/bordercorner{dir = 3},/obj/item/clothing/accessory/storage/webbing,/obj/item/clothing/accessory/storage/webbing,/obj/item/clothing/accessory/storage/webbing_large,/obj/item/clothing/accessory/storage/webbing_large,/obj/machinery/light{dir = 1},/obj/item/clothing/accessory/storage/holster/thigh,/obj/item/clothing/accessory/storage/holster/thigh,/turf/unsimulated/floor{icon_state = "dark"},/area/map_template/ninja_dojo/dojo) (1,1,1) = {" -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -zr -zr -zr -"} -(2,1,1) = {" -ss -ac -ac -ad -ad -ac -ac -af -ac -ac -ac -ac -ag -ac -ac -ac -ac -ad -ag -bn -bo -ad -ag -ac -ad -bn -bn -bn -bo -bo -bn -bn -bn -bn -bo -bn -bn -bo -bo -bo -zr -"} -(3,1,1) = {" -ss -ad -af -ad -ad -ad -ai -ad -ac -ad -ad -ac -ad -ad -ad -ac -ae -ad -ad -bo -bn -ad -ad -ad -ad -bn -bo -bo -bn -bn -bn -bn -ck -ck -ck -ck -bn -bn -bo -bn -zr -"} -(4,1,1) = {" -ss -ad -ad -ad -ac -ac -ad -ad -ac -ac -aH -ac -ad -ad -ad -ad -ad -ad -ad -bn -bn -ac -ad -ad -ac -bn -bn -bn -bn -bn -bn -ck -ck -cL -cS -ck -ck -bn -bn -bn -ss -"} -(5,1,1) = {" -ss -ad -ad -ad -ac -ad -ad -ac -ad -ad -ac -ac -ad -ad -ad -ad -ad -ad -ad -bn -bo -ad -ad -ae -ad -bo -bn -bn -bn -bn -bn -cx -ck -cM -cM -ck -ck -ck -bn -bn -zr -"} -(6,1,1) = {" -ss -ac -ac -ac -ae -ad -ad -ad -ac -ac -ac -ad -ad -ad -ad -ae -ac -ac -ag -bo -bn -ad -ag -ad -ad -bo -bn -ck -ck -ck -ck -ck -cG -cN -cM -cX -cZ -ck -ck -bn -zr -"} -(7,1,1) = {" -ss -ac -ac -ac -ac -ad -aj -aj -aj -aj -aj -aj -aj -aj -ad -ad -ad -ad -ad -bn -bn -ad -ad -ad -ad -bo -bn -bn -bo -bn -bn -ck -cH -cO -cM -cM -cM -dd -dg -bn -zr -"} -(8,1,1) = {" -ss -ac -ac -ac -ac -ad -aj -ak -ar -aB -aI -aR -as -aj -aj -aj -aj -aj -aA -bh -bh -aA -aj -aj -ad -bn -bn -bn -bo -bo -bn -ck -cI -cO -cT -cM -da -de -dg -bn -ss -"} -(9,1,1) = {" -ss -ac -ag -ac -ad -ad -aj -al -as -as -as -aS -as -bf -bl -bq -aj -bu -aG -aG -aG -aG -bT -aj -ad -bn -bn -bn -bn -bn -bn -ck -cJ -cO -cM -cM -db -df -dg -bn -ss -"} -(10,1,1) = {" -ss -ac -ac -ad -ad -ad -aj -am -as -as -as -as -as -aL -aG -aG -aA -aV -bA -bG -bG -bP -bU -aA -ad -bn -bn -ck -ck -ck -ck -ck -cK -cP -cU -cY -dc -ck -ck -bn -ss -"} -(11,1,1) = {" -ss -ac -ac -ad -ad -ad -aj -an -at -aC -aJ -as -as -aL -aG -aG -ba -aG -bB -bH -bH -bQ -aG -bh -bn -bn -bn -bn -bn -bn -bn -cx -ck -ck -cV -ck -ck -ck -bn -bn -ss -"} -(12,1,1) = {" -ss -ac -ac -ad -ad -ad -aj -ao -au -as -aK -aT -aT -bg -aG -aG -ba -aG -bB -bH -bH -bQ -aG -bh -bn -bn -bn -bn -bn -bn -bn -ck -ck -cQ -cW -ck -ck -bn -bn -bn -ss -"} -(13,1,1) = {" -ss -ac -ad -ad -ad -ad -aj -ap -av -as -aL -aG -aG -aG -aG -aG -aA -bv -bC -bI -bI -bR -aU -aA -ad -bn -bn -bo -bo -bn -bn -bn -ck -cR -ck -ck -bn -bn -bn -bn -zr -"} -(14,1,1) = {" -ss -ac -ad -ac -ae -ad -aj -aq -aw -aD -aM -aU -aG -aG -bm -br -aj -bu -aG -aG -aG -aG -bV -aj -ad -bn -bn -bn -bn -bn -bn -bn -bn -bn -bn -bn -bo -bo -bn -bn -ss -"} -(15,1,1) = {" -ss -ac -ad -ac -ac -ad -aj -aj -aj -aj -aj -aA -ba -aj -aj -aj -aj -aj -aA -bh -bh -aA -aj -aj -ad -bo -bn -bn -bn -bo -bn -bn -bn -bn -bo -bo -bo -bn -bn -bn -zr -"} -(16,1,1) = {" -ss -ad -ad -ac -ac -ad -ad -aj -ax -aE -aA -aV -aG -aj -ad -ad -ad -ad -ad -bn -bn -ad -ad -ad -ad -ad -ad -ad -ad -bn -bn -ad -ad -ad -ac -ad -ad -ad -ad -ad -ss -"} -(17,1,1) = {" -ss -ad -ac -ad -ac -ad -ad -aj -ay -aE -aN -aG -aG -aA -ae -bo -bn -bn -bn -bn -bo -bo -bn -bn -bn -ad -ad -ae -ad -bn -bn -ad -ac -ac -ad -ad -ad -ad -ac -ah -ss -"} -(18,1,1) = {" -ss -ad -ac -ah -ac -ac -ac -aj -az -aF -aA -aG -aG -aA -ad -bn -ag -bn -ad -ad -ad -ad -bn -ah -bn -ac -ad -ad -ad -bn -bn -ad -ad -ad -ad -ag -ad -ad -ad -ad -ss -"} -(19,1,1) = {" -ss -ad -ad -ad -ac -ac -ad -aj -aj -aj -aj -aG -bb -aj -ad -bo -bn -bn -ad -ad -ad -ad -bn -bn -bn -ac -ad -ad -ac -bn -bo -ad -ae -ad -ad -ac -ac -ad -ad -ae -ss -"} -(20,1,1) = {" -ss -ad -ad -ac -ac -ad -ad -ad -ac -ad -aA -aG -aG -aj -ad -bn -ad -ad -bD -bE -bE -bE -ad -ad -bn -ad -ad -ad -ac -bn -bn -ad -ad -ac -ad -ad -ad -ad -ac -ad -ss -"} -(21,1,1) = {" -ss -ad -ad -ac -ad -ac -ad -ad -af -ad -aA -aG -aG -bh -bn -bn -ae -ad -bE -bJ -bM -bD -ad -ad -bo -bn -bo -bn -bn -bn -bn -ad -ad -ac -ad -ac -ad -ad -ad -ac -ss -"} -(22,1,1) = {" -ss -ac -ad -ac -ad -ai -ad -ad -ac -ad -aA -aG -aG -bh -bo -bn -ac -ac -bD -bJ -bJ -bE -ad -ad -bo -bn -bn -bo -bn -bn -bn -ad -ad -ad -ad -ac -ad -ad -ad -ad -ss -"} -(23,1,1) = {" -ss -ac -ac -ac -ad -ad -ad -ad -ac -ad -aA -aG -aG -aj -ad -bn -ac -ad -bE -bE -bD -bE -ac -ad -bn -ac -ad -ad -ad -bn -bn -ad -ad -ad -ad -ad -ad -ad -ag -ad -ss -"} -(24,1,1) = {" -ss -ad -ad -ad -ad -ad -ad -ac -ad -ad -aj -aG -aG -aj -ad -bn -bn -bn -ad -ac -ad -ad -bn -bn -bn -ac -ae -ad -ad -bn -bn -ad -ad -ad -ad -ad -ad -ad -ad -ad -ss -"} -(25,1,1) = {" -ss -ac -ad -ad -ad -ad -ad -ac -ad -ad -aj -aG -aG -aA -ad -bo -bt -bn -ad -ad -ad -ac -bn -ag -bn -ac -ad -aj -aj -cu -cu -aj -aj -ad -ad -ae -ad -ad -ad -ad -ss -"} -(26,1,1) = {" -ss -ad -ad -ad -ad -ac -ac -ac -ad -ad -aj -aG -aG -aA -ad -bn -bn -bn -bo -bo -bn -bn -bn -bo -bn -ad -ad -aj -cm -cp -cp -cy -aj -ad -ad -ad -ac -ac -ac -ad -ss -"} -(27,1,1) = {" -ss -ad -ac -ac -ad -ad -ac -ac -ad -ad -aj -aV -aG -aj -ad -ad -ad -ad -ad -bn -bn -ad -ad -ae -ad -ad -ad -aj -cn -cp -cp -cz -aj -ad -ad -ad -ac -ad -ac -ad -ss -"} -(28,1,1) = {" -ss -ad -ad -ac -ac -ad -ae -ac -aj -aj -aj -aA -bc -aj -aj -aj -aA -aA -aj -bh -bh -aj -aA -aA -aj -aj -aj -aj -co -cp -cp -cA -aj -ad -ad -ad -ad -ad -ac -ad -ss -"} -(29,1,1) = {" -ss -ad -ae -ac -ad -ad -ae -ac -aj -aG -aG -aG -aG -aG -bp -bc -aG -aG -aG -aG -aG -aG -aG -aG -aG -bp -aG -cl -cp -cp -cp -cB -aj -ad -ad -ad -ad -ad -af -ad -ss -"} -(30,1,1) = {" -ss -ac -ac -ac -ac -ad -ac -ad -aA -aG -aG -aG -aG -aG -aG -aA -aV -aG -aG -aG -aG -aG -aG -aG -aG -aG -aV -aj -cq -cp -cp -cC -aj -ad -ad -ad -ad -ad -ac -ad -ss -"} -(31,1,1) = {" -ss -ac -ac -ac -ac -ac -ac -ad -aA -aG -aO -aW -aW -bi -aG -aj -aj -aj -aA -bK -bK -aA -aj -aj -aA -ce -aA -aj -cr -cp -cp -cD -aj -ad -ad -ac -ad -ad -ad -ad -ss -"} -(32,1,1) = {" -ss -ad -ad -ac -ad -ac -ac -ad -aA -aG -aP -aX -bd -bj -aG -bs -aj -bw -bF -aG -aG -bS -bW -aj -aG -cf -aG -aj -cs -cp -cp -cE -aj -ad -ad -ad -ad -aH -ac -ad -ss -"} -(33,1,1) = {" -ss -ad -ad -ac -ag -ad -ac -ad -aA -aG -aP -aY -be -bj -aG -bs -aj -bx -aG -aG -aG -aG -bX -aj -ca -cg -ca -aj -ct -cp -cp -cF -aj -ad -ad -ad -ad -ac -ad -ad -ss -"} -(34,1,1) = {" -ss -ad -ad -ac -ad -ad -ac -ad -aA -aG -aQ -aZ -aZ -bk -aG -bs -aj -by -aG -aG -bN -aG -bY -aj -aj -aj -aj -aj -aj -cv -cw -aj -aj -ad -ad -ad -ad -ad -ad -ad -ss -"} -(35,1,1) = {" -ss -ad -ad -ad -ac -ad -ac -ad -aj -aG -aG -aG -aG -aG -aG -bs -aj -bz -aG -bL -bO -aG -aG -bZ -cb -ch -cj -aj -aj -aj -aj -aj -ad -ad -ad -ad -ad -ad -ad -ad -ss -"} -(36,1,1) = {" -ss -ad -ad -ad -ad -ad -ad -ad -aj -aj -aA -aA -aA -aA -aA -aj -aj -aj -aA -aA -aA -aA -aj -aj -cc -ci -ci -aj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ss -"} -(37,1,1) = {" -ss -ae -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -aj -cd -ci -ci -aj -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ad -ss -"} -(38,1,1) = {" -ss -ad -ad -ad -ad -ac -ad -ad -ad -ad -ad -ad -ae -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -aj -aj -aj -aj -aj -ad -ae -ac -ac -ad -ad -ad -ad -ad -ad -ac -ad -ss -"} -(39,1,1) = {" -ss -ad -ag -ad -ad -ac -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ac -ac -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ad -ad -ad -ac -ad -ad -ad -ac -ad -ss -"} -(40,1,1) = {" -ss -ad -ad -ad -ad -ac -ad -ad -ad -ag -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ac -ad -ad -ad -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ss -"} -(41,1,1) = {" -ss -ad -ad -ad -ad -ad -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ag -ad -ad -ad -ad -ad -ad -ad -ac -aH -ac -ad -ad -ad -ad -ad -ad -ad -ad -ac -ad -ag -ad -ad -ss -"} -(42,1,1) = {" -ss -ad -ad -ad -ad -ad -ad -ac -ac -ac -ad -ad -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ss -"} -(43,1,1) = {" -ss -ad -ad -ad -ad -ad -ad -ad -ad -ad -ac -ac -ac -ad -ae -ad -ad -ad -ad -ad -ad -ad -ae -ad -ac -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ss -"} -(44,1,1) = {" -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss -ss +ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss +ssacadadadacacacacadadadadadadadadadadadadacacadacadadadadacacadadadadadaeadadadadadadss +ssacafadadacacacagadadadadadadadadacadadadadacadadadacadaeacacadadadadadadadagadadadadss +ssadadadadacacacacadadadadadadadadahadacacacacadadadacacacacacacacacadadadadadadadadadss +ssadadacacaeacacadadadadadaeacacacacacacadadadadadadadacadacacadagadacadadadadadadadadss +ssacadacadadadadadadadadadadadadadacacadacaiadadadacadadadadacacadadadadadacacacadadadss +ssacaiadadadbdbdbdbdbdbdbdbdbdadadacadadadadadadadacacaeaeacacacacacacadadadadadacadadss +ssafadadacadbdakalamanaoapaqbdbdbdbdbdadadadadacacacadadadadadadadadadadadadadadadacadss +ssacacacadacbdarbvTPatauavawbdaxayazbdacafacacadadadadadadadadadadadadadadadadadadacadss +ssacadacadacbdaBaKaOaCaKaOaDbdaEaEaFbdadadbtadbtadbtadbtadadadadadadadadadadadagadacadss +ssacadaHacacbdaIaKaOaJaKaOaMbdcDaNbibdadadbtadbtadbtadbtadadadadadadadadadadadadadadacss +ssacacacacadbdaRaSqcuZaTMCasbdbdJMbdbdadadbtadbtadbtadbtadadadadadadadadadadadadadadacss +ssagadadadadbdascfbwRXBBasasbaKKbPbdadadadadadadadadadadadadadbdbdbdbdbdbdbdacadadacacss +ssacadadadadbdbdbdaLaLbdbdbdbdbdbdbdbdbdbdajajajbdbdbdadadadadbdbjcgcgcgcebdacadadadadss +ssacadadadadadadbdbFbQbdadadadadadadbdcmCjbRLWcAUVcibdadadadadbdPFwXHlbqbdbdacadadadaess +ssacacadadaeadadbdcpcpbdadadadadadadbdbxbPbPbrbPbPaZbdadadadbdbdbZbZbZbdbdbdacadadadadss +ssacaeadadacadadbdcpcpbdadadadadadadbdJHaWbbbXbAcpcybdadadbdbdbVcvcvcvvQbdbdacadagadadss +ssadadadadacadbdbdaVbcbdbdadadadadadbdbdbdbdJMcFcFcFbdbdbdbdcrcpcpbycpcpcjbdbdbdbdbdadss +ssagadadadagadbdcsbacpbBbdbdbdbdbdbdbdbdbEbDcvbPbPbPbDbQaYbIcpbFbOaGbObQaYbIbhbzcwbCadss +ssbnbobnbnboadbdbsbGcpbHbIbJbhcpcpbhcnbIbJcpcpcpcpcpcpaAaYbIcpbablbpbLaAaYbIcpcpbTbdadss +ssbobnbnbobnadbdcsbacpbKbdbdbdbdbdbdbdbdbMOLbXaNaNaNOLbcaYbIcpaVbObNbObcaYbIOococwbCadss +ssadadacadadadbdbdbFbQbdbdadadadadadbdbdbdbdJMcFcFcFbdbdbdbdcrcpcpcCcpcpcjbdbdbdbdbdadss +ssagadadadagadadbdcpbnbdadadadadadadbdgybmaUcvvPcpcybdadadbdbdbWbXbXbXbubdbdadacadadaess +ssacadadaeadadadbdcubfbdadadadadadadbdbxaNaNaNaNaNaZbdadadbdbdbdbZbZbZbdbdadadacadadadss +sssszrzrzrzrssssssbebesssszrssssadadbdclCjbRLWcAUVwGbdadadbdbdcqcaaQcbbdadadadadacacacss +ssbnbnbnbobobnbnbnbnbnbnbnbnbozradadbdbdbdajajajbdbdbdadadbdcecgcgcgchbdadadadadaHacadss +ssbnbobnbnbnbnbnbnbnbnbnbnbnbnzradadadadadadadadadadadadadbdbdbdbdbdbdbdadadadadacadadss +ssbnbobnbnbobnbnbobobnbnbobnbnzraeadadadbnboadadadadadadadadadadadadadadadadadacadadadss +ssbobnbnbnbnbnbobobnbnbnbobnbnssadadacacbnbnadadadadadadadadadadadadadadadadadacadadadss +ssbobnckbnbnbnbnbnbnbockbnbnczssbnbnbnbnbnbnbnbnadadadadadadadadadadadadadadacadadadadss +ssbnbnckckbnbUbUbUbnckckbnbnbncEbnbnbobnbnbnbnbnadadadadadadadadadadadadadadacadadadadss +ssbnbnckckckckckckckckckbnbnbncEadadadadadadbnbnbnadadadadadadadadadadadadadadadadadadss +ssbnckckckcGcHcIcJcKckckckbnbncEacadaeadadadadbnbnbnadadadadadadadadadadadadadadadadadss +ssbnckcLcMcNcOcOcOcPckcQcRbnbncEacadadacacadadadbnbnbnadadadadadadadadadadadadadadadadss +ssbockcScMcMcMcTcMcUcVcWckbnczssadadadadadadadadadbnbnbnadadadadadadadadadadacadadadadss +ssbnckckckcXcMcMcMcYckckckbnbossadagacadacacadadaeadbnbnbnadacadadadadadadadadadacadadss +ssbnbnckckcZcMdadbdcckckbnbobozradadacadadadadadadacbnbnbnadadadadadadadadadadadadadadss +ssbobnbnckckdddedfckckbnbnbobnzradadadadadadadadadacadbnbnbnadaHacadadadadadadadagadadss +zrbobobnbnckdgdgdgckbnbnbnbnbnzracadadacadadagadadacacbnbSbnadacadadadadacacacadadadadss +zrbobncBbnbnbnbnbnbnbncBbnbnbnssahadaeadacadadadadadadbnbnadadadadadadadadadadadadadadss +zrzrzrsszrzrzrsssssssssszrsszrssssssssssssssssssssssssaXaXssssssssssssssssssssssssssssss "} diff --git a/maps/sierra/items/clothing/clothing.dm b/maps/sierra/items/clothing/clothing.dm index 1007fa833a49c..ee7442f18758a 100644 --- a/maps/sierra/items/clothing/clothing.dm +++ b/maps/sierra/items/clothing/clothing.dm @@ -10,6 +10,5 @@ initial_modules = list( /obj/item/rig_module/maneuvering_jets, -//INF /obj/item/rig_module/ai_container, - /obj/item/rig_module/mounted/taser + /obj/item/rig_module/mounted/energy/taser ) diff --git a/maps/sierra/z4_admin.dmm b/maps/sierra/z4_admin.dmm index 4a4d863a7a9bd..28729acd15b13 100644 --- a/maps/sierra/z4_admin.dmm +++ b/maps/sierra/z4_admin.dmm @@ -3653,9 +3653,9 @@ /area/holodeck/source_cafe) "avN" = ( /obj/structure/table/rack, -/obj/item/rig_module/mounted/taser, -/obj/item/rig_module/mounted/taser, -/obj/item/rig_module/mounted/taser, +/obj/item/rig_module/mounted/energy/taser, +/obj/item/rig_module/mounted/energy/taser, +/obj/item/rig_module/mounted/energy/taser, /obj/item/rig_module/maneuvering_jets, /obj/item/rig_module/maneuvering_jets, /obj/item/rig_module/grenade_launcher, @@ -3669,8 +3669,8 @@ /obj/item/rig_module/chem_dispenser/injector, /obj/item/rig_module/chem_dispenser/combat, /obj/item/rig_module/chem_dispenser/combat, -/obj/item/rig_module/mounted/egun, -/obj/item/rig_module/mounted/egun, +/obj/item/rig_module/mounted/energy/egun, +/obj/item/rig_module/mounted/energy/egun, /obj/effect/floor_decal/corner/red/diagonal, /obj/effect/floor_decal/borderfloorblack, /turf/unsimulated/floor{ diff --git a/maps/torch/structures/closets.dm b/maps/torch/structures/closets.dm index db0c86b777a93..d3d5d36085327 100644 --- a/maps/torch/structures/closets.dm +++ b/maps/torch/structures/closets.dm @@ -69,3 +69,61 @@ /obj/structure/closet/secure_closet/brig/WillContain() return null + +///Ninja equipment loadouts. Placed here because it relies on Torch evil. +/obj/structure/closet/crate/ninja/sol + name = "sol equipment crate" + desc = "A tactical equipment crate." + +/obj/structure/closet/crate/ninja/sol/WillContain() + return list( + /obj/item/rig/light/ninja/sol, + /obj/item/gun/projectile/pistol/m22f, + /obj/item/ammo_magazine/pistol/double = 2, + /obj/item/clothing/under/scga/utility/urban, + /obj/item/clothing/shoes/swat, + /obj/item/clothing/accessory/scga_rank/e6 + ) + +/obj/structure/closet/crate/ninja/gcc + name = "gcc equipment crate" + desc = "A heavy equipment crate." + +/obj/structure/closet/crate/ninja/gcc/WillContain() + return list( + /obj/item/rig/light/ninja/gcc, + /obj/item/gun/projectile/pistol/optimus, + /obj/item/ammo_magazine/pistol/double = 2, + /obj/item/ammo_magazine/box/minigun = 2, + /obj/item/clothing/under/iccgn/utility, + /obj/item/clothing/shoes/iccgn/utility, + /obj/item/clothing/accessory/iccgn_rank/or6 + ) + +/obj/structure/closet/crate/ninja/corpo + name = "corporate equipment crate" + desc = "A patented equipment crate." + +/obj/structure/closet/crate/ninja/corpo/WillContain() + return list( + /obj/item/rig/light/ninja/corpo, + /obj/item/gun/energy/gun, + /obj/item/inducer, + /obj/item/clothing/under/rank/security/corp, + /obj/item/clothing/shoes/swat, + /obj/item/clothing/accessory/badge/holo + ) + +/obj/structure/closet/crate/ninja/merc + name = "mercenary equipment crate" + desc = "A traitorous equipment crate." + +/obj/structure/closet/crate/ninja/merc/WillContain() + return list( + /obj/item/rig/merc/ninja, + /obj/item/gun/projectile/revolver/medium, + /obj/item/ammo_magazine/speedloader = 2, + /obj/item/clothing/under/syndicate/combat, + /obj/item/clothing/shoes/swat, + /obj/item/clothing/mask/gas/syndicate + ) diff --git a/maps/torch/torch_simplemobs.dm b/maps/torch/torch_simplemobs.dm index fce2e1881e6e0..98fc34bcd9c49 100644 --- a/maps/torch/torch_simplemobs.dm +++ b/maps/torch/torch_simplemobs.dm @@ -228,7 +228,7 @@ casingtype = /obj/item/ammo_casing/rifle projectiletype = /obj/item/projectile/bullet/rifle natural_weapon = /obj/item/gun/projectile/automatic/l6_saw - weapon1 = /obj/item/rig_module/mounted/lcannon + weapon1 = /obj/item/rig_module/mounted/energy/lcannon var/attack_mode = ATTACK_MODE_SAW var/num_shots diff --git a/maps/torch/z1_admin.dmm b/maps/torch/z1_admin.dmm index 553e87cb307fd..133b4db1535f7 100644 --- a/maps/torch/z1_admin.dmm +++ b/maps/torch/z1_admin.dmm @@ -4257,9 +4257,9 @@ /area/centcom/control) "azQ" = ( /obj/structure/table/rack, -/obj/item/rig_module/mounted/taser, -/obj/item/rig_module/mounted/taser, -/obj/item/rig_module/mounted/taser, +/obj/item/rig_module/mounted/energy/taser, +/obj/item/rig_module/mounted/energy/taser, +/obj/item/rig_module/mounted/energy/taser, /obj/item/rig_module/maneuvering_jets, /obj/item/rig_module/maneuvering_jets, /obj/item/rig_module/grenade_launcher, @@ -4267,16 +4267,16 @@ /obj/item/rig_module/device/drill, /obj/item/rig_module/device/healthscanner, /obj/item/rig_module/device/healthscanner, -/obj/item/rig_module/mounted/plasmacutter, -/obj/item/rig_module/mounted/plasmacutter, +/obj/item/rig_module/mounted/energy/plasmacutter, +/obj/item/rig_module/mounted/energy/plasmacutter, /obj/item/rig_module/device/rcd, /obj/item/rig_module/device/rcd, /obj/item/rig_module/chem_dispenser/injector, /obj/item/rig_module/chem_dispenser/injector, /obj/item/rig_module/chem_dispenser/combat, /obj/item/rig_module/chem_dispenser/combat, -/obj/item/rig_module/mounted/egun, -/obj/item/rig_module/mounted/egun, +/obj/item/rig_module/mounted/energy/egun, +/obj/item/rig_module/mounted/energy/egun, /turf/unsimulated/floor{ dir = 1; icon_state = "vault"