diff --git a/code/__defines/ship_weapons.dm b/code/__defines/ship_weapons.dm index ba6acb176dd..3ad321b2840 100644 --- a/code/__defines/ship_weapons.dm +++ b/code/__defines/ship_weapons.dm @@ -3,7 +3,7 @@ #define SHIP_CALIBER_40MM "40mm" #define SHIP_CALIBER_90MM "90mm" #define SHIP_CALIBER_ZTA "zero-point warp beam" -#define SHIP_CALIBER_135MM "135mm" +#define SHIP_CALIBER_178MM "178mm" #define SHIP_GUN_FIRING_SUCCESSFUL "firing sequence completed" #define SHIP_GUN_ERROR_NO_AMMO "no ammunition loaded" diff --git a/code/modules/overmap/ship_weaponry/_ship_ammunition.dm b/code/modules/overmap/ship_weaponry/_ship_ammunition.dm index 1551d28a860..72bfd5fd539 100644 --- a/code/modules/overmap/ship_weaponry/_ship_ammunition.dm +++ b/code/modules/overmap/ship_weaponry/_ship_ammunition.dm @@ -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 diff --git a/code/modules/overmap/ship_weaponry/weaponry/bruiser.dm b/code/modules/overmap/ship_weaponry/weaponry/bruiser.dm index 1cd54f24296..41725b9d4d7 100644 --- a/code/modules/overmap/ship_weaponry/weaponry/bruiser.dm +++ b/code/modules/overmap/ship_weaponry/weaponry/bruiser.dm @@ -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 \ No newline at end of file + 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 \ No newline at end of file diff --git a/html/changelogs/anconfuzedrock-bruiserammo.yml b/html/changelogs/anconfuzedrock-bruiserammo.yml new file mode 100644 index 00000000000..ceee2c2bdb2 --- /dev/null +++ b/html/changelogs/anconfuzedrock-bruiserammo.yml @@ -0,0 +1,9 @@ + +author: anconfuzedrock + +delete-after: True + +changes: + - rscadd: "Five new ammo types for the unathi bruiser cannon ship weapon-the Izharshan freighter gets one cheap HE shell in the safe, and advanced versions of existing ammo types alongside AP are admin spawnable.." + - tweak: "Ship ammo can now be made different weights that can be carried with difficulty by larger or smaller species." + - tweak: "The bruiser now shoots 178mm shells that require you to be larger than a human to carry by hand, and even then require more effort." diff --git a/icons/obj/guns/ship/overmap_projectiles.dmi b/icons/obj/guns/ship/overmap_projectiles.dmi index 8d821c258cc..eda978ef6cb 100644 Binary files a/icons/obj/guns/ship/overmap_projectiles.dmi and b/icons/obj/guns/ship/overmap_projectiles.dmi differ diff --git a/icons/obj/guns/ship/ship_ammo_midshell.dmi b/icons/obj/guns/ship/ship_ammo_midshell.dmi index 106ace9409f..26b520cab34 100644 Binary files a/icons/obj/guns/ship/ship_ammo_midshell.dmi and b/icons/obj/guns/ship/ship_ammo_midshell.dmi differ diff --git a/icons/obj/machines/ship_guns/bruiser.dmi b/icons/obj/machines/ship_guns/bruiser.dmi index e541cd6089e..ec0ec10c364 100644 Binary files a/icons/obj/machines/ship_guns/bruiser.dmi and b/icons/obj/machines/ship_guns/bruiser.dmi differ diff --git a/maps/away/away_site/unathi_pirate/unathi_pirate_izharshan.dm b/maps/away/away_site/unathi_pirate/unathi_pirate_izharshan.dm index 01bfe7d5fcd..1fc10e97589 100644 --- a/maps/away/away_site/unathi_pirate/unathi_pirate_izharshan.dm +++ b/maps/away/away_site/unathi_pirate/unathi_pirate_izharshan.dm @@ -38,6 +38,7 @@ /obj/item/storage/secure/safe/unathi_pirate_izharshan starts_with = list( + /obj/item/ship_ammunition/bruiser/he = 1, /obj/item/clothing/accessory/badge/passport/dominia = 1, /obj/item/clothing/accessory/badge/passport/coc = 1, /obj/item/spacecash/c1000 = 1, diff --git a/maps/away/away_site/unathi_pirate/unathi_pirate_izharshan.dmm b/maps/away/away_site/unathi_pirate/unathi_pirate_izharshan.dmm index 09fbef4bc76..a2e34f925dd 100644 --- a/maps/away/away_site/unathi_pirate/unathi_pirate_izharshan.dmm +++ b/maps/away/away_site/unathi_pirate/unathi_pirate_izharshan.dmm @@ -436,6 +436,10 @@ /obj/machinery/atmospherics/pipe/simple/visible, /turf/simulated/floor, /area/shuttle/unathi_pirate_izharshan/helm) +"pb" = ( +/obj/structure/viewport/unathi, +/turf/simulated/floor/shuttle/black, +/area/shuttle/unathi_pirate_izharshan/operations) "pg" = ( /turf/simulated/floor/carpet, /area/shuttle/unathi_pirate_izharshan/helm) @@ -1563,10 +1567,6 @@ /obj/item/clothing/head/pirate, /turf/simulated/floor/tiled/dark, /area/shuttle/unathi_pirate_izharshan/dorms) -"YU" = ( -/obj/structure/viewport/unathi, -/turf/simulated/floor, -/area/shuttle/unathi_pirate_izharshan/operations) "Zi" = ( /obj/structure/table/reinforced/steel, /obj/item/device/radio{ @@ -31568,8 +31568,8 @@ ZU xg Ni fR -fR -YU +pb +yo yo yo yN