Skip to content

Commit

Permalink
OPFOR Items Reloaded (#24231) (#284)
Browse files Browse the repository at this point in the history
* init

* changes akula clothing category to a broader piracy clothing category

* please commit this one too

* some sorting

* more cleaning

* dme fix

* edits edits edits

* adds and edits

* finishing the outfit selection

* modsuits

* mod modules

* more stuff!

* implants

* (many) more edits

* all lists filled

* strange autosurgeon

* bugfix

* bugs

* arm autosurgeon fix

* review

* y

* nitpicks

* fixes theft kits

Co-authored-by: lila <[email protected]>
  • Loading branch information
Steals-The-PRs and carpotoxin authored Oct 25, 2023
1 parent 696234b commit eb5fff8
Show file tree
Hide file tree
Showing 54 changed files with 1,817 additions and 1,526 deletions.
2 changes: 1 addition & 1 deletion code/__DEFINES/~skyrat_defines/examine_defines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ See the examinemore module for information.
#define EXAMINE_CHECK_ROLE "role" //For displaying description information based on a specific ROLE, e.g. traitor. Remember to set the special_desc_role var on the item.
#define EXAMINE_CHECK_JOB "job" //For displaying descriptors for specific jobs, e.g scientist. Remember to set the special_desc_job var on the item.
#define EXAMINE_CHECK_FACTION "faction" //For displaying descriptors for mob factions, e.g. a zombie, or... turrets. Or syndicate. Remember to set special_desc_factions.
#define EXAMINE_CHECK_CONTRACTOR "contractor" // For OPFOR contractors and syndicate agents.
#define EXAMINE_CHECK_CONTRACTOR "contractor" // For contractors and syndicate agents.
52 changes: 35 additions & 17 deletions code/__DEFINES/~skyrat_defines/opposing_force_defines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -39,21 +39,39 @@
#define OPFOR_EQUIPMENT_STATUS_APPROVED "Approved"
#define OPFOR_EQUIPMENT_STATUS_DENIED "Denied"

// EQUIPMENT CATEGORIES
#define OPFOR_EQUIPMENT_CATEGORY_PISTOLS "Pistols"
#define OPFOR_EQUIPMENT_CATEGORY_SUBMACHINE_GUNS "Submachine Guns"
#define OPFOR_EQUIPMENT_CATEGORY_RIFLES "Rifles"
#define OPFOR_EQUIPMENT_CATEGORY_SHOTGUNS "Shotguns"
#define OPFOR_EQUIPMENT_CATEGORY_MELEE_WEAPONS "Melee Weapons"
#define OPFOR_EQUIPMENT_CATEGORY_AMMUNITION "Ammunition"
#define OPFOR_EQUIPMENT_CATEGORY_CLOTHING "Clothing"
#define OPFOR_EQUIPMENT_CATEGORY_UTILITY "Utility"
#define OPFOR_EQUIPMENT_CATEGORY_EXPLOSIVES "Explosives"
#define OPFOR_EQUIPMENT_CATEGORY_LOADOUT "Loadouts"
/// EQUIPMENT CATEGORIES
// Uplink Items
#define OPFOR_EQUIPMENT_CATEGORY_CLOTHING_UPLINK "1. Uplink Services"
// Clothing
#define OPFOR_EQUIPMENT_CATEGORY_CLOTHING_SYNDICATE "2. Syndicate Outfits"
#define OPFOR_EQUIPMENT_CATEGORY_CLOTHING_SOL "3. Sol-Federation Outfits"
#define OPFOR_EQUIPMENT_CATEGORY_CLOTHING_PIRATE "4. Piracy Outfits"
#define OPFOR_EQUIPMENT_CATEGORY_CLOTHING_MAGIC "5. Spellcaster Outfits"
// MODsuits
#define OPFOR_EQUIPMENT_CATEGORY_MODSUIT "6. MOD Suits"
#define OPFOR_EQUIPMENT_CATEGORY_MODSUIT_MODULES "7. MOD Modules"
// Implants
#define OPFOR_EQUIPMENT_CATEGORY_IMPLANTS "8. Implants"
#define OPFOR_EQUIPMENT_CATEGORY_IMPLANTS_ILLEGAL "9. Illegal Implants"
// Guns
#define OPFOR_EQUIPMENT_CATEGORY_RANGED "10. Ranged Weapons"
#define OPFOR_EQUIPMENT_CATEGORY_RANGED_STEALTH "11. Stealthy Ranged Weapons"
// Ammo
#define OPFOR_EQUIPMENT_CATEGORY_AMMO_EXOTIC "12. Exotic Ammunition"
// Melee
#define OPFOR_EQUIPMENT_CATEGORY_MELEE "13. Melee Weapons"
#define OPFOR_EQUIPMENT_CATEGORY_MELEE_STEALTH "14. Stealthy Melee Weapons"
// Gadgets
#define OPFOR_EQUIPMENT_CATEGORY_GADGET "15. Gadgets"
#define OPFOR_EQUIPMENT_CATEGORY_GADGET_STEALTH "16. Stealthy Gadgets"
// Bombs
#define OPFOR_EQUIPMENT_CATEGORY_BOMB_CHEM "17. Chemical Grenades"
#define OPFOR_EQUIPMENT_CATEGORY_BOMB_PAYLOAD "18. Dirty Bombs"
// Spells and scrolls (martial arts)
#define OPFOR_EQUIPMENT_CATEGORY_SPELLS "19. Spells"
#define OPFOR_EQUIPMENT_CATEGORY_SCROLLS "20. Martial Art Scrolls"
// Language and biology
#define OPFOR_EQUIPMENT_CATEGORY_LANGUAGE "21. Language"
#define OPFOR_EQUIPMENT_CATEGORY_ORGANS "22. Organs"
// Category for uncategorized items
#define OPFOR_EQUIPMENT_CATEGORY_OTHER "Other"
#define OPFOR_EQUIPMENT_CATEGORY_MARTIAL_ARTS "Martial Arts"
#define OPFOR_EQUIPMENT_CATEGORY_SERVICES "Services"
#define OPFOR_EQUIPMENT_CATEGORY_SPELLS "Spells"
#define OPFOR_EQUIPMENT_CATEGORY_IMPLANTS "Implants"
#define OPFOR_EQUIPMENT_CATEGORY_ANTAGONIST_POWERS "Antagonist Powers"
#define OPFOR_EQUIPMENT_CATEGORY_LANGUAGES "Languages"
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
/obj/item/hhmirror
name = "handheld mirror"
desc = "A handheld mirror that allows you to change your looks."
desc = "A handheld mirror."
icon = 'modular_skyrat/master_files/icons/obj/hhmirror.dmi'
icon_state = "hhmirror"

/obj/item/hhmirror/attack_self(mob/user)
. = ..()
if(.)
return
to_chat(user, span_notice("Damn, that hairstyle be looking skewed, maybe head to the barber for a change?"))

/obj/item/hhmirror/fullmagic
name = "full handheld magic mirror"
Expand Down
2 changes: 1 addition & 1 deletion modular_skyrat/modules/Syndie_edits/code/syndie_edits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
icon = 'modular_skyrat/master_files/icons/obj/clothing/masks.dmi'
worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/mask.dmi'
icon_state = "balaclava_ds"
flags_inv = HIDEHAIR | HIDEFACE | HIDEEARS | HIDEFACIALHAIR
flags_inv = HIDEFACE | HIDEEARS | HIDEFACIALHAIR
alternate_worn_layer = LOW_FACEMASK_LAYER //This lets it layer below glasses and headsets; yes, that's below hair, but it already has HIDEHAIR

/obj/item/clothing/mask/gas/sechailer/syndicate
Expand Down
2 changes: 1 addition & 1 deletion modular_skyrat/modules/contractor/code/items/boxes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
new /obj/item/storage/fancy/cigarettes/cigpack_syndicate(src)
new /obj/item/card/id/advanced/chameleon(src)
new /obj/item/lighter(src)
new /obj/item/uplink/opfor(src)
new /obj/item/uplink/old_radio(src)
new /obj/item/jammer(src)

/obj/item/storage/box/contractor/fulton_extraction
Expand Down
1 change: 1 addition & 0 deletions modular_skyrat/modules/encounters/code/nri_raiders.dm
Original file line number Diff line number Diff line change
Expand Up @@ -358,6 +358,7 @@ GLOBAL_VAR(first_officer)
),src)

