Merge remote-tracking branch 'Upstream/master'

This commit is contained in:
The0bserver
2021-02-16 09:34:47 -05:00
24 changed files with 273 additions and 93 deletions
+2 -2
View File
@@ -204,7 +204,7 @@
///Compile all the overlays for an atom from the cache lists
// |= on overlays is not actually guaranteed to not add same appearances but we're optimistically using it anyway.
#define COMPILE_OVERLAYS(A)\
if (TRUE) {\
do {\
var/list/ad = A.add_overlays;\
var/list/rm = A.remove_overlays;\
if(LAZYLEN(rm)){\
@@ -216,7 +216,7 @@
ad.Cut();\
}\
A.flags_1 &= ~OVERLAY_QUEUED_1;\
}
} while(FALSE)
/**
+29 -1
View File
@@ -66,7 +66,7 @@
} while(FALSE)
//Returns a list in plain english as a string
/proc/english_list(list/input, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "" )
/proc/english_list(list/input, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "")
var/total = length(input)
switch(total)
if (0)
@@ -87,6 +87,34 @@
return "[output][and_text][input[index]]"
/**
* English_list but associative supporting. Higher overhead.
*/
/proc/english_list_assoc(list/input, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "")
var/total = length(input)
switch(total)
if (0)
return "[nothing_text]"
if (1)
var/assoc = input[input[1]] == null? "" : " = [input[input[1]]]"
return "[input[1]][assoc]"
if (2)
var/assoc = input[input[1]] == null? "" : " = [input[input[1]]]"
var/assoc2 = input[input[2]] == null? "" : " = [input[input[2]]]"
return "[input[1]][assoc][and_text][input[2]][assoc2]"
else
var/output = ""
var/index = 1
var/assoc
while (index < total)
if (index == total - 1)
comma_text = final_comma_text
assoc = input[input[index]] == null? "" : " = [input[input[index]]]"
output += "[input[index]][assoc][comma_text]"
++index
assoc = input[input[index]] == null? "" : " = [input[input[index]]]"
return "[output][and_text][input[index]]"
//Returns list element or null. Should prevent "index out of bounds" error.
/proc/listgetindex(list/L, index)
if(LAZYLEN(L))
+46 -21
View File
@@ -118,27 +118,7 @@
action_intent.hud = src
static_inventory += action_intent
using = new /obj/screen/mov_intent
using.icon = tg_ui_icon_to_cit_ui(ui_style) // CIT CHANGE - overrides mov intent icon
using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking")
using.screen_loc = ui_movi
using.hud = src
static_inventory += using
//CITADEL CHANGES - sprint button
using = new /obj/screen/sprintbutton
using.icon = tg_ui_icon_to_cit_ui(ui_style)
using.icon_state = ((owner.combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) ? "act_sprint_on" : "act_sprint")
using.screen_loc = ui_movi
using.hud = src
static_inventory += using
//END OF CITADEL CHANGES
//same as above but buffer.
sprint_buffer = new /obj/screen/sprint_buffer
sprint_buffer.screen_loc = ui_sprintbufferloc
sprint_buffer.hud = src
static_inventory += sprint_buffer
assert_move_intent_ui(owner, TRUE)
// clickdelay
clickdelay = new
@@ -393,6 +373,51 @@
update_locked_slots()
/datum/hud/human/proc/assert_move_intent_ui(mob/living/carbon/human/owner = mymob, on_new = FALSE)
var/obj/screen/using
// delete old ones
var/list/obj/screen/victims = list()
victims += locate(/obj/screen/mov_intent) in static_inventory
victims += locate(/obj/screen/sprintbutton) in static_inventory
victims += locate(/obj/screen/sprint_buffer) in static_inventory
if(victims)
static_inventory -= victims
if(mymob?.client)
mymob.client.screen -= victims
QDEL_LIST(victims)
// make new ones
// walk/run
using = new /obj/screen/mov_intent
using.icon = tg_ui_icon_to_cit_ui(ui_style) // CIT CHANGE - overrides mov intent icon
using.screen_loc = ui_movi
using.hud = src
using.update_icon()
static_inventory += using
if(!on_new)
owner?.client?.screen += using
if(!CONFIG_GET(flag/sprint_enabled))
return
// sprint button
using = new /obj/screen/sprintbutton
using.icon = tg_ui_icon_to_cit_ui(ui_style)
using.icon_state = ((owner.combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) ? "act_sprint_on" : "act_sprint")
using.screen_loc = ui_movi
using.hud = src
static_inventory += using
if(!on_new)
owner?.client?.screen += using
// same as above but buffer.
sprint_buffer = new /obj/screen/sprint_buffer
sprint_buffer.screen_loc = ui_sprintbufferloc
sprint_buffer.hud = src
static_inventory += sprint_buffer
if(!on_new)
owner?.client?.screen += using
/datum/hud/human/update_locked_slots()
if(!mymob)
return
+5 -1
View File
@@ -351,6 +351,10 @@
icon = 'icons/mob/screen_midnight.dmi'
icon_state = "running"
/obj/screen/mov_intent/Initialize(mapload)
. = ..()
update_icon()
/obj/screen/mov_intent/Click()
toggle(usr)
@@ -359,7 +363,7 @@
if(MOVE_INTENT_WALK)
icon_state = "walking"
if(MOVE_INTENT_RUN)
icon_state = "running"
icon_state = CONFIG_GET(flag/sprint_enabled)? "running" : "running_nosprint"
/obj/screen/mov_intent/proc/toggle(mob/user)
if(isobserver(user))
@@ -290,6 +290,17 @@
var/datum/movespeed_modifier/config_walk_run/M = get_cached_movespeed_modifier(/datum/movespeed_modifier/config_walk_run/walk)
M.sync()
/datum/config_entry/flag/sprint_enabled
config_entry_value = TRUE
/datum/config_entry/flag/sprint_enabled/ValidateAndSet(str_val)
. = ..()
for(var/datum/hud/human/H)
H.assert_move_intent_ui()
if(!config_entry_value) // disabled
for(var/mob/living/L in world)
L.disable_intentional_sprint_mode()
/datum/config_entry/number/movedelay/sprint_speed_increase
config_entry_value = 1
+2
View File
@@ -264,6 +264,8 @@ What a mess.*/
active1 = null
if(!( GLOB.data_core.security.Find(active2) ))
active2 = null
if(!authenticated && href_list["choice"] != "Log In") // logging in is the only action you can do if not logged in
return
if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || hasSiliconAccessInArea(usr) || IsAdminGhost(usr))
usr.set_machine(src)
switch(href_list["choice"])
+2 -1
View File
@@ -527,12 +527,13 @@
else if(istype(O, /obj/item/seeds) && !istype(O, /obj/item/seeds/sample))
if(!myseed)
if(istype(O, /obj/item/seeds/kudzu))
investigate_log("had Kudzu planted in it by [key_name(user)] at [AREACOORD(src)]","kudzu")
investigate_log("had Kudzu planted in it by [key_name(user)] at [AREACOORD(src)]", INVESTIGATE_BOTANY)
if(!user.transferItemToLoc(O, src))
return
to_chat(user, "<span class='notice'>You plant [O].</span>")
dead = FALSE
myseed = O
investigate_log("planting: [user] planted [O] with traits [english_list(myseed)] and reagents [english_list_assoc(myseed.reagents_add)] and potency [myseed.potency]", INVESTIGATE_BOTANY)
TRAY_NAME_UPDATE
age = 1
plant_health = myseed.endurance
+2
View File
@@ -188,6 +188,8 @@
///The Number of products produced by the plant, typically the yield.
var/product_count = getYield()
parent.investigate_log("manual harvest by [key_name(user)] of [getYield()] of [src], with seed traits [english_list(genes)] and reagents_add [english_list_assoc(reagents_add)] and potency [potency].", INVESTIGATE_BOTANY)
while(t_amount < product_count)
var/obj/item/reagent_containers/food/snacks/grown/t_prod
if(instability >= 30 && (seed_flags & MUTATE_EARLY) && LAZYLEN(mutatelist) && prob(instability/3))
+50 -2
View File
@@ -128,10 +128,58 @@
if(dbflags & DB_FLAG_AGE_CONFIRMATION_INCOMPLETE) //they have not completed age gate
var/age_verification = age_gate()
if(age_verification != 1)
client.add_system_note("Automated-Age-Gate", "Failed automatic age gate process")
client.add_system_note("Automated-Age-Gate", "Failed automatic age gate process.")
//ban them and kick them
AddBan(client.ckey, client.computer_id, "SYSTEM BAN - Inputted date during join verification was under 18 years of age. Contact administration on discord for verification.", "SYSTEM", FALSE, null, client.address)
//parameters used by sql line, easier to read:
var/bantype_str = "ADMIN_PERMABAN"
var/reason = "SYSTEM BAN - Inputted date during join verification was under 18 years of age. Contact administration on discord for verification."
var/duration = -1
var/sql_ckey = sanitizeSQL(client.ckey)
var/computerid = client.computer_id
if(!computerid)
computerid = "0"
var/sql_computerid = sanitizeSQL(computerid)
var/ip = client.address
if(!ip)
ip = "0.0.0.0"
var/sql_ip = sanitizeSQL(ip)
//parameter not used as there's no job but i want to fill out all parameters for the insert line
var/sql_job
// these are typically the banning admin's, but it's the system so we leave them null, but they're still here for the sake of a full set of values
var/sql_a_ckey
var/sql_a_computerid
var/sql_a_ip
// record all admins and non-admins online at the time
var/who
for(var/client/C in GLOB.clients)
if(!who)
who = "[C]"
else
who += ", [C]"
var/adminwho
for(var/client/C in GLOB.admins)
if(!adminwho)
adminwho = "[C]"
else
adminwho += ", [C]"
var/sql = "INSERT INTO [format_table_name("ban")] (`bantime`,`server_ip`,`server_port`,`round_id`,`bantype`,`reason`,`job`,`duration`,`expiration_time`,`ckey`,`computerid`,`ip`,`a_ckey`,`a_computerid`,`a_ip`,`who`,`adminwho`) VALUES (Now(), INET_ATON(IF('[world.internet_address]' LIKE '', '0', '[world.internet_address]')), '[world.port]', '[GLOB.round_id]', '[bantype_str]', '[reason]', '[sql_job]', [(duration)?"[duration]":"0"], Now() + INTERVAL [(duration>0) ? duration : 0] MINUTE, '[sql_ckey]', '[sql_computerid]', INET_ATON('[sql_ip]'), '[sql_a_ckey]', '[sql_a_computerid]', INET_ATON('[sql_a_ip]'), '[who]', '[adminwho]')"
var/datum/DBQuery/query_add_ban = SSdbcore.NewQuery(sql)
qdel(query_add_ban)
// announce this
message_admins("[html_encode(client.ckey)] has been banned for failing the automatic age gate.")
send2irc("[html_encode(client.ckey)] has been banned for failing the automatic age gate.")
// removing the client disconnects them
qdel(client)
return FALSE
else
//they claim to be of age, so allow them to continue and update their flags
+4
View File
@@ -26,6 +26,8 @@
update_sprint_icon()
/mob/living/proc/enable_sprint_mode(update_icon = TRUE)
if(!CONFIG_GET(flag/sprint_enabled))
return
if(combat_flags & COMBAT_FLAG_SPRINT_ACTIVE)
return
ENABLE_BITFIELD(combat_flags, COMBAT_FLAG_SPRINT_ACTIVE)
@@ -61,6 +63,8 @@
update_sprint_icon()
/mob/living/proc/user_toggle_intentional_sprint_mode()
if(!CONFIG_GET(flag/sprint_enabled))
return
var/old = (combat_flags & COMBAT_FLAG_SPRINT_TOGGLED)
if(old)
if(combat_flags & COMBAT_FLAG_SPRINT_FORCED)
@@ -1,4 +1,7 @@
/mob/living/silicon/robot/default_toggle_sprint(shutdown = FALSE)
if(!CONFIG_GET(flag/sprint_enabled))
disable_intentional_sprint_mode()
return
var/current = (combat_flags & COMBAT_FLAG_SPRINT_ACTIVE)
if(current || shutdown || !cell || (cell.charge < 25) || !cansprint)
disable_intentional_sprint_mode()
+92 -33
View File
@@ -50,6 +50,40 @@
-->
<div class="commit sansserif">
<h2 class="date">16 February 2021</h2>
<h3 class="author">silicons updated:</h3>
<ul class="changes bgimages16">
<li class="config">sprint removal entry added, UI will revert to old UI while this is active.</li>
</ul>
<h2 class="date">15 February 2021</h2>
<h3 class="author">Adelphon updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">polychromatic shoes</li>
<li class="rscadd">polychromatic windbreaker</li>
<li class="rscadd">polychromatic canvas cloak</li>
<li class="bugfix">digitigrade charismatic suit texture</li>
</ul>
<h3 class="author">DeltaFire15 updated:</h3>
<ul class="changes bgimages16">
<li class="balance">Kneecapped pugilist parries somewhat.</li>
<li class="balance">Slightly nerfed default unarmed parries.</li>
<li class="balance">Slightly nerfed traitor armwrap parries.</li>
<li class="bugfix">Pugilist parries now cannot perfectly defend against projectiles, as they were supposed to.</li>
<li class="bugfix">Some parrying numbers that one would think were in seconds didn't have the SECONDS. I added those.</li>
<li class="balance">Clock cultists now yell alot less when invoking scripture.</li>
</ul>
<h3 class="author">dzahlus updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Added new emote</li>
<li class="soundadd">added a new emote sound</li>
</ul>
<h3 class="author">silicons updated:</h3>
<ul class="changes bgimages16">
<li class="balance">people on the ground hit less hard in unarmed combat. rng miss remove from punches.</li>
<li class="bugfix">chat highlighting no longer drops half your entered words.</li>
</ul>
<h2 class="date">14 February 2021</h2>
<h3 class="author">DeltaFire15 updated:</h3>
<ul class="changes bgimages16">
@@ -126,39 +160,6 @@
<li class="tweak">the aesthetic sterile mask no longer hides faces so you can cosplay egirls and keep flavortexts</li>
</ul>
<h2 class="date">09 February 2021</h2>
<h3 class="author">Chiirno updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Charismatic Suit</li>
<li class="rscadd">Urban Jacket</li>
</ul>
<h3 class="author">DeltaFire15 updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Added nanogel to the robodrobe.</li>
</ul>
<h3 class="author">Putnam3145 updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Config to keep unreadied players from mode voting</li>
</ul>
<h3 class="author">dzahlus updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">fixes grenadelaunch.ogg being used where it shouldn't and makes mech weapons use correct sound</li>
</ul>
<h3 class="author">keronshb updated:</h3>
<ul class="changes bgimages16">
<li class="balance">10 > 30 second for Warp Implant cooldown</li>
<li class="rscdel">Comments out power sink objective.</li>
</ul>
<h3 class="author">timothyteakettle updated:</h3>
<ul class="changes bgimages16">
<li class="admin">pickpocketing is now logged using log_combat</li>
<li class="bugfix">persistent blood should stop being invisible and alt clicking it shouldn't return the entire spritesheet</li>
</ul>
<h3 class="author">zeroisthebiggay updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">the aesthetic sterile mask no longer hides faces so you can cosplay egirls and keep flavortexts</li>
</ul>
<h2 class="date">09 February 2021</h2>
<h3 class="author">Chiirno updated:</h3>
<ul class="changes bgimages16">
@@ -177,6 +178,64 @@
<li class="balance">sentient viruses can now infect synths and ipcs</li>
</ul>
<h2 class="date">07 February 2021</h2>
<h3 class="author">Thalpy updated:</h3>
<ul class="changes bgimages16">
<li class="refactor">Dispenser: Adds the ability to store a small amount of reagents in the machine itself for dispensing. Reacting recipies cannot be stored. Size of storage increases with bin size.</li>
<li class="refactor">Dispenser: Allows reagents to be color coded by pH</li>
<li class="refactor">Dispenser: Each reagent displays it's pH on hover</li>
<li class="refactor">Dispenser: Allows the user to toggle between buttons and a radial dial</li>
<li class="refactor">Dispenser: When the dispencer is upgraded it can dispense 5/3/2/1 volumes based on rating refactor: Dispenser: as it was before. This does not break recorded recipes.</li>
<li class="tweak">Adds a round function to some numbers so they're not huge</li>
<li class="tweak">The Chem master can now get purity for all reagents when analysed</li>
<li class="bugfix">Synthissue fixes</li>
<li class="tweak">buffers now have a strong and weak variant. Weak can be dispensed, and strong can be created. Strong buffers are 6x more effective.</li>
<li class="bugfix">Some buffer pH edge calculation fixes</li>
</ul>
<h3 class="author">TyrianTyrell updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">added a signed language, that can't be used over the radio but can be used if you're mute. also added the multilingual trait.</li>
<li class="imageadd">hopefully added an icon for the signed language.</li>
<li class="code_imp">changed how some traits function slightly.</li>
</ul>
<h3 class="author">dzahlus updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">tweaked a few sounds</li>
<li class="soundadd">added a new weapon sounds</li>
<li class="sounddel">removed old weapon sounds</li>
<li class="code_imp">changed some sound related code</li>
</ul>
<h3 class="author">silicons updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">syndicate ablative armwraps have been added.</li>
</ul>
<h2 class="date">05 February 2021</h2>
<h3 class="author">SmArtKar updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">The orbit menu now has an Auto-Observe button! No more sifting through the lame observe menu to snoop in people's backpacks! Also, orbit menu now refreshes.</li>
<li class="bugfix">KAs are no longer getting broken when fired by a circuit</li>
</ul>
<h3 class="author">keronshb updated:</h3>
<ul class="changes bgimages16">
<li class="balance">Force and damage > 15 from 18/25</li>
<li class="balance">Knockdown put down to 5 from 30</li>
<li class="balance">Armor pen down to 10 from 100.</li>
<li class="balance">Makes cell chargers, charge faster.</li>
</ul>
<h3 class="author">raspy-on-osu updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">alien royals can no longer ventcrawl</li>
</ul>
<h3 class="author">shellspeed1 updated:</h3>
<ul class="changes bgimages16">
<li class="balance">There actually needs to be people for zombies to happen now.</li>
</ul>
<h3 class="author">timothyteakettle updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">dwarf facial hair is no longer randomised</li>
</ul>
<h2 class="date">03 February 2021</h2>
<h3 class="author">Hatterhat updated:</h3>
<ul class="changes bgimages16">
+25
View File
@@ -28476,3 +28476,28 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
TyrianTyrell:
- code_imp: added a define for multilingual granted languages, and changed the multilingual
trait to use it.
2021-02-15:
Adelphon:
- rscadd: polychromatic shoes
- rscadd: polychromatic windbreaker
- rscadd: polychromatic canvas cloak
- bugfix: digitigrade charismatic suit texture
DeltaFire15:
- balance: Kneecapped pugilist parries somewhat.
- balance: Slightly nerfed default unarmed parries.
- balance: Slightly nerfed traitor armwrap parries.
- bugfix: Pugilist parries now cannot perfectly defend against projectiles, as they
were supposed to.
- bugfix: Some parrying numbers that one would think were in seconds didn't have
the SECONDS. I added those.
- balance: Clock cultists now yell alot less when invoking scripture.
dzahlus:
- rscadd: Added new emote
- soundadd: added a new emote sound
silicons:
- balance: people on the ground hit less hard in unarmed combat. rng miss remove
from punches.
- bugfix: chat highlighting no longer drops half your entered words.
2021-02-16:
silicons:
- config: sprint removal entry added, UI will revert to old UI while this is active.
@@ -1,4 +0,0 @@
author: "silicons"
delete-after: True
changes:
- balance: "people on the ground hit less hard in unarmed combat. rng miss remove from punches."
@@ -1,4 +0,0 @@
author: "silicons"
delete-after: True
changes:
- bugfix: "chat highlighting no longer drops half your entered words."
@@ -1,5 +0,0 @@
author: "dzahlus"
delete-after: True
changes:
- rscadd: "Added new emote"
- soundadd: "added a new emote sound"
@@ -1,4 +0,0 @@
author: "DeltaFire15"
delete-after: True
changes:
- balance: "Clock cultists now yell alot less when invoking scripture."
@@ -1,7 +0,0 @@
author: "Adelphon"
delete-after: True
changes:
- rscadd: "polychromatic shoes"
- rscadd: "polychromatic windbreaker"
- rscadd: "polychromatic canvas cloak"
- bugfix: "digitigrade charismatic suit texture"
@@ -1,8 +0,0 @@
author: "DeltaFire15"
delete-after: True
changes:
- balance: "Kneecapped pugilist parries somewhat."
- balance: "Slightly nerfed default unarmed parries."
- balance: "Slightly nerfed traitor armwrap parries."
- bugfix: "Pugilist parries now cannot perfectly defend against projectiles, as they were supposed to."
- bugfix: "Some parrying numbers that one would think were in seconds didn't have the SECONDS. I added those."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB