Merge remote-tracking branch 'upstream/master' into TGUIs_Nexties

This commit is contained in:
Artur
2020-01-31 23:18:51 +01:00
17 changed files with 109 additions and 36 deletions

View File

@@ -149,9 +149,9 @@
//OPEN TURF ATMOS //OPEN TURF ATMOS
#define OPENTURF_DEFAULT_ATMOS "o2=22;n2=82;TEMP=293.15" //the default air mix that open turfs spawn #define OPENTURF_DEFAULT_ATMOS "o2=22;n2=82;TEMP=293.15" //the default air mix that open turfs spawn
#define TCOMMS_ATMOS "n2=100;TEMP=80" //-193,15°C telecommunications. also used for xenobiology slime killrooms #define TCOMMS_ATMOS "n2=100;TEMP=80" //-193,15degC telecommunications. also used for xenobiology slime killrooms
#define AIRLESS_ATMOS "TEMP=2.7" //space #define AIRLESS_ATMOS "TEMP=2.7" //space
#define FROZEN_ATMOS "o2=22;n2=82;TEMP=180" //-93.15°C snow and ice turfs #define FROZEN_ATMOS "o2=22;n2=82;TEMP=180" //-93.15degC snow and ice turfs
#define BURNMIX_ATMOS "o2=2500;plasma=5000;TEMP=370" //used in the holodeck burn test program #define BURNMIX_ATMOS "o2=2500;plasma=5000;TEMP=370" //used in the holodeck burn test program
//ATMOSPHERICS DEPARTMENT GAS TANK TURFS //ATMOSPHERICS DEPARTMENT GAS TANK TURFS

View File

