diff --git a/_maps/map_files/shuttles/admin_skipjack.dmm b/_maps/map_files/shuttles/admin_skipjack.dmm index a38503d9c42..f79eb0d7173 100644 --- a/_maps/map_files/shuttles/admin_skipjack.dmm +++ b/_maps/map_files/shuttles/admin_skipjack.dmm @@ -4,9 +4,6 @@ /area/space) "ab" = ( /obj/structure/rack, -/obj/item/gun/energy/noisecannon, -/obj/item/gun/energy/noisecannon, -/obj/item/gun/energy/noisecannon, /turf/simulated/floor/mineral/plastitanium/red/nitrogen, /area/shuttle/administration) "ac" = ( diff --git a/code/__DEFINES/mob_defines.dm b/code/__DEFINES/mob_defines.dm index f3daed9998b..1ca22c92883 100644 --- a/code/__DEFINES/mob_defines.dm +++ b/code/__DEFINES/mob_defines.dm @@ -229,7 +229,6 @@ #define isvulpkanin(A) (is_species(A, /datum/species/vulpkanin)) #define isskrell(A) (is_species(A, /datum/species/skrell)) #define isvox(A) (is_species(A, /datum/species/vox)) -#define isvoxarmalis(A) (is_species(A, /datum/species/vox/armalis)) #define iskidan(A) (is_species(A, /datum/species/kidan)) #define isslimeperson(A) (is_species(A, /datum/species/slime)) #define isgrey(A) (is_species(A, /datum/species/grey)) diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm index 9c1fe065ffb..70c3f6a1fe8 100644 --- a/code/datums/outfits/outfit_admin.dm +++ b/code/datums/outfits/outfit_admin.dm @@ -353,36 +353,6 @@ suit = /obj/item/clothing/suit/pirate_black head = /obj/item/clothing/head/pirate -/datum/outfit/admin/vox - name = "Vox Raider" - uniform = /obj/item/clothing/under/vox/vox_robes - suit = /obj/item/clothing/suit/space/vox/carapace - back = /obj/item/storage/backpack - gloves = /obj/item/clothing/gloves/color/yellow/vox - shoes = /obj/item/clothing/shoes/magboots/vox - head = /obj/item/clothing/head/helmet/space/vox/carapace - mask = /obj/item/clothing/mask/gas/syndicate - l_ear = /obj/item/radio/headset/syndicate - glasses = /obj/item/clothing/glasses/thermal/monocle - id = /obj/item/card/id/syndicate/vox - l_pocket = /obj/item/melee/classic_baton/telescopic - r_pocket = /obj/item/tank/internals/emergency_oxygen/double/vox - backpack_contents = list( - /obj/item/flashlight = 1, - /obj/item/restraints/handcuffs/cable/zipties = 1, - /obj/item/flash = 1, - /obj/item/gun/energy/noisecannon = 1 - ) - -/datum/outfit/admin/vox/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) - . = ..() - if(visualsOnly) - return - - var/obj/item/card/id/I = H.wear_id - if(istype(I)) - apply_to_card(I, H, get_all_accesses(), "Vox Armalis", "syndie") - /datum/outfit/admin/tunnel_clown name = "Tunnel Clown" diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index 72806e85e96..36da26f38fd 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -282,7 +282,7 @@ var/race = synd_mob.dna.species.name switch(race) - if("Vox", "Vox Armalis") + if("Vox") synd_mob.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/syndicate(synd_mob), slot_wear_mask) synd_mob.equip_to_slot_or_del(new /obj/item/tank/internals/emergency_oxygen/double/vox(synd_mob), slot_l_hand) synd_mob.internal = synd_mob.l_hand diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 0fc6c748a4e..0fde645c7d9 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -182,7 +182,7 @@ occupantData["paralysis"] = occupant.AmountParalyzed() occupantData["hasBlood"] = 0 occupantData["bodyTemperature"] = occupant.bodytemperature - occupantData["maxTemp"] = 1000 // If you get a burning vox armalis into the sleeper, congratulations + occupantData["maxTemp"] = 1000 // Because we can put simple_animals in here, we need to do something tricky to get things working nice occupantData["temperatureSuitability"] = 0 // 0 is the baseline if(ishuman(occupant) && occupant.dna.species) diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm index fe6d97c6d6c..dc0d1d1aff6 100644 --- a/code/game/machinery/computer/Operating.dm +++ b/code/game/machinery/computer/Operating.dm @@ -86,7 +86,7 @@ occupantData["paralysis"] = occupant.AmountParalyzed() occupantData["hasBlood"] = 0 occupantData["bodyTemperature"] = occupant.bodytemperature - occupantData["maxTemp"] = 1000 // If you get a burning vox armalis into the sleeper, congratulations + occupantData["maxTemp"] = 1000 // Because we can put simple_animals in here, we need to do something tricky to get things working nice occupantData["temperatureSuitability"] = 0 // 0 is the baseline if(ishuman(occupant) && occupant.dna.species) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 60e3e2dda89..ade802b3495 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -5,9 +5,7 @@ icon_state = "headset" item_state = "headset" sprite_sheets = list( - "Vox" = 'icons/mob/clothing/species/vox/ears.dmi', - "Vox Armalis" = 'icons/mob/clothing/species/armalis/ears.dmi' - ) //We read you loud and skree-er. + "Vox" = 'icons/mob/clothing/species/vox/ears.dmi') //We read you loud and skree-er. materials = list(MAT_METAL = 200) canhear_range = 0 // can't hear headsets from very far away diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index 84cc2e3c396..e328bc1bae0 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -19,9 +19,8 @@ max_integrity = 300 sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/back.dmi', - "Vox Armalis" = 'icons/mob/clothing/species/armalis/back.dmi', "Grey" = 'icons/mob/clothing/species/grey/back.dmi' - ) //For Armalis anything but this and the nitrogen tank will use the default backpack icon. + ) /obj/item/storage/backpack/attackby(obj/item/W as obj, mob/user as mob, params) if(in_range(user, src)) diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm index 825bc70699e..e08ec8a31b2 100644 --- a/code/game/objects/items/weapons/tanks/tank_types.dm +++ b/code/game/objects/items/weapons/tanks/tank_types.dm @@ -170,7 +170,6 @@ name = "nitrogen tank" desc = "A tank of nitrogen." icon_state = "oxygen_fr" - sprite_sheets = list("Vox Armalis" = 'icons/mob/clothing/species/armalis/back.dmi') //Do it for Big Bird. distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE /obj/item/tank/internals/nitrogen/populate_gas() @@ -188,7 +187,6 @@ name = "vox specialized nitrogen tank" desc = "A high-tech nitrogen tank designed specifically for Vox." icon_state = "emergency_vox" - sprite_sheets = list("Vox Armalis" = 'icons/mob/clothing/species/armalis/belt.dmi') //Do it for Big Bird. volume = 35 /obj/item/tank/internals/emergency_oxygen/double/vox/populate_gas() diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index d5a7808b98b..d135a898f0b 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -143,9 +143,7 @@ slot_flags = SLOT_EARS resistance_flags = NONE sprite_sheets = list( - "Vox" = 'icons/mob/clothing/species/vox/ears.dmi', - "Vox Armalis" = 'icons/mob/clothing/species/armalis/ears.dmi' - ) //We read you loud and skree-er. + "Vox" = 'icons/mob/clothing/species/vox/ears.dmi') //We read you loud and skree-er. /obj/item/clothing/ears/attack_hand(mob/user) if(!user) diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm index 44bf65214db..27d9aca5f1f 100644 --- a/code/modules/clothing/masks/breath.dm +++ b/code/modules/clothing/masks/breath.dm @@ -13,7 +13,6 @@ resistance_flags = NONE sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/mask.dmi', - "Vox Armalis" = 'icons/mob/clothing/species/armalis/mask.dmi', "Unathi" = 'icons/mob/clothing/species/unathi/mask.dmi', "Tajaran" = 'icons/mob/clothing/species/tajaran/mask.dmi', "Vulpkanin" = 'icons/mob/clothing/species/vulpkanin/mask.dmi', @@ -45,7 +44,7 @@ icon_state = "voxmask" item_state = "voxmask" permeability_coefficient = 0.01 - species_restricted = list("Vox", "Vox Armalis") //These should fit the "Mega Vox" just fine. + species_restricted = list("Vox") actions_types = list() /obj/item/clothing/mask/breath/vox/attack_self(mob/user) diff --git a/code/modules/clothing/spacesuits/alien_suits.dm b/code/modules/clothing/spacesuits/alien_suits.dm index fc7513a1747..c761b793dd9 100644 --- a/code/modules/clothing/spacesuits/alien_suits.dm +++ b/code/modules/clothing/spacesuits/alien_suits.dm @@ -80,22 +80,18 @@ heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT icon = 'icons/obj/clothing/species/vox/suits.dmi' - species_restricted = list("Vox", "Vox Armalis") + species_restricted = list("Vox") sprite_sheets = list( - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', - "Vox Armalis" = 'icons/mob/clothing/species/armalis/suit.dmi', - ) + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi') /obj/item/clothing/head/helmet/space/vox armor = list(MELEE = 35, BULLET = 35, LASER = 20, ENERGY = 10, BOMB = 20, RAD = 20, FIRE = 200, ACID = 285) flags = STOPSPRESSUREDMAGE flags_cover = HEADCOVERSEYES icon = 'icons/obj/clothing/species/vox/hats.dmi' - species_restricted = list("Vox","Vox Armalis") + species_restricted = list("Vox") sprite_sheets = list( - "Vox" = 'icons/mob/clothing/species/vox/head.dmi', - "Vox Armalis" = 'icons/mob/clothing/species/armalis/head.dmi', - ) + "Vox" = 'icons/mob/clothing/species/vox/head.dmi') /obj/item/clothing/head/helmet/space/vox/pressure name = "alien helmet" @@ -162,17 +158,15 @@ item_state = "vox-casual-1" body_parts_covered = LEGS -/obj/item/clothing/under/vox/vox_robes //This will be invisible on Armalis for lack of a proper sprite. They wear a carapace suit anyway, and this is more just to let them use IDs and such. +/obj/item/clothing/under/vox/vox_robes name = "alien robes" desc = "Weird and flowing!" icon_state = "vox-casual-2" item_color = "vox-casual-2" item_state = "vox-casual-2" - species_restricted = list("Vox","Vox Armalis") + species_restricted = list("Vox") sprite_sheets = list( - "Vox" = 'icons/mob/clothing/species/vox/under/misc.dmi', - "Vox Armalis" = 'icons/mob/clothing/species/armalis/suit.dmi' - ) + "Vox" = 'icons/mob/clothing/species/vox/under/misc.dmi') /obj/item/clothing/gloves/color/yellow/vox name = "insulated gauntlets" @@ -183,11 +177,9 @@ permeability_coefficient = 0.05 item_color = "gloves-vox" icon = 'icons/obj/clothing/species/vox/gloves.dmi' - species_restricted = list("Vox","Vox Armalis") + species_restricted = list("Vox") sprite_sheets = list( - "Vox" = 'icons/mob/clothing/species/vox/gloves.dmi', - "Vox Armalis" = 'icons/mob/clothing/species/armalis/gloves.dmi', - ) + "Vox" = 'icons/mob/clothing/species/vox/gloves.dmi') /obj/item/clothing/shoes/magboots/vox name = "vox magclaws" @@ -195,11 +187,9 @@ item_state = "boots-vox" icon_state = "boots-vox" icon = 'icons/obj/clothing/species/vox/shoes.dmi' - species_restricted = list("Vox","Vox Armalis") + species_restricted = list("Vox") sprite_sheets = list( - "Vox" = 'icons/mob/clothing/species/vox/feet.dmi', - "Vox Armalis" = 'icons/mob/clothing/species/armalis/feet.dmi' - ) + "Vox" = 'icons/mob/clothing/species/vox/feet.dmi') /obj/item/clothing/shoes/magboots/vox/attack_self(mob/user) if(magpulse) diff --git a/code/modules/mob/living/carbon/human/human_mob.dm b/code/modules/mob/living/carbon/human/human_mob.dm index 1c802daae13..edb3423c7b3 100644 --- a/code/modules/mob/living/carbon/human/human_mob.dm +++ b/code/modules/mob/living/carbon/human/human_mob.dm @@ -88,9 +88,6 @@ /mob/living/carbon/human/vox/Initialize(mapload) . = ..(mapload, /datum/species/vox) -/mob/living/carbon/human/voxarmalis/Initialize(mapload) - . = ..(mapload, /datum/species/vox/armalis) - /mob/living/carbon/human/skeleton/Initialize(mapload) . = ..(mapload, /datum/species/skeleton) diff --git a/code/modules/mob/living/carbon/human/species/_species.dm b/code/modules/mob/living/carbon/human/species/_species.dm index 07c39c0f12a..0d99d04f7c7 100644 --- a/code/modules/mob/living/carbon/human/species/_species.dm +++ b/code/modules/mob/living/carbon/human/species/_species.dm @@ -547,7 +547,7 @@ playsound(target.loc, attack.attack_sound, 25, 1, -1) target.visible_message("[user] [pick(attack.attack_verb)]ed [target]!") - target.apply_damage(damage, BRUTE, affecting, armor_block, sharp = attack.sharp) //moving this back here means Armalis are going to knock you down 70% of the time, but they're pure adminbus anyway. + target.apply_damage(damage, BRUTE, affecting, armor_block, sharp = attack.sharp) if((target.stat != DEAD) && damage >= user.dna.species.punchstunthreshold) target.visible_message("[user] has knocked down [target]!", \ "[user] has knocked down [target]!") @@ -712,10 +712,6 @@ sharp = TRUE animation_type = ATTACK_EFFECT_BITE -/datum/unarmed_attack/claws/armalis - attack_verb = list("slash", "claw") - damage = 6 - /datum/species/proc/can_equip(obj/item/I, slot, disable_warning = FALSE, mob/living/carbon/human/H) if(slot in no_equip) if(!I.species_exception || !is_type_in_list(src, I.species_exception)) diff --git a/code/modules/mob/living/carbon/human/species/vox.dm b/code/modules/mob/living/carbon/human/species/vox.dm index dbced74a37a..9bed8dd2bb1 100644 --- a/code/modules/mob/living/carbon/human/species/vox.dm +++ b/code/modules/mob/living/carbon/human/species/vox.dm @@ -102,7 +102,7 @@ H.update_icons() /datum/species/vox/updatespeciescolor(mob/living/carbon/human/H, owner_sensitive = 1) //Handling species-specific skin-tones for the Vox race. - if(H.dna.species.bodyflags & HAS_ICON_SKIN_TONE) //Making sure we don't break Armalis. + if(H.dna.species.bodyflags & HAS_ICON_SKIN_TONE) var/new_icobase = 'icons/mob/human_races/vox/r_vox.dmi' //Default Green Vox. switch(H.s_tone) if(6) //Azure Vox. @@ -126,54 +126,9 @@ H.change_icobase(new_icobase, owner_sensitive) //Update the icobase of all our organs, but make sure we don't mess with frankenstein limbs in doing so. /datum/species/vox/handle_reagents(mob/living/carbon/human/H, datum/reagent/R) - if(R.id == "oxygen") //Armalis are above such petty things. + if(R.id == "oxygen") H.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER) //Same as plasma. H.reagents.remove_reagent(R.id, REAGENTS_METABOLISM) return FALSE //Handling reagent removal on our own. return ..() - -/datum/species/vox/armalis - name = "Vox Armalis" - name_plural = "Vox Armalis" - icobase = 'icons/mob/human_races/r_armalis.dmi' - unarmed_type = /datum/unarmed_attack/claws/armalis - blacklisted = TRUE - - brute_mod = 0.2 - burn_mod = 0.2 - - eyes = "blank_eyes" - - species_traits = list(NO_CLONESCAN, NO_BLOOD) - inherent_traits = list(TRAIT_RESISTHEAT, TRAIT_RESISTCOLD, TRAIT_RESISTHIGHPRESSURE, TRAIT_RESISTLOWPRESSURE, TRAIT_NOFIRE, TRAIT_NOPAIN, TRAIT_NOGERMS, TRAIT_NODECAY) - clothing_flags = 0 //IDK if you've ever seen underwear on an Armalis, but it ain't pretty. - bodyflags = HAS_TAIL - dies_at_threshold = TRUE - - blood_color = "#2299FC" - flesh_color = "#808D11" - - reagent_tag = PROCESS_ORG - - tail = "armalis_tail" - icon_template = 'icons/mob/human_races/r_armalis.dmi' - - has_organ = list( - "heart" = /obj/item/organ/internal/heart, - "lungs" = /obj/item/organ/internal/lungs/vox, - "liver" = /obj/item/organ/internal/liver, - "kidneys" = /obj/item/organ/internal/kidneys, - "cortical stack" = /obj/item/organ/internal/brain/vox, - "eyes" = /obj/item/organ/internal/eyes, //Default darksight of 2. - ) //for determining the success of the heist game-mode's 'leave nobody behind' objective, while this is just an organ. - - suicide_messages = list( - "is attempting to bite their tongue off!", - "is jamming their claws into their eye sockets!", - "is twisting their own neck!", - "is holding their breath!", - "is huffing oxygen!") - -/datum/species/vox/armalis/handle_reagents() //Skip the Vox oxygen reagent toxicity. Armalis are above such things. - return TRUE diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index f64d18c092f..a28ade5983d 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -722,7 +722,7 @@ if(NO_BLOOD in H.dna.species.species_traits)//Does the run over mob have blood? - return//If it doesn't it shouldn't bleed (Though a check should be made eventually for things with liquid in them, like slime people, vox armalis, etc.) + return//If it doesn't it shouldn't bleed (Though a check should be made eventually for things with liquid in them, like slime people.) var/turf/T = get_turf(src)//Where are we? H.add_mob_blood(H)//Cover the victim in their own blood. diff --git a/code/modules/projectiles/guns/alien_guns.dm b/code/modules/projectiles/guns/alien_guns.dm deleted file mode 100644 index 9c757931a71..00000000000 --- a/code/modules/projectiles/guns/alien_guns.dm +++ /dev/null @@ -1,35 +0,0 @@ -//This gun only functions for armalis. The on-sprite is too huge to render properly on other sprites. -/obj/item/gun/energy/noisecannon - name = "alien heavy cannon" - desc = "It's some kind of enormous alien weapon, as long as a man is tall." - icon_state = "noisecannon" - item_state = "noisecannon" - recoil = 1 - force = 10 - ammo_type = list(/obj/item/ammo_casing/energy/sonic) - cell_type = /obj/item/stock_parts/cell/super - restricted_species = list(/datum/species/vox/armalis) - sprite_sheets_inhand = list("Vox Armalis" = 'icons/mob/clothing/species/armalis/held.dmi') //Big guns big birds. - -/obj/item/gun/energy/noisecannon/update_icon_state() - return - -/obj/item/gun/energy/noisecannon/update_overlays() - return list() - -//Casing -/obj/item/ammo_casing/energy/sonic - projectile_type = /obj/item/projectile/energy/sonic - fire_sound = 'sound/effects/basscannon.ogg' - delay = 40 - -//Projectile. -/obj/item/projectile/energy/sonic - name = "distortion" - icon_state = "particle" - damage = 60 - damage_type = BRUTE - flag = BULLET - pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE - - weaken = 10 SECONDS diff --git a/icons/mob/clothing/species/armalis/back.dmi b/icons/mob/clothing/species/armalis/back.dmi deleted file mode 100644 index 31f4f21f812..00000000000 Binary files a/icons/mob/clothing/species/armalis/back.dmi and /dev/null differ diff --git a/icons/mob/clothing/species/armalis/belt.dmi b/icons/mob/clothing/species/armalis/belt.dmi deleted file mode 100644 index 2aba8e97d8a..00000000000 Binary files a/icons/mob/clothing/species/armalis/belt.dmi and /dev/null differ diff --git a/icons/mob/clothing/species/armalis/ears.dmi b/icons/mob/clothing/species/armalis/ears.dmi deleted file mode 100644 index f88c03feae5..00000000000 Binary files a/icons/mob/clothing/species/armalis/ears.dmi and /dev/null differ diff --git a/icons/mob/clothing/species/armalis/feet.dmi b/icons/mob/clothing/species/armalis/feet.dmi deleted file mode 100644 index 8ae2aada395..00000000000 Binary files a/icons/mob/clothing/species/armalis/feet.dmi and /dev/null differ diff --git a/icons/mob/clothing/species/armalis/gloves.dmi b/icons/mob/clothing/species/armalis/gloves.dmi deleted file mode 100644 index ebadeda12b1..00000000000 Binary files a/icons/mob/clothing/species/armalis/gloves.dmi and /dev/null differ diff --git a/icons/mob/clothing/species/armalis/head.dmi b/icons/mob/clothing/species/armalis/head.dmi deleted file mode 100644 index b2734030ce7..00000000000 Binary files a/icons/mob/clothing/species/armalis/head.dmi and /dev/null differ diff --git a/icons/mob/clothing/species/armalis/held.dmi b/icons/mob/clothing/species/armalis/held.dmi deleted file mode 100644 index 734d47ddc6b..00000000000 Binary files a/icons/mob/clothing/species/armalis/held.dmi and /dev/null differ diff --git a/icons/mob/clothing/species/armalis/mask.dmi b/icons/mob/clothing/species/armalis/mask.dmi deleted file mode 100644 index e97eb74f8e0..00000000000 Binary files a/icons/mob/clothing/species/armalis/mask.dmi and /dev/null differ diff --git a/icons/mob/clothing/species/armalis/suit.dmi b/icons/mob/clothing/species/armalis/suit.dmi deleted file mode 100644 index ceed59b7819..00000000000 Binary files a/icons/mob/clothing/species/armalis/suit.dmi and /dev/null differ diff --git a/paradise.dme b/paradise.dme index 332bec7aae6..0e263beac2e 100644 --- a/paradise.dme +++ b/paradise.dme @@ -2368,7 +2368,6 @@ #include "code\modules\projectiles\ammunition\energy_lens.dm" #include "code\modules\projectiles\ammunition\magazines.dm" #include "code\modules\projectiles\ammunition\special_ammo.dm" -#include "code\modules\projectiles\guns\alien_guns.dm" #include "code\modules\projectiles\guns\energy_guns.dm" #include "code\modules\projectiles\guns\grenade_launcher.dm" #include "code\modules\projectiles\guns\magic.dm"