diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm
index c5d47de86c..13e1c0007c 100644
--- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm
+++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm
@@ -1,184 +1,3 @@
-//Stollen vars so this all work for real - Copy pasted addtion
-
-/obj/item/ammo_casing/mag/
- var/e_cost = 50
-
-/obj/item/gun/mag
- var/obj/item/stock_parts/cell/cell //What type of power cell this uses
- var/cell_type = /obj/item/stock_parts/cell
- var/modifystate = 0
- var/list/ammo_type = list(/obj/item/ammo_casing/mag)
- var/can_charge = 1 //Can it be charged in a recharger?
- var/charge_sections = 4
- ammo_x_offset = 2
- var/old_ratio = 0 // stores the gun's previous ammo "ratio" to see if it needs an updated iconn
- var/charge_tick = 0
- var/charge_delay = 4
- var/dead_cell = FALSE //set to true so the gun is given an empty cell
- var/spawnwithmagazine = TRUE
- var/mag_type = /obj/item/ammo_box/magazine/mmag_e //Removes the need for max_ammo and caliber info
- var/obj/item/ammo_box/magazine/magazine
- var/casing_ejector = TRUE //whether the gun ejects the chambered casing
-
-/obj/item/gun/mag/Initialize()
- . = ..()
- if(!spawnwithmagazine)
- update_icon()
- return
- if (!magazine)
- magazine = new mag_type(src)
- chamber_round()
- update_icon()
-
-/obj/item/gun/mag/process_chamber(empty_chamber = 1)
- var/obj/item/ammo_casing/AC = chambered //Find chambered round
- if(istype(AC)) //there's a chambered round
- if(casing_ejector)
- AC.forceMove(drop_location()) //Eject casing onto ground.
- AC.bounce_away(TRUE)
- chambered = null
- else if(empty_chamber)
- chambered = null
- chamber_round()
-
-/obj/item/gun/mag/proc/chamber_round()
- if (chambered || !magazine)
- return
- else if (magazine.ammo_count())
- chambered = magazine.get_round()
- chambered.forceMove(src)
-
-/obj/item/gun/mag/can_shoot()
- if(!magazine || !magazine.ammo_count(0))
- return 0
- return 1
-
-/obj/item/gun/mag/attackby(obj/item/A, mob/user, params)
- ..()
- if (istype(A, /obj/item/ammo_box/magazine))
- var/obj/item/ammo_box/magazine/AM = A
- if (!magazine && istype(AM, mag_type))
- if(user.transferItemToLoc(AM, src))
- magazine = AM
- to_chat(user, "You load a new magazine into \the [src].")
- if(magazine.ammo_count())
- playsound(src, "gun_insert_full_magazine", 70, 1)
- if(!chambered)
- chamber_round()
- addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, src, 'sound/weapons/gun_chamber_round.ogg', 100, 1), 3)
- else
- playsound(src, "gun_insert_empty_magazine", 70, 1)
- A.update_icon()
- update_icon()
- return 1
- else
- to_chat(user, "You cannot seem to get \the [src] out of your hands!")
- return
- else if (magazine)
- to_chat(user, "There's already a magazine in \the [src].")
-
-//ATTACK HAND IGNORING PARENT RETURN VALUE
-
-/obj/item/gun/mag/attack_self(mob/living/user)
- var/obj/item/ammo_casing/AC = chambered //Find chambered round
- if(magazine)
- magazine.forceMove(drop_location())
- user.put_in_hands(magazine)
- magazine.update_icon()
- if(magazine.ammo_count())
- playsound(src, 'sound/weapons/gun_magazine_remove_full.ogg', 70, 1)
- else
- playsound(src, "gun_remove_empty_magazine", 70, 1)
- magazine = null
- to_chat(user, "You pull the magazine out of \the [src].")
- else if(chambered)
- AC.forceMove(drop_location())
- AC.bounce_away()
- chambered = null
- to_chat(user, "You unload the round from \the [src]'s chamber.")
- playsound(src, "gun_slide_lock", 70, 1)
- else
- to_chat(user, "There's no magazine in \the [src].")
- update_icon()
- return
-
-/obj/item/gun/mag/examine(mob/user)
- ..()
- to_chat(user, "It has [get_ammo()] round\s remaining.")
-
-/obj/item/gun/mag/proc/get_ammo(countchambered = 1)
- var/boolets = 0 //mature var names for mature people
- if (chambered && countchambered)
- boolets++
- if (magazine)
- boolets += magazine.ammo_count()
- return boolets
-
-/obj/item/gun/mag/emp_act(severity)
- . = ..()
- if(!(. & EMP_PROTECT_CONTENTS))
- cell.use(round(cell.charge / severity))
- recharge_newshot() //and try to charge a new shot
-
-/obj/item/gun/mag/get_cell()
- return cell
-
-/obj/item/gun/mag/Initialize()
- . = ..()
- if(cell_type)
- cell = new cell_type(src)
- else
- cell = new(src)
- if(!dead_cell)
- cell.give(cell.maxcharge)
- update_ammo_types()
- recharge_newshot(TRUE)
-
-/obj/item/gun/mag/proc/update_ammo_types()
- var/obj/item/ammo_casing/mag/shot
- for (var/i = 1, i <= ammo_type.len, i++)
- var/shottype = ammo_type[i]
- shot = new shottype(src)
- ammo_type[i] = shot
- fire_sound = shot.fire_sound
- fire_delay = shot.delay
-
-/obj/item/gun/mag/Destroy()
- QDEL_NULL(cell)
- STOP_PROCESSING(SSobj, src)
- return ..()
-
-/obj/item/gun/mag/can_shoot()
- var/obj/item/ammo_casing/mag/mag = ammo_type
- return !QDELETED(cell) ? (cell.charge >= mag.e_cost) : FALSE
-
-/obj/item/gun/mag/recharge_newshot(no_cyborg_drain)
- if (!ammo_type || !cell)
- return
- if(!chambered)
- var/obj/item/ammo_casing/energy/AC = ammo_type
- if(cell.charge >= AC.e_cost) //if there's enough power in the cell cell...
- chambered = AC //...prepare a new shot based on the current ammo type selected
- if(!chambered.BB)
- chambered.newshot()
-
-/obj/item/gun/mag/process_chamber()
- if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired...
- var/obj/item/ammo_casing/mag/mag = chambered
- cell.use(mag.e_cost)//... drain the cell cell
- chambered = null //either way, released the prepared shot
- recharge_newshot() //try to charge a new shot
-
-/obj/item/gun/mag/update_icon(force_update)
- if(QDELETED(src))
- return
- ..()
- var/ratio = CEILING(CLAMP(cell.charge / cell.maxcharge, 0, 1) * charge_sections, 1)
- if(ratio == old_ratio && !force_update)
- return
- old_ratio = ratio
- cut_overlays()
-
///////XCOM X9 AR///////
/obj/item/gun/ballistic/automatic/x9 //will be adminspawn only so ERT or something can use them
@@ -196,7 +15,32 @@
spread = 30 //should be 40 for XCOM memes, but since its adminspawn only, might as well make it useable
recoil = 1
-////bullets///
+///toy memes///
+
+/obj/item/ammo_box/magazine/toy/x9
+ name = "foam force X9 magazine"
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
+ icon_state = "toy9magazine"
+ max_ammo = 30
+ multiple_sprites = 2
+ materials = list(MAT_METAL = 200)
+
+/obj/item/gun/ballistic/automatic/x9/toy
+ name = "\improper Foam Force X9"
+ desc = "An old but reliable assault rifle made for combat against unknown enemies. Appears to be hastily converted. Ages 8 and up."
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
+ icon_state = "toy9"
+ can_suppress = 0
+ obj_flags = 0
+ mag_type = /obj/item/ammo_box/magazine/toy/x9
+ casing_ejector = 0
+ spread = 90 //MAXIMUM XCOM MEMES (actually that'd be 180 spread)
+ w_class = WEIGHT_CLASS_BULKY
+ weapon_weight = WEAPON_HEAVY
+
+////////XCOM2 Magpistol/////////
+
+//////projectiles//////
/obj/item/projectile/bullet/mags
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
@@ -220,29 +64,138 @@
range = 25
light_color = LIGHT_COLOR_BLUE
-////bullets///
-/obj/item/projectile/bullet/mags
- icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
- icon_state = "magjectile"
- damage = 15
- armour_penetration = 10
- light_range = 2
- speed = 0.6
- range = 25
- light_color = LIGHT_COLOR_RED
+/////actual ammo/////
-/obj/item/projectile/bullet/nlmags //non-lethal boolets
+/obj/item/ammo_casing/caseless/amags
+ desc = "A ferromagnetic slug intended to be launched out of a compatible weapon."
+ caliber = "mags"
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
- icon_state = "magjectile-nl"
- damage = 2
- knockdown = 0
- stamina = 25
- armour_penetration = -10
+ icon_state = "mag-casing-live"
+ projectile_type = /obj/item/projectile/bullet/mags
+
+/obj/item/ammo_casing/caseless/anlmags
+ desc = "A specialized ferromagnetic slug designed with a less-than-lethal payload."
+ caliber = "mags"
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
+ icon_state = "mag-casing-live"
+ projectile_type = /obj/item/projectile/bullet/nlmags
+
+//////magazines/////
+
+/obj/item/ammo_box/magazine/mmag/small
+ name = "magpistol magazine (non-lethal disabler)"
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
+ icon_state = "nlmagmag"
+ ammo_type = /obj/item/ammo_casing/caseless/anlmags
+ caliber = "mags"
+ max_ammo = 15
+ multiple_sprites = 2
+
+/obj/item/ammo_box/magazine/mmag/small/lethal
+ name = "magpistol magazine (lethal)"
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
+ icon_state = "smallmagmag"
+ ammo_type = /obj/item/ammo_casing/caseless/amags
+
+//////the gun itself//////
+
+/obj/item/gun/ballistic/automatic/pistol/mag
+ name = "magpistol"
+ desc = "A handgun utilizing maglev technologies to propel a ferromagnetic slug to extreme velocities."
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
+ icon_state = "magpistol"
+ force = 10
+ fire_sound = 'sound/weapons/magpistol.ogg'
+ mag_type = /obj/item/ammo_box/magazine/mmag/small
+ can_suppress = 0
+ casing_ejector = 0
+ fire_delay = 2
+ recoil = 0.2
+
+/obj/item/gun/ballistic/automatic/pistol/mag/update_icon()
+ ..()
+ if(magazine)
+ cut_overlays()
+ add_overlay("magpistol-magazine")
+ else
+ cut_overlays()
+ icon_state = "[initial(icon_state)][chambered ? "" : "-e"]"
+
+///research memes///
+
+/obj/item/gun/ballistic/automatic/pistol/mag/nopin
+ pin = null
+ spawnwithmagazine = FALSE
+
+/datum/design/magpistol
+ name = "Magpistol"
+ desc = "A weapon which fires ferromagnetic slugs."
+ id = "magpisol"
+ build_type = PROTOLATHE
+ materials = list(MAT_METAL = 7500, MAT_GLASS = 1000, MAT_URANIUM = 1000, MAT_TITANIUM = 5000, MAT_SILVER = 2000)
+ build_path = /obj/item/gun/ballistic/automatic/pistol/mag/nopin
+ category = list("Weapons")
+ departmental_flags = DEPARTMENTAL_FLAG_SECURITY
+
+/datum/design/mag_magpistol
+ name = "Magpistol Magazine"
+ desc = "A 14 round magazine for the Magpistol."
+ id = "mag_magpistol"
+ build_type = PROTOLATHE
+ materials = list(MAT_METAL = 4000, MAT_SILVER = 500)
+ build_path = /obj/item/ammo_box/magazine/mmag/small/lethal
+ category = list("Ammo")
+ departmental_flags = DEPARTMENTAL_FLAG_SECURITY
+
+/datum/design/mag_magpistol/nl
+ name = "Magpistol Magazine (Non-Lethal)"
+ desc = "A 14 round non-lethal magazine for the Magpistol."
+ id = "mag_magpistol_nl"
+ materials = list(MAT_METAL = 3000, MAT_SILVER = 250, MAT_TITANIUM = 250)
+ build_path = /obj/item/ammo_box/magazine/mmag/small
+ departmental_flags = DEPARTMENTAL_FLAG_SECURITY
+
+//////toy memes/////
+
+/obj/item/projectile/bullet/reusable/foam_dart/mag
+ name = "magfoam dart"
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
+ icon_state = "magjectile-toy"
+ ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag
light_range = 2
- speed = 0.7
- range = 25
- light_color = LIGHT_COLOR_BLUE
+ light_color = LIGHT_COLOR_YELLOW
+
+/obj/item/ammo_casing/caseless/foam_dart/mag
+ name = "magfoam dart"
+ desc = "A foam dart with fun light-up projectiles powered by magnets!"
+ projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/mag
+
+/obj/item/ammo_box/magazine/internal/shot/toy/mag
+ ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag
+ max_ammo = 14
+
+/obj/item/gun/ballistic/shotgun/toy/mag
+ name = "foam force magpistol"
+ desc = "A fancy toy sold alongside light-up foam force darts. Ages 8 and up."
+ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
+ icon_state = "toymag"
+ item_state = "gun"
+ mag_type = /obj/item/ammo_box/magazine/internal/shot/toy/mag
+ fire_sound = 'sound/weapons/magpistol.ogg'
+ slot_flags = SLOT_BELT
+ w_class = WEIGHT_CLASS_SMALL
+
+/obj/item/ammo_box/foambox/mag
+ name = "ammo box (Magnetic Foam Darts)"
+ icon = 'icons/obj/guns/toy.dmi'
+ icon_state = "foambox"
+ ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag
+ max_ammo = 42
+
+//////Magrifle//////
+
+///projectiles///
/obj/item/projectile/bullet/magrifle
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
@@ -266,158 +219,50 @@
range = 35
light_color = LIGHT_COLOR_BLUE
-///ammo///
+///ammo casings///
-/obj/item/ammo_casing/caseless/mag_e
- var/energy_cost = 0
-
-/obj/item/ammo_casing/caseless/mag_e/amagm_e
+/obj/item/ammo_casing/caseless/amagm
desc = "A large ferromagnetic slug intended to be launched out of a compatible weapon."
caliber = "magm"
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "mag-casing-live"
projectile_type = /obj/item/projectile/bullet/magrifle
- energy_cost = 300
-/obj/item/ammo_casing/caseless/mag_e/anlmagm_e
+/obj/item/ammo_casing/caseless/anlmagm
desc = "A large, specialized ferromagnetic slug designed with a less-than-lethal payload."
caliber = "magm"
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "mag-casing-live"
projectile_type = /obj/item/projectile/bullet/nlmagrifle
- energy_cost = 300
-
-/obj/item/ammo_casing/caseless/mag_e/amags
- desc = "A ferromagnetic slug intended to be launched out of a compatible weapon."
- caliber = "mags"
- icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
- icon_state = "mag-casing-live"
- projectile_type = /obj/item/projectile/bullet/mags
- energy_cost = 200
-
-/obj/item/ammo_casing/caseless/mag_e/anlmags
- desc = "A specialized ferromagnetic slug designed with a less-than-lethal payload."
- caliber = "mags"
- icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
- icon_state = "mag-casing-live"
- projectile_type = /obj/item/projectile/bullet/nlmags
- energy_cost = 200
///magazines///
-/obj/item/ammo_box/magazine/mmag_e/
+/obj/item/ammo_box/magazine/mmag/
name = "magrifle magazine (non-lethal disabler)"
- desc = "A 24-round magazine for the non-lethal Magrifle."
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "mediummagmag"
- ammo_type = /obj/item/ammo_casing/caseless/mag_e/anlmagm_e
+ ammo_type = /obj/item/ammo_casing/caseless/anlmagm
caliber = "magm"
max_ammo = 24
multiple_sprites = 2
-/obj/item/ammo_box/magazine/mmag_e/lethal
+/obj/item/ammo_box/magazine/mmag/lethal
name = "magrifle magazine (lethal)"
- desc = "A 24-round magazine for the lethal Magrifle."
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "mediummagmag"
- ammo_type = /obj/item/ammo_casing/caseless/mag_e/amagm_e
+ ammo_type = /obj/item/ammo_casing/caseless/amagm
max_ammo = 24
-/obj/item/ammo_box/magazine/mmag_e/small
- name = "magpistol magazine (non-lethal disabler)"
- desc = "A 15-round magazine for the non-lethal Magpistol."
- icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
- icon_state = "nlmagmag"
- ammo_type = /obj/item/ammo_casing/caseless/mag_e/anlmags
- caliber = "mags"
- max_ammo = 15
- multiple_sprites = 2
+///the gun itself///
-/obj/item/ammo_box/magazine/mmag_e/small/lethal
- name = "magpistol magazine (lethal)"
- desc = "A 15-round magazine for the lethal Magpistol."
- icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
- icon_state = "smallmagmag"
- ammo_type = /obj/item/ammo_casing/caseless/mag_e/amags
-
-///cells///
-
-/obj/item/stock_parts/cell/magrifle_e
- name = "magrifle power supply"
- maxcharge = 14400
-
-/obj/item/stock_parts/cell/magpistol_e
- name = "magpistol power supply"
- maxcharge = 6000
-
-///sci designs///
-
-/datum/design/magrifle_e
- name = "Magrifle"
- desc = "An upscaled Magpistol in rifle form."
- id = "magrifle_e"
- build_type = PROTOLATHE
- materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_URANIUM = 2000, MAT_TITANIUM = 10000, MAT_SILVER = 4000, MAT_GOLD = 2000)
- build_path = /obj/item/gun/ballistic/automatic/magrifle_e/nopin
- category = list("Weapons")
- departmental_flags = DEPARTMENTAL_FLAG_SECURITY
-
-/datum/design/mag_magrifle_e
- name = "Magrifle Magazine (Lethal)"
- desc = "A 24-round magazine for the Magrifle."
- id = "mag_magrifle_e"
- build_type = PROTOLATHE
- materials = list(MAT_METAL = 8000, MAT_SILVER = 1000)
- build_path = /obj/item/ammo_box/magazine/mmag_e/lethal
- category = list("Ammo")
- departmental_flags = DEPARTMENTAL_FLAG_SECURITY
-
-/datum/design/mag_magrifle_e/nl
- name = "Magrifle Magazine (Non-Lethal)"
- desc = "A 24- round non-lethal magazine for the Magrifle."
- id = "mag_magrifle_nl_e"
- materials = list(MAT_METAL = 6000, MAT_SILVER = 500, MAT_TITANIUM = 500)
- build_path = /obj/item/ammo_box/magazine/mmag_e
- departmental_flags = DEPARTMENTAL_FLAG_SECURITY
-
-/datum/design/magpistol_e
- name = "Magpistol"
- desc = "A weapon which fires ferromagnetic slugs."
- id = "magpisol_e"
- build_type = PROTOLATHE
- materials = list(MAT_METAL = 7500, MAT_GLASS = 1000, MAT_URANIUM = 1000, MAT_TITANIUM = 5000, MAT_SILVER = 2000)
- build_path = /obj/item/gun/ballistic/automatic/pistol/mag_e/nopin
- category = list("Weapons")
- departmental_flags = DEPARTMENTAL_FLAG_SECURITY
-
-/datum/design/mag_magpistol_e
- name = "Magpistol Magazine"
- desc = "A 14 round magazine for the Magpistol."
- id = "mag_magpistol_e"
- build_type = PROTOLATHE
- materials = list(MAT_METAL = 4000, MAT_SILVER = 500)
- build_path = /obj/item/ammo_box/magazine/mmag_e/small/lethal
- category = list("Ammo")
- departmental_flags = DEPARTMENTAL_FLAG_SECURITY
-
-/datum/design/mag_magpistol/nl
- name = "Magpistol Magazine (Non-Lethal)"
- desc = "A 14 round non-lethal magazine for the Magpistol."
- id = "mag_magpistol_nl_e"
- materials = list(MAT_METAL = 3000, MAT_SILVER = 250, MAT_TITANIUM = 250)
- build_path = /obj/item/ammo_box/magazine/mmag_e/small
- departmental_flags = DEPARTMENTAL_FLAG_SECURITY
-
-///////////////// Mag rifle/////////////////
-
-/obj/item/gun/ballistic/automatic/magrifle_e
+/obj/item/gun/ballistic/automatic/magrifle
name = "\improper Magnetic Rifle"
desc = "A simple upscalling of the technologies used in the magpistol, the magrifle is capable of firing slightly larger slugs in bursts. Compatible with the magpistol's slugs."
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "magrifle"
item_state = "arg"
slot_flags = 0
- mag_type = /obj/item/ammo_box/magazine/mmag_e
+ mag_type = /obj/item/ammo_box/magazine/mmag
fire_sound = 'sound/weapons/magrifle.ogg'
can_suppress = 0
burst_size = 3
@@ -425,125 +270,76 @@
spread = 5
recoil = 0.15
casing_ejector = 0
- var/obj/item/stock_parts/cell/cell
- var/cell_type = /obj/item/stock_parts/cell/magrifle_e
- var/dead_cell = FALSE
-/obj/item/gun/ballistic/automatic/magrifle_e/can_shoot()
- if(QDELETED(cell))
- return 0
+///research///
- var/obj/item/ammo_casing/caseless/mag_e/shot = chambered
- if(!shot)
- return 0
- if(cell.charge < shot.energy_cost*burst_size)
- return 0
- . = ..()
-
-/obj/item/gun/ballistic/automatic/magrifle_e/shoot_live_shot()
- var/obj/item/ammo_casing/caseless/mag_e/shot = chambered
- cell.use(shot.energy_cost)
- . = ..()
-
-/obj/item/gun/ballistic/automatic/magrifle_e/emp_act(severity)
- . = ..()
- if(!(. & EMP_PROTECT_CONTENTS))
- cell.use(round(cell.charge / severity))
-
-/obj/item/gun/ballistic/automatic/magrifle_e/get_cell()
- return cell
-
-/obj/item/gun/ballistic/automatic/magrifle_e/Initialize()
- . = ..()
- if(cell_type)
- cell = new cell_type(src)
- else
- cell = new(src)
-
- if(!dead_cell)
- cell.give(cell.maxcharge)
-
-/obj/item/gun/ballistic/automatic/magrifle_e/nopin
+/obj/item/gun/ballistic/automatic/magrifle/nopin
pin = null
spawnwithmagazine = FALSE
-///magpistol///
+/datum/design/magrifle
+ name = "Magrifle"
+ desc = "An upscaled Magpistol in rifle form."
+ id = "magrifle"
+ build_type = PROTOLATHE
+ materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_URANIUM = 2000, MAT_TITANIUM = 10000, MAT_SILVER = 4000, MAT_GOLD = 2000)
+ build_path = /obj/item/gun/ballistic/automatic/magrifle/nopin
+ category = list("Weapons")
+ departmental_flags = DEPARTMENTAL_FLAG_SECURITY
-/obj/item/gun/ballistic/automatic/pistol/mag_e
- name = "magpistol"
- desc = "A handgun utilizing maglev technologies to propel a ferromagnetic slug to extreme velocities."
+/datum/design/mag_magrifle
+ name = "Magrifle Magazine (Lethal)"
+ desc = "A 24-round magazine for the Magrifle."
+ id = "mag_magrifle"
+ build_type = PROTOLATHE
+ materials = list(MAT_METAL = 8000, MAT_SILVER = 1000)
+ build_path = /obj/item/ammo_box/magazine/mmag/lethal
+ category = list("Ammo")
+ departmental_flags = DEPARTMENTAL_FLAG_SECURITY
+
+/datum/design/mag_magrifle/nl
+ name = "Magrifle Magazine (Non-Lethal)"
+ desc = "A 24- round non-lethal magazine for the Magrifle."
+ id = "mag_magrifle_nl"
+ materials = list(MAT_METAL = 6000, MAT_SILVER = 500, MAT_TITANIUM = 500)
+ build_path = /obj/item/ammo_box/magazine/mmag
+ departmental_flags = DEPARTMENTAL_FLAG_SECURITY
+
+///foamagrifle///
+
+/obj/item/ammo_box/magazine/toy/foamag
+ name = "foam force magrifle magazine"
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
- icon_state = "magpistol"
- force = 10
- fire_sound = 'sound/weapons/magpistol.ogg'
- mag_type = /obj/item/ammo_box/magazine/mmag_e/small
- can_suppress = 0
- casing_ejector = 0
- fire_delay = 2
- recoil = 0.2
- var/obj/item/stock_parts/cell/cell
- var/cell_type = /obj/item/stock_parts/cell/magpistol_e
- var/dead_cell = FALSE
+ icon_state = "foamagmag"
+ max_ammo = 24
+ multiple_sprites = 2
+ ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag
+ materials = list(MAT_METAL = 200)
-/obj/item/gun/ballistic/automatic/pistol/mag_e/can_shoot()
- if(QDELETED(cell))
- return 0
-
- var/obj/item/ammo_casing/caseless/mag_e/shot = chambered
- if(!shot)
- return 0
- if(cell.charge < shot.energy_cost)
- return 0
- . = ..()
-
-/obj/item/gun/ballistic/automatic/pistol/mag_e/shoot_live_shot()
- var/obj/item/ammo_casing/caseless/mag_e/shot = chambered
- cell.use(shot.energy_cost)
- . = ..()
-
-/obj/item/gun/ballistic/automatic/pistol/mag_e/emp_act(severity)
- . = ..()
- if(!(. & EMP_PROTECT_CONTENTS))
- cell.use(round(cell.charge / severity))
-
-/obj/item/gun/ballistic/automatic/pistol/mag_e/get_cell()
- return cell
-
-/obj/item/gun/ballistic/automatic/pistol/mag_e/Initialize()
- . = ..()
- if(cell_type)
- cell = new cell_type(src)
- else
- cell = new(src)
- if(!dead_cell)
- cell.give(cell.maxcharge)
-
-/obj/item/gun/ballistic/automatic/pistol/mag_e/update_icon()
- ..()
- if(magazine)
- cut_overlays()
- add_overlay("magpistol-magazine")
- else
- cut_overlays()
- icon_state = "[initial(icon_state)][chambered ? "" : "-e"]"
-
-/obj/item/gun/ballistic/automatic/pistol/mag_e/nopin
- pin = null
- spawnwithmagazine = FALSE
+/obj/item/gun/ballistic/automatic/magrifle/toy
+ name = "foamag rifle"
+ desc = "A foam launching magnetic rifle. Ages 8 and up."
+ icon_state = "foamagrifle"
+ obj_flags = 0
+ mag_type = /obj/item/ammo_box/magazine/toy/foamag
+ casing_ejector = FALSE
+ spread = 60
+ w_class = WEIGHT_CLASS_BULKY
+ weapon_weight = WEAPON_HEAVY
/*
// TECHWEBS IMPLEMENTATION
-*/
+//
/datum/techweb_node/magnetic_weapons
id = "magnetic_weapons"
display_name = "Magnetic Weapons"
description = "Weapons using magnetic technology"
prereq_ids = list("weaponry", "adv_weaponry", "emp_adv")
- design_ids = list("magrifle_e", "magpisol_e", "mag_magrifle_e", "mag_magrifle_nl_e", "mag_magpistol_e", "mag_magpistol_nl_e")
+ design_ids = list("magrifle", "magpisol", "mag_magrifle", "mag_magrifle_nl", "mag_magpistol", "mag_magpistol_nl")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
export_price = 5000
-
+*/
//////Hyper-Burst Rifle//////
@@ -630,7 +426,7 @@
..()
icon_state = "hyperburst[magazine ? "-[get_ammo()]" : ""][chambered ? "" : "-e"]"
-//Toy Memes
+///toy memes///
/obj/item/projectile/beam/lasertag/mag //the projectile, compatible with regular laser tag armor
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
@@ -668,83 +464,3 @@
/obj/item/stock_parts/cell/toymagburst
name = "toy mag burst rifle power supply"
maxcharge = 4000
-
-///foamagrifles///
-
-/obj/item/gun/ballistic/automatic/magrifle/toy
- name = "foamag rifle"
- desc = "A foam launching magnetic rifle. Ages 8 and up."
- icon_state = "foamagrifle"
- obj_flags = 0
- mag_type = /obj/item/ammo_box/magazine/toy/foamag
- casing_ejector = FALSE
- spread = 60
- w_class = WEIGHT_CLASS_BULKY
- weapon_weight = WEAPON_HEAVY
-
-/obj/item/gun/ballistic/shotgun/toy/mag
- name = "foam force magpistol"
- desc = "A fancy toy sold alongside light-up foam force darts. Ages 8 and up."
- icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
- icon_state = "toymag"
- item_state = "gun"
- mag_type = /obj/item/ammo_box/magazine/internal/shot/toy/mag
- fire_sound = 'sound/weapons/magpistol.ogg'
- slot_flags = SLOT_BELT
- w_class = WEIGHT_CLASS_SMALL
-
-/obj/item/gun/ballistic/automatic/x9/toy
- name = "\improper Foam Force X9"
- desc = "An old but reliable assault rifle made for combat against unknown enemies. Appears to be hastily converted. Ages 8 and up."
- icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
- icon_state = "toy9"
- can_suppress = 0
- obj_flags = 0
- mag_type = /obj/item/ammo_box/magazine/toy/x9
- casing_ejector = 0
- spread = 90 //MAXIMUM XCOM MEMES (actually that'd be 180 spread)
- w_class = WEIGHT_CLASS_BULKY
- weapon_weight = WEAPON_HEAVY
-
-//Toy bullet-things
-
-/obj/item/projectile/bullet/reusable/foam_dart/mag
- name = "magfoam dart"
- icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
- icon_state = "magjectile-toy"
- ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag
- light_range = 2
- light_color = LIGHT_COLOR_YELLOW
-
-/obj/item/ammo_casing/caseless/foam_dart/mag
- name = "magfoam dart"
- desc = "A foam dart with fun light-up projectiles powered by magnets!"
- projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/mag
-
-/obj/item/ammo_box/magazine/internal/shot/toy/mag
- ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag
- max_ammo = 14
-
-/obj/item/ammo_box/magazine/toy/foamag
- name = "foam force magrifle magazine"
- icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
- icon_state = "foamagmag"
- max_ammo = 24
- multiple_sprites = 2
- ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag
- materials = list(MAT_METAL = 200)
-
-/obj/item/ammo_box/foambox/mag
- name = "ammo box (Magnetic Foam Darts)"
- icon = 'icons/obj/guns/toy.dmi'
- icon_state = "foambox"
- ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag
- max_ammo = 42
-
-/obj/item/ammo_box/magazine/toy/x9
- name = "foam force X9 magazine"
- icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
- icon_state = "toy9magazine"
- max_ammo = 30
- multiple_sprites = 2
- materials = list(MAT_METAL = 200)