From e054ad1cf6b203c4392630697b5920074ce049f3 Mon Sep 17 00:00:00 2001 From: TheDanseMacabre <57339900+TheDanseMacabre@users.noreply.github.com> Date: Sat, 3 Jun 2023 06:23:06 -0400 Subject: [PATCH] Freebooter Ship (#16353) * f * adw * awd * the abomination * daw * dwa * adw * wda * awd * Sneed! * s * swa * wad * w * wda * wd * s * wd * adw * daw * awd * adw * adw * adw * adw * adw * dwa * fixes * awd * adw * wah * awd * d --------- Co-authored-by: DanseMacabre --- aurorastation.dme | 3 + code/__defines/ship_weapons.dm | 2 + code/game/objects/random/random.dm | 27 + .../overmap/ship_weaponry/weaponry/blaster.dm | 40 + html/changelogs/dansemacabre-freebooter.yml | 41 + icons/obj/guns/ship/physical_projectiles.dmi | Bin 7195 -> 7883 bytes icons/obj/guns/ship/ship_ammo_blaster.dmi | Bin 0 -> 384 bytes icons/obj/machinery/ship_guns/blaster.dmi | Bin 0 -> 6257 bytes maps/away/ships/freebooter/freebooter_ship.dm | 167 + .../away/ships/freebooter/freebooter_ship.dmm | 75644 ++++++++++++++++ .../freebooter/freebooter_ship_ghostroles.dm | 82 + 11 files changed, 76006 insertions(+) create mode 100644 code/modules/overmap/ship_weaponry/weaponry/blaster.dm create mode 100644 html/changelogs/dansemacabre-freebooter.yml create mode 100644 icons/obj/guns/ship/ship_ammo_blaster.dmi create mode 100644 icons/obj/machinery/ship_guns/blaster.dmi create mode 100644 maps/away/ships/freebooter/freebooter_ship.dm create mode 100644 maps/away/ships/freebooter/freebooter_ship.dmm create mode 100644 maps/away/ships/freebooter/freebooter_ship_ghostroles.dm diff --git a/aurorastation.dme b/aurorastation.dme index 06a41f7afd0..17944ff8dde 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -2718,6 +2718,7 @@ #include "code\modules\overmap\ship_weaponry\_ship_ammunition.dm" #include "code\modules\overmap\ship_weaponry\_ship_gun.dm" #include "code\modules\overmap\ship_weaponry\projectiles\_overmap_projectiles.dm" +#include "code\modules\overmap\ship_weaponry\weaponry\blaster.dm" #include "code\modules\overmap\ship_weaponry\weaponry\bruiser.dm" #include "code\modules\overmap\ship_weaponry\weaponry\coilgun.dm" #include "code\modules\overmap\ship_weaponry\weaponry\francisca.dm" @@ -3344,6 +3345,8 @@ #include "maps\away\ships\einstein\ee_spy_ship_ghostroles.dm" #include "maps\away\ships\elyra\elyra_strike_craft.dm" #include "maps\away\ships\elyra\elyra_strike_craft_ghostroles.dm" +#include "maps\away\ships\freebooter\freebooter_ship.dm" +#include "maps\away\ships\freebooter\freebooter_ship_ghostroles.dm" #include "maps\away\ships\hegemony\hegemony_corvette\hegemony_corvette.dm" #include "maps\away\ships\hegemony\hegemony_corvette\hegemony_corvette_areas.dm" #include "maps\away\ships\hegemony\hegemony_corvette\hegemony_ghostroles.dm" diff --git a/code/__defines/ship_weapons.dm b/code/__defines/ship_weapons.dm index 9f8a4c5118e..29bec771f1e 100644 --- a/code/__defines/ship_weapons.dm +++ b/code/__defines/ship_weapons.dm @@ -6,6 +6,7 @@ #define SHIP_CALIBER_178MM "178mm" #define SHIP_CALIBER_COILGUN "tungsten rod" #define SHIP_CALIBER_200MM "200mm" +#define SHIP_CALIBER_BLASTER "blaster charge" #define SHIP_GUN_FIRING_SUCCESSFUL "firing sequence completed" #define SHIP_GUN_ERROR_NO_AMMO "no ammunition loaded" @@ -25,6 +26,7 @@ #define SHIP_AMMO_IMPACT_BUNKERBUSTER "bunker-buster" #define SHIP_AMMO_IMPACT_PLASMA "plasma" #define SHIP_AMMO_IMPACT_ZTA "zero-point warp beam" +#define SHIP_AMMO_IMPACT_BLASTER "blaster charge" #define FIRING_EFFECT_FLAG_THROW_MOBS 1 #define FIRING_EFFECT_FLAG_EXTREMELY_LOUD 2 //Play the heavy firing sound to all mobs on connected zlevels. diff --git a/code/game/objects/random/random.dm b/code/game/objects/random/random.dm index 6706427ce3c..5926f73a733 100644 --- a/code/game/objects/random/random.dm +++ b/code/game/objects/random/random.dm @@ -2121,3 +2121,30 @@ /obj/item/gun/projectile/deagle, /obj/item/gun/custom_ka/frame01/illegal ) + + +/obj/random/voidsuit/freebooter + name = "random freebooter voidsuit" + suitmap = list( + /obj/item/clothing/suit/space/void/engineering = /obj/item/clothing/head/helmet/space/void/engineering, + /obj/item/clothing/suit/space/void/mining = /obj/item/clothing/head/helmet/space/void/mining, + /obj/item/clothing/suit/space/void/merc = /obj/item/clothing/head/helmet/space/void/merc, + /obj/item/clothing/suit/space/void/freelancer = /obj/item/clothing/head/helmet/space/void/freelancer, + /obj/item/rig/industrial, + /obj/item/rig/eva, + /obj/item/rig/hazard, + /obj/item/clothing/suit/space/syndicate/black/red = /obj/item/clothing/head/helmet/space/syndicate/black/red, + /obj/item/clothing/suit/space/syndicate/black = /obj/item/clothing/head/helmet/space/syndicate/black + ) + problist = list( + /obj/item/clothing/suit/space/void/engineering = 3, + /obj/item/clothing/suit/space/void/mining = 3, + /obj/item/clothing/suit/space/void/merc = 1, + /obj/item/clothing/suit/space/void/freelancer = 1, + /obj/item/rig/industrial = 2, + /obj/item/rig/hazard = 1, + /obj/item/rig/eva = 2, + /obj/item/clothing/suit/space/syndicate/black = 1, + /obj/item/clothing/suit/space/syndicate/black/red = 1 + ) + has_postspawn = TRUE \ No newline at end of file diff --git a/code/modules/overmap/ship_weaponry/weaponry/blaster.dm b/code/modules/overmap/ship_weaponry/weaponry/blaster.dm new file mode 100644 index 00000000000..fc4b22f5071 --- /dev/null +++ b/code/modules/overmap/ship_weaponry/weaponry/blaster.dm @@ -0,0 +1,40 @@ +/obj/machinery/ship_weapon/blaster + name = "HI-M96 mining blaster" + desc = "An old, but functional, Hephaestus Industries Model 2396 mining blaster intended, in theory, to smash apart rocks and other mineral sites in order to extract their resources more easily. This particular HI-M96 has been field-modified to remove the normal safety limits on detonation range and can be used as a weapon if one is so inclined." + desc_extended = "Originally produced during the waning years of Solarian hegemony over much of the Orion Spur, the Model 2396 remains, despite its age, a very common piece of mining equipment in remote or underdeveloped areas of the Spur such as the former Solarian Frontier Sectors where newer equipment is either too rare to use widely. Threats from pirates and privateers have driven miners and independent merchants in these areas to long rely on field-modified M96s as improvised ship-to-ship artillery pieces as their mining charges are perfectly capable of ripping through hulls as effectively as they rip through rock. It is, however, awkward and kludgy to aim due to its nature as an improvised weapon and most discard the M96 when more modern -- or practical -- weaponry is acquired." + icon = 'icons/obj/machinery/ship_guns/blaster.dmi' + icon_state = "weapon_base" + projectile_type = /obj/item/projectile/ship_ammo/blaster + + heavy_firing_sound = 'sound/weapons/railgun.ogg' + firing_effects = FIRING_EFFECT_FLAG_EXTREMELY_LOUD + screenshake_type = SHIP_GUN_SCREENSHAKE_ALL_MOBS + caliber = SHIP_CALIBER_BLASTER + +/obj/item/ship_ammunition/blaster + name = "mining blaster charge" + name_override = "mining blaster charge" + desc = "A single-use charge for a mining blaster." + icon = 'icons/obj/guns/ship/ship_ammo_blaster.dmi' + icon_state = "blaster_charge" + caliber = SHIP_CALIBER_BLASTER + overmap_icon_state = "med_laser" + impact_type = SHIP_AMMO_IMPACT_BLASTER + +/obj/item/projectile/ship_ammo/blaster + name = "blaster charge" + icon_state = "blaster" + damage = 10000 + armor_penetration = 1000 + penetrating = 1 + +/obj/item/projectile/ship_ammo/blaster/on_hit(atom/target, blocked, def_zone, is_landmark_hit) + . = ..() + if(ismob(target)) + var/mob/M = target + M.visible_message(SPAN_DANGER("\The [src] disintegrates [M]'s chest and blasts them into pieces!")) + if(isturf(target) || isobj(target)) + explosion(target, 2, 5, 7) + +/obj/machinery/ammunition_loader/blaster + name = "mining blaster loader" \ No newline at end of file diff --git a/html/changelogs/dansemacabre-freebooter.yml b/html/changelogs/dansemacabre-freebooter.yml new file mode 100644 index 00000000000..68e05fabbcd --- /dev/null +++ b/html/changelogs/dansemacabre-freebooter.yml @@ -0,0 +1,41 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: TheDanseMacabre + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added a freebooter third party ship, similar to the tramp freighter but more focused on illegal things." diff --git a/icons/obj/guns/ship/physical_projectiles.dmi b/icons/obj/guns/ship/physical_projectiles.dmi index a41b44d3d044e1f398e8b6ec60ce0f52a56cc5f7..62ecc91e2ed5f516e5c09ef76f5dc49dc70850b3 100644 GIT binary patch literal 7883 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 Uuw#nn{_ioCnv%9+odO*BKSWHnzyJUM literal 7195 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 diff --git a/icons/obj/guns/ship/ship_ammo_blaster.dmi b/icons/obj/guns/ship/ship_ammo_blaster.dmi new file mode 100644 index 0000000000000000000000000000000000000000..acd5db91eb1fc5983456cf4f2f4123c17ca8c88a GIT binary patch literal 384 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvi2$DvS0HVqtvE5)Mu>%Bx`4o; zh0)g)6~BM~Ua2A=50qmp3GxeOaCmkj4ag~~3W+FjNi9w;$}A|!%+F(BsF)KRR!~&> z{Y!Ac$FEPcymhtCojD)8A=Kca@q@?*{We@sk~9cHng+bSatIX35~=PM`wmjnK7FyQCoY*ubmBN*%>m<${sXWDSr`Y z`wUMP#}JK)M=u!i9Wvlyy4~zR5j{JXB z)8=Y?z24+|*W9PnsZ8N!_NL>GLVXf>O&Q`Jw{RRfZ*l8)dxnR;kXJ*$URsf!@$Dzopr0KaFG@&Et; literal 0 HcmV?d00001 diff --git a/icons/obj/machinery/ship_guns/blaster.dmi b/icons/obj/machinery/ship_guns/blaster.dmi new file mode 100644 index 0000000000000000000000000000000000000000..ed3239292ad4098cf5b91b1459e8a47ed8f72df7 GIT binary patch literal 6257 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