mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-27 23:14:18 +01:00
@@ -17,10 +17,12 @@
|
||||
if (!message)
|
||||
return
|
||||
|
||||
message = formalize_text(message)
|
||||
|
||||
log_say("[key_name(speaker)] : ([name]) [message]",ckey=key_name(speaker))
|
||||
|
||||
var/message_start = "<i><span class='game say'>[name], <span class='name'>[speaker.name]</span>"
|
||||
var/message_body = "<span class='message'>[speaker.say_quote(message)], \"[message]\"</span></span></i>"
|
||||
var/message_start = "<span style='font-size: [speaker.get_binary_font_size()];'><i><span class='game say'>[name], <span class='name'>[speaker.real_name]</span>"
|
||||
var/message_body = "<span class='message'>[speaker.say_quote(message)], \"[message]\"</span></span></i></span>"
|
||||
|
||||
for (var/mob/M in dead_mob_list)
|
||||
if(!istype(M,/mob/abstract/new_player) && !istype(M,/mob/living/carbon/brain)) //No meta-evesdropping
|
||||
@@ -31,7 +33,7 @@
|
||||
if(drone_only && !istype(S,/mob/living/silicon/robot/drone))
|
||||
continue
|
||||
else if(istype(S , /mob/living/silicon/ai))
|
||||
message_start = "<i><span class='game say'>[name], <a href='byond://?src=\ref[S];track2=\ref[S];track=\ref[speaker];trackname=[html_encode(speaker.name)]'><span class='name'>[speaker.name]</span></a></span></i>"
|
||||
message_start = "<i><span class='game say'>[name], <a href='byond://?src=\ref[S];track2=\ref[S];track=\ref[speaker];trackname=[html_encode(speaker.name)]'><span class='name'>[speaker.real_name]</span></a></span></i>"
|
||||
else if (!S.binarycheck())
|
||||
continue
|
||||
|
||||
@@ -61,3 +63,9 @@
|
||||
key = "d"
|
||||
flags = RESTRICTED | HIVEMIND
|
||||
drone_only = 1
|
||||
|
||||
/mob/living/proc/get_binary_font_size()
|
||||
return "1em"
|
||||
|
||||
/mob/living/silicon/robot/drone/construction/matriarch/get_binary_font_size()
|
||||
return "1.2em"
|
||||
@@ -138,6 +138,29 @@
|
||||
|
||||
var/my_home_z
|
||||
|
||||
/mob/living/silicon/robot/drone/construction/matriarch
|
||||
name = "matriarch drone"
|
||||
law_type = /datum/ai_laws/matriarch_drone
|
||||
|
||||
/mob/living/silicon/robot/drone/construction/matriarch/Initialize()
|
||||
. = ..()
|
||||
SSghostroles.add_spawn_atom("matriarchmaintdrone", src)
|
||||
|
||||
/mob/living/silicon/robot/drone/construction/matriarch/assign_player(mob/user)
|
||||
. = ..()
|
||||
SSghostroles.remove_spawn_atom("matriarchmaintdrone", src)
|
||||
|
||||
/mob/living/silicon/robot/drone/construction/matriarch/ghostize(can_reenter_corpse, should_set_timer)
|
||||
. = ..()
|
||||
SSghostroles.add_spawn_atom("matriarchmaintdrone", src)
|
||||
|
||||
/mob/living/silicon/robot/drone/construction/matriarch/Destroy()
|
||||
SSghostroles.remove_spawn_atom("matriarchmaintdrone", src)
|
||||
return ..()
|
||||
|
||||
/mob/living/silicon/robot/drone/construction/matriarch/updatename()
|
||||
return
|
||||
|
||||
/mob/living/silicon/robot/drone/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -170,6 +193,7 @@
|
||||
laws = new law_type
|
||||
if(!module)
|
||||
module = new module_type(src, src)
|
||||
recalculate_synth_capacities()
|
||||
|
||||
flavor_text = "It's a tiny little repair drone. The casing is stamped with an corporate logo and the subscript: '[current_map.company_name] Recursive Repair Systems: Fixing Tomorrow's Problem, Today!'"
|
||||
playsound(get_turf(src), 'sound/machines/twobeep.ogg', 50, 0)
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
//Used to enable or disable drone fabrication.
|
||||
var/obj/machinery/drone_fabricator/dronefab
|
||||
|
||||
var/static/list/call_area_names
|
||||
|
||||
/obj/machinery/computer/drone_control/attack_ai(var/mob/user as mob)
|
||||
if(!ai_can_interact(user))
|
||||
return
|
||||
@@ -60,8 +62,13 @@
|
||||
usr.set_machine(src)
|
||||
|
||||
if(href_list["setarea"])
|
||||
if(!call_area_names)
|
||||
call_area_names = list()
|
||||
for(var/area/A as anything in all_areas)
|
||||
if(A.station_area)
|
||||
call_area_names += A.name
|
||||
//Probably should consider using another list, but this one will do.
|
||||
var/t_area = input(usr, "Select the area to ping.", "Set Target Area") as null|anything in SSdisposals.tagger_locations
|
||||
var/t_area = input(usr, "Select the area to ping.", "Set Target Area") as null|anything in call_area_names
|
||||
|
||||
if(!t_area)
|
||||
return
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/mob/living/silicon/robot/drone/say(var/message)
|
||||
/mob/living/silicon/robot/drone/say(message, datum/language/speaking)
|
||||
if(hacked)
|
||||
return ..(message)
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
if(copytext(message, 1, 2) == "*")
|
||||
return emote(copytext(message,2))
|
||||
|
||||
message = formalize_text(message)
|
||||
|
||||
if(copytext(message, 1, 2) == ";")
|
||||
var/datum/language/L = all_languages["Drone Talk"]
|
||||
if(istype(L))
|
||||
@@ -25,9 +27,11 @@
|
||||
var/list/listeners = hearers(5, src)
|
||||
listeners |= src
|
||||
|
||||
var/list/hear_clients = list()
|
||||
for(var/mob/living/silicon/D in listeners)
|
||||
if(D.client && D.local_transmit)
|
||||
to_chat(D, "<b>[src]</b> transmits, \"[message]\"")
|
||||
to_chat(D, "<b>[real_name]</b> transmits, \"[message]\"")
|
||||
hear_clients += D.client
|
||||
|
||||
for(var/mob/M in player_list)
|
||||
if(isnull(M.client))
|
||||
@@ -35,6 +39,10 @@
|
||||
if(istype(M, /mob/abstract/new_player))
|
||||
continue
|
||||
else if(M.stat == DEAD && M.client.prefs.toggles & CHAT_GHOSTEARS)
|
||||
to_chat(M, "<b>[src]</b> transmits, \"[message]\"")
|
||||
to_chat(M, "<b>[real_name]</b> transmits, \"[message]\"")
|
||||
hear_clients += M.client
|
||||
|
||||
do_animate_chat(message, speaking, FALSE, hear_clients, 30)
|
||||
|
||||
return TRUE
|
||||
return ..(message, 0)
|
||||
|
||||
@@ -208,6 +208,8 @@
|
||||
mult += storage.rating
|
||||
for(var/datum/matter_synth/M in module.synths)
|
||||
M.set_multiplier(mult)
|
||||
for(var/obj/item/stack/material/SM in module.modules)
|
||||
SM.update_strings()
|
||||
|
||||
/mob/living/silicon/robot/proc/init()
|
||||
ai_camera = new /obj/item/device/camera/siliconcam/robot_camera(src)
|
||||
|
||||
@@ -128,6 +128,9 @@ var/global/list/robot_modules = list(
|
||||
for(var/datum/matter_synth/T in synths)
|
||||
T.add_charge(T.recharge_rate * rate)
|
||||
|
||||
for(var/obj/item/stack/material/SM in modules)
|
||||
SM.update_strings()
|
||||
|
||||
/obj/item/robot_module/proc/rebuild()//Rebuilds the list so it's possible to add/remove items from the module
|
||||
var/list/temp_list = modules
|
||||
modules = list()
|
||||
@@ -895,9 +898,9 @@ var/global/list/robot_modules = list(
|
||||
|
||||
var/datum/matter_synth/metal = new /datum/matter_synth/metal(25000)
|
||||
var/datum/matter_synth/glass = new /datum/matter_synth/glass(25000)
|
||||
var/datum/matter_synth/wood = new /datum/matter_synth/wood(4000)
|
||||
var/datum/matter_synth/plastic = new /datum/matter_synth/plastic(2000)
|
||||
var/datum/matter_synth/wire = new /datum/matter_synth/wire(15)
|
||||
var/datum/matter_synth/wood = new /datum/matter_synth/wood(10000)
|
||||
var/datum/matter_synth/plastic = new /datum/matter_synth/plastic(10000)
|
||||
var/datum/matter_synth/wire = new /datum/matter_synth/wire(30)
|
||||
synths += metal
|
||||
synths += glass
|
||||
synths += wood
|
||||
@@ -950,11 +953,10 @@ var/global/list/robot_modules = list(
|
||||
/obj/item/robot_module/drone/construction
|
||||
name = "construction drone module"
|
||||
channels = list(CHANNEL_ENGINEERING = TRUE)
|
||||
languages = list()
|
||||
|
||||
/obj/item/robot_module/drone/construction/Initialize()
|
||||
. = ..()
|
||||
src.modules += new /obj/item/rfd/construction/borg(src)
|
||||
modules += new /obj/item/rfd/construction/borg(src)
|
||||
|
||||
/obj/item/robot_module/drone/respawn_consumable(var/mob/living/silicon/robot/R, var/amount)
|
||||
var/obj/item/device/lightreplacer/LR = locate() in src.modules
|
||||
|
||||
Reference in New Issue
Block a user