Skip to content
Open
Show file tree
Hide file tree
Changes from 14 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion code/modules/research/designs/weapon_designs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,9 @@
name = "Telescopic Riot Shield"
desc = "An advanced riot shield made of lightweight materials that collapses for easy storage."
id = "tele_shield"
build_type = PROTOLATHE | AWAY_LATHE
// DOPPLER EDIT CHANGE START - removes this design from any player accessible lathe in favor of a modularly added shield gauntlet
build_type = null // was: build_type = PROTOLATHE | AWAY_LATHE
// DOPPLER EDIT CHANGE END
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 2, /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, /datum/material/silver =SMALL_MATERIAL_AMOUNT * 3, /datum/material/titanium =SMALL_MATERIAL_AMOUNT * 2)
build_path = /obj/item/shield/riot/tele
category = list(
Expand Down
1 change: 1 addition & 0 deletions code/modules/research/techweb/nodes/security_nodes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
"ballistic_shield",
"handcuffs_s",
"bola_energy",
"platillo", // DOPPLER EDIT ADDITION - makes shield gauntlets recipe accessible
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
announce_channels = list(RADIO_CHANNEL_SECURITY)
Expand Down
98 changes: 98 additions & 0 deletions modular_doppler/modular_cosmetics/code/hands/special.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,101 @@
icon_state = "janitor_doppler"
worn_icon = 'modular_doppler/modular_cosmetics/icons/mob/hands/gloves.dmi'
inhand_icon_state = null


/*
* a gauntlet shield meant to replace the telescopic riot shield
*/

/obj/item/clothing/gloves/platillo //instead of being a backpack riot shield, it's a glove with much more modest block
name = "\improper PA-4N Platillo shield gauntlets" //"little plate"
desc = "An armored gauntlet augmented with a thick buckler of plastitanium, from which it takes its officially designated name 'platillo'. \
Meant primarily for melee combatants to wield two handed weapons without encumbrance, the light coverage fares poorly under fire."
icon = 'modular_doppler/modular_cosmetics/icons/obj/hands/gloves.dmi'
icon_state = "platillo"
worn_icon = 'modular_doppler/modular_cosmetics/icons/mob/hands/gloves.dmi'
worn_icon_state = "platillo"
armor_type = /datum/armor/platillo
block_chance = 35
block_sound = 'sound/items/weapons/block_shield.ogg'
body_parts_covered = HANDS | ARMS
max_integrity = 75
integrity_failure = 0.6 // higher than usual to ensure it can be repaired sooner
repairable_by = /obj/item/stack/sheet/mineral/titanium
var/break_sound = 'sound/effects/bang.ogg'

///nullifies block_chance if a shield is held
/obj/item/clothing/gloves/platillo/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text, final_block_chance, damage, attack_type, damage_type)
var/effective_block_chance = final_block_chance
for(var/obj/item/shield/held_shield in owner.held_items) //since only a shield would block these gauntlets in theory
if(held_shield.block_chance > 0)
effective_block_chance -= src.block_chance
return
//reproduces some code from shields. the bonuses are lower than a real shield because of the other advantages these have as gloves.
if(attack_type == THROWN_PROJECTILE_ATTACK)
effective_block_chance += 25
if(attack_type == LEAP_ATTACK)
effective_block_chance += 25
if(attack_type == OVERWHELMING_ATTACK)
effective_block_chance -= 25
final_block_chance = clamp(effective_block_chance, 0, 100)
. = ..()
if(.)
on_shield_block(owner, hitby, attack_text, damage, attack_type, damage_type)

//more reproduced shield code, this handles taking damage on block as shields do.
/obj/item/clothing/gloves/platillo/proc/on_shield_block(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", damage = 0, attack_type = MELEE_ATTACK, damage_type = BRUTE)
if(damage_type != BRUTE && damage_type != BURN)
return
var/penetration = 0
var/armor_flag = MELEE
if(isprojectile(hitby))
var/obj/projectile/bang_bang = hitby
armor_flag = bang_bang.armor_flag
penetration = bang_bang.armour_penetration
else if(isitem(hitby))
var/obj/item/weapon = hitby
penetration = weapon.armour_penetration
else if(isanimal(hitby))
var/mob/living/simple_animal/critter = hitby
penetration = critter.armour_penetration
else if(isbasicmob(hitby))
var/mob/living/basic/critter = hitby
penetration = critter.armour_penetration
take_damage(damage, damage_type, armor_flag, armour_penetration = penetration)

//makes a shieldy sound and gives us a popup when we break
/obj/item/clothing/gloves/platillo/atom_destruction(damage_flag)
. = ..()
playsound(src, break_sound, 50)
if(isliving(loc))
loc.balloon_alert(loc, "shield broken!")
return ..()

//we can see about how damaged we are on examine
/obj/item/clothing/gloves/platillo/examine(mob/user)
. = ..()
var/healthpercent = round((atom_integrity/max_integrity) * 100, 1)
switch(healthpercent)
if(50 to 99)
. += span_info("It looks slightly damaged.")
if(25 to 50)
. += span_info("It appears heavily damaged.")
if(0 to 25)
. += span_warning("It's falling apart!")

//we know that wearing this with a shield won't help us
/obj/item/clothing/gloves/platillo/examine_more(mob/user)
. = ..()
. += span_notice("It doesn't seem like it would do much good to wear this while holding another shield.")

/datum/armor/platillo
melee = ARMOR_LEVEL_MID
bullet = ARMOR_LEVEL_WEAK
laser = ARMOR_LEVEL_WEAK
energy = ARMOR_LEVEL_WEAK
bomb = ARMOR_LEVEL_WEAK
bio = ARMOR_LEVEL_TINY
fire = ARMOR_LEVEL_WEAK
acid = ARMOR_LEVEL_TINY
wound = WOUND_ARMOR_STANDARD
Binary file modified modular_doppler/modular_cosmetics/icons/mob/hands/gloves.dmi
Binary file not shown.
Binary file modified modular_doppler/modular_cosmetics/icons/obj/hands/gloves.dmi
Binary file not shown.
21 changes: 21 additions & 0 deletions modular_doppler/modular_crafting/code/lathe_recipes.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/*
* for lathe recipes that aren't part of the colony kit stuff
*/

/datum/design/platillo_gauntlets
name = "\improper PA-4N Platillo shield gauntlets"
desc = "An armored gauntlet augmented with a thick buckler of plastitanium, from which it takes its officially designated name 'platillo'. \
Meant primarily for melee combatants to wield two handed weapons without encumbrance, the light coverage fares poorly under fire."
id = "platillo"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 2,
/datum/material/titanium = SMALL_MATERIAL_AMOUNT * 3,
/datum/material/plasma = SMALL_MATERIAL_AMOUNT * 3,
)
build_path = /obj/item/clothing/gloves/platillo
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_MELEE
)
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
autolathe_exportable = FALSE
1 change: 1 addition & 0 deletions tgstation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -7197,6 +7197,7 @@
#include "modular_doppler\modular_cosmetics\GAGS\greyscale_configs_weapons.dm"
#include "modular_doppler\modular_crafting\code\crafting_extended.dm"
#include "modular_doppler\modular_crafting\code\crafting_melee.dm"
#include "modular_doppler\modular_crafting\code\lathe_recipes.dm"
#include "modular_doppler\modular_crafting\code\sheet_types.dm"
#include "modular_doppler\modular_crusher_ahabs_spear\code\trophies_misc.dm"
#include "modular_doppler\modular_customization\accessories\code\hair.dm"
Expand Down
Loading