Adds Medieval Pirates (and small assault_pod change) (#82392)

## About The Pull Request

(short, slightly outdated video compilation of the pirates)
https://youtu.be/j9BNFzcUSjc

Adds the **MEDIEVAL WARMONGERS** pirate gang, these pirates are focused
on causing chaos directly on the station with the use of melee weaponry
and swarming tactics.
they are not very smart when it comes to using technology, so they crash
in the station in an attempt to dock.

the pirates spawn with the NOGUN trait as they have never used guns
before but have access to dashing and the unbreakable component(small
heal burst upon reaching crit).
Warlord spawns with a better version of hulk(isnt removed upon crit and
can still do stuff while critted) and gigantism mutation by default
because ~~Chad Maximus~~ the other pirates require someone to run to
when stuff like flashbangs, batons or lasers are present. The warlord
spawns with a boarding axe which is a better axe that is good at
destroying things and a meat hook. **there's a total of 5 pirates.**

the pirate shuttle has:
- thermite barrel and 3 large beakers
- single weak claymore
- 3 extra military spears
- 3 kite shields
- 3 heavy bolas
- 4 regular bolas
- a stack of wood
- 2 stacks of mourning poultice (15 uses each)
- one burn medkit

**shuttle was made by striders18, big thanks to him**

![image](https://github.com/tgstation/tgstation/assets/114047053/766d0b96-4487-47d3-b524-70d811ce4d73)


things added:

- the new pirate gang
- a gamberson jumpsuit
- crude armor (good melee and wound protection but lacks on the rest)
- warlord armor (extreme protection at the cost of slowdown)
- a shortsword(bootleg claymore with 30 block chance and goes on belt
instead of back)
- military spear (better at throwing, better wounding, deals blunt
wounds instead of sharp)
- axe with better damage and demolition mod for the warlord
- a var to specify the name of the landing zone destination for the
assaultpod
- an assault pod targeting device item for the medieval shuttle
- a thermite barrel
- kite shields
- new hulk variant that doesnt go away when crit and has tenacity
## Why It's Good For The Game
I always liked the chaotic nature of the russian bounty hunters that
would come from their extra numbers and lack of tools. i thought
something of a similar idea on pirates would be good, a very direct and
scary militia rushing in with sword and faith would create some awesome
scenarios

## Changelog
🆑
add: New heavy weight pirates, medieval warmongers
add: Adds military spear, shortsword, boarding axe, kite shields
add: Adds warlord and crude armor
add: Adds medieval shuttle (made by striders18)
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
This commit is contained in:
uaioy
2024-04-22 21:16:06 -07:00
committed by GitHub
parent 9e7aecaf9e
commit b5fa92d691
41 changed files with 872 additions and 2 deletions
+535
View File
@@ -0,0 +1,535 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/template_noop,
/area/template_noop)
"b" = (
/obj/structure/table/wood,
/obj/item/stack/sheet/mineral/wood/fifty{
pixel_y = 4
},
/turf/open/floor/stone,
/area/shuttle/pirate)
"c" = (
/obj/structure/fake_stairs/wood/directional/east,
/obj/structure/window/reinforced/spawner/directional/north,
/obj/structure/window/reinforced/spawner/directional/south,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
dir = 4
},
/turf/open/floor/stone,
/area/shuttle/pirate)
"d" = (
/obj/structure/fake_stairs/wood/directional/east,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
dir = 4
},
/obj/structure/mineral_door/gold,
/turf/open/floor/stone,
/area/shuttle/pirate)
"e" = (
/obj/structure/window/reinforced/spawner/directional/west,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/spawner/random/trash/botanical_waste,
/obj/effect/spawner/random/trash/garbage,
/obj/effect/mob_spawn/ghost_role/human/pirate/medieval,
/turf/open/floor/plating,
/area/shuttle/pirate)
"f" = (
/obj/structure/window/reinforced/spawner/directional/east,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/spawner/random/trash/garbage,
/turf/open/floor/plating,
/area/shuttle/pirate)
"g" = (
/obj/structure/fans/tiny,
/obj/structure/window/reinforced/spawner/directional/east,
/obj/structure/mineral_door/iron,
/turf/open/floor/plating,
/area/shuttle/pirate)
"h" = (
/obj/structure/table/wood,
/obj/item/spear/military{
pixel_y = 8;
pixel_x = -7
},
/obj/item/spear/military{
pixel_y = 1;
pixel_x = -6
},
/obj/item/spear/military{
pixel_y = -2;
pixel_x = 1
},
/turf/open/floor/stone,
/area/shuttle/pirate)
"j" = (
/obj/item/flashlight/lantern{
light_on = 1
},
/turf/open/floor/stone,
/area/shuttle/pirate)
"k" = (
/obj/structure/table/wood,
/obj/item/restraints/legcuffs/bola/tactical,
/obj/item/restraints/legcuffs/bola/tactical,
/obj/item/restraints/legcuffs/bola/tactical,
/obj/item/restraints/legcuffs/bola,
/obj/item/restraints/legcuffs/bola,
/obj/item/restraints/legcuffs/bola,
/turf/open/floor/stone,
/area/shuttle/pirate)
"l" = (
/obj/structure/fans/tiny,
/obj/structure/mineral_door/iron,
/turf/open/floor/stone,
/area/shuttle/pirate)
"m" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/arrows{
dir = 8
},
/obj/effect/spawner/random/trash/cigbutt,
/obj/effect/spawner/random/trash/botanical_waste,
/obj/effect/mob_spawn/ghost_role/human/pirate/medieval,
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
},
/turf/open/floor/plating,
/area/shuttle/pirate)
"n" = (
/obj/effect/decal/cleanable/vomit/old,
/turf/open/floor/stone,
/area/shuttle/pirate)
"o" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/arrows{
dir = 4
},
/obj/effect/spawner/random/trash/mess,
/obj/effect/spawner/random/trash/garbage,
/obj/effect/mob_spawn/ghost_role/human/pirate/medieval,
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
},
/turf/open/floor/plating,
/area/shuttle/pirate)
"p" = (
/turf/closed/wall/mineral/wood,
/area/shuttle/pirate)
"q" = (
/obj/effect/mob_spawn/ghost_role/human/pirate/medieval/warlord,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
dir = 4
},
/turf/open/floor/stone,
/area/shuttle/pirate)
"r" = (
/obj/structure/window/reinforced/spawner/directional/east,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/spawner/random/trash/garbage,
/obj/effect/mob_spawn/ghost_role/human/pirate/medieval,
/turf/open/floor/plating,
/area/shuttle/pirate)
"s" = (
/obj/structure/fans/tiny,
/obj/structure/window/reinforced/spawner/directional/east,
/obj/docking_port/mobile/pirate{
launch_status = 0;
movement_force = list("KNOCKDOWN"=0,"THROW"=0);
name = "Pirate Ship";
port_direction = 2
},
/obj/docking_port/stationary{
dwidth = 11;
height = 16;
shuttle_id = "pirate_home";
name = "Deep Space";
width = 17
},
/obj/structure/mineral_door/iron,
/turf/open/floor/plating,
/area/shuttle/pirate)
"u" = (
/obj/effect/decal/cleanable/blood/old,
/obj/effect/decal/cleanable/blood/gibs/limb,
/obj/effect/decal/cleanable/blood/gibs/body,
/obj/item/food/meat/slab/human/mutant/zombie,
/obj/item/kitchen/fork,
/turf/open/floor/stone,
/area/shuttle/pirate)
"v" = (
/obj/structure/window/reinforced/spawner/directional/west,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/spawner/random/trash/garbage,
/turf/open/floor/plating,
/area/shuttle/pirate)
"w" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
dir = 4
},
/turf/open/floor/stone,
/area/shuttle/pirate)
"x" = (
/obj/structure/fake_stairs/wood/directional/west,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
dir = 4
},
/obj/structure/mineral_door/gold,
/turf/open/floor/stone,
/area/shuttle/pirate)
"y" = (
/obj/machinery/shuttle_scrambler,
/turf/open/floor/stone,
/area/shuttle/pirate)
"z" = (
/obj/structure/fans/tiny,
/obj/structure/window/reinforced/spawner/directional/west,
/obj/structure/mineral_door/iron,
/turf/open/floor/plating,
/area/shuttle/pirate)
"A" = (
/obj/structure/window/reinforced/spawner/directional/east,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/reagent_containers/cup/glass/bottle/vodka,
/turf/open/floor/plating,
/area/shuttle/pirate)
"C" = (
/obj/machinery/airalarm/directional/west,
/obj/effect/mapping_helpers/airalarm/all_access,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/stone,
/area/shuttle/pirate)
"D" = (
/obj/machinery/piratepad,
/turf/open/floor/stone,
/area/shuttle/pirate)
"E" = (
/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium,
/obj/structure/barricade/wooden/crude,
/turf/open/floor/stone,
/area/shuttle/pirate)
"F" = (
/turf/open/floor/stone,
/area/shuttle/pirate)
"G" = (
/obj/machinery/computer/piratepad_control,
/turf/open/floor/stone,
/area/shuttle/pirate)
"H" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/chair/wood/wings,
/turf/open/floor/stone,
/area/shuttle/pirate)
"I" = (
/obj/structure/fake_stairs/wood/directional/west,
/obj/structure/window/reinforced/spawner/directional/north,
/obj/structure/window/reinforced/spawner/directional/south,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
dir = 4
},
/turf/open/floor/stone,
/area/shuttle/pirate)
"J" = (
/obj/effect/decal/cleanable/blood/gibs/old,
/obj/item/food/burger/human,
/obj/structure/table/wood,
/obj/item/reagent_containers/cup/glass/bottle/rum{
pixel_y = 15;
pixel_x = -4
},
/obj/item/reagent_containers/cup/glass/bottle/rum{
pixel_y = 8;
pixel_x = 8
},
/turf/open/floor/stone,
/area/shuttle/pirate)
"K" = (
/obj/structure/table/wood,
/obj/item/stack/medical/poultice{
pixel_y = 6;
pixel_x = -3
},
/obj/item/stack/medical/poultice{
pixel_y = -3;
pixel_x = 5
},
/obj/item/storage/medkit/fire,
/turf/open/floor/stone,
/area/shuttle/pirate)
"L" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1
},
/turf/open/floor/stone,
/area/shuttle/pirate)
"M" = (
/obj/structure/window/reinforced/spawner/directional/west,
/obj/effect/spawner/random/trash/graffiti,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/spawner/random/trash/garbage,
/turf/open/floor/plating,
/area/shuttle/pirate)
"N" = (
/obj/machinery/computer/shuttle/pirate/drop_pod,
/turf/open/floor/stone,
/area/shuttle/pirate)
"O" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/fermenting_barrel/thermite,
/obj/item/reagent_containers/cup/beaker/large,
/obj/item/reagent_containers/cup/beaker/large,
/obj/item/reagent_containers/cup/beaker/large,
/turf/open/floor/stone,
/area/shuttle/pirate)
"P" = (
/obj/effect/decal/cleanable/glass,
/turf/open/floor/stone,
/area/shuttle/pirate)
"Q" = (
/obj/structure/closet/cabinet,
/obj/item/claymore,
/obj/item/shield/kite,
/obj/item/shield/kite,
/obj/item/shield/kite,
/turf/open/floor/stone,
/area/shuttle/pirate)
"R" = (
/obj/machinery/atmospherics/components/tank/air{
dir = 1
},
/turf/open/floor/stone,
/area/shuttle/pirate)
"S" = (
/obj/structure/frame/computer{
anchored = 1
},
/obj/item/assault_pod/medieval,
/turf/open/floor/stone,
/area/shuttle/pirate)
"T" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
dir = 4
},
/turf/open/floor/stone,
/area/shuttle/pirate)
"U" = (
/obj/machinery/loot_locator,
/turf/open/floor/stone,
/area/shuttle/pirate)
"V" = (
/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium,
/obj/structure/barricade/wooden/crude,
/turf/open/floor/plating,
/area/shuttle/pirate)
"W" = (
/obj/structure/table/wood,
/obj/item/radio/intercom{
pixel_y = 5
},
/turf/open/floor/stone,
/area/shuttle/pirate)
"X" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
dir = 4
},
/obj/structure/table/wood,
/obj/item/bodypart/head/skeleton{
pixel_x = -6
},
/obj/item/bodypart/head/skeleton{
pixel_y = -2;
pixel_x = 5
},
/obj/item/bodypart/head/skeleton{
pixel_x = 1;
pixel_y = 8
},
/turf/open/floor/stone,
/area/shuttle/pirate)
"Y" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/stone,
/area/shuttle/pirate)
"Z" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/flashlight/lantern{
light_on = 1
},
/turf/open/floor/stone,
/area/shuttle/pirate)
(1,1,1) = {"
a
a
p
p
l
p
p
p
a
"}
(2,1,1) = {"
a
a
g
f
o
r
A
s
a
"}
(3,1,1) = {"
a
a
a
a
I
a
a
a
a
"}
(4,1,1) = {"
p
p
p
p
x
p
E
p
a
"}
(5,1,1) = {"
a
E
R
X
T
C
Q
p
p
"}
(6,1,1) = {"
p
p
W
F
T
j
Y
h
E
"}
(7,1,1) = {"
a
E
N
Y
T
Y
F
k
p
"}
(8,1,1) = {"
V
V
S
P
q
L
F
F
l
"}
(9,1,1) = {"
a
E
y
F
w
n
H
b
p
"}
(10,1,1) = {"
p
p
U
F
w
Z
u
K
E
"}
(11,1,1) = {"
a
E
G
D
T
O
J
p
p
"}
(12,1,1) = {"
p
p
p
p
d
p
E
p
a
"}
(13,1,1) = {"
a
a
a
a
c
a
a
a
a
"}
(14,1,1) = {"
a
a
z
M
m
e
v
z
a
"}
(15,1,1) = {"
a
a
p
p
l
p
p
p
a
"}
@@ -112,6 +112,7 @@
/obj/item/spear/explosive,
/obj/item/spear/bonespear,
/obj/item/spear/bamboospear,
/obj/item/spear/military,
)
result = /obj/structure/headpike
category = CAT_ENTERTAINMENT
@@ -144,6 +145,20 @@
result = /obj/structure/headpike/bamboo
category = CAT_ENTERTAINMENT
/datum/crafting_recipe/headpikemilitary
name = "Spike Head (Military)"
time = 6.5 SECONDS
reqs = list(
/obj/item/spear/military = 1,
/obj/item/bodypart/head = 1,
)
parts = list(
/obj/item/bodypart/head = 1,
/obj/item/spear/military = 1,
)
result = /obj/structure/headpike/military
category = CAT_ENTERTAINMENT
/datum/crafting_recipe/guillotine
name = "Guillotine"
result = /obj/structure/guillotine
+18
View File
@@ -277,4 +277,22 @@
TRAIT_STUNIMMUNE,
) // no chunk
/datum/mutation/human/hulk/superhuman
health_req = 0
instability = 0
/// List of traits to add/remove when someone gets this mutation.
mutation_traits = list(
TRAIT_CHUNKYFINGERS,
TRAIT_HULK,
TRAIT_IGNOREDAMAGESLOWDOWN,
TRAIT_NOSOFTCRIT,
TRAIT_NOHARDCRIT,
TRAIT_PUSHIMMUNE,
TRAIT_STUNIMMUNE,
TRAIT_ANALGESIA,
) // fight till your last breath
/datum/mutation/human/hulk/superhuman/on_life(seconds_per_tick, times_fired)
return
#undef HULK_TAILTHROW_STEPS
+4
View File
@@ -29,3 +29,7 @@
/datum/map_template/shuttle/pirate/geode
suffix = "geode"
name = "pirate ship (Lustrous Geode)"
/datum/map_template/shuttle/pirate/medieval
suffix = "medieval"
name = "pirate ship (Siege Pod)"
+10
View File
@@ -86,3 +86,13 @@
tool_behaviour = TOOL_CROWBAR
toolspeed = 1
usesound = 'sound/items/crowbar.ogg'
//boarding axe
/obj/item/fireaxe/boardingaxe
icon_state = "boarding_axe0"
base_icon_state = "boarding_axe"
name = "boarding axe"
desc = "A hulking cleaver that feels like a burden just looking at it. Seems excellent at halving obstacles like windows, airlocks, barricades and people."
force_unwielded = 5
force_wielded = 30
demolition_mod = 3
+9
View File
@@ -99,6 +99,15 @@
max_integrity = 55
w_class = WEIGHT_CLASS_NORMAL
/obj/item/shield/kite
name = "kite shield"
desc = "Protect your internal organs with this almond shaped shield."
icon_state = "kite"
inhand_icon_state = "kite"
custom_materials = list(/datum/material/wood = SHEET_MATERIAL_AMOUNT * 15)
shield_break_sound = 'sound/effects/grillehit.ogg'
max_integrity = 60
/obj/item/shield/roman
name = "\improper Roman shield"
desc = "Bears an inscription on the inside: <i>\"Romanes venio domus\"</i>."
+25
View File
@@ -216,6 +216,31 @@
M.Copy_Parent(user, 100, user.health/2.5, 12, 30)
M.GiveTarget(L)
//MILITARY
/obj/item/spear/military
icon_state = "military_spear0"
base_icon_state = "military_spear0"
icon_prefix = "military_spear"
name = "military Javelin"
desc = "A stick with a seemingly blunt spearhead on its end. Looks like it might break bones easily."
attack_verb_continuous = list("attacks", "pokes", "jabs")
attack_verb_simple = list("attack", "poke", "jab")
throwforce = 30
demolition_mod = 1
wound_bonus = 5
bare_wound_bonus = 25
throw_range = 9
throw_speed = 5
sharpness = NONE // we break bones instead of cutting flesh
/obj/item/spear/military/add_headpike_component()
var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/headpikemilitary)
AddComponent(
/datum/component/slapcrafting,\
slapcraft_recipes = slapcraft_recipe_list,\
)
/*
* Bone Spear
*/
+12
View File
@@ -175,6 +175,18 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
block_chance = 10
resistance_flags = NONE
//bootleg claymore
/obj/item/claymore/shortsword
name = "shortsword"
desc = "A mercenary's sword, chipped and worn from battles long gone. You could say it is a swordsman's shortsword short sword."
icon_state = "shortsword"
inhand_icon_state = "shortsword"
worn_icon_state = "shortsword"
slot_flags = ITEM_SLOT_BELT
force = 20
demolition_mod = 0.75
block_chance = 30
/obj/item/claymore/highlander //ALL COMMENTS MADE REGARDING THIS SWORD MUST BE MADE IN ALL CAPS
desc = "<b><i>THERE CAN BE ONLY ONE, AND IT WILL BE YOU!!!</i></b>\nActivate it in your hand to point to the nearest victim."
obj_flags = CONDUCTS_ELECTRICITY
+4
View File
@@ -17,6 +17,10 @@
icon_state = "headpike-bamboo"
speartype = /obj/item/spear/bamboospear
/obj/structure/headpike/military //for military spears
icon_state = "headpike-military"
speartype = /obj/item/spear/military
/obj/structure/headpike/Initialize(mapload)
. = ..()
if(mapload)
@@ -205,3 +205,25 @@ GLOBAL_LIST_INIT(heavy_pirate_gangs, init_pirate_gangs(is_heavy = TRUE))
response_too_late = "You were not ready then, and now that time has passed. We can only go forward, never back."
response_not_enough = "You have insulted us, but there shall be no feud, only swift justice!"
announcement_color = "purple"
//medieval militia, from OUTER SPACE!
/datum/pirate_gang/medieval
name = "Medieval Warmongers"
is_heavy_threat = TRUE
ship_template_id = "medieval"
ship_name_pool = "medieval_names"
threat_title = "HOMAGE PAYMENT REQUEST"
threat_content = "SALUTATIONS, THIS IS %SHIPNAME AND WE ARE COLLECTING MONEY \
FROM THE VASSALS IN OUR TERRITORY, YOU JUST SO HAPPEN TO BE IN IT TOO!! NORMALLY \
WE SLAUGHTER WEAKLINGS LIKE YOU FOR TRESPASING ON OUR LAND, BUT WE ARE WILLING \
TO WELCOME YOU INTO OUR SPACE IF YOU PAY %PAYOFF AS HOMAGE TO OUR LAW. BE WISE ON YOUR CHOICE!! \
(send message. send message. why message not sent?)."
arrival_announcement = "I FIGURED OUT HOW TO FLY MY SHIP, WE WILL BE DOCKING NEXT TO YOU IN A MINUTE!!"
possible_answers = list("Please don't hurt me.","You are dumb, go larp somewhere else.")
response_received = "THIS WILL SUFFICE, REMEMBER WHO OWNS YOU!!"
response_rejected = "FOOLISH DECISION, I'LL MAKE AN EXAMPLE OUT OF YOUR CARCASS!! (does anyone remember how to pilot our ship?)"
response_too_late = "YOU ARE ALREADY UNDER SIEGE YOU BUFFON, ARE YOU BRAINSICK OR IGNORANT?!!"
response_not_enough = "DO THINK OF ME AS A JESTER? YOU ARE DEAD MEAT!! (i forgot how to fly the ship, tarnation.)"
@@ -148,3 +148,34 @@
glasses = null
suit = /obj/item/clothing/suit/jacket/oversized
head = /obj/item/clothing/head/costume/crown
/datum/outfit/pirate/medieval
name = "Medieval Warmonger"
id = null
glasses = null
uniform = /obj/item/clothing/under/costume/gamberson/military
suit = /obj/item/clothing/suit/armor/vest/military
suit_store = /obj/item/spear/military
back = /obj/item/storage/backpack/satchel/leather
gloves = /obj/item/clothing/gloves/color/brown
head = /obj/item/clothing/head/helmet/military
mask = /obj/item/clothing/mask/balaclava
shoes = /obj/item/clothing/shoes/workboots
belt = /obj/item/claymore/shortsword
l_pocket = /obj/item/flashlight/flare/torch
/datum/outfit/pirate/medieval/warlord
name = "Medieval Warlord"
neck = /obj/item/bedsheet/pirate
suit = /obj/item/clothing/suit/armor/riot/knight/warlord
suit_store = null
back = /obj/item/fireaxe/boardingaxe
gloves = /obj/item/clothing/gloves/combat
head = /obj/item/clothing/head/helmet/knight/warlord
mask = /obj/item/clothing/mask/breath
shoes = /obj/item/clothing/shoes/bronze
belt = /obj/item/gun/magic/hook
l_pocket = /obj/item/tank/internals/emergency_oxygen
r_pocket = /obj/item/flashlight/lantern
@@ -191,3 +191,33 @@
/obj/effect/mob_spawn/ghost_role/human/pirate/lustrous/gunner
rank = "Coruscant"
/obj/effect/mob_spawn/ghost_role/human/pirate/medieval
name = "\improper Improvised sleeper"
desc = "A body bag poked with holes, currently being used as a sleeping bag. Someone seems to be sleeping inside of it."
density = FALSE
you_are_text = "You were a nobody before, until you were given a sword and the opportunity to rise up in ranks. If you put some effort, you can make it big!"
flavour_text = "Raiding some cretins while engaging in bloodsport and violence? what a deal. Stay together and pillage everything!"
icon = 'icons/obj/medical/bodybag.dmi'
icon_state = "bodybag"
fluff_spawn = null
prompt_name = "a medieval warmonger"
outfit = /datum/outfit/pirate/medieval
rank = "Footsoldier"
/obj/effect/mob_spawn/ghost_role/human/pirate/medieval/special(mob/living/carbon/spawned_mob)
. = ..()
if(rank == "Footsoldier")
ADD_TRAIT(spawned_mob, TRAIT_NOGUNS, INNATE_TRAIT)
spawned_mob.AddComponent(/datum/component/unbreakable)
var/datum/action/cooldown/mob_cooldown/dash/dodge = new(spawned_mob)
dodge.Grant(spawned_mob)
/obj/effect/mob_spawn/ghost_role/human/pirate/medieval/warlord
rank = "Warlord"
outfit = /datum/outfit/pirate/medieval/warlord
/obj/effect/mob_spawn/ghost_role/human/pirate/medieval/warlord/special(mob/living/carbon/spawned_mob)
. = ..()
spawned_mob.dna.add_mutation(/datum/mutation/human/hulk/superhuman)
spawned_mob.dna.add_mutation(/datum/mutation/human/gigantism)
@@ -96,6 +96,9 @@
light_color = COLOR_SOFT_RED
possible_destinations = "pirate_away;pirate_home;pirate_custom"
/obj/machinery/computer/shuttle/pirate/drop_pod
possible_destinations = "null"
/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/pirate
name = "pirate shuttle navigation computer"
desc = "Used to designate a precise transit location for the pirate shuttle."
+45
View File
@@ -524,3 +524,48 @@
fire = 65
acid = 40
wound = 15
/obj/item/clothing/head/helmet/military
name = "Crude Helmet"
desc = "A cheaply made kettle helmet with an added faceplate to protect your eyes and mouth."
icon_state = "military"
inhand_icon_state = "knight_helmet"
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
strip_delay = 80
dog_fashion = null
armor_type = /datum/armor/helmet_military
/datum/armor/helmet_military
melee = 45
bullet = 25
laser = 25
energy = 25
bomb = 25
fire = 10
acid = 50
wound = 20
/obj/item/clothing/head/helmet/military/Initialize(mapload)
. = ..()
AddComponent(/datum/component/clothing_fov_visor, FOV_90_DEGREES)
/obj/item/clothing/head/helmet/knight/warlord
name = "golden barbute helmet"
desc = "There is no man behind the helmet, only a terrible thought."
icon_state = "warlord"
inhand_icon_state = null
armor_type = /datum/armor/helmet_warlord
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEMASK|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
slowdown = 0.2
/datum/armor/helmet_warlord
melee = 70
bullet = 60
laser = 70
energy = 70
bomb = 40
fire = 50
acid = 50
wound = 30
+45
View File
@@ -688,3 +688,48 @@
fire = 40
acid = 50
wound = 30
/obj/item/clothing/suit/armor/vest/military
name = "Crude chestplate"
desc = "It may look rough, rusty and battered, but it's also made out of junk and uncomfortable to wear."
icon_state = "military"
inhand_icon_state = "armor"
dog_fashion = null
armor_type = /datum/armor/military
allowed = list(
/obj/item/banner,
/obj/item/claymore/shortsword,
/obj/item/nullrod,
/obj/item/spear,
/obj/item/gun/ballistic/bow
)
/datum/armor/military
melee = 45
bullet = 25
laser = 25
energy = 25
bomb = 25
fire = 10
acid = 50
wound = 20
/obj/item/clothing/suit/armor/riot/knight/warlord
name = "golden plate armor"
desc = "This bulky set of armor is coated with a shiny layer of gold. It seems to almost reflect all light sources."
icon_state = "warlord"
inhand_icon_state = null
armor_type = /datum/armor/armor_warlord
w_class = WEIGHT_CLASS_BULKY
clothing_flags = THICKMATERIAL
slowdown = 0.8
/datum/armor/armor_warlord
melee = 70
bullet = 60
laser = 70
energy = 70
bomb = 40
fire = 50
acid = 50
wound = 30
+14
View File
@@ -428,3 +428,17 @@
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS|HEAD
flags_inv = HIDEGLOVES|HIDESHOES|HIDEEARS|HIDEEYES|HIDEHAIR
/obj/item/clothing/under/costume/gamberson
name = "re-enactor's Gamberson"
desc = "A colorful set of clothes made to look like a medieval gamberson."
icon_state = "gamberson"
inhand_icon_state = null
female_sprite_flags = NO_FEMALE_UNIFORM
can_adjust = FALSE
/obj/item/clothing/under/costume/gamberson/military
name = "swordsman's Gamberson"
desc = "A padded medieval gamberson. Has enough woolen layers to dull a strike from any small weapon."
armor_type = /datum/armor/clothing_under/rank_security
has_sensor = NO_SENSORS
@@ -163,3 +163,13 @@
/obj/structure/fermenting_barrel/gunpowder/Initialize(mapload)
. = ..()
reagents.add_reagent(/datum/reagent/gunpowder, 500)
/// Medieval pirates can have a barrel as a treat
/obj/structure/fermenting_barrel/thermite
name = "thermite barrel"
desc = "A large wooden barrel for holding thermite. Use this to make a big flipping hole on walls."
can_open = FALSE
/obj/structure/fermenting_barrel/thermite/Initialize(mapload)
. = ..()
reagents.add_reagent(/datum/reagent/thermite, 500)
+23 -2
View File
@@ -28,6 +28,7 @@
var/width = 7
var/height = 7
var/lz_dir = 1
var/lzname = "assault_pod"
/obj/item/assault_pod/attack_self(mob/living/user)
@@ -45,8 +46,8 @@
return
var/turf/T = pick(turfs)
var/obj/docking_port/stationary/landing_zone = new /obj/docking_port/stationary(T)
landing_zone.shuttle_id = "assault_pod([REF(src)])"
landing_zone.port_destinations = "assault_pod([REF(src)])"
landing_zone.shuttle_id = "[lzname]([REF(src)])"
landing_zone.port_destinations = "[lzname]([REF(src)])"
landing_zone.name = "Landing Zone"
landing_zone.dwidth = dwidth
landing_zone.dheight = dheight
@@ -61,3 +62,23 @@
to_chat(user, span_notice("Landing zone set."))
qdel(src)
/obj/item/assault_pod/medieval //for the medieval pirates
name = "Shuttle placement designator"
icon = 'icons/obj/scrolls.dmi'
icon_state = "blueprints"
inhand_icon_state = null
desc = "A map of the station used to select where you want to land your shuttle."
shuttle_id = "pirate"
dwidth = 1
dheight = 1
width = 15
height = 9
lzname = "pirate"
/obj/item/assault_pod/medieval/Initialize(mapload)
. = ..()
var/counter = length(SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/computer/shuttle/pirate))
if(counter != 1)
shuttle_id = "[shuttle_id]_[counter]"
lzname = "[lzname] [counter]"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1005 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

+17
View File
@@ -237,5 +237,22 @@
"Mass of Fermenting Dregs",
"Bloody Valentine",
"Wild Nothing"
],
"medieval_names":[
"Head Reaper",
"The Lords Judgement",
"The Judgement",
"Peasant Smiter",
"Wicked Ravager",
"Sheep Reaver",
"Never-ending Crusade",
"Locus Invicta",
"Memento Morieris",
"God Conqueror",
"Omnium Contra Omnes",
"Aries Duo",
"Dark Ages Bringer",
"Merciless Barricade",
"Murder Mcmurderface"
]
}