mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-29 08:08:49 +01:00
Merge pull request #20115 from Shadowlight213/whydoestheaihavetogointhecoreitcouldgoonthetable
A few tweaks and improvements to silicons.
This commit is contained in:
@@ -401,7 +401,7 @@ var/datum/subsystem/job/SSjob
|
||||
H << "<b>You are playing a job that is important for Game Progression. If you have to disconnect, please notify the admins via adminhelp.</b>"
|
||||
if(config.minimal_access_threshold)
|
||||
H << "<FONT color='blue'><B>As this station was initially staffed with a [config.jobs_have_minimal_access ? "full crew, only your job's necessities" : "skeleton crew, additional access may"] have been added to your ID card.</B></font>"
|
||||
return 1
|
||||
return H
|
||||
|
||||
|
||||
/datum/subsystem/job/proc/setup_officer_positions()
|
||||
|
||||
@@ -31,26 +31,7 @@
|
||||
if(..())
|
||||
return
|
||||
|
||||
R.notify_ai(2)
|
||||
|
||||
R.uneq_all()
|
||||
R.hands.icon_state = "nomod"
|
||||
R.icon_state = "robot"
|
||||
qdel(R.module)
|
||||
R.module = null
|
||||
|
||||
R.modtype = "robot"
|
||||
R.designation = "Default"
|
||||
R.updatename("Default")
|
||||
|
||||
R.update_icons()
|
||||
R.update_headlamp()
|
||||
|
||||
R.speed = 0 // Remove upgrades.
|
||||
R.ionpulse = FALSE
|
||||
R.magpulse = FALSE
|
||||
|
||||
R.status_flags |= CANPUSH
|
||||
R.ResetModule()
|
||||
|
||||
return 1
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@ var/list/ai_list = list()
|
||||
|
||||
var/obj/machinery/camera/portable/builtInCamera
|
||||
|
||||
/mob/living/silicon/ai/New(loc, var/datum/ai_laws/L, var/obj/item/device/mmi/B, var/safety = 0)
|
||||
/mob/living/silicon/ai/New(loc, datum/ai_laws/L, obj/item/device/mmi/B, safety = 0)
|
||||
..()
|
||||
rename_self("ai")
|
||||
name = real_name
|
||||
@@ -918,3 +918,6 @@ var/list/ai_list = list()
|
||||
src << "Hack complete. \The [apc] is now under your \
|
||||
exclusive control."
|
||||
apc.update_icon()
|
||||
|
||||
/mob/living/silicon/ai/spawned/New(loc, datum/ai_laws/L, obj/item/device/mmi/B, safety = 0)
|
||||
..(loc,L,B,1)
|
||||
@@ -1311,3 +1311,30 @@
|
||||
locked = 1
|
||||
notify_ai(1)
|
||||
. = 1
|
||||
|
||||
|
||||
|
||||
/mob/living/silicon/robot/proc/ResetModule()
|
||||
|
||||
notify_ai(2)
|
||||
|
||||
uneq_all()
|
||||
hands.icon_state = "nomod"
|
||||
icon_state = "robot"
|
||||
qdel(module)
|
||||
module = null
|
||||
|
||||
modtype = "robot"
|
||||
designation = "Default"
|
||||
updatename("Default")
|
||||
|
||||
update_icons()
|
||||
update_headlamp()
|
||||
|
||||
speed = 0 // Remove upgrades.
|
||||
ionpulse = FALSE
|
||||
magpulse = FALSE
|
||||
|
||||
status_flags |= CANPUSH
|
||||
|
||||
return 1
|
||||
@@ -302,8 +302,11 @@
|
||||
|
||||
SSjob.AssignRole(src, rank, 1)
|
||||
|
||||
var/mob/living/carbon/human/character = create_character() //creates the human and transfers vars and mind
|
||||
SSjob.EquipRank(character, rank, 1) //equips the human
|
||||
var/mob/living/character = create_character() //creates the human and transfers vars and mind
|
||||
var/equip = SSjob.EquipRank(character, rank, 1)
|
||||
if(isrobot(equip)) //Borgs get borged in the equip, so we need to make sure we handle the new mob.
|
||||
character = equip
|
||||
|
||||
|
||||
var/D = pick(latejoin)
|
||||
if(!D)
|
||||
@@ -319,24 +322,26 @@
|
||||
continue
|
||||
|
||||
character.loc = D
|
||||
ticker.minds += character.mind
|
||||
|
||||
if(character.mind.assigned_role != "Cyborg")
|
||||
data_core.manifest_inject(character)
|
||||
ticker.minds += character.mind//Cyborgs and AIs handle this in the transform proc. //TODO!!!!! ~Carn
|
||||
AnnounceArrival(character, rank)
|
||||
AddEmploymentContract(character)
|
||||
else
|
||||
character.Robotize()
|
||||
var/mob/living/carbon/human/humanc
|
||||
if(ishuman(character))
|
||||
humanc = character //Let's retypecast the var to be human,
|
||||
|
||||
if(humanc) //These procs all expect humans
|
||||
data_core.manifest_inject(humanc)
|
||||
AnnounceArrival(humanc, rank)
|
||||
AddEmploymentContract(humanc)
|
||||
|
||||
joined_player_list += character.ckey
|
||||
|
||||
if(config.allow_latejoin_antagonists)
|
||||
if(config.allow_latejoin_antagonists && humanc) //Borgs aren't allowed to be antags. Will need to be tweaked if we get true latejoin ais.
|
||||
switch(SSshuttle.emergency.mode)
|
||||
if(SHUTTLE_RECALL, SHUTTLE_IDLE)
|
||||
ticker.mode.make_antag_chance(character)
|
||||
ticker.mode.make_antag_chance(humanc)
|
||||
if(SHUTTLE_CALL)
|
||||
if(SSshuttle.emergency.timeLeft(1) > initial(SSshuttle.emergencyCallTime)*0.5)
|
||||
ticker.mode.make_antag_chance(character)
|
||||
ticker.mode.make_antag_chance(humanc)
|
||||
qdel(src)
|
||||
|
||||
/mob/new_player/proc/AnnounceArrival(var/mob/living/carbon/human/character, var/rank)
|
||||
|
||||
Reference in New Issue
Block a user