diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index f777c893f8..29921c4584 100755 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -16,8 +16,7 @@ /obj/item/melee/baton, /obj/item/ammo_box/magazine/recharge, /obj/item/modular_computer, - /obj/item/gun/ballistic/automatic/magrifle_e, - /obj/item/gun/ballistic/automatic/pistol/mag_e)) + /obj/item/gun/ballistic/automatic/magrifle)) /obj/machinery/recharger/RefreshParts() for(var/obj/item/stock_parts/capacitor/C in component_parts) diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index d89eeb7e3d..120303d4d7 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -13,6 +13,7 @@ w_class = WEIGHT_CLASS_SMALL var/charge = 0 // note %age conveted to actual charge in New var/maxcharge = 1000 + var/start_charged = TRUE materials = list(MAT_METAL=700, MAT_GLASS=50) grind_results = list(/datum/reagent/lithium = 15, /datum/reagent/iron = 5, /datum/reagent/silicon = 5) var/rigged = FALSE // true if rigged to explode @@ -32,7 +33,8 @@ create_reagents(5, INJECTABLE | DRAINABLE) if (override_maxcharge) maxcharge = override_maxcharge - charge = maxcharge + if(start_charged) + charge = maxcharge if(ratingdesc) desc += " This one has a rating of [DisplayEnergy(maxcharge)], and you should not swallow it." update_icon() @@ -163,9 +165,8 @@ return rating * maxcharge /* Cell variants*/ -/obj/item/stock_parts/cell/empty/Initialize() - . = ..() - charge = 0 +/obj/item/stock_parts/cell/empty + start_charged = FALSE /obj/item/stock_parts/cell/crap name = "\improper Nanotrasen brand rechargeable AA battery" @@ -173,10 +174,8 @@ maxcharge = 500 materials = list(MAT_GLASS=40) -/obj/item/stock_parts/cell/crap/empty/Initialize() - . = ..() - charge = 0 - update_icon() +/obj/item/stock_parts/cell/crap/empty + start_charged = FALSE /obj/item/stock_parts/cell/upgraded name = "upgraded power cell" @@ -195,10 +194,8 @@ maxcharge = 1250 //25/12/6 disabler/laser/taser shots. materials = list(MAT_GLASS=40) -/obj/item/stock_parts/cell/secborg/empty/Initialize() - . = ..() - charge = 0 - update_icon() +/obj/item/stock_parts/cell/secborg/empty + start_charged = FALSE /obj/item/stock_parts/cell/lascarbine name = "laser carbine power supply" @@ -231,10 +228,8 @@ maxcharge = 15000 chargerate = 2250 -/obj/item/stock_parts/cell/high/empty/Initialize() - . = ..() - charge = 0 - update_icon() +/obj/item/stock_parts/cell/high/empty + start_charged = FALSE /obj/item/stock_parts/cell/super name = "super-capacity power cell" @@ -243,10 +238,8 @@ materials = list(MAT_GLASS=300) chargerate = 2000 -/obj/item/stock_parts/cell/super/empty/Initialize() - . = ..() - charge = 0 - update_icon() +/obj/item/stock_parts/cell/super/empty + start_charged = FALSE /obj/item/stock_parts/cell/hyper name = "hyper-capacity power cell" @@ -255,10 +248,8 @@ materials = list(MAT_GLASS=400) chargerate = 3000 -/obj/item/stock_parts/cell/hyper/empty/Initialize() - . = ..() - charge = 0 - update_icon() +/obj/item/stock_parts/cell/hyper/empty + start_charged = FALSE /obj/item/stock_parts/cell/bluespace name = "bluespace power cell" @@ -268,10 +259,8 @@ materials = list(MAT_GLASS=600) chargerate = 4000 -/obj/item/stock_parts/cell/bluespace/empty/Initialize() - . = ..() - charge = 0 - update_icon() +/obj/item/stock_parts/cell/bluespace/empty + start_charged = FALSE /obj/item/stock_parts/cell/infinite name = "infinite-capacity power cell!" @@ -321,15 +310,13 @@ maxcharge = 500 rating = 3 -/obj/item/stock_parts/cell/emproof/empty/Initialize() - . = ..() - charge = 0 - update_icon() - -/obj/item/stock_parts/cell/emproof/empty/ComponentInitialize() +/obj/item/stock_parts/cell/emproof/ComponentInitialize() . = ..() AddComponent(/datum/component/empprotection, EMP_PROTECT_SELF) +/obj/item/stock_parts/cell/emproof/empty + start_charged = FALSE + /obj/item/stock_parts/cell/emproof/corrupt() return @@ -364,3 +351,22 @@ //found inside the inducers ordered from cargo. /obj/item/stock_parts/cell/inducer_supply maxcharge = 5000 + +/obj/item/stock_parts/cell/magnetic + name = "magrifle power supply" + maxcharge = 12000 + chargerate = 600 + +/obj/item/stock_parts/cell/magnetic/empty + start_charged = FALSE + +/obj/item/stock_parts/cell/magnetic/pistol + name = "magpistol power supply" + maxcharge = 6000 + +/obj/item/stock_parts/cell/magnetic/pistol/empty + start_charged = FALSE + +/obj/item/stock_parts/cell/toymagburst + name = "toy mag burst rifle power supply" + maxcharge = 4000 diff --git a/code/modules/projectiles/ammunition/caseless/ferromagnetic.dm b/code/modules/projectiles/ammunition/caseless/ferromagnetic.dm new file mode 100644 index 0000000000..d984460235 --- /dev/null +++ b/code/modules/projectiles/ammunition/caseless/ferromagnetic.dm @@ -0,0 +1,39 @@ +/obj/item/ammo_casing/caseless/magnetic + desc = "A large ferromagnetic slug intended to be launched out of a compatible weapon." + caliber = "mag" + icon_state = "mag-casing-live" + click_cooldown_override = 2.5 + delay = 3 + var/energy_cost = 200 + +/obj/item/ammo_casing/caseless/magnetic + projectile_type = /obj/item/projectile/bullet/magnetic + +/obj/item/ammo_casing/caseless/magnetic/disabler + desc = "A large, specialized ferromagnetic slug designed with a less-than-lethal payload." + projectile_type = /obj/item/projectile/bullet/magnetic/disabler + +/obj/item/ammo_casing/caseless/magnetic/weak + desc = "A ferromagnetic slug intended to be launched out of a compatible weapon." + projectile_type = /obj/item/projectile/bullet/magnetic/weak + energy_cost = 125 + +/obj/item/ammo_casing/caseless/magnetic/weak/disabler + desc = "A specialized ferromagnetic slug designed with a less-than-lethal payload." + projectile_type = /obj/item/projectile/bullet/magnetic/weak/disabler + energy_cost = 125 + +/obj/item/ammo_casing/caseless/magnetic/hyper + desc = "A large block of speciallized ferromagnetic material designed to be fired out of the experimental Hyper-Burst Rifle." + caliber = "hypermag" + icon_state = "hyper-casing-live" + projectile_type = /obj/item/projectile/bullet/magnetic/hyper + pellets = 8 + variance = 30 + energy_cost = 1500 + +/obj/item/ammo_casing/caseless/magnetic/hyper/inferno + projectile_type = /obj/item/projectile/bullet/incendiary/mag_inferno + pellets = 1 + variance = 0 + diff --git a/code/modules/projectiles/ammunition/caseless/foam.dm b/code/modules/projectiles/ammunition/caseless/foam.dm index 1040c08d87..dd29f075f1 100644 --- a/code/modules/projectiles/ammunition/caseless/foam.dm +++ b/code/modules/projectiles/ammunition/caseless/foam.dm @@ -63,3 +63,8 @@ projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/riot icon_state = "foamdart_riot" materials = list(MAT_METAL = 1125) + +/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 diff --git a/code/modules/projectiles/ammunition/energy/laser.dm b/code/modules/projectiles/ammunition/energy/laser.dm index f0aa9eae1f..174645dd11 100644 --- a/code/modules/projectiles/ammunition/energy/laser.dm +++ b/code/modules/projectiles/ammunition/energy/laser.dm @@ -62,6 +62,14 @@ /obj/item/ammo_casing/energy/laser/redtag/hitscan/holy projectile_type = /obj/item/projectile/beam/lasertag/redtag/hitscan/holy +/obj/item/ammo_casing/energy/laser/magtag + projectile_type = /obj/item/projectile/beam/lasertag/mag + select_name = "magtag" + pellets = 3 + variance = 30 + e_cost = 1000 + fire_sound = 'sound/weapons/magburst.ogg' + /obj/item/ammo_casing/energy/xray projectile_type = /obj/item/projectile/beam/xray e_cost = 50 diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index ba6a8e2454..2842f13db5 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -87,7 +87,14 @@ max_ammo = 40 materials = list(MAT_METAL = 500) +/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/foambox/riot icon_state = "foambox_riot" ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot - materials = list(MAT_METAL = 50000) \ No newline at end of file + materials = list(MAT_METAL = 50000) diff --git a/code/modules/projectiles/boxes_magazines/external/magweapon.dm b/code/modules/projectiles/boxes_magazines/external/magweapon.dm new file mode 100644 index 0000000000..fa90170ace --- /dev/null +++ b/code/modules/projectiles/boxes_magazines/external/magweapon.dm @@ -0,0 +1,34 @@ +/obj/item/ammo_box/magazine/mmag + icon_state = "mediummagmag" + ammo_type = /obj/item/ammo_casing/caseless/magnetic/disabler + caliber = "mag" + max_ammo = 24 + multiple_sprites = 2 + +/obj/item/ammo_box/magazine/mmag/lethal + name = "magrifle magazine (lethal)" + ammo_type = /obj/item/ammo_casing/caseless/magnetic + +/obj/item/ammo_box/magazine/mmag/small + name = "magpistol magazine (non-lethal disabler)" + icon_state = "smallmagmag" + ammo_type = /obj/item/ammo_casing/caseless/magnetic/weak/disabler + max_ammo = 15 + +/obj/item/ammo_box/magazine/mmag/small/lethal + name = "magpistol magazine (lethal)" + ammo_type = /obj/item/ammo_casing/caseless/magnetic/weak + +/obj/item/ammo_box/magazine/mhyper + name = "hyper-burst rifle magazine" + icon_state = "hypermag" + ammo_type = /obj/item/ammo_casing/caseless/magnetic/hyper + caliber = "hypermag" + desc = "A magazine for the Hyper-Burst Rifle. Loaded with a special slug that fragments into 6 smaller shards which can absolutely puncture anything, but has rather short effective range." + max_ammo = 4 + multiple_sprites = 4 + +/obj/item/ammo_box/magazine/mhyper/inferno + name = "hyper-burst rifle magazine (inferno)" + ammo_type = /obj/item/ammo_casing/caseless/magnetic/hyper/inferno + desc = "A magazine for the Hyper-Burst Rifle. Loaded with a special slug that violently reacts with whatever surface it strikes, generating massive amount of heat and light." diff --git a/code/modules/projectiles/boxes_magazines/external/toy.dm b/code/modules/projectiles/boxes_magazines/external/toy.dm index b9e1ec9615..04bcad284d 100644 --- a/code/modules/projectiles/boxes_magazines/external/toy.dm +++ b/code/modules/projectiles/boxes_magazines/external/toy.dm @@ -57,3 +57,11 @@ /obj/item/ammo_box/magazine/toy/m762/riot icon_state = "a762-riot" ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot + +/obj/item/ammo_box/magazine/toy/foamag + name = "foam force magrifle magazine" + icon_state = "foamagmag" + max_ammo = 24 + multiple_sprites = 2 + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag + materials = list(MAT_METAL = 200) diff --git a/code/modules/projectiles/boxes_magazines/internal/toy.dm b/code/modules/projectiles/boxes_magazines/internal/toy.dm index 7a520c6a1f..6de018c6af 100644 --- a/code/modules/projectiles/boxes_magazines/internal/toy.dm +++ b/code/modules/projectiles/boxes_magazines/internal/toy.dm @@ -5,3 +5,7 @@ /obj/item/ammo_box/magazine/internal/shot/toy/crossbow max_ammo = 5 + +/obj/item/ammo_box/magazine/internal/shot/toy/mag + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag + max_ammo = 14 diff --git a/code/modules/projectiles/guns/ballistic/magweapon.dm b/code/modules/projectiles/guns/ballistic/magweapon.dm new file mode 100644 index 0000000000..f366063a74 --- /dev/null +++ b/code/modules/projectiles/guns/ballistic/magweapon.dm @@ -0,0 +1,103 @@ +/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_state = "magrifle" + item_state = "arg" + force = 10 + slot_flags = NONE + mag_type = /obj/item/ammo_box/magazine/mmag + fire_sound = 'sound/weapons/magrifle.ogg' + can_suppress = FALSE + burst_size = 1 + actions_types = null + fire_delay = 3 + spread = 0 + recoil = 0.1 + casing_ejector = FALSE + inaccuracy_modifier = 0.5 + dualwield_spread_mult = 1.4 + weapon_weight = WEAPON_MEDIUM + var/obj/item/stock_parts/cell/cell + var/cell_type = /obj/item/stock_parts/cell/magnetic + +/obj/item/gun/ballistic/automatic/magrifle/Initialize() + . = ..() + if(cell_type) + cell = new cell_type(src) + else + cell = new(src) + +/obj/item/gun/ballistic/automatic/magrifle/examine(mob/user) + . = ..() + if(cell) + . += "[src]'s cell is [round(cell.charge / cell.maxcharge, 0.1) * 100]% full." + else + . += "[src] doesn't seem to have a cell!" + +/obj/item/gun/ballistic/automatic/magrifle/can_shoot() + if(QDELETED(cell)) + return 0 + + var/obj/item/ammo_casing/caseless/magnetic/shot = chambered + if(!shot) + return 0 + if(cell.charge < shot.energy_cost * burst_size) + return 0 + . = ..() + +/obj/item/gun/ballistic/automatic/magrifle/shoot_live_shot() + var/obj/item/ammo_casing/caseless/magnetic/shot = chambered + cell.use(shot.energy_cost) + . = ..() + +/obj/item/gun/ballistic/automatic/magrifle/emp_act(severity) + . = ..() + if(!(. & EMP_PROTECT_CONTENTS)) + cell.use(round(cell.charge / severity)) + +/obj/item/gun/ballistic/automatic/magrifle/get_cell() + return cell + +/obj/item/gun/ballistic/automatic/magrifle/nopin + pin = null + spawnwithmagazine = FALSE + cell_type = /obj/item/stock_parts/cell/magnetic/empty + +/obj/item/gun/ballistic/automatic/magrifle/hyperburst + name = "\improper Hyper-Burst Rifle" + desc = "An extremely beefed up version of a stolen Nanotrasen weapon prototype, this 'rifle' is more like a cannon, with an extremely large bore barrel capable of generating several smaller magnetic 'barrels' to simultaneously launch multiple projectiles at once." + icon_state = "hyperburst" + item_state = "arg" + mag_type = /obj/item/ammo_box/magazine/mhyper + fire_sound = 'sound/weapons/magburst.ogg' + fire_delay = 40 + recoil = 2 + weapon_weight = WEAPON_HEAVY + +/obj/item/gun/ballistic/automatic/magrifle/hyperburst/update_icon() + ..() + icon_state = "hyperburst[magazine ? "-[get_ammo()]" : ""][chambered ? "" : "-e"]" + +///magpistol/// + +/obj/item/gun/ballistic/automatic/magrifle/pistol + name = "magpistol" + desc = "A handgun utilizing maglev technologies to propel a ferromagnetic slug to extreme velocities." + icon_state = "magpistol" + fire_sound = 'sound/weapons/magpistol.ogg' + mag_type = /obj/item/ammo_box/magazine/mmag/small + fire_delay = 2 + inaccuracy_modifier = 0.25 + cell_type = /obj/item/stock_parts/cell/magnetic/pistol + +/obj/item/gun/ballistic/automatic/magrifle/pistol/update_icon() + ..() + cut_overlays() + if(magazine) + add_overlay("magpistol-magazine") + icon_state = "[initial(icon_state)][chambered ? "" : "-e"]" + +/obj/item/gun/ballistic/automatic/magrifle/pistol/nopin + pin = null + spawnwithmagazine = FALSE + cell_type = /obj/item/stock_parts/cell/magnetic/pistol/empty diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm index 8b358832b0..4060a02c0f 100644 --- a/code/modules/projectiles/guns/ballistic/toy.dm +++ b/code/modules/projectiles/guns/ballistic/toy.dm @@ -109,3 +109,36 @@ /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted/riot mag_type = /obj/item/ammo_box/magazine/toy/m762/riot + +/obj/item/gun/ballistic/automatic/toy/magrifle + name = "foamag rifle" + desc = "A foam launching magnetic rifle. Ages 8 and up." + icon_state = "foamagrifle" + obj_flags = NONE + mag_type = /obj/item/ammo_box/magazine/toy/foamag + fire_sound = 'sound/weapons/magrifle.ogg' + burst_size = 1 + actions_types = null + fire_delay = 3 + spread = 60 + recoil = 0.1 + can_suppress = FALSE + inaccuracy_modifier = 0.5 + weapon_weight = WEAPON_MEDIUM + dualwield_spread_mult = 1.4 + w_class = WEIGHT_CLASS_BULKY + +/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_state = "toymag" + item_state = "gun" + mag_type = /obj/item/ammo_box/magazine/internal/shot/toy/mag + fire_sound = 'sound/weapons/magpistol.ogg' + fire_delay = 2 + recoil = 0.1 + inaccuracy_modifier = 0.25 + dualwield_spread_mult = 1.4 + slot_flags = SLOT_BELT + w_class = WEIGHT_CLASS_NORMAL + weapon_weight = WEAPON_MEDIUM diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 1e1af62d5a..32f3416faf 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -16,6 +16,19 @@ clumsy_check = 0 item_flags = NONE +/obj/item/gun/energy/laser/practice/hyperburst + name = "toy hyper-burst launcher" + desc = "A toy laser with a unique beam shaping lens that projects harmless bolts capable of going through objects. Compatible with existing laser tag systems." + ammo_type = list(/obj/item/ammo_casing/energy/laser/magtag) + icon_state = "toyburst" + obj_flags = NONE + fire_delay = 40 + weapon_weight = WEAPON_HEAVY + selfcharge = EGUN_SELFCHARGE + charge_delay = 2 + recoil = 2 + cell_type = /obj/item/stock_parts/cell/toymagburst + /obj/item/gun/energy/laser/retro name ="retro laser gun" icon_state = "retro" diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index d71e081dac..389bf84904 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -146,6 +146,15 @@ if(M.wear_suit.type in suit_types) M.adjustStaminaLoss(34) +/obj/item/projectile/beam/lasertag/mag //the projectile, compatible with regular laser tag armor + icon_state = "magjectile-toy" + name = "lasertag magbolt" + movement_type = FLYING | UNSTOPPABLE //for penetration memes + range = 5 //so it isn't super annoying + light_range = 2 + light_color = LIGHT_COLOR_YELLOW + eyeblur = 0 + /obj/item/projectile/beam/lasertag/redtag icon_state = "laser" suit_types = list(/obj/item/clothing/suit/bluetag) diff --git a/code/modules/projectiles/projectile/bullets/ferromagnetic.dm b/code/modules/projectiles/projectile/bullets/ferromagnetic.dm new file mode 100644 index 0000000000..2d66e25256 --- /dev/null +++ b/code/modules/projectiles/projectile/bullets/ferromagnetic.dm @@ -0,0 +1,49 @@ +/obj/item/projectile/bullet/magnetic + icon_state = "magjectile" + damage = 20 + armour_penetration = 20 + light_range = 3 + speed = 0.6 + range = 35 + light_color = LIGHT_COLOR_RED + +/obj/item/projectile/bullet/magnetic/disabler + icon_state = "magjectile-nl" //nl stands for non-lethal + damage = 2 + armour_penetration = 10 + stamina = 20 + light_color = LIGHT_COLOR_BLUE + +/obj/item/projectile/bullet/magnetic/weak + damage = 15 + armour_penetration = 10 + light_range = 2 + range = 25 + +/obj/item/projectile/bullet/magnetic/weak/disabler + damage = 2 + stamina = 20 + +/obj/item/projectile/bullet/magnetic/hyper + damage = 10 + armour_penetration = 20 + stamina = 10 + movement_type = FLYING | UNSTOPPABLE + range = 6 + light_range = 1 + light_color = LIGHT_COLOR_RED + +/obj/item/projectile/bullet/incendiary/mag_inferno + icon_state = "magjectile-large" + damage = 10 + armour_penetration = 20 + movement_type = FLYING | UNSTOPPABLE + range = 20 + speed = 0.8 + light_range = 4 + light_color = LIGHT_COLOR_RED + +/obj/item/projectile/bullet/incendiary/mag_inferno/on_hit(atom/target, blocked = FALSE) + ..() + explosion(target, -1, 0, 0, 1, 2, flame_range = 2) + return BULLET_ACT_HIT diff --git a/code/modules/projectiles/projectile/reusable/foam_dart.dm b/code/modules/projectiles/projectile/reusable/foam_dart.dm index 42f6218b6c..7d21f663c2 100644 --- a/code/modules/projectiles/projectile/reusable/foam_dart.dm +++ b/code/modules/projectiles/projectile/reusable/foam_dart.dm @@ -39,3 +39,10 @@ icon_state = "foamdart_riot_proj" ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot stamina = 25 + +/obj/item/projectile/bullet/reusable/foam_dart/mag + name = "magfoam dart" + icon_state = "magjectile-toy" + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag + light_range = 2 + light_color = LIGHT_COLOR_YELLOW diff --git a/code/modules/research/designs/autoylathe_designs.dm b/code/modules/research/designs/autoylathe_designs.dm index 1773286e6b..d54dce9e8a 100644 --- a/code/modules/research/designs/autoylathe_designs.dm +++ b/code/modules/research/designs/autoylathe_designs.dm @@ -584,7 +584,7 @@ id = "foam_magrifle" build_type = AUTOYLATHE materials = list(MAT_PLASTIC = 4000, MAT_METAL = 500) - build_path = /obj/item/gun/ballistic/automatic/magrifle/toy + build_path = /obj/item/gun/ballistic/automatic/toy/magrifle category = list("initial", "Rifles") /datum/design/foam_hyperburst diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index e6f4670f87..1d65edbe9a 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -47,6 +47,44 @@ category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY +////////////////// +//Mag-Rifle Mags// +////////////////// + +/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 + +/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 + ////////////// //WT550 Mags// ////////////// @@ -323,6 +361,26 @@ category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY +/datum/design/magpistol + name = "Magpistol" + desc = "A weapon which fires ferromagnetic slugs." + id = "magpistol" + 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/magrifle/pistol/nopin + category = list("Weapons") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/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 + /////////// //Grenades/ /////////// diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index c02fdc7c72..15e88fc811 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -697,6 +697,15 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 +/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", "magpistol", "mag_magrifle", "mag_magrifle_nl", "mag_magpistol", "mag_magpistol_nl") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + /datum/techweb_node/medical_weapons id = "medical_weapons" display_name = "Medical Weaponry" diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 6282e555fa..55cbcc66e0 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi index c30e8aa6bd..c68728a91f 100644 Binary files a/icons/obj/guns/energy.dmi and b/icons/obj/guns/energy.dmi differ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index 24ec5797d4..b85c769bcd 100644 Binary files a/icons/obj/guns/projectile.dmi and b/icons/obj/guns/projectile.dmi differ diff --git a/icons/obj/guns/toy.dmi b/icons/obj/guns/toy.dmi index f41c289746..56fa76b41b 100644 Binary files a/icons/obj/guns/toy.dmi and b/icons/obj/guns/toy.dmi differ diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index a434994846..668f3388ce 100644 Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm deleted file mode 100644 index 9779b47b15..0000000000 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm +++ /dev/null @@ -1,470 +0,0 @@ -///////XCOM X9 AR/////// - -/obj/item/gun/ballistic/automatic/x9 //will be adminspawn only so ERT or something can use them - name = "\improper X9 Assault Rifle" - desc = "A rather old design of a cheap, reliable assault rifle made for combat against unknown enemies. Uses 5.56mm ammo." - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "x9" - item_state = "arg" - slot_flags = 0 - mag_type = /obj/item/ammo_box/magazine/m556 //Uses the m90gl's magazine, just like the NT-ARG - fire_sound = 'sound/weapons/gunshot_smg.ogg' - can_suppress = 0 - burst_size = 6 //in line with XCOMEU stats. This can fire 5 bursts from a full magazine. - fire_delay = 1 - spread = 30 //should be 40 for XCOM memes, but since its adminspawn only, might as well make it useable - recoil = 1 - -///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' - icon_state = "magjectile" - damage = 15 - armour_penetration = 10 - light_range = 2 - speed = 0.6 - range = 25 - light_color = LIGHT_COLOR_RED - -/obj/item/projectile/bullet/nlmags //non-lethal boolets - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "magjectile-nl" - damage = 2 - knockdown = 0 - stamina = 20 - light_range = 2 - speed = 0.6 - range = 25 - light_color = LIGHT_COLOR_BLUE - - -/////actual ammo///// - -/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 = "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 = "smallmagmag" - 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 = FALSE - fire_delay = 2 - recoil = 0.1 - inaccuracy_modifier = 0.25 - -/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 - 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' - icon_state = "magjectile-large" - damage = 20 - armour_penetration = 20 - light_range = 3 - speed = 0.6 - range = 35 - light_color = LIGHT_COLOR_RED - -/obj/item/projectile/bullet/nlmagrifle //non-lethal boolets - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "magjectile-large-nl" - damage = 2 - knockdown = 0 - stamina = 20 - armour_penetration = 10 - light_range = 3 - speed = 0.6 - range = 35 - light_color = LIGHT_COLOR_BLUE - -///ammo casings/// - -/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 - click_cooldown_override = 2.5 - delay = 3 - -/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 - click_cooldown_override = 2.5 - delay = 3 - -///magazines/// - -/obj/item/ammo_box/magazine/mmag - name = "magrifle magazine (non-lethal disabler)" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "mediummagmag" - ammo_type = /obj/item/ammo_casing/caseless/anlmagm - caliber = "magm" - max_ammo = 24 - multiple_sprites = 2 - -/obj/item/ammo_box/magazine/mmag/lethal - name = "magrifle magazine (lethal)" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "mediummagmag" - ammo_type = /obj/item/ammo_casing/caseless/amagm - max_ammo = 24 - -///the gun itself/// - -/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 = NONE - mag_type = /obj/item/ammo_box/magazine/mmag - fire_sound = 'sound/weapons/magrifle.ogg' - can_suppress = 0 - burst_size = 1 - actions_types = null - fire_delay = 3 - spread = 0 - recoil = 0.1 - casing_ejector = FALSE - inaccuracy_modifier = 0.5 - weapon_weight = WEAPON_MEDIUM - dualwield_spread_mult = 1.4 - -//research/// - -/obj/item/gun/ballistic/automatic/magrifle/nopin - pin = null - spawnwithmagazine = FALSE - -/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 - -/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 = "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/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", "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////// - -///projectiles/// - -/obj/item/projectile/bullet/mags/hyper - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "magjectile" - damage = 10 - armour_penetration = 10 - stamina = 10 - movement_type = FLYING | UNSTOPPABLE - range = 6 - light_range = 1 - light_color = LIGHT_COLOR_RED - -/obj/item/projectile/bullet/mags/hyper/inferno - icon_state = "magjectile-large" - stamina = 0 - movement_type = FLYING | UNSTOPPABLE - range = 25 - light_range = 4 - -/obj/item/projectile/bullet/mags/hyper/inferno/on_hit(atom/target, blocked = FALSE) - ..() - explosion(target, -1, 1, 2, 4, 5) - return BULLET_ACT_HIT - -///ammo casings/// - -/obj/item/ammo_casing/caseless/ahyper - desc = "A large block of speciallized ferromagnetic material designed to be fired out of the experimental Hyper-Burst Rifle." - caliber = "hypermag" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "hyper-casing-live" - projectile_type = /obj/item/projectile/bullet/mags/hyper - pellets = 12 - variance = 40 - -/obj/item/ammo_casing/caseless/ahyper/inferno - projectile_type = /obj/item/projectile/bullet/mags/hyper/inferno - pellets = 1 - variance = 0 - -///magazines/// - -/obj/item/ammo_box/magazine/mhyper - name = "hyper-burst rifle magazine" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "hypermag-4" - ammo_type = /obj/item/ammo_casing/caseless/ahyper - caliber = "hypermag" - desc = "A magazine for the Hyper-Burst Rifle. Loaded with a special slug that fragments into 12 smaller shards which can absolutely puncture anything, but has rather short effective range." - max_ammo = 4 - -/obj/item/ammo_box/magazine/mhyper/update_icon() - ..() - icon_state = "hypermag-[ammo_count() ? "4" : "0"]" - -/obj/item/ammo_box/magazine/mhyper/inferno - name = "hyper-burst rifle magazine (inferno)" - ammo_type = /obj/item/ammo_casing/caseless/ahyper/inferno - desc = "A magazine for the Hyper-Burst Rifle. Loaded with a special slug that violently reacts with whatever surface it strikes, generating a massive amount of heat and light." - -///gun itself/// - -/obj/item/gun/ballistic/automatic/hyperburst - name = "\improper Hyper-Burst Rifle" - desc = "An extremely beefed up version of a stolen Nanotrasen weapon prototype, this 'rifle' is more like a cannon, with an extremely large bore barrel capable of generating several smaller magnetic 'barrels' to simultaneously launch multiple projectiles at once." - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "hyperburst" - item_state = "arg" - slot_flags = 0 - mag_type = /obj/item/ammo_box/magazine/mhyper - fire_sound = 'sound/weapons/magburst.ogg' - can_suppress = 0 - burst_size = 1 - fire_delay = 40 - recoil = 2 - casing_ejector = 0 - weapon_weight = WEAPON_HEAVY - -/obj/item/gun/ballistic/automatic/hyperburst/update_icon() - ..() - icon_state = "hyperburst[magazine ? "-[get_ammo()]" : ""][chambered ? "" : "-e"]" - -///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' - icon_state = "magjectile-toy" - name = "lasertag magbolt" - movement_type = FLYING | UNSTOPPABLE //for penetration memes - range = 5 //so it isn't super annoying - light_range = 2 - light_color = LIGHT_COLOR_YELLOW - eyeblur = 0 - -/obj/item/ammo_casing/energy/laser/magtag - projectile_type = /obj/item/projectile/beam/lasertag/mag - select_name = "magtag" - pellets = 3 - variance = 30 - e_cost = 1000 - fire_sound = 'sound/weapons/magburst.ogg' - -/obj/item/gun/energy/laser/practice/hyperburst - name = "toy hyper-burst launcher" - desc = "A toy laser with a unique beam shaping lens that projects harmless bolts capable of going through objects. Compatible with existing laser tag systems." - ammo_type = list(/obj/item/ammo_casing/energy/laser/magtag) - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "toyburst" - clumsy_check = FALSE - obj_flags = 0 - fire_delay = 40 - weapon_weight = WEAPON_HEAVY - selfcharge = EGUN_SELFCHARGE - charge_delay = 2 - recoil = 2 - cell_type = /obj/item/stock_parts/cell/toymagburst - -/obj/item/stock_parts/cell/toymagburst - name = "toy mag burst rifle power supply" - maxcharge = 4000 diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm deleted file mode 100644 index f847d04e9e..0000000000 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm +++ /dev/null @@ -1,293 +0,0 @@ -///ammo/// - -/obj/item/ammo_casing/caseless/mag_e - var/energy_cost = 0 - -/obj/item/ammo_casing/caseless/mag_e/amagm_e - desc = "A large ferromagnetic slug intended to be launched out of a compatible weapon." - caliber = "mag_e" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "mag-casing-live" - projectile_type = /obj/item/projectile/bullet/magrifle - energy_cost = 200 - -/obj/item/ammo_casing/caseless/mag_e/anlmagm_e - desc = "A large, specialized ferromagnetic slug designed with a less-than-lethal payload." - caliber = "mag_e" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "mag-casing-live" - projectile_type = /obj/item/projectile/bullet/nlmagrifle - energy_cost = 200 - -/obj/item/ammo_casing/caseless/mag_e/amags - desc = "A ferromagnetic slug intended to be launched out of a compatible weapon." - caliber = "mag_e" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "mag-casing-live" - projectile_type = /obj/item/projectile/bullet/mags - energy_cost = 125 - -/obj/item/ammo_casing/caseless/mag_e/anlmags - desc = "A specialized ferromagnetic slug designed with a less-than-lethal payload." - caliber = "mag_e" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "mag-casing-live" - projectile_type = /obj/item/projectile/bullet/nlmags - energy_cost = 125 - -///magazines/// - -/obj/item/ammo_box/magazine/mmag_e/ - name = "magrifle magazine (non-lethal disabler)" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "mediummagmag" - ammo_type = /obj/item/ammo_casing/caseless/mag_e/anlmagm_e - caliber = "mag_e" - max_ammo = 24 - multiple_sprites = 2 - -/obj/item/ammo_box/magazine/mmag_e/lethal - name = "magrifle magazine (lethal)" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "mediummagmag" - ammo_type = /obj/item/ammo_casing/caseless/mag_e/amagm_e - max_ammo = 24 - -/obj/item/ammo_box/magazine/mmag_e/small - name = "magpistol magazine (non-lethal disabler)" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "smallmagmag" - ammo_type = /obj/item/ammo_casing/caseless/mag_e/anlmags - caliber = "mag_e" - max_ammo = 16 - multiple_sprites = 2 - -/obj/item/ammo_box/magazine/mmag_e/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/mag_e/amags - max_ammo = 16 - -///cells/// - -/obj/item/stock_parts/cell/magrifle_e - name = "magrifle power supply" - maxcharge = 14400 - chargerate = 3520 - -/obj/item/stock_parts/cell/magpistol_e - name = "magpistol power supply" - maxcharge = 6000 - chargerate = 1000 - -///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_e_nl" - 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 = "magpistol_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_e/nl - name = "Magpistol Magazine (Non-Lethal)" - desc = "A 14 round non-lethal magazine for the Magpistol." - id = "mag_magpistol_e_nl" - 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 - -/* -// 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", "magpistol_e", "mag_magrifle_e", "mag_magrifle_e_nl", "mag_magpistol_e", "mag_magpistol_e_nl") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) - export_price = 5000 -*/ - -///magrifle/// - -/obj/item/gun/ballistic/automatic/magrifle_e - 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 - fire_sound = 'sound/weapons/magrifle.ogg' - can_suppress = 0 - burst_size = 3 - fire_delay = 2 - 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/examine(mob/user) - . = ..() - if(cell) - . += "[src]'s cell is [round(cell.charge / cell.maxcharge, 0.1) * 100]% full." - else - . += "[src] doesn't seem to have a cell!" - -/obj/item/gun/ballistic/automatic/magrifle_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*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 - pin = null - spawnwithmagazine = FALSE - -///magpistol/// - -/obj/item/gun/ballistic/automatic/pistol/mag_e - 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_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 - -/obj/item/gun/ballistic/automatic/pistol/mag_e/examine(mob/user) - . = ..() - if(cell) - . += "[src]'s cell is [round(cell.charge / cell.maxcharge, 0.1) * 100]% full." - else - . += "[src] doesn't seem to have a cell!" - -/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 diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm index 024669757a..37198e87cf 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm @@ -16,6 +16,29 @@ spread = 30 //should be 40 for XCOM memes, but since its adminspawn only, might as well make it useable recoil = 1 +///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 + ///////security rifles special ammo/////// /obj/item/ammo_casing/c46x30mm/rubber diff --git a/modular_citadel/icons/obj/guns/cit_guns.dmi b/modular_citadel/icons/obj/guns/cit_guns.dmi index bd48d8edbd..79b54d27fb 100644 Binary files a/modular_citadel/icons/obj/guns/cit_guns.dmi and b/modular_citadel/icons/obj/guns/cit_guns.dmi differ diff --git a/tgstation.dme b/tgstation.dme index b5f5442d67..75312c3879 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2577,6 +2577,7 @@ #include "code\modules\projectiles\ammunition\ballistic\smg.dm" #include "code\modules\projectiles\ammunition\ballistic\sniper.dm" #include "code\modules\projectiles\ammunition\caseless\_caseless.dm" +#include "code\modules\projectiles\ammunition\caseless\ferromagnetic.dm" #include "code\modules\projectiles\ammunition\caseless\foam.dm" #include "code\modules\projectiles\ammunition\caseless\misc.dm" #include "code\modules\projectiles\ammunition\caseless\rocket.dm" @@ -2596,6 +2597,7 @@ #include "code\modules\projectiles\boxes_magazines\ammo_boxes.dm" #include "code\modules\projectiles\boxes_magazines\external\grenade.dm" #include "code\modules\projectiles\boxes_magazines\external\lmg.dm" +#include "code\modules\projectiles\boxes_magazines\external\magweapon.dm" #include "code\modules\projectiles\boxes_magazines\external\pistol.dm" #include "code\modules\projectiles\boxes_magazines\external\rechargable.dm" #include "code\modules\projectiles\boxes_magazines\external\rifle.dm" @@ -2617,6 +2619,7 @@ #include "code\modules\projectiles\guns\ballistic\automatic.dm" #include "code\modules\projectiles\guns\ballistic\laser_gatling.dm" #include "code\modules\projectiles\guns\ballistic\launchers.dm" +#include "code\modules\projectiles\guns\ballistic\magweapon.dm" #include "code\modules\projectiles\guns\ballistic\pistol.dm" #include "code\modules\projectiles\guns\ballistic\revolver.dm" #include "code\modules\projectiles\guns\ballistic\shotgun.dm" @@ -2647,6 +2650,7 @@ #include "code\modules\projectiles\projectile\bullets\_incendiary.dm" #include "code\modules\projectiles\projectile\bullets\dart_syringe.dm" #include "code\modules\projectiles\projectile\bullets\dnainjector.dm" +#include "code\modules\projectiles\projectile\bullets\ferromagnetic.dm" #include "code\modules\projectiles\projectile\bullets\grenade.dm" #include "code\modules\projectiles\projectile\bullets\lmg.dm" #include "code\modules\projectiles\projectile\bullets\pistol.dm" @@ -3176,8 +3180,6 @@ #include "modular_citadel\code\modules\projectiles\guns\pumpenergy.dm" #include "modular_citadel\code\modules\projectiles\guns\toys.dm" #include "modular_citadel\code\modules\projectiles\guns\ballistic\handguns.dm" -#include "modular_citadel\code\modules\projectiles\guns\ballistic\magweapon.dm" -#include "modular_citadel\code\modules\projectiles\guns\ballistic\magweapon_energy.dm" #include "modular_citadel\code\modules\projectiles\guns\ballistic\rifles.dm" #include "modular_citadel\code\modules\projectiles\guns\ballistic\spinfusor.dm" #include "modular_citadel\code\modules\projectiles\guns\energy\energy_gun.dm"