@@ -312,23 +312,26 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
attack_verb = list("stubbed", "poked") attack_verb = list("stubbed", "poked")
resistance_flags = FIRE_PROOF resistance_flags = FIRE_PROOF
var/extended = 0 var/extended = 0
var/extended_force = 20
var/extended_throwforce = 23
var/extended_icon_state = "switchblade_ext"
/obj/item/switchblade/attack_self(mob/user) /obj/item/switchblade/attack_self(mob/user)
extended = !extended extended = !extended
playsound(src.loc, 'sound/weapons/batonextend.ogg', 50, 1) playsound(src.loc, 'sound/weapons/batonextend.ogg', 50, 1)
if(extended) if(extended)
force = 20 force = extended_force
w_class = WEIGHT_CLASS_NORMAL w_class = WEIGHT_CLASS_NORMAL
throwforce = 23 throwforce = extended_throwforce
icon_state = "switchblade_ext" icon_state = extended_icon_state
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
hitsound = 'sound/weapons/bladeslice.ogg' hitsound = 'sound/weapons/bladeslice.ogg'
sharpness = IS_SHARP sharpness = IS_SHARP
else else
force = 3 force = initial(force)
w_class = WEIGHT_CLASS_SMALL w_class = WEIGHT_CLASS_SMALL
throwforce = 5 throwforce = initial(throwforce)
icon_state = "switchblade" icon_state = initial(icon_state)
attack_verb = list("stubbed", "poked") attack_verb = list("stubbed", "poked")
hitsound = 'sound/weapons/genhit.ogg' hitsound = 'sound/weapons/genhit.ogg'
sharpness = IS_BLUNT sharpness = IS_BLUNT
@@ -337,6 +340,23 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
user.visible_message("<span class='suicide'>[user] is slitting [user.p_their()] own throat with [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>") user.visible_message("<span class='suicide'>[user] is slitting [user.p_their()] own throat with [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
return (BRUTELOSS) return (BRUTELOSS)
/obj/item/switchblade/crafted
icon_state = "switchblade_ms"
desc = "A concealable spring-loaded knife."
force = 2
throwforce = 3
extended_force = 15
extended_throwforce = 18
extended_icon_state = "switchblade_ext_ms"
/obj/item/switchblade/crafted/attackby(obj/item/I, mob/user, params)
. = ..()
if(istype(I, /obj/item/stack/sheet/mineral/silver))
icon_state = extended ? "switchblade_ext_msf" : "switchblade_msf"
extended_icon_state = "switchblade_ext_msf"
icon_state = "switchblade_msf"
to_chat(user, "<span class='notice'>You use part of the silver to improve your Switchblade. Stylish!</span>")
/obj/item/phone /obj/item/phone
name = "red phone" name = "red phone"
desc = "Should anything ever go wrong..." desc = "Should anything ever go wrong..."

View File

@@ -479,22 +479,10 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
be_random_name = sanitize_integer(be_random_name, 0, 1, initial(be_random_name)) be_random_name = sanitize_integer(be_random_name, 0, 1, initial(be_random_name))
be_random_body = sanitize_integer(be_random_body, 0, 1, initial(be_random_body)) be_random_body = sanitize_integer(be_random_body, 0, 1, initial(be_random_body))
if(gender == MALE) hair_style = sanitize_inlist(hair_style, GLOB.hair_styles_list)
hair_style = sanitize_inlist(hair_style, GLOB.hair_styles_male_list) facial_hair_style = sanitize_inlist(facial_hair_style, GLOB.facial_hair_styles_list)
facial_hair_style = sanitize_inlist(facial_hair_style, GLOB.facial_hair_styles_male_list) underwear = sanitize_inlist(underwear, GLOB.underwear_list)
undershirt = sanitize_inlist(undershirt, GLOB.undershirt_m) undershirt = sanitize_inlist(undershirt, GLOB.undershirt_list)
underwear = sanitize_inlist(underwear, GLOB.underwear_m)
else if(gender == FEMALE)
hair_style = sanitize_inlist(hair_style, GLOB.hair_styles_female_list)
facial_hair_style = sanitize_inlist(facial_hair_style, GLOB.facial_hair_styles_female_list)
undershirt = sanitize_inlist(undershirt, GLOB.undershirt_f)
underwear = sanitize_inlist(underwear, GLOB.underwear_f)
else
hair_style = sanitize_inlist(hair_style, GLOB.hair_styles_list)
facial_hair_style = sanitize_inlist(facial_hair_style, GLOB.facial_hair_styles_list)
underwear = sanitize_inlist(underwear, GLOB.underwear_list)
undershirt = sanitize_inlist(undershirt, GLOB.undershirt_list)
undie_color = sanitize_hexcolor(undie_color, 3, FALSE, initial(undie_color)) undie_color = sanitize_hexcolor(undie_color, 3, FALSE, initial(undie_color))
shirt_color = sanitize_hexcolor(shirt_color, 3, FALSE, initial(shirt_color)) shirt_color = sanitize_hexcolor(shirt_color, 3, FALSE, initial(shirt_color))
socks = sanitize_inlist(socks, GLOB.socks_list) socks = sanitize_inlist(socks, GLOB.socks_list)

View File

@@ -109,6 +109,18 @@
category = CAT_WEAPONRY category = CAT_WEAPONRY
subcategory = CAT_WEAPON subcategory = CAT_WEAPON
/datum/crafting_recipe/switchblade_ms
name = "Switchblade"
result = /obj/item/switchblade/crafted
reqs = list(/obj/item/weaponcrafting/stock = 1,
/obj/item/weaponcrafting/receiver = 1,
/obj/item/kitchen/knife = 1,
/obj/item/stack/cable_coil = 2)
tools = list(TOOL_WELDER)
time = 45
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
////////////////// //////////////////
///BOMB CRAFTING// ///BOMB CRAFTING//
////////////////// //////////////////

View File

@@ -200,25 +200,25 @@
message_param = "blows a kiss to %t." message_param = "blows a kiss to %t."
emote_type = EMOTE_AUDIBLE emote_type = EMOTE_AUDIBLE
/datum/emote/living/laugh /datum/emote/living/audio_emote
emote_type = EMOTE_AUDIBLE
/datum/emote/living/audio_emote/can_run_emote(mob/living/user, status_check = TRUE)
. = ..()
if(. && iscarbon(user))
var/mob/living/carbon/C = user
return !C.silent && (!C.mind || !C.mind.miming)
/datum/emote/living/audio_emote/laugh
key = "laugh" key = "laugh"
key_third_person = "laughs" key_third_person = "laughs"
message = "laughs." message = "laughs."
message_mime = "laughs silently!" message_mime = "laughs silently!"
emote_type = EMOTE_AUDIBLE
/datum/emote/living/laugh/can_run_emote(mob/living/user, status_check = TRUE) /datum/emote/living/audio_emote/laugh/run_emote(mob/user, params)
. = ..()
if(. && iscarbon(user))
var/mob/living/carbon/C = user
return !C.silent
/datum/emote/living/laugh/run_emote(mob/user, params)
. = ..() . = ..()
if(. && iscarbon(user)) //Citadel Edit because this is hilarious if(. && iscarbon(user)) //Citadel Edit because this is hilarious
var/mob/living/carbon/C = user var/mob/living/carbon/C = user
if(!C.mind || C.mind.miming)
return
if(iscatperson(C)) //we ask for is cat first because they're a subtype that tests true for ishumanbasic because HERESY if(iscatperson(C)) //we ask for is cat first because they're a subtype that tests true for ishumanbasic because HERESY
playsound(C, pick('sound/voice/catpeople/nyahaha1.ogg', playsound(C, pick('sound/voice/catpeople/nyahaha1.ogg',
'sound/voice/catpeople/nyahaha2.ogg', 'sound/voice/catpeople/nyahaha2.ogg',
@@ -226,12 +226,27 @@
'sound/voice/catpeople/nyahehe.ogg'), 'sound/voice/catpeople/nyahehe.ogg'),
50, 1) 50, 1)
return return
if(ishumanbasic(C)) else if(ismoth(C))
playsound(C, 'sound/voice/moth/mothlaugh.ogg', 50, 1)
else if(ishumanbasic(C))
if(user.gender == FEMALE) if(user.gender == FEMALE)
playsound(C, 'sound/voice/human/womanlaugh.ogg', 50, 1) playsound(C, 'sound/voice/human/womanlaugh.ogg', 50, 1)
else else
playsound(C, pick('sound/voice/human/manlaugh1.ogg', 'sound/voice/human/manlaugh2.ogg'), 50, 1) playsound(C, pick('sound/voice/human/manlaugh1.ogg', 'sound/voice/human/manlaugh2.ogg'), 50, 1)
/datum/emote/living/audio_emote/chitter
key = "chitter"
key_third_person = "chitters"
message = "chitters."
message_mime = "chitters silently!"
/datum/emote/living/audio_emote/chitter/run_emote(mob/user, params)
. = ..()
if(. && iscarbon(user)) //Citadel Edit because this is hilarious
var/mob/living/carbon/C = user
if(ismoth(C))
playsound(C, 'sound/voice/moth/mothchitter.ogg', 50, 1)
/datum/emote/living/look /datum/emote/living/look
key = "look" key = "look"
key_third_person = "looks" key_third_person = "looks"

View File

@@ -22,6 +22,11 @@
var/list/fired = list() var/list/fired = list()
var/countdown_length = 10 var/countdown_length = 10
var/countdown_step = 0 var/countdown_step = 0
var/static/next_id = 1
var/id
/datum/duel/New()
id = next_id++
/datum/duel/proc/try_begin() /datum/duel/proc/try_begin()
//Check if both guns are held and if so begin. //Check if both guns are held and if so begin.
@@ -157,6 +162,13 @@
setting_overlay = mutable_appearance(icon,setting_iconstate()) setting_overlay = mutable_appearance(icon,setting_iconstate())
add_overlay(setting_overlay) add_overlay(setting_overlay)
/obj/item/gun/energy/dueling/examine(mob/user)
. = ..()
if(duel)
. += "Its linking number is [duel.id]."
else
. += "ERROR: No linking number on gun."
/obj/item/gun/energy/dueling/proc/setting_iconstate() /obj/item/gun/energy/dueling/proc/setting_iconstate()
switch(setting) switch(setting)
if(DUEL_SETTING_A) if(DUEL_SETTING_A)
@@ -370,6 +382,8 @@
/obj/item/storage/lockbox/dueling/hugbox /obj/item/storage/lockbox/dueling/hugbox
gun_type = /obj/item/gun/energy/dueling/hugbox gun_type = /obj/item/gun/energy/dueling/hugbox
req_access = list(ACCESS_ARMORY)
/obj/item/storage/lockbox/dueling/hugbox/stamina /obj/item/storage/lockbox/dueling/hugbox/stamina
gun_type = /obj/item/gun/energy/dueling/hugbox/stamina gun_type = /obj/item/gun/energy/dueling/hugbox/stamina
req_access = null

View File

@@ -0,0 +1,4 @@
author: "ShadeAware"
delete-after: True
changes:
- rscadd: "Craftable Switchblades, a weaker subtype of normal switchblades that can be crafted using a Kitchen Knife, Modular Receiver, Rifle Stock and some Cable Coil. Requires a welder to complete."

View File

@@ -0,0 +1,4 @@
author: "kevinz000"
delete-after: True
changes:
- rscadd: "moths now have unique laughs and can *chitter."

View File

@@ -0,0 +1,4 @@
author: "kevinz000"
delete-after: True
changes:
- tweak: "dueling pistol accesses have been changed to be more accessible."

View File

@@ -0,0 +1,4 @@
author: "Ghommie"
delete-after: True
changes:
- bugfix: "Hair styles and undergarments are yet again free from gender restrictions."

View File

@@ -0,0 +1,4 @@
author: "ShadeAware"
delete-after: True
changes:
- bugfix: "You can now actually craft Switchblades."

View File

@@ -0,0 +1,4 @@
author: "Arturlang"
delete-after: True
changes:
- bugfix: "Fancifying makeshift switchblades now works"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Binary file not shown.