diff --git a/code/game/objects/items/syndeka.dm b/code/game/objects/items/syndeka.dm new file mode 100644 index 0000000000..7f5889e263 --- /dev/null +++ b/code/game/objects/items/syndeka.dm @@ -0,0 +1,43 @@ +/obj/item/borgroller + name = "collision autotargeter" + icon = 'icons/obj/device.dmi' + icon_state = "shield0" + flags_1 = CONDUCT_1 + force = 5 + +/obj/item/borgroller/afterattack(atom/target, mob/living/silicon/user, proximity_flag, click_parameters)// deploy time + if(istype(user)) + if(istype(target, /obj)) + user.visible_message("[user] whirrs and charges at [target]!", "You charge at [target]!") + walk_towards(user,target,0.1,10) + user.icon_state = "synd_hatin" + var/turf/T = get_turf(target) + var/safety = 10 + while((get_turf(user) != T) && (safety > 0) && !(target.Adjacent(user))) + sleep(1) + safety-- + if(target.Adjacent(user)) + if(istype(target, /obj)) + var/obj/O = target + user.visible_message("[user] collides with [O]!", "You collide with [O]!") + O.take_damage(20, BRUTE, "melee", 1, 100) //20 brute, melee, 100% armor pen. Pretty robust. + if(istype(target, /mob/living/carbon)) + var/mob/living/carbon/C = target + user.visible_message("[user] smashes into [C]!", "You violently impact [C]!") + C.Knockdown(1, TRUE, FALSE, 0.1, 45) //45 stam, 0.1 hardstun and 1sec softstun + C.apply_damage_type(20, BRUTE) + user.icon_state = "synd_rollin" + walk(user,0) + return TRUE + +/mob/living/silicon/robot/syndeka/proc/toggle_movemode() + uneq_module(held_items[1]) + uneq_module(held_items[2]) + uneq_module(held_items[3]) + +/obj/item/melee/borgclaw + name = "robot claws" + icon = 'icons/obj/items_cyborg.dmi' + icon_state = "2knife" + flags_1 = CONDUCT_1 + force = 25 diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 5b670aaa42..ccdbe81aa2 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -920,6 +920,22 @@ Help the operatives secure the disk at all costs!" set_module = /obj/item/robot_module/syndicate_medical + +/mob/living/silicon/robot/modules/syndicate/syndeka + icon_state = "synd_rollin" + faction = list(ROLE_SYNDICATE) + bubble_icon = "syndibot" + req_access = list(ACCESS_SYNDICATE) + lawupdate = FALSE + scrambledcodes = TRUE // These are rogue borgs. + ionpulse = TRUE + playstyle_string = "You are a Syndicate rapid offense cyborg!
\ + You are armed wit offensive tools and a selection of mobility aids to support you in your mission: help the operatives secure the nuclear authentication disk. \ + You cannot move normally- you must directly roll or activate your rolling mode. Your operative pinpointer will find and locate fellow nuclear operatives. \ + Help the operatives secure the disk at all costs!" + set_module = /obj/item/robot_module/syndeka + + /mob/living/silicon/robot/proc/notify_ai(notifytype, oldname, newname) if(!connected_ai) return @@ -1271,4 +1287,4 @@ sitting = 1 if("Belly up") bellyup = 1 - update_icons() \ No newline at end of file + update_icons() diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 7b95ced63f..95485d3e5d 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -615,3 +615,33 @@ max_energy = 30 recharge_rate = 1 name = "Marker Beacon Storage" + +/obj/item/robot_module/syndeka //syndicate droideka. + name = "Syndicate Rapid Offense" + basic_modules = list( + /obj/item/assembly/flash/cyborg, + /obj/item/melee/borgclaw, + /obj/item/gun/energy/twinlaser/cyborg, + /obj/item/borgroller, + /obj/item/card/emag, + /obj/item/crowbar/cyborg, + /obj/item/pinpointer/syndicate_cyborg) + ratvar_modules = list( + /obj/item/clockwork/slab/cyborg/security, + /obj/item/clockwork/weapon/ratvarian_spear) + cyborg_base_icon = "synd_rollin" + moduleselect_icon = "malf" + can_be_pushed = FALSE + hat_offset = 3 + +/obj/item/robot_module/syndeka/rebuild_modules() + ..() + anchored = TRUE + var/mob/living/silicon/robot/Syndi = loc + Syndi.faction -= "silicon" //ai turrets + +/obj/item/robot_module/syndeka/remove_module(obj/item/I, delete_after) + ..() + anchored = FALSE + var/mob/living/silicon/robot/Syndi = loc + Syndi.faction += "silicon" //ai is your bff now! diff --git a/code/modules/projectiles/ammunition/energy/laser.dm b/code/modules/projectiles/ammunition/energy/laser.dm index 0940144721..85a094f3c7 100644 --- a/code/modules/projectiles/ammunition/energy/laser.dm +++ b/code/modules/projectiles/ammunition/energy/laser.dm @@ -12,6 +12,13 @@ e_cost = 200 select_name = "kill" +/obj/item/ammo_casing/energy/twin + projectile_type = /obj/item/projectile/beam/laser + e_cost = 50 + select_name = "kill" + pellets = 2 + variance = 10 + /obj/item/ammo_casing/energy/laser/hos e_cost = 100 diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index bb97f9cf99..a21b2122b8 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -221,3 +221,21 @@ chambered.BB.damage *= 5 process_fire(target, user, TRUE, params) + +/obj/item/gun/energy/twinlaser + name = "twin-linked lasrifle" + can_charge = TRUE + icon_state = "LaserAK" + item_state = "laser" + desc = "Twin laser gun. It's two in one. With a linked trigger group. One could say it's... twin-linked." + charge_delay = 3 + ammo_type = list(/obj/item/ammo_casing/energy/twin) + +/obj/item/gun/energy/twinlaser/cyborg + name = "laser arms" + icon_state = "lasercannon" + item_state = null + automatic = 1 //fun! + desc = "The Syndicate Rapid Assault cyborg has two arm-like extremeties. They normally have claws, but someone duct-taped laser guns to them as well." + use_cyborg_cell = TRUE + selfcharge = EGUN_NO_SELFCHARGE diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi index 896a87ff3a..139e7b7af7 100644 Binary files a/icons/mob/robots.dmi and b/icons/mob/robots.dmi differ diff --git a/icons/obj/items_cyborg.dmi b/icons/obj/items_cyborg.dmi index cddb57303d..2741d3a6a0 100644 Binary files a/icons/obj/items_cyborg.dmi and b/icons/obj/items_cyborg.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 3daee9d346..c85324d712 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -844,6 +844,7 @@ #include "code\game\objects\items\signs.dm" #include "code\game\objects\items\singularityhammer.dm" #include "code\game\objects\items\stunbaton.dm" +#include "code\game\objects\items\syndeka.dm" #include "code\game\objects\items\taster.dm" #include "code\game\objects\items\teleportation.dm" #include "code\game\objects\items\teleprod.dm"