mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-19 02:54:41 +01:00
Created new icon dmi for ai icons. Threw all AI- related stuff in there.
Replaced swat gear in assassin equip list with black gloves and shoes. CentCom Commander equip now includes a bullet-proof vest. Upgraded holograms. It is now possible to create them dybamically through getHologramIcon(). If you want to tweak how they look, change that proc. AI can now project holograms for anyone registered on the crew. Holograms that do no fit this category can also be added now (like the one the AI starts with). Added generic holographic projection machinery category. Should now be possible to create wanted hologram projections and two-way communication using holograms. Unfinished but someone else can work on it. Fixed regular cigar sprite from another commit. Fixed deathsquad helmet down sprite. Also, adjusted it to look more unique. Updated swat mask. Made the swat boots use the jackboot sprite. Made swatboots actually as fast as other boots. Added a Honker destroyed and open sprites. Some misc icon tweaks. Ninjas: Adrenaline boost now resets player stat to 0. Due to lag, it was possible to adrenaline boost but remain helpless while life.dm resets stat. It's technically possible to come back from crit health (momentarily, before life.dm knocks you right back in crit) but I think it's a fair tradeoff. Some minor fixes. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1769 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -498,8 +498,8 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
|
||||
if("assassin")
|
||||
M.equip_if_possible(new /obj/item/clothing/under/suit_jacket(M), M.slot_w_uniform)
|
||||
M.equip_if_possible(new /obj/item/clothing/shoes/swat(M), M.slot_shoes)
|
||||
M.equip_if_possible(new /obj/item/clothing/gloves/swat(M), M.slot_gloves)
|
||||
M.equip_if_possible(new /obj/item/clothing/shoes/black(M), M.slot_shoes)
|
||||
M.equip_if_possible(new /obj/item/clothing/gloves/black(M), M.slot_gloves)
|
||||
M.equip_if_possible(new /obj/item/device/radio/headset(M), M.slot_ears)
|
||||
M.equip_if_possible(new /obj/item/clothing/glasses/sunglasses(M), M.slot_glasses)
|
||||
M.equip_if_possible(new /obj/item/clothing/suit/wcoat(M), M.slot_wear_suit)
|
||||
@@ -563,6 +563,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
|
||||
if("centcom commander")
|
||||
M.equip_if_possible(new /obj/item/clothing/under/rank/centcom_commander(M), M.slot_w_uniform)
|
||||
M.equip_if_possible(new /obj/item/clothing/suit/armor/bulletproof(M), M.slot_wear_suit)
|
||||
M.equip_if_possible(new /obj/item/clothing/shoes/swat(M), M.slot_shoes)
|
||||
M.equip_if_possible(new /obj/item/clothing/gloves/swat(M), M.slot_gloves)
|
||||
M.equip_if_possible(new /obj/item/device/radio/headset/heads/captain(M), M.slot_ears)
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
anchored = 1
|
||||
canmove = 0
|
||||
loc = loc
|
||||
holo_icon = getHologramIcon(icon('AI.dmi',"holo1"))
|
||||
|
||||
proc_holder_list = new()
|
||||
|
||||
@@ -34,6 +35,9 @@
|
||||
verbs += /mob/living/silicon/ai/proc/lockdown
|
||||
verbs += /mob/living/silicon/ai/proc/disablelockdown
|
||||
verbs += /mob/living/silicon/ai/proc/ai_statuschange
|
||||
//Hologram verb./N
|
||||
verbs += /mob/living/silicon/ai/proc/ai_hologram_change
|
||||
|
||||
if(!safety)//Only used by AIize() to successfully spawn an AI.
|
||||
if (!B)//If there is no player/brain inside.
|
||||
new/obj/AIcore/deactivated(loc)//New empty terminal.
|
||||
@@ -417,6 +421,44 @@
|
||||
|
||||
malf_picker.use(src)
|
||||
|
||||
//I am the icon meister. Bow fefore me.
|
||||
/mob/living/silicon/ai/proc/ai_hologram_change()
|
||||
set name = "Change Hologram"
|
||||
set desc = "Change the default hologram available to AI to something else."
|
||||
set category = "AI Commands"
|
||||
|
||||
var/input
|
||||
if(alert("Would you like to select a hologram based on a crew member or switch to unique avatar?",,"Crew Member","Unique")=="Crew Member")
|
||||
|
||||
var/personnel_list[] = list()
|
||||
|
||||
for(var/datum/data/record/t in data_core.locked)//Look in data core locked.
|
||||
personnel_list["[t.fields["name"]]: [t.fields["rank"]]"] = t.fields["image"]//Pull names, rank, and image.
|
||||
|
||||
if(personnel_list.len)
|
||||
input = input("Select a crew member:") as null|anything in personnel_list
|
||||
var/icon/character_icon = personnel_list[input]
|
||||
if(character_icon)
|
||||
del(holo_icon)//Clear old icon so we're not storing it in memory.
|
||||
holo_icon = getHologramIcon(icon(character_icon))
|
||||
else
|
||||
alert("No suitable records found. Aborting.")
|
||||
|
||||
else
|
||||
var/icon_list[] = list(
|
||||
"default",
|
||||
"floating face"
|
||||
)
|
||||
input = input("Please select a hologram:") as null|anything in icon_list
|
||||
if(input)
|
||||
del(holo_icon)
|
||||
switch(input)
|
||||
if("default")
|
||||
holo_icon = getHologramIcon(icon('AI.dmi',"holo1"))
|
||||
if("floating face")
|
||||
holo_icon = getHologramIcon(icon('AI.dmi',"holo2"))
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
return//Whatever the case, return since you can't move anyway.
|
||||
|
||||
if(user.client)//To make AI holograms work. They will relay directions as long as they are centered on the object.
|
||||
var/obj/machinery/holopad/T = user.client.eye//Client eye centers on an object.
|
||||
var/obj/machinery/hologram/holopad/T = user.client.eye//Client eye centers on an object.
|
||||
if(istype(T)&&T.hologram&&T.master==user)//If there is a hologram and its master is the user.
|
||||
T.hologram.loc = get_step(T.hologram, direct)
|
||||
T.hologram.dir = direct
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
if (!message)
|
||||
return
|
||||
|
||||
var/obj/machinery/holopad/T = client.eye//Client eye centers on an object.
|
||||
var/obj/machinery/hologram/holopad/T = client.eye//Client eye centers on an object.
|
||||
if(istype(T)&&T.hologram&&T.master==src)//If there is a hologram and its master is the user.
|
||||
var/message_a = say_quote(message)
|
||||
|
||||
|
||||
@@ -268,6 +268,7 @@ mob/new_player
|
||||
proc/AttemptLateSpawn(rank, maxAllowed)
|
||||
if(IsJobAvailable(rank, maxAllowed))
|
||||
var/mob/living/carbon/human/character = create_character()
|
||||
var/icon/char_icon = getFlatIcon(character,0)//We're creating out own cache so it's not needed.
|
||||
if (character)
|
||||
character.Equip_Rank(rank, joined_late=1)
|
||||
|
||||
@@ -276,7 +277,7 @@ mob/new_player
|
||||
// if((t.fields["name"] == character.real_name) && (t.fields["rank"] == "Unassigned"))
|
||||
// t.fields["rank"] = rank
|
||||
if(character.mind.assigned_role != "Cyborg")
|
||||
ManifestLateSpawn(character)
|
||||
ManifestLateSpawn(character,char_icon)
|
||||
if(ticker)
|
||||
character.loc = pick(latejoin)
|
||||
AnnounceArrival(character, rank)
|
||||
@@ -300,7 +301,7 @@ mob/new_player
|
||||
if(character.mind.assigned_role != "Cyborg"&&character.mind.special_role != "MODE")
|
||||
announcer.say("[character.real_name], the [rank], has awoken from cryo sleep.")
|
||||
|
||||
proc/ManifestLateSpawn(var/mob/living/carbon/human/H) // Attempted fix to add late joiners to various databases -- TLE
|
||||
proc/ManifestLateSpawn(var/mob/living/carbon/human/H, icon/H_icon) // Attempted fix to add late joiners to various databases -- TLE
|
||||
// This is basically ripped wholesale from the normal code for adding people to the databases during a fresh round
|
||||
if (!isnull(H.mind) && (H.mind.assigned_role != "MODE"))
|
||||
var/datum/data/record/G = new()
|
||||
@@ -354,6 +355,7 @@ mob/new_player
|
||||
L.fields["b_dna"] = H.dna.unique_enzymes
|
||||
L.fields["enzymes"] = H.dna.struc_enzymes
|
||||
L.fields["identity"] = H.dna.uni_identity
|
||||
L.fields["image"] = H_icon//What the person looks like. Naked, in this case.
|
||||
//End locked reporting
|
||||
|
||||
data_core.general += G
|
||||
|
||||
Reference in New Issue
Block a user