Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MIRROR] OPFOR Items Reloaded #284

Merged
merged 1 commit into from
Oct 25, 2023
Merged
Show file tree
Hide file tree
Changes from all 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
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
Loading