Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New GL ammo to add to the lootpool #331

Closed
wants to merge 18 commits into from
6 changes: 3 additions & 3 deletions _maps/map_files/Sunnyvale/Sunnyvale-Underground-1.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -1372,9 +1372,9 @@
dir = 4
},
/obj/item/gun/ballistic/revolver/grenadelauncher,
/obj/item/ammo_box/a40mm,
/obj/item/ammo_box/a40mm,
/obj/item/ammo_box/a40mm,
/obj/item/ammo_box/a40mmHE,
/obj/item/ammo_box/a40mmHE,
/obj/item/ammo_box/a40mmHEDP,
/turf/open/floor/f13{
icon_state = "neutralrustyfull"
},
Expand Down
222 changes: 216 additions & 6 deletions code/datums/components/crafting/recipes/recipes_explosives.dm
Original file line number Diff line number Diff line change
Expand Up @@ -287,9 +287,9 @@
always_available = FALSE
granting_trait = TRAIT_ADVANCED_EXPLOSIVE_CRAFTING

/datum/crafting_recipe/a40mm
name = "40mm grenade"
result = /obj/item/ammo_casing/a40mm
/datum/crafting_recipe/a40mmHE
name = "40mm HE grenade"
result = /obj/item/ammo_casing/a40mmHE
category = CAT_EXPLOSIVE
reqs = list(
/obj/item/stack/sheet/metal = 10,
Expand All @@ -305,9 +305,9 @@
always_available = FALSE
granting_trait = list(list(TRAIT_EXPLOSIVE_CRAFTING, TRAIT_ADVANCED_EXPLOSIVE_CRAFTING))

/datum/crafting_recipe/a40mm_box
name = "Ammo box (40mm grenades)"
result = /obj/item/ammo_box/a40mm
/datum/crafting_recipe/a40mmHE_box
name = "Ammo box (40mmHE grenades)"
result = /obj/item/ammo_box/a40mmHE
category = CAT_EXPLOSIVE
reqs = list(
/obj/item/stack/sheet/metal = 40,
Expand All @@ -323,6 +323,216 @@
always_available = FALSE
granting_trait = list(list(TRAIT_EXPLOSIVE_CRAFTING, TRAIT_ADVANCED_EXPLOSIVE_CRAFTING))

/datum/crafting_recipe/a40mmHEDP
name = "40mm HEDP grenade"
result = /obj/item/ammo_casing/a40mmHEDP
category = CAT_EXPLOSIVE
reqs = list(
/obj/item/stack/sheet/metal = 10,
/obj/item/stack/sheet/mineral/titanium = 5,
/obj/item/stack/crafting/metalparts = 2,
/obj/item/stack/crafting/goodparts = 8,
/obj/item/stack/crafting/electronicparts = 20,
/obj/item/stack/ore/blackpowder = 10,
/obj/item/assembly/igniter = 1
)
tools = list(TOOL_AWORKBENCH)
time = 5
always_available = FALSE
granting_trait = list(list(TRAIT_EXPLOSIVE_CRAFTING, TRAIT_ADVANCED_EXPLOSIVE_CRAFTING))

/datum/crafting_recipe/a40mmHEDP_box
name = "Ammo box (40mmHEDP grenades)"
result = /obj/item/ammo_box/a40mmHEDP
category = CAT_EXPLOSIVE
reqs = list(
/obj/item/stack/sheet/metal = 40,
/obj/item/stack/sheet/mineral/titanium = 20,
/obj/item/stack/crafting/metalparts = 8,
/obj/item/stack/crafting/goodparts = 32,
/obj/item/stack/crafting/electronicparts = 80,
/obj/item/stack/ore/blackpowder = 40,
/obj/item/assembly/igniter = 4
)
tools = list(TOOL_AWORKBENCH)
time = 20
always_available = FALSE
granting_trait = list(list(TRAIT_EXPLOSIVE_CRAFTING, TRAIT_ADVANCED_EXPLOSIVE_CRAFTING))

/datum/crafting_recipe/a40mmS
name = "40mm SMOKE grenade"
result = /obj/item/ammo_casing/a40mmS
category = CAT_EXPLOSIVE
reqs = list(
/obj/item/stack/sheet/metal = 10,
/obj/item/stack/sheet/mineral/titanium = 5,
/obj/item/stack/crafting/metalparts = 5,
/obj/item/stack/crafting/goodparts = 2,
/obj/item/stack/crafting/electronicparts = 10,
/obj/item/stack/ore/blackpowder = 5,
/obj/item/assembly/igniter = 1
)
tools = list(TOOL_AWORKBENCH)
time = 5
always_available = FALSE
granting_trait = list(list(TRAIT_EXPLOSIVE_CRAFTING, TRAIT_ADVANCED_EXPLOSIVE_CRAFTING))

/datum/crafting_recipe/a40mmS_box
name = "Ammo box (40mmSMOKE grenades)"
result = /obj/item/ammo_box/a40mmS
category = CAT_EXPLOSIVE
reqs = list(
/obj/item/stack/sheet/metal = 40,
/obj/item/stack/sheet/mineral/titanium = 20,
/obj/item/stack/crafting/metalparts = 20,
/obj/item/stack/crafting/goodparts = 8,
/obj/item/stack/crafting/electronicparts = 40,
/obj/item/stack/ore/blackpowder = 20,
/obj/item/assembly/igniter = 4
)
tools = list(TOOL_AWORKBENCH)
time = 20
always_available = FALSE
granting_trait = list(list(TRAIT_EXPLOSIVE_CRAFTING, TRAIT_ADVANCED_EXPLOSIVE_CRAFTING))

/datum/crafting_recipe/a40mmCS
name = "40mm CS grenade"
result = /obj/item/ammo_casing/a40mmCS
category = CAT_EXPLOSIVE
reqs = list(
/obj/item/stack/sheet/metal = 10,
/obj/item/stack/sheet/mineral/titanium = 5,
/obj/item/stack/crafting/metalparts = 5,
/obj/item/stack/crafting/goodparts = 2,
/obj/item/stack/crafting/electronicparts = 10,
/obj/item/stack/ore/blackpowder = 8,
/obj/item/assembly/igniter = 1
)
tools = list(TOOL_AWORKBENCH)
time = 5
always_available = FALSE
granting_trait = list(list(TRAIT_EXPLOSIVE_CRAFTING, TRAIT_ADVANCED_EXPLOSIVE_CRAFTING))

/datum/crafting_recipe/a40mmCS_box
name = "Ammo box (40mmCS grenades)"
result = /obj/item/ammo_box/a40mmCS
category = CAT_EXPLOSIVE
reqs = list(
/obj/item/stack/sheet/metal = 40,
/obj/item/stack/sheet/mineral/titanium = 20,
/obj/item/stack/crafting/metalparts = 20,
/obj/item/stack/crafting/goodparts = 8,
/obj/item/stack/crafting/electronicparts = 40,
/obj/item/stack/ore/blackpowder = 32,
/obj/item/assembly/igniter = 4
)
tools = list(TOOL_AWORKBENCH)
time = 20
always_available = FALSE
granting_trait = list(list(TRAIT_EXPLOSIVE_CRAFTING, TRAIT_ADVANCED_EXPLOSIVE_CRAFTING))

/datum/crafting_recipe/a40mmM
name = "40mm METAL grenade"
result = /obj/item/ammo_casing/a40mmM
category = CAT_EXPLOSIVE
reqs = list(
/obj/item/stack/sheet/metal = 20,
/obj/item/stack/sheet/mineral/titanium = 10,
/obj/item/stack/crafting/metalparts = 10,
/obj/item/stack/crafting/goodparts = 5,
)
tools = list(TOOL_AWORKBENCH)
time = 5
always_available = FALSE
granting_trait = list(list(TRAIT_EXPLOSIVE_CRAFTING, TRAIT_ADVANCED_EXPLOSIVE_CRAFTING))

/datum/crafting_recipe/a40mmM_box
name = "Ammo box (40mm METAL grenades)"
result = /obj/item/ammo_box/a40mmM
category = CAT_EXPLOSIVE
reqs = list(
/obj/item/stack/sheet/metal = 80,
/obj/item/stack/sheet/mineral/titanium = 40,
/obj/item/stack/crafting/metalparts = 40,
/obj/item/stack/crafting/goodparts = 20,
)
tools = list(TOOL_AWORKBENCH)
time = 20
always_available = FALSE
granting_trait = list(list(TRAIT_EXPLOSIVE_CRAFTING, TRAIT_ADVANCED_EXPLOSIVE_CRAFTING))

/datum/crafting_recipe/a40mmF
name = "40mm FLASH grenade"
result = /obj/item/ammo_casing/a40mmF
category = CAT_EXPLOSIVE
reqs = list(
/obj/item/stack/sheet/metal = 10,
/obj/item/stack/sheet/mineral/titanium = 5,
/obj/item/stack/crafting/metalparts = 8,
/obj/item/stack/crafting/goodparts = 2,
/obj/item/stack/crafting/electronicparts = 15,
/obj/item/stack/ore/blackpowder = 15,
/obj/item/assembly/igniter = 1
)
tools = list(TOOL_AWORKBENCH)
time = 5
always_available = FALSE
granting_trait = list(list(TRAIT_EXPLOSIVE_CRAFTING, TRAIT_ADVANCED_EXPLOSIVE_CRAFTING))

/datum/crafting_recipe/a40mmF_box
name = "Ammo box (40mm FLASH grenades)"
result = /obj/item/ammo_box/a40mmF
category = CAT_EXPLOSIVE
reqs = list(
/obj/item/stack/sheet/metal = 40,
/obj/item/stack/sheet/mineral/titanium = 20,
/obj/item/stack/crafting/metalparts = 32,
/obj/item/stack/crafting/goodparts = 8,
/obj/item/stack/crafting/electronicparts = 60,
/obj/item/stack/ore/blackpowder = 60,
/obj/item/assembly/igniter = 4
)
tools = list(TOOL_AWORKBENCH)
time = 20
always_available = FALSE
granting_trait = list(list(TRAIT_EXPLOSIVE_CRAFTING, TRAIT_ADVANCED_EXPLOSIVE_CRAFTING))

/datum/crafting_recipe/a40mmI
name = "40mm INCENDARY grenade"
result = /obj/item/ammo_casing/a40mmI
category = CAT_EXPLOSIVE
reqs = list(
/obj/item/stack/sheet/metal = 10,
/obj/item/stack/sheet/mineral/titanium = 5,
/obj/item/stack/crafting/metalparts = 8,
/obj/item/stack/crafting/goodparts = 1,
/obj/item/stack/crafting/electronicparts = 15,
/obj/item/stack/ore/blackpowder = 8,
/obj/item/assembly/igniter = 1
)
tools = list(TOOL_AWORKBENCH)
time = 5
always_available = FALSE
granting_trait = list(list(TRAIT_EXPLOSIVE_CRAFTING, TRAIT_ADVANCED_EXPLOSIVE_CRAFTING))

/datum/crafting_recipe/a40mmI_box
name = "Ammo box (40mm INCENDARY grenades)"
result = /obj/item/ammo_box/a40mmI
category = CAT_EXPLOSIVE
reqs = list(
/obj/item/stack/sheet/metal = 40,
/obj/item/stack/sheet/mineral/titanium = 20,
/obj/item/stack/crafting/metalparts = 32,
/obj/item/stack/crafting/goodparts = 4,
/obj/item/stack/crafting/electronicparts = 60,
/obj/item/stack/ore/blackpowder = 32,
/obj/item/assembly/igniter = 4
)
tools = list(TOOL_AWORKBENCH)
time = 20
always_available = FALSE
granting_trait = list(list(TRAIT_EXPLOSIVE_CRAFTING, TRAIT_ADVANCED_EXPLOSIVE_CRAFTING))

/datum/crafting_recipe/rocket_base
name = "Empty rocket shell"
result = /obj/item/rocketshell
Expand Down
16 changes: 13 additions & 3 deletions code/game/objects/effects/spawners/f13lootdrop.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1671,7 +1671,7 @@
name = "grenade launcher and ammo spawner"
items = list(
/obj/item/gun/ballistic/revolver/grenadelauncher,
/obj/item/ammo_box/a40mm
/obj/item/ammo_box/a40mmHE
)


Expand Down Expand Up @@ -1754,7 +1754,11 @@
/obj/item/ammo_box/a762/doublestacked,
/obj/item/stock_parts/cell/ammo/mfc,
/obj/item/ammo_casing/caseless/rocket,
/obj/item/ammo_box/a40mm
/obj/item/ammo_box/a40mmHE,
/obj/item/ammo_box/a40mmS,
/obj/item/ammo_box/a40mmCS,
/obj/item/ammo_box/a40mmF,
/obj/item/ammo_box/a40mmM,
)

/obj/effect/spawner/lootdrop/f13/weapon/gun/ammo/tier4/Initialize(mapload) //on mapload, pick how many shit to spawn
Expand All @@ -1775,7 +1779,13 @@
/obj/item/ammo_casing/caseless/rocket/big,
/obj/item/ammo_casing/caseless/rocket/incendiary = 10,
/obj/item/ammo_casing/caseless/rocket/chem = 3,
/obj/item/ammo_box/a40mm
/obj/item/ammo_box/a40mmHE,
/obj/item/ammo_box/a40mmHEDP,
/obj/item/ammo_box/a40mmS,
/obj/item/ammo_box/a40mmCS,
/obj/item/ammo_box/a40mmM,
/obj/item/ammo_box/a40mmF,
/obj/item/ammo_box/a40mmI,
)

