mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-16 13:12:22 +00:00
Unifying MMI creation on robot subtypes.
This commit is contained in:
@@ -117,11 +117,10 @@
|
||||
if(!user.unEquip(W))
|
||||
return
|
||||
|
||||
var/mob/living/silicon/robot/O = new product(get_turf(loc))
|
||||
var/mob/living/silicon/robot/O = new product(get_turf(loc), FALSE, W)
|
||||
if(!O)
|
||||
return
|
||||
|
||||
O.mmi = W
|
||||
O.invisibility = 0
|
||||
O.custom_name = created_name
|
||||
O.updatename("Default")
|
||||
|
||||
@@ -91,7 +91,7 @@ var/global/list/mob_hat_cache = list()
|
||||
hat_y_offset = -12
|
||||
can_pull_mobs = MOB_PULL_SAME
|
||||
|
||||
/mob/living/silicon/robot/drone/Initialize()
|
||||
/mob/living/silicon/robot/drone/Initialize(var/ml, var/unfinished = 0, var/supplied_mmi)
|
||||
. = ..()
|
||||
verbs += /mob/living/proc/ventcrawl
|
||||
verbs += /mob/living/proc/hide
|
||||
|
||||
@@ -56,11 +56,9 @@
|
||||
/spell/aoe_turf/conjure/swarmer/melee
|
||||
)
|
||||
|
||||
/mob/living/silicon/robot/drone/swarm/Initialize()
|
||||
/mob/living/silicon/robot/drone/swarm/Initialize(var/ml, var/unfinished = 0, var/supplied_mmi)
|
||||
. = ..()
|
||||
|
||||
add_language(LANGUAGE_SWARMBOT, 1)
|
||||
|
||||
for(var/spell in spell_setup)
|
||||
src.add_spell(new spell, "nano_spell_ready", /obj/screen/movable/spell_master/swarm)
|
||||
|
||||
@@ -110,4 +108,3 @@
|
||||
/spell/aoe_turf/conjure/forcewall/swarm,
|
||||
/spell/aoe_turf/blink/swarm
|
||||
)
|
||||
|
||||
|
||||
@@ -100,7 +100,13 @@
|
||||
/mob/living/silicon/robot/proc/robot_checklaws
|
||||
)
|
||||
|
||||
/mob/living/silicon/robot/Initialize(var/ml, var/unfinished = 0)
|
||||
/mob/living/silicon/robot/Initialize(var/ml, var/unfinished = 0, var/obj/item/mmi/supplied_mmi)
|
||||
|
||||
if(istype(supplied_mmi))
|
||||
supplied_mmi.forceMove(src)
|
||||
mmi = supplied_mmi
|
||||
post_mmi_setup()
|
||||
|
||||
spark_system = new /datum/effect_system/spark_spread()
|
||||
spark_system.set_up(5, 0, src)
|
||||
spark_system.attach(src)
|
||||
|
||||
@@ -8,14 +8,14 @@ GLOBAL_LIST_EMPTY(available_ai_shells)
|
||||
var/mob/living/silicon/ai/mainframe = null
|
||||
|
||||
// Premade AI shells, for roundstart landmark spawn.
|
||||
/mob/living/silicon/robot/ai_shell/Initialize()
|
||||
mmi = new /obj/item/mmi/inert/ai_remote(src)
|
||||
post_mmi_setup()
|
||||
/mob/living/silicon/robot/ai_shell/Initialize(var/ml, var/unfinished = 0, var/supplied_mmi)
|
||||
if(!supplied_mmi)
|
||||
supplied_mmi = new /obj/item/mmi/inert/ai_remote(src)
|
||||
return ..()
|
||||
|
||||
/mob/living/silicon/robot/flying/ai_shell/Initialize()
|
||||
mmi = new /obj/item/mmi/inert/ai_remote(src)
|
||||
post_mmi_setup()
|
||||
/mob/living/silicon/robot/flying/ai_shell/Initialize(var/ml, var/unfinished = 0, var/supplied_mmi)
|
||||
if(!supplied_mmi)
|
||||
supplied_mmi = new /obj/item/mmi/inert/ai_remote(src)
|
||||
return ..()
|
||||
|
||||
// Call after inserting or instantiating an MMI.
|
||||
@@ -25,7 +25,6 @@ GLOBAL_LIST_EMPTY(available_ai_shells)
|
||||
playsound(src, 'sound/machines/twobeep.ogg', 50, 0)
|
||||
else
|
||||
playsound(src, 'sound/voice/liveagain.ogg', 75, 1)
|
||||
return
|
||||
|
||||
/mob/living/silicon/robot/proc/make_shell()
|
||||
shell = TRUE
|
||||
|
||||
@@ -9,9 +9,13 @@
|
||||
icon_selected = FALSE
|
||||
can_be_antagged = FALSE
|
||||
|
||||
/mob/living/silicon/robot/gravekeeper/Initialize(ml, unfinished, supplied_mmi)
|
||||
if(!supplied_mmi)
|
||||
supplied_mmi = new /obj/item/mmi/digital/robot(src)
|
||||
. = ..()
|
||||
|
||||
/mob/living/silicon/robot/gravekeeper/init()
|
||||
aiCamera = new/obj/item/camera/siliconcam/robot_camera(src)
|
||||
mmi = new /obj/item/mmi/digital/robot(src)
|
||||
module = new /obj/item/robot_module/robot/gravekeeper(src)
|
||||
cut_overlays()
|
||||
init_id()
|
||||
|
||||
@@ -8,10 +8,13 @@
|
||||
idcard_type = /obj/item/card/id
|
||||
icon_selected = FALSE
|
||||
|
||||
/mob/living/silicon/robot/flying/lost/Initialize(ml, unfinished, supplied_mmi)
|
||||
if(!supplied_mmi)
|
||||
supplied_mmi = new /obj/item/mmi/digital/robot(src)
|
||||
. = ..()
|
||||
|
||||
/mob/living/silicon/robot/flying/lost/init()
|
||||
aiCamera = new/obj/item/camera/siliconcam/robot_camera(src)
|
||||
|
||||
mmi = new /obj/item/mmi/digital/robot(src)
|
||||
module = new /obj/item/robot_module/robot/lost(src)
|
||||
cut_overlays()
|
||||
init_id()
|
||||
|
||||
@@ -8,10 +8,13 @@
|
||||
idcard_type = /obj/item/card/id/syndicate
|
||||
icon_selected = FALSE
|
||||
|
||||
/mob/living/silicon/robot/syndicate/Initialize(ml, unfinished, supplied_mmi)
|
||||
if(!supplied_mmi)
|
||||
supplied_mmi = new /obj/item/mmi/digital/robot(src)
|
||||
. = ..()
|
||||
|
||||
/mob/living/silicon/robot/syndicate/init()
|
||||
aiCamera = new/obj/item/camera/siliconcam/robot_camera(src)
|
||||
|
||||
mmi = new /obj/item/mmi/digital/robot(src)
|
||||
cut_overlays()
|
||||
init_id()
|
||||
|
||||
|
||||
@@ -39,12 +39,12 @@
|
||||
if(mind)
|
||||
mind.name = real_name
|
||||
|
||||
/mob/living/silicon/robot/platform/Initialize(var/mapload)
|
||||
. = ..()
|
||||
/mob/living/silicon/robot/platform/Initialize(var/ml, var/unfinished = 0, var/supplied_mmi)
|
||||
if(mapped)
|
||||
if(!mmi)
|
||||
mmi = new /obj/item/mmi/digital/robot(src)
|
||||
if(!supplied_mmi)
|
||||
supplied_mmi = new /obj/item/mmi/digital/robot(src)
|
||||
SetName("inactive [initial(name)]")
|
||||
. = ..()
|
||||
updateicon()
|
||||
|
||||
// Copypasting from root proc to avoid calling ..() and accidentally creating duplicate armour etc.
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
lawchannel = "State"
|
||||
idcard_type = /obj/item/card/id/syndicate
|
||||
|
||||
/mob/living/silicon/robot/syndicate/Initialize()
|
||||
/mob/living/silicon/robot/syndicate/Initialize(var/ml, var/unfinished = 0, var/supplied_mmi)
|
||||
if(!cell)
|
||||
cell = new /obj/item/cell(src)
|
||||
cell.maxcharge = 25000
|
||||
|
||||
@@ -278,7 +278,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
|
||||
return
|
||||
M.shakecamera = 1
|
||||
spawn(1)
|
||||
if(!M.client)
|
||||
if(QDELETED(M) || !M.client)
|
||||
return
|
||||
|
||||
var/atom/oldeye=M.client.eye
|
||||
|
||||
@@ -149,14 +149,13 @@
|
||||
for(var/t in organs)
|
||||
qdel(t)
|
||||
|
||||
var/mob/living/silicon/robot/O = new supplied_robot_type( loc )
|
||||
var/mmi_type = SSrobots.get_mmi_type_by_title(mind?.role_alt_title ? mind.role_alt_title : mind?.assigned_role)
|
||||
var/mob/living/silicon/robot/O = new supplied_robot_type(loc, FALSE, (mmi_type ? new mmi_type : null))
|
||||
|
||||
// cyborgs produced by Robotize get an automatic power cell
|
||||
O.cell = new(O)
|
||||
O.cell.maxcharge = 7500
|
||||
O.cell.charge = 7500
|
||||
|
||||
|
||||
O.gender = gender
|
||||
O.invisibility = 0
|
||||
|
||||
@@ -171,11 +170,7 @@
|
||||
|
||||
O.loc = loc
|
||||
O.job = "Cyborg"
|
||||
|
||||
if(O.mind.assigned_role == "Cyborg")
|
||||
var/mmi_type = SSrobots.get_mmi_type_by_title(O.mind.role_alt_title ? O.mind.role_alt_title : O.mind.assigned_role)
|
||||
if(mmi_type)
|
||||
O.mmi = new mmi_type(O)
|
||||
if(istype(O.mmi))
|
||||
O.mmi.transfer_identity(src)
|
||||
|
||||
if(O.client && O.client.prefs)
|
||||
|
||||
@@ -46,12 +46,11 @@
|
||||
var/randomize = pick(options)
|
||||
switch(randomize)
|
||||
if("robot")
|
||||
new_mob = new /mob/living/silicon/robot(M.loc)
|
||||
new_mob = new /mob/living/silicon/robot(M.loc, FALSE, new /obj/item/mmi)
|
||||
new_mob.gender = M.gender
|
||||
new_mob.invisibility = 0
|
||||
new_mob.job = "Cyborg"
|
||||
var/mob/living/silicon/robot/Robot = new_mob
|
||||
Robot.mmi = new /obj/item/mmi(new_mob)
|
||||
Robot.mmi.transfer_identity(M) //Does not transfer key/client.
|
||||
if("slime")
|
||||
new_mob = new /mob/living/simple_mob/slime/xenobio(M.loc)
|
||||
|
||||
Reference in New Issue
Block a user