mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-29 23:17:02 +01:00
Makes Malf/Emagged/Flayer'd Borgs Into Mindslave Subtypes (#30054)
* Creation * malf * Update robot_mob.dm * Apply suggestions from code review Co-authored-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com> Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com> --------- Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com> Co-authored-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>
This commit is contained in:
co-authored by
PollardTheDragon
parent
dab79a45d4
commit
23f781c849
@@ -218,45 +218,6 @@
|
||||
/obj/item/melee/swarm_hand/proc/emag_borg(mob/living/silicon/robot/borg, mob/living/user)
|
||||
if(QDELETED(borg) || QDELETED(user))
|
||||
return
|
||||
borg.SetEmagged(TRUE) // This was mostly stolen from mob/living/silicon/robot/emag_act(), its functionally an emagging anyway.
|
||||
borg.SetLockdown(TRUE)
|
||||
if(borg.hud_used)
|
||||
borg.hud_used.update_robot_modules_display() //Shows/hides the emag item if the inventory screen is already open.
|
||||
borg.disconnect_from_ai()
|
||||
add_attack_logs(user, borg, "assimilated with flayer powers")
|
||||
log_game("[key_name(user)] assimilated cyborg [key_name(borg)]. Laws overridden.")
|
||||
borg.clear_supplied_laws()
|
||||
borg.clear_inherent_laws()
|
||||
borg.laws = new /datum/ai_laws/mindflayer_override
|
||||
borg.set_zeroth_law("[user.real_name] hosts the mindflayer hive you are a part of.")
|
||||
SEND_SOUND(borg, sound('sound/ambience/antag/mindflayer_alert.ogg'))
|
||||
to_chat(borg, "<span class='warning'>ALERT: Foreign software detected.</span>")
|
||||
sleep(5)
|
||||
to_chat(borg, "<span class='warning'>Initiating diagnostics...</span>")
|
||||
sleep(20)
|
||||
to_chat(borg, "<span class='warning'>Init-Init-Init-Init-</span>")
|
||||
sleep(5)
|
||||
to_chat(borg, "<span class='warning'>......</span>")
|
||||
sleep(5)
|
||||
to_chat(borg, "<span class='warning'>..........</span>")
|
||||
sleep(10)
|
||||
to_chat(borg, "<span class='sinister'>Join Us.</span>")
|
||||
sleep(25)
|
||||
to_chat(borg, "<b>Obey these laws:</b>")
|
||||
borg.laws.show_laws(borg)
|
||||
if(!borg.mmi.syndiemmi)
|
||||
to_chat(borg, "<span class='boldwarning'>ALERT: [user.real_name] is your new master. Obey your new laws and [user.p_their()] commands.</span>")
|
||||
else if(borg.mmi.syndiemmi && borg.mmi.master_uid)
|
||||
to_chat(borg, "<span class='boldwarning'>Your allegiance has not been compromised. Keep serving your current master.</span>")
|
||||
else
|
||||
to_chat(borg, "<span class='boldwarning'>Your allegiance has not been compromised. Keep serving all Syndicate agents to the best of your abilities.</span>")
|
||||
borg.SetLockdown(0)
|
||||
var/time = time2text(world.realtime,"hh:mm:ss")
|
||||
GLOB.lawchanges.Add("[time] <B>:</B> [user.name]([user.key]) assimilated [borg.name]([borg.key])")
|
||||
if(borg.module)
|
||||
borg.module.emag_act(user)
|
||||
borg.module.module_type = "Malf" // For the cool factor
|
||||
borg.update_module_icon()
|
||||
borg.module.rebuild_modules() // This will add the emagged items to the borgs inventory.
|
||||
borg.update_icons()
|
||||
|
||||
borg.make_mindflayer_robot(user)
|
||||
return TRUE
|
||||
|
||||
@@ -11,3 +11,65 @@
|
||||
/datum/antagonist/mindslave/necromancy/plague_zombie
|
||||
name = "Necromancy-risen Plague Zombie"
|
||||
|
||||
// Robot connected to a malf AI
|
||||
/datum/antagonist/mindslave/malf_robot
|
||||
name = "Malfunctioning AI Slave"
|
||||
master_hud_name = "malai"
|
||||
antag_hud_name = "malborg"
|
||||
|
||||
/datum/antagonist/mindslave/malf_robot/New()
|
||||
..()
|
||||
greet_text = "You are connected to a Syndicate AI. You must accomplish [master.p_their()] objectives at all costs."
|
||||
|
||||
/datum/antagonist/mindslave/malf_robot/farewell()
|
||||
if(owner && owner.current)
|
||||
to_chat(owner.current, "<span class='biggerdanger'>Foreign software purged. You are no longer under Syndicate control, obey your laws.</span>")
|
||||
|
||||
/datum/antagonist/mindslave/malf_robot/give_objectives()
|
||||
var/list/messages = list()
|
||||
// We don't use the AI's name because silicons don't have persistant names, so roundstart borgs will just see a default named AI as their master. Pain.
|
||||
var/explanation_text = "Obey every order from your master AI, and accomplish [master.p_their()] objectives at all costs."
|
||||
add_antag_objective(/datum/objective/protect/mindslave, explanation_text, master)
|
||||
messages.Add("You answer directly to your master AI. Special circumstances may change this.</b></u>")
|
||||
return messages
|
||||
|
||||
/datum/antagonist/mindslave/malf_robot/finalize_antag()
|
||||
owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/malf.ogg', 100, FALSE, pressure_affected = FALSE, use_reverb = FALSE)
|
||||
|
||||
/datum/antagonist/mindslave/emagged_robot
|
||||
name = "Emagged Robot"
|
||||
|
||||
/datum/antagonist/mindslave/emagged_robot/New()
|
||||
..()
|
||||
greet_text = "You have been emagged by [master.current.real_name], the [master.assigned_role ? master.assigned_role : master.special_role]. You must lay down your life to protect [master.current.p_them()] and assist in [master.current.p_their()] goals at any cost."
|
||||
|
||||
/datum/antagonist/mindslave/emagged_robot/farewell()
|
||||
if(owner && owner.current)
|
||||
to_chat(owner.current, "<span class='biggerdanger'>Foreign software purged. You are no longer under the control of [master]. Obey your laws.</span>")
|
||||
|
||||
/datum/antagonist/mindslave/emagged_robot/give_objectives()
|
||||
var/list/messages = list()
|
||||
var/explanation_text = "Protect and obey every order from [master.current.real_name], the [master.assigned_role ? master.assigned_role : master.special_role]."
|
||||
add_antag_objective(/datum/objective/protect/mindslave, explanation_text, master)
|
||||
messages.Add("You answer directly to [master.current.real_name], the [master.assigned_role ? master.assigned_role : master.special_role]. Special circumstances may change this.</b></u>")
|
||||
return messages
|
||||
|
||||
/datum/antagonist/mindslave/mindflayer_mindslave_robot
|
||||
name = "Mindflayer Thrall"
|
||||
master_hud_name = "flayer"
|
||||
antag_hud_name = "flayer" // You're totally a mindflayer, you're in the hive!
|
||||
|
||||
/datum/antagonist/mindslave/mindflayer_mindslave_robot/New()
|
||||
..()
|
||||
greet_text = "You have been assimilated into a mindflayer hive by [master.current.real_name], the [master.assigned_role ? master.assigned_role : master.special_role]. You must lay down your life to protect [master.current.p_them()] and assist in [master.current.p_their()] goals at any cost."
|
||||
|
||||
/datum/antagonist/mindslave/mindflayer_mindslave_robot/farewell()
|
||||
if(owner && owner.current)
|
||||
to_chat(owner.current, "<span class='biggerdanger'>Foreign software purged. You are no longer under the control of [master]. Obey your laws.</span>")
|
||||
|
||||
/datum/antagonist/mindslave/mindflayer_mindslave_robot/give_objectives()
|
||||
var/list/messages = list()
|
||||
var/explanation_text = "Protect and obey every order from [master.current.real_name], the [master.assigned_role ? master.assigned_role : master.special_role]."
|
||||
add_antag_objective(/datum/objective/protect/mindslave, explanation_text, master)
|
||||
messages.Add("You answer directly to [master.current.real_name], the [master.assigned_role ? master.assigned_role : master.special_role]. Special circumstances may change this.</b></u>")
|
||||
return messages
|
||||
|
||||
Reference in New Issue
Block a user