diff --git a/modular_nova/modules/bitrunning/code/ghost_spawner.dm b/modular_nova/modules/bitrunning/code/ghost_spawner.dm deleted file mode 100644 index e0c9a57f6e8..00000000000 --- a/modular_nova/modules/bitrunning/code/ghost_spawner.dm +++ /dev/null @@ -1,48 +0,0 @@ -/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander - random_appearance = FALSE - -/obj/effect/mob_spawn/ghost_role/human/virtual_domain/pirate - mob_species = /datum/species/skeleton - -/obj/effect/mob_spawn/ghost_role/human/virtual_domain/syndie - random_appearance = FALSE - -/obj/effect/mob_spawn/ghost_role/human/virtual_domain/syndie/proc/apply_syndiename(mob/living/carbon/human/spawned_human) - var/bitrunning_alias = spawned_human.client?.prefs?.read_preference(/datum/preference/name/hacker_alias) || pick(GLOB.hacker_aliases) - spawned_human.fully_replace_character_name(spawned_human.real_name, "[bitrunning_alias]") - -/obj/effect/mob_spawn/ghost_role/human/virtual_domain/syndie/special(mob/living/carbon/human/spawned_human) - . = ..() - apply_syndiename(spawned_human) - -/obj/effect/mob_spawn/ghost_role/human/virtual_domain/syndie/post_transfer_prefs(mob/living/carbon/human/spawned_human) - . = ..() - apply_syndiename(spawned_human) - -/datum/outfit/virtual_pirate/post_equip(mob/living/carbon/human/user, visualsOnly) - . = ..() - user.faction |= FACTION_PIRATE - // make sure we update the ID's name too - var/obj/item/card/id/id_card = user.wear_id - if(istype(id_card)) - id_card.registered_name = user.real_name - id_card.update_label() - -/datum/outfit/virtual_syndicate - ears = /obj/item/radio/headset/cybersun - -/datum/outfit/virtual_syndicate/post_equip(mob/living/carbon/human/user, visualsOnly) - . = ..() - // make sure we update the ID's name too - var/obj/item/card/id/id_card = user.wear_id - if(istype(id_card)) - id_card.registered_name = user.real_name - id_card.update_label() - -/datum/outfit/beachbum_combat/post_equip(mob/living/carbon/human/bum, visualsOnly) - . = ..() - // make sure we update the ID's name too - var/obj/item/card/id/id_card = bum.wear_id - if(istype(id_card)) - id_card.registered_name = bum.real_name - id_card.update_label() diff --git a/modular_nova/modules/bitrunning/code/virtual_domains/island_brawl/ghost_spawner.dm b/modular_nova/modules/bitrunning/code/virtual_domains/island_brawl/ghost_spawner.dm new file mode 100644 index 00000000000..101200f3791 --- /dev/null +++ b/modular_nova/modules/bitrunning/code/virtual_domains/island_brawl/ghost_spawner.dm @@ -0,0 +1,10 @@ +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander + random_appearance = FALSE + +/datum/outfit/beachbum_combat/post_equip(mob/living/carbon/human/bum, visualsOnly) + . = ..() + // make sure we update the ID's name too + var/obj/item/card/id/id_card = bum.wear_id + if(istype(id_card)) + id_card.registered_name = bum.real_name + id_card.update_label() diff --git a/modular_nova/modules/bitrunning/code/virtual_domains/pirates/ghost_spawner.dm b/modular_nova/modules/bitrunning/code/virtual_domains/pirates/ghost_spawner.dm new file mode 100644 index 00000000000..6a91bcbd16f --- /dev/null +++ b/modular_nova/modules/bitrunning/code/virtual_domains/pirates/ghost_spawner.dm @@ -0,0 +1,11 @@ +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/pirate + mob_species = /datum/species/skeleton + +/datum/outfit/virtual_pirate/post_equip(mob/living/carbon/human/user, visualsOnly) + . = ..() + user.faction |= FACTION_PIRATE + // make sure we update the ID's name too + var/obj/item/card/id/id_card = user.wear_id + if(istype(id_card)) + id_card.registered_name = user.real_name + id_card.update_label() diff --git a/modular_nova/modules/bitrunning/code/virtual_domains/syndicate_assault/ghost_spawner.dm b/modular_nova/modules/bitrunning/code/virtual_domains/syndicate_assault/ghost_spawner.dm new file mode 100644 index 00000000000..4caf1944fd6 --- /dev/null +++ b/modular_nova/modules/bitrunning/code/virtual_domains/syndicate_assault/ghost_spawner.dm @@ -0,0 +1,23 @@ +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/syndie + name = "delayed secure connection" + desc = "Constant 'handshake no response' errors are flickering across the static-covered figure." + icon = 'icons/effects/effects.dmi' + icon_state = "static" + prompt_name = "a cybersun counter-bitrunner avatar" + you_are_text = "You are a virtual avatar of a Cybersun-aligned counter-bitrunner, or an aligned SNPC." + flavour_text = "Servers are throwing intrusion errors - you are here to fix the problem. \ + Running from your own servers, you have the ability to revive your colleagues without the fear of being tossed out." + important_text = "Stalling for long enough will also allow us to recoup the costs. Complete denial is still preferable." + random_appearance = FALSE + +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/syndie/proc/apply_syndiename(mob/living/carbon/human/spawned_human) + var/bitrunning_alias = spawned_human.client?.prefs?.read_preference(/datum/preference/name/hacker_alias) || pick(GLOB.hacker_aliases) + spawned_human.fully_replace_character_name(spawned_human.real_name, "[bitrunning_alias]") + +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/syndie/special(mob/living/carbon/human/spawned_human) + . = ..() + apply_syndiename(spawned_human) + +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/syndie/post_transfer_prefs(mob/living/carbon/human/spawned_human) + . = ..() + apply_syndiename(spawned_human) diff --git a/modular_nova/modules/bitrunning/code/virtual_domains/syndicate_assault/mod.dm b/modular_nova/modules/bitrunning/code/virtual_domains/syndicate_assault/mod.dm new file mode 100644 index 00000000000..ebd1d6a98bd --- /dev/null +++ b/modular_nova/modules/bitrunning/code/virtual_domains/syndicate_assault/mod.dm @@ -0,0 +1,21 @@ +/obj/item/mod/control/pre_equipped/contractor/virtual_domain + theme = /datum/mod_theme/contractor/virtual_domain + applied_cell = /obj/item/stock_parts/power_store/cell/bluespace + applied_modules = list( + /obj/item/mod/module/dna_lock, + /obj/item/mod/module/holster, + /obj/item/mod/module/storage/syndicate, + /obj/item/mod/module/visor/sechud, + /obj/item/mod/module/dispenser, + ) + default_pins = list( + /obj/item/mod/module/dna_lock, + /obj/item/mod/module/jetpack/advanced, + /obj/item/mod/module/holster, + /obj/item/mod/module/visor/sechud, + /obj/item/mod/module/dispenser, + ) + +/datum/mod_theme/contractor/virtual_domain + inbuilt_modules = list(/obj/item/mod/module/jetpack/advanced) + armor_type = /datum/armor/armor_sf_hardened diff --git a/modular_nova/modules/bitrunning/code/virtual_domains/syndicate_assault/outfit.dm b/modular_nova/modules/bitrunning/code/virtual_domains/syndicate_assault/outfit.dm new file mode 100644 index 00000000000..903eee0d502 --- /dev/null +++ b/modular_nova/modules/bitrunning/code/virtual_domains/syndicate_assault/outfit.dm @@ -0,0 +1,32 @@ +/datum/outfit/virtual_syndicate + name = "Virtual Syndie" + uniform = /obj/item/clothing/under/syndicate/ninja + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/tackler/combat/insulated + ears = /obj/item/radio/headset/cybersun + back = /obj/item/mod/control/pre_equipped/contractor/virtual_domain + backpack_contents = list( + /obj/item/storage/box/survival/interdyne, + /obj/item/storage/box/nif_ghost_box, + ) + r_hand = /obj/item/gun/energy/modular_laser_rifle + l_pocket = /obj/item/storage/pouch/ammo/marksman + belt = /obj/item/gun/energy/modular_laser_rifle/carbine + id = /obj/item/card/id/advanced/chameleon + id_trim = /datum/id_trim/chameleon/virtual_operative + implants = list(/obj/item/implant/weapons_auth) + +/datum/outfit/virtual_syndicate/post_equip(mob/living/carbon/human/user, visualsOnly) + . = ..() + // make sure we update the ID's name too + var/obj/item/card/id/id_card = user.wear_id + if(istype(id_card)) + id_card.registered_name = user.real_name + id_card.update_label() + +/datum/id_trim/chameleon/virtual_operative + assignment = "Cybersun Counter-Bitrunner" + trim_state = "trim_bitavatar" + department_color = COLOR_SYNDIE_RED + subdepartment_color = COLOR_SYNDIE_RED + sechud_icon_state = SECHUD_SYNDICATE diff --git a/tgstation.dme b/tgstation.dme index 83ca2f9ac9e..05f6328a235 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -7184,7 +7184,6 @@ #include "modular_nova\modules\better_vox\code\vox_sprite_accessories.dm" #include "modular_nova\modules\bitrunning\code\disks.dm" #include "modular_nova\modules\bitrunning\code\flair.dm" -#include "modular_nova\modules\bitrunning\code\ghost_spawner.dm" #include "modular_nova\modules\bitrunning\code\loot.dm" #include "modular_nova\modules\bitrunning\code\mobs.dm" #include "modular_nova\modules\bitrunning\code\outfit.dm" @@ -7205,6 +7204,11 @@ #include "modular_nova\modules\bitrunning\code\virtual_domains\ancient_milsim\turf.dm" #include "modular_nova\modules\bitrunning\code\virtual_domains\ancient_milsim\turret.dm" #include "modular_nova\modules\bitrunning\code\virtual_domains\ancient_milsim\virtual_domain.dm" +#include "modular_nova\modules\bitrunning\code\virtual_domains\island_brawl\ghost_spawner.dm" +#include "modular_nova\modules\bitrunning\code\virtual_domains\pirates\ghost_spawner.dm" +#include "modular_nova\modules\bitrunning\code\virtual_domains\syndicate_assault\ghost_spawner.dm" +#include "modular_nova\modules\bitrunning\code\virtual_domains\syndicate_assault\mod.dm" +#include "modular_nova\modules\bitrunning\code\virtual_domains\syndicate_assault\outfit.dm" #include "modular_nova\modules\blastwave_outfits\code\cargo_packs.dm" #include "modular_nova\modules\blastwave_outfits\code\clothing\blastwave_head.dm" #include "modular_nova\modules\blastwave_outfits\code\clothing\blastwave_mask.dm"