/datum/wires/mulebot
random = 1
holder_type = /mob/living/simple_animal/bot/mulebot
wire_count = 10
window_x = 410
var/const/WIRE_POWER1 = 1 // power connections
var/const/WIRE_POWER2 = 2
var/const/WIRE_AVOIDANCE = 4 // mob avoidance
var/const/WIRE_LOADCHECK = 8 // load checking (non-crate)
var/const/WIRE_MOTOR1 = 16 // motor wires
var/const/WIRE_MOTOR2 = 32 //
var/const/WIRE_REMOTE_RX = 64 // remote recv functions
var/const/WIRE_REMOTE_TX = 128 // remote trans status
var/const/WIRE_BEACON_RX = 256 // beacon ping recv
/datum/wires/mulebot/GetWireName(index)
switch(index)
if(WIRE_POWER1)
return "Primary Power"
if(WIRE_POWER2)
return "Secondary Power"
if(WIRE_AVOIDANCE)
return "Mob Avoidance"
if(WIRE_LOADCHECK)
return "Load Checking"
if(WIRE_MOTOR1)
return "Primary Motor"
if(WIRE_MOTOR2)
return "Secondary Motor"
if(WIRE_REMOTE_RX)
return "Remote Signal Receiver"
if(WIRE_REMOTE_TX)
return "Remote Signal Sender"
if(WIRE_BEACON_RX)
return "Navigation Beacon Receiver"
/datum/wires/mulebot/CanUse(mob/living/L)
var/mob/living/simple_animal/bot/mulebot/M = holder
if(M.open)
return 1
return 0
/datum/wires/mulebot/UpdatePulsed(index)
switch(index)
if(WIRE_POWER1, WIRE_POWER2)
holder.visible_message("[bicon(holder)] The charge light flickers.")
if(WIRE_AVOIDANCE)
holder.visible_message("[bicon(holder)] The external warning lights flash briefly.")
if(WIRE_LOADCHECK)
holder.visible_message("[bicon(holder)] The load platform clunks.")
if(WIRE_MOTOR1, WIRE_MOTOR2)
holder.visible_message("[bicon(holder)] The drive motor whines briefly.")
else
holder.visible_message("[bicon(holder)] You hear a radio crackle.")
..()
// HELPER PROCS
/datum/wires/mulebot/proc/Motor1()
return !(wires_status & WIRE_MOTOR1)
/datum/wires/mulebot/proc/Motor2()
return !(wires_status & WIRE_MOTOR2)
/datum/wires/mulebot/proc/HasPower()
return !(wires_status & WIRE_POWER1) && !(wires_status & WIRE_POWER2)
/datum/wires/mulebot/proc/LoadCheck()
return !(wires_status & WIRE_LOADCHECK)
/datum/wires/mulebot/proc/MobAvoid()
return !(wires_status & WIRE_AVOIDANCE)
/datum/wires/mulebot/proc/RemoteTX()
return !(wires_status & WIRE_REMOTE_TX)
/datum/wires/mulebot/proc/RemoteRX()
return !(wires_status & WIRE_REMOTE_RX)
/datum/wires/mulebot/proc/BeaconRX()
return !(wires_status & WIRE_BEACON_RX)