diff --git a/code/__DEFINES/~skyrat_defines/examine_defines.dm b/code/__DEFINES/~skyrat_defines/examine_defines.dm index 64cb62cbb80..933717b3178 100644 --- a/code/__DEFINES/~skyrat_defines/examine_defines.dm +++ b/code/__DEFINES/~skyrat_defines/examine_defines.dm @@ -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. diff --git a/code/__DEFINES/~skyrat_defines/opposing_force_defines.dm b/code/__DEFINES/~skyrat_defines/opposing_force_defines.dm index a95c5194feb..60030663f7b 100644 --- a/code/__DEFINES/~skyrat_defines/opposing_force_defines.dm +++ b/code/__DEFINES/~skyrat_defines/opposing_force_defines.dm @@ -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" diff --git a/modular_skyrat/master_files/code/game/objects/items/hhmirror.dm b/modular_skyrat/master_files/code/game/objects/items/hhmirror.dm index b58569f4683..bc8ef6c0724 100644 --- a/modular_skyrat/master_files/code/game/objects/items/hhmirror.dm +++ b/modular_skyrat/master_files/code/game/objects/items/hhmirror.dm @@ -1,6 +1,6 @@ /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" @@ -8,7 +8,6 @@ . = ..() 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" diff --git a/modular_skyrat/modules/Syndie_edits/code/syndie_edits.dm b/modular_skyrat/modules/Syndie_edits/code/syndie_edits.dm index 891d1ced453..f3c35932d32 100644 --- a/modular_skyrat/modules/Syndie_edits/code/syndie_edits.dm +++ b/modular_skyrat/modules/Syndie_edits/code/syndie_edits.dm @@ -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 diff --git a/modular_skyrat/modules/contractor/code/items/boxes.dm b/modular_skyrat/modules/contractor/code/items/boxes.dm index d0eab90eb92..99bfa6600fb 100644 --- a/modular_skyrat/modules/contractor/code/items/boxes.dm +++ b/modular_skyrat/modules/contractor/code/items/boxes.dm @@ -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 diff --git a/modular_skyrat/modules/encounters/code/nri_raiders.dm b/modular_skyrat/modules/encounters/code/nri_raiders.dm index aa3b406bc01..0f60c6b2a33 100644 --- a/modular_skyrat/modules/encounters/code/nri_raiders.dm +++ b/modular_skyrat/modules/encounters/code/nri_raiders.dm @@ -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() diff --git a/modular_skyrat/modules/examinemore/code/examine_more.dm b/modular_skyrat/modules/examinemore/code/examine_more.dm index bcf3a9b761f..e8500f18cf7 100644 --- a/modular_skyrat/modules/examinemore/code/examine_more.dm +++ b/modular_skyrat/modules/examinemore/code/examine_more.dm @@ -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("Contractor Status")]:
" - 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("Contractor Status")]:
" composed_message += special_desc diff --git a/modular_skyrat/modules/moretraitoritems/code/autosurgeon.dm b/modular_skyrat/modules/moretraitoritems/code/autosurgeon.dm new file mode 100644 index 00000000000..c3a762c4099 --- /dev/null +++ b/modular_skyrat/modules/moretraitoritems/code/autosurgeon.dm @@ -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) diff --git a/modular_skyrat/modules/robohand/code/bodypart_autosurgeon.dm b/modular_skyrat/modules/moretraitoritems/code/autosurgeon_bodypart.dm similarity index 90% rename from modular_skyrat/modules/robohand/code/bodypart_autosurgeon.dm rename to modular_skyrat/modules/moretraitoritems/code/autosurgeon_bodypart.dm index 46de28831c2..f4e79cf1a87 100644 --- a/modular_skyrat/modules/robohand/code/bodypart_autosurgeon.dm +++ b/modular_skyrat/modules/moretraitoritems/code/autosurgeon_bodypart.dm @@ -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' diff --git a/modular_skyrat/modules/moretraitoritems/code/cultist.dm b/modular_skyrat/modules/moretraitoritems/code/cultist.dm new file mode 100644 index 00000000000..1e074fbd5e6 --- /dev/null +++ b/modular_skyrat/modules/moretraitoritems/code/cultist.dm @@ -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." diff --git a/modular_skyrat/modules/moretraitoritems/code/mafioso.dm b/modular_skyrat/modules/moretraitoritems/code/mafioso.dm deleted file mode 100644 index e07039ded74..00000000000 --- a/modular_skyrat/modules/moretraitoritems/code/mafioso.dm +++ /dev/null @@ -1,55 +0,0 @@ -/obj/item/clothing/suit/jacket/det_suit/noir/mafioso - name = "mafioso trenchcoat" - desc = "The guy wearing this means serious business..." - armor_type = /datum/armor/noir_mafioso - -/datum/armor/noir_mafioso - melee = 25 - bullet = 20 - laser = 30 - energy = 30 - bomb = 30 - fire = 30 - acid = 30 - wound = 20 - -/obj/item/clothing/under/suit/black/armoured - armor_type = /datum/armor/clothing_under/black_armoured - -/datum/armor/clothing_under/black_armoured - melee = 10 - bullet = 10 - laser = 10 - energy = 10 - fire = 50 - acid = 40 - -/obj/item/clothing/head/beret/sec/ocelot - name = "ocelot beret" - desc = "A red beret with the neo-russian insignia stamped on it. This bitch is wearing perfume." - armor_type = /datum/armor/sec_ocelot - -/datum/armor/sec_ocelot - melee = 30 - bullet = 20 - laser = 20 - energy = 30 - bomb = 25 - fire = 20 - acid = 50 - wound = 4 - -/obj/item/clothing/suit/jacket/det_suit/noir/ocelot - name = "ocelot trenchcoat" - desc = "A black armoured trenchcoat worn by a certain gun spinning spy. Don't confuse me with those uniformed fools." - armor_type = /datum/armor/noir_ocelot - -/datum/armor/noir_ocelot - melee = 25 - bullet = 20 - laser = 30 - energy = 30 - bomb = 30 - fire = 30 - acid = 30 - wound = 20 diff --git a/modular_skyrat/modules/moretraitoritems/code/ocelot_revolver.dm b/modular_skyrat/modules/moretraitoritems/code/ocelot_revolver.dm deleted file mode 100644 index 84c9f6d697d..00000000000 --- a/modular_skyrat/modules/moretraitoritems/code/ocelot_revolver.dm +++ /dev/null @@ -1,41 +0,0 @@ -/obj/item/gun/ballistic/revolver/ocelot - name = "Colt Peacemaker revolver" - desc = "A modified Peacemaker revolver that chambers .357 ammo. Less powerful than the regular .357, but ricochets a lot more." // We need tension...conflict. The world today has become too soft. We're living in an age where true feelings are suppressed. So we're going to shake things up a bit. We'll create a world dripping with tension... ...a world filled with greed and suspicion, bravery and cowardice. - // this could probably be made funnier by reducing its damage multiplier but also making it so that every fired bullet has the wacky ricochets - // but that's a different plate of cookies for a different glass of milk - icon_state = "c38_panther" - accepted_magazine_type = /obj/item/ammo_box/magazine/internal/cylinder - -/obj/item/ammo_casing/a357/peacemaker - name = ".357 Peacemaker bullet casing" - desc = "A .357 Peacemaker bullet casing." - caliber = CALIBER_357 - projectile_type = /obj/projectile/bullet/a357/peacemaker - -/obj/projectile/bullet/a357/peacemaker - name = ".357 Peacemaker bullet" - damage = 25 - wound_bonus = 0 - ricochets_max = 6 - ricochet_chance = 200 - ricochet_auto_aim_angle = 50 - ricochet_auto_aim_range = 6 - ricochet_incidence_leeway = 80 - ricochet_decay_chance = 1 - -/datum/design/a357/peacemaker - name = "Speed Loader (.357 Peacemaker)" - id = "a357PM" - build_type = AUTOLATHE - materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 2) - build_path = /obj/item/ammo_box/a357/peacemaker - category = list(RND_CATEGORY_HACKED, RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO) - -/obj/item/ammo_box/a357/peacemaker - name = "speed loader (.357 Peacemaker)" - desc = "Designed to quickly reload revolvers." - icon_state = "357" - ammo_type = /obj/item/ammo_casing/a357/peacemaker - max_ammo = 7 - multiple_sprites = AMMO_BOX_PER_BULLET - item_flags = NO_MAT_REDEMPTION diff --git a/modular_skyrat/modules/moretraitoritems/code/pirate.dm b/modular_skyrat/modules/moretraitoritems/code/pirate.dm new file mode 100644 index 00000000000..c3f2f2ea006 --- /dev/null +++ b/modular_skyrat/modules/moretraitoritems/code/pirate.dm @@ -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 diff --git a/modular_skyrat/modules/opposing_force/code/items.dm b/modular_skyrat/modules/moretraitoritems/code/syndicate.dm similarity index 57% rename from modular_skyrat/modules/opposing_force/code/items.dm rename to modular_skyrat/modules/moretraitoritems/code/syndicate.dm index d185e4e5c91..93561ec72da 100644 --- a/modular_skyrat/modules/opposing_force/code/items.dm +++ b/modular_skyrat/modules/moretraitoritems/code/syndicate.dm @@ -1,25 +1,103 @@ -//Use this to add item variations - -/obj/item/uplink/opfor +/obj/item/uplink/old_radio name = "old radio" desc = "A dusty and old looking radio." -/obj/item/uplink/opfor/Initialize(mapload, owner, tc_amount = 0) +/obj/item/uplink/old_radio/Initialize(mapload, owner, tc_amount = 0) . = ..() var/datum/component/uplink/hidden_uplink = GetComponent(/datum/component/uplink) hidden_uplink.name = "old radio" -/obj/item/reagent_containers/cup/rag/large - volume = 30 - amount_per_transfer_from_this = 30 - desc = "A damp rag made from a highly absorbant materials. Can hold up to 30u liquids. You can also clean up messes I guess." +//Unrestricted MODs +/obj/item/mod/control/pre_equipped/elite/unrestricted + req_access = null + +//Syndie wep charger kit +/obj/item/storage/box/syndie_kit/recharger + name = "boxed recharger kit" + desc = "A sleek, sturdy box used to hold all parts to build a weapons recharger." + icon_state = "syndiebox" + +/obj/item/storage/box/syndie_kit/charger/PopulateContents() + new /obj/item/circuitboard/machine/recharger(src) + new /obj/item/stock_parts/capacitor/quadratic(src) + +//Back-up space suit +/obj/item/storage/box/syndie_kit/space_suit + name = "boxed space suit and helmet" + desc = "A sleek, sturdy box used to hold an emergency spacesuit." + icon_state = "syndiebox" + illustration = "syndiesuit" + +/obj/item/storage/box/syndie_kit/space_suit/Initialize(mapload) + . = ..() + atom_storage.max_specific_storage = WEIGHT_CLASS_BULKY + atom_storage.max_slots = 2 + atom_storage.set_holdable(list( + /obj/item/clothing/head/helmet/space/syndicate, + /obj/item/clothing/suit/space/syndicate, + )) + +/obj/item/storage/box/syndie_kit/space_suit/PopulateContents() + switch(pick(list("red", "green", "dgreen", "blue", "orange", "black"))) + if("green") + new /obj/item/clothing/head/helmet/space/syndicate/green(src) + new /obj/item/clothing/suit/space/syndicate/green(src) + if("dgreen") + new /obj/item/clothing/head/helmet/space/syndicate/green/dark(src) + new /obj/item/clothing/suit/space/syndicate/green/dark(src) + if("blue") + new /obj/item/clothing/head/helmet/space/syndicate/blue(src) + new /obj/item/clothing/suit/space/syndicate/blue(src) + if("red") + new /obj/item/clothing/head/helmet/space/syndicate(src) + new /obj/item/clothing/suit/space/syndicate(src) + if("orange") + new /obj/item/clothing/head/helmet/space/syndicate/orange(src) + new /obj/item/clothing/suit/space/syndicate/orange(src) + if("black") + new /obj/item/clothing/head/helmet/space/syndicate/black(src) + new /obj/item/clothing/suit/space/syndicate/black(src) + +//Spy +/obj/item/clothing/suit/jacket/det_suit/noir/armoured + armor_type = /datum/armor/heister + +/obj/item/clothing/head/frenchberet/armoured + armor_type = /datum/armor/cosmetic_sec + +/obj/item/clothing/under/suit/black/armoured + armor_type = /datum/armor/clothing_under/syndicate + +/obj/item/clothing/under/suit/black/skirt/armoured + armor_type = /datum/armor/clothing_under/syndicate + +/obj/item/storage/belt/holster/detective/dark + name = "dark leather holster" + icon_state = "syndicate_holster" + +//Robohand +/obj/item/storage/backpack/duffelbag/syndie/robohand/PopulateContents() + new /obj/item/gun/ballistic/automatic/pistol/robohand(src) + new /obj/item/ammo_box/magazine/m14mm(src) + new /obj/item/ammo_box/magazine/m14mm(src) + new /obj/item/ammo_box/magazine/m14mm(src) + new /obj/item/ammo_box/magazine/m14mm(src) + new /obj/item/storage/belt/military(src) + new /obj/item/clothing/under/pants/track/robohand(src) + new /obj/item/clothing/gloves/combat(src) + new /obj/item/clothing/shoes/combat(src) + new /obj/item/clothing/glasses/sunglasses/robohand(src) + new /obj/item/clothing/suit/jacket/trenchcoat/gunman(src) + new /obj/item/autosurgeon/bodypart/r_arm_robotic(src) + new /obj/item/autosurgeon/syndicate/esword_arm(src) + new /obj/item/autosurgeon/syndicate/nodrop(src) /obj/item/storage/box/syndie_kit/gunman_outfit name = "gunman clothing bundle" desc = "A box filled with armored and stylish clothing for the aspiring gunmans." -/obj/item/clothing/suit/armor/vest/leather/gunman +/obj/item/clothing/suit/jacket/trenchcoat/gunman name = "leather overcoat" desc = "An armored leather overcoat, intended as the go-to wear for any aspiring gunman." body_parts_covered = CHEST|GROIN|ARMS @@ -35,100 +113,36 @@ acid = 50 wound = 10 -/obj/item/storage/box/syndie_kit/gunman_outfit/PopulateContents() // 45, 40 armor on general without a helmet. - new /obj/item/clothing/under/pants/black/robohand(src) - new /obj/item/clothing/glasses/sunglasses/robohand(src) - new /obj/item/clothing/suit/armor/vest/leather/gunman(src) - new /obj/item/clothing/shoes/combat(src) - -/obj/item/autosurgeon/syndicate/hackerman - starting_organ = /obj/item/organ/internal/cyberimp/arm/hacker - -/obj/item/storage/box/syndie_kit/insurgent - name = "syndicate insurgent bundle" - desc = "A box containing everything you need to LARP as your favorite syndicate operative!" - -/obj/item/storage/box/syndie_kit/insurgent/PopulateContents() - new /obj/item/clothing/under/syndicate(src) - new /obj/item/clothing/gloves/tackler/combat(src) - new /obj/item/clothing/shoes/combat(src) - new /obj/item/clothing/glasses/sunglasses(src) - new /obj/item/clothing/mask/gas/syndicate(src) - new /obj/item/storage/belt/military(src) - new /obj/item/card/id/advanced/chameleon(src) - new /obj/item/mod/control/pre_equipped/nuclear/unrestricted(src) - +/obj/item/clothing/under/pants/track/robohand + name = "badass pants" + desc = "Strangely firm yet soft black pants, these appear to have some armor padding for added protection." + armor_type = /datum/armor/clothing_under/robohand + +/datum/armor/clothing_under/robohand + melee = 20 + bullet = 20 + laser = 20 + energy = 20 + bomb = 20 + +/obj/item/clothing/glasses/sunglasses/robohand + name = "badass sunglasses" + desc = "Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks flashes. These ones seem to be bulletproof?" + body_parts_covered = HEAD //What do you mean glasses don't protect your head? Of course they do. Cyberpunk has flying cars(mostly intentional)! + armor_type = /datum/armor/sunglasses_robohand + +/datum/armor/sunglasses_robohand + melee = 20 + bullet = 60 + laser = 20 + energy = 20 + bomb = 20 + wound = 5 + +//More items /obj/item/guardiancreator/tech/choose/traitor/opfor allowling = TRUE -/obj/item/clothing/suit/toggle/lawyer/black/better/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/better_heister - /// How many hits we can take before the armor breaks, PAYDAY style - var/armor_stacks = 2 - -/datum/armor/better_heister - melee = 35 - bullet = 30 - laser = 30 - energy = 40 - bomb = 25 - fire = 50 - acid = 50 - wound = 10 - -/obj/item/clothing/suit/toggle/lawyer/black/better/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/toggle/lawyer/black/better/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/toggle/lawyer/black/better/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 - -/obj/item/storage/backpack/duffelbag/heister - name = "lightweight duffel" - desc = "A large duffel bag for holding extra things. This one seems to be stitched with extra-light fabric, enabling easier movement." - slowdown = 0 - resistance_flags = FIRE_PROOF - -/obj/item/storage/backpack/duffelbag/heister/PopulateContents() - var/list/non_cursed_masks = subtypesof(/obj/item/clothing/mask/animal) - /obj/item/clothing/mask/animal/small //abstract - non_cursed_masks.Remove(GLOB.cursed_animal_masks) - var/obj/picked_mask = pick(non_cursed_masks) - var/obj/item/clothing/mask/animal/new_mask = new picked_mask(src) - new_mask.clothing_flags = VOICEBOX_DISABLED - new_mask.set_armor(new_mask.get_armor().generate_new_with_specific(list( - MELEE = 30, - BULLET = 25, - LASER = 25, - ENERGY = 25, - BOMB = 0, - BIO = 0, - FIRE = 100, - ACID = 100, - ))) - new /obj/item/clothing/gloves/latex/nitrile/heister(src) - new /obj/item/clothing/under/suit/black(src) - new /obj/item/clothing/shoes/laceup(src) - new /obj/item/clothing/suit/toggle/lawyer/black/better/heister(src) - new /obj/item/restraints/handcuffs/cable/zipties(src) - new /obj/item/restraints/handcuffs/cable/zipties(src) - - /obj/item/codeword_granter name = "codeword manual" desc = "A black manual with a red S lovingly inscribed on the cover by only the finest of presses from a factory." diff --git a/modular_skyrat/modules/moretraitoritems/code/syndicate_loadout.dm b/modular_skyrat/modules/moretraitoritems/code/syndicate_loadout.dm deleted file mode 100644 index 2df1919fbbf..00000000000 --- a/modular_skyrat/modules/moretraitoritems/code/syndicate_loadout.dm +++ /dev/null @@ -1,239 +0,0 @@ - -/obj/item/storage/box/syndie_kit/spaceassassin/PopulateContents() - new /obj/item/knife/combat(src) - switch(pick(list("red", "green", "dgreen", "blue", "orange", "black"))) - if("green") - new /obj/item/clothing/head/helmet/space/syndicate/green(src) - new /obj/item/clothing/suit/space/syndicate/green(src) - if("dgreen") - new /obj/item/clothing/head/helmet/space/syndicate/green/dark(src) - new /obj/item/clothing/suit/space/syndicate/green/dark(src) - if("blue") - new /obj/item/clothing/head/helmet/space/syndicate/blue(src) - new /obj/item/clothing/suit/space/syndicate/blue(src) - if("red") - new /obj/item/clothing/head/helmet/space/syndicate(src) - new /obj/item/clothing/suit/space/syndicate(src) - if("orange") - new /obj/item/clothing/head/helmet/space/syndicate/orange(src) - new /obj/item/clothing/suit/space/syndicate/orange(src) - if("black") - new /obj/item/clothing/head/helmet/space/syndicate/black(src) - new /obj/item/clothing/suit/space/syndicate/black(src) - -/obj/item/storage/box/syndie_kit/loadout - -/obj/item/storage/backpack/duffelbag/syndie/loadout - -/obj/item/storage/backpack/duffelbag/syndie/loadout/recon/PopulateContents() - new /obj/item/clothing/glasses/thermal/syndi(src) - new /obj/item/knife/combat/survival(src) - new /obj/item/gun/energy/disabler(src) -// new /obj/item/storage/briefcase/launchpad(src) // Removed for now. - new /obj/item/binoculars(src) - new /obj/item/encryptionkey/syndicate(src) - new /obj/item/storage/box/syndie_kit/space(src) - new /obj/item/grenade/syndieminibomb(src) - new /obj/item/flashlight/emp(src) - -/obj/item/storage/backpack/duffelbag/syndie/loadout/spy/PopulateContents() - new /obj/item/clothing/under/chameleon(src) - new /obj/item/clothing/mask/chameleon(src) - new /obj/item/card/id/advanced/chameleon(src) - new /obj/item/clothing/shoes/chameleon/noslip(src) - new /obj/item/computer_disk/syndicate/camera_app(src) - new /obj/item/multitool/ai_detect(src) - new /obj/item/encryptionkey/syndicate(src) - new /obj/item/reagent_containers/syringe/mulligan(src) - new /obj/item/switchblade(src) - new /obj/item/storage/fancy/cigarettes/cigpack_syndicate (src) - new /obj/item/flashlight/emp(src) - new /obj/item/chameleon(src) - -/obj/item/storage/backpack/duffelbag/syndie/loadout/stealthop/PopulateContents() - new /obj/item/gun/energy/recharge/ebow(src) - new /obj/item/pen/sleepy(src) - new /obj/item/healthanalyzer/rad_laser(src) - new /obj/item/chameleon(src) - new /obj/item/soap/syndie(src) - new /obj/item/clothing/glasses/thermal/syndi(src) - new /obj/item/flashlight/emp(src) - new /obj/item/jammer(src) - new /obj/item/card/emag/doorjack(src) - new /obj/item/clothing/mask/gas/syndicate(src) - new /obj/item/clothing/under/syndicate/camo(src) - new /obj/item/clothing/shoes/combat(src) - -/obj/item/storage/backpack/duffelbag/syndie/loadout/hacker/PopulateContents() - new /obj/item/ai_module/syndicate(src) - new /obj/item/card/emag(src) - new /obj/item/card/emag/doorjack(src) - new /obj/item/encryptionkey/binary(src) - new /obj/item/ai_module/toy_ai(src) - new /obj/item/multitool/ai_detect(src) - new /obj/item/storage/toolbox/syndicate(src) - new /obj/item/computer_disk/syndicate/camera_app(src) - new /obj/item/clothing/glasses/thermal/syndi(src) - new /obj/item/card/id/advanced/chameleon(src) - -/obj/item/storage/backpack/duffelbag/syndie/loadout/sniper/PopulateContents() - new /obj/item/gun/ballistic/automatic/sniper_rifle/modular/blackmarket(src) - new /obj/item/ammo_box/magazine/sniper_rounds/soporific(src) - new /obj/item/ammo_box/magazine/sniper_rounds/soporific(src) - new /obj/item/ammo_box/magazine/sniper_rounds/soporific(src) - new /obj/item/ammo_box/magazine/sniper_rounds/soporific(src) - new /obj/item/ammo_box/magazine/sniper_rounds(src) - new /obj/item/ammo_box/magazine/sniper_rounds(src) - new /obj/item/clothing/glasses/thermal/syndi(src) - new /obj/item/clothing/gloves/latex/nitrile(src) - new /obj/item/clothing/mask/gas/clown_hat(src) - new /obj/item/clothing/under/syndicate/sniper(src) - new /obj/item/knife/combat/survival(src) - -/obj/item/storage/backpack/duffelbag/syndie/loadout/metaops/PopulateContents() - new /obj/item/mod/control/pre_equipped/traitor(src) - new /obj/item/gun/ballistic/shotgun/bulldog/unrestricted(src) - new /obj/item/implanter/explosive(src) - new /obj/item/ammo_box/magazine/m12g(src) - new /obj/item/ammo_box/magazine/m12g(src) - new /obj/item/grenade/c4 (src) - new /obj/item/grenade/c4 (src) - new /obj/item/card/emag(src) - new /obj/item/card/emag/doorjack(src) - -/obj/item/storage/backpack/duffelbag/syndie/loadout/bond/PopulateContents() - new /obj/item/gun/ballistic/automatic/pistol(src) - new /obj/item/suppressor(src) - new /obj/item/ammo_box/magazine/m9mm(src) - new /obj/item/ammo_box/magazine/m9mm(src) - new /obj/item/clothing/glasses/thermal/monocle(src) - new /obj/item/clothing/under/chameleon(src) - new /obj/item/card/id/advanced/chameleon(src) - new /obj/item/card/emag/doorjack(src) - new /obj/item/reagent_containers/hypospray/medipen/stimulants(src) - new /obj/item/reagent_containers/cup/rag(src) - -/obj/item/storage/backpack/duffelbag/syndie/loadout/darklord/PopulateContents() - new /obj/item/dualsaber(src) - new /obj/item/dnainjector/telemut/darkbundle(src) - new /obj/item/clothing/suit/hooded/chaplain_hoodie(src) - new /obj/item/card/id/advanced/chameleon(src) - new /obj/item/clothing/shoes/chameleon/noslip(src) - new /obj/item/book/granter/action/spell/summonitem(src) - -/obj/item/storage/box/syndie_kit/loadout/hunter/PopulateContents() - new /obj/item/gun/ballistic/rifle/boltaction/harpoon(src) - new /obj/item/storage/bag/harpoon_quiver(src) - new /obj/item/clothing/suit/hooded/carp_costume/spaceproof(src) - new /obj/item/clothing/mask/gas/carp(src) - new /obj/item/grenade/spawnergrenade/spesscarp(src) - -/obj/item/storage/box/syndie_kit/loadout/bee/PopulateContents() - new /obj/item/clothing/suit/hooded/bee_costume(src) - new /obj/item/clothing/mask/animal/small/bee(src) - new /obj/item/storage/belt/fannypack/yellow(src) - new /obj/item/grenade/spawnergrenade/buzzkill(src) - new /obj/item/grenade/spawnergrenade/buzzkill(src) - new /obj/item/reagent_containers/cup/bottle/beesease(src) - new /obj/item/melee/beesword(src) - -/obj/item/storage/backpack/duffelbag/syndie/loadout/cryomancer/PopulateContents() - new /obj/item/clothing/glasses/cold(src) - new /obj/item/clothing/gloves/color/black(src) - new /obj/item/clothing/mask/chameleon(src) - new /obj/item/clothing/suit/hooded/wintercoat(src) - new /obj/item/clothing/shoes/winterboots(src) - new /obj/item/grenade/gluon(src) - new /obj/item/grenade/gluon(src) - new /obj/item/grenade/gluon(src) - new /obj/item/grenade/gluon(src) - new /obj/item/dnainjector/geladikinesis(src) - new /obj/item/dnainjector/cryokinesis(src) - new /obj/item/gun/energy/temperature/security(src) - new /obj/item/melee/energy/sword(src) - -/obj/item/storage/backpack/duffelbag/syndie/loadout/doctordeath/PopulateContents() - new /obj/item/storage/box/syndie_kit/chemical(src) - new /obj/item/gun/syringe/syndicate(src) - new /obj/item/grenade/clusterbuster/metalfoam(src) - new /obj/item/grenade/clusterbuster/soap(src) - new /obj/item/storage/toolbox/syndicate(src) - new /obj/item/storage/box/syringes(src) - new /obj/item/clothing/suit/toggle/labcoat/mad(src) - new /obj/item/clothing/gloves/latex/nitrile(src) - new /obj/item/grenade/clusterbuster/spawner_spesscarp(src) - new /obj/item/pen/edagger(src) - new /obj/item/clothing/mask/surgical(src) - new /obj/item/pen/sleepy(src) - new /obj/item/clothing/glasses/hud/eyepatch/sci(src) - new /obj/item/megaphone(src) - new /obj/item/toy/figure/chemist(src) - -/obj/item/storage/backpack/duffelbag/syndie/loadout/donkshillkit/PopulateContents() - new /obj/item/circuitboard/machine/vending/donksofttoyvendor(src) - new /obj/item/vending_refill/donksoft(src) - new /obj/item/vending_refill/donksoft(src) - new /obj/item/vending_refill/donksoft(src) - new /obj/item/storage/toolbox/syndicate(src) - new /obj/item/stack/sheet/iron/five(src) - new /obj/item/ammo_box/foambox/riot(src) - new /obj/item/ammo_box/foambox/riot(src) - new /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot(src) - new /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted/riot(src) - new /obj/item/toy/balloon/syndicate(src) - new /obj/item/storage/box/fakesyndiesuit(src) - new /obj/item/storage/box/donkpockets(src) - -/obj/item/storage/backpack/duffelbag/syndie/loadout/downtownspecial/PopulateContents() - new /obj/item/gun/ballistic/automatic/tommygun(src) - new /obj/item/ammo_box/magazine/tommygunm45(src) - new /obj/item/clothing/suit/jacket/det_suit/noir/mafioso(src) - new /obj/item/clothing/under/suit/black/armoured(src) - new /obj/item/clothing/mask/fakemoustache/italian(src) - new /obj/item/switchblade(src) - new /obj/item/clothing/shoes/laceup(src) - new /obj/item/virgin_mary(src) - new /obj/item/reagent_containers/cup/glass/bottle/whiskey(src) - new /obj/item/storage/box/drinkingglasses(src) - new /obj/item/storage/fancy/candle_box(src) - new /obj/item/clothing/glasses/sunglasses(src) - new /obj/item/lighter(src) - new /obj/item/storage/fancy/cigarettes/cigars/cohiba(src) - -/obj/item/storage/box/syndie_kit/loadout/ocelotfoxtrot/PopulateContents() - new /obj/item/gun/ballistic/revolver/ocelot(src) - new /obj/item/ammo_box/a357/peacemaker(src) - new /obj/item/ammo_box/a357/peacemaker(src) - new /obj/item/toy/plush/skyrat/fox (src) - new /obj/item/clothing/suit/jacket/det_suit/noir/ocelot(src) - new /obj/item/clothing/head/beret/sec/ocelot(src) - new /obj/item/storage/belt/holster/chameleon(src) - -/obj/item/storage/box/syndie_kit/loadout/nt_impostor/PopulateContents() - new /obj/item/clothing/under/rank/centcom/officer(src) - new /obj/item/clothing/head/hats/centcom_cap(src) - new /obj/item/clothing/suit/armor/centcom_formal(src) - new /obj/item/clothing/shoes/combat(src) - new /obj/item/radio/headset/headset_cent/impostorsr(src) - new /obj/item/clothing/glasses/sunglasses(src) - new /obj/item/storage/backpack/satchel(src) - new /obj/item/gun/ballistic/revolver/mateba(src) - new /obj/item/ammo_box/a357(src) - new /obj/item/ammo_box/a357(src) - new /obj/item/ammo_box/a357(src) - new /obj/item/modular_computer/pda/heads(src) - new /obj/item/clipboard(src) - new /obj/item/card/id/advanced/chameleon/impostorsr(src) - new /obj/item/stamp/centcom(src) - new /obj/item/storage/belt/sabre(src) - new /obj/item/clothing/gloves/combat(src) - -/obj/item/storage/box/syndie_kit/loadout/lasermanbundle/PopulateContents() - new /obj/item/melee/energy/sword/saber(src) - new /obj/item/book/granter/martial/carp(src) - new /obj/item/clothing/under/syndicate/combat(src) - new /obj/item/clothing/shoes/combat/swat(src) - new /obj/item/clothing/mask/gas/syndicate(src) - new /obj/item/grenade/spawnergrenade/manhacks(src) - for(var/i in 1 to 6) - new /obj/item/pen/edagger(src) diff --git a/modular_skyrat/modules/moretraitoritems/code/weaponry.dm b/modular_skyrat/modules/moretraitoritems/code/weaponry.dm deleted file mode 100644 index 6b240622bf4..00000000000 --- a/modular_skyrat/modules/moretraitoritems/code/weaponry.dm +++ /dev/null @@ -1,32 +0,0 @@ -/obj/item/clothing/head/hats/sus_bowler - name = "odd bowler" - desc = "A deep black bowler. Inside the hat, there is a sleek red S, with a smaller X insignia embroidered within. On closer inspection, the brim feels oddly weighted..." - icon_state = "bowler" - force = 10 - throwforce = 45 - throw_speed = 5 - throw_range = 9 - w_class = WEIGHT_CLASS_SMALL - armour_penetration = 30 //5 points less then a double esword! - sharpness = SHARP_POINTY - attack_verb_continuous = list("slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") - attack_verb_simple = list("slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") - -///obj/item/clothing/head/hats/sus_bowler/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) - //var/caught = hit_atom.hitby(src, FALSE, FALSE, throwingdatum=throwingdatum) - //if(thrownby && !caught) - //addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable, throw_at), thrownby, throw_range+2, throw_speed, null, TRUE), 1) - //else - //return ..() - -///obj/item/clothing/head/hats/sus_bowler/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force, gentle = FALSE, quickstart = TRUE) - //if(ishuman(thrower)) - //var/mob/living/carbon/human/I = thrower - //I.throw_mode_off(THROW_MODE_TOGGLE) //so they can catch it on the return. - //return ..() - -/obj/item/katana/weak/curator //This has the same stats as the curator's claymore - desc = "An ancient Katana. Forged by... Well, it doesn't really say, but surely it's authentic! And sharp to boot!" - force = 15 - block_chance = 30 - armour_penetration = 5 diff --git a/modular_skyrat/modules/robohand/code/robohand.dm b/modular_skyrat/modules/moretraitoritems/code/weapons.dm similarity index 51% rename from modular_skyrat/modules/robohand/code/robohand.dm rename to modular_skyrat/modules/moretraitoritems/code/weapons.dm index a78c973c002..576bca81f2f 100644 --- a/modular_skyrat/modules/robohand/code/robohand.dm +++ b/modular_skyrat/modules/moretraitoritems/code/weapons.dm @@ -1,5 +1,76 @@ #define CALIBRE_14MM "14mm" +/obj/item/gun/ballistic/revolver/ocelot + name = "Colt Peacemaker revolver" + desc = "A modified Peacemaker revolver that chambers .357 ammo. Less powerful than the regular .357, but ricochets a lot more." // We need tension...conflict. The world today has become too soft. We're living in an age where true feelings are suppressed. So we're going to shake things up a bit. We'll create a world dripping with tension... ...a world filled with greed and suspicion, bravery and cowardice. + // this could probably be made funnier by reducing its damage multiplier but also making it so that every fired bullet has the wacky ricochets + // but that's a different plate of cookies for a different glass of milk + icon_state = "c38_panther" + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/cylinder + +/obj/item/ammo_casing/a357/peacemaker + name = ".357 Peacemaker bullet casing" + desc = "A .357 Peacemaker bullet casing." + caliber = CALIBER_357 + projectile_type = /obj/projectile/bullet/a357/peacemaker + +/obj/projectile/bullet/a357/peacemaker + name = ".357 Peacemaker bullet" + damage = 25 + wound_bonus = 0 + ricochets_max = 6 + ricochet_chance = 200 + ricochet_auto_aim_angle = 50 + ricochet_auto_aim_range = 6 + ricochet_incidence_leeway = 80 + ricochet_decay_chance = 1 + +/datum/design/a357/peacemaker + name = "Speed Loader (.357 Peacemaker)" + id = "a357PM" + build_type = AUTOLATHE + materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 2) + build_path = /obj/item/ammo_box/a357/peacemaker + category = list(RND_CATEGORY_HACKED, RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO) + +/obj/item/ammo_box/a357/peacemaker + name = "speed loader (.357 Peacemaker)" + desc = "Designed to quickly reload revolvers." + icon_state = "357" + ammo_type = /obj/item/ammo_casing/a357/peacemaker + max_ammo = 7 + multiple_sprites = AMMO_BOX_PER_BULLET + item_flags = NO_MAT_REDEMPTION + + +/obj/item/clothing/head/hats/sus_bowler + name = "odd bowler" + desc = "A deep black bowler. Inside the hat, there is a sleek red S, with a smaller X insignia embroidered within. On closer inspection, the brim feels oddly weighted..." + icon_state = "bowler" + force = 10 + throwforce = 45 + throw_speed = 5 + throw_range = 9 + w_class = WEIGHT_CLASS_SMALL + armour_penetration = 30 //5 points less then a double esword! + sharpness = SHARP_POINTY + attack_verb_continuous = list("slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts") + attack_verb_simple = list("slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut") + +///obj/item/clothing/head/hats/sus_bowler/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) + //var/caught = hit_atom.hitby(src, FALSE, FALSE, throwingdatum=throwingdatum) + //if(thrownby && !caught) + //addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable, throw_at), thrownby, throw_range+2, throw_speed, null, TRUE), 1) + //else + //return ..() + +///obj/item/clothing/head/hats/sus_bowler/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force, gentle = FALSE, quickstart = TRUE) + //if(ishuman(thrower)) + //var/mob/living/carbon/human/I = thrower + //I.throw_mode_off(THROW_MODE_TOGGLE) //so they can catch it on the return. + //return ..() + + /* * Malorian Arms 3516 14MM * If you have this, you're a badass. @@ -9,18 +80,18 @@ name = "Malorian Arms 3516" desc = "The Malorian Arms 3516 is a 14mm heavy pistol, sporting a titanium frame and unique wooden grip. A custom Dyna-porting and \ direct integral cyber-interlink means only someone with a cyberarm and smartgun link can take full advantage of the pistol's features." - icon = 'modular_skyrat/modules/robohand/icons/3516.dmi' + icon = 'modular_skyrat/modules/moretraitoritems/icons/3516.dmi' icon_state = "3516" w_class = WEIGHT_CLASS_NORMAL accepted_magazine_type = /obj/item/ammo_box/magazine/m14mm can_suppress = FALSE - fire_sound = 'modular_skyrat/modules/robohand/sound/fire2.ogg' - load_sound = 'modular_skyrat/modules/robohand/sound/reload.ogg' - load_empty_sound = 'modular_skyrat/modules/robohand/sound/reload.ogg' - eject_sound = 'modular_skyrat/modules/robohand/sound/release.ogg' - eject_empty_sound = 'modular_skyrat/modules/robohand/sound/release.ogg' + fire_sound = 'modular_skyrat/modules/moretraitoritems/sound/fire2.ogg' + load_sound = 'modular_skyrat/modules/moretraitoritems/sound/reload.ogg' + load_empty_sound = 'modular_skyrat/modules/moretraitoritems/sound/reload.ogg' + eject_sound = 'modular_skyrat/modules/moretraitoritems/sound/release.ogg' + eject_empty_sound = 'modular_skyrat/modules/moretraitoritems/sound/release.ogg' vary_fire_sound = FALSE - rack_sound = 'modular_skyrat/modules/robohand/sound/slide.ogg' + rack_sound = 'modular_skyrat/modules/moretraitoritems/sound/slide.ogg' fire_sound_volume = 100 bolt_wording = "fuckin' slide" reload_time = 0 //FAST AS FUCK BOIS! @@ -29,13 +100,9 @@ /obj/item/gun/ballistic/automatic/pistol/robohand/unrestricted unrestricted = TRUE -//Gun actions - //The gun cannot shoot if you do not have a cyborg arm. /obj/item/gun/ballistic/automatic/pistol/robohand/afterattack(atom/target, mob/living/user, flag, params) //This is where we are checking if the user has a cybernetic arm to USE the gun. ROBOHAND HAS A ROBO HAND - if(ishuman(user)) - return ..() if(!unrestricted) var/mob/living/carbon/human/human_user = user var/obj/item/bodypart/selected_hand = human_user.get_active_hand() @@ -91,10 +158,9 @@ animate(transform = null, time = 0.2 SECONDS) //Magazine stuff - /obj/item/ammo_box/magazine/m14mm name = "pistol magazine (14mm)" - icon = 'modular_skyrat/modules/robohand/icons/3516_mag.dmi' + icon = 'modular_skyrat/modules/moretraitoritems/icons/3516_mag.dmi' icon_state = "14mm" base_icon_state = "14mm" ammo_type = /obj/item/ammo_casing/c14mm @@ -115,3 +181,10 @@ dismemberment = 50 pierces = 1 projectile_piercing = PASSCLOSEDTURF|PASSGRILLE|PASSGLASS + +//nullrod katana +/obj/item/katana/weak/curator //This has the same stats as the curator's claymore + desc = "An ancient Katana. Forged by... Well, it doesn't really say, but surely it's authentic! And sharp to boot!" + force = 15 + block_chance = 30 + armour_penetration = 5 diff --git a/modular_skyrat/modules/robohand/icons/3516.dmi b/modular_skyrat/modules/moretraitoritems/icons/3516.dmi similarity index 100% rename from modular_skyrat/modules/robohand/icons/3516.dmi rename to modular_skyrat/modules/moretraitoritems/icons/3516.dmi diff --git a/modular_skyrat/modules/robohand/icons/3516_mag.dmi b/modular_skyrat/modules/moretraitoritems/icons/3516_mag.dmi similarity index 100% rename from modular_skyrat/modules/robohand/icons/3516_mag.dmi rename to modular_skyrat/modules/moretraitoritems/icons/3516_mag.dmi diff --git a/modular_skyrat/modules/moretraitoritems/icons/alien.dmi b/modular_skyrat/modules/moretraitoritems/icons/alien.dmi new file mode 100644 index 00000000000..16dcaf425de Binary files /dev/null and b/modular_skyrat/modules/moretraitoritems/icons/alien.dmi differ diff --git a/modular_skyrat/modules/robohand/sound/fire.ogg b/modular_skyrat/modules/moretraitoritems/sound/fire.ogg similarity index 100% rename from modular_skyrat/modules/robohand/sound/fire.ogg rename to modular_skyrat/modules/moretraitoritems/sound/fire.ogg diff --git a/modular_skyrat/modules/robohand/sound/fire2.ogg b/modular_skyrat/modules/moretraitoritems/sound/fire2.ogg similarity index 100% rename from modular_skyrat/modules/robohand/sound/fire2.ogg rename to modular_skyrat/modules/moretraitoritems/sound/fire2.ogg diff --git a/modular_skyrat/modules/robohand/sound/release.ogg b/modular_skyrat/modules/moretraitoritems/sound/release.ogg similarity index 100% rename from modular_skyrat/modules/robohand/sound/release.ogg rename to modular_skyrat/modules/moretraitoritems/sound/release.ogg diff --git a/modular_skyrat/modules/robohand/sound/reload.ogg b/modular_skyrat/modules/moretraitoritems/sound/reload.ogg similarity index 100% rename from modular_skyrat/modules/robohand/sound/reload.ogg rename to modular_skyrat/modules/moretraitoritems/sound/reload.ogg diff --git a/modular_skyrat/modules/robohand/sound/slide.ogg b/modular_skyrat/modules/moretraitoritems/sound/slide.ogg similarity index 100% rename from modular_skyrat/modules/robohand/sound/slide.ogg rename to modular_skyrat/modules/moretraitoritems/sound/slide.ogg diff --git a/modular_skyrat/modules/robohand/sound/wakeup.ogg b/modular_skyrat/modules/moretraitoritems/sound/wakeup.ogg similarity index 100% rename from modular_skyrat/modules/robohand/sound/wakeup.ogg rename to modular_skyrat/modules/moretraitoritems/sound/wakeup.ogg diff --git a/modular_skyrat/modules/novaya_ert/code/belt.dm b/modular_skyrat/modules/novaya_ert/code/belt.dm index cb34dbe63fd..46d838e0197 100644 --- a/modular_skyrat/modules/novaya_ert/code/belt.dm +++ b/modular_skyrat/modules/novaya_ert/code/belt.dm @@ -26,6 +26,9 @@ icon_state = "russian_brown_belt" worn_icon_state = "russian_brown_belt" +/obj/item/storage/belt/military/nri/plus_mre/PopulateContents() + new /obj/item/storage/box/nri_survival_pack/raider(src) + /obj/item/storage/belt/military/nri/soldier/PopulateContents() generate_items_inside(list( /obj/item/ammo_box/magazine/akm = 4, diff --git a/modular_skyrat/modules/opposing_force/code/equipment/ammo.dm b/modular_skyrat/modules/opposing_force/code/equipment/ammo.dm index cbdbc89bc19..996fbb1efeb 100644 --- a/modular_skyrat/modules/opposing_force/code/equipment/ammo.dm +++ b/modular_skyrat/modules/opposing_force/code/equipment/ammo.dm @@ -1,124 +1,83 @@ -/datum/opposing_force_equipment/ammo - category = OPFOR_EQUIPMENT_CATEGORY_AMMUNITION +/datum/opposing_force_equipment/ammo_exotic + category = OPFOR_EQUIPMENT_CATEGORY_AMMO_EXOTIC -/datum/opposing_force_equipment/ammo/m45 - item_type = /obj/item/ammo_box/magazine/m45 - description = "An eight-round magazine for the M1911 pistol. Uses .45 caliber ammunition." +/datum/opposing_force_equipment/ammo_exotic/ripper35 + description = "A box of .35 Sol rounds, hollow-tipped for maximum damage against NON-ARMOURED combatants." + item_type = /obj/item/ammo_box/c35sol/ripper -/datum/opposing_force_equipment/ammo/m16 - item_type = /obj/item/ammo_box/magazine/m16 - description = "A thirty-round magazine for the M16 assault rifle. Uses 5.56x45mm ammunition." +/datum/opposing_force_equipment/ammo_exotic/pierce40 + description = "A box of .40 Sol Match rounds, works best against armoured combatants; the box has a warning about being careful for collateral damage." + item_type = /obj/item/ammo_box/c40sol/pierce -/datum/opposing_force_equipment/ammo/akm - item_type = /obj/item/ammo_box/magazine/akm +/datum/opposing_force_equipment/ammo_exotic/fire40 + description = "A box of .40 Sol Incendiary rounds, bullet impacts light the victims aflame." + item_type = /obj/item/ammo_box/c40sol/incendiary -/datum/opposing_force_equipment/ammo/akmbanan - item_type = /obj/item/ammo_box/magazine/akm/banana +/datum/opposing_force_equipment/ammo_exotic/frag40 + description = "A box of .40 Sol Fragmentation rounds, useful for incapacitating your victim ASAP, no matter if they live or die." + item_type = /obj/item/ammo_box/c40sol/fragmentation -/datum/opposing_force_equipment/ammo/mp40 - item_type = /obj/item/ammo_box/magazine/mp40 - description = "A thirty-two round magazine for the MP-40. Uses 9x19mm ammunition." +/datum/opposing_force_equipment/ammo_exotic/magnum + description = "A box of magnum flechette shotgun shells, the first choice munition of many shotgun fanatics." + item_type = /obj/item/ammo_box/advanced/s12gauge/magnum -/datum/opposing_force_equipment/ammo/pps - item_type = /obj/item/ammo_box/magazine/pps +/datum/opposing_force_equipment/ammo_exotic/express + description = "A box of express buckshot shotgun shells, for when the regular shells can't keep up with you." + item_type = /obj/item/ammo_box/advanced/s12gauge/express -/datum/opposing_force_equipment/ammo/ppsh - item_type = /obj/item/ammo_box/magazine/ppsh +/datum/opposing_force_equipment/ammo_exotic/flechette + description = "A box of flechette shotgun shells, tighter spread than buckshot plus more armour damage." + item_type = /obj/item/ammo_box/advanced/s12gauge/flechette -/datum/opposing_force_equipment/ammo/fg42 - item_type = /obj/item/ammo_box/magazine/fg42 - description = "A twenty round magazine for the FG-42. Uses 7.92x57mm ammunition." +/datum/opposing_force_equipment/ammo_exotic/incendiary + description = "A box of dargonsbreath shotgun shells, highly underrated in the hands of someone who knows not to step forward after firing." + item_type = /obj/item/ammo_box/advanced/s12gauge/incendiary -/datum/opposing_force_equipment/ammo/m9mm - item_type = /obj/item/ammo_box/magazine/uzim9mm - description = "A thirty-two round magazine for the mini uzi. Uses 9x19mm ammunition." +/datum/opposing_force_equipment/ammo_exotic/slug + description = "A box of slug shotgun shells, fires only one big fuck-off bullet that wounds extra hard." + item_type = /obj/item/ammo_box/advanced/s12gauge -/datum/opposing_force_equipment/ammo/sol40standard - item_type = /obj/item/ammo_box/magazine/c40sol_rifle/standard - description = "A thirty round magazine for any SolFed rifle." +/datum/opposing_force_equipment/ammo_exotic/hp_slug + description = "A box of hollow point slug shotgun shells, annihilates unarmoured combatants." + item_type = /obj/item/ammo_box/advanced/s12gauge/hp -/datum/opposing_force_equipment/ammo/sol40drum - item_type = /obj/item/ammo_box/magazine/c40sol_rifle/drum - description = "A sixty round drum for any SolFed rifle." +/datum/opposing_force_equipment/ammo_exotic/ap_slug + description = "A box of armour piercing slug shotgun shells, are armoured targets your number one concern? With these shells you'll hardly remember they're wearing any." + item_type = /obj/item/ammo_box/advanced/s12gauge/pt20 -/datum/opposing_force_equipment/ammo/makarov - item_type = /obj/item/ammo_box/magazine/m9mm - description = "A magazine of ammo for the Makarov." +/datum/opposing_force_equipment/ammo_exotic/a357phasic + description = "A speedloader of .357 that ignores structure collision at the cost of some damage." + admin_note = "Bullets ignore walls, has a damage penalty." + item_type = /obj/item/ammo_box/a357/phasic -/datum/opposing_force_equipment/ammo/makarov_fire - item_type = /obj/item/ammo_box/magazine/m9mm/fire - description = "A magazine of incendiary ammunition for the Makarov." - -/datum/opposing_force_equipment/ammo/makarov_ap - item_type = /obj/item/ammo_box/magazine/m9mm/ap - description = "A magazine of armor-piercing ammunition for the Makarov." - -/datum/opposing_force_equipment/ammo/makarov_hp - item_type = /obj/item/ammo_box/magazine/m9mm/hp - description = "A magazine of hollow-point ammunition for the Makarov." - -/datum/opposing_force_equipment/ammo/aps - item_type = /obj/item/ammo_box/magazine/m9mm_aps - description = "A magazine of ammunition for the Stechkin APS." - -/datum/opposing_force_equipment/ammo/aps_fire - item_type = /obj/item/ammo_box/magazine/m9mm_aps/fire - description = "A magazine of incendiary ammunition for the Stechkin APS." - -/datum/opposing_force_equipment/ammo/aps_ap - item_type = /obj/item/ammo_box/magazine/m9mm_aps/ap - description = "A magazine of armor-piercing ammunition for the Stechkin APS." - -/datum/opposing_force_equipment/ammo/aps_hp - item_type = /obj/item/ammo_box/magazine/m9mm_aps/hp - description = "A magazine of hollow-point ammunition for the Stechkin APS." - -/datum/opposing_force_equipment/ammo/a357 - item_type = /obj/item/ammo_box/a357 - description = "A seven-round .357 magnum speedloader for a revolver." - -/datum/opposing_force_equipment/ammo/a357match - item_type = /obj/item/ammo_box/a357/match - description = "A seven-round .357 magnum speedloader for a revolver, loaded with match-grade ammunition that bounces off walls several times." +/datum/opposing_force_equipment/ammo_exotic/a357heartseeker + description = "A speedloader of .357 with homing capabilities." + item_type = /obj/item/ammo_box/a357/heartseeker -/datum/opposing_force_equipment/ammo/sol35_standard - item_type = /obj/item/ammo_box/magazine/c35sol_pistol +/datum/opposing_force_equipment/ammo_exotic/a357peacemaker + description = "A speedloader of .357 that have their impact lessened to highten the odds for ricochet shots." + item_type = /obj/item/ammo_box/a357/peacemaker -/datum/opposing_force_equipment/ammo/sol35_extended - item_type = /obj/item/ammo_box/magazine/c35sol_pistol/stendo - -/datum/opposing_force_equipment/ammo/trappiste585_standard - item_type = /obj/item/ammo_box/magazine/c585trappiste_pistol - -/datum/opposing_force_equipment/ammo/bulldog - name = "Bulldog Magazine" - item_type = /obj/item/ammo_box/magazine/m12g - -/datum/opposing_force_equipment/ammo/bulldogslug - name = "Bulldog Magazine (Slug)" - item_type = /obj/item/ammo_box/magazine/m12g/slug - -/datum/opposing_force_equipment/ammo/bulldogstun - name = "Bulldog Magazine (Stun)" - item_type = /obj/item/ammo_box/magazine/m12g/stun - admin_note = "WARNING: These are essentially the same shots the AI taser-turrets shoot." +/datum/opposing_force_equipment/ammo_exotic/ap45 + description = "An smg magazine of armour piercing .45, used by the c20-r." + item_type = /obj/item/ammo_box/magazine/smgm45/ap -/datum/opposing_force_equipment/ammo/bulldogfire - name = "Bulldog Magazine (Incendiary)" - item_type = /obj/item/ammo_box/magazine/m12g/dragon +/datum/opposing_force_equipment/ammo_exotic/hp45 + description = "An smg magazine of hollow point .45, used by the c20-r." + item_type = /obj/item/ammo_box/magazine/smgm45/hp -/datum/opposing_force_equipment/ammo/bulldogmeteor - name = "Bulldog Magazine (Meteor)" - item_type = /obj/item/ammo_box/magazine/m12g/meteor +/datum/opposing_force_equipment/ammo_exotic/incen45 + description = "An smg magazine of incendiary .45, used by the c20-r." + item_type = /obj/item/ammo_box/magazine/smgm45/incen -/datum/opposing_force_equipment/ammo/c20r - name = "C-20r Magazine" - item_type = /obj/item/ammo_box/magazine/smgm45 +/datum/opposing_force_equipment/ammo_exotic/ap9mm + description = "An smg magazine of armour piercing 9mm, used by the makarov." + item_type = /obj/item/ammo_box/magazine/m9mm/ap -/datum/opposing_force_equipment/ammo/c20rap - name = "C-20r Magazine (AP)" - item_type = /obj/item/ammo_box/magazine/smgm45/ap +/datum/opposing_force_equipment/ammo_exotic/hp9mm + description = "An smg magazine of hollow point 9mm, used by the makarov." + item_type = /obj/item/ammo_box/magazine/m9mm/hp -/datum/opposing_force_equipment/ammo/c20rfire - name = "C-20r Magazine (Incendiary)" - item_type = /obj/item/ammo_box/magazine/smgm45/incen +/datum/opposing_force_equipment/ammo_exotic/incen9mm + description = "An smg magazine of incendiary 9mm, used by the makarov." + item_type = /obj/item/ammo_box/magazine/m9mm/fire diff --git a/modular_skyrat/modules/opposing_force/code/equipment/antagonist_powers.dm b/modular_skyrat/modules/opposing_force/code/equipment/antagonist_powers.dm deleted file mode 100644 index edc34a51c65..00000000000 --- a/modular_skyrat/modules/opposing_force/code/equipment/antagonist_powers.dm +++ /dev/null @@ -1,57 +0,0 @@ -/datum/opposing_force_equipment/antagonist_powers - category = OPFOR_EQUIPMENT_CATEGORY_ANTAGONIST_POWERS - -// Traitor -/datum/opposing_force_equipment/antagonist_powers/uplink - item_type = /obj/item/uplink/opfor - name = "Syndicate Uplink" - description = "An old-school Syndicate uplink without a password and an empty TC account. Perfect for the aspiring operatives." - admin_note = "Traitor uplink without telecrystals." - -/datum/opposing_force_equipment/antagonist_powers/tc1 - item_type = /obj/item/stack/telecrystal - name = "1 Raw Telecrystal" - description = "A telecrystal in its rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." - -/datum/opposing_force_equipment/antagonist_powers/tc5 - item_type = /obj/item/stack/telecrystal/five - name = "5 Raw Telecrystals" - description = "A bunch of telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." - -/datum/opposing_force_equipment/antagonist_powers/tc20 - item_type = /obj/item/stack/telecrystal/twenty - name = "20 Raw Telecrystals" - description = "A bundle of telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." - -/datum/opposing_force_equipment/antagonist_powers/codeword_manual - item_type = /obj/item/codeword_granter - name = "Codeword Manual" - description = "A one-use manual able to impart knowledge of codewords typically used by members of the Syndicate to identify each other in the field covertly." - -// Changeling -/datum/opposing_force_equipment/antagonist_powers/changeling - item_type = /obj/item/antag_granter/changeling - name = "Changeling Injector" - description = "A heavy-duty injector containing a highly infectious virus, turning the user into a \"Changeling\"." - admin_note = "Changeling antag granter." - -// Heretic -/datum/opposing_force_equipment/antagonist_powers/heretic - item_type = /obj/item/antag_granter/heretic - name = "Heretical Book" - description = "A purple book with an eldritch eye on it, capable of making one into a \"Heretic\", one with the Forgotten Gods." - admin_note = "Heretic antag granter." - -// Clock Cultist -/datum/opposing_force_equipment/antagonist_powers/clock_cult - item_type = /obj/item/antag_granter/clock_cultist - name = "Clockwork Contraption" - description = "A cogwheel-shaped device of brass, with a glass lens floating, suspended in the center. Capable of making one become a \"Clock Cultist\"." - admin_note = "Clockwork Cultist (solo) antag granter." - -// Contractor -/datum/opposing_force_equipment/antagonist_powers/contractor - name = "Contractor Bundle" - item_type = /obj/item/storage/box/syndicate/contract_kit - description = "A box containing everything you need to take contracts from the Syndicate. Kidnap people and drop them off at specified locations for rewards in the form of Telecrystals (Usable in the provided uplink) and Contractor Points." - admin_note = "This bundle is a pretty large change-up of how a person plays a round, giving them access to a swathe of new gear, in addition to a contractor tablet. This contractor tablet lets them take on objectives to non-lethally kidnap people in exhange for telecrystals, usable in the provided uplink." diff --git a/modular_skyrat/modules/opposing_force/code/equipment/languages.dm b/modular_skyrat/modules/opposing_force/code/equipment/biology.dm similarity index 67% rename from modular_skyrat/modules/opposing_force/code/equipment/languages.dm rename to modular_skyrat/modules/opposing_force/code/equipment/biology.dm index d45bd98b111..cddf9ab70e9 100644 --- a/modular_skyrat/modules/opposing_force/code/equipment/languages.dm +++ b/modular_skyrat/modules/opposing_force/code/equipment/biology.dm @@ -1,5 +1,5 @@ /datum/opposing_force_equipment/language - category = OPFOR_EQUIPMENT_CATEGORY_LANGUAGES + category = OPFOR_EQUIPMENT_CATEGORY_LANGUAGE item_type = /obj/effect/gibspawner/generic /// The language typepath to be given to the mind's language holder var/language @@ -8,66 +8,77 @@ target.grant_language(language, source = LANGUAGE_MIND) /datum/opposing_force_equipment/language/codespeak - name = "Codespeak" + name = "Codespeak language" description = "Syndicate operatives can use a series of codewords to convey complex information, while sounding like random concepts and drinks to anyone listening in." language = /datum/language/codespeak /datum/opposing_force_equipment/language/narsie - name = "Nar'Sian" + name = "Nar'Sian language" description = "The ancient, blood-soaked, impossibly complex language of Nar'Sian cultists." language = /datum/language/narsie /datum/opposing_force_equipment/language/piratespeak - name = "Piratespeak" + name = "Piratespeak language" description = "The language of space pirates." language = /datum/language/piratespeak /datum/opposing_force_equipment/language/calcic - name = "Calcic" + name = "Calcic language" description = "The disjointed and staccato language of plasmamen. Also understood by skeletons." language = /datum/language/calcic /datum/opposing_force_equipment/language/shadowtongue - name = "Shadowtongue" + name = "Shadowtongue language" description = "What a grand and intoxicating innocence." language = /datum/language/shadowtongue /datum/opposing_force_equipment/language/buzzwords - name = "Buzzwords" + name = "Buzzwords language" description = "A common language to all insects, made by the rhythmic beating of wings." language = /datum/language/buzzwords /datum/opposing_force_equipment/language/xenocommon - name = "Xenomorph" + name = "Xenomorph language" description = "The common tongue of the xenomorphs." language = /datum/language/xenocommon /datum/opposing_force_equipment/language/monkey - name = "Chimpanzee" + name = "Chimpanzee language" description = "Ook ook ook." language = /datum/language/monkey /datum/opposing_force_equipment/language/nekomimetic - name = "Nekomimetic" + name = "Nekomimetic language" description = "To the casual observer, this langauge is an incomprehensible mess of broken Japanese. To the felinids, it's somehow comprehensible." language = /datum/language/nekomimetic /datum/opposing_force_equipment/language/mushroom - name = "Mushroom" + name = "Mushroom language" description = "A language that consists of the sound of periodic gusts of spore-filled air being released." language = /datum/language/mushroom /datum/opposing_force_equipment/language/drone - name = "Drone" + name = "Drone language" description = "A heavily encoded damage control coordination stream, with special flags for hats." language = /datum/language/drone /datum/opposing_force_equipment/language/beachbum - name = "Beachtongue" + name = "Beachtongue language" description = "An ancient language from the distant Beach Planet. People magically learn to speak it under the influence of space drugs." language = /datum/language/beachbum -/datum/opposing_force_equipment/language/aphasia - name = "Gibbering" - description = "It is theorized that any sufficiently brain-damaged person can speak this language." - language = /datum/language/aphasia + +/datum/opposing_force_equipment/organs + category = OPFOR_EQUIPMENT_CATEGORY_ORGANS + +/datum/opposing_force_equipment/organs/xeno + name = "Xeno-organ Implant Kit" + description = "An organ implant kit filled with illegally obtained xenomorph organs." + admin_note = "Gives the ability to place resin structures, spit acid and melt station structures." + item_type = /obj/item/storage/organbox/strange + +/datum/opposing_force_equipment/organs/xeno_eggsac + name = "Xeno-organ plus eggsac Implant Kit" + description = "An organ implant kit filled with illegally obtained xenomorph organs. Includes an eggsac which is capable of birthing the prime species itself." + admin_note = "Gives every xeno organ, including the one that CAN spawn real xenomorphs." + item_type = /obj/item/storage/organbox/strange/eggsac diff --git a/modular_skyrat/modules/opposing_force/code/equipment/bombs.dm b/modular_skyrat/modules/opposing_force/code/equipment/bombs.dm new file mode 100644 index 00000000000..54cdf9307ea --- /dev/null +++ b/modular_skyrat/modules/opposing_force/code/equipment/bombs.dm @@ -0,0 +1,143 @@ +/datum/opposing_force_equipment/bomb_chemical + category = OPFOR_EQUIPMENT_CATEGORY_BOMB_CHEM + +/datum/opposing_force_equipment/bomb_chemical/c4 + item_type = /obj/item/grenade/c4 + description = "A brick of plastic explosives, for breaking open walls, doors, and optionally people." + +/datum/opposing_force_equipment/bomb_chemical/x4 + item_type = /obj/item/grenade/c4/x4 + description = "Similar to C4, but with a stronger blast that is directional instead of circular." + +/datum/opposing_force_equipment/bomb_chemical/minibomb + name = "Syndicate Minibomb" + item_type = /obj/item/grenade/syndieminibomb + description = "The minibomb is a grenade with a five-second fuse. Upon detonation, it will create a small hull breach in addition to dealing high amounts of damage to nearby personnel." + +/datum/opposing_force_equipment/bomb_chemical/minibomb_cluster + name = "Syndicate Minibomb Cluster-Grenade" + admin_note = "Devastating payload, equal explosion size to the average command bridge." + item_type = /obj/item/grenade/clusterbuster/syndieminibomb + +/datum/opposing_force_equipment/bomb_chemical/fragnade + item_type = /obj/item/grenade/frag + description = "A fragmentation grenade that looses pieces of shrapnel after detonating for maximum injury." + +/datum/opposing_force_equipment/bomb_chemical/fire + name = "Incendiary Grenade" + admin_note = "Very mid despite having a scary name." + item_type = /obj/item/grenade/chem_grenade/incendiary + +/datum/opposing_force_equipment/bomb_chemical/fire_cluster + name = "Incendiary Cluster-Grenade" + admin_note = "Room-filling plasmafire that lasts for about 10 seconds." + item_type = /obj/item/grenade/clusterbuster/inferno + +/datum/opposing_force_equipment/bomb_chemical/clf3 + name = "Trifluoride Grenade" + admin_note = "In most cases you want to refer the player to the 'incendiary grenade' instead. This grenade has a huge scale, and spaces non-floored tiles." + item_type = /obj/item/grenade/chem_grenade/clf3 +/* +/datum/opposing_force_equipment/bomb_chemical/clf3_cluster //this fucking thing deletes your station + name = "Trifluoride Cluster-Grenade" + admin_note = "" + item_type = /obj/item/grenade/clusterbuster/clf3 +*/ +/datum/opposing_force_equipment/bomb_chemical/facid + name = "Acid grenade" + admin_note = "This thing will remove most player's clothing." + item_type = /obj/item/grenade/chem_grenade/facid +/* +/datum/opposing_force_equipment/bomb_chemical/facid_cluster //massive collateral. only uncomment if you're OK with all of crew becoming nude + name = "Acid Cluster-Grenade" + item_type = /obj/item/grenade/clusterbuster/facid +*/ +/datum/opposing_force_equipment/bomb_chemical/radnade + item_type = /obj/item/grenade/gluon + description = "A prototype grenade that freezes the target area and unleashes a wave of deadly radiation." + +/datum/opposing_force_equipment/bomb_chemical/henade + item_type = /obj/item/grenade/syndieminibomb/concussion + description = "A grenade intended to concuss and incapacitate enemies. Still rather explosive." + +/datum/opposing_force_equipment/bomb_chemical/anti_grav + name = "Anti-Gravity Grenade" + item_type = /obj/item/grenade/antigravity + +/datum/opposing_force_equipment/bomb_chemical/emp + name = "EMP Grenade" + item_type = /obj/item/grenade/empgrenade + +/datum/opposing_force_equipment/bomb_chemical/flashbang + name = "Flashbang" + item_type = /obj/item/grenade/flashbang + description = "A flash-and-sonic stun grenade, useful for non-lethally incapacitating crowds." + +/datum/opposing_force_equipment/bomb_chemical/smoke + name = "Smoke Grenade" + item_type = /obj/item/grenade/smokebomb + +/datum/opposing_force_equipment/bomb_chemical/soap + name = "Soap cluster-Grenade" + item_type = /obj/item/grenade/clusterbuster/soap + +/datum/opposing_force_equipment/bomb_chemical/moustache + name = "Tearstache Grenade" + item_type = /obj/item/grenade/chem_grenade/teargas/moustache + admin_note = "Puts mustaches on their victims that last for ten minutes." + +/datum/opposing_force_equipment/bomb_chemical/carp + name = "Carp Grenade" + item_type = /obj/item/grenade/spawnergrenade/spesscarp + +/datum/opposing_force_equipment/bomb_chemical/carp_cluster + name = "Carp Cluster-Grenade" + item_type = /obj/item/grenade/clusterbuster/spawner_spesscarp + +/datum/opposing_force_equipment/bomb_chemical/viscerator + name = "Viscerator Delivery Grenade" + item_type = /obj/item/grenade/spawnergrenade/manhacks + description = "A unique grenade that deploys a swarm of viscerators upon activation, which will chase down and shred any non-operatives in the area." + +/datum/opposing_force_equipment/bomb_chemical/viscerator_cluster + name = "Viscerator Delivery cluster-Grenade" + item_type = /obj/item/grenade/clusterbuster/spawner_manhacks + +/datum/opposing_force_equipment/bomb_chemical/nukedelivery + name = "Nuclear Delivery Grenade" + item_type = /obj/item/grenade/spawnergrenade/therealnuke + description = "A very confusing grenade containing 2 dehydrated nuclear operatives. Stand back when primed." + +/datum/opposing_force_equipment/bomb_chemical/buzzkill + name = "Buzzkill Grenade" + item_type = /obj/item/grenade/spawnergrenade/buzzkill + description = "A grenade that release a swarm of angry bees upon activation. These bees indiscriminately attack friend or foe with random toxins. Courtesy of the BLF and Tiger Cooperative." + admin_note = "WARNING: The bee's from this grenade can have almost anything chem-wise into them, and just a few can make a massive swarm of bees(10 bees per!!)" + +/datum/opposing_force_equipment/bomb_chemical/pizza + name = "Pizza Bomb" + item_type = /obj/item/pizzabox/bomb + description = "A pizza box with a bomb cunningly attached to the lid. The timer needs to be set by opening the box; afterwards, opening the box again will trigger the detonation after the timer has elapsed. Comes with free pizza, for you or your target!" + +/datum/opposing_force_equipment/bomb_payload + category = OPFOR_EQUIPMENT_CATEGORY_BOMB_PAYLOAD + +/datum/opposing_force_equipment/bomb_payload/syndicate + name = "Syndicate Bomb" + item_type = /obj/item/sbeacondrop/bomb + description = "A large, powerful bomb that can be wrenched down and armed with a variable timer." + admin_note = "WARNING: This is a pretty big bomb, it can take out entire rooms." + +/datum/opposing_force_equipment/bomb_payload/syndicate_emp + name = "Syndicate EMP Bomb" + item_type = /obj/item/sbeacondrop/emp + description = "A modified version of the Syndicate Bomb that releases a large EMP instead." + +/datum/opposing_force_equipment/bomb_payload/syndicate_sink + name = "Syndicate Power Sink" + item_type = /obj/item/sbeacondrop/powersink + +/datum/opposing_force_equipment/bomb_payload/syndicate_clown_bomb + name = "Syndicate Clown Bomb" + item_type = /obj/item/sbeacondrop/clownbomb + admin_note = "Does not deal any damage, just spawns twenty passive simplemob clowns." diff --git a/modular_skyrat/modules/opposing_force/code/equipment/clothing.dm b/modular_skyrat/modules/opposing_force/code/equipment/clothing.dm index d397c756778..16fbfa9c271 100644 --- a/modular_skyrat/modules/opposing_force/code/equipment/clothing.dm +++ b/modular_skyrat/modules/opposing_force/code/equipment/clothing.dm @@ -1,101 +1,339 @@ -/datum/opposing_force_equipment/clothing - category = OPFOR_EQUIPMENT_CATEGORY_CLOTHING +/datum/opposing_force_equipment/clothing_syndicate + category = OPFOR_EQUIPMENT_CATEGORY_CLOTHING_SYNDICATE -/datum/opposing_force_equipment/clothing/syndiebag - item_type = /obj/item/storage/backpack/duffelbag/syndie - name = "Syndicate Brand Duffelbag" - description = "Thanks to being made from a lighter yet sturdier material, this duffelbag holds just the same as any other duffelbag without the speed penalty of its counterparts." +/datum/opposing_force_equipment/clothing_syndicate/operative + name = "Syndicate Operative" + description = "A tried classic outfit, sporting versatile defensive gear, tactical webbing, a comfortable turtleneck, and even an emergency space-suit box." + item_type = /obj/item/storage/backpack/duffelbag/syndie/operative -/datum/opposing_force_equipment/clothing/vest - item_type = /obj/item/clothing/suit/armor/vest - description = "A basic armored vest, rated for all manner of protections." +/obj/item/storage/backpack/duffelbag/syndie/operative/PopulateContents() //basically old insurgent bundle -nukie mod + new /obj/item/clothing/under/syndicate/skyrat/tactical(src) + new /obj/item/clothing/under/syndicate/skyrat/tactical/skirt(src) + new /obj/item/clothing/suit/armor/bulletproof(src) + new /obj/item/clothing/shoes/combat(src) + new /obj/item/clothing/gloves/tackler/combat(src) + new /obj/item/clothing/mask/gas/syndicate(src) + new /obj/item/storage/belt/military(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + new /obj/item/clothing/glasses/sunglasses(src) + new /obj/item/storage/box/syndie_kit/space_suit(src) -/datum/opposing_force_equipment/clothing/ballistic - item_type = /obj/item/clothing/suit/armor/bulletproof - description = "A bulletproof vest, for the aspiring warfighter." +/datum/opposing_force_equipment/clothing_syndicate/engineer + name = "Syndicate Engineer" + description = "A spin on the classic outfit, for those whose hands are never clean. Trades defensive choices for utility. Comes with an emergency space-suit box." + item_type = /obj/item/storage/backpack/duffelbag/syndie/engineer -/datum/opposing_force_equipment/clothing/laser - item_type = /obj/item/clothing/suit/armor/laserproof - description = "A laserproof vest, for the aspiring bane of security." +/obj/item/storage/backpack/duffelbag/syndie/engineer/PopulateContents() + new /obj/item/clothing/under/syndicate/skyrat/overalls(src) + new /obj/item/clothing/under/syndicate/skyrat/overalls/skirt(src) + new /obj/item/clothing/suit/armor/bulletproof(src) + new /obj/item/clothing/shoes/combat(src) + new /obj/item/clothing/gloves/combat(src) + new /obj/item/clothing/mask/gas/syndicate(src) + new /obj/item/storage/belt/utility/syndicate(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + new /obj/item/clothing/glasses/meson/night(src) + new /obj/item/storage/box/syndie_kit/space_suit(src) -/datum/opposing_force_equipment/clothing/swat - item_type = /obj/item/clothing/suit/armor/swat - description = "A superheavy armor suit purpose-built to ensure all injuries are pushovers. WARNING: Not spaceproof." +/datum/opposing_force_equipment/clothing_syndicate/spy + name = "Syndicate Spy" + description = "They don't have to know who you are, and they won't. Comes with emergency space-suit box." + item_type = /obj/item/storage/backpack/duffelbag/syndie/spy -/datum/opposing_force_equipment/clothing/helmet - item_type = /obj/item/clothing/head/helmet/swat - description = "A red-striped SWAT helmet. More robust than the standard-issue Nanotrasen security issue helmet, and spaceproof to boot." +/obj/item/storage/backpack/duffelbag/syndie/spy/PopulateContents() + new /obj/item/clothing/under/suit/black/armoured(src) + new /obj/item/clothing/under/suit/black/skirt/armoured(src) + new /obj/item/clothing/suit/jacket/det_suit/noir/armoured(src) + new /obj/item/storage/belt/holster/detective/dark(src) + new /obj/item/clothing/head/frenchberet/armoured(src) + new /obj/item/clothing/shoes/laceup(src) + new /obj/item/clothing/neck/tie/red/hitman(src) + new /obj/item/clothing/mask/gas/syndicate/ds(src) //a red spy is in the base + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + new /obj/item/clothing/glasses/sunglasses(src) + new /obj/item/hhmirror/syndie(src) + new /obj/item/storage/box/syndie_kit/space_suit(src) -/datum/opposing_force_equipment/clothing/syndierig - item_type = /obj/item/storage/belt/military +/datum/opposing_force_equipment/clothing_syndicate/maid + name = "Syndicate Maid" + description = "..." + item_type = /obj/item/storage/backpack/duffelbag/syndie/maid -/datum/opposing_force_equipment/clothing/assaultbelt - item_type = /obj/item/storage/belt/military/assault +/obj/item/storage/backpack/duffelbag/syndie/maid/PopulateContents() //by far the weakest bundle + new /obj/item/clothing/under/syndicate/skyrat/maid(src) + new /obj/item/clothing/gloves/combat/maid(src) + new /obj/item/clothing/head/costume/maidheadband/syndicate(src) + new /obj/item/clothing/shoes/laceup(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) -/datum/opposing_force_equipment/clothing/bandolier - item_type = /obj/item/storage/belt/bandolier +/datum/opposing_force_equipment/clothing_syndicate/cybersun_operative + name = "Cybersun Operative" + description = "For the most covert of ops. Comes with emergency space-suit box." + item_type = /obj/item/storage/backpack/duffelbag/syndie/cybersun_operative -/datum/opposing_force_equipment/clothing/grenades - item_type = /obj/item/storage/belt/grenade - description = "A belt for holding grenades. Does not come with grenades unfortunately." +/obj/item/storage/backpack/duffelbag/syndie/cybersun_operative/PopulateContents() //drip maxxed + new /obj/item/clothing/under/syndicate/combat(src) + new /obj/item/clothing/suit/armor/bulletproof(src) + new /obj/item/clothing/shoes/combat(src) + new /obj/item/clothing/gloves/combat(src) + new /obj/item/clothing/mask/gas/sechailer/syndicate(src) + new /obj/item/clothing/glasses/meson/night(src) + new /obj/item/storage/belt/military/assault(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + new /obj/item/storage/box/syndie_kit/space_suit(src) -/datum/opposing_force_equipment/clothing/chameleon_set - name = "Chameleon Kit" - item_type = /obj/item/storage/box/syndie_kit/chameleon - description = "A box containing a set of chameleon gear, perfect for disguise and infiltration." +/datum/opposing_force_equipment/clothing_syndicate/cybersun_hacker + name = "Cybersun Hacker" + description = "Some space-farers believe the infamous Space Ninja is no longer around, and they are wrong." + item_type = /obj/item/storage/backpack/duffelbag/syndie/cybersun_hacker -/datum/opposing_force_equipment/clothing/ablative_coat - name = "Ablative Trenchcoat" - item_type = /obj/item/clothing/suit/hooded/ablative - description = "A hooded coat that can be worn above a jumpsuit, allowing you to reflect and absorb energy weapons." +/obj/item/storage/backpack/duffelbag/syndie/cybersun_hacker/PopulateContents() + new /obj/item/clothing/under/syndicate/ninja(src) + new /obj/item/clothing/shoes/combat(src) + new /obj/item/clothing/gloves/combat(src) + new /obj/item/clothing/mask/gas/ninja(src) + new /obj/item/clothing/glasses/hud/health/night/meson(src) //damn its sexy + new /obj/item/storage/belt/military/assault(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) -//NRI larping equipment here +/datum/opposing_force_equipment/clothing_syndicate/lone_gunman + name = "Lone Gunman" + description = "My name is not important." + admin_note = "Looks unarmoured, yet is very armoured" + item_type = /obj/item/storage/backpack/duffelbag/syndie/lone_gunman -/datum/opposing_force_equipment/clothing/nrihelm - item_type = /obj/item/clothing/head/helmet/rus_helmet +/obj/item/storage/backpack/duffelbag/syndie/lone_gunman/PopulateContents() + new /obj/item/clothing/under/pants/track/robohand(src) + new /obj/item/clothing/glasses/sunglasses/robohand(src) + new /obj/item/clothing/suit/jacket/trenchcoat/gunman(src) + new /obj/item/clothing/shoes/combat(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) -/datum/opposing_force_equipment/clothing/nriberet - item_type = /obj/item/clothing/head/beret/sec/nri - name = "NRI Commander Beret" - description = "An armored beret worn by high-ranking NRI officers" -/datum/opposing_force_equipment/clothing/nrijumpsuit - item_type = /obj/item/clothing/under/costume/nri +/datum/opposing_force_equipment/clothing_sol + category = OPFOR_EQUIPMENT_CATEGORY_CLOTHING_SOL -/datum/opposing_force_equipment/clothing/nribelt - item_type = /obj/item/storage/belt/military/nri +/datum/opposing_force_equipment/clothing_sol/sol_militant + name = "Sol Militant" + description = "There is a war being fought, and its taking place right here." + admin_note = "Uniquely strong power armour." + item_type = /obj/item/storage/backpack/ert/odst/hecu/sol_militant -//end of NRI larp equipment +/obj/item/storage/backpack/ert/odst/hecu/sol_militant/PopulateContents() + new /obj/item/clothing/under/rank/security/officer/hecu(src) + new /obj/item/clothing/suit/space/hev_suit/pcv(src) + new /obj/item/clothing/head/helmet/space/hev_suit/pcv(src) + new /obj/item/storage/belt/military/assault/hecu(src) + new /obj/item/clothing/mask/gas/hecu2(src) + new /obj/item/clothing/shoes/combat(src) + new /obj/item/clothing/gloves/combat(src) + new /obj/item/clothing/glasses/night(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) -/datum/opposing_force_equipment/clothing/holster - item_type = /obj/item/storage/belt/holster/chameleon - description = "A chameleon holster that fits into your belt. Designed to hold one sidearm and a spare load of ammunition, it also allows you to spin \ - your revolver, if you have one." +/datum/opposing_force_equipment/clothing_sol/dogginos + name = "Dogginos Courier" + description = "You're just doing your job." + item_type = /obj/item/storage/backpack/satchel/leather/dogginos -/datum/opposing_force_equipment/clothing/holsternk - item_type = /obj/item/storage/belt/holster/nukie - description = "A holster retrieved from a nuclear operative. Able to hold any two types of weaponry or ammo as long as it is not extremely large. \ - Expect security to be not so friendly if they see you wearing one of these..." +/obj/item/storage/backpack/satchel/leather/dogginos/PopulateContents() + new /obj/item/clothing/under/pizza(src) + new /obj/item/clothing/suit/pizzaleader(src) + new /obj/item/clothing/suit/toggle/jacket/hoodie/pizza(src) + new /obj/item/clothing/head/pizza(src) + new /obj/item/clothing/head/soft/red(src) + new /obj/item/clothing/glasses/betterunshit(src) + new /obj/item/clothing/mask/fakemoustache/italian(src) + new /obj/item/clothing/shoes/sneakers/red(src) + new /obj/item/radio/headset/headset_cent/impostorsr(src) + new /obj/item/card/id/advanced/chameleon(src) -//modsuits in 2022 +/datum/opposing_force_equipment/clothing_sol/impostor + name = "CentCom Impostor" + description = "Don't ask us how we got this. Comes with special agent ID pre-equipped with COMMAND access." + item_type = /obj/item/storage/backpack/duffelbag/syndie/impostor -/datum/opposing_force_equipment/clothing/basicmod - name = "Advanced MODsuit" - item_type = /obj/item/mod/control/pre_equipped/advanced - description = "An advanced version of Nakamura Engineering's classic suit, shining with a white, acid and fire resistant polish." +/obj/item/storage/backpack/duffelbag/syndie/impostor/PopulateContents() + new /obj/item/clothing/under/rank/centcom/officer(src) + new /obj/item/clothing/under/rank/centcom/officer_skirt(src) + new /obj/item/clothing/head/hats/centcom_cap(src) + new /obj/item/clothing/suit/armor/centcom_formal(src) + new /obj/item/clothing/shoes/combat(src) + new /obj/item/radio/headset/headset_cent/impostorsr(src) + new /obj/item/clothing/glasses/sunglasses(src) + new /obj/item/clipboard(src) + new /obj/item/card/id/advanced/chameleon/impostorsr(src) //this thing has bridge access, and no one knows about that + new /obj/item/stamp/centcom(src) + new /obj/item/clothing/gloves/combat(src) -/datum/opposing_force_equipment/clothing/nukiemod - name = "Blood-Red MODsuit" - item_type = /obj/item/mod/control/pre_equipped/nuclear/unrestricted - description = "A suit designed by Gorlex Marauders, offering armor ruled illegal in most of Spinward Stellar." -/datum/opposing_force_equipment/clothing/elitemod - name = "Elite MODsuit" - item_type = /obj/item/mod/control/pre_equipped/elite - description = "An elite suit upgraded by Cybersun Industries, offering upgraded armor values." +/datum/opposing_force_equipment/clothing_pirate + category = OPFOR_EQUIPMENT_CATEGORY_CLOTHING_PIRATE + +/datum/opposing_force_equipment/clothing_pirate/space_pirate + name = "Space Pirate" + description = "Did you fall overboard?" + item_type = /obj/item/storage/backpack/duffelbag/syndie/space_pirate + +/obj/item/storage/backpack/duffelbag/syndie/space_pirate/PopulateContents() + new /obj/item/clothing/under/costume/pirate(src) + new /obj/item/clothing/suit/space/pirate(src) + new /obj/item/clothing/head/helmet/space/pirate(src) + new /obj/item/clothing/head/costume/pirate/armored(src) + new /obj/item/clothing/shoes/pirate/armored(src) + new /obj/item/clothing/glasses/eyepatch(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + +/datum/opposing_force_equipment/clothing_pirate/akula + name = "Azulean Boarder" + description = "Advanced Azulean pirate gear, akin to riot-armour yet space-proofed. Never take on an Azulean boarder in zero-gravity." + admin_note = "Uniquely spaceproofed." + item_type = /obj/item/storage/backpack/duffelbag/syndie/akula + +/obj/item/storage/backpack/duffelbag/syndie/akula/PopulateContents() + new /obj/item/clothing/under/skinsuit(src) + new /obj/item/clothing/suit/armor/riot/skinsuit_armor(src) + new /obj/item/clothing/head/helmet/space/skinsuit_helmet(src) + new /obj/item/clothing/gloves/tackler/combat(src) //tackles in space + new /obj/item/clothing/shoes/combat(src) + new /obj/item/storage/belt/military(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + +/datum/opposing_force_equipment/clothing_pirate/nri_soldier + name = "NRI Soldier" + description = "The station failed the inspection, now they have to deal with you." + item_type = /obj/item/storage/backpack/industrial/cin_surplus/forest/nri_soldier + +/obj/item/storage/backpack/industrial/cin_surplus/forest/nri_soldier/PopulateContents() + new /obj/item/clothing/under/syndicate/rus_army(src) + new /obj/item/clothing/shoes/combat(src) + new /obj/item/clothing/gloves/tackler/combat(src) + new /obj/item/clothing/mask/gas/hecu2(src) + new /obj/item/clothing/suit/armor/vest/marine(src) + new /obj/item/clothing/head/beret/sec/nri(src) + new /obj/item/storage/belt/military/nri/plus_mre(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + new /obj/item/clothing/glasses/sunglasses(src) + +/datum/opposing_force_equipment/clothing_pirate/heister + name = "Professional" + description = "It's payday." + admin_note = "Has uniquely strong armour." + item_type = /obj/item/storage/backpack/duffelbag/syndie/heister + +/obj/item/storage/backpack/duffelbag/syndie/heister/PopulateContents() + var/obj/item/clothing/new_mask = new /obj/item/clothing/mask/gas/clown_hat(src) //-animal mask +clow mask + new_mask.set_armor(new_mask.get_armor().generate_new_with_specific(list( + MELEE = 30, + BULLET = 25, + LASER = 25, + ENERGY = 25, + BOMB = 0, + BIO = 0, + FIRE = 100, + ACID = 100, + ))) + new /obj/item/storage/box/syndie_kit/space_suit(src) + new /obj/item/clothing/gloves/latex/nitrile/heister(src) + new /obj/item/clothing/under/suit/black(src) + new /obj/item/clothing/under/suit/black/skirt(src) + new /obj/item/clothing/neck/tie/red/hitman(src) + new /obj/item/clothing/shoes/laceup(src) + new /obj/item/clothing/suit/jacket/det_suit/noir/heister(src) + new /obj/item/clothing/glasses/sunglasses(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + new /obj/item/restraints/handcuffs/cable/zipties(src) + new /obj/item/restraints/handcuffs/cable/zipties(src) + + +/datum/opposing_force_equipment/clothing_magic + category = OPFOR_EQUIPMENT_CATEGORY_CLOTHING_MAGIC + +/datum/opposing_force_equipment/clothing_magic/wizard + name = "Wizard" + description = "Basic colored wizard attire." + item_type = /obj/item/storage/backpack/satchel/leather/wizard + +/obj/item/storage/backpack/satchel/leather/wizard/PopulateContents() + switch(pick(list("yellow", "blue", "red", "black"))) + if("yellow") + new /obj/item/clothing/head/wizard/yellow(src) + new /obj/item/clothing/suit/wizrobe/yellow(src) + if("blue") + new /obj/item/clothing/head/wizard(src) + new /obj/item/clothing/suit/wizrobe(src) + if("red") + new /obj/item/clothing/head/wizard/red(src) + new /obj/item/clothing/suit/wizrobe/red(src) + if("black") + new /obj/item/clothing/head/wizard/black(src) + new /obj/item/clothing/suit/wizrobe/black(src) + new /obj/item/staff(src) + new /obj/item/clothing/shoes/sandal/magic(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + +/datum/opposing_force_equipment/clothing_magic/wizard_broom + name = "Broom Wizard" + description = "A wizard with a broom, technically a witch." + item_type = /obj/item/storage/backpack/satchel/leather/wizard_broom + +/obj/item/storage/backpack/satchel/leather/wizard_broom/PopulateContents() + new /obj/item/clothing/suit/wizrobe/marisa(src) + new /obj/item/clothing/head/wizard/marisa(src) + new /obj/item/staff/broom(src) + new /obj/item/clothing/shoes/sneakers/marisa(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + +/datum/opposing_force_equipment/clothing_magic/wizard_tape + name = "Tape Wizard" + description = "A wizard outfit, but hand-crafted. Very nice." + item_type = /obj/item/storage/backpack/satchel/leather/wizard_tape + +/obj/item/storage/backpack/satchel/leather/wizard_tape/PopulateContents() + new /obj/item/clothing/suit/wizrobe/tape(src) + new /obj/item/clothing/head/wizard/tape(src) + new /obj/item/staff/tape(src) + new /obj/item/clothing/shoes/sandal/magic(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + +/datum/opposing_force_equipment/clothing_magic/zealot + name = "Zealot" + description = "Spell-casting is outlawed, not like that'll stop you though." + item_type = /obj/item/storage/backpack/satchel/leather/zealot + +/obj/item/storage/backpack/satchel/leather/zealot/PopulateContents() + new /obj/item/clothing/suit/hooded/cultrobes/eldritch(src) + new /obj/item/clothing/glasses/hud/health/night/cultblind_unrestricted(src) + new /obj/item/clothing/shoes/cult(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + +/datum/opposing_force_equipment/clothing_magic/narsian + name = "Nar'Sien Prophet" + description = "An overshadowed cult following, whom incidentally thrive best in the dark." + item_type = /obj/item/storage/backpack/satchel/leather/narsian + +/obj/item/storage/backpack/satchel/leather/narsian/PopulateContents() + new /obj/item/clothing/suit/hooded/cultrobes/hardened(src) + new /obj/item/clothing/head/hooded/cult_hoodie/hardened(src) + new /obj/item/clothing/glasses/hud/health/night/cultblind_unrestricted/narsie(src) + new /obj/item/clothing/shoes/cult/alt(src) + new /obj/item/bedsheet/cult(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + -/datum/opposing_force_equipment/clothing/infiltratormod - name = "Infiltrator MODsuit" - item_type = /obj/item/mod/control/pre_equipped/infiltrator - description = "A specialized infiltration suit, developed by the Roseus Galactic Actors Guild to strike fear and awe into the hearts of the public." - admin_note = "WARNING: This armor causes an AOE mood debuff for anyone without the traitor antag datum." diff --git a/modular_skyrat/modules/opposing_force/code/equipment/explosives.dm b/modular_skyrat/modules/opposing_force/code/equipment/explosives.dm deleted file mode 100644 index ba2318e7ffe..00000000000 --- a/modular_skyrat/modules/opposing_force/code/equipment/explosives.dm +++ /dev/null @@ -1,74 +0,0 @@ -/datum/opposing_force_equipment/bomb - category = OPFOR_EQUIPMENT_CATEGORY_EXPLOSIVES - -/datum/opposing_force_equipment/bomb/henade - item_type = /obj/item/grenade/syndieminibomb/concussion - description = "A grenade intended to concuss and incapacitate enemies. Still rather explosive." - -/datum/opposing_force_equipment/bomb/fragnade - item_type = /obj/item/grenade/frag - description = "A fragmentation grenade that looses pieces of shrapnel after detonating for maximum injury." - -/datum/opposing_force_equipment/bomb/radnade - item_type = /obj/item/grenade/gluon - description = "A prototype grenade that freezes the target area and unleashes a wave of deadly radiation." - admin_note = "WARNING: Makes a giant square of ice, and also, does rad damage in the same AOE." - -/datum/opposing_force_equipment/bomb/c4 - item_type = /obj/item/grenade/c4 - description = "A brick of plastic explosives, for breaking open walls, doors, and optionally people." - -/datum/opposing_force_equipment/bomb/x4 - item_type = /obj/item/grenade/c4/x4 - description = "Similar to C4, but with a stronger blast that is directional instead of circular." - -/datum/opposing_force_equipment/bomb/syndicate - name = "Syndicate Bomb" - item_type = /obj/item/sbeacondrop/bomb - description = "A large, powerful bomb that can be wrenched down and armed with a variable timer." - admin_note = "WARNING: This is a pretty big bomb, it can take out entire rooms." - -/datum/opposing_force_equipment/bomb/syndicate_emp - name = "Syndicate EMP Bomb" - item_type = /obj/item/sbeacondrop/emp - description = "A modified version of the Syndicate Bomb that releases a large EMP instead." - -/datum/opposing_force_equipment/bomb/minibomb - name = "Syndicate Minibomb" - item_type = /obj/item/grenade/syndieminibomb - description = "The minibomb is a grenade with a five-second fuse. Upon detonation, it will create a small hull breach \ - in addition to dealing high amounts of damage to nearby personnel." - -/datum/opposing_force_equipment/bomb/pizza - name = "Pizza Bomb" - item_type = /obj/item/pizzabox/bomb - description = "A pizza box with a bomb cunningly attached to the lid. The timer needs to be set by opening the box; afterwards, \ - opening the box again will trigger the detonation after the timer has elapsed. Comes with free pizza, for you or your target!" - -/datum/opposing_force_equipment/bomb/nukedelivery - name = "Nuclear Delivery Grenade" - item_type = /obj/item/grenade/spawnergrenade/therealnuke - description = "A very confusing grenade containing 2 dehydrated nuclear operatives. Stand back when primed." - -/datum/opposing_force_equipment/bomb/viscerator - name = "Viscerator Delivery Grenade" - item_type = /obj/item/grenade/spawnergrenade/manhacks - description = "A unique grenade that deploys a swarm of viscerators upon activation, which will chase down and shred \ - any non-operatives in the area." - -/datum/opposing_force_equipment/bomb/buzzkill - name = "Buzzkill Grenade" - item_type = /obj/item/grenade/spawnergrenade/buzzkill - description = "A grenade that release a swarm of angry bees upon activation. These bees indiscriminately attack friend or foe \ - with random toxins. Courtesy of the BLF and Tiger Cooperative." - admin_note = "WARNING: The bee's from this grenade can have almost anything chem-wise into them, and just a few can make a massive swarm of bees(10 bees per!!)" - -/datum/opposing_force_equipment/bomb/bonebang - name = "Bonebang" - item_type = /obj/item/grenade/stingbang/bonebang - description = "A horrifying grenade filled with what looks to be bone and gore, which upon detonation will fill the room you're in with bone fragments." - -/datum/opposing_force_equipment/bomb/flashbang - name = "Flashbang" - item_type = /obj/item/grenade/flashbang - description = "A flash-and-sonic stun grenade, useful for non-lethally incapacitating crowds." diff --git a/modular_skyrat/modules/opposing_force/code/equipment/gadgets.dm b/modular_skyrat/modules/opposing_force/code/equipment/gadgets.dm new file mode 100644 index 00000000000..0a81d7fb918 --- /dev/null +++ b/modular_skyrat/modules/opposing_force/code/equipment/gadgets.dm @@ -0,0 +1,197 @@ +/datum/opposing_force_equipment/gadget + category = OPFOR_EQUIPMENT_CATEGORY_GADGET + +/datum/opposing_force_equipment/gadget/agentcard + name = "Agent Card" + item_type = /obj/item/card/id/advanced/chameleon + description = "A highly advanced chameleon ID card. Touch this card on another ID card or player to choose which accesses to copy. Has special magnetic properties which force it to the front of wallets." + +/datum/opposing_force_equipment/gadget/chameleonheadsetdeluxe + name = "Advanced Chameleon Headset" + item_type = /obj/item/radio/headset/chameleon/advanced + description = "A premium model Chameleon Headset. All the features you love of the original, but now with flashbang \ + protection, voice amplification, memory-foam, HD Sound Quality, and extra-wide spectrum dial. Usually reserved \ + for high-ranking Cybersun officers, a few spares have been reserved for field agents." + +/datum/opposing_force_equipment/gadget/smtheft_kit + admin_note = "A kit liberated from Progression Traitor, allows someone to cut off a piece of the SM. Mishandling of the sliver can result in user being dusted. Upon successful extraction the SM will gain a quirk that turns its delamination countdown from its usual 15 seconds (at 0 Integrity) to 5 seconds; it will also slowly gather up 800 energy, potentially setting it on course for delamination." + item_type = /obj/item/storage/box/syndie_kit/supermatter + +/datum/opposing_force_equipment/gadget/nuketheft_kit + admin_note = "A kit liberated from Progression Traitor, allows someone to screw open and secure the nuclear payload within the vault. Once secured it is mechanically irretrievable." + item_type = /obj/item/storage/box/syndie_kit/nuke + +/datum/opposing_force_equipment/gadget/holoparasite + item_type = /obj/item/guardiancreator/tech/choose/traitor + admin_note = "Lets a ghost take control of a guardian spirit bound to the user. RRs both the ghost and user on death." + +/datum/opposing_force_equipment/gadget/stimpack + name = "Stimulant Medipen" + item_type = /obj/item/reagent_containers/hypospray/medipen/stimulants + +/datum/opposing_force_equipment/gadget/gorilla_cubes + name = "Box of Gorilla Cubes" + item_type = /obj/item/storage/box/gorillacubes + description = "A box with three gorilla cubes. Eat big to get big. \ + Caution: Product may rehydrate when exposed to water." + +/datum/opposing_force_equipment/gadget/sentry_gun + name = "Toolbox Sentry Gun" + item_type = /obj/item/storage/toolbox/emergency/turret + description = "A disposable sentry gun deployment system cleverly disguised as a toolbox, apply wrench for functionality." + admin_note = "Needs a combat-wrench to be used." + +/datum/opposing_force_equipment/gadget/combatmedkit + name = "Syndicate Combat Medic Kit" + item_type = /obj/item/storage/medkit/tactical + description = "This first aid kit is a suspicious black and red. Included is a number of atropine medipens \ + for rapid stabilization, sutures and regenerative mesh for wound treatment, and patches \ + for faster healing on the field. Also comes with basic medical tools and sterlizer." + +/datum/opposing_force_equipment/gadget/combatmedkit_premium + name = "Syndicate Combat Medical Suite" + item_type = /obj/item/storage/medkit/tactical/premium + description = "This first aid kit is a suspicious black and red. Included is an unloaded combat chemical injector \ + for suit-penetrative chem delivery, a medical science night vision HUD for quick identification of injured personnel and chemical supplies, \ + improved medical supplies, including Interdyne-approved pharmaceuticals, a hacked cybernetic surgery toolset arm implant, \ + and some helpful MODsuit modules for for field medical use and operative physiopharmaceutical augmentation." + +/datum/opposing_force_equipment/gadget/hypnoflash + name = "Hypnotic Flash" + item_type = /obj/item/assembly/flash/hypnotic + description = "A modified flash able to hypnotize targets. If the target is not in a mentally vulnerable state, it will only confuse and pacify them temporarily." + admin_note = "Able to hypnotize people with the next phrase said after exposure." + +/datum/opposing_force_equipment/gadget/hypnobang + name = "Hypnotic Flashbang" + item_type = /obj/item/grenade/hypnotic + description = "A modified flashbang able to hypnotize targets. If the target is not in a mentally vulnerable state, it will only confuse and pacify them temporarily." + admin_note = "Able to hypnotize people with the next phrase said after exposure." + + +/datum/opposing_force_equipment/gadget_stealth + category = OPFOR_EQUIPMENT_CATEGORY_GADGET_STEALTH + +/datum/opposing_force_equipment/gadget_stealth/emag + name = "Cryptographic Sequencer" + item_type = /obj/item/card/emag + description = "An electromagnetic ID card used to break machinery and disable safeties. Notoriously used by Syndicate agents, now commonly traded hardware at blackmarkets." + +/datum/opposing_force_equipment/gadget_stealth/doormag + name = "Airlock Override Card" + item_type = /obj/item/card/emag/doorjack + description = "Identifies commonly as a \"doorjack\", this illegally modified ID card can disrupt airlock electronics. Has a self recharging cell." + +/datum/opposing_force_equipment/gadget_stealth/stoolbelt + name = "Syndicate Toolbelt" + description = "A fully supplied toolbelt, includes combat-grade wrench." + item_type = /obj/item/storage/belt/utility/syndicate + +/datum/opposing_force_equipment/gadget_stealth/syndiejaws + name = "Syndicate Jaws of Life" + item_type = /obj/item/crowbar/power/syndicate + description = "Based on a Nanotrasen model, this powerful tool can be used as both a crowbar and a pair of wirecutters. \ + In its crowbar configuration, it can be used to force open airlocks. Very useful for entering the station or its departments." + +/datum/opposing_force_equipment/gadget_stealth/jammer + name = "Radio Jammer" + item_type = /obj/item/jammer + +/datum/opposing_force_equipment/gadget_stealth/flatsatchel + item_type = /obj/item/storage/backpack/satchel/flat/with_tools + +/datum/opposing_force_equipment/gadget_stealth/chameleon + description = "A set of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more! \ + Due to budget cuts, the shoes don't provide protection against slipping and skillchips are sold separately." + item_type = /obj/item/storage/box/syndie_kit/chameleon + +/datum/opposing_force_equipment/gadget_stealth/throwables + name = "Box of Throwing Weapons" + description = "A box of shurikens and reinforced bolas from ancient Earth martial arts. They are highly effective \ + throwing weapons. The bolas can knock a target down and the shurikens will embed into limbs." + item_type = /obj/item/storage/box/syndie_kit/throwing_weapons + +/datum/opposing_force_equipment/gadget_stealth/emp_box + name = "EMP kit" + description = "A box full of EMP grenades, perfect for disabling security's gear." + item_type = /obj/item/storage/box/syndie_kit/emp + +/datum/opposing_force_equipment/gadget_stealth/poisonkit + name = "Poison Kit" + description = "An assortment of deadly chemicals packed into a compact box. Comes with a syringe for more precise application." + item_type = /obj/item/storage/box/syndie_kit/chemical + +/datum/opposing_force_equipment/gadget_stealth/sleepypen + name = "Sleepy Pen" + description = "A pen filled with sleeping agents. Will knock a victim out after a moment." + item_type = /obj/item/pen/sleepy + +/datum/opposing_force_equipment/gadget_stealth/carp + name = "Dehydrated Spacecarp" + description = "A spacecarp plushie which turns into the real deal when wet." + item_type = /obj/item/toy/plush/carpplushie/dehy_carp + +/datum/opposing_force_equipment/gadget_stealth/mailcounterfeit + item_type = /obj/item/storage/mail_counterfeit_device + +/datum/opposing_force_equipment/gadget_stealth/glue + item_type = /obj/item/syndie_glue + +/datum/opposing_force_equipment/gadget_stealth/shotglass + name = "Extra Large Syndicate Shotglasses" + description = "These modified shot glasses can hold up to 50 units of booze while looking like a regular 15 unit model \ + guaranteed to knock someone on their ass with a hearty dose of bacchus blessing. Look for the Snake underneath \ + to tell these are the real deal. Box of 7." + item_type = /obj/item/storage/box/syndieshotglasses + +/datum/opposing_force_equipment/gadget_stealth/ai_module + name = "Syndicate AI Law Module" + item_type = /obj/item/ai_module/syndicate + description = "When used with an upload console, this module allows you to upload priority laws to an artificial intelligence. \ + Be careful with wording, as artificial intelligences may look for loopholes to exploit." + +/datum/opposing_force_equipment/gadget_stealth/binary + name = "Binary Encryption Key" + item_type = /obj/item/encryptionkey/binary + +/datum/opposing_force_equipment/gadget_stealth/borgupgrader + item_type = /obj/item/borg/upgrade/transform/syndicatejack + +/datum/opposing_force_equipment/gadget_stealth/tram_remote + name = "Tram Remote Control" + item_type = /obj/item/assembly/control/transport/remote + description = "When linked to a tram's on board computer systems, this device allows the user to manipulate the controls remotely. \ + Includes direction toggle and a rapid mode to bypass door safety checks and crossing signals. \ + Perfect for running someone over in the name of a tram malfunction!" + +/datum/opposing_force_equipment/gadget_stealth/cloakerbelt + item_type = /obj/item/shadowcloak + description = "A belt that allows its wearer to temporarily turn invisible. Only recharges in dark areas. Use wisely." + +/datum/opposing_force_equipment/gadget_stealth/projector + name = "Chameleon Projector" + item_type = /obj/item/chameleon + +/datum/opposing_force_equipment/gadget_stealth/noslip + name = "Chameleon No-Slips" + item_type = /obj/item/clothing/shoes/chameleon/noslip + description = "No-slip chameleon shoes, for when you plan on running through hell and back." + +/datum/opposing_force_equipment/gadget_stealth/camera_app + name = "SyndEye Program" + item_type = /obj/item/computer_disk/syndicate/camera_app + +/datum/opposing_force_equipment/gadget_stealth/microlaser + name = "Radioactive Microlaser" + item_type = /obj/item/healthanalyzer/rad_laser + description = "A radioactive microlaser disguised as a standard Nanotrasen health analyzer. When used, it emits a \ + powerful burst of radiation, which, after a short delay, can incapacitate all but the most protected \ + of humanoids." + admin_note = "WARNING: Is a knockout weapon with no warning, and 'infinite' use." + +/datum/opposing_force_equipment/gadget_stealth/contacts + name = "Anti-Flash Eye-Lenses" + item_type = /obj/item/syndicate_contacts + +/datum/opposing_force_equipment/gadget_stealth/suppressor + item_type = /obj/item/suppressor diff --git a/modular_skyrat/modules/opposing_force/code/equipment/guns.dm b/modular_skyrat/modules/opposing_force/code/equipment/guns.dm new file mode 100644 index 00000000000..98f0c8d29a0 --- /dev/null +++ b/modular_skyrat/modules/opposing_force/code/equipment/guns.dm @@ -0,0 +1,237 @@ +/datum/opposing_force_equipment/ranged + category = OPFOR_EQUIPMENT_CATEGORY_RANGED + +/datum/opposing_force_equipment/ranged/renoster + name = "Renoster Shotgun" + description = "A twelve guage shotgun with an eight shell capacity underneath." + item_type = /obj/item/storage/toolbox/guncase/skyrat/opfor/renoster + +/obj/item/storage/toolbox/guncase/skyrat/opfor/renoster/PopulateContents() + new /obj/item/gun/ballistic/shotgun/riot/sol/evil(src) + new /obj/item/ammo_box/advanced/s12gauge/buckshot(src) + new /obj/item/ammo_box/advanced/s12gauge/buckshot(src) + +/datum/opposing_force_equipment/ranged/infanteria + name = "'d'Infanteria' Rifle" + description = "A heavy battle rifle, this one seems to be painted tacticool black. Accepts any standard SolFed rifle magazine." + item_type = /obj/item/storage/toolbox/guncase/skyrat/opfor/infanteria + +/obj/item/storage/toolbox/guncase/skyrat/opfor/infanteria/PopulateContents() + new /obj/item/gun/ballistic/automatic/sol_rifle/evil(src) + new /obj/item/ammo_box/magazine/c40sol_rifle/standard(src) + new /obj/item/ammo_box/magazine/c40sol_rifle/standard(src) + +/datum/opposing_force_equipment/ranged/sakhno + name = "Sakhno Precision Rifle" + description = "A Sakhno Precision Rifle, a bolt action weapon that was (and certainly still is) popular with frontiersmen, cargo runners, private security forces, explorers, and other unsavoury types. This particular pattern of the rifle dates back all the way to 2440." + item_type = /obj/item/storage/toolbox/guncase/skyrat/opfor/sakhno + +/obj/item/storage/toolbox/guncase/skyrat/opfor/sakhno/PopulateContents() + new /obj/item/gun/ballistic/rifle/boltaction(src) + new /obj/item/ammo_box/strilka310(src) + new /obj/item/ammo_box/strilka310(src) + +/datum/opposing_force_equipment/ranged/kiboko + name = "Kiboko Grenade Launcher" + description = "A unique grenade launcher firing .980 grenades. A laser sight system allows its user to specify a range for the grenades it fires to detonate at" + item_type = /obj/item/storage/toolbox/guncase/skyrat/opfor/kiboko + +/obj/item/storage/toolbox/guncase/skyrat/opfor/kiboko/PopulateContents() + new /obj/item/gun/ballistic/automatic/sol_grenade_launcher/evil(src) + new /obj/item/ammo_box/magazine/c980_grenade/drum(src) + new /obj/item/ammo_box/magazine/c980_grenade/drum(src) + +/datum/opposing_force_equipment/ranged/amr + name = "Tkach-Tsuneyo AMR" + description = "A massive, outdated beast of an anti materiel rifle that was once in use by CIN military forces. Fires the devastating .60 Strela caseless round, the massively overperforming penetration of which being the reason this weapon was discontinued." + item_type = /obj/item/storage/toolbox/guncase/skyrat/opfor/amr + +/obj/item/storage/toolbox/guncase/skyrat/opfor/amr/PopulateContents() + new /obj/item/gun/ballistic/automatic/cin_amr(src) + new /obj/item/ammo_box/magazine/cin_amr(src) + new /obj/item/ammo_box/magazine/cin_amr(src) + +/datum/opposing_force_equipment/ranged/lmg + name = "L6 SAW LMG" + description = "A heavily modified 7mm light machine gun, designated 'L6 SAW'. Has 'Aussec Armoury - 2531' engraved on the receiver below the designation." + item_type = /obj/item/storage/toolbox/guncase/skyrat/opfor/lmg + +/obj/item/storage/toolbox/guncase/skyrat/opfor/lmg/PopulateContents() + new /obj/item/gun/ballistic/automatic/l6_saw/unrestricted(src) + new /obj/item/ammo_box/magazine/m7mm(src) + new /obj/item/ammo_box/magazine/m7mm(src) + +//laser +/datum/opposing_force_equipment/ranged/ion + name = "ion carbine" + description = "The MK.II Prototype Ion Projector is a lightweight carbine version of the larger ion rifle, built to be ergonomic and efficient." + item_type = /obj/item/storage/toolbox/guncase/skyrat/opfor/ion + +/obj/item/storage/toolbox/guncase/skyrat/opfor/ion/PopulateContents() + new /obj/item/gun/energy/ionrifle/carbine(src) + new /obj/item/storage/box/syndie_kit/recharger(src) + +/datum/opposing_force_equipment/ranged/carbine + name = "laser carbine" + description = "A modified laser gun which can shoot far faster, but each shot is far less damaging." + item_type = /obj/item/storage/toolbox/guncase/skyrat/opfor/carbine + +/obj/item/storage/toolbox/guncase/skyrat/opfor/carbine/PopulateContents() + new /obj/item/gun/energy/laser/carbine(src) + new /obj/item/storage/box/syndie_kit/recharger(src) + +/datum/opposing_force_equipment/ranged/laser + name = "laser gun" + description = "A basic energy-based laser gun that fires concentrated beams of light which pass through glass and thin metal." + item_type = /obj/item/storage/toolbox/guncase/skyrat/opfor/laser + +/obj/item/storage/toolbox/guncase/skyrat/opfor/laser/PopulateContents() + new /obj/item/gun/energy/laser(src) + new /obj/item/storage/box/syndie_kit/recharger(src) + +//foamforce +/datum/opposing_force_equipment/ranged/foamforce_lmg + name = "Foamforce LMG" + description = "A heavily modified toy light machine gun, designated 'L6 SAW'. Ages 8 and up." + item_type = /obj/item/storage/toolbox/guncase/skyrat/opfor/foamforce_lmg + +/obj/item/storage/toolbox/guncase/skyrat/opfor/foamforce_lmg/PopulateContents() + new /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted/riot(src) + new /obj/item/ammo_box/magazine/toy/m762/riot(src) + new /obj/item/ammo_box/magazine/toy/m762/riot(src) + + +/datum/opposing_force_equipment/ranged_stealth + category = OPFOR_EQUIPMENT_CATEGORY_RANGED_STEALTH + +/datum/opposing_force_equipment/ranged_stealth/rapid_syringe + name = "Compact Rapid Syringe Gun" + description = "A modification of the syringe gun design to be more compact and use a rotating cylinder to store up to six syringes." + item_type = /obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/rapid_syringe + +/obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/rapid_syringe/PopulateContents() + new /obj/item/gun/syringe/rapidsyringe(src) + new /obj/item/storage/belt/medbandolier(src) + new /obj/item/reagent_containers/syringe/piercing(src) + new /obj/item/reagent_containers/syringe/piercing(src) + new /obj/item/reagent_containers/syringe/piercing(src) + new /obj/item/reagent_containers/syringe/piercing(src) + +/datum/opposing_force_equipment/ranged_stealth/c20r + name = "C-20r SMG" + description = "A bullpup three-round burst .45 SMG, designated 'C-20r'. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp." + item_type = /obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/c20r + +/obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/c20r/PopulateContents() + new /obj/item/gun/ballistic/automatic/c20r/unrestricted(src) + new /obj/item/ammo_box/magazine/smgm45(src) + new /obj/item/ammo_box/magazine/smgm45(src) + +/datum/opposing_force_equipment/ranged_stealth/sindano + name = "Sindano SMG" + description = "A small submachinegun, this one is painted in tacticool black. Accepts any standard Sol pistol magazine." + item_type = /obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/sindano + +/obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/sindano/PopulateContents() + new /obj/item/gun/ballistic/automatic/sol_smg/evil(src) + new /obj/item/ammo_box/magazine/c35sol_pistol/stendo(src) + new /obj/item/ammo_box/magazine/c35sol_pistol/stendo(src) + +/datum/opposing_force_equipment/ranged_stealth/wespe + name = "Wespe Pistol" + description = "The standard issue service pistol of SolFed's various military branches. Comes with attached light." + item_type = /obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/wespe + +/obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/wespe/PopulateContents() + new /obj/item/gun/ballistic/automatic/pistol/sol/evil(src) + new /obj/item/ammo_box/magazine/c35sol_pistol(src) + new /obj/item/ammo_box/magazine/c35sol_pistol(src) + +/datum/opposing_force_equipment/ranged_stealth/makarov + name = "Makarov Pistol" + description = "A small, easily concealable 9x25mm Mk.12 handgun. This one is packed with a suppressor." + item_type = /obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/makarov + +/obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/makarov/PopulateContents() + new /obj/item/gun/ballistic/automatic/pistol(src) + new /obj/item/suppressor(src) + new /obj/item/ammo_box/magazine/m9mm(src) + new /obj/item/ammo_box/magazine/m9mm(src) + +/datum/opposing_force_equipment/ranged_stealth/m1911 + name = "M1911 Pistol" + description = "A classic .45 handgun with a small magazine capacity." + item_type = /obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/m1911 + +/obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/m1911/PopulateContents() + new /obj/item/gun/ballistic/automatic/pistol/m1911(src) + new /obj/item/ammo_box/magazine/m45(src) + new /obj/item/ammo_box/magazine/m45(src) + +/datum/opposing_force_equipment/ranged_stealth/nri_pistol + name = "Szabo-Ivanek Pistol" + description = "A mass produced NRI-made modified reproduction of the Wespe line of handguns rechambered in 9×25mm.'PATRIOT DEFENSE SYSTEMS' is inscribed on the receiver, indicating it's been made with a plasteel printer." + item_type = /obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/nri_pistol + +/obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/nri_pistol/PopulateContents() + new /obj/item/gun/ballistic/automatic/pistol/nri(src) + new /obj/item/ammo_box/magazine/m9mm_aps(src) + new /obj/item/ammo_box/magazine/m9mm_aps(src) + +/datum/opposing_force_equipment/ranged_stealth/syndie_revolver + name = "Syndicate Revolver" + description = "A modernized 7 round revolver manufactured by Scarborough." + item_type = /obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/syndie_revolver + +/obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/syndie_revolver/PopulateContents() + new /obj/item/gun/ballistic/revolver/syndicate(src) + new /obj/item/ammo_box/a357(src) + new /obj/item/ammo_box/a357(src) + +/datum/opposing_force_equipment/ranged_stealth/ocelot + name = "Colt Peacemaker revolver" + admin_note = "Is packed with peacemaker .357, which deals significantly less damage but has a cool ricochet!" + description = "A modified Peacemaker revolver that chambers .357 ammo. Less powerful than the regular .357, but ricochets a lot more." + item_type = /obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/ocelot + +/obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/ocelot/PopulateContents() + new /obj/item/gun/ballistic/revolver/ocelot(src) + new /obj/item/ammo_box/a357/peacemaker(src) + new /obj/item/ammo_box/a357/peacemaker(src) + +//foamforce +/datum/opposing_force_equipment/ranged_stealth/foamforce_smg + name = "Donksoft SMG" + description = "A bullpup three-round burst toy SMG, designated 'C-20r'. Ages 8 and up." + item_type = /obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/foamforce_smg + +/obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/foamforce_smg/PopulateContents() + new /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot(src) + new /obj/item/ammo_box/magazine/toy/smgm45/riot(src) + new /obj/item/ammo_box/magazine/toy/smgm45/riot(src) + +/datum/opposing_force_equipment/ranged_stealth/foamforce_smg_basic + name = "Foamforce SMG" + description = "A prototype three-round burst toy submachine gun. Ages 8 and up." + item_type = /obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/foamforce_smg_basic + +/obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/foamforce_smg_basic/PopulateContents() + new /obj/item/gun/ballistic/automatic/toy/unrestricted(src) + new /obj/item/ammo_box/magazine/toy/smg(src) + new /obj/item/ammo_box/magazine/toy/smg(src) + +//laser +/datum/opposing_force_equipment/ranged_stealth/egun_mini + item_type = /obj/item/gun/energy/recharge/fisher + +/datum/opposing_force_equipment/ranged_stealth/ebow + item_type = /obj/item/gun/energy/recharge/ebow + +/datum/opposing_force_equipment/ranged_stealth/egun_mini + name = "miniature energy gun" + description = "A small, pistol-sized energy gun with a built-in flashlight. It has two settings: disable and kill." + item_type = /obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/egun_mini + +/obj/item/storage/toolbox/guncase/skyrat/pistol/opfor/egun_mini/PopulateContents() + new /obj/item/gun/energy/e_gun/mini(src) + new /obj/item/storage/box/syndie_kit/recharger(src) diff --git a/modular_skyrat/modules/opposing_force/code/equipment/implants.dm b/modular_skyrat/modules/opposing_force/code/equipment/implants.dm index 723945caa20..9fca6380beb 100644 --- a/modular_skyrat/modules/opposing_force/code/equipment/implants.dm +++ b/modular_skyrat/modules/opposing_force/code/equipment/implants.dm @@ -1,94 +1,137 @@ -/datum/opposing_force_equipment/implant +/datum/opposing_force_equipment/implants category = OPFOR_EQUIPMENT_CATEGORY_IMPLANTS -// Skillchips -/datum/opposing_force_equipment/implant/engichip +//Skillchips +/datum/opposing_force_equipment/implants/engichip item_type = /obj/item/skillchip/job/engineer description = "A skillchip that, when installed, allows the user to recognise airlock and APC wire layouts and understand their functionality at a glance. Highly valuable and sought after." -/datum/opposing_force_equipment/implant/roboticist +/datum/opposing_force_equipment/implants/roboticist item_type = /obj/item/skillchip/job/roboticist description = "A skillchip that, when installed, allows the user to recognise cyborg wire layouts and understand their functionality at a glance." -/datum/opposing_force_equipment/implant/tacticool +/datum/opposing_force_equipment/implants/tacticool item_type = /obj/item/skillchip/chameleon/reload -// Actual Implants -/datum/opposing_force_equipment/implant/stealth +//Implants +/datum/opposing_force_equipment/implants/nodrop + item_type = /obj/item/autosurgeon/syndicate/nodrop + name = "Anti Drop Implant" + admin_note = "Allows the user to tighten their grip, their held items unable to be dropped by any cause. Hardstuns user for a longtime if hit with EMP." + description = "An implant that prevents you from dropping items in your hand involuntarily. Comes loaded in a syndicate autosurgeon." + +/datum/opposing_force_equipment/implants/hackerman + item_type = /obj/item/autosurgeon/syndicate/hackerman + name = "Hacking Arm Implant" + admin_note = "A simple tool arm, except it identifies all wire functions when hacking." + description = "An advanced arm implant that comes with cutting edge hacking tools. Perfect for the cybernetically enhanced wirerunners." + +/datum/opposing_force_equipment/implants/cns + name = "CNS Rebooter Implant" + item_type = /obj/item/autosurgeon/syndicate/anti_stun + description = "This implant will automatically give you back control over your central nervous system, reducing downtime when stunned." + +/datum/opposing_force_equipment/implants/reviver + name = "Reviver Implant" + item_type = /obj/item/autosurgeon/syndicate/reviver + description = "This implant will attempt to revive and heal you if you lose consciousness. For the faint of heart!" + +/datum/opposing_force_equipment/implants/sad_trombone + name = "Sad Trombone Implant" + item_type = /obj/item/implanter/sad_trombone + +/datum/opposing_force_equipment/implants/toolarm + name = "Tool Arm Implant" + admin_note = "Force 20 implanted combat knife on emag." + item_type = /obj/item/autosurgeon/toolset + +/datum/opposing_force_equipment/implants/surgery + name = "Surgery Arm Implant" + admin_note = "Force 20 implanted combat knife on emag." + item_type = /obj/item/autosurgeon/surgery + +/datum/opposing_force_equipment/implants/botany + name = "Botany Arm Implant" + admin_note = "Chainsaw arm on emag." + item_type = /obj/item/autosurgeon/botany + +/datum/opposing_force_equipment/implants/janitor + name = "Janitor Arm Implant" + item_type = /obj/item/autosurgeon/janitor + +/datum/opposing_force_equipment/implants/armblade + name = "Blade Arm Implant" + admin_note = "Force 30 IF emagged." + item_type = /obj/item/autosurgeon/armblade + +/datum/opposing_force_equipment/implants/muscle + name = "Muscle Arm Implant" + item_type = /obj/item/autosurgeon/muscle + +/datum/opposing_force_equipment/implants_illegal + category = OPFOR_EQUIPMENT_CATEGORY_IMPLANTS_ILLEGAL + +/datum/opposing_force_equipment/implants_illegal/stealth name = "Stealth Implant" item_type = /obj/item/implanter/stealth - description = "An implanter that grants you the ability to wield the ultimate in invisible box technology. Best used in conjunction with \ - a tape recorder playing Snake Eater." + admin_note = "Allows the user to become completely invisible as long as they remain inside a cardboard box." + description = "An implanter that grants you the ability to wield the ultimate in invisible box technology. Best used in conjunction with a tape recorder playing Snake Eater." -/datum/opposing_force_equipment/implant/radio +/datum/opposing_force_equipment/implants_illegal/radio name = "Syndicate Radio Implant" item_type = /obj/item/implanter/radio/syndicate description = "An implanter that grants you inherent access to the Syndicate radio channel, in addition to being able to listen to all on-station channels." - admin_note = "Warning: This can let someone get in contact with actual antagonists via the Syndicate channel." -/datum/opposing_force_equipment/implant/storage +/datum/opposing_force_equipment/implants_illegal/storage name = "Storage Implant" item_type = /obj/item/implanter/storage + admin_note = "Allows user to stow items without any sign of having a storage item." description = "An implanter that grants you access to a small pocket of bluespace, capable of storing a few items." -/datum/opposing_force_equipment/implant/freedom +/datum/opposing_force_equipment/implants_illegal/freedom name = "Freedom Implant" item_type = /obj/item/implanter/freedom + admin_note = "Allows the user to break handcuffs or e-snares four times, after it will run out and become useless." description = "An implanter that grants you the ability to break out of handcuffs a certain number of times." -/datum/opposing_force_equipment/implant/micro +/datum/opposing_force_equipment/implants_illegal/micro name = "Microbomb Implant" + admin_note = "RRs the user." item_type = /obj/item/implanter/explosive description = "An implanter that will make you explode on death in a decent-sized explosion." -/datum/opposing_force_equipment/implant/macro - name = "Macrobomb Implant" - item_type = /obj/item/implanter/explosive_macro - description = "An implanter that will make you explode on death in a massive explosion, fun!" - admin_note = "Warning: Equivalent to 10 microbombs. Use your very best judgement when approving." - -/datum/opposing_force_equipment/implant/emp +/datum/opposing_force_equipment/implants_illegal/emp name = "EMP Implant" item_type = /obj/item/implanter/emp + admin_note = "Gives the user a big EMP on an action button. Has three uses after which it becomes useless." description = "An implanter that grants you the ability to create several EMP pulses, centered on you." -// Cybernetic Enhancements -/datum/opposing_force_equipment/implant/nodrop - item_type = /obj/item/autosurgeon/syndicate/nodrop - name = "Anti Drop Implant" - description = "An implant that prevents you from dropping items in your hand involuntarily. Comes loaded in a syndicate autosurgeon." - -/datum/opposing_force_equipment/implant/hackerman - item_type = /obj/item/autosurgeon/syndicate/hackerman - name = "Hacking Arm Implant" - description = "An advanced arm implant that comes with cutting edge hacking tools. Perfect for the cybernetically enhanced wirerunners." - -/datum/opposing_force_equipment/implant/cns - name = "CNS Rebooter Implant" - item_type = /obj/item/autosurgeon/syndicate/anti_stun - description = "This implant will automatically give you back control over your central nervous system, reducing downtime when stunned." - -/datum/opposing_force_equipment/implant/reviver - name = "Reviver Implant" - item_type = /obj/item/autosurgeon/syndicate/reviver - description = "This implant will attempt to revive and heal you if you lose consciousness. For the faint of heart!" - -/datum/opposing_force_equipment/implant/xray +/datum/opposing_force_equipment/implants_illegal/xray name = "X-Ray Eyes" item_type = /obj/item/autosurgeon/syndicate/xray_eyes description = "These cybernetic eyes will give you X-ray vision. Blinking is futile." -/datum/opposing_force_equipment/implant/thermal +/datum/opposing_force_equipment/implants_illegal/thermal name = "Thermal Eyes" item_type = /obj/item/autosurgeon/syndicate/thermal_eyes description = "These cybernetic eye implants will give you thermal vision. Vertical slit pupil included." -/datum/opposing_force_equipment/implant/armlaser +/datum/opposing_force_equipment/implants_illegal/armlaser name = "Arm-mounted Laser Implant" item_type = /obj/item/autosurgeon/syndicate/laser_arm + admin_note = "A basic laser gun, but no-drop." description = "A variant of the arm cannon implant that fires lethal laser beams. The cannon emerges from the subject's arm and remains inside when not in use." -/datum/opposing_force_equipment/implant/eswordarm +/datum/opposing_force_equipment/implants_illegal/eswordarm name = "Energy Sword Arm Implant" item_type = /obj/item/autosurgeon/syndicate/esword_arm + admin_note = "Force 30 no-drop, extremely robust." description = "It's an energy sword, in your arm. Pretty decent for getting past stop-searches and assassinating people. Comes loaded in a Syndicate brand autosurgeon to boot!" + +/datum/opposing_force_equipment/implants_illegal/baton + name = "Baton Arm Implant" + item_type = /obj/item/autosurgeon/syndicate/baton + +/datum/opposing_force_equipment/implants_illegal/flash + name = "Flash Arm Implant" + item_type = /obj/item/autosurgeon/syndicate/flash diff --git a/modular_skyrat/modules/opposing_force/code/equipment/loadouts.dm b/modular_skyrat/modules/opposing_force/code/equipment/loadouts.dm deleted file mode 100644 index fb91a7086f2..00000000000 --- a/modular_skyrat/modules/opposing_force/code/equipment/loadouts.dm +++ /dev/null @@ -1,51 +0,0 @@ -/datum/opposing_force_equipment/loadout - category = OPFOR_EQUIPMENT_CATEGORY_LOADOUT - -/datum/opposing_force_equipment/loadout/gunman - item_type = /obj/item/storage/box/syndie_kit/gunman_outfit - -/datum/opposing_force_equipment/loadout/heister - name = "Heister bundle" - item_type = /obj/item/storage/backpack/duffelbag/heister - description = "Rob a bank, the vault, or the captain with this stylish bundle! Comes with a self-regenerating armored suit and a unqiue mask. Weaponry and tools not included." - max_amount = 4 - -/datum/opposing_force_equipment/loadout/grenadier - item_type = /obj/item/storage/belt/grenade/full - name = "Grenadier Kit" - description = "A belt full of grenades and bombs. May gods have mercy upon us if they approve this." - -/datum/opposing_force_equipment/loadout/syndicate - item_type = /obj/item/storage/box/syndie_kit/insurgent - description = "A box containing a MODSuit, among other clothing, to LARP as your favorite syndicate operative! Does not come with any weapons." - -/datum/opposing_force_equipment/loadout/mafioso - name = "Downtown Special bundle" - item_type = /obj/item/storage/backpack/duffelbag/syndie/loadout/downtownspecial - description = "Ayyy fuggedaboudit! This bundle contains everything to be your own one man mafioso. Including an icon of the Virgin Mary for your own authentic mafia nickname. Gang members not included." - -/datum/opposing_force_equipment/loadout/nt_commander - name = "Corporate Deceit bundle" - item_type = /obj/item/storage/box/syndie_kit/loadout/nt_impostor - description = "Don the identities of the most powerful men and women in Nanotrasen, and pull strings from the shadows as you please with this specialized kit." - -/datum/opposing_force_equipment/loadout/bond - name = "Classic Spy bundle" - item_type = /obj/item/storage/backpack/duffelbag/syndie/loadout/bond - description = "Play the hero or the villain in a cheesy spy movie with this throwback kit to old syndicate operatives." - -/datum/opposing_force_equipment/loadout/donk - name = "Donk Co. Shill bundle" - item_type = /obj/item/storage/backpack/duffelbag/syndie/loadout/donkshillkit - description = "Love Donk Pockets? Want to shill Donk Co. Toys? This bundle is for you! Contains some DonkSoft guns, a vending machine, restocking units, and a box of Donk Pockets." - -/datum/opposing_force_equipment/loadout/robohand // Why? It's fun, I guess - name = "Robohand bundle" - item_type = /obj/item/storage/backpack/duffelbag/syndie/loadout/robohand - description = "Themed after the infamous terrorist(or not), Johnny Robohand. The gun inside requires your arm to be robotic. It comes with a robotic replacement arm. Wake the fuck up, samurai." - admin_note = "BIG FUCKING WARNING: This bundle is extremely powerful, containing a 60 damage gun and multiple magazines of ammunition, in addition to various implants. Use with EXTREME discretion." - -/datum/opposing_force_equipment/loadout/ocelotfoxtrot - name = "Snake Eater bundle" - item_type = /obj/item/storage/box/syndie_kit/loadout/ocelotfoxtrot - description = "A kit themed around one certain gun spinning cat. Includes his famous colt special, and personalised ammo." diff --git a/modular_skyrat/modules/opposing_force/code/equipment/martial_arts.dm b/modular_skyrat/modules/opposing_force/code/equipment/martial_arts.dm deleted file mode 100644 index 025b541ece9..00000000000 --- a/modular_skyrat/modules/opposing_force/code/equipment/martial_arts.dm +++ /dev/null @@ -1,31 +0,0 @@ -/datum/opposing_force_equipment/martial_art - category = OPFOR_EQUIPMENT_CATEGORY_MARTIAL_ARTS - -/datum/opposing_force_equipment/martial_art/cqc - name = "CQC Manual" - item_type = /obj/item/book/granter/martial/cqc - description = "A manual that teaches a single user tactical Close-Quarters Combat before self-destructing." - admin_note = "CQC is capable of knocking out a target in 3 hits and is equivalent to 23 TC." - -/datum/opposing_force_equipment/martial_art/carp - name = "Sleeping Carp Scroll" - item_type = /obj/item/book/granter/martial/carp - description = "This scroll contains the secrets of an ancient martial arts technique. You will master unarmed combat \ - and gain the ability to swat bullets from the air, but you will also refuse to use dishonorable ranged weaponry." - admin_note = "Sleeping Carp is capable of letting you reflect bullets." - -/datum/opposing_force_equipment/martial_art/kravmaga - name = "Krav Maga Implanter" - item_type = /obj/item/implanter/krav_maga - description = "No need for gloves! This handy implanter teaches you everything you need to know about Krav Maga." - -/datum/opposing_force_equipment/martial_art/wrestling - name = "Wrestling Belt" - item_type = /obj/item/storage/belt/champion/wrestling - description = "With the imbued MACHO POWERS of this belt, learn the MACHO art of wrestling!" - admin_note = "Warning: Very powerful if questionably unbeatable in a 1v1, very capable of chain-stunning just about anyone (from range, if they can get on a table)" - -/datum/opposing_force_equipment/martial_art/mushpunch - name = "Mushpunch Mushroom" - item_type = /obj/item/mushpunch - description = "Consume this mushroom to learn the Mushroom Punch! A powerful attack that allows you to send people flying." diff --git a/modular_skyrat/modules/opposing_force/code/equipment/melee.dm b/modular_skyrat/modules/opposing_force/code/equipment/melee.dm index c4326d1ef55..ba7657911f0 100644 --- a/modular_skyrat/modules/opposing_force/code/equipment/melee.dm +++ b/modular_skyrat/modules/opposing_force/code/equipment/melee.dm @@ -1,60 +1,105 @@ /datum/opposing_force_equipment/melee - category = OPFOR_EQUIPMENT_CATEGORY_MELEE_WEAPONS + category = OPFOR_EQUIPMENT_CATEGORY_MELEE -/datum/opposing_force_equipment/melee/switchblade - item_type = /obj/item/switchblade +/datum/opposing_force_equipment/melee/sabre + name = "Officer's Sabre" + description = "An elegant weapon, its monomolecular edge is capable of cutting through flesh and bone with ease." + item_type = /obj/item/storage/belt/sabre -/datum/opposing_force_equipment/melee/metalbat - item_type = /obj/item/melee/baseball_bat/ablative - description = "A highly reflective baseball bat for when you need to crack skulls and run away from security in the same night. Can reflect lasers." - admin_note = "WARNING: Notably strong on sec not using ballistics." +/datum/opposing_force_equipment/melee/katana + item_type = /obj/item/katana + description = "An extremely sharp and robust sword folded over nine thousand times until perfection. Highly lethal and illegal." + admin_note = "WARNING: 40 force, 50% blockchance, very powerful." + +/datum/opposing_force_equipment/melee/ekatana + item_type = /obj/item/energy_katana + description = "An energy katana seized from a dead Spider Clan ninja. As well as being highly robust, it allows the \ + user to teleport short distances using right-click." /datum/opposing_force_equipment/melee/esword item_type = /obj/item/melee/energy/sword - description = "The energy sword is an edged weapon with a blade of pure energy. The sword is small enough to be \ - pocketed when inactive. Activating it produces a loud, distinctive noise." + description = "The energy sword is an edged weapon with a blade of pure energy. The sword is small enough to be pocketed when inactive. Activating it produces a loud, distinctive noise." + +/datum/opposing_force_equipment/melee/desword + item_type = /obj/item/dualsaber + +/datum/opposing_force_equipment/melee/eshield + item_type = /obj/item/shield/energy + +/datum/opposing_force_equipment/melee/ebanana + item_type = /obj/item/melee/energy/sword/bananium + +/datum/opposing_force_equipment/melee/eshield_banana + item_type = /obj/item/shield/energy/bananium /datum/opposing_force_equipment/melee/epirate item_type = /obj/item/melee/energy/sword/pirate description = "A variant of the energy sword styled as a cutlass. Pirate costume sold separately. Warranty void if bought." -/datum/opposing_force_equipment/melee/edagger - item_type = /obj/item/pen/edagger - name = "Energy Dagger" - description = "A dagger made of energy that looks and functions as a pen when off." +/datum/opposing_force_equipment/melee/metalbat + item_type = /obj/item/melee/baseball_bat/ablative + description = "A highly reflective baseball bat for when you need to crack skulls and run away from security in the same night. Can reflect lasers." + admin_note = "WARNING: Notably strong on sec not using ballistics." + +/datum/opposing_force_equipment/melee/powerfist + item_type = /obj/item/melee/powerfist + name = "Power Fist" + description = "The power-fist is a metal gauntlet with a built-in piston-ram powered by an external gas supply.\ + Upon hitting a target, the piston-ram will extend forward to make contact for some serious damage. \ + Using a wrench on the piston valve will allow you to tweak the amount of gas used per punch to \ + deal extra damage and hit targets further. Use a screwdriver to take out any attached tanks." + +/datum/opposing_force_equipment/melee/cultblade + item_type = /obj/item/melee/cultblade + +/datum/opposing_force_equipment/melee/meathook + name = "Butcher's Meat Hook" + item_type = /obj/item/gun/magic/hook + description = "A brutal cleaver on a long chain, it allows you to pull people to your location." /datum/opposing_force_equipment/melee/cutlass item_type = /obj/item/claymore/cutlass +/datum/opposing_force_equipment/melee/mace + item_type = /obj/item/melee/cleric_mace + /datum/opposing_force_equipment/melee/claymore item_type = /obj/item/claymore description = "An extremely sharp and robust sword perfect to cleave through any opposition. Also highly illegal." admin_note = "WARNING: 30 force, 35 armor pen." -/datum/opposing_force_equipment/melee/katana - item_type = /obj/item/katana - description = "An extremely sharp and robust sword folded over nine thousand times until perfection. Highly lethal and illegal." - admin_note = "WARNING: 40 force, 50% blockchance, very powerful." -/datum/opposing_force_equipment/melee/ekatana - item_type = /obj/item/energy_katana - description = "An energy katana seized from a dead Spider Clan ninja. As well as being highly robust, it allows the \ - user to teleport short distances using right-click." +/datum/opposing_force_equipment/melee_stealth + category = OPFOR_EQUIPMENT_CATEGORY_MELEE_STEALTH -/datum/opposing_force_equipment/melee/powerfist - item_type = /obj/item/melee/powerfist - name = "Power Fist" - description = "The power-fist is a metal gauntlet with a built-in piston-ram powered by an external gas supply.\ - Upon hitting a target, the piston-ram will extend forward to make contact for some serious damage. \ - Using a wrench on the piston valve will allow you to tweak the amount of gas used per punch to \ - deal extra damage and hit targets further. Use a screwdriver to take out any attached tanks." +/datum/opposing_force_equipment/melee_stealth/contractorbaton + item_type = /obj/item/melee/baton/telescopic/contractor_baton + +/datum/opposing_force_equipment/melee_stealth/switchblade + item_type = /obj/item/switchblade + +/datum/opposing_force_equipment/melee_stealth/combat_knife + item_type = /obj/item/knife/combat + +/datum/opposing_force_equipment/melee_stealth/edagger + item_type = /obj/item/pen/edagger + name = "Energy Dagger" + description = "A dagger made of energy that looks and functions as a pen when off." -/datum/opposing_force_equipment/melee/northstar +/datum/opposing_force_equipment/melee_stealth/telescopic + item_type = /obj/item/melee/baton/telescopic + +/datum/opposing_force_equipment/melee_stealth/telescopicshield + item_type = /obj/item/shield/riot/tele + +/datum/opposing_force_equipment/melee_stealth/cultdagger + item_type = /obj/item/melee/cultblade/dagger + +/datum/opposing_force_equipment/melee_stealth/sicklyblade + item_type = /obj/item/melee/sickly_blade + +/datum/opposing_force_equipment/melee_stealth/northstar item_type = /obj/item/clothing/gloves/rapid description = "By putting on these gloves, you will find you can punch things at vastly increased speed." admin_note = "WARNING: Be very mindful if passing these out with sleeping-carp, as the duo are extremely strong together." -/datum/opposing_force_equipment/melee/meathook - name = "Butcher's Meat Hook" - item_type = /obj/item/gun/magic/hook - description = "A brutal cleaver on a long chain, it allows you to pull people to your location." diff --git a/modular_skyrat/modules/opposing_force/code/equipment/misc.dm b/modular_skyrat/modules/opposing_force/code/equipment/misc.dm deleted file mode 100644 index c1cc4b2b74e..00000000000 --- a/modular_skyrat/modules/opposing_force/code/equipment/misc.dm +++ /dev/null @@ -1,50 +0,0 @@ -/datum/opposing_force_equipment/other - category = OPFOR_EQUIPMENT_CATEGORY_OTHER - -/datum/opposing_force_equipment/other/uplink - item_type = /obj/item/uplink/opfor - name = "Syndicate Uplink" - description = "An old-school syndicate uplink without a password and an empty TC account. Perfect for the aspiring operatives." - -/datum/opposing_force_equipment/other/tc1 - item_type = /obj/item/stack/telecrystal - name = "1 Raw Telecrystal" - description = "A telecrystal in its rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." - -/datum/opposing_force_equipment/other/tc5 - item_type = /obj/item/stack/telecrystal/five - name = "5 Raw Telecrystals" - description = "A bunch of telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." - -/datum/opposing_force_equipment/other/tc20 - item_type = /obj/item/stack/telecrystal/twenty - name = "20 Raw Telecrystals" - description = "A bundle of telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." - -/datum/opposing_force_equipment/other/cashcase - item_type = /obj/item/storage/secure/briefcase/syndie - name = "Syndicate Briefcase Full of Cash" - description = "A secure briefcase containing 5000 space credits. Useful for bribing personnel, or purchasing goods \ - and services at lucrative prices. The briefcase also feels a little heavier to hold; it has been \ - manufactured to pack a little bit more of a punch if your client needs some convincing." - -/datum/opposing_force_equipment/other/c10k - name = "10000 Space Cash Bill" - item_type = /obj/item/stack/spacecash/c10000 - description = "Cold hard cash. When you REALLY need to bribe or buy your way in. Or to payroll your gangmembers." - -/datum/opposing_force_equipment/other/ninjastar - item_type = /obj/item/throwing_star - description = "Be the maintenance ninja you always wanted to be. Does not come with multi-throwing cybernetics." - -/datum/opposing_force_equipment/other/throwing_weapons - name = "Box of Throwing Weapons" - item_type = /obj/item/storage/box/syndie_kit/throwing_weapons - description = "A box of shurikens and reinforced bolas from ancient Earth martial arts. They are highly effective \ - throwing weapons. The bolas can knock a target down and the shurikens will embed into limbs." - name = "Box of Throwing Weapons" - -/datum/opposing_force_equipment/other/origami - item_type = /obj/item/storage/box/syndie_kit/origami_bundle - description = "A box containing a guide on how to craft masterful works of origami, allowing you to transform normal pieces of paper into \ - perfectly aerodynamic (and potentially lethal) paper airplanes." diff --git a/modular_skyrat/modules/opposing_force/code/equipment/modsuit.dm b/modular_skyrat/modules/opposing_force/code/equipment/modsuit.dm new file mode 100644 index 00000000000..748ba7cb211 --- /dev/null +++ b/modular_skyrat/modules/opposing_force/code/equipment/modsuit.dm @@ -0,0 +1,136 @@ +/datum/opposing_force_equipment/modsuit + category = OPFOR_EQUIPMENT_CATEGORY_MODSUIT + +/datum/opposing_force_equipment/modsuit/red + name = "Gorlex Marauder's Red" + description = "An advanced combat suit adorned in a sinister crimson red color scheme, produced and manufactured for special mercenary operations." + item_type = /obj/item/mod/control/pre_equipped/traitor + +/datum/opposing_force_equipment/modsuit/contractor + name = "Private Mercenary's MOD" + description = "A rare depart from the Syndicate's usual color scheme, this MODsuit is produced and manufactured for private mercenaries." + item_type = /obj/item/mod/control/pre_equipped/contractor + +/datum/opposing_force_equipment/modsuit/elite + name = "Cybersun's Elite" + description = "An evolution of the syndicate suit, featuring a bulkier build and a matte black color scheme, this suit is only produced for high ranking Syndicate officers and elite strike teams." + item_type = /obj/item/mod/control/pre_equipped/elite/unrestricted + +/datum/opposing_force_equipment/modsuit/ninja + name = "Cybersun's Ninja" + description = "A suit of nano-enhanced armor designed specifically for Spider Clan assassin-saboteurs. This MODsuit employs the cutting edge of stealth and combat technology, built skin-tight but just as durable as suits two or three times as thick." + item_type = /obj/item/mod/control/pre_equipped/ninja + +/datum/opposing_force_equipment/modsuit/corporate + name = "CentComm's Corporate" + description = "An even more costly version of the Magnate model, the corporate suit is a thermally insulated, anti-corrosion coated suit for high-ranking CentCom Officers, deploying pristine protective armor and advanced actuators, feeling practically weightless when turned on." + item_type = /obj/item/mod/control/pre_equipped/corporate + +/datum/opposing_force_equipment/modsuit/standard + name = "Nakamura's Standard" + description = "A third-generation, modular civilian class suit by Nakamura Engineering, this suit is a staple across the galaxy for civilian applications." + item_type = /obj/item/mod/control/pre_equipped/empty + +/datum/opposing_force_equipment/modsuit/advanced + name = "Nakamura's Advanced" + description = "The flagship version of the Nakamura Engineering industrial model, and their latest product. Combining all the features of their other industrial model suits inside, with blast resistance almost approaching some EOD suits, the outside has been coated with a white polish rumored to be a corporate secret." + item_type = /obj/item/mod/control/pre_equipped/advanced + +/datum/opposing_force_equipment/modsuit/nri + name = "NRI's Frontline" + item_type = /obj/item/mod/control/pre_equipped/frontline/ert + +/datum/opposing_force_equipment/modsuit/nri_police + name = "NRI's Policing" + item_type = /obj/item/mod/control/pre_equipped/policing + +/datum/opposing_force_equipment/modsuit/infiltrator + name = "MI13's Infiltrator" + description = "Several questions have been raised over the years in regards to the clandestine Infiltrator modular suit. Why is the suit blood red despite being a sneaking suit? Why did a movie company of all things develop a stealth suit? The simplest answer is that Roseus Galactic hire more than a few eccentric individuals who know more about visual aesthetics and prop design than they do functional operative camouflage. But the true reason goes deeper." + item_type = /obj/item/mod/control/pre_equipped/infiltrator + +/datum/opposing_force_equipment/modsuit/interdyne + name = "Interdyne's Response" + description = "While Scarborough and Azik Interstellar provide the means, Donk Co., Tiger Cooperative, Animal Rights Consortium and Gorlex Marauders willing or easily bribable brawn, S.E.L.F. and MI13 information, the clear syndicate tech providers would be Interdyne and Cybersun, their combined knowledge in technologies rivaled by only the most enigmatic of aliens, and certainly not by any Nanotrasen scientist." + admin_note = "Gives a significant speedboost." + item_type = /obj/item/mod/control/pre_equipped/interdyne + +/datum/opposing_force_equipment/modsuit/clown + name = "Honk Ltd's Cosmohonk" + description = "The Cosmohonk MODsuit was originally designed for interstellar comedy in low-humor environments. It utilizes tungsten electro-ceramic casing and chromium bipolars, coated in zirconium-boron paint underneath a dermatiraelian subspace alloy. Despite the glaringly obvious optronic vacuum drive pedals, this particular model does not employ manganese bipolar capacitor cleaners, thank the Honkmother." + item_type = /obj/item/mod/control/pre_equipped/cosmohonk + +/datum/opposing_force_equipment/modsuit/wizard + name = "Mysteriously Empowered MOD" + description = "The Wizard Federation's relatively low-tech MODsuit. This armor employs not plasteel or carbon fibre, but space dragon scales for its protection." + item_type = /obj/item/mod/control/pre_equipped/enchanted + + +/datum/opposing_force_equipment/modsuit_modules + category = OPFOR_EQUIPMENT_CATEGORY_MODSUIT_MODULES + +/datum/opposing_force_equipment/modsuit_modules/ion_advanced + item_type = /obj/item/mod/module/jetpack/advanced + +/datum/opposing_force_equipment/modsuit_modules/storage_syndicate + item_type = /obj/item/mod/module/storage/syndicate + +/datum/opposing_force_equipment/modsuit_modules/chameleon + item_type = /obj/item/mod/module/chameleon + +/datum/opposing_force_equipment/modsuit_modules/noslip + item_type = /obj/item/mod/module/noslip + +/datum/opposing_force_equipment/modsuit_modules/cloak_mod + item_type = /obj/item/mod/module/stealth/ninja + +/datum/opposing_force_equipment/modsuit_modules/armor_booster + item_type = /obj/item/mod/module/armor_booster + +/datum/opposing_force_equipment/modsuit_modules/magnetic_harness + item_type = /obj/item/mod/module/magnetic_harness + +/datum/opposing_force_equipment/modsuit_modules/emp_shield_advanced + item_type = /obj/item/mod/module/emp_shield/advanced + +/datum/opposing_force_equipment/modsuit_modules/quick_carry_advanced + item_type = /obj/item/mod/module/quick_carry/advanced + +/datum/opposing_force_equipment/modsuit_modules/thermal_visor + item_type = /obj/item/mod/module/visor/thermal + +/datum/opposing_force_equipment/modsuit_modules/megaphone + item_type = /obj/item/mod/module/megaphone + +/datum/opposing_force_equipment/modsuit_modules/projectile_dampener + item_type = /obj/item/mod/module/projectile_dampener + +/datum/opposing_force_equipment/modsuit_modules/shooting_assistant + item_type = /obj/item/mod/module/shooting_assistant + +/datum/opposing_force_equipment/modsuit_modules/holster + item_type = /obj/item/mod/module/holster + +/datum/opposing_force_equipment/modsuit_modules/baton_holster + item_type = /obj/item/mod/module/baton_holster + +/datum/opposing_force_equipment/modsuit_modules/energy_shield + item_type = /obj/item/mod/module/energy_shield + +/datum/opposing_force_equipment/modsuit_modules/adrenaline_boost + item_type = /obj/item/mod/module/adrenaline_boost + +/datum/opposing_force_equipment/modsuit_modules/quick_deploy + item_type = /obj/item/mod/module/springlock/contractor + +/datum/opposing_force_equipment/modsuit_modules/donksoft_recycler + item_type = /obj/item/mod/module/recycler/donk + +/datum/opposing_force_equipment/modsuit_modules/scorpion_hook + item_type = /obj/item/mod/module/scorpion_hook + +/datum/opposing_force_equipment/modsuit_modules/flamethrower_mod + item_type = /obj/item/mod/module/flamethrower + +/datum/opposing_force_equipment/modsuit_modules/jump_jet + item_type = /obj/item/mod/module/jump_jet diff --git a/modular_skyrat/modules/opposing_force/code/equipment/pistols.dm b/modular_skyrat/modules/opposing_force/code/equipment/pistols.dm deleted file mode 100644 index 8d77b5c37a3..00000000000 --- a/modular_skyrat/modules/opposing_force/code/equipment/pistols.dm +++ /dev/null @@ -1,37 +0,0 @@ -/datum/opposing_force_equipment/pistol - category = OPFOR_EQUIPMENT_CATEGORY_PISTOLS - -/datum/opposing_force_equipment/pistol/m1911 - item_type = /obj/item/gun/ballistic/automatic/pistol/m1911 - description = "A semi-automatic .45 caliber pistol. Gold standard for sidearms." - -/datum/opposing_force_equipment/pistol/luger - item_type = /obj/item/gun/ballistic/automatic/pistol/luger - description = "An iconic semi-automatic pistol chambered in 9mm. It takes makarov magazines." - -/datum/opposing_force_equipment/pistol/makarov - item_type = /obj/item/gun/ballistic/automatic/pistol - -/datum/opposing_force_equipment/pistol/aps - item_type = /obj/item/gun/ballistic/automatic/pistol/aps - admin_note = "WARNING: Roughly on-par with the .357, can use AP rounds." - -/datum/opposing_force_equipment/pistol/nri_pistol - item_type = /obj/item/gun/ballistic/automatic/pistol/nri - admin_note = "WARNING: Roughly on-par with the .357, can use AP rounds. Essentially a reflavored APS." - -/datum/opposing_force_equipment/pistol/g357 - item_type = /obj/item/gun/ballistic/revolver - description = "A .357 magnum revolver. Seven shots, more than enough to kill anything that moves." - admin_note = "WARNING: This weapon is very powerful, firing semi-auto 60 damage bullets." - -/datum/opposing_force_equipment/pistol/mateba - item_type = /obj/item/gun/ballistic/revolver/mateba - admin_note = "WARNING: This weapon is very powerful, firing semi-auto 60 damage bullets." - -/datum/opposing_force_equipment/pistol/nagant - item_type = /obj/item/gun/ballistic/revolver/nagant - admin_note = "WARNING: This weapon is very powerful, firing semi-auto 60 damage bullets." - -/datum/opposing_force_equipment/pistol/wespe - item_type = /obj/item/gun/ballistic/automatic/pistol/sol/evil diff --git a/modular_skyrat/modules/opposing_force/code/equipment/rifles.dm b/modular_skyrat/modules/opposing_force/code/equipment/rifles.dm deleted file mode 100644 index 05739759a80..00000000000 --- a/modular_skyrat/modules/opposing_force/code/equipment/rifles.dm +++ /dev/null @@ -1,13 +0,0 @@ -/datum/opposing_force_equipment/rifle - category = OPFOR_EQUIPMENT_CATEGORY_RIFLES - -/datum/opposing_force_equipment/rifle/m16 - item_type = /obj/item/gun/ballistic/automatic/m16 - admin_note = "WARNING: This weapon is extremely powerful, firing a 3 round burst of 35 damage bullets." - -/datum/opposing_force_equipment/rifle/akm - item_type = /obj/item/gun/ballistic/automatic/akm/nri - admin_note = "WARNING: This weapon is extremely powerful, firing a 3 round burst of 38 damage bullets." - -/datum/opposing_force_equipment/rifle/infanterie - item_type = /obj/item/gun/ballistic/automatic/sol_rifle/evil diff --git a/modular_skyrat/modules/opposing_force/code/equipment/services.dm b/modular_skyrat/modules/opposing_force/code/equipment/services.dm deleted file mode 100644 index 3d99830ce12..00000000000 --- a/modular_skyrat/modules/opposing_force/code/equipment/services.dm +++ /dev/null @@ -1,78 +0,0 @@ -/datum/opposing_force_equipment/service - category = OPFOR_EQUIPMENT_CATEGORY_SERVICES - -/datum/opposing_force_equipment/service/rep - name = "100 Reputation" - description = "Grant your Syndicate uplink 100 reputation, should you have one." - item_type = /obj/effect/gibspawner/generic - var/rep_count = 100 - -/datum/opposing_force_equipment/service/rep/high - name = "500 Reputation" - description = "Grant your Syndicate uplink 500 reputation, should you have one." - item_type = /obj/effect/gibspawner/generic - rep_count = 500 - -/datum/opposing_force_equipment/service/rep/very_high - name = "1000 Reputation" - description = "Grant your Syndicate uplink 1000 reputation, should you have one." - item_type = /obj/effect/gibspawner/generic - rep_count = 1000 - -/datum/opposing_force_equipment/service/rep/on_issue(mob/living/target) - var/datum/component/uplink/the_uplink = target.mind.find_syndicate_uplink() - if(!the_uplink) //Why'd you even purchase this in the first place? - return - var/datum/uplink_handler/handler = the_uplink.uplink_handler - if(!handler) - return - handler.progression_points += (rep_count * 60) - -/datum/opposing_force_equipment/service/power_outage - name = "Power Outage" - description = "A virus will be uploaded to the engineering processing servers to force a routine power grid check, forcing all APCs on the station to be temporarily disabled." - item_type = /obj/effect/gibspawner/generic - admin_note = "Equivalent to the Grid Check random event." - max_amount = 1 - -/datum/opposing_force_equipment/service/power_outage/on_issue() - var/datum/round_event_control/event = locate(/datum/round_event_control/grid_check) in SSevents.control - event.run_event() - -/datum/opposing_force_equipment/service/telecom_outage - name = "Telecomms Outage" - description = "A virus will be uploaded to the telecommunication processing servers to temporarily disable themselves." - item_type = /obj/effect/gibspawner/generic - admin_note = "Equivalent to the Communications Blackout random event." - max_amount = 1 - -/datum/opposing_force_equipment/service/telecom_outage/on_issue() - var/datum/round_event_control/event = locate(/datum/round_event_control/communications_blackout) in SSevents.control - event.run_event() - -/datum/opposing_force_equipment/service/market_crash - name = "Market Crash" - description = "Some forged documents will be given to Nanotrasen, skyrocketing the price of all on-station vendors for a short while." - item_type = /obj/effect/gibspawner/generic - admin_note = "Equivalent to the Market Crash random event." - max_amount = 1 - -/datum/opposing_force_equipment/service/market_crash/on_issue() - var/datum/round_event_control/event = locate(/datum/round_event_control/market_crash) in SSevents.control - event.run_event() - -/datum/opposing_force_equipment/service/give_exploitables - name = "Exploitables Access" - description = "You will be given access to a network of exploitable information of certain crewmates, viewable using either a verb or on examine." - item_type = /obj/effect/gibspawner/generic - admin_note = "Same effect as using the traitor panel Toggle Exploitables Override button. Usually safe to give." - -/datum/opposing_force_equipment/service/give_exploitables/on_issue(mob/living/target) - target.mind.has_exploitables_override = TRUE - target.mind.handle_exploitables() - -/datum/opposing_force_equipment/service/fake_announcer - name = "Fake Announcement" - item_type = /obj/item/device/traitor_announcer - description = "A one-use device that lets you make an announcement of your choice, sending it to the station under the guise of the captain's authority." - diff --git a/modular_skyrat/modules/opposing_force/code/equipment/shotguns.dm b/modular_skyrat/modules/opposing_force/code/equipment/shotguns.dm deleted file mode 100644 index 74e5d53263c..00000000000 --- a/modular_skyrat/modules/opposing_force/code/equipment/shotguns.dm +++ /dev/null @@ -1,13 +0,0 @@ -/datum/opposing_force_equipment/shotgun - category = OPFOR_EQUIPMENT_CATEGORY_SHOTGUNS - -/datum/opposing_force_equipment/shotgun/renoster - item_type = /obj/item/gun/ballistic/shotgun/riot/sol/evil - -/datum/opposing_force_equipment/shotgun/as2 - item_type = /obj/item/gun/ballistic/shotgun/automatic/as2 - description = "A compact version of the combat shotgun. Comes with a four-round tube and can be silenced as well as holstered to your belt or vest. \ - Comes loaded with slugs but can take any 12 gauge load." - -/datum/opposing_force_equipment/shotgun/bulldog - item_type = /obj/item/gun/ballistic/shotgun/bulldog/unrestricted diff --git a/modular_skyrat/modules/opposing_force/code/equipment/spells.dm b/modular_skyrat/modules/opposing_force/code/equipment/spells.dm index 3fa04e46420..98c09e81b7e 100644 --- a/modular_skyrat/modules/opposing_force/code/equipment/spells.dm +++ b/modular_skyrat/modules/opposing_force/code/equipment/spells.dm @@ -1,52 +1,84 @@ -/datum/opposing_force_equipment/spell +/datum/opposing_force_equipment/spells category = OPFOR_EQUIPMENT_CATEGORY_SPELLS -/datum/opposing_force_equipment/spell/fireball +/datum/opposing_force_equipment/spells/fireball name = "Fireball" item_type = /obj/item/book/granter/action/spell/fireball - description = "This spell fires an explosive fireball at a target." - admin_note = "WARNING: This spell has a fairly short cooldown, and can KO/kill on it's own." + description = "This spells fires an explosive fireball at a target." + admin_note = "WARNING: This spells has a fairly short cooldown, and can KO/kill on it's own." -/datum/opposing_force_equipment/spell/sacredflame +/datum/opposing_force_equipment/spells/sacredflame name = "Sacred Flame" item_type = /obj/item/book/granter/action/spell/sacredflame description = "Makes everyone around you more flammable, and lights yourself on fire." -/datum/opposing_force_equipment/spell/smoke +/datum/opposing_force_equipment/spells/smoke name = "Smoke" item_type = /obj/item/book/granter/action/spell/smoke - description = "This spell spawns a cloud of choking smoke at your location." + description = "This spells spawns a cloud of choking smoke at your location." -/datum/opposing_force_equipment/spell/blind +/datum/opposing_force_equipment/spells/blind name = "Blind" item_type = /obj/item/book/granter/action/spell/blind - description = "This spell temporarily blinds a single target." + description = "This spells temporarily blinds a single target." admin_note = "WARNING: Notably strong in 1-v-1s." -/datum/opposing_force_equipment/spell/mindswap +/datum/opposing_force_equipment/spells/mindswap name = "Mindswap" item_type = /obj/item/book/granter/action/spell/mindswap - description = "This spell allows the user to switch bodies with a target next to them." - admin_note = "WARNING: This spell allows the user to swap minds with someone else, and is overall very strong." + description = "This spells allows the user to switch bodies with a target next to them." + admin_note = "WARNING: This spells allows the user to swap minds with someone else, and is overall very strong." -/datum/opposing_force_equipment/spell/forcewall +/datum/opposing_force_equipment/spells/forcewall name = "Forcewall" item_type = /obj/item/book/granter/action/spell/forcewall description = "Create a magical barrier that only you can pass through." -/datum/opposing_force_equipment/spell/knock +/datum/opposing_force_equipment/spells/knock name = "Knock" item_type = /obj/item/book/granter/action/spell/knock - description = "This spell opens nearby doors and closets." + description = "This spells opens nearby doors and closets." -/datum/opposing_force_equipment/spell/charge +/datum/opposing_force_equipment/spells/charge name = "Charge" item_type = /obj/item/book/granter/action/spell/charge - description = "This spell can be used to recharge a variety of things in your hands, from magical artifacts to electrical components. A creative wizard can even use it to grant magical power to a fellow magic user." + description = "This spells can be used to recharge a variety of things in your hands, from magical artifacts to electrical components. A creative wizard can even use it to grant magical power to a fellow magic user." admin_note = "This one can be used for some fuckery (such as recharging martial art granters, sometimes), be a bit careful." -/datum/opposing_force_equipment/spell/summonitem +/datum/opposing_force_equipment/spells/summonitem name = "Summon Item" item_type = /obj/item/book/granter/action/spell/summonitem - description = "This spell can be used to recall a previously marked item to your hand from anywhere in the universe." - admin_note = "WARNING: This spell lets them summon anything they can hold, for as long as it exists, or they can still cast the spell." + description = "This spells can be used to recall a previously marked item to your hand from anywhere in the universe." + admin_note = "WARNING: This spells lets them summon anything they can hold, for as long as it exists, or they can still cast the spells." + +/datum/opposing_force_equipment/martial_art + category = OPFOR_EQUIPMENT_CATEGORY_SCROLLS + +/datum/opposing_force_equipment/martial_art/cqc + name = "CQC Manual" + item_type = /obj/item/book/granter/martial/cqc + description = "A manual that teaches a single user tactical Close-Quarters Combat before self-destructing." + admin_note = "CQC is capable of knocking out a target in 3 hits and is equivalent to 23 TC." + +/datum/opposing_force_equipment/martial_art/carp + name = "Sleeping Carp Scroll" + item_type = /obj/item/book/granter/martial/carp + description = "This scroll contains the secrets of an ancient martial arts technique. You will master unarmed combat \ + and gain the ability to swat bullets from the air, but you will also refuse to use dishonorable ranged weaponry." + admin_note = "Sleeping Carp is capable of letting you reflect bullets." + +/datum/opposing_force_equipment/martial_art/kravmaga + name = "Krav Maga Implanter" + item_type = /obj/item/implanter/krav_maga + description = "No need for gloves! This handy implanter teaches you everything you need to know about Krav Maga." + +/datum/opposing_force_equipment/martial_art/wrestling + name = "Wrestling Belt" + item_type = /obj/item/storage/belt/champion/wrestling + description = "With the imbued MACHO POWERS of this belt, learn the MACHO art of wrestling!" + admin_note = "Warning: Very powerful if questionably unbeatable in a 1v1, very capable of chain-stunning just about anyone (from range, if they can get on a table)" + +/datum/opposing_force_equipment/martial_art/mushpunch + name = "Mushpunch Mushroom" + item_type = /obj/item/mushpunch + description = "Consume this mushroom to learn the Mushroom Punch! A powerful attack that allows you to send people flying." diff --git a/modular_skyrat/modules/opposing_force/code/equipment/submachineguns.dm b/modular_skyrat/modules/opposing_force/code/equipment/submachineguns.dm deleted file mode 100644 index 7b687ae7eca..00000000000 --- a/modular_skyrat/modules/opposing_force/code/equipment/submachineguns.dm +++ /dev/null @@ -1,34 +0,0 @@ -/datum/opposing_force_equipment/submachine_gun - category = OPFOR_EQUIPMENT_CATEGORY_SUBMACHINE_GUNS - -/datum/opposing_force_equipment/submachine_gun/sindano - item_type = /obj/item/gun/ballistic/automatic/sol_smg/evil - -/datum/opposing_force_equipment/submachine_gun/mp40 - item_type = /obj/item/gun/ballistic/automatic/mp40 - admin_note = "WARNING: This weapon is extremely powerful, firing a 3 round burst of 30 damage bullets." - -/datum/opposing_force_equipment/submachine_gun/pps - item_type = /obj/item/gun/ballistic/automatic/pps - description = "A very cheap, barely reliable reproduction of a personal defense weapon based on the original Soviet model. Not nearly as infamous as the Mosin. \ - Compact enough to fit in your backpack!" - -/datum/opposing_force_equipment/submachine_gun/ppsh - item_type = /obj/item/gun/ballistic/automatic/ppsh - admin_note = "WARNING: !Blatantly Overpowered! This weapon is extremely powerful, firing a 6 round burst of 22 damage bullets." - -/datum/opposing_force_equipment/submachine_gun/fg42 - item_type = /obj/item/gun/ballistic/automatic/fg42 - admin_note = "WARNING: !Extremely Strong! This weapon is extremely powerful, firing a 2 round burst of 45 damage bullets." - -/datum/opposing_force_equipment/submachine_gun/uzi - item_type = /obj/item/gun/ballistic/automatic/mini_uzi - description = "The uzi nine millimeter, a timeless submachinegun for a warrior out of time." - admin_note = "WARNING: This weapon is decently powerful, firing a 2 round burst of 30 damage bullets." - -/datum/opposing_force_equipment/submachine_gun/nri_smg - item_type = /obj/item/gun/ballistic/automatic/nri_smg - admin_note = "Capable of high rate of fire bursts of 20 damage bullets." - -/datum/opposing_force_equipment/submachine_gun/c20r - item_type = /obj/item/gun/ballistic/automatic/c20r/unrestricted diff --git a/modular_skyrat/modules/opposing_force/code/equipment/uplink.dm b/modular_skyrat/modules/opposing_force/code/equipment/uplink.dm new file mode 100644 index 00000000000..60dd048b1cb --- /dev/null +++ b/modular_skyrat/modules/opposing_force/code/equipment/uplink.dm @@ -0,0 +1,102 @@ +/datum/opposing_force_equipment/uplink + category = OPFOR_EQUIPMENT_CATEGORY_CLOTHING_UPLINK + +//Uplinks +/datum/opposing_force_equipment/uplink/uplink_old_radio + item_type = /obj/item/uplink/old_radio + name = "Old Syndicate Uplink" + description = "An old-school Syndicate uplink without a password and an empty TC account. Perfect for the aspiring operatives." + admin_note = "Traitor uplink without telecrystals." + +/datum/opposing_force_equipment/uplink/uplink_implant + item_type = /obj/item/implant/uplink + name = "Implanted Syndicate Uplink" + admin_note = "Traitor uplink without telecrystals." + +/datum/opposing_force_equipment/uplink/tc1 + item_type = /obj/item/stack/telecrystal + name = "1 Raw Telecrystal" + description = "A telecrystal in its rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." + +/datum/opposing_force_equipment/uplink/tc5 + item_type = /obj/item/stack/telecrystal/five + name = "5 Raw Telecrystals" + description = "A bunch of telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." + +/datum/opposing_force_equipment/uplink/tc10 + item_type = /obj/item/stack/telecrystal/twenty + name = "20 Raw Telecrystals" + description = "A bundle of telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." + +/datum/opposing_force_equipment/uplink/c10k + name = "10000 Space Cash Bill" + item_type = /obj/item/stack/spacecash/c10000 + description = "Cold hard cash." + +//Tot powers +/datum/opposing_force_equipment/uplink/changeling + item_type = /obj/item/antag_granter/changeling + name = "Changeling Injector" + description = "A heavy-duty injector containing a highly infectious virus, turning the user into a \"Changeling\"." + admin_note = "Changeling antag granter." + +/datum/opposing_force_equipment/uplink/heretic + item_type = /obj/item/antag_granter/heretic + name = "Heretical Book" + description = "A purple book with an eldritch eye on it, capable of making one into a \"Heretic\", one with the Forgotten Gods." + admin_note = "Heretic antag granter." + +/datum/opposing_force_equipment/uplink/clock_cult + item_type = /obj/item/antag_granter/clock_cultist + name = "Clockwork Contraption" + description = "A cogwheel-shaped device of brass, with a glass lens floating, suspended in the center. Capable of making one become a \"Clock Cultist\"." + admin_note = "Clockwork Cultist (solo) antag granter." + +//Services +/datum/opposing_force_equipment/uplink/give_exploitables + name = "Exploitables Access" + description = "You will be given access to a network of exploitable information of certain crewmates, viewable using either a verb or on examine." + item_type = /obj/effect/gibspawner/generic + admin_note = "Same effect as using the traitor panel Toggle Exploitables Override button. Usually safe to give." + +/datum/opposing_force_equipment/uplink/give_exploitables/on_issue(mob/living/target) + target.mind.has_exploitables_override = TRUE + target.mind.handle_exploitables() + +/datum/opposing_force_equipment/uplink/power_outage + name = "Power Outage" + description = "A virus will be uploaded to the engineering processing servers to force a routine power grid check, forcing all APCs on the station to be temporarily disabled." + item_type = /obj/effect/gibspawner/generic + admin_note = "Equivalent to the Grid Check random event." + max_amount = 1 + +/datum/opposing_force_equipment/uplink/power_outage/on_issue() + var/datum/round_event_control/event = locate(/datum/round_event_control/grid_check) in SSevents.control + event.run_event() + +/datum/opposing_force_equipment/uplink/telecom_outage + name = "Telecomms Outage" + description = "A virus will be uploaded to the telecommunication processing servers to temporarily disable themselves." + item_type = /obj/effect/gibspawner/generic + admin_note = "Equivalent to the Communications Blackout random event." + max_amount = 1 + +/datum/opposing_force_equipment/uplink/telecom_outage/on_issue() + var/datum/round_event_control/event = locate(/datum/round_event_control/communications_blackout) in SSevents.control + event.run_event() + +/datum/opposing_force_equipment/uplink/market_crash + name = "Market Crash" + description = "Some forged documents will be given to Nanotrasen, skyrocketing the price of all on-station vendors for a short while." + item_type = /obj/effect/gibspawner/generic + admin_note = "Equivalent to the Market Crash random event." + max_amount = 1 + +/datum/opposing_force_equipment/uplink/market_crash/on_issue() + var/datum/round_event_control/event = locate(/datum/round_event_control/market_crash) in SSevents.control + event.run_event() + +/datum/opposing_force_equipment/uplink/fake_announcer + name = "Fake Announcement" + item_type = /obj/item/device/traitor_announcer + description = "A one-use device that lets you make an announcement of your choice, sending it to the station under the guise of the captain's authority." diff --git a/modular_skyrat/modules/opposing_force/code/equipment/utility.dm b/modular_skyrat/modules/opposing_force/code/equipment/utility.dm deleted file mode 100644 index 7bdc361280a..00000000000 --- a/modular_skyrat/modules/opposing_force/code/equipment/utility.dm +++ /dev/null @@ -1,198 +0,0 @@ -/datum/opposing_force_equipment/gear - category = OPFOR_EQUIPMENT_CATEGORY_UTILITY - -/datum/opposing_force_equipment/gear/emag - name = "Cryptographic Sequencer" - item_type = /obj/item/card/emag - description = "An electromagnetic ID card used to break machinery and disable safeties. Notoriously used by Syndicate agents, now commonly traded hardware at blackmarkets." - -/datum/opposing_force_equipment/gear/doormag - name = "Airlock Override Card" - item_type = /obj/item/card/emag/doorjack - description = "Identifies commonly as a \"doorjack\", this illegally modified ID card can disrupt airlock electronics. Has a self recharging cell." - -/datum/opposing_force_equipment/gear/tram_remote - name = "Tram Remote Control" - item_type = /obj/item/assembly/control/transport/remote - description = "When linked to a tram's on board computer systems, this device allows the user to manipulate the controls remotely. \ - Includes direction toggle and a rapid mode to bypass door safety checks and crossing signals. \ - Perfect for running someone over in the name of a tram malfunction!" - -/datum/opposing_force_equipment/gear/stoolbox - item_type = /obj/item/storage/toolbox/syndicate - description = "A fully-kitted toolbox scavenged from maintenance by our highly-paid monkeys. The toolbox \ - itself is weighted especially to bash any head in and comes with a free pair of insulated combat gloves." - -/datum/opposing_force_equipment/gear/xraygoggles - item_type = /obj/item/clothing/glasses/thermal/xray - description = "A pair of low-light x-ray goggles manufactured by the Syndicate. Cannot be chameleon disguised. Makes wearer more vulnerable to bright lights." - -/datum/opposing_force_equipment/gear/thermalgogglessyndi - item_type = /obj/item/clothing/glasses/thermal/syndi - description = "A Syndicate take on the classic thermal goggles, complete with chameleon disguise functionality." - -/datum/opposing_force_equipment/gear/cloakerbelt - item_type = /obj/item/shadowcloak - description = "A belt that allows its wearer to temporarily turn invisible. Only recharges in dark areas. Use wisely." - -/datum/opposing_force_equipment/gear/projector - name = "Chameleon Projector" - item_type = /obj/item/chameleon - description = "A projector that allows its user to turn into any scanned object. Pairs well with a cluttered room and ambush weapon." - -/datum/opposing_force_equipment/gear/sechud - item_type = /obj/item/clothing/glasses/hud/security/chameleon - description = "A stolen Security HUD refitted with chameleon technology. Provides flash protection." - -/datum/opposing_force_equipment/gear/aidetector - name = "AI Detector Multitool" - item_type = /obj/item/multitool/ai_detect - description = "A multitool that lets you see the AI's vision cone with an overlaid HUD and know if you're being watched." - -/datum/opposing_force_equipment/gear/noslip - name = "Chameleon No-Slips" - item_type = /obj/item/clothing/shoes/chameleon/noslip - description = "No-slip chameleon shoes, for when you plan on running through hell and back." - -/datum/opposing_force_equipment/gear/suppressor - item_type = /obj/item/suppressor - -/datum/opposing_force_equipment/gear/extendedrag - item_type = /obj/item/reagent_containers/cup/rag/large - description = "A damp rag made with extra absorbant materials. The perfectly innocent tool to kidnap your local assistant. \ - Apply up to 30u liquids and use combat mode to smother anyone not covering their mouth." - -/datum/opposing_force_equipment/gear/mulligan - name = "Mulligan" - item_type = /obj/item/reagent_containers/syringe/mulligan - description = "A syringe containing a chemical that can completely change the user's identity." - - -/datum/opposing_force_equipment/gear/holoparasite - item_type = /obj/item/guardiancreator/tech/choose/traitor - admin_note = "Lets a ghost take control of a guardian spirit bound to the user." - -/datum/opposing_force_equipment/gear/launchpad - name = "Briefcase Launchpad" - item_type = /obj/item/storage/briefcase/launchpad - description = "A briefcase containing a launchpad, a device able to teleport items and people to and from targets up to eight tiles away from the briefcase. \ - Also includes a remote control, disguised as an ordinary folder. Touch the briefcase with the remote to link it." - -/datum/opposing_force_equipment/gear/camera_app - name = "SyndEye Program" - item_type = /obj/item/computer_disk/syndicate/camera_app - -/datum/opposing_force_equipment/gear/microlaser - name = "Radioactive Microlaser" - item_type = /obj/item/healthanalyzer/rad_laser - description = "A radioactive microlaser disguised as a standard Nanotrasen health analyzer. When used, it emits a \ - powerful burst of radiation, which, after a short delay, can incapacitate all but the most protected \ - of humanoids." - admin_note = "WARNING: Is a knockout weapon with no warning, and 'infinite' use." - -/datum/opposing_force_equipment/gear/stimpack - name = "Stimulant Medipen" - item_type = /obj/item/reagent_containers/hypospray/medipen/stimulants - -/datum/opposing_force_equipment/gear/hypnoflash - name = "Hypnotic Flash" - item_type = /obj/item/assembly/flash/hypnotic - description = "A modified flash able to hypnotize targets. If the target is not in a mentally vulnerable state, it will only confuse and pacify them temporarily." - admin_note = "Able to hypnotize people with the next phrase said after exposure." - -/datum/opposing_force_equipment/gear/hypnobang - name = "Hypnotic Flashbang" - item_type = /obj/item/grenade/hypnotic - description = "A modified flashbang able to hypnotize targets. If the target is not in a mentally vulnerable state, it will only confuse and pacify them temporarily." - admin_note = "Able to hypnotize people with the next phrase said after exposure." - -/datum/opposing_force_equipment/gear/agentcard - name = "Agent Card" - item_type = /obj/item/card/id/advanced/chameleon - description = "A highly advanced chameleon ID card. Touch this card on another ID card or player to choose which accesses to copy. Has special magnetic properties which force it to the front of wallets." - -/datum/opposing_force_equipment/gear/chameleonheadsetdeluxe - name = "Advanced Chameleon Headset" - item_type = /obj/item/radio/headset/chameleon/advanced - description = "A premium model Chameleon Headset. All the features you love of the original, but now with flashbang \ - protection, voice amplification, memory-foam, HD Sound Quality, and extra-wide spectrum dial. Usually reserved \ - for high-ranking Cybersun officers, a few spares have been reserved for field agents." - -/datum/opposing_force_equipment/gear/syndiejaws - name = "Syndicate Jaws of Life" - item_type = /obj/item/crowbar/power/syndicate - description = "Based on a Nanotrasen model, this powerful tool can be used as both a crowbar and a pair of wirecutters. \ - In its crowbar configuration, it can be used to force open airlocks. Very useful for entering the station or its departments." - -/datum/opposing_force_equipment/gear/combatmedkit - name = "Syndicate Combat Medic Kit" - item_type = /obj/item/storage/medkit/tactical - description = "This first aid kit is a suspicious black and red. Included is a number of atropine medipens \ - for rapid stabilization, sutures and regenerative mesh for wound treatment, and patches \ - for faster healing on the field. Also comes with basic medical tools and sterlizer." - -/datum/opposing_force_equipment/gear/combatmedkit_premium - name = "Syndicate Combat Medical Suite" - item_type = /obj/item/storage/medkit/tactical/premium - description = "This first aid kit is a suspicious black and red. Included is an unloaded combat chemical injector \ - for suit-penetrative chem delivery, a medical science night vision HUD for quick identification of injured personnel and chemical supplies, \ - improved medical supplies, including Interdyne-approved pharmaceuticals, a hacked cybernetic surgery toolset arm implant, \ - and some helpful MODsuit modules for for field medical use and operative physiopharmaceutical augmentation." - -/datum/opposing_force_equipment/gear/ai_module - name = "Syndicate AI Law Module" - item_type = /obj/item/ai_module/syndicate - description = "When used with an upload console, this module allows you to upload priority laws to an artificial intelligence. \ - Be careful with wording, as artificial intelligences may look for loopholes to exploit." - -/datum/opposing_force_equipment/gear/powersink - name = "Power Sink" - item_type = /obj/item/powersink - description = "When screwed to wiring attached to a power grid and activated, this large device lights up and places excessive \ - load on the grid, causing a station-wide blackout. The sink is large and cannot be stored in most \ - traditional bags and boxes. Caution: Will explode if the powernet contains sufficient amounts of energy." - admin_note = "Drains power from the station, explodes if overloaded." - -/datum/opposing_force_equipment/gear/gorilla_cubes - name = "Box of Gorilla Cubes" - item_type = /obj/item/storage/box/gorillacubes - description = "A box with three Waffle Co. brand gorilla cubes. Eat big to get big. \ - Caution: Product may rehydrate when exposed to water." - -/datum/opposing_force_equipment/gear/sentry_gun - name = "Toolbox Sentry Gun" - item_type = /obj/item/storage/toolbox/emergency/turret - description = "A disposable sentry gun deployment system cleverly disguised as a toolbox, apply wrench for functionality." - -/datum/opposing_force_equipment/gear/cloak_mod - item_type = /obj/item/mod/module/stealth/ninja - description = "An upgraded MODsuit cloaking module stolen from the Spider Clan's finest. Consumes less power than the standard, but is obviously illegal." - -/datum/opposing_force_equipment/gear/chameleon - item_type = /obj/item/mod/module/chameleon - description = "A module that enables the user to disguise their MODsuit as any other type. Only works while undeployed." - -/datum/opposing_force_equipment/gear/thermal_mod - item_type = /obj/item/mod/module/visor/thermal - description = "A visor module for a MODsuit that allows the user to see heat signatures through hard surfaces." - -/datum/opposing_force_equipment/gear/noslip_mod - item_type = /obj/item/mod/module/noslip - description = "A module that prohibits you from slipping on slippery surfaces without the bulk of magboots." - -/datum/opposing_force_equipment/gear/jetpack_mod - item_type = /obj/item/mod/module/jetpack/advanced - description = "A jetpack usually reserved for Syndicate MODsuits, this jetpack had the safety limiters removed, allowing it to move much faster in space." - -/datum/opposing_force_equipment/gear/energyshield_mod - item_type = /obj/item/mod/module/energy_shield - description = "A highly illegal MODsuit module that projects a shield of energy around you, temporarily blocking conventional kinetic and laser projectiles." - admin_note = "WARNING: Gives you essentially, total immunity to three attacks every thirty seconds, give out sparingly." - -/datum/opposing_force_equipment/gear/biteof87_mod - item_type = /obj/item/mod/module/springlock/bite_of_87 - description = "An advanced springlock module that allows the user to enter and exit their MODsuit at extremely fast speeds. There's a scratched-off warning label on the back." - -/datum/opposing_force_equipment/gear/flamethrower_mod - item_type = /obj/item/mod/module/flamethrower - description = "A module that allows the user to fire flames at a target from their wrist." diff --git a/modular_skyrat/modules/opposing_force/code/opposing_force_datum.dm b/modular_skyrat/modules/opposing_force/code/opposing_force_datum.dm index 3fbba083955..e2c019936ae 100644 --- a/modular_skyrat/modules/opposing_force/code/opposing_force_datum.dm +++ b/modular_skyrat/modules/opposing_force/code/opposing_force_datum.dm @@ -449,19 +449,14 @@ if(!selected_equipment.len || !isliving(mind_reference.current) || status != OPFOR_STATUS_APPROVED || equipment_issued) return var/mob/living/target = mind_reference.current - var/obj/item/storage/box/spawned_box = new(get_turf(target)) for(var/datum/opposing_force_selected_equipment/iterating_equipment as anything in selected_equipment) if(iterating_equipment.status != OPFOR_EQUIPMENT_STATUS_APPROVED) continue for(var/i in 1 to iterating_equipment.count) if(!(iterating_equipment.opposing_force_equipment.item_type == /obj/effect/gibspawner/generic)) // This is what's used in place of an item in uplinks, so it's the same here - new iterating_equipment.opposing_force_equipment.item_type(spawned_box) + new iterating_equipment.opposing_force_equipment.item_type(get_turf(target)) iterating_equipment.opposing_force_equipment.on_issue(target) - if(ishuman(target)) - var/mob/living/carbon/human/human = target - human.put_in_hands(spawned_box) - add_log(user.ckey, "Issued gear") send_system_message("[user ? get_admin_ckey(user) : "The OPFOR subsystem"] has issued all approved equipment") equipment_issued = TRUE diff --git a/modular_skyrat/modules/opposing_force/code/opposing_force_subsystem.dm b/modular_skyrat/modules/opposing_force/code/opposing_force_subsystem.dm index 5f765751f02..2e4eece0d38 100644 --- a/modular_skyrat/modules/opposing_force/code/opposing_force_subsystem.dm +++ b/modular_skyrat/modules/opposing_force/code/opposing_force_subsystem.dm @@ -48,6 +48,7 @@ SUBSYSTEM_DEF(opposing_force) equipment_list[OPFOR_EQUIPMENT_CATEGORY_OTHER] = list() // We don't have home :( add us to the other category. equipment_list[OPFOR_EQUIPMENT_CATEGORY_OTHER] += spawned_opfor_equipment + equipment_list = sort_list(equipment_list, GLOBAL_PROC_REF(cmp_num_string_asc)) return SS_INIT_SUCCESS /datum/controller/subsystem/opposing_force/proc/check_availability() diff --git a/modular_skyrat/modules/robohand/code/silverhand_bundle.dm b/modular_skyrat/modules/robohand/code/silverhand_bundle.dm deleted file mode 100644 index 04164805c6b..00000000000 --- a/modular_skyrat/modules/robohand/code/silverhand_bundle.dm +++ /dev/null @@ -1,51 +0,0 @@ -/obj/item/storage/backpack/duffelbag/syndie/loadout/robohand/PopulateContents() - new /obj/item/gun/ballistic/automatic/pistol/robohand(src) - new /obj/item/ammo_box/magazine/m14mm(src) - new /obj/item/ammo_box/magazine/m14mm(src) - new /obj/item/ammo_box/magazine/m14mm(src) - new /obj/item/ammo_box/magazine/m14mm(src) - new /obj/item/storage/belt/military(src) - new /obj/item/clothing/under/pants/black/robohand(src) - new /obj/item/clothing/gloves/combat(src) - new /obj/item/clothing/shoes/combat(src) - new /obj/item/clothing/glasses/sunglasses/robohand(src) - new /obj/item/clothing/suit/armor/bulletproof/old(src) - new /obj/item/autosurgeon/bodypart/r_arm_robotic(src) - new /obj/item/autosurgeon/syndicate/esword_arm(src) - new /obj/item/autosurgeon/syndicate/nodrop(src) - - -/obj/item/autosurgeon/syndicate/esword_arm - starting_organ = /obj/item/organ/internal/cyberimp/arm/esword - -/obj/item/clothing/under/pants/black/robohand - name = "badass pants" - desc = "Strangely firm yet soft black pants, these appear to have some armor padding for added protection." - armor_type = /datum/armor/clothing_under/black_robohand - -/datum/armor/clothing_under/black_robohand - melee = 20 - bullet = 20 - laser = 20 - energy = 20 - bomb = 20 - -/obj/item/autosurgeon/syndicate/nodrop - starting_organ = /obj/item/organ/internal/cyberimp/brain/anti_drop - -//What do you mean glasses don't protect your head? Of course they do. Cyberpunk has flying cars(mostly intentional)! -/obj/item/clothing/glasses/sunglasses/robohand - name = "badass sunglasses" - desc = "Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks flashes. These ones seem to be bulletproof?" - body_parts_covered = HEAD - armor_type = /datum/armor/sunglasses_robohand - -//Again, not a bug, it's a feature. ALL PARTS COVERED!! - -/datum/armor/sunglasses_robohand - melee = 20 - bullet = 60 - laser = 20 - energy = 20 - bomb = 20 - wound = 5 diff --git a/tgstation.dme b/tgstation.dme index 9fc8dc1c74f..71fe8e96868 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -7500,19 +7500,21 @@ #include "modular_skyrat\modules\morenarcotics\code\thc.dm" #include "modular_skyrat\modules\morenarcotics\code\thc_item.dm" #include "modular_skyrat\modules\morenarcotics\code\vapecarts.dm" +#include "modular_skyrat\modules\moretraitoritems\code\autosurgeon.dm" +#include "modular_skyrat\modules\moretraitoritems\code\autosurgeon_bodypart.dm" #include "modular_skyrat\modules\moretraitoritems\code\cards_id.dm" +#include "modular_skyrat\modules\moretraitoritems\code\cultist.dm" #include "modular_skyrat\modules\moretraitoritems\code\drinkingglass.dm" #include "modular_skyrat\modules\moretraitoritems\code\fake_announcement.dm" #include "modular_skyrat\modules\moretraitoritems\code\glue.dm" #include "modular_skyrat\modules\moretraitoritems\code\headset.dm" -#include "modular_skyrat\modules\moretraitoritems\code\mafioso.dm" -#include "modular_skyrat\modules\moretraitoritems\code\ocelot_revolver.dm" +#include "modular_skyrat\modules\moretraitoritems\code\pirate.dm" #include "modular_skyrat\modules\moretraitoritems\code\smuggling_gear.dm" #include "modular_skyrat\modules\moretraitoritems\code\spawnergrenade.dm" -#include "modular_skyrat\modules\moretraitoritems\code\syndicate_loadout.dm" +#include "modular_skyrat\modules\moretraitoritems\code\syndicate.dm" #include "modular_skyrat\modules\moretraitoritems\code\syndiemirror.dm" #include "modular_skyrat\modules\moretraitoritems\code\uplink_kits.dm" -#include "modular_skyrat\modules\moretraitoritems\code\weaponry.dm" +#include "modular_skyrat\modules\moretraitoritems\code\weapons.dm" #include "modular_skyrat\modules\morewizardstuffs\spellbook.dm" #include "modular_skyrat\modules\morewizardstuffs\spells\bloodcrawl_potion.dm" #include "modular_skyrat\modules\morewizardstuffs\spells\magical_stimpack.dm" @@ -7554,29 +7556,22 @@ #include "modular_skyrat\modules\opposing_force\code\admin_procs.dm" #include "modular_skyrat\modules\opposing_force\code\antagonist.dm" #include "modular_skyrat\modules\opposing_force\code\dynamic.dm" -#include "modular_skyrat\modules\opposing_force\code\items.dm" #include "modular_skyrat\modules\opposing_force\code\mind.dm" #include "modular_skyrat\modules\opposing_force\code\opposing_force_datum.dm" #include "modular_skyrat\modules\opposing_force\code\opposing_force_subsystem.dm" #include "modular_skyrat\modules\opposing_force\code\roundend.dm" #include "modular_skyrat\modules\opposing_force\code\equipment\ammo.dm" -#include "modular_skyrat\modules\opposing_force\code\equipment\antagonist_powers.dm" +#include "modular_skyrat\modules\opposing_force\code\equipment\biology.dm" +#include "modular_skyrat\modules\opposing_force\code\equipment\bombs.dm" #include "modular_skyrat\modules\opposing_force\code\equipment\clothing.dm" #include "modular_skyrat\modules\opposing_force\code\equipment\equip_parent.dm" -#include "modular_skyrat\modules\opposing_force\code\equipment\explosives.dm" +#include "modular_skyrat\modules\opposing_force\code\equipment\gadgets.dm" +#include "modular_skyrat\modules\opposing_force\code\equipment\guns.dm" #include "modular_skyrat\modules\opposing_force\code\equipment\implants.dm" -#include "modular_skyrat\modules\opposing_force\code\equipment\languages.dm" -#include "modular_skyrat\modules\opposing_force\code\equipment\loadouts.dm" -#include "modular_skyrat\modules\opposing_force\code\equipment\martial_arts.dm" #include "modular_skyrat\modules\opposing_force\code\equipment\melee.dm" -#include "modular_skyrat\modules\opposing_force\code\equipment\misc.dm" -#include "modular_skyrat\modules\opposing_force\code\equipment\pistols.dm" -#include "modular_skyrat\modules\opposing_force\code\equipment\rifles.dm" -#include "modular_skyrat\modules\opposing_force\code\equipment\services.dm" -#include "modular_skyrat\modules\opposing_force\code\equipment\shotguns.dm" +#include "modular_skyrat\modules\opposing_force\code\equipment\modsuit.dm" #include "modular_skyrat\modules\opposing_force\code\equipment\spells.dm" -#include "modular_skyrat\modules\opposing_force\code\equipment\submachineguns.dm" -#include "modular_skyrat\modules\opposing_force\code\equipment\utility.dm" +#include "modular_skyrat\modules\opposing_force\code\equipment\uplink.dm" #include "modular_skyrat\modules\organs\code\liver.dm" #include "modular_skyrat\modules\organs\code\lungs.dm" #include "modular_skyrat\modules\organs\code\organs.dm" @@ -7665,9 +7660,6 @@ #include "modular_skyrat\modules\records_on_examine\code\view_exploitables.dm" #include "modular_skyrat\modules\resleeving\code\rsd_interface.dm" #include "modular_skyrat\modules\resleeving\code\research\resleeving_research.dm" -#include "modular_skyrat\modules\robohand\code\bodypart_autosurgeon.dm" -#include "modular_skyrat\modules\robohand\code\robohand.dm" -#include "modular_skyrat\modules\robohand\code\silverhand_bundle.dm" #include "modular_skyrat\modules\rod-stopper\code\immovable_skyrat.dm" #include "modular_skyrat\modules\rod-stopper\code\rodstopper.dm" #include "modular_skyrat\modules\salon\code\barber.dm" diff --git a/tgui/packages/tgui/interfaces/OpposingForcePanel.js b/tgui/packages/tgui/interfaces/OpposingForcePanel.js index 8f27040e36c..9cf77eed299 100644 --- a/tgui/packages/tgui/interfaces/OpposingForcePanel.js +++ b/tgui/packages/tgui/interfaces/OpposingForcePanel.js @@ -13,7 +13,7 @@ export const OpposingForcePanel = (props, context) => { width={585} height={840} theme={owner_antag ? 'syndicate' : 'admin'}> - +