Merge branch 'master' into development

This commit is contained in:
skull132
2018-04-01 18:14:11 +03:00
14 changed files with 141 additions and 66 deletions
+15 -11
View File
@@ -96,7 +96,6 @@
/obj/machinery/computer/sentencing/proc/incident_report()
. = ""
if( !istype( incident ))
. += "There was an error loading the incident, please <a href='?src=\ref[src];button=change_menu;choice=main_menu'>Try Again</a>"
return .
@@ -106,8 +105,9 @@
. += "<tr>"
. += "<th>Convict:</th>"
. += "<td><a href='?src=\ref[src];button=change_criminal;'>"
if( incident.criminal )
. += "[incident.criminal]"
if( istype(incident.card) )
var/obj/item/weapon/card/id/card = incident.card.resolve()
. += "[card]"
else
. += "None"
. += "</a></td>"
@@ -191,8 +191,9 @@
. += "<tr><th colspan='2'>Convict</th></tr>"
. += "<tr><td colspan='2'><center>"
if( incident.criminal )
. += "[incident.criminal]"
if( istype(incident.card) )
var/obj/item/weapon/card/id/card = incident.card.resolve()
. += "[card]"
else
. += "None"
. += "</center></td></tr>"
@@ -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
+2 -2
View File
@@ -207,7 +207,6 @@
// Used for the 'time left' display
var/second = round(timeleft() % 60)
var/minute = round((timeleft() - second) / 60)
. = "<h2>Timer System:</h2>"
. += "<b>Controls [src.id]</b><hr>"
@@ -215,7 +214,8 @@
. += "Insert a Securty Incident Report to load a criminal sentence<br>"
else
// Time Left display (uses releasetime)
. += "<b>Criminal</b>: [incident.criminal]\t"
var/obj/item/weapon/card/id/card = incident.card.resolve()
. += "<b>Criminal</b>: [card]\t"
. += "<a href='?src=\ref[src];button=menu_mode;menu_choice=menu_charges'>Charges</a><br>"
. += "<b>Sentence</b>: [add_zero( "[minute]", 2 )]:[add_zero( "[second]", 2 )]\t"
// Start/Stop timer
@@ -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("<span class='warning'>[user] kicks over \the [src]!</span>", "<span class='danger'>You kick down \the [src]!</span>")
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)
@@ -161,10 +161,18 @@
if(!istype(W))
user <<"<span class ='notice'>The [W] is blocking the cigarettes.</span>"
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 << "<span class='notice'>You take a cigarette out of the pack.</span>"
update_icon()
else
+2 -1
View File
@@ -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
+64 -36
View File
@@ -168,43 +168,71 @@ proc/spawn_money(var/sum, spawnloc, mob/living/carbon/human/human_user as mob)
user << "<span class='notice'>Charge card's owner: [src.owner_name]. Credit chips remaining: [src.worth].</span>"
/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 << "<span class='notice'>You initiate the simulated scratch action process on the charge card...</span>"
if(do_after(user,5))
var/result = rand(1,10000)
if(result <= 5000) // 50% chance to not earn anything at all.
worth = 0
user << "<span class='notice'>The card reads [worth]. Not your lucky day!</span>"
else if (result <= 8000) // 30% chance to break even.
worth = 200
user << "<span class='notice'>The card reads [worth]. At least you broke even...</span>"
else if (result <= 9000) // 10% chance to earn 500 credits
worth = 500
user << "<span class='notice'>The card reads [worth]. You doubled your money!</span>"
else if (result <= 9500) // 5% chance to earn 1000 credits.
worth = 1000
user << "<span class='notice'>The card reads [worth]. Wow, you're lucky!</span>"
else if (result <= 9750) // 2.5% chance to earn 2500 credits.
worth = 2500
user << "<span class='notice'>The card reads [worth]. Wow, your luck is running high!</span>"
else if (result <= 9900) // 1.5% chance to earn 5000 credits.
worth = 5000
user << "<span class='notice'>The card reads [worth]. Wow, you're rich!</span>"
else if (result <= 9950) // 0.5% chance to earn 10000 credits
worth = 10000
user << "<span class='notice'>The card reads [worth]. Wow, your're super rich!</span>"
else if (result <= 9975) // 0.25% chance to earn 50000 credits.
worth = 25000
user << "<span class='notice'>The card reads [worth]. Wow, your're super rich!</span>"
else // 0.25% chance to earn 100000 credits.
user << "<span class='notice'>The card reads [worth]. YOU HIT THE JACKPOT!</span>"
worth = 50000
scratched = 1
owner_name = user.name
if(scratches_remaining <= 0)
user << "<span class='warning'>The card flashes: \"No scratches remaining!\"</span>"
return
if(next_scratch > world.time)
user << "<span class='warning'>The card flashes: \"Please wait!\"</span>"
return
next_scratch = world.time + 6 SECONDS
user << "<span class='notice'>You initiate the simulated scratch action process on the [src]...</span>"
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 << "<span class='notice'>The card flashes: You have: [scratches_remaining] SCRATCHES remaining! Scratch again!</span>"
else
user << "<span class='notice'>The card flashes: You have: [scratches_remaining] SCRATCHES remaining! You won a total of: [worth] CREDITS. Thanks for playing the space lottery!</span>"
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("<span class='game say'><span class='name'>\The [src]</span> pings, \"[message]\"</span>",2)
playsound(src.loc, 'sound/machines/ping.ogg', 50, 1, -4)
+1
View File
@@ -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
+10 -2
View File
@@ -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
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
@@ -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