/obj/effect/spawner/lootdrop/f13/weapon/gun/ammo/tier5/Initialize(mapload) //on mapload, pick how many shit to spawn
Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/items/granters.dm
Original file line number Diff line number Diff line change
Expand Up @@ -885,7 +885,7 @@
traitname = "explosive crafting"
remarks = list("If you want to get started making bombs, you're going to need a lot of igniters and black powder.", "Did a Follower write this book, or something?", "All thermite takes is some aluminum and iron.", "Coconut shells make acceptable grenade casings in a pinch.")
crafting_recipe_types = list(/datum/crafting_recipe/frag_shrapnel, /datum/crafting_recipe/stinger, /datum/crafting_recipe/flashbang,
/datum/crafting_recipe/smokebomb, /datum/crafting_recipe/a40mm, /datum/crafting_recipe/a40mm_box, /datum/crafting_recipe/rocket_base, /datum/crafting_recipe/weakrocket)
/datum/crafting_recipe/smokebomb, /datum/crafting_recipe/a40mmHE, /datum/crafting_recipe/a40mmHE_box, /datum/crafting_recipe/a40mmHEDP, /datum/crafting_recipe/a40mmHEDP_box, /datum/crafting_recipe/a40mmS, /datum/crafting_recipe/a40mmS_box, /datum/crafting_recipe/a40mmCS, /datum/crafting_recipe/a40mmCS_box, /datum/crafting_recipe/a40mmM, /datum/crafting_recipe/a40mmM_box, /datum/crafting_recipe/a40mmF, /datum/crafting_recipe/a40mmF_box, /datum/crafting_recipe/a40mmI, /datum/crafting_recipe/a40mmI_box, /datum/crafting_recipe/rocket_base, /datum/crafting_recipe/weakrocket)

