Merge remote-tracking branch 'refs/remotes/Citadel-Station-13/master' into donoritemmodularization

# Conflicts:
#	code/citadel/custom_loadout/custom_items.dm
#	code/datums/components/riding.dm
#	code/game/objects/items/implants/implantuplink.dm
#	icons/mob/neck.dmi
#	icons/obj/clothing/cloaks.dmi
This commit is contained in:
deathride58
2017-12-08 19:58:41 -05:00
182 changed files with 2740 additions and 736 deletions
+3 -3
View File
@@ -320,7 +320,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
if(mind.current.key && copytext(mind.current.key,1,2)!="@") //makes sure we don't accidentally kick any clients
to_chat(usr, "<span class='warning'>Another consciousness is in your body...It is resisting you.</span>")
return
client.change_view(world.view)
client.change_view(CONFIG_GET(string/default_view))
SStgui.on_transfer(src, mind.current) // Transfer NanoUIs.
mind.current.key = key
return 1
@@ -456,7 +456,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
set desc = "Change your view range."
var/max_view = client.prefs.unlock_content ? GHOST_MAX_VIEW_RANGE_MEMBER : GHOST_MAX_VIEW_RANGE_DEFAULT
if(client.view == world.view)
if(client.view == CONFIG_GET(string/default_view))
var/list/views = list()
for(var/i in 7 to max_view)
views |= i
@@ -464,7 +464,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
if(new_view)
client.change_view(Clamp(new_view, 7, max_view))
else
client.change_view(world.view)
client.change_view(CONFIG_GET(string/default_view))
/mob/dead/observer/verb/add_view_range(input as num)
set name = "Add View Range"
+21 -21
View File
@@ -37,36 +37,36 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
//kinda localization -- rastaf0
//same keys as above, but on russian keyboard layout. This file uses cp1251 as encoding.
// Location
"ê" = "right hand",
"ä" = "left hand",
"ø" = "intercom",
"ê" = "right hand",
"ä" = "left hand",
"ø" = "intercom",
// Department
"ð" = "department",
"ñ" = "Command",
"ò" = "Science",
"ü" = "Medical",
"ó" = "Engineering",
"û" = "Security",
"ã" = "Supply",
"ì" = "Service",
"ð" = "department",
"ñ" = "Command",
"ò" = "Science",
"ü" = "Medical",
"ó" = "Engineering",
"û" = "Security",
"ã" = "Supply",
"ì" = "Service",
// Faction
"å" = "Syndicate",
"í" = "CentCom",
"å" = "Syndicate",
"í" = "CentCom",
// Species
"è" = "binary",
"ï" = "changeling",
"ô" = "alientalk",
"è" = "binary",
"ï" = "changeling",
"ô" = "alientalk",
// Admin
"ç" = "admin",
"â" = "deadmin",
"ç" = "admin",
"â" = "deadmin",
// Misc
"ù" = "AI Private",
"÷" = "cords"
"ù" = "AI Private",
"÷" = "cords"
))
/mob/living/say(message, bubble_type,var/list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE)
@@ -137,7 +137,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
var/datum/saymode/SM = SSradio.saymodes[key]
if(key && SM)
if(!SM.handle_message(src, message, language))
if(!SM.handle_message(src, message, language) && !message_mode)
return
+2 -1
View File
@@ -817,7 +817,8 @@
return (GLOB.cameranet && GLOB.cameranet.checkTurfVis(get_turf_pixel(A))) || apc_override
//AI is carded/shunted
//view(src) returns nothing for carded/shunted AIs and they have x-ray vision so just use get_dist
return get_dist(src, A) <= client.view
var/list/viewscale = getviewsize(client.view)
return get_dist(src, A) <= max(viewscale[1]*0.5,viewscale[2]*0.5)
/mob/living/silicon/ai/proc/relay_speech(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode)
raw_message = lang_treat(speaker, message_language, raw_message, spans, message_mode)
+4 -4
View File
@@ -10,14 +10,14 @@
var/mob/living/silicon/S = src
desig = trim_left(S.designation + " " + S.job)
var/message_a = say_quote(message, get_spans())
var/rendered = "<i><span class='game say'>Robotic Talk, <span class='name'>[name]</span> <span class='message'>[message_a]</span></span></i>"
var/rendered = "Robotic Talk, <span class='name'>[name]</span> <span class='message'>[message_a]</span>"
for(var/mob/M in GLOB.player_list)
if(M.binarycheck())
if(isAI(M))
var/renderedAI = "<i><span class='game say'>Robotic Talk, <a href='?src=[REF(M)];track=[html_encode(name)]'><span class='name'>[name] ([desig])</span></a> <span class='message'>[message_a]</span></span></i>"
var/renderedAI = "<span class='binarysay'>Robotic Talk, <a href='?src=[REF(M)];track=[html_encode(name)]'><span class='name'>[name] ([desig])</span></a> <span class='message'>[message_a]</span></span>"
to_chat(M, renderedAI)
else
to_chat(M, rendered)
to_chat(M, "<span class='binarysay'>[rendered]</span>")
if(isobserver(M))
var/following = src
// If the AI talks on binary chat, we still want to follow
@@ -26,7 +26,7 @@
var/mob/living/silicon/ai/ai = src
following = ai.eyeobj
var/link = FOLLOW_LINK(M, following)
to_chat(M, "[link] [rendered]")
to_chat(M, "<span class='binarysay'>[link] [rendered]</span>")
/mob/living/silicon/binarycheck()
return 1
@@ -9,8 +9,8 @@
gender = MALE
speak = list("Meow!", "Esp!", "Purr!", "HSSSSS")
speak_emote = list("purrs", "meows")
emote_hear = list("meows", "mews")
emote_see = list("shakes its head", "shivers")
emote_hear = list("meows.", "mews.")
emote_see = list("shakes its head.", "shivers.")
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
@@ -2,10 +2,10 @@
/mob/living/simple_animal/hostile/asteroid/fugu
name = "wumborian fugu"
desc = "The wumborian fugu rapidly increases its body mass in order to ward off its prey. Great care should be taken to avoid it while it's in this state as it is nearly invincible, but it cannot maintain its form forever."
icon = 'icons/mob/lavaland/lavaland_monsters.dmi'
icon_state = "Fugu"
icon_living = "Fugu"
icon_aggro = "Fugu"
icon = 'icons/mob/lavaland/64x64megafauna.dmi'
icon_state = "Fugu0"
icon_living = "Fugu0"
icon_aggro = "Fugu0"
icon_dead = "Fugu_dead"
icon_gib = "syndicate_gib"
mouse_opacity = MOUSE_OPACITY_OPAQUE
@@ -16,6 +16,7 @@
speed = 0
maxHealth = 50
health = 50
pixel_x = -16
harm_intent_damage = 5
obj_damage = 0
melee_damage_lower = 0
@@ -30,13 +31,23 @@
gold_core_spawnable = HOSTILE_SPAWN
var/wumbo = 0
var/inflate_cooldown = 0
var/datum/action/innate/fugu/expand/E
loot = list(/obj/item/asteroid/fugu_gland{layer = ABOVE_MOB_LAYER})
/mob/living/simple_animal/hostile/asteroid/fugu/Initialize()
. = ..()
E = new
E.Grant(src)
/mob/living/simple_animal/hostile/asteroid/fugu/Destroy()
QDEL_NULL(E)
return ..()
/mob/living/simple_animal/hostile/asteroid/fugu/Life()
if(!wumbo)
inflate_cooldown = max((inflate_cooldown - 1), 0)
if(target && AIStatus == AI_ON)
Inflate()
E.Activate()
..()
/mob/living/simple_animal/hostile/asteroid/fugu/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
@@ -46,42 +57,47 @@
/mob/living/simple_animal/hostile/asteroid/fugu/Aggro()
..()
Inflate()
E.Activate()
/mob/living/simple_animal/hostile/asteroid/fugu/verb/Inflate()
set name = "Inflate"
set category = "Fugu"
set desc = "Temporarily increases your size, and makes you significantly more dangerous and tough."
if(wumbo)
to_chat(src, "<span class='notice'>You're already inflated.</span>")
/datum/action/innate/fugu
icon_icon = 'icons/mob/actions/actions_animal.dmi'
/datum/action/innate/fugu/expand
name = "Inflate"
desc = "Temporarily increases your size, and makes you significantly more dangerous and tough! Do not bully the fugu!"
button_icon_state = "expand"
/datum/action/innate/fugu/expand/Activate()
var/mob/living/simple_animal/hostile/asteroid/fugu/F = owner
if(F.wumbo)
to_chat(F, "<span class='notice'>YOU'RE ALREADY WUMBO!</span>")
return
if(inflate_cooldown)
to_chat(src, "<span class='notice'>We need time to gather our strength.</span>")
if(F.inflate_cooldown)
to_chat(F, "<span class='notice'>You need time to gather your strength.</span>")
return
if(buffed)
to_chat(src, "<span class='notice'>Something is interfering with our growth.</span>")
if(F.buffed)
to_chat(F, "<span class='notice'>Something is interfering with your growth.</span>")
return
wumbo = 1
icon_state = "Fugu_big"
obj_damage = 60
melee_damage_lower = 15
melee_damage_upper = 20
harm_intent_damage = 0
throw_message = "is absorbed by the girth of the"
retreat_distance = null
minimum_distance = 1
move_to_delay = 6
transform *= 2
environment_smash = ENVIRONMENT_SMASH_WALLS
mob_size = MOB_SIZE_LARGE
speed = 1
addtimer(CALLBACK(src, .proc/Deflate), 100)
F.wumbo = 1
F.icon_state = "Fugu1"
F.obj_damage = 60
F.melee_damage_lower = 15
F.melee_damage_upper = 20
F.harm_intent_damage = 0
F.throw_message = "is absorbed by the girth of the"
F.retreat_distance = null
F.minimum_distance = 1
F.move_to_delay = 6
F.environment_smash = ENVIRONMENT_SMASH_WALLS
F.mob_size = MOB_SIZE_LARGE
F.speed = 1
addtimer(CALLBACK(F, /mob/living/simple_animal/hostile/asteroid/fugu/proc/Deflate), 100)
/mob/living/simple_animal/hostile/asteroid/fugu/proc/Deflate()
if(wumbo)
walk(src, 0)
wumbo = 0
icon_state = "Fugu"
icon_state = "Fugu0"
obj_damage = 0
melee_damage_lower = 0
melee_damage_upper = 0
@@ -90,7 +106,6 @@
retreat_distance = 9
minimum_distance = 9
move_to_delay = 2
transform /= 2
inflate_cooldown = 4
environment_smash = ENVIRONMENT_SMASH_NONE
mob_size = MOB_SIZE_SMALL
+1 -1
View File
@@ -39,7 +39,7 @@
if(client)
client.click_intercept = null
client.change_view(world.view) // Resets the client.view in case it was changed.
client.change_view(CONFIG_GET(string/default_view)) // Resets the client.view in case it was changed.
if(!GLOB.individual_log_list[ckey])
GLOB.individual_log_list[ckey] = logging