Files
Cody BrittainandGitHub 3f62424312 [MDB Ignore] [IDB Ignore] Kills off /obj/item/device (#21774)
This has zero reason to exist in our code base. We have no procs or
variables tied to this. I removed it to make future modifications
cleaner.

---------

Signed-off-by: Cody Brittain <1779662+Generalcamo@users.noreply.github.com>
2026-02-01 05:14:26 +00:00

130 lines
3.9 KiB
Plaintext

//
// Combat Robot
//
/mob/living/silicon/robot/combat
// Laws and Interaction
law_channel = "State"
law_preset = /datum/ai_laws/syndicate_override
law_update = FALSE
scrambled_codes = TRUE
// Modules
mod_type = "Combat"
spawn_module = /obj/item/robot_module/combat
cell_type = /obj/item/cell/super
has_pda = FALSE
has_jetpack = TRUE
flash_resistant = TRUE
// Look and Feel
icon_state = "syndie_bloodhound"
spawn_sound = 'sound/mecha/nominalsyndi.ogg'
pitch_toggle = FALSE
braintype = "Robot"
// ID and Access
req_access = list(ACCESS_SYNDICATE)
id_card_type = /obj/item/card/id/syndicate
key_type = /obj/item/encryptionkey/syndicate
var/datum/antagonist/assigned_antagonist
/mob/living/silicon/robot/combat/Initialize()
. = ..()
add_verb(src, /mob/living/silicon/robot/proc/choose_icon)
var/datum/robot_component/C = components["surge"]
C.installed = TRUE
C.wrapped = new C.external_type
setup_icon_cache()
/mob/living/silicon/robot/combat/assign_player(var/mob/user)
if(src.ckey)
return
src.ckey = user.ckey
if(assigned_antagonist)
assigned_antagonist.add_antagonist_mind(src.mind, TRUE)
if(assigned_antagonist.get_antag_radio())
module.channels[assigned_antagonist.get_antag_radio()] = TRUE
INVOKE_ASYNC(radio, TYPE_PROC_REF(/obj/item/radio/borg, recalculateChannels))
client.init_verbs()
say("Boot sequence complete!")
return src
/mob/living/silicon/robot/combat/get_speech_bubble_state_modifier()
return "syndibot"
// Syndicate Borg Gear
/obj/item/gun/energy/mountedsmg
name = "mounted submachine gun"
desc = "A mounted submachine gun. It synthesizes more ammunition over time."
icon = 'icons/obj/robot_items.dmi'
icon_state = "smg"
item_state = "smg"
fire_sound = 'sound/weapons/gunshot/gunshot_pistol.ogg'
charge_meter = 0
max_shots = 20
charge_cost = 100
projectile_type = /obj/projectile/bullet/pistol/medium/ap
self_recharge = TRUE
use_external_power = TRUE
recharge_time = 5
sel_mode = 1
needspin = FALSE
firemodes = list(
list(mode_name = "semi-automatic", burst = 1, fire_delay = 0, move_delay = null, burst_accuracy = null, dispersion=list(0)),
list(mode_name = "3-round burst", burst = 3, fire_delay = null, move_delay = 4, burst_accuracy = list(0,-1,-1), dispersion=list(0, 15, 15)),
list(mode_name = "5-round burst", burst = 5, fire_delay = null, move_delay = 4, burst_accuracy = list(0,-1,-1,-2,-2), dispersion=list(0, 15, 15, 18, 18, 20))
)
has_safety = FALSE
/obj/item/gun/energy/crossbow/cyborg
name = "mounted energy crossbow"
desc = "A weapon favored by mercenary infiltration teams, this one is suited to be used by robots."
max_shots = 4
charge_cost = 200
use_external_power = TRUE
/obj/item/gun/launcher/grenade/cyborg
name = "mounted grenade launcher"
desc = "A bulky pump-action grenade launcher. Can be loaded with more grenades."
has_safety = FALSE
blacklisted_grenades = list()
/obj/item/gun/launcher/grenade/cyborg/Initialize()
. = ..()
grenades = list(
new /obj/item/grenade/frag(src),
new /obj/item/grenade/frag(src)
)
chambered = new /obj/item/grenade/frag(src)
update_maptext()
/obj/item/robot_emag
name = "cryptographic sequencer"
desc = "It's a card with a magnetic strip attached to some circuitry. This one is modified to be used by a robot."
icon = 'icons/obj/card.dmi'
icon_state = "emag"
/obj/item/robot_emag/antagonist_hints(mob/user, distance, is_adjacent)
. += ..()
. += "This emag has an unlimited number of uses, however, each use will drain a little bit of your power cell."
/obj/item/robot_emag/afterattack(var/atom/target, var/mob/living/user, proximity) //possible spaghetti code, but should work
if(!target)
return
if(!proximity)
return
else if(isobj(target))
var/obj/O = target
O.add_fingerprint(user)
O.emag_act(1,user,src)
log_and_message_admins("emmaged \an [O].")
if(isrobot(user))
var/mob/living/silicon/robot/R = user
if(R.cell)
R.cell.use(350)
return TRUE
return FALSE