diff --git a/aurorastation.dme b/aurorastation.dme index 2eb5bbb16e6..1539b5feff6 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -870,6 +870,7 @@ #include "code\game\objects\effects\temporary_visuals\blaster_effect.dm" #include "code\game\objects\effects\temporary_visuals\blood_splatter.dm" #include "code\game\objects\effects\temporary_visuals\nuke.dm" +#include "code\game\objects\effects\temporary_visuals\teleport_visuals.dm" #include "code\game\objects\effects\temporary_visuals\temporary_visual.dm" #include "code\game\objects\items\airbubble.dm" #include "code\game\objects\items\apc_frame.dm" @@ -1542,6 +1543,7 @@ #include "code\modules\clothing\spacesuits\rig\suits\ert.dm" #include "code\modules\clothing\spacesuits\rig\suits\light.dm" #include "code\modules\clothing\spacesuits\rig\suits\merc.dm" +#include "code\modules\clothing\spacesuits\rig\suits\skrell.dm" #include "code\modules\clothing\spacesuits\rig\suits\station.dm" #include "code\modules\clothing\spacesuits\rig\suits\terminator.dm" #include "code\modules\clothing\spacesuits\void\alien.dm" diff --git a/code/game/objects/effects/temporary_visuals/teleport_visuals.dm b/code/game/objects/effects/temporary_visuals/teleport_visuals.dm new file mode 100644 index 00000000000..de0d9fc0f46 --- /dev/null +++ b/code/game/objects/effects/temporary_visuals/teleport_visuals.dm @@ -0,0 +1,19 @@ +/obj/effect/temp_visual/phase + icon = 'icons/mob/mob.dmi' + icon_state = "phasein" + layer = ABOVE_MOB_LAYER + mouse_opacity = 0 + duration = 15 + +/obj/effect/temp_visual/phase/out + icon_state = "phaseout" + +/obj/effect/temp_visual/phase/rift + icon = 'icons/obj/rig_modules.dmi' + icon_state = "rift" + layer = BELOW_MOB_LAYER + alpha = 125 + +/obj/effect/temp_visual/phase/rift/Initialize(mapload, dir) + . = ..() + SpinAnimation() \ No newline at end of file diff --git a/code/game/objects/effects/temporary_visuals/temporary_visual.dm b/code/game/objects/effects/temporary_visuals/temporary_visual.dm index b9688f5e5ac..1608a6b7563 100644 --- a/code/game/objects/effects/temporary_visuals/temporary_visual.dm +++ b/code/game/objects/effects/temporary_visuals/temporary_visual.dm @@ -7,9 +7,12 @@ var/duration = 10 //in deciseconds var/randomdir = TRUE -/obj/effect/temp_visual/Initialize() +/obj/effect/temp_visual/Initialize(mapload, var/new_dir) . = ..() - if(randomdir) + + if(new_dir) + set_dir(new_dir) + else if(randomdir) set_dir(pick(global.cardinal)) QDEL_IN(src, duration) diff --git a/code/modules/clothing/spacesuits/rig/modules/ninja.dm b/code/modules/clothing/spacesuits/rig/modules/ninja.dm index 2e75828975c..44d8231d8dd 100644 --- a/code/modules/clothing/spacesuits/rig/modules/ninja.dm +++ b/code/modules/clothing/spacesuits/rig/modules/ninja.dm @@ -73,6 +73,8 @@ usable = TRUE selectable = 1 var/lastteleport + var/phase_in_visual = /obj/effect/temp_visual/phase + var/phase_out_visual = /obj/effect/temp_visual/phase/out engage_string = "Emergency Leap" @@ -88,14 +90,14 @@ holder.spark_system.queue() playsound(T, 'sound/effects/phasein.ogg', 25, 1) playsound(T, 'sound/effects/sparks2.ogg', 50, 1) - anim(T, M, 'icons/mob/mob.dmi', ,"phasein", , M.dir) + new phase_in_visual(T, M.dir) /obj/item/rig_module/teleporter/proc/phase_out(var/mob/M, var/turf/T) if(!M || !T) return playsound(T, /decl/sound_category/spark_sound, 50, 1) - anim(T, M, 'icons/mob/mob.dmi', ,"phaseout", ,M.dir) + new phase_out_visual(T, M.dir) /obj/item/rig_module/teleporter/engage(atom/target, mob/user, var/notify_ai) if(!..()) @@ -149,6 +151,15 @@ lastteleport = world.time return TRUE +/obj/item/rig_module/teleporter/skrell + name = "jargon teleportation module" + + phase_in_visual = /obj/effect/temp_visual/phase/rift + phase_out_visual = /obj/effect/temp_visual/phase/rift + + interface_name = "starshift teleportation module" + interface_desc = "An advanced teleportation system. It is capable of pinpoint precision or random leaps forward." + /obj/item/rig_module/fabricator/energy_net name = "net projector" desc = "Some kind of complex energy projector with a hardsuit mount." diff --git a/code/modules/clothing/spacesuits/rig/suits/skrell.dm b/code/modules/clothing/spacesuits/rig/suits/skrell.dm new file mode 100644 index 00000000000..10e8ebfde04 --- /dev/null +++ b/code/modules/clothing/spacesuits/rig/suits/skrell.dm @@ -0,0 +1,84 @@ +/obj/item/clothing/head/helmet/space/rig/skrell + light_overlay = "helmet_light_jargon_rig" + light_color = LIGHT_COLOR_CYAN + +/obj/item/rig/skrell + name = "jargon suit control module" + desc = "A suit control module designed by the Jargon Federation for JFSF operations. It is designed to be sleek and agile, equipped with best protection and technology the Federation has to offer for its elite." + icon = 'icons/clothing/rig/jargon.dmi' + icon_state = "jargon_rig" + suit_type = "jargon suit" + armor = list( + melee = ARMOR_MELEE_VERY_HIGH, + bullet = ARMOR_BALLISTIC_RIFLE, + laser = ARMOR_LASER_AP, + energy = ARMOR_ENERGY_RESISTANT, + bomb = ARMOR_BOMB_PADDED, + bio = ARMOR_BIO_SHIELDED, + rad = ARMOR_RAD_SHIELDED + ) + siemens_coefficient = 0.1 + emp_protection = 30 + vision_restriction = 0 + slowdown = 0 + offline_slowdown = 3 + vision_restriction = TINT_NONE + species_restricted = list("Skrell") + + helm_type = /obj/item/clothing/head/helmet/space/rig/skrell + allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs,/obj/item/material/twohanded/fireaxe) + + initial_modules = list( + /obj/item/rig_module/ai_container, + /obj/item/rig_module/maneuvering_jets, + /obj/item/rig_module/grenade_launcher, + /obj/item/rig_module/vision/multi, + /obj/item/rig_module/mounted/pulse, + /obj/item/rig_module/chem_dispenser/combat, + /obj/item/rig_module/chem_dispenser/injector, + /obj/item/rig_module/device/drill, + /obj/item/rig_module/device/rfd_c, + /obj/item/rig_module/datajack, + /obj/item/rig_module/actuators/combat + ) + + allowed_module_types = MODULE_GENERAL | MODULE_LIGHT_COMBAT | MODULE_HEAVY_COMBAT | MODULE_SPECIAL + +/obj/item/clothing/head/helmet/space/rig/skrell/tup + light_overlay = "helmet_light_tadpole" + +/obj/item/rig/skrell/tup + name = "tup suit control module" + desc = "A suit control module designed by the Jargon Federation for Tup operations. The best of the best." + icon = 'icons/clothing/rig/tup.dmi' + icon_state = "tup_rig" + suit_type = "tup suit" + armor = list( + melee = ARMOR_MELEE_VERY_HIGH, + bullet = ARMOR_BALLISTIC_AP, + laser = ARMOR_LASER_AP, + energy = ARMOR_ENERGY_STRONG, + bomb = ARMOR_BOMB_RESISTANT, + bio = ARMOR_BIO_SHIELDED, + rad = ARMOR_RAD_SHIELDED + ) + emp_protection = 95 + + helm_type = /obj/item/clothing/head/helmet/space/rig/skrell/tup + + initial_modules = list( + /obj/item/rig_module/ai_container, + /obj/item/rig_module/maneuvering_jets, + /obj/item/rig_module/grenade_launcher, + /obj/item/rig_module/vision/multi, + /obj/item/rig_module/mounted/pulse, + /obj/item/rig_module/chem_dispenser/combat, + /obj/item/rig_module/chem_dispenser/injector, + /obj/item/rig_module/device/drill, + /obj/item/rig_module/device/rfd_c, + /obj/item/rig_module/datajack, + /obj/item/rig_module/actuators/combat, + /obj/item/rig_module/teleporter/skrell + ) + + allowed_module_types = MODULE_GENERAL | MODULE_LIGHT_COMBAT | MODULE_HEAVY_COMBAT | MODULE_SPECIAL \ No newline at end of file diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index 617168307fc..b5d0f3e114d 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -200,4 +200,47 @@ list(mode_name="single", can_autofire = FALSE, burst = 1), list(mode_name="three-burst", can_autofire = FALSE, burst = 3, burst_accuracy = list(1,0,0), dispersion = list(0, 10, 15)), list(mode_name="full-auto", can_autofire = TRUE, burst = 1, burst_accuracy = list(0,-1,-1,-2,-2,-2,-3), dispersion = list(5, 10, 15, 20)) + ) + +/obj/item/gun/energy/gun/skrell + self_recharge = TRUE + fire_sound = 'sound/weapons/Laser2.ogg' + modifystate = null + charge_failure_message = "'s charging socket was removed to make room for a recharger." + secondary_fire_sound = 'sound/weapons/Laser3.ogg' + +/obj/item/gun/energy/gun/skrell/emp_act(severity) + return //Fuck robots. + +/obj/item/gun/energy/gun/skrell/pistol + name = "jargon particle pistol" + desc = "A Jargon Federation particle-beam pistol with two settings: Disable and Lethal." + icon = 'icons/obj/guns/jargonpistol.dmi' + icon_state = "particlepistol" + item_state = "particlepistol" + slot_flags = SLOT_BELT|SLOT_HOLSTER + force = 5 + projectile_type = /obj/item/projectile/beam/stun/skrell + secondary_projectile_type = /obj/item/projectile/beam/pulse/skrell + + firemodes = list( + list(mode_name="disable", projectile_type=/obj/item/projectile/beam/stun/skrell, fire_sound='sound/weapons/Laser2.ogg'), + list(mode_name="lethal", projectile_type=/obj/item/projectile/beam/pulse/skrell, fire_sound='sound/weapons/Laser3.ogg') + ) + +/obj/item/gun/energy/gun/skrell/smg + name = "jargon particle submachinegun" + desc = "A Jargon Federation particle-beam submachine gun with two settings: Disable and Lethal." + icon = 'icons/obj/guns/jargonsmg.dmi' + icon_state = "particlesmg" + item_state = "particlesmg" + slot_flags = SLOT_BELT|SLOT_HOLSTER|SLOT_BACK + max_shots = 14 + force = 7 + projectile_type = /obj/item/projectile/beam/stun/skrell + secondary_projectile_type = /obj/item/projectile/beam/pulse/skrell + + firemodes = list( + list(mode_name="disable", projectile_type=/obj/item/projectile/beam/stun/skrell, fire_sound='sound/weapons/Laser2.ogg'), + list(mode_name="lethal", projectile_type=/obj/item/projectile/beam/pulse/skrell, fire_sound='sound/weapons/Laser3.ogg', burst = 2, burst_delay = 2) ) \ No newline at end of file diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 70838c1b5fa..18f30fc3705 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -461,3 +461,15 @@ if(H.bodytemperature <= H.species.cold_level_2) new /obj/structure/closet/statue/ice(H.loc, H) H.visible_message(SPAN_WARNING("\The [H] freezes!")) + +/obj/item/projectile/beam/stun/skrell + name = "particle stun beam" + icon_state = "beam_omni" + agony = 50 + + muzzle_type = /obj/effect/projectile/muzzle/disabler + tracer_type = /obj/effect/projectile/tracer/disabler + impact_type = /obj/effect/projectile/impact/disabler + +/obj/item/projectile/beam/pulse/skrell + name = "particle lethal beam" \ No newline at end of file diff --git a/html/changelogs/geeves-tup_suit.yml b/html/changelogs/geeves-tup_suit.yml new file mode 100644 index 00000000000..d395a3fc436 --- /dev/null +++ b/html/changelogs/geeves-tup_suit.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Added some Warbling event skrell stuff to the game." \ No newline at end of file diff --git a/icons/clothing/rig/jargon.dmi b/icons/clothing/rig/jargon.dmi new file mode 100644 index 00000000000..c3069ed07cc Binary files /dev/null and b/icons/clothing/rig/jargon.dmi differ diff --git a/icons/clothing/rig/tup.dmi b/icons/clothing/rig/tup.dmi new file mode 100644 index 00000000000..ef5e5fb884a Binary files /dev/null and b/icons/clothing/rig/tup.dmi differ diff --git a/icons/mob/light_overlays.dmi b/icons/mob/light_overlays.dmi index d1e6ca6fd7b..917337d1fce 100644 Binary files a/icons/mob/light_overlays.dmi and b/icons/mob/light_overlays.dmi differ diff --git a/icons/obj/guns/jargonpistol.dmi b/icons/obj/guns/jargonpistol.dmi new file mode 100644 index 00000000000..e4410c85a19 Binary files /dev/null and b/icons/obj/guns/jargonpistol.dmi differ diff --git a/icons/obj/guns/jargonsmg.dmi b/icons/obj/guns/jargonsmg.dmi new file mode 100644 index 00000000000..f830a784a6c Binary files /dev/null and b/icons/obj/guns/jargonsmg.dmi differ diff --git a/icons/obj/light_overlays.dmi b/icons/obj/light_overlays.dmi index 3c3a74853a8..7834624d624 100644 Binary files a/icons/obj/light_overlays.dmi and b/icons/obj/light_overlays.dmi differ diff --git a/icons/obj/rig_modules.dmi b/icons/obj/rig_modules.dmi index 429bee291ec..8900521616a 100644 Binary files a/icons/obj/rig_modules.dmi and b/icons/obj/rig_modules.dmi differ