Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into Citadel-Station-13-master

This commit is contained in:
dzahlus
2021-02-10 16:56:55 +01:00
39 changed files with 191 additions and 28 deletions
@@ -484,6 +484,8 @@
/datum/config_entry/flag/modetier_voting
/datum/config_entry/flag/must_be_readied_to_vote_gamemode
/datum/config_entry/number/dropped_modes
config_entry_value = 3
+12
View File
@@ -68,6 +68,10 @@ SUBSYSTEM_DEF(vote)
//get the highest number of votes
var/greatest_votes = 0
var/total_votes = 0
if(mode == "gamemode" && CONFIG_GET(flag/must_be_readied_to_vote_gamemode))
for(var/mob/dead/new_player/P in GLOB.player_list)
if(P.ready != PLAYER_READY_TO_PLAY && voted[P.ckey])
choices[choices[voted[P.ckey]]]--
for(var/option in choices)
var/votes = choices[option]
total_votes += votes
@@ -101,6 +105,10 @@ SUBSYSTEM_DEF(vote)
/datum/controller/subsystem/vote/proc/calculate_condorcet_votes(var/blackbox_text)
// https://en.wikipedia.org/wiki/Schulze_method#Implementation
if((mode == "gamemode" || mode == "dynamic") && CONFIG_GET(flag/must_be_readied_to_vote_gamemode))
for(var/mob/dead/new_player/P in GLOB.player_list)
if(P.ready != PLAYER_READY_TO_PLAY && voted[P.ckey])
voted -= P.ckey
var/list/d[][] = new/list(choices.len,choices.len) // the basic vote matrix, how many times a beats b
for(var/ckey in voted)
var/list/this_vote = voted[ckey]
@@ -147,6 +155,10 @@ SUBSYSTEM_DEF(vote)
for(var/choice in choices)
scores_by_choice += "[choice]"
scores_by_choice["[choice]"] = list()
if((mode == "gamemode" || mode == "dynamic") && CONFIG_GET(flag/must_be_readied_to_vote_gamemode))
for(var/mob/dead/new_player/P in GLOB.player_list)
if(P.ready != PLAYER_READY_TO_PLAY && voted[P.ckey])
voted -= P.ckey
for(var/ckey in voted)
var/list/this_vote = voted[ckey]
var/list/pretty_vote = list()
@@ -33,6 +33,7 @@
/datum/sabotage_objective/processing/check_conditions()
return won
/*
/datum/sabotage_objective/processing/power_sink
name = "Drain at least 100 megajoules of power using a power sink."
sabotage_type = "powersink"
@@ -44,6 +45,7 @@
for(var/s in GLOB.power_sinks)
var/obj/item/powersink/sink = s
won = max(won,sink.power_drained/1e8)
*/
/obj/item/paper/guides/antag/supermatter_sabotage
info = "Ways to sabotage a supermatter:<br>\
+8 -1
View File
@@ -151,7 +151,14 @@
var/obj/machinery/power/apc/target = locate(ref) in GLOB.apcs_list
if(!target)
return
target.vars[type] = target.setsubsystem(text2num(value))
value = target.setsubsystem(text2num(value))
switch(type) // Sanity check
if("equipment", "lighting", "environ")
target.vars[type] = value
else
message_admins("Warning: possible href exploit by [key_name(usr)] - attempted to set [type] on [target] to [value]")
log_game("Warning: possible href exploit by [key_name(usr)] - attempted to set [type] on [target] to [value]")
return
target.update_icon()
target.update()
var/setTo = ""
+6 -4
View File
@@ -97,7 +97,7 @@
icon_state = "mecha_ion"
energy_drain = 120
projectile = /obj/item/projectile/ion
fire_sound = 'sound/weapons/laser.ogg'
fire_sound = 'sound/weapons/IonRifle.ogg'
/obj/item/mecha_parts/mecha_equipment/weapon/energy/tesla
equip_cooldown = 35
@@ -195,7 +195,7 @@
//Base ballistic weapon type
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic
name = "general ballistic weapon"
fire_sound = 'sound/weapons/gunshot.ogg'
fire_sound = 'sound/weapons/lmgshot.ogg'
var/projectiles
var/projectiles_cache //ammo to be loaded in, if possible.
var/projectiles_cache_max
@@ -285,6 +285,7 @@
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot
name = "\improper LBX AC 10 \"Scattershot\""
desc = "A weapon for combat exosuits. Shoots a spread of pellets."
fire_sound = 'sound/weapons/gunshotshotgunshot.ogg'
icon_state = "mecha_scatter"
equip_cooldown = 20
projectile = /obj/item/projectile/bullet/scattershot
@@ -299,6 +300,7 @@
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/seedscatter
name = "\improper Melon Seed \"Scattershot\""
desc = "A weapon for combat exosuits. Shoots a spread of pellets, shaped as seed."
fire_sound = 'sound/weapons/gunshotshotgunshot.ogg'
icon_state = "mecha_scatter"
equip_cooldown = 20
projectile = /obj/item/projectile/bullet/seed
@@ -331,7 +333,7 @@
desc = "A weapon for combat exosuits. Launches light explosive missiles."
icon_state = "mecha_missilerack"
projectile = /obj/item/projectile/bullet/a84mm_he
fire_sound = 'sound/weapons/grenadelaunch.ogg'
fire_sound = 'sound/weapons/rocketlaunch.ogg'
projectiles = 8
projectiles_cache = 0
projectiles_cache_max = 0
@@ -345,7 +347,7 @@
desc = "A weapon for combat exosuits. Launches low-explosive breaching missiles designed to explode only when striking a sturdy target."
icon_state = "mecha_missilerack_six"
projectile = /obj/item/projectile/bullet/a84mm_br
fire_sound = 'sound/weapons/grenadelaunch.ogg'
fire_sound = 'sound/weapons/rocketlaunch.ogg'
projectiles = 6
projectiles_cache = 0
projectiles_cache_max = 0
@@ -81,6 +81,7 @@
/obj/effect/decal/cleanable/trail_holder //not a child of blood on purpose
name = "blood"
icon = 'icons/effects/blood.dmi'
icon_state = "ltrails_1"
desc = "Your instincts say you shouldn't be following these."
random_icon_states = null
@@ -44,7 +44,7 @@
icon_state = "warp"
uses = -1
var/total_delay = 10 SECONDS
var/cooldown = 10 SECONDS
var/cooldown = 30 SECONDS
var/last_use = 0
var/list/positions = list()
var/next_prune = 0
+1 -1
View File
@@ -302,7 +302,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
damtype = STAMINA
attack_verb = list("whacked", "smacked", "struck")
total_mass = TOTAL_MASS_MEDIEVAL_WEAPON
hitsound = 'sound/weapons/grenadelaunch.ogg' // no good wood thunk sounds
hitsound = 'sound/weapons/woodbonk.ogg'
var/harm = FALSE // TRUE = brute, FALSE = stam
var/reinforced = FALSE
var/burnt = FALSE
+1 -1
View File
@@ -36,7 +36,7 @@
/obj/item/clothing/mask/surgical/aesthetic
name = "aesthetic sterile mask"
desc = "A sterile mask designed to help prevent the spread of diseases. This one doesn't seem like it does a whole lot, somehow."
flags_inv = HIDEFACE
flags_inv = null
flags_cover = null
visor_flags_inv = null
visor_flags_cover = null
@@ -487,6 +487,13 @@
item_state = "militaryjacket"
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/radio)
/obj/item/clothing/suit/jacket/urbanjacket
name = "urban jacket"
desc = "A canvas jacket styled with a fur neck piece, stylish."
icon_state = "urbanjacket"
item_state = "urbanjacket"
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/radio)
/obj/item/clothing/suit/jacket/letterman
name = "letterman jacket"
desc = "A classic brown letterman jacket. Looks pretty hot and heavy."
+6
View File
@@ -91,6 +91,12 @@
icon_state = "tan_suit"
item_state = "tan_suit"
/obj/item/clothing/under/suit/charismatic_suit
name = "charismatic suit"
desc = "Luck is for losers, baby."
icon_state = "charismatic_suit"
item_state = "charismatic_suit"
/obj/item/clothing/under/suit/white
name = "white suit"
desc = "A white suit and jacket with a blue shirt. You wanna play rough? OKAY!"
@@ -281,11 +281,13 @@
dropItemToGround(pocket_item)
if(!usr.can_hold_items() || !usr.put_in_hands(pocket_item))
pocket_item.forceMove(drop_location())
log_combat(usr, src, "pickpocketed of item: [pocket_item]")
else
if(place_item)
if(place_item.mob_can_equip(src, usr, pocket_id, FALSE, TRUE))
usr.temporarilyRemoveItemFromInventory(place_item, TRUE)
equip_to_slot(place_item, pocket_id, TRUE)
log_combat(usr, src, "placed item [place_item] onto")
//do nothing otherwise
// Update strip window
@@ -293,8 +295,9 @@
show_inv(usr)
else
// Display a warning if the user mocks up
if (!strip_silence)
if(!strip_silence)
to_chat(src, "<span class='warning'>You feel your [pocket_side] pocket being fumbled with!</span>")
log_combat(usr, src, "failed to [pocket_item ? "pickpocket item [pocket_item] from" : "place item [place_item] onto "]")
if(usr.canUseTopic(src, BE_CLOSE, NO_DEXTERY, null, FALSE))
// separate from first canusetopic
+1 -1
View File
@@ -866,7 +866,7 @@
if(istype(G))
strip_mod = G.strip_mod
strip_silence = G.strip_silence
if (!strip_silence)
if(!strip_silence)
who.visible_message("<span class='danger'>[src] tries to remove [who]'s [what.name].</span>", \
"<span class='userdanger'>[src] tries to remove your [what.name].</span>", target = src,
target_message = "<span class='danger'>You try to remove [who]'s [what.name].</span>")
@@ -35,7 +35,7 @@
name = "gyrojet pistol"
desc = "A prototype pistol designed to fire self propelled rockets."
icon_state = "gyropistol"
fire_sound = 'sound/weapons/grenadelaunch.ogg'
fire_sound = 'sound/weapons/rocketlaunch.ogg'
mag_type = /obj/item/ammo_box/magazine/m75
burst_size = 1
fire_delay = 0
+4
View File
@@ -31,7 +31,10 @@
/obj/item/clothing/under/suit/burgundy = 3,
/obj/item/clothing/under/suit/charcoal = 3,
/obj/item/clothing/under/suit/white = 3,
/obj/item/clothing/under/suit/tan = 3,
/obj/item/clothing/under/suit/charismatic_suit = 3,
/obj/item/clothing/under/costume/kilt = 3,
/obj/item/clothing/suit/suspenders = 3,
/obj/item/clothing/under/misc/overalls = 3,
/obj/item/clothing/under/suit/sl = 3,
/obj/item/clothing/accessory/sweater = 3,
@@ -70,6 +73,7 @@
/obj/item/clothing/accessory/suitjacket/burgundy = 2,
/obj/item/clothing/accessory/suitjacket/checkered = 2,
/obj/item/clothing/suit/jacket/miljacket = 5,
/obj/item/clothing/suit/jacket/urbanjacket = 5,
/obj/item/clothing/under/suit/white_on_white/skirt = 2,
/obj/item/clothing/under/rank/captain/suit/skirt = 2,
/obj/item/clothing/under/rank/civilian/head_of_personnel/suit/skirt = 2,
+1
View File
@@ -207,6 +207,7 @@
product_ads = "You turn me TRUE, use defines!;0110001101101100011011110111010001101000011001010111001101101000011001010111001001100101"
vend_reply = "Thank you for using the RoboDrobe!"
products = list(/obj/item/clothing/glasses/hud/diagnostic = 3,
/obj/item/stack/medical/nanogel = 5,
/obj/item/clothing/head/beret/robo = 3,
/obj/item/clothing/under/rank/rnd/roboticist = 3,
/obj/item/clothing/under/rank/rnd/roboticist/sleek = 3,
+55
View File
@@ -68,6 +68,61 @@
<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="rscadd">Adds clown waddle to clown shoes. Enhanced Clown Waddle Dampeners can be engaged in-hand with ctrl+click, _but why would you?_</li>
</ul>
<h3 class="author">MrJWhit updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Re-adds theater disposal outlet, and makes dorms disposal able to have things sent to it on boxstation.</li>
</ul>
<h3 class="author">TyrianTyrell updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">made default tongue able to speak signed language.</li>
</ul>
<h3 class="author">timothyteakettle updated:</h3>
<ul class="changes bgimages16">
<li class="balance">sentient viruses can now infect synths and ipcs</li>
</ul>
<h2 class="date">03 February 2021</h2>
<h3 class="author">Hatterhat updated:</h3>
<ul class="changes bgimages16">
@@ -0,0 +1,4 @@
author: "DeltaFire15"
delete-after: True
changes:
- tweak: "Added nanogel to the robodrobe."
@@ -0,0 +1,4 @@
author: "zeroisthebiggay"
delete-after: True
changes:
- tweak: "the aesthetic sterile mask no longer hides faces so you can cosplay egirls and keep flavortexts"
@@ -0,0 +1,4 @@
author: "keronshb"
delete-after: True
changes:
- rscdel: "Comments out power sink objective."
@@ -0,0 +1,4 @@
author: "keronshb"
delete-after: True
changes:
- balance: "10 > 30 second for Warp Implant cooldown"
@@ -0,0 +1,4 @@
author: "dzahlus"
delete-after: True
changes:
- bugfix: "fixes grenadelaunch.ogg being used where it shouldn't and makes mech weapons use correct sound"
@@ -0,0 +1,4 @@
author: "timothyteakettle"
delete-after: True
changes:
- admin: "pickpocketing is now logged using log_combat"
@@ -0,0 +1,5 @@
author: "Adelphon"
delete-after: True
changes:
- rscadd: "Charismatic Suit"
- rscadd: "Urban Jacket"
@@ -0,0 +1,4 @@
author: "Putnam3145"
delete-after: True
changes:
- rscadd: "Config to keep unreadied players from mode voting"
@@ -0,0 +1,4 @@
author: "timothyteakettle"
delete-after: True
changes:
- bugfix: "persistent blood should stop being invisible and alt clicking it shouldn't return the entire spritesheet"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 444 KiB

After

Width:  |  Height:  |  Size: 460 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 454 KiB

After

Width:  |  Height:  |  Size: 455 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

@@ -537,4 +537,9 @@
path = /obj/item/clothing/suit/custom/exo
ckeywhitelist = list("jesterz7")
/datum/gear/donator/choker
name = "NT Choker"
slot = SLOT_NECK
path = /obj/item/clothing/neck/petcollar/choker
ckeywhitelist = list("trigillass")
@@ -159,6 +159,11 @@
path = /obj/item/clothing/suit/jacket/miljacket
subcategory = LOADOUT_SUBCATEGORY_SUIT_JACKETS
/datum/gear/suit/urbanjacket
name = "Urban Jacket"
path = /obj/item/clothing/suit/jacket/urbanjacket
subcategory = LOADOUT_SUBCATEGORY_SUIT_JACKETS
/datum/gear/suit/ianshirt
name = "Ian Shirt"
path = /obj/item/clothing/suit/ianshirt
@@ -32,6 +32,10 @@
name = "Tan suit"
path = /obj/item/clothing/under/suit/tan
/datum/gear/uniform/suit/charismatic_suit
name = "Charismatic suit"
path = /obj/item/clothing/under/suit/charismatic_suit
/datum/gear/uniform/suit/white
name = "White suit"
path = /obj/item/clothing/under/suit/white
@@ -585,3 +585,12 @@
icon = 'icons/obj/custom.dmi'
mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi'
mutantrace_variation = NONE
/obj/item/clothing/neck/petcollar/choker
name = "NT Choker"
desc = "NT property since January 21st, 2562."
icon = 'icons/obj/custom.dmi'
icon_state = "choker"
mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi'
item_state = "choker"
tagname = null
@@ -85,23 +85,20 @@
///projectiles///
/obj/item/projectile/bullet/cflechetteap //shreds armor
/obj/item/projectile/bullet/cflechetteap //shreds armor but no wounds
name = "flechette (armor piercing)"
damage = 8
armour_penetration = 80
damage = 15
armour_penetration = 100
wound_bonus = -100
/obj/item/projectile/bullet/cflechettes //shreds flesh and forces bleeding
/obj/item/projectile/bullet/cflechettes //causes wounds fast but is heavily countered by armor
name = "flechette (serrated)"
damage = 15
dismemberment = 10
armour_penetration = -80
/obj/item/projectile/bullet/cflechettes/on_hit(atom/target, blocked = FALSE)
if((blocked != 100) && iscarbon(target))
var/mob/living/carbon/C = target
C.bleed(10)
return ..()
wound_bonus = 15
sharpness = SHARP_EDGED
wound_falloff_tile = 0
///ammo casings (CASELESS AMMO CASINGS WOOOOOOOO)///
/obj/item/ammo_casing/caseless/flechetteap
@@ -168,15 +165,19 @@
///unique variant///
/obj/item/projectile/bullet/cflechetteshredder
/obj/item/projectile/bullet/cflechetteshredder //you only get this with a 30TC bundle,5 magazines, as such this should be the superior ammotype
name = "flechette (shredder)"
damage = 5
dismemberment = 40
damage = 10
dismemberment = 50
wound_bonus = 50
armour_penetration = 100
sharpness = SHARP_EDGED
wound_falloff_tile = 0
/obj/item/ammo_casing/caseless/flechetteshredder
name = "flechette (shredder)"
desc = "A serrated flechette made of a special alloy that forms a monofilament edge."
projectile_type = /obj/item/projectile/bullet/cflechettes
projectile_type = /obj/item/projectile/bullet/cflechetteshredder
/obj/item/ammo_box/magazine/flechette/shredder
name = "flechette magazine (shredder)"
@@ -185,7 +186,7 @@
/obj/item/gun/ballistic/automatic/flechette/shredder
name = "\improper CX Shredder"
desc = "A flechette launching machine pistol made of ultra-light CFRP optimized for firing serrated monofillament flechettes."
desc = "A flechette launching machine pistol made of ultra-light CFRP optimized for firing serrated monofilament flechettes."
w_class = WEIGHT_CLASS_SMALL
spread = 15
recoil = 0.1
Binary file not shown.