/obj/item/storage/box/nri_survival_pack/raider
w_class = WEIGHT_CLASS_SMALL
desc = "A box filled with useful emergency items, supplied by the NRI. It feels particularily light."

/obj/item/storage/box/nri_survival_pack/raider/PopulateContents()
Expand Down
7 changes: 0 additions & 7 deletions modular_skyrat/modules/examinemore/code/examine_more.dm
Original file line number Diff line number Diff line change
Expand Up @@ -106,13 +106,6 @@ would only be recognisable with someone that had the syndicate trait.
//If they are a syndicate contractor or a syndicate
if(EXAMINE_CHECK_CONTRACTOR)
var/mob/living/carbon/human/human_user = user
if(!user?.mind.opposing_force)
return
for(var/datum/opposing_force_equipment/antagonist_powers/contractor/contractor_kit in user.mind.opposing_force.selected_equipment)
composed_message = "You note the following because of your [span_red("<b>Contractor Status</b>")]: <br>"
composed_message += special_desc
. += composed_message
return
if(human_user.mind.special_role == ROLE_DRIFTING_CONTRACTOR)
composed_message = "You note the following because of your [span_red("<b>Contractor Status</b>")]: <br>"
composed_message += special_desc
Expand Down
73 changes: 73 additions & 0 deletions modular_skyrat/modules/moretraitoritems/code/autosurgeon.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
/obj/item/autosurgeon/toolset
starting_organ = /obj/item/organ/internal/cyberimp/arm/toolset

