diff --git a/baystation12.dme b/baystation12.dme index 1e39fe61d1f54..3dcfd1782d356 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -3320,6 +3320,7 @@ #include "maps\_maps.dm" #include "mods\_modpack.dm" #include "mods\global_modpacks.dm" +#include "mods\_master_files\code\game\objects\effects\animations\teleportation.dm" #include "mods\_master_files\code\game\objects\effects\decals\contraband.dm" #include "mods\_master_files\code\game\objects\structures\crates_lockers\closets\_closet_appearance_definitions.dm" #include "mods\_master_files\code\modules\client\asset_cache.dm" diff --git a/maps/sierra/sierra.dm b/maps/sierra/sierra.dm index 7ba40ea3aa3ba..3c1b34dde797c 100644 --- a/maps/sierra/sierra.dm +++ b/maps/sierra/sierra.dm @@ -166,6 +166,7 @@ // USED MODS // Keep them in ascending alphabetical order, please + #include "../../mods/_antagonists/_antagonists.dme" #include "../../mods/_maps/liberia/_map_liberia.dme" #include "../../mods/_maps/sentinel/_map_sentinel.dme" #include "../../mods/_maps/farfleet/_map_farfleet.dme" diff --git a/maps/sierra/structures/closets/misc.dm b/maps/sierra/structures/closets/misc.dm index 5cfc5156e8402..94699e32c2cd1 100644 --- a/maps/sierra/structures/closets/misc.dm +++ b/maps/sierra/structures/closets/misc.dm @@ -60,64 +60,3 @@ /obj/structure/closet/crate/present name = "present crate" desc = "Wow, a present!" - -///Ninja equipment loadouts. Placed here because author overrided them using Torch files. Now we overriding this again for some QoL stuff. -/obj/structure/closet/crate/ninja/sol - name = "sol equipment crate" - desc = "A tactical equipment crate." - -/obj/structure/closet/crate/ninja/sol/WillContain() - return list( - /obj/item/rig/light/ninja/sol, - /obj/item/gun/projectile/pistol/m22f, - /obj/item/ammo_magazine/pistol/double = 2, - /obj/item/clothing/under/scga/utility/urban, - /obj/item/clothing/shoes/swat, - /obj/item/clothing/accessory/scga_rank/e6 - ) - -/obj/structure/closet/crate/ninja/gcc - name = "gcc equipment crate" - desc = "A heavy equipment crate." - -/obj/structure/closet/crate/ninja/gcc/WillContain() - return list( - /obj/item/rig/light/ninja/gcc, - /obj/item/gun/projectile/pistol/optimus, - /obj/item/ammo_magazine/pistol/double = 2, - /obj/item/ammo_magazine/box/minigun = 2, - /obj/item/clothing/under/iccgn/utility, - /obj/item/clothing/shoes/iccgn/utility, - /obj/item/clothing/accessory/iccgn_rank/or6 - ) - -/obj/structure/closet/crate/ninja/corpo - name = "corporate equipment crate" - desc = "A patented equipment crate." - -/obj/structure/closet/crate/ninja/corpo/WillContain() - return list( - /obj/item/rig/light/ninja/corpo, - /obj/item/gun/energy/gun, - /obj/item/inducer, - /obj/item/clothing/under/rank/security/corp, - /obj/item/clothing/shoes/swat, - /obj/item/clothing/accessory/badge/holo - ) - -/obj/structure/closet/crate/ninja/merc - name = "mercenary equipment crate" - desc = "A traitorous equipment crate." - -/obj/structure/closet/crate/ninja/merc/WillContain() - return list( - /obj/item/rig/merc/ninja, - /obj/item/gun/projectile/revolver/medium, - /obj/item/ammo_magazine/speedloader = 2, - /obj/item/clothing/under/syndicate/combat, - /obj/item/clothing/shoes/swat, - /obj/item/clothing/mask/gas/syndicate, - /obj/item/storage/backpack/dufflebag/syndie_kit/plastique, - /obj/item/storage/box/anti_photons, - /obj/item/card/emag - ) diff --git a/mods/_antagonists/_antagonists.dm b/mods/_antagonists/_antagonists.dm new file mode 100644 index 0000000000000..556e427be138e --- /dev/null +++ b/mods/_antagonists/_antagonists.dm @@ -0,0 +1,4 @@ +/singleton/modpack/antagonists + name = "SierraBay Antag tweaks" + desc = "Общие изменения антагонистов, которые используются в форке SierraBay." + author = "LordNest" diff --git a/mods/_antagonists/_antagonists.dme b/mods/_antagonists/_antagonists.dme new file mode 100644 index 0000000000000..cfabc580f20e5 --- /dev/null +++ b/mods/_antagonists/_antagonists.dme @@ -0,0 +1,11 @@ +#ifndef MODPACK_ANTAGONISTS +#define MODPACK_ANTAGONISTS + +#include "_antagonists.dm" + + +#include "code/revolutionary.dm" +#include "code/operative.dm" +#include "code/traitor.dm" + +#endif diff --git a/mods/_antagonists/code/operative.dm b/mods/_antagonists/code/operative.dm new file mode 100644 index 0000000000000..9b3644ea5150b --- /dev/null +++ b/mods/_antagonists/code/operative.dm @@ -0,0 +1,64 @@ +///Ninja equipment loadouts. Placed here because author overrided them using Torch files. Now we overriding this again for some QoL stuff. +/obj/structure/closet/crate/ninja/sol + name = "sol equipment crate" + desc = "A tactical equipment crate." + +/obj/structure/closet/crate/ninja/sol/WillContain() + return list( + /obj/item/rig/light/ninja/sol, + /obj/item/gun/projectile/pistol/m22f, + /obj/item/ammo_magazine/pistol/double = 2, + /obj/item/clothing/under/scga/utility/urban, + /obj/item/clothing/shoes/swat, + /obj/item/clothing/accessory/scga_rank/e6, + /obj/item/device/encryptionkey/away_scg_patrol + ) + +/obj/structure/closet/crate/ninja/gcc + name = "gcc equipment crate" + desc = "A heavy equipment crate." + +/obj/structure/closet/crate/ninja/gcc/WillContain() + return list( + /obj/item/rig/light/ninja/gcc, + /obj/item/gun/projectile/pistol/optimus, + /obj/item/ammo_magazine/pistol/double = 2, + /obj/item/ammo_magazine/box/minigun = 2, + /obj/item/clothing/under/iccgn/utility, + /obj/item/clothing/shoes/iccgn/utility, + /obj/item/clothing/accessory/iccgn_rank/or6, + /obj/item/device/encryptionkey/iccgn + ) + +/obj/structure/closet/crate/ninja/corpo + name = "corporate equipment crate" + desc = "A patented equipment crate." + +/obj/structure/closet/crate/ninja/corpo/WillContain() + return list( + /obj/item/rig/light/ninja/corpo, + /obj/item/gun/energy/gun, + /obj/item/inducer, + /obj/item/clothing/under/rank/security/corp, + /obj/item/clothing/shoes/swat, + /obj/item/clothing/accessory/badge/holo, + /obj/item/storage/box/syndie_kit/jaunter + ) + +/obj/structure/closet/crate/ninja/merc + name = "mercenary equipment crate" + desc = "A traitorous equipment crate." + +/obj/structure/closet/crate/ninja/merc/WillContain() + return list( + /obj/item/rig/merc/ninja, + /obj/item/gun/projectile/revolver/medium, + /obj/item/ammo_magazine/speedloader = 2, + /obj/item/clothing/under/syndicate/combat, + /obj/item/clothing/shoes/swat, + /obj/item/clothing/mask/gas/syndicate, + /obj/item/storage/backpack/dufflebag/syndie_kit/plastique, + /obj/item/storage/box/anti_photons, + /obj/item/device/encryptionkey/syndicate, + /obj/item/card/emag + ) diff --git a/packs/sierra-tweaks/gamemodes/revolutionary.dm b/mods/_antagonists/code/revolutionary.dm similarity index 100% rename from packs/sierra-tweaks/gamemodes/revolutionary.dm rename to mods/_antagonists/code/revolutionary.dm diff --git a/mods/_antagonists/code/traitor.dm b/mods/_antagonists/code/traitor.dm new file mode 100644 index 0000000000000..5810a4434fca9 --- /dev/null +++ b/mods/_antagonists/code/traitor.dm @@ -0,0 +1,132 @@ +// +// DOOR CHARGE +// + +/obj/item/door_charge + name = "door charge" + desc = "This is a booby trap, planted on doors. When door opens, it will explode!." + gender = PLURAL + icon = 'mods/_antagonists/icons/obj/door_charge.dmi' + icon_state = "door_charge" + item_state = "door_charge" + item_flags = ITEM_FLAG_NO_BLUDGEON + w_class = ITEM_SIZE_SMALL + origin_tech = list(TECH_ESOTERIC = 4) + var/ready = 0 + +/obj/item/door_charge/afterattack(atom/movable/target, mob/user, flag) + if (!flag) + return + if (ismob(target) || !istype(target, /obj/machinery/door/airlock)) + return + to_chat(user, "Planting explosives...") + user.do_attack_animation(target) + + if(do_after(user, 50, target) && in_range(user, target)) + if(!user.unequip_item()) + return + forceMove(target) + + log_and_message_admins("planted \a [src] on \the [target].") + + to_chat(user, "Bomb has been planted.") + + GLOB.density_set_event.register(target, src, .proc/explode) + + +/obj/item/door_charge/proc/explode(obj/machinery/door/airlock/airlock) + if(!airlock.density) + explosion(get_turf(airlock), -1, 1, 2, 3) + airlock.ex_act(1) + qdel(src) + +// +// Uplink part +// + +/datum/uplink_item/item/tools/door_charge + name = "Door Charge" + desc = "Special explosive, which can be planted on doors and will explode when somebody will open this door." + item_cost = 14 + path = /obj/item/door_charge + +// +// BLUESPACE JAUNTER +// + +/obj/item/device/syndietele + name = "strange sensor" + desc = "Looks like regular powernet sensor, but this one almost black and have spooky red light blinking" + icon = 'mods/_antagonists/icons/obj/syndiejaunter.dmi' + icon_state = "beacon" + item_state = "signaler" + origin_tech = list(TECH_BLUESPACE = 4, TECH_ESOTERIC = 3) + + w_class = ITEM_SIZE_SMALL + +/obj/item/device/syndiejaunter + name = "strange device" + desc = "This thing looks like remote. Almost black, with red button and status display." + icon = 'mods/_antagonists/icons/obj/syndiejaunter.dmi' + icon_state = "jaunter" + item_state = "jaunter" + w_class = ITEM_SIZE_SMALL + var/obj/item/device/syndietele/beacon + var/usable = 1 + var/image/cached_usable + +/obj/item/device/syndiejaunter/examine(mob/user, distance) + . = ..() + to_chat(user, SPAN_NOTICE("Display is [usable ? "online and shows number [usable]" : "offline"].")) +/obj/item/device/syndiejaunter/Initialize() + . = ..() + update_icon() + +/obj/item/device/syndiejaunter/on_update_icon() + . = ..() + if(usable) + AddOverlays(image(icon, "usable")) + else + ClearOverlays() + +/obj/item/device/syndiejaunter/attack_self(mob/user) + if(!istype(beacon) || !usable) + return 0 + + animated_teleportation(user, beacon) + usable = max(usable - 1, 0) + update_icon() + +/obj/item/device/syndiejaunter/afterattack(atom/target, mob/user , proximity) + if(!proximity) return + if(istype(target,/obj/item/device/syndietele)) + beacon = target + to_chat(user, "You succesfully linked [src] to [target]!") + else + to_chat(user, "You can't link [src] to [target]!") + update_icon() + +// +// Uplink part +// + +/obj/item/storage/box/syndie_kit/jaunter + startswith = list(/obj/item/device/syndietele, + /obj/item/device/syndiejaunter) + +/datum/uplink_item/item/tools/jaunter + name = "Bluespace Jaunter" + item_cost = 42 + path = /obj/item/storage/box/syndie_kit/jaunter + desc = "Disposable one way teleportation device. Use with care. Don't forget to link jaunter to the beacon!" + + +// +// Psi Amp - Uplink part (Here because turned off by Bay12) +// + +/datum/uplink_item/item/visible_weapons/psi_amp + name = "Cerebroenergetic Psionic Amplifier" + item_cost = 50 + path = /obj/item/clothing/head/helmet/space/psi_amp/lesser + desc = "A powerful, illegal psi-amp. Boosts latent psi-faculties to extremely high levels." diff --git a/packs/infinity/icons/obj/door_charge.dmi b/mods/_antagonists/icons/obj/door_charge.dmi similarity index 100% rename from packs/infinity/icons/obj/door_charge.dmi rename to mods/_antagonists/icons/obj/door_charge.dmi diff --git a/packs/infinity/icons/obj/syndiejaunter.dmi b/mods/_antagonists/icons/obj/syndiejaunter.dmi similarity index 100% rename from packs/infinity/icons/obj/syndiejaunter.dmi rename to mods/_antagonists/icons/obj/syndiejaunter.dmi diff --git a/mods/_master_files/code/game/objects/effects/animations/teleportation.dm b/mods/_master_files/code/game/objects/effects/animations/teleportation.dm new file mode 100644 index 0000000000000..ad830cbc5d564 --- /dev/null +++ b/mods/_master_files/code/game/objects/effects/animations/teleportation.dm @@ -0,0 +1,15 @@ +/proc/animated_teleportation(atom/movable/target, atom/anchor) + if(ismob(target)) + to_chat(target, SPAN_WARNING("You feel like something pulling you in bluespace.")) + var/obj/temporary/A = new(get_turf(target), 24.5, 'mods/_master_files/icons/effects/bs_silk.dmi', "silc_teleport_back") + target.set_dir(2) + target.forceMove(A) + addtimer(new Callback(GLOBAL_PROC, .proc/animated_teleportation_ending, target, anchor), 23) + +/proc/animated_teleportation_ending(atom/movable/target, atom/anchor) + target.set_dir(2) + target.forceMove(new /obj/temporary(get_turf(anchor), 26.5, 'mods/_master_files/icons/effects/bs_silk.dmi', "silc_get_hub")) + addtimer(new Callback(GLOBAL_PROC, .proc/finalize_animated_teleportation, target, anchor), 24) + +/proc/finalize_animated_teleportation(atom/movable/target, atom/anchor) + target.dropInto(get_turf(anchor)) diff --git a/mods/_master_files/icons/effects/bs_silk.dmi b/mods/_master_files/icons/effects/bs_silk.dmi new file mode 100644 index 0000000000000..437617bd517b4 Binary files /dev/null and b/mods/_master_files/icons/effects/bs_silk.dmi differ diff --git a/packs/infinity/icons/effects/bs_silk.dmi b/packs/infinity/icons/effects/bs_silk.dmi deleted file mode 100644 index f79170691d447..0000000000000 Binary files a/packs/infinity/icons/effects/bs_silk.dmi and /dev/null differ diff --git a/packs/sierra-tweaks/_pack.dm b/packs/sierra-tweaks/_pack.dm index 29e224f484179..017c808bd5383 100644 --- a/packs/sierra-tweaks/_pack.dm +++ b/packs/sierra-tweaks/_pack.dm @@ -11,9 +11,6 @@ // Client #include "client\spawnpoints.dm" -// Gamemodes -#include "gamemodes\revolutionary.dm" - // Mob #include "mob\say.dm" #include "mob\stat.dm"