/obj/item/book/granter/trait/explosives_advanced
name = "Advanced Techniques for Winning at Postal Chess"
Expand All @@ -894,7 +894,7 @@
traitname = "advanced explosive crafting"
remarks = list("Is this actually a legal chess move...?", "If you hook electronic parts up to a flux capacitor-oh, that makes a lot of sense, actually.", "Radium? What would you use radium f-oh no.", "Why would anyone actually publish this?")
crafting_recipe_types = list(/datum/crafting_recipe/incendiary, /obj/item/grenade/f13/he_grenade, /datum/crafting_recipe/radgrenade, /datum/crafting_recipe/empgrenade, /datum/crafting_recipe/incendiaryrocket, /datum/crafting_recipe/strongrocket, /datum/crafting_recipe/frag_shrapnel, /datum/crafting_recipe/stinger, /datum/crafting_recipe/flashbang,
/datum/crafting_recipe/smokebomb, /datum/crafting_recipe/a40mm, /datum/crafting_recipe/a40mm_box, /datum/crafting_recipe/rocket_base, /datum/crafting_recipe/weakrocket)
/datum/crafting_recipe/smokebomb, /datum/crafting_recipe/a40mmHE, /datum/crafting_recipe/a40mmHE_box, /datum/crafting_recipe/a40mmHEDP, /datum/crafting_recipe/a40mmHEDP_box, /datum/crafting_recipe/a40mmS, /datum/crafting_recipe/a40mmS_box, /datum/crafting_recipe/a40mmCS, /datum/crafting_recipe/a40mmCS_box, /datum/crafting_recipe/a40mmM, /datum/crafting_recipe/a40mmM_box, /datum/crafting_recipe/a40mmF, /datum/crafting_recipe/a40mmF_box, /datum/crafting_recipe/a40mmI, /datum/crafting_recipe/a40mmI_box, /datum/crafting_recipe/rocket_base, /datum/crafting_recipe/weakrocket)