/obj/item/autosurgeon/surgery
starting_organ = /obj/item/organ/internal/cyberimp/arm/surgery

/obj/item/autosurgeon/botany
starting_organ = /obj/item/organ/internal/cyberimp/arm/botany

/obj/item/autosurgeon/janitor
starting_organ = /obj/item/organ/internal/cyberimp/arm/janitor

/obj/item/autosurgeon/armblade
starting_organ = /obj/item/organ/internal/cyberimp/arm/armblade

/obj/item/autosurgeon/muscle
starting_organ = /obj/item/organ/internal/cyberimp/arm/muscle

//syndie
/obj/item/autosurgeon/syndicate/hackerman
starting_organ = /obj/item/organ/internal/cyberimp/arm/hacker

/obj/item/autosurgeon/syndicate/esword_arm
starting_organ = /obj/item/organ/internal/cyberimp/arm/esword

/obj/item/autosurgeon/syndicate/nodrop
starting_organ = /obj/item/organ/internal/cyberimp/brain/anti_drop

/obj/item/autosurgeon/syndicate/baton
starting_organ = /obj/item/organ/internal/cyberimp/arm/baton

/obj/item/autosurgeon/syndicate/flash
starting_organ = /obj/item/organ/internal/cyberimp/arm/flash

//bodypart
/obj/item/autosurgeon/bodypart/r_arm_robotic
starting_bodypart = /obj/item/bodypart/arm/right/robot

/obj/item/autosurgeon/bodypart/r_arm_robotic/Initialize(mapload)
. = ..()
storedbodypart.icon = 'modular_skyrat/master_files/icons/mob/augmentation/hi2ipc.dmi'

//xeno-organs
/obj/item/autosurgeon/xeno
name = "strange autosurgeon"
icon = 'modular_skyrat/modules/moretraitoritems/icons/alien.dmi'
surgery_speed = 2
organ_whitelist = list(/obj/item/organ/internal/alien)

/obj/item/organ/internal/alien/plasmavessel/opfor
stored_plasma = 500
max_plasma = 500
plasma_rate = 10

/obj/item/storage/organbox/strange
name = "strange organ transport box"
icon = 'modular_skyrat/modules/moretraitoritems/icons/alien.dmi'

/obj/item/storage/organbox/strange/Initialize(mapload)
. = ..()
reagents.add_reagent_list(list(/datum/reagent/cryostylane = 60))

