diff --git a/code/game/machinery/computer/sentencing.dm b/code/game/machinery/computer/sentencing.dm
index 8b77fe8d857..72e9ff48529 100644
--- a/code/game/machinery/computer/sentencing.dm
+++ b/code/game/machinery/computer/sentencing.dm
@@ -96,7 +96,6 @@
/obj/machinery/computer/sentencing/proc/incident_report()
. = ""
-
if( !istype( incident ))
. += "There was an error loading the incident, please Try Again"
return .
@@ -106,8 +105,9 @@
. += "
"
. += "| Convict: | "
. += ""
- if( incident.criminal )
- . += "[incident.criminal]"
+ if( istype(incident.card) )
+ var/obj/item/weapon/card/id/card = incident.card.resolve()
+ . += "[card]"
else
. += "None"
. += " | "
@@ -191,8 +191,9 @@
. += "
| Convict |
"
. += "| "
- if( incident.criminal )
- . += "[incident.criminal]"
+ if( istype(incident.card) )
+ var/obj/item/weapon/card/id/card = incident.card.resolve()
+ . += "[card]"
else
. += "None"
. += " |
"
@@ -435,7 +436,8 @@
return .
/obj/machinery/computer/sentencing/proc/render_innocent( var/mob/user )
- ping( "\The [src] pings, \"[incident.criminal] has been found innocent of the accused crimes!\"" )
+ var/obj/item/weapon/card/id/card = incident.card.resolve()
+ ping( "\The [src] pings, \"[card] has been found innocent of the accused crimes!\"" )
qdel( incident )
incident = null
@@ -456,11 +458,11 @@
return
incident.renderGuilty( user )
-
+ var/obj/item/weapon/card/id/card = incident.card.resolve()
if( incident.brig_sentence < PERMABRIG_SENTENCE)
- ping( "\The [src] pings, \"[incident.criminal] has been found guilty of their crimes!\"" )
+ ping( "\The [src] pings, \"[card] has been found guilty of their crimes!\"" )
else
- pingx3( "\The [src] pings, \"[incident.criminal] has been found guilty of their crimes and earned a HuT Sentence\"" )
+ pingx3( "\The [src] pings, \"[card] has been found guilty of their crimes and earned a HuT Sentence\"" )
incident = null
menu_screen = "main_menu"
@@ -483,7 +485,7 @@
//
// incident.renderGuilty( user )
//
-// ping( "\The [src] pings, \"[incident.criminal] has been fined for their crimes!\"" )
+// ping( "\The [src] pings, \"[incident.card] has been fined for their crimes!\"" )
//
// incident = null
// menu_screen = "main_menu"
@@ -528,10 +530,12 @@
if( istype( C ))
if( incident && C.mob )
incident.criminal = C.mob
- ping( "\The [src] pings, \"Convict [C.mob] verified.\"" )
+ incident.card = WEAKREF(C)
+ ping( "\The [src] pings, \"Convict [C] verified.\"" )
else if( incident.criminal )
ping( "\The [src] pings, \"Convict cleared.\"" )
incident.criminal = null
+ incident.card = null
if( "change_brig" )
if( !incident )
return
diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm
index 89058dbee8b..40341b7b66e 100644
--- a/code/game/machinery/doors/brigdoors.dm
+++ b/code/game/machinery/doors/brigdoors.dm
@@ -207,7 +207,6 @@
// Used for the 'time left' display
var/second = round(timeleft() % 60)
var/minute = round((timeleft() - second) / 60)
-
. = "Timer System:
"
. += "Controls [src.id]
"
@@ -215,7 +214,8 @@
. += "Insert a Securty Incident Report to load a criminal sentence
"
else
// Time Left display (uses releasetime)
- . += "Criminal: [incident.criminal]\t"
+ var/obj/item/weapon/card/id/card = incident.card.resolve()
+ . += "Criminal: [card]\t"
. += "Charges
"
. += "Sentence: [add_zero( "[minute]", 2 )]:[add_zero( "[second]", 2 )]\t"
// Start/Stop timer
diff --git a/code/game/objects/items/weapons/material/twohanded.dm b/code/game/objects/items/weapons/material/twohanded.dm
index 29dc2185dfe..99317004992 100644
--- a/code/game/objects/items/weapons/material/twohanded.dm
+++ b/code/game/objects/items/weapons/material/twohanded.dm
@@ -245,6 +245,7 @@
MA.layer = FLOAT_LAYER
HS.add_overlay(MA)
HS.name = "[I.name] on a spear"
+ HS.material = material.name
qdel(src)
return
@@ -299,10 +300,11 @@
icon_state = "headspear"
density = 0
anchored = 1
+ var/material = "glass"
/obj/structure/headspear/attack_hand(mob/living/user)
user.visible_message("[user] kicks over \the [src]!", "You kick down \the [src]!")
- new /obj/item/weapon/material/twohanded/spear(user.loc)
+ new /obj/item/weapon/material/twohanded/spear(user.loc, material)
for(var/obj/item/organ/external/head/H in src)
H.loc = user.loc
qdel(src)
diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm
index a12c91e6b76..6db5a72bbc4 100644
--- a/code/game/objects/items/weapons/storage/fancy.dm
+++ b/code/game/objects/items/weapons/storage/fancy.dm
@@ -161,10 +161,18 @@
if(!istype(W))
user <<"The [W] is blocking the cigarettes."
return
+ //Checking contents of packet so lighters won't be cigarettes.
+ for (var/i = contents.len; i > 0; i--)
+ W = contents[i]
+ if (istype(W))
+ break
+ else
+ W = null
+ if (!W)
+ return
reagents.trans_to_obj(W, (reagents.total_volume/contents.len))
user.equip_to_slot_if_possible(W, slot_wear_mask)
reagents.maximum_volume = 15 * contents.len
- contents.len--
user << "You take a cigarette out of the pack."
update_icon()
else
diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm
index 753bba63176..848a36523f9 100644
--- a/code/modules/customitems/item_defines.dm
+++ b/code/modules/customitems/item_defines.dm
@@ -1898,7 +1898,7 @@ All custom items with worn sprites must follow the contained sprite system: http
light_color = LIGHT_COLOR_BLUE
-/obj/item/clothing/suit/storage/hooded/wintercoat/fluff/make_poncho //Raincoat Poncho - M.A.K.E - toasterstrudes
+obj/item/clothing/suit/storage/hooded/fluff/make_poncho //Raincoat Poncho - M.A.K.E - toasterstrudes
name = "raincoat poncho"
desc = "A tough brown hooded poncho that looks to be good at protecting someone from the rain."
icon = 'icons/obj/custom_items/make_items.dmi'
@@ -1906,6 +1906,7 @@ All custom items with worn sprites must follow the contained sprite system: http
item_state = "make_poncho"
contained_sprite = TRUE
hoodtype = /obj/item/clothing/head/winterhood/fluff/make_hood
+ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
/obj/item/clothing/head/winterhood/fluff/make_hood
flags_inv = HIDEEARS
diff --git a/code/modules/economy/cash.dm b/code/modules/economy/cash.dm
index a0e76685c5f..159817e531f 100644
--- a/code/modules/economy/cash.dm
+++ b/code/modules/economy/cash.dm
@@ -168,43 +168,71 @@ proc/spawn_money(var/sum, spawnloc, mob/living/carbon/human/human_user as mob)
user << "Charge card's owner: [src.owner_name]. Credit chips remaining: [src.worth]."
/obj/item/weapon/spacecash/ewallet/lotto
- name = "lottery card"
- desc = "A scratch-action charge card that contains a variable amount of money."
+ name = "space lottery card"
+ desc = "A virtual scratch-action charge card that contains a variable amount of money."
worth = 0
- var/scratched = 0
+ var/scratches_remaining = 3
+ var/next_scratch = 0
/obj/item/weapon/spacecash/ewallet/lotto/attack_self(mob/user)
- if(!scratched)
- user << "You initiate the simulated scratch action process on the charge card..."
- if(do_after(user,5))
- var/result = rand(1,10000)
- if(result <= 5000) // 50% chance to not earn anything at all.
- worth = 0
- user << "The card reads [worth]. Not your lucky day!"
- else if (result <= 8000) // 30% chance to break even.
- worth = 200
- user << "The card reads [worth]. At least you broke even..."
- else if (result <= 9000) // 10% chance to earn 500 credits
- worth = 500
- user << "The card reads [worth]. You doubled your money!"
- else if (result <= 9500) // 5% chance to earn 1000 credits.
- worth = 1000
- user << "The card reads [worth]. Wow, you're lucky!"
- else if (result <= 9750) // 2.5% chance to earn 2500 credits.
- worth = 2500
- user << "The card reads [worth]. Wow, your luck is running high!"
- else if (result <= 9900) // 1.5% chance to earn 5000 credits.
- worth = 5000
- user << "The card reads [worth]. Wow, you're rich!"
- else if (result <= 9950) // 0.5% chance to earn 10000 credits
- worth = 10000
- user << "The card reads [worth]. Wow, your're super rich!"
- else if (result <= 9975) // 0.25% chance to earn 50000 credits.
- worth = 25000
- user << "The card reads [worth]. Wow, your're super rich!"
- else // 0.25% chance to earn 100000 credits.
- user << "The card reads [worth]. YOU HIT THE JACKPOT!"
- worth = 50000
- scratched = 1
- owner_name = user.name
+ if(scratches_remaining <= 0)
+ user << "The card flashes: \"No scratches remaining!\""
+ return
+
+ if(next_scratch > world.time)
+ user << "The card flashes: \"Please wait!\""
+ return
+
+ next_scratch = world.time + 6 SECONDS
+
+ user << "You initiate the simulated scratch action process on the [src]..."
+ playsound(src.loc, 'sound/items/drumroll.ogg', 50, 0, 0)
+ if(do_after(user,4.5 SECONDS))
+ var/won = 0
+ var/result = rand(1,10000)
+ if(result <= 4000) // 40% chance to not earn anything at all.
+ won = 0
+ speak("You've won: [won] CREDITS. Better luck next time!")
+ else if (result <= 8000) // 40% chance
+ won = 50
+ speak("You've won: [won] CREDITS. Partial winner!")
+ else if (result <= 9000) // 10% chance
+ won = 100
+ speak("You've won: [won] CREDITS. Winner!")
+ else if (result <= 9500) // 5% chance
+ won = 200
+ speak("You've won: [won] CREDITS. SUPER WINNER! You're lucky!")
+ else if (result <= 9750) // 2.5% chance
+ won = 500
+ speak("You've won: [won] CREDITS. MEGA WINNER! You're super lucky!")
+ else if (result <= 9900) // 1.5% chance
+ won = 1000
+ speak("You've won: [won] CREDITS. ULTRA WINNER! You're mega lucky!")
+ else if (result <= 9950) // 0.5% chance
+ won = 2500
+ speak("You've won: [won] CREDITS. ULTIMATE WINNER! You're ultra lucky!")
+ else if (result <= 9975) // 0.25% chance
+ won = 5000
+ speak("You've won: [won] CREDITS. ULTIMATE WINNER! You're ultra lucky!")
+ else if (result <= 9999) // 0.24% chance
+ won = 10000
+ speak("You've won: [won] CREDITS. ULTIMATE WINNER! You're ultra lucky!")
+ else ///0.01% chance
+ won = 25000
+ speak("You've won: [won] CREDITS. JACKPOT WINNER! You're JACKPOT lucky!")
+
+ scratches_remaining -= 1
+ worth += won
+ sleep(1 SECONDS)
+ if(scratches_remaining > 0)
+ user << "The card flashes: You have: [scratches_remaining] SCRATCHES remaining! Scratch again!"
+ else
+ user << "The card flashes: You have: [scratches_remaining] SCRATCHES remaining! You won a total of: [worth] CREDITS. Thanks for playing the space lottery!"
+
+ owner_name = user.name
+
+/obj/item/weapon/spacecash/ewallet/lotto/proc/speak(var/message = "Hello!")
+ for(var/mob/O in hearers(src.loc, null))
+ O.show_message("\The [src] pings, \"[message]\"",2)
+ playsound(src.loc, 'sound/machines/ping.ogg', 50, 1, -4)
diff --git a/code/modules/law/incident.dm b/code/modules/law/incident.dm
index 5c2c43cd11e..3b02dbc1f11 100644
--- a/code/modules/law/incident.dm
+++ b/code/modules/law/incident.dm
@@ -8,6 +8,7 @@
var/list/arbiters = list( "Witness" = list() ) // The person or list of people who were involved in the conviction of the criminal
var/mob/living/carbon/human/criminal // The person who committed the crimes
+ var/datum/weakref/card // The ID of the criminal
var/datetime = "" //When the crime has been commited
diff --git a/code/modules/law/laws/med_severity.dm b/code/modules/law/laws/med_severity.dm
index c591dac2280..7a887aac9ba 100644
--- a/code/modules/law/laws/med_severity.dm
+++ b/code/modules/law/laws/med_severity.dm
@@ -142,7 +142,7 @@
max_brig_time = 25
/datum/law/med_severity/excessive_force
- name = "i218 - Severe Use of Excessive Force"
+ name = "i218 - Use of Excessive Force"
desc = "To put a victim in critical state in defense of yourself or others, or seriously injuring a suspect while attempting to detain them. This includes pulling them when they have open wounds."
id = "i218"
@@ -163,4 +163,12 @@
id = "i220"
min_brig_time = 15
- max_brig_time = 20
\ No newline at end of file
+ max_brig_time = 20
+
+/datum/law/med_severity/gross_negligence
+ name = "i221 - Gross Negligence"
+ desc = "To display a severe lack of diligence or disregard for safe conduct, which causes or will cause serious harm to people or property."
+ id = "i221"
+
+ min_brig_time = 15
+ max_brig_time = 20
diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm
index a5ea463b6b9..7d9b68baf4b 100644
--- a/code/modules/reagents/reagent_containers/food/snacks.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks.dm
@@ -1561,7 +1561,7 @@
. = ..()
reagents.add_reagent("protein", 4)
reagents.add_reagent("msg", 2)
- reagents.add_reagent("palmoil", 1)
+ reagents.add_reagent("sodiumchloride", 4)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/no_raisin
@@ -1578,7 +1578,6 @@
. = ..()
reagents.add_reagent("msg", 1)
reagents.add_reagent("hfcs", 1)
- reagents.add_reagent("palmoil", 1)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie
@@ -1611,7 +1610,7 @@
. = ..()
reagents.add_reagent("cheese", 3)
reagents.add_reagent("palmoil", 1)
- reagents.add_reagent("msg", 2)
+ reagents.add_reagent("msg", 1)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/syndicake
@@ -4398,21 +4397,18 @@
/obj/item/weapon/reagent_containers/food/snacks/tastybread
name = "bread tube"
- desc = "Bread in a tube. Chewy...and questionably tasty."
+ desc = "Bread in a tube. Chewy."
icon_state = "tastybread"
trash = /obj/item/trash/tastybread
filling_color = "#A66829"
center_of_mass = list("x"=17, "y"=16)
- nutriment_desc = list("tasty bread" = 4)
+ nutriment_desc = list("stale bread" = 4) //NO LONGER TASTY BECAUSE OF REMOVED FLAVORINGS. ENJOY EATING STALE BREAD FUCKERS. HAHAHAHAHA.
nutriment_amt = 4
/obj/item/weapon/reagent_containers/food/snacks/tastybread/Initialize()
. = ..()
reagents.add_reagent("shortening", 1)
- reagents.add_reagent("palmoil", 1)
- reagents.add_reagent("sugar", 1)
- reagents.add_reagent("msg", 4)
- reagents.add_reagent("sodiumchloride", 2)
+ reagents.add_reagent("sodiumchloride", 4)
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/skrellsnacks
@@ -4426,7 +4422,6 @@
/obj/item/weapon/reagent_containers/food/snacks/skrellsnacks/Initialize()
. = ..()
- reagents.add_reagent("shortening", 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/friedkois
@@ -4559,7 +4554,7 @@
. = ..()
reagents.add_reagent("protein", 10)
reagents.add_reagent("shortening", 1)
- reagents.add_reagent("msg", 4)
+ reagents.add_reagent("msg", 3)
reagents.add_reagent("sodiumchloride", 3)
bitesize = 5
@@ -4589,7 +4584,7 @@
. = ..()
reagents.add_reagent("protein", 10)
reagents.add_reagent("iron", 3)
- reagents.add_reagent("msg", 4)
+ reagents.add_reagent("msg", 5)
reagents.add_reagent("sodiumchloride", 5)
bitesize = 4
diff --git a/html/changelog.html b/html/changelog.html
index bbba2e9a6cc..dbd633ecd34 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -56,6 +56,21 @@
-->
+
31 March 2018
+
TheGreatNacho updated:
+
+ - Set the sentencing machine and brig timer to read the convicts name from their ID, instead of their mob.
+ - Fixed lighter being deleted when pulling a cigarette out of it's packet with your mouth.
+ - Fixed spears losing their material after mounting head to them.
+
+
+
21 March 2018
+
BurgerBB updated:
+
+ - Made junkfood bread and rasins healthier. Made light junkfood snacks slightly healthier.
+ - Lottery cards now generally give less, have 3 scratches per card, and take longer to scratch.
+
+
18 March 2018
Alberyk updated:
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index c096fe09910..0ab5c59973e 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -5243,3 +5243,16 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
- bugfix: The Automatic Robotic Factory 5000 should now work properly.
Skull132:
- bugfix: Magboots and hardsuit gloves now give you your stuff back properly.
+2018-03-21:
+ BurgerBB:
+ - balance: Made junkfood bread and rasins healthier. Made light junkfood snacks
+ slightly healthier.
+ - balance: Lottery cards now generally give less, have 3 scratches per card, and
+ take longer to scratch.
+2018-03-31:
+ TheGreatNacho:
+ - bugfix: Set the sentencing machine and brig timer to read the convicts name from
+ their ID, instead of their mob.
+ - bugfix: Fixed lighter being deleted when pulling a cigarette out of it's packet
+ with your mouth.
+ - bugfix: Fixed spears losing their material after mounting head to them.
diff --git a/icons/mob/custom_synthetic.dmi b/icons/mob/custom_synthetic.dmi
index bbb07c579b7..f7b0084ff48 100644
Binary files a/icons/mob/custom_synthetic.dmi and b/icons/mob/custom_synthetic.dmi differ
diff --git a/icons/obj/custom_items/make_items.dmi b/icons/obj/custom_items/make_items.dmi
index 929af3f6b25..bbc54bbd67b 100644
Binary files a/icons/obj/custom_items/make_items.dmi and b/icons/obj/custom_items/make_items.dmi differ
diff --git a/sound/items/drumroll.ogg b/sound/items/drumroll.ogg
new file mode 100644
index 00000000000..4521edd76ed
Binary files /dev/null and b/sound/items/drumroll.ogg differ