/obj/item/book/granter/trait/gunslinger
name = "Tycho: Life of a Lawman"
Expand Down
3 changes: 2 additions & 1 deletion code/modules/jobs/job_types/legion.dm
Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,8 @@ Weapons Lever shotgun, Grease gun, Repeater carbines, Revolvers, simple guns al
name = "Loud Prime Decanus"
suit_store = /obj/item/gun/ballistic/revolver/grenadelauncher
backpack_contents = list(
/obj/item/ammo_box/a40mm = 2,
/obj/item/ammo_box/a40mmHE = 1,
/obj/item/ammo_box/a40mmHEDP = 1,
/obj/item/gun/ballistic/revolver/m29 = 1,
/obj/item/ammo_box/m44 = 3,
/obj/item/grenade/f13/frag = 2,
Expand Down
46 changes: 44 additions & 2 deletions code/modules/projectiles/ammunition/ballistic/rifle.dm
Original file line number Diff line number Diff line change
Expand Up @@ -72,12 +72,54 @@
projectile_type = /obj/item/projectile/bullet/m5mm/shock

// 40mm (Grenade Launcher)
/obj/item/ammo_casing/a40mm
/obj/item/ammo_casing/a40mmHE
name = "40mm HE shell"
desc = "A cased high explosive grenade that can only be activated once fired out of a grenade launcher."
caliber = "40mm"
icon_state = "40mmHE"
projectile_type = /obj/item/projectile/bullet/a40mm
projectile_type = /obj/item/projectile/bullet/rocket/a40mmHE

/obj/item/ammo_casing/a40mmCS
name = "40mm CS shell"
desc = "A thin, cased tear gas grenade. Only activates once it impacts the ground at high speed."
caliber = "40mmg"
icon_state = "40mmTG"
projectile_type = /obj/item/projectile/bullet/a40mmCS

/obj/item/ammo_casing/a40mmS
name = "40mm Smoke shell"
desc = "A thin, cased tear gas grenade. Only activates once it impacts the ground at high speed."
caliber = "40mmg"
icon_state = "40mmTG"
projectile_type = /obj/item/projectile/bullet/a40mmS

/obj/item/ammo_casing/a40mmHEDP
name = "40mm HEDP shell"
desc = "A cased high explosive grenade that can only be activated once fired out of a grenade launcher."
caliber = "40mm"
icon_state = "40mmHE"
projectile_type = /obj/item/projectile/bullet/rocket/a40mmHEDP

/obj/item/ammo_casing/a40mmM
name = "40mm METAL shell"
desc = "A cased high explosive grenade that can only be activated once fired out of a grenade launcher."
caliber = "40mm"
icon_state = "40mmHE"
projectile_type = /obj/item/projectile/bullet/rocket/a40mmM

/obj/item/ammo_casing/a40mmF
name = "40mm FLASH shell"
desc = "A cased high explosive grenade that can only be activated once fired out of a grenade launcher."
caliber = "40mm"
icon_state = "40mmHE"
projectile_type = /obj/item/projectile/bullet/rocket/a40mmF

/obj/item/ammo_casing/a40mmI
name = "40mm INCENDARY shell"
desc = "A cased high explosive grenade that can only be activated once fired out of a grenade launcher."
caliber = "40mm"
icon_state = "40mmHE"
projectile_type = /obj/item/projectile/bullet/rocket/a40mmI

// 2mm EC
/obj/item/ammo_casing/c2mm
Expand Down
Loading
Loading