/obj/item/storage/organbox/strange/PopulateContents()
new /obj/item/autosurgeon/xeno(src)
new /obj/item/organ/internal/alien/plasmavessel/opfor(src)
new /obj/item/organ/internal/alien/resinspinner(src)
new /obj/item/organ/internal/alien/acid(src)
new /obj/item/organ/internal/alien/neurotoxin(src)
new /obj/item/organ/internal/alien/hivenode(src)

/obj/item/storage/organbox/strange/eggsac/PopulateContents()
. = ..()
new /obj/item/organ/internal/alien/eggsac(src)
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,3 @@
if(!uses)
desc = "[initial(desc)] Looks like it's been used up."
return TRUE

/obj/item/autosurgeon/bodypart/r_arm_robotic
starting_bodypart = /obj/item/bodypart/arm/right/robot

/obj/item/autosurgeon/bodypart/r_arm_robotic/Initialize(mapload)
. = ..()
storedbodypart.icon = 'modular_skyrat/master_files/icons/mob/augmentation/hi2ipc.dmi'
9 changes: 9 additions & 0 deletions modular_skyrat/modules/moretraitoritems/code/cultist.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/obj/item/clothing/glasses/hud/health/night/cultblind_unrestricted
desc = "Where we are going, we won't need eyes to see."
name = "zealot's blindfold"
icon_state = "blindfold"
inhand_icon_state = "blindfold"
flash_protect = FLASH_PROTECTION_WELDER

/obj/item/clothing/glasses/hud/health/night/cultblind_unrestricted/narsie
desc = "May Nar'Sie guide you through the darkness and shield you from the light."
55 changes: 0 additions & 55 deletions modular_skyrat/modules/moretraitoritems/code/mafioso.dm

This file was deleted.

41 changes: 0 additions & 41 deletions modular_skyrat/modules/moretraitoritems/code/ocelot_revolver.dm

This file was deleted.

38 changes: 38 additions & 0 deletions modular_skyrat/modules/moretraitoritems/code/pirate.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
//Heister kit
/obj/item/clothing/suit/jacket/det_suit/noir/heister
name = "armored suit jacket"
desc = "A professional suit jacket, it feels much heavier than a regular jacket. A label on the inside reads \"Nanite-based Self-repairing Kevlar weave\"."
armor_type = /datum/armor/heister
/// How many hits we can take before the armor breaks, PAYDAY style
var/armor_stacks = 2

/datum/armor/heister
melee = 35
bullet = 30
laser = 30
energy = 40
bomb = 25
fire = 50
acid = 50
wound = 10

/obj/item/clothing/suit/jacket/det_suit/noir/heister/Initialize(mapload)
. = ..()
AddComponent(/datum/component/shielded/suit, max_charges = armor_stacks, recharge_start_delay = 8 SECONDS, charge_increment_delay = 1 SECONDS, \
charge_recovery = armor_stacks, lose_multiple_charges = FALSE, starting_charges = armor_stacks, shield_icon_file = null, shield_icon = null)

/obj/item/clothing/suit/jacket/det_suit/noir/heister/equipped(mob/living/user, slot)
. = ..()
if(!(slot & ITEM_SLOT_OCLOTHING))
return
RegisterSignal(user, COMSIG_HUMAN_CHECK_SHIELDS, PROC_REF(armor_reaction))

/obj/item/clothing/suit/jacket/det_suit/noir/heister/proc/armor_reaction(mob/living/carbon/human/owner, atom/movable/hitby, damage = 0, attack_text = "the attack", attack_type = MELEE_ATTACK, armour_penetration = 0)
if(SEND_SIGNAL(src, COMSIG_ITEM_HIT_REACT, owner, hitby, attack_text, 0, damage, attack_type) & COMPONENT_HIT_REACTION_BLOCK)
return SHIELD_BLOCK
return NONE

/obj/item/clothing/gloves/latex/nitrile/heister
desc = "Pricy sterile gloves that are thicker than latex. Perfect for hiding fingerprints."
clothing_traits = null
siemens_coefficient = 0
Loading

0 comments on commit eb5fff8

Please sign in to comment.