adds new bruiser ammo, modifies old bruiser ammo, makes ammo heavier (#15171)

This commit is contained in:
anconfuzedrock
2022-11-27 12:43:52 -05:00
committed by GitHub
parent c586d4eec5
commit c980ce8a32
9 changed files with 142 additions and 15 deletions
@@ -24,7 +24,7 @@
var/obj/item/projectile/original_projectile
var/heading = SOUTH
var/range = OVERMAP_PROJECTILE_RANGE_MEDIUM
var/mob_carry_size = MOB_LARGE //How large a mob has to be to carry the shell
//Cookoff variables.
var/cookoff_devastation = 0
var/cookoff_heavy = 2
@@ -65,7 +65,7 @@
if(ishuman(user))
var/mob/living/carbon/human/H = user
var/datum/species/S = H.species
if(S.mob_size >= MOB_LARGE || S.resist_mod >= 10 || user.status_flags & GODMODE)
if(S.mob_size >= mob_carry_size || S.resist_mod >= 10 || user.status_flags & GODMODE)
visible_message(SPAN_NOTICE("[user] tightens their grip on [src] and starts heaving..."))
if(do_after(user, 1 SECONDS))
visible_message(SPAN_NOTICE("[user] heaves \the [src] up!"))
@@ -172,7 +172,7 @@
var/obj/effect/overmap/start_object = map_sectors["[new_z]"]
if(!start_object)
return FALSE
var/obj/effect/overmap/projectile/P = new(null, start_object.x, start_object.y)
P.name = name_override ? name_override : name
P.desc = desc
@@ -6,8 +6,9 @@
icon_state = "weapon_base"
max_ammo = 1
projectile_type = /obj/item/projectile/ship_ammo/bruiser
caliber = SHIP_CALIBER_135MM
caliber = SHIP_CALIBER_178MM
screenshake_type = SHIP_GUN_SCREENSHAKE_SCREEN
load_time = 4 SECONDS
/obj/machinery/ammunition_loader/bruiser
name = "bruiser ammunition loader"
@@ -21,15 +22,19 @@
icon_state = "shell_canister"
w_class = ITEMSIZE_LARGE
impact_type = SHIP_AMMO_IMPACT_FMJ
ammunition_flags = null
caliber = SHIP_CALIBER_135MM
ammunition_flags = SHIP_AMMO_FLAG_VERY_HEAVY
mob_carry_size = 10 //unathi, dionae and all vaurca can lift these bad boys up.
caliber = SHIP_CALIBER_178MM
burst = 11
cookoff_heavy = 0
overmap_icon_state = "flak"
overmap_icon_state = "cannon_salvo"
/obj/item/ship_ammunition/bruiser/get_speed()
return 35
/obj/item/ship_ammunition/bruiser/real/get_speed()
return 25
/obj/item/ship_ammunition/bruiser/flechette
name = "bruiser beehive shell"
name_override = "flechette burst"
@@ -38,6 +43,58 @@
burst = 9
projectile_type_override = /obj/item/projectile/ship_ammo/bruiser/flechette
/obj/item/ship_ammunition/bruiser/he
name = "bruiser explosive shell"
name_override = "explosive shell"
desc = "A rough shell that should fit in a bruiser cannon. This one is filled with makeshift explosives."
icon_state = "shell_he"
impact_type = SHIP_AMMO_IMPACT_HE
ammunition_flags = SHIP_AMMO_FLAG_INFLAMMABLE|SHIP_AMMO_FLAG_VERY_HEAVY
burst = 0
cookoff_heavy = 1
overmap_icon_state = "cannon_heavy"
projectile_type_override = /obj/item/projectile/ship_ammo/bruiser/he
/obj/item/ship_ammunition/bruiser/real/he
name = "bruiser explosive shell"
name_override = "explosive shell"
desc = "An expensive shell actually designed for a bruiser cannon. This one is HE."
icon_state = "shell_he_real"
impact_type = SHIP_AMMO_IMPACT_HE
ammunition_flags = SHIP_AMMO_FLAG_INFLAMMABLE|SHIP_AMMO_FLAG_VERY_HEAVY
burst = 0
cookoff_heavy = 2
overmap_icon_state = "cannon_heavy"
projectile_type_override = /obj/item/projectile/ship_ammo/bruiser/real/he
/obj/item/ship_ammunition/bruiser/real/ap
name = "bruiser armor-piercing shell"
name_override = "armor-piercing shell"
desc = "An expensive shell actually designed for a bruiser cannon. This one is AP."
icon_state = "shell_ap_real"
impact_type = SHIP_AMMO_IMPACT_AP
ammunition_flags = SHIP_AMMO_FLAG_INFLAMMABLE|SHIP_AMMO_FLAG_VERY_HEAVY
burst = 0
cookoff_heavy = 2
overmap_icon_state = "cannon_heavy"
projectile_type_override = /obj/item/projectile/ship_ammo/bruiser/real/ap
/obj/item/ship_ammunition/bruiser/real/canister
name = "bruiser canister shell"
name_override = "canister shot"
desc = "An expensive shell actually designed for a bruiser cannon. This bursts into many small pellets."
icon_state = "shell_canister_real"
burst = 23
projectile_type_override = /obj/item/projectile/ship_ammo/bruiser/real/canister
/obj/item/ship_ammunition/bruiser/real/beehive
name = "bruiser beehive shell"
name_override = "slugger shot"
desc = "An expensive shell actually designed for a bruiser cannon. Very popular among sinta; this shell bursts into many slugger projectiles that punch through the hull with less mass, but more force."
icon_state = "shell_flechette_real"
burst = 9
projectile_type_override = /obj/item/projectile/ship_ammo/bruiser/real/beehive
/obj/item/projectile/ship_ammo/bruiser
name = "canister shot pellet"
icon_state = "small"
@@ -50,4 +107,64 @@
icon_state = "small_burst"
damage = 20
armor_penetration = 50
penetrating = 5
penetrating = 5
embed = TRUE
embed_chance = 40
shrapnel_type = /obj/item/material/shard/shrapnel/flechette
/obj/item/projectile/ship_ammo/bruiser/he
name = "178mm shell"
icon_state = "heavy"
damage = 150
armor_penetration = 75
penetrating = 0
/obj/item/projectile/ship_ammo/bruiser/he/on_hit(atom/target, blocked, def_zone, is_landmark_hit)
. = ..()
explosion(target, 0, 2, 4)
/obj/item/projectile/ship_ammo/bruiser/real/he
name = "178mm shell"
icon_state = "heavy"
damage = 350
armor_penetration = 125
penetrating = 0
/obj/item/projectile/ship_ammo/bruiser/real/ap
name = "178mm shell"
icon_state = "heavy"
damage = 250
armor_penetration = 250
penetrating = 2
/obj/item/projectile/ship_ammo/bruiser/real/canister
damage = 40
armor_penetration = 40
penetrating = 2
stun = 2
/obj/item/projectile/ship_ammo/bruiser/real/beehive //comparable to slugger projectiles but slightly stronger
name = "massive slug"
icon_state = "heavy"
damage = 65
armor_penetration = 10
penetrating = 6
stun = 4
weaken = 4
maiming = TRUE
maim_rate = 3
maim_type = DROPLIMB_BLUNT
anti_materiel_potential = 2
/obj/item/projectile/ship_ammo/bruiser/real/on_hit(atom/target, blocked, def_zone, is_landmark_hit)
. = ..()
if(ammo.impact_type == SHIP_AMMO_IMPACT_HE)
explosion(target, 1, 3, 6)
if(ammo.impact_type == SHIP_AMMO_IMPACT_AP)
explosion(target, 0, 2, 4)
/obj/item/projectile/ship_ammo/bruiser/real/beehive/on_hit(atom/movable/target, blocked, def_zone, is_landmark_hit)
if(istype(target))
var/throwdir = dir
target.throw_at(get_edge_target_turf(target, throwdir),9,8)
return 1