From 422373e649511c9c4f4e90f68cb4018c0b5870ec Mon Sep 17 00:00:00 2001 From: Robustin Date: Sat, 16 Sep 2017 12:37:16 -0400 Subject: [PATCH 1/8] Dice will now roll when thrown --- code/game/objects/items/dice.dm | 195 ++++++++++++++++++++++++++++++++ 1 file changed, 195 insertions(+) diff --git a/code/game/objects/items/dice.dm b/code/game/objects/items/dice.dm index 771d322c34..15ecbf768a 100644 --- a/code/game/objects/items/dice.dm +++ b/code/game/objects/items/dice.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD /obj/item/storage/pill_bottle/dice name = "bag of dice" desc = "Contains all the luck you'll ever need." @@ -191,3 +192,197 @@ if(can_be_rigged) rigged = result ..(M) +======= +/obj/item/storage/pill_bottle/dice + name = "bag of dice" + desc = "Contains all the luck you'll ever need." + icon = 'icons/obj/dice.dmi' + icon_state = "dicebag" + +/obj/item/storage/pill_bottle/dice/New() + ..() + var/special_die = pick("1","2","fudge","space","00","8bd20","4dd6","100") + if(special_die == "1") + new /obj/item/dice/d1(src) + if(special_die == "2") + new /obj/item/dice/d2(src) + new /obj/item/dice/d4(src) + new /obj/item/dice/d6(src) + if(special_die == "fudge") + new /obj/item/dice/fudge(src) + if(special_die == "space") + new /obj/item/dice/d6/space(src) + new /obj/item/dice/d8(src) + new /obj/item/dice/d10(src) + if(special_die == "00") + new /obj/item/dice/d00(src) + new /obj/item/dice/d12(src) + new /obj/item/dice/d20(src) + if(special_die == "8bd20") + new /obj/item/dice/eightbd20(src) + if(special_die == "4dd6") + new /obj/item/dice/fourdd6(src) + if(special_die == "100") + new /obj/item/dice/d100(src) + +/obj/item/dice //depreciated d6, use /obj/item/dice/d6 if you actually want a d6 + name = "die" + desc = "A die with six sides. Basic and servicable." + icon = 'icons/obj/dice.dmi' + icon_state = "d6" + w_class = WEIGHT_CLASS_TINY + var/sides = 6 + var/result = null + var/list/special_faces = list() //entries should match up to sides var if used + var/can_be_rigged = TRUE + var/rigged = FALSE + +/obj/item/dice/New() + result = rand(1, sides) + update_icon() + ..() + +/obj/item/dice/d1 + name = "d1" + desc = "A die with one side. Deterministic!" + icon_state = "d1" + sides = 1 + +/obj/item/dice/d2 + name = "d2" + desc = "A die with two sides. Coins are undignified!" + icon_state = "d2" + sides = 2 + +/obj/item/dice/d4 + name = "d4" + desc = "A die with four sides. The nerd's caltrop." + icon_state = "d4" + sides = 4 + +/obj/item/dice/d6 + name = "d6" + +/obj/item/dice/d6/space + name = "space cube" + desc = "A die with six sides. 6 TIMES 255 TIMES 255 TILE TOTAL EXISTENCE, SQUARE YOUR MIND OF EDUCATED STUPID: 2 DOES NOT EXIST." + icon_state = "spaced6" + +/obj/item/dice/d6/space/New() + ..() + if(prob(10)) + name = "spess cube" + +/obj/item/dice/fudge + name = "fudge die" + desc = "A die with six sides but only three results. Is this a plus or a minus? Your mind is drawing a blank..." + sides = 3 //shhh + icon_state = "fudge" + special_faces = list("minus","blank","plus") + +/obj/item/dice/d8 + name = "d8" + desc = "A die with eight sides. It feels... lucky." + icon_state = "d8" + sides = 8 + +/obj/item/dice/d10 + name = "d10" + desc = "A die with ten sides. Useful for percentages." + icon_state = "d10" + sides = 10 + +/obj/item/dice/d00 + name = "d00" + desc = "A die with ten sides. Works better for d100 rolls than a golfball." + icon_state = "d00" + sides = 10 + +/obj/item/dice/d12 + name = "d12" + desc = "A die with twelve sides. There's an air of neglect about it." + icon_state = "d12" + sides = 12 + +/obj/item/dice/d20 + name = "d20" + desc = "A die with twenty sides. The prefered die to throw at the GM." + icon_state = "d20" + sides = 20 + +/obj/item/dice/d100 + name = "d100" + desc = "A die with one hundred sides! Probably not fairly weighted..." + icon_state = "d100" + sides = 100 + +/obj/item/dice/d100/update_icon() + return + +/obj/item/dice/eightbd20 + name = "strange d20" + desc = "A weird die with raised text printed on the faces. Everything's white on white so reading it is a struggle. What poor design!" + icon_state = "8bd20" + sides = 20 + special_faces = list("It is certain","It is decidedly so","Without a doubt","Yes, definitely","You may rely on it","As I see it, yes","Most likely","Outlook good","Yes","Signs point to yes","Reply hazy try again","Ask again later","Better not tell you now","Cannot predict now","Concentrate and ask again","Don't count on it","My reply is no","My sources say no","Outlook not so good","Very doubtful") + +/obj/item/dice/eightbd20/update_icon() + return + +/obj/item/dice/fourdd6 + name = "4d d6" + desc = "A die that exists in four dimensional space. Properly interpreting them can only be properly done with the help of a mathematician, a physicist, and a priest." + icon_state = "4dd6" + sides = 48 + special_faces = list("Cube-Side: 1-1","Cube-Side: 1-2","Cube-Side: 1-3","Cube-Side: 1-4","Cube-Side: 1-5","Cube-Side: 1-6","Cube-Side: 2-1","Cube-Side: 2-2","Cube-Side: 2-3","Cube-Side: 2-4","Cube-Side: 2-5","Cube-Side: 2-6","Cube-Side: 3-1","Cube-Side: 3-2","Cube-Side: 3-3","Cube-Side: 3-4","Cube-Side: 3-5","Cube-Side: 3-6","Cube-Side: 4-1","Cube-Side: 4-2","Cube-Side: 4-3","Cube-Side: 4-4","Cube-Side: 4-5","Cube-Side: 4-6","Cube-Side: 5-1","Cube-Side: 5-2","Cube-Side: 5-3","Cube-Side: 5-4","Cube-Side: 5-5","Cube-Side: 5-6","Cube-Side: 6-1","Cube-Side: 6-2","Cube-Side: 6-3","Cube-Side: 6-4","Cube-Side: 6-5","Cube-Side: 6-6","Cube-Side: 7-1","Cube-Side: 7-2","Cube-Side: 7-3","Cube-Side: 7-4","Cube-Side: 7-5","Cube-Side: 7-6","Cube-Side: 8-1","Cube-Side: 8-2","Cube-Side: 8-3","Cube-Side: 8-4","Cube-Side: 8-5","Cube-Side: 8-6") + +/obj/item/dice/fourdd6/update_icon() + return + +/obj/item/dice/attack_self(mob/user) + diceroll(user) + +/obj/item/dice/throw_impact(atom/target) + diceroll(thrownby) + . = ..() + +/obj/item/dice/proc/diceroll(mob/user) + result = rand(1, sides) + if(rigged && result != rigged) + if(prob(Clamp(1/(sides - 1) * 100, 25, 80))) + result = rigged + var/fake_result = rand(1, sides)//Daredevil isn't as good as he used to be + var/comment = "" + if(sides == 20 && result == 20) + comment = "Nat 20!" + else if(sides == 20 && result == 1) + comment = "Ouch, bad luck." + update_icon() + if(initial(icon_state) == "d00") + result = (result - 1)*10 + if(special_faces.len == sides) + result = special_faces[result] + if(user != null) //Dice was rolled in someone's hand + user.visible_message("[user] has thrown [src]. It lands on [result]. [comment]", \ + "You throw [src]. It lands on [result]. [comment]", \ + "You hear [src] rolling, it sounds like a [fake_result].") + else if(!src.throwing) //Dice was thrown and is coming to rest + visible_message("[src] rolls to a stop, landing on [result]. [comment]") + +/obj/item/dice/d4/Crossed(mob/living/carbon/human/H) + if(istype(H) && !H.shoes) + if(PIERCEIMMUNE in H.dna.species.species_traits) + return 0 + to_chat(H, "You step on the D4!") + H.apply_damage(4,BRUTE,(pick("l_leg", "r_leg"))) + H.Knockdown(60) + +/obj/item/dice/update_icon() + cut_overlays() + add_overlay("[src.icon_state][src.result]") + +/obj/item/dice/microwave_act(obj/machinery/microwave/M) + if(can_be_rigged) + rigged = result + ..(M) +>>>>>>> f782a24... Dice will now roll when thrown (#30745) From fb8128d9342cf48d369a0522d8dc852ac64fbb10 Mon Sep 17 00:00:00 2001 From: Michiyamenotehifunana <31995558+Michiyamenotehifunana@users.noreply.github.com> Date: Sun, 17 Sep 2017 21:38:57 +0800 Subject: [PATCH 2/8] Adds Anti Tank pistols Due to balance concerns and unironed out bugs, adminspawn only. --- code/citadel/cit_guns.dm | 24 +++++++++++++++++++++++- icons/obj/guns/cit_guns.dmi | Bin 1188 -> 2044 bytes 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/code/citadel/cit_guns.dm b/code/citadel/cit_guns.dm index ae78d1d172..990a0cf469 100644 --- a/code/citadel/cit_guns.dm +++ b/code/citadel/cit_guns.dm @@ -26,4 +26,26 @@ build_type = PROTOLATHE materials = list(MAT_GOLD = 2500, MAT_METAL = 5000, MAT_GLASS = 5000) build_path = /obj/item/gun/energy/laser/carbine/nopin - category = list("Weapons") \ No newline at end of file + category = list("Weapons") + +/obj/item/gun/ballistic/pistol/antitank + name = "Anti Tank Pistol" + desc = "A massively impractical and silly monstrosity of a pistol that fires .50 calliber rounds. The recoil is likely to dislocate your wrist." + icon = 'icons/obj/guns/cit_guns.dmi' + icon_state = "atp" + item_state = "pistol" + recoil = 2 + mag_type = /obj/item/ammo_box/magazine/sniper_rounds + fire_delay = 40 + burst_size = 1 + origin_tech = "combat=7" + can_suppress = 0 + w_class = WEIGHT_CLASS_NORMAL + actions_types = list() + + +/obj/item/gun/ballistic/pistol/antitank/update_icon() + if(magazine) + icon_state = "atp" + else + icon_state = "atp-e" \ No newline at end of file diff --git a/icons/obj/guns/cit_guns.dmi b/icons/obj/guns/cit_guns.dmi index e1b2e8ac1a582c60cf36a7cc2f6dea6a7e0eaa25..c5f49d0a2e7d7c8969c5177f8db8e6aa7eaf631a 100644 GIT binary patch literal 2044 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 From 1f84944deeb41efaba8bd9a90f7cc0ef1fc47f50 Mon Sep 17 00:00:00 2001 From: Michiyamenotehifunana <31995558+Michiyamenotehifunana@users.noreply.github.com> Date: Mon, 18 Sep 2017 23:11:14 +0800 Subject: [PATCH 3/8] Anti Tank Pistol Improvements and Implementation Fixes the issues with the ATP, modifies its sprite slightly, and adds it to the nukeops uplink list. --- code/citadel/cit_guns.dm | 24 ++++++++++++++++++------ code/modules/uplink/uplink_item_cit.dm | 12 ++++++++++++ icons/obj/guns/cit_guns.dmi | Bin 2044 -> 2368 bytes 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/code/citadel/cit_guns.dm b/code/citadel/cit_guns.dm index 990a0cf469..ec1caacdab 100644 --- a/code/citadel/cit_guns.dm +++ b/code/citadel/cit_guns.dm @@ -28,24 +28,36 @@ build_path = /obj/item/gun/energy/laser/carbine/nopin category = list("Weapons") -/obj/item/gun/ballistic/pistol/antitank +/obj/item/gun/ballistic/automatic/pistol/antitank name = "Anti Tank Pistol" desc = "A massively impractical and silly monstrosity of a pistol that fires .50 calliber rounds. The recoil is likely to dislocate your wrist." icon = 'icons/obj/guns/cit_guns.dmi' icon_state = "atp" item_state = "pistol" - recoil = 2 + recoil = 6 mag_type = /obj/item/ammo_box/magazine/sniper_rounds - fire_delay = 40 + fire_delay = 50 burst_size = 1 origin_tech = "combat=7" can_suppress = 0 w_class = WEIGHT_CLASS_NORMAL actions_types = list() + fire_sound = 'sound/weapons/blastcannon.ogg' + spread = 30 //damn thing has no rifling. -/obj/item/gun/ballistic/pistol/antitank/update_icon() +/obj/item/gun/ballistic/automatic/pistol/antitank/update_icon() + ..() if(magazine) - icon_state = "atp" + cut_overlays() + add_overlay("atp-mag") else - icon_state = "atp-e" \ No newline at end of file + cut_overlays() + icon_state = "[initial(icon_state)][chambered ? "" : "-e"]" + +/obj/item/gun/ballistic/automatic/pistol/antitank/syndicate + name = "Syndicate Anti Tank Pistol" + desc = "A massively impractical and silly monstrosity of a pistol that fires .50 calliber rounds. The recoil is likely to dislocate a variety of joints without proper bracing." + pin = /obj/item/device/firing_pin/implant/pindicate + origin_tech = "combat=7;syndicate=6" + diff --git a/code/modules/uplink/uplink_item_cit.dm b/code/modules/uplink/uplink_item_cit.dm index 68000d6d5c..c9bb091303 100644 --- a/code/modules/uplink/uplink_item_cit.dm +++ b/code/modules/uplink/uplink_item_cit.dm @@ -28,3 +28,15 @@ /obj/item/storage/box/syndie_kit/holoparasite/PopulateContents() new /obj/item/guardiancreator/tech/choose/traitor(src) new /obj/item/paper/guides/antag/guardian(src) + +/datum/uplink_item/dangerous/antitank + name = "Anti Tank Pistol" + desc = "Essentially amounting to a sniper rifle with no stock and barrel (or indeed, any rifling at all),\ + this extremely dubious pistol is guaranteed to dislocate your wrists and hit the broad side of a barn!\ + Uses sniper ammo.\ + Bullets tend to veer off-course. We are not responsible for any unintentional damage or injury resulting from inaacuracy." + item = /obj/item/gun/ballistic/automatic/pistol/antitank/syndicate + refundable = TRUE + cost = 14 + surplus = 25 + include_modes = list(/datum/game_mode/nuclear) diff --git a/icons/obj/guns/cit_guns.dmi b/icons/obj/guns/cit_guns.dmi index c5f49d0a2e7d7c8969c5177f8db8e6aa7eaf631a..b5a2ae8fdcf5230bdeedaf88f6cd9f2ef1621ea3 100644 GIT binary patch literal 2368 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 Date: Tue, 19 Sep 2017 06:35:36 -0500 Subject: [PATCH 4/8] Update dice.dm --- code/game/objects/items/dice.dm | 196 -------------------------------- 1 file changed, 196 deletions(-) diff --git a/code/game/objects/items/dice.dm b/code/game/objects/items/dice.dm index 15ecbf768a..7cf88e77ef 100644 --- a/code/game/objects/items/dice.dm +++ b/code/game/objects/items/dice.dm @@ -1,198 +1,3 @@ -<<<<<<< HEAD -/obj/item/storage/pill_bottle/dice - name = "bag of dice" - desc = "Contains all the luck you'll ever need." - icon = 'icons/obj/dice.dmi' - icon_state = "dicebag" - -/obj/item/storage/pill_bottle/dice/New() - ..() - var/special_die = pick("1","2","fudge","space","00","8bd20","4dd6","100") - if(special_die == "1") - new /obj/item/dice/d1(src) - if(special_die == "2") - new /obj/item/dice/d2(src) - new /obj/item/dice/d4(src) - new /obj/item/dice/d6(src) - if(special_die == "fudge") - new /obj/item/dice/fudge(src) - if(special_die == "space") - new /obj/item/dice/d6/space(src) - new /obj/item/dice/d8(src) - new /obj/item/dice/d10(src) - if(special_die == "00") - new /obj/item/dice/d00(src) - new /obj/item/dice/d12(src) - new /obj/item/dice/d20(src) - if(special_die == "8bd20") - new /obj/item/dice/eightbd20(src) - if(special_die == "4dd6") - new /obj/item/dice/fourdd6(src) - if(special_die == "100") - new /obj/item/dice/d100(src) - -/obj/item/dice //depreciated d6, use /obj/item/dice/d6 if you actually want a d6 - name = "die" - desc = "A die with six sides. Basic and servicable." - icon = 'icons/obj/dice.dmi' - icon_state = "d6" - w_class = WEIGHT_CLASS_TINY - var/sides = 6 - var/result = null - var/list/special_faces = list() //entries should match up to sides var if used - var/can_be_rigged = TRUE - var/rigged = FALSE - -/obj/item/dice/New() - result = rand(1, sides) - update_icon() - ..() - -/obj/item/dice/d1 - name = "d1" - desc = "A die with one side. Deterministic!" - icon_state = "d1" - sides = 1 - -/obj/item/dice/d2 - name = "d2" - desc = "A die with two sides. Coins are undignified!" - icon_state = "d2" - sides = 2 - -/obj/item/dice/d4 - name = "d4" - desc = "A die with four sides. The nerd's caltrop." - icon_state = "d4" - sides = 4 - -/obj/item/dice/d6 - name = "d6" - -/obj/item/dice/d6/space - name = "space cube" - desc = "A die with six sides. 6 TIMES 255 TIMES 255 TILE TOTAL EXISTENCE, SQUARE YOUR MIND OF EDUCATED STUPID: 2 DOES NOT EXIST." - icon_state = "spaced6" - -/obj/item/dice/d6/space/New() - ..() - if(prob(10)) - name = "spess cube" - -/obj/item/dice/fudge - name = "fudge die" - desc = "A die with six sides but only three results. Is this a plus or a minus? Your mind is drawing a blank..." - sides = 3 //shhh - icon_state = "fudge" - special_faces = list("minus","blank","plus") - -/obj/item/dice/d8 - name = "d8" - desc = "A die with eight sides. It feels... lucky." - icon_state = "d8" - sides = 8 - -/obj/item/dice/d10 - name = "d10" - desc = "A die with ten sides. Useful for percentages." - icon_state = "d10" - sides = 10 - -/obj/item/dice/d00 - name = "d00" - desc = "A die with ten sides. Works better for d100 rolls than a golfball." - icon_state = "d00" - sides = 10 - -/obj/item/dice/d12 - name = "d12" - desc = "A die with twelve sides. There's an air of neglect about it." - icon_state = "d12" - sides = 12 - -/obj/item/dice/d20 - name = "d20" - desc = "A die with twenty sides. The prefered die to throw at the GM." - icon_state = "d20" - sides = 20 - -/obj/item/dice/d100 - name = "d100" - desc = "A die with one hundred sides! Probably not fairly weighted..." - icon_state = "d100" - sides = 100 - -/obj/item/dice/d100/update_icon() - return - -/obj/item/dice/eightbd20 - name = "strange d20" - desc = "A weird die with raised text printed on the faces. Everything's white on white so reading it is a struggle. What poor design!" - icon_state = "8bd20" - sides = 20 - special_faces = list("It is certain","It is decidedly so","Without a doubt","Yes, definitely","You may rely on it","As I see it, yes","Most likely","Outlook good","Yes","Signs point to yes","Reply hazy try again","Ask again later","Better not tell you now","Cannot predict now","Concentrate and ask again","Don't count on it","My reply is no","My sources say no","Outlook not so good","Very doubtful") - -/obj/item/dice/eightbd20/update_icon() - return - -/obj/item/dice/fourdd6 - name = "4d d6" - desc = "A die that exists in four dimensional space. Properly interpreting them can only be properly done with the help of a mathematician, a physicist, and a priest." - icon_state = "4dd6" - sides = 48 - special_faces = list("Cube-Side: 1-1","Cube-Side: 1-2","Cube-Side: 1-3","Cube-Side: 1-4","Cube-Side: 1-5","Cube-Side: 1-6","Cube-Side: 2-1","Cube-Side: 2-2","Cube-Side: 2-3","Cube-Side: 2-4","Cube-Side: 2-5","Cube-Side: 2-6","Cube-Side: 3-1","Cube-Side: 3-2","Cube-Side: 3-3","Cube-Side: 3-4","Cube-Side: 3-5","Cube-Side: 3-6","Cube-Side: 4-1","Cube-Side: 4-2","Cube-Side: 4-3","Cube-Side: 4-4","Cube-Side: 4-5","Cube-Side: 4-6","Cube-Side: 5-1","Cube-Side: 5-2","Cube-Side: 5-3","Cube-Side: 5-4","Cube-Side: 5-5","Cube-Side: 5-6","Cube-Side: 6-1","Cube-Side: 6-2","Cube-Side: 6-3","Cube-Side: 6-4","Cube-Side: 6-5","Cube-Side: 6-6","Cube-Side: 7-1","Cube-Side: 7-2","Cube-Side: 7-3","Cube-Side: 7-4","Cube-Side: 7-5","Cube-Side: 7-6","Cube-Side: 8-1","Cube-Side: 8-2","Cube-Side: 8-3","Cube-Side: 8-4","Cube-Side: 8-5","Cube-Side: 8-6") - -/obj/item/dice/fourdd6/update_icon() - return - -/obj/item/dice/attack_self(mob/user) - diceroll(user) - -/obj/item/dice/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback) - if(!..()) - return - diceroll(thrower) - -/obj/item/dice/proc/diceroll(mob/user) - result = rand(1, sides) - if(rigged && result != rigged) - if(prob(Clamp(1/(sides - 1) * 100, 25, 80))) - result = rigged - var/fake_result = rand(1, sides)//Daredevil isn't as good as he used to be - var/comment = "" - if(sides == 20 && result == 20) - comment = "Nat 20!" - else if(sides == 20 && result == 1) - comment = "Ouch, bad luck." - update_icon() - if(initial(icon_state) == "d00") - result = (result - 1)*10 - if(special_faces.len == sides) - result = special_faces[result] - if(user != null) //Dice was rolled in someone's hand - user.visible_message("[user] has thrown [src]. It lands on [result]. [comment]", \ - "You throw [src]. It lands on [result]. [comment]", \ - "You hear [src] rolling, it sounds like a [fake_result].") - else if(!src.throwing) //Dice was thrown and is coming to rest - visible_message("[src] rolls to a stop, landing on [result]. [comment]") - -/obj/item/dice/d4/Crossed(mob/living/carbon/human/H) - if(istype(H) && !H.shoes) - if(PIERCEIMMUNE in H.dna.species.species_traits) - return 0 - to_chat(H, "You step on the D4!") - H.apply_damage(4,BRUTE,(pick("l_leg", "r_leg"))) - H.Knockdown(60) - -/obj/item/dice/update_icon() - cut_overlays() - add_overlay("[src.icon_state][src.result]") - -/obj/item/dice/microwave_act(obj/machinery/microwave/M) - if(can_be_rigged) - rigged = result - ..(M) -======= /obj/item/storage/pill_bottle/dice name = "bag of dice" desc = "Contains all the luck you'll ever need." @@ -385,4 +190,3 @@ if(can_be_rigged) rigged = result ..(M) ->>>>>>> f782a24... Dice will now roll when thrown (#30745) From 7c0e17236dd64d3056f31eb6f54f2d28249c6b93 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Tue, 19 Sep 2017 08:56:16 -0700 Subject: [PATCH 5/8] Fixes safes not having adjacency checks (#30859) * Update safe.dm * Update safe.dm --- code/game/objects/structures/safe.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm index bbea363919..dc4ffe37b6 100644 --- a/code/game/objects/structures/safe.dm +++ b/code/game/objects/structures/safe.dm @@ -96,7 +96,10 @@ FLOOR SAFES if(!ishuman(usr)) return var/mob/living/carbon/human/user = usr - + + if(!user.canUseTopic(src)) + return + var/canhear = 0 if(user.is_holding_item_of_type(/obj/item/clothing/neck/stethoscope)) canhear = 1 From 2f308fc2f7621791fb7eff43f6706a5de4705e64 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 19 Sep 2017 11:15:03 -0500 Subject: [PATCH 7/8] Automatic changelog generation for PR #2817 [ci skip] --- html/changelogs/AutoChangeLog-pr-2817.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2817.yml diff --git a/html/changelogs/AutoChangeLog-pr-2817.yml b/html/changelogs/AutoChangeLog-pr-2817.yml new file mode 100644 index 0000000000..9c545c3100 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2817.yml @@ -0,0 +1,8 @@ +author: "Toriate" +delete-after: True +changes: + - rscadd: "Adds the Anti Tank Pistol" + - bugfix: "Anti Tank Pistol now chambers bullets properly." + - tweak: "sprites are slightly adjusted and the magazine in the sprites is actually the sniper's magazine." + - rscadd: "Anti Tank pistol is now available to Nuke Ops" + - tweak: "Anti Tank Pistol now has 3 times the recoil of the Sniper Rifle, 10 more firing delay, and has bullet spread." From 467bb666a18a49c23a38b04ed7c6185e8d4db6cd Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 19 Sep 2017 11:20:35 -0500 Subject: [PATCH 8/8] Automatic changelog generation for PR #2801 [ci skip] --- html/changelogs/AutoChangeLog-pr-2801.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2801.yml diff --git a/html/changelogs/AutoChangeLog-pr-2801.yml b/html/changelogs/AutoChangeLog-pr-2801.yml new file mode 100644 index 0000000000..b1f3f740f7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2801.yml @@ -0,0 +1,4 @@ +author: "Robustin" +delete-after: True +changes: + - bugfix: "Dice will now roll when thrown"