Merge branch 'master' of https://github.com/tgstation/-tg-station into action_action_action_action_action

Conflicts:
	icons/mob/actions.dmi
This commit is contained in:
Incoming
2015-11-10 17:03:05 -05:00
154 changed files with 3787 additions and 1376 deletions
@@ -385,6 +385,11 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
if(href_list["reenter"])
reenter_corpse()
//We don't want to update the current var
//But we will still carry a mind.
/mob/dead/observer/mind_initialize()
return
/mob/dead/observer/verb/toggle_ghosthud()
set name = "Toggle Ghost HUD"
set desc = "Toggles your ghost's on-screen HUD"
@@ -67,7 +67,7 @@ var/const/ALIEN_AFK_BRACKET = 450 // 45 seconds
/obj/item/organ/internal/body_egg/alien_embryo/proc/AttemptGrow(gib_on_success = 1)
if(!owner) return
var/list/candidates = get_candidates(BE_ALIEN, ALIEN_AFK_BRACKET, "alien candidate")
var/list/candidates = get_candidates(ROLE_ALIEN, ALIEN_AFK_BRACKET, "alien candidate")
var/client/C = null
// To stop clientless larva, we will check that our host has a client
@@ -72,6 +72,13 @@
m_type = 2
if ("custom")
if(jobban_isbanned(src, "emote"))
src << "You cannot send custom emotes (banned)"
return
if(src.client)
if(client.prefs.muted & MUTE_IC)
src << "You cannot send IC messages (muted)."
return
var/input = copytext(sanitize(input("Choose an emote to display.") as text|null),1,MAX_MESSAGE_LEN)
if (!input)
return
@@ -337,7 +337,7 @@ datum/species/human/spec_death(gibbed, mob/living/carbon/human/H)
speedmod = 3
armor = 55
punchmod = 5
no_equip = list(slot_wear_mask, slot_wear_suit, slot_gloves, slot_shoes, slot_head, slot_w_uniform)
no_equip = list(slot_wear_mask, slot_wear_suit, slot_gloves, slot_shoes, slot_w_uniform)
nojumpsuit = 1
meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem
+3
View File
@@ -144,6 +144,9 @@
m_type = 1
if ("me")
if(jobban_isbanned(src, "emote"))
src << "You cannot send custom emotes (banned)"
return
if (src.client)
if(client.prefs.muted & MUTE_IC)
src << "You cannot send IC messages (muted)."
@@ -42,7 +42,6 @@
var/metabolism_efficiency = 1 //more or less efficiency to metabolize helpful/harmful reagents and regulate body temperature..
var/list/image/staticOverlays = list()
var/has_limbs = 0 //does the mob have distinct limbs?(arms,legs, chest,head)
var/list/datum/action/actions = list()
var/list/pipes_shown = list()
var/last_played_vent
+1
View File
@@ -5,4 +5,5 @@
ticker.mode.remove_gangster(mind, remove_bosses=1)
ticker.mode.remove_thrall(mind,0)
ticker.mode.remove_shadowling(mind)
ticker.mode.remove_hog_follower(mind,0)
..()
@@ -9,7 +9,6 @@
/mob/living/silicon/pai/var/list/available_software = list(
"crew manifest" = 5,
"digital messenger" = 5,
"chatroom client" = 5,
"medical records" = 15,
"security records" = 15,
//"camera jack" = 10,
@@ -67,8 +66,6 @@
left_part = src.softwareCamera()
if("signaller")
left_part = src.softwareSignal()
if("chatroom")
src.chatroom() //snowflake? maybe, but it's less effort this way
//usr << browse_rsc('windowbak.png') // This has been moved to the mob's Login() proc
@@ -287,8 +284,6 @@
for(var/s in src.software)
if(s == "digital messenger")
dat += "<a href='byond://?src=\ref[src];software=pdamessage;sub=0'>Digital Messenger</a> <br>"
if(s == "chatroom client")
dat += "<a href='byond://?src=\ref[src];software=chatroom;sub=0'>Chatroom Client</a> <br>"
if(s == "crew manifest")
dat += "<a href='byond://?src=\ref[src];software=manifest;sub=0'>Crew Manifest</a> <br>"
if(s == "medical records")
@@ -645,7 +640,3 @@
dat += "<br><br>"
dat += "Messages: <hr> [pda.tnote]"
return dat
/mob/living/silicon/pai/proc/chatroom()
pda.mode = 5
pda.attack_self(src)
@@ -79,6 +79,13 @@
m_type = 2
if ("custom")
if(jobban_isbanned(src, "emote"))
src << "You cannot send custom emotes (banned)"
return
if(src.client)
if(client.prefs.muted & MUTE_IC)
src << "You cannot send IC messages (muted)."
return
var/input = copytext(sanitize(input("Choose an emote to display.") as text|null),1,MAX_MESSAGE_LEN)
if (!input)
return
@@ -3,10 +3,12 @@
..()
regenerate_icons()
show_laws(0)
if(mind) ticker.mode.remove_revolutionary(mind)
if(mind) ticker.mode.remove_gangster(mind,1,remove_bosses=1)
if(mind) ticker.mode.remove_thrall(mind,0)
if(mind) ticker.mode.remove_shadowling(mind)
if(mind)
ticker.mode.remove_revolutionary(mind)
ticker.mode.remove_gangster(mind,1,remove_bosses=1)
ticker.mode.remove_thrall(mind,0)
ticker.mode.remove_shadowling(mind)
ticker.mode.remove_hog_follower(mind, 0)
/mob/living/silicon/robot/update_hotkey_mode()
winset(src, null, "mainwindow.macro=borghotkeymode hotkey_toggle.is-checked=true mapwindow.map.focus=true input.background-color=#F0F0F0")
@@ -33,7 +33,7 @@
/mob/living/simple_animal/hostile/retaliate/goat/Destroy()
qdel(udder)
udder = null
..()
return ..()
/mob/living/simple_animal/hostile/retaliate/goat/Life()
. = ..()
@@ -107,7 +107,7 @@
/mob/living/simple_animal/cow/Destroy()
qdel(udder)
udder = null
..()
return ..()
/mob/living/simple_animal/cow/attackby(obj/item/O, mob/user, params)
if(stat == CONSCIOUS && istype(O, /obj/item/weapon/reagent_containers/glass))
@@ -292,4 +292,4 @@ var/global/chicken_count = 0
/obj/udder/Destroy()
qdel(reagents)
..()
return ..()
@@ -554,7 +554,7 @@
return
used = TRUE
user << "[use_message]"
var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as the [mob_name] of [user.real_name]?", "pAI", null, FALSE, 100)
var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as the [mob_name] of [user.real_name]?", ROLE_PAI, null, FALSE, 100)
var/mob/dead/observer/theghost = null
if(candidates.len)
@@ -193,7 +193,7 @@
/datum/round_event/morph/proc/get_morph(end_if_fail = 0)
key_of_morph = null
if(!key_of_morph)
var/list/candidates = get_candidates(BE_ALIEN)
var/list/candidates = get_candidates(ROLE_ALIEN)
if(!candidates.len)
if(end_if_fail)
return 0
@@ -14,7 +14,6 @@
invisibility = INVISIBILITY_REVENANT
health = INFINITY //Revenants don't use health, they use essence instead
maxHealth = INFINITY
alpha = 160
layer = 5
healable = 0
see_invisible = SEE_INVISIBLE_MINIMUM
@@ -61,7 +60,6 @@
unreveal_time = 0
revealed = 0
invisibility = INVISIBILITY_REVENANT
alpha = 160
src << "<span class='revenboldnotice'>You are once more concealed.</span>"
if(unstun_time && world.time >= unstun_time)
unstun_time = 0
@@ -69,6 +67,7 @@
src << "<span class='revenboldnotice'>You can move again!</span>"
if(essence_regenerating && !inhibited && essence < essence_regen_cap) //While inhibited, essence will not regenerate
essence = min(essence_regen_cap, essence+essence_regen_amount)
update_spooky_icon()
..()
@@ -79,12 +78,13 @@
return
revealed = 1
invisibility = 0
alpha = 255
if(!unreveal_time)
src << "<span class='revendanger'>You have been revealed!</span>"
unreveal_time = world.time + time
else
src << "<span class='revenwarning'>You have been revealed!</span>"
unreveal_time = world.time + time
unreveal_time = unreveal_time + time
update_spooky_icon()
/mob/living/simple_animal/revenant/proc/stun(time)
if(!src)
@@ -94,9 +94,23 @@
notransform = 1
if(!unstun_time)
src << "<span class='revendanger'>You cannot move!</span>"
unstun_time = world.time + time
else
src << "<span class='revenwarning'>You cannot move!</span>"
unstun_time = world.time + time
unstun_time = unstun_time + time
update_spooky_icon()
/mob/living/simple_animal/revenant/proc/update_spooky_icon()
if(unreveal_time)
if(draining)
icon_state = "revenant_draining"
return
if(unstun_time)
icon_state = "revenant_stun"
return
icon_state = "revenant_revealed"
return
icon_state = "revenant_idle"
/mob/living/simple_animal/revenant/ex_act(severity, target)
return 1 //Immune to the effects of explosions.
@@ -185,12 +199,15 @@
drained_mobs.Add(target)
target.death(0)
else
src << "<span class='revenwarning'>[target] has been drawn out of your grasp. The link has been broken.</span>"
target.visible_message("<span class='warning'>[target] slumps onto the ground.</span>", \
"<span class='revenwarning'>Violets lights, dancing in your vision, receding--</span>")
icon_state = "revenant_idle"
src << "<span class='revenwarning'>[target ? "[target] has":"They have"] been drawn out of your grasp. The link has been broken.</span>"
draining = 0
essence_drained = 0
if(target) //Wait, target is WHERE NOW?
target.visible_message("<span class='warning'>[target] slumps onto the ground.</span>", \
"<span class='revenwarning'>Violets lights, dancing in your vision, receding--</span>")
return
else
src << "<span class='revenwarning'>You are not close enough to siphon [target]'s soul. The link has been broken.</span>"
src << "<span class='revenwarning'>You are not close enough to siphon [target ? "[target]'s":"their"] soul. The link has been broken.</span>"
draining = 0
essence_drained = 0
return
@@ -402,7 +419,7 @@
key_of_revenant = client_to_revive.key
if(!key_of_revenant)
message_admins("The new revenant's old client either could not be found or is in a new, living mob - grabbing a random candidate instead...")
var/list/candidates = get_candidates(BE_REVENANT)
var/list/candidates = get_candidates(ROLE_REVENANT)
if(!candidates.len)
qdel(R)
message_admins("No candidates were found for the new revenant. Oh well!")
@@ -77,7 +77,7 @@
desc = "Directs a large amount of essence into nearby electrical lights, causing lights to shock those nearby."
charge_max = 200
range = 5
stun = 35
stun = 30
cast_amount = 45
var/shock_range = 2
var/shock_damage = 18
@@ -116,7 +116,6 @@
desc = "Twists and corrupts the nearby area as well as dispelling holy auras on floors."
charge_max = 150
range = 3
stun = 25
unlock_amount = 75
cast_amount = 40
action_icon_state = "defile"
@@ -21,7 +21,7 @@
return
key_of_revenant = null
if(!key_of_revenant)
var/list/candidates = get_candidates(BE_REVENANT)
var/list/candidates = get_candidates(ROLE_REVENANT)
if(!candidates.len)
if(end_if_fail)
return 0
@@ -15,7 +15,7 @@
/datum/round_event/slaughter/proc/get_slaughter(end_if_fail = 0)
key_of_slaughter = null
if(!key_of_slaughter)
var/list/candidates = get_candidates(BE_ALIEN)
var/list/candidates = get_candidates(ROLE_ALIEN)
if(!candidates.len)
if(end_if_fail)
return 0
+2
View File
@@ -57,6 +57,8 @@
add_click_catcher()
sync_mind()
// Calling update_interface() in /mob/Login() causes the Cyborg to immediately be ghosted; because of winget().
// Calling it in the overriden Login, such as /mob/living/Login() doesn't cause this.
/mob/proc/update_interface()
+1
View File
@@ -6,6 +6,7 @@
hud_possible = list(ANTAG_HUD)
pressure_resistance = 8
var/datum/mind/mind
var/list/datum/action/actions = list()
var/stat = 0 //Whether a mob is alive or dead. TODO: Move this to living - Nodrak
+17
View File
@@ -433,6 +433,23 @@
gib(src)
/mob/proc/become_god(var/side_colour)
var/mob/camera/god/G = new /mob/camera/god(loc)
G.side = side_colour
G.invisibility = 40
if(mind)
mind.transfer_to(G)
else
G.key = key
G.job = "Deity"
G.rename_self("deity", 0)
G.update_icons()
. = G
qdel(src)
/mob/living/carbon/human/proc/corgize()
if (notransform)