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:
noisomehollow@lycos.com
2011-07-05 04:41:35 +00:00
parent c90e996289
commit ca2af1cde2
38 changed files with 203 additions and 133 deletions
+3 -2
View File
@@ -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)
+42
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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)
+4 -2
View File
@@ -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