Merge pull request #1025 from VOREStation/sync

Polaris Sync
This commit is contained in:
Arokha Sieyes
2017-02-23 18:50:16 -05:00
committed by GitHub
16 changed files with 168 additions and 37 deletions
+1 -1
View File
@@ -30,7 +30,7 @@
#define LANGUAGE_SOL_COMMON "Sol Common"
#define LANGUAGE_UNATHI "Sinta'unathi"
#define LANGUAGE_SIIK "Siik"
#define LANGUAGE_SKRELLIAN "Skrellian"
#define LANGUAGE_SKRELLIAN "Common Skrellian"
#define LANGUAGE_TRADEBAND "Tradeband"
#define LANGUAGE_GUTTER "Gutter"
#define LANGUAGE_SIGN "Sign Language"
+4
View File
@@ -58,6 +58,10 @@
name = "fax machine electronics"
path =/obj/item/weapon/circuitboard/fax
/datum/category_item/autolathe/engineering/papershredder
name = "paper shredder electronics"
path =/obj/item/weapon/circuitboard/papershredder
/datum/category_item/autolathe/engineering/microwave
name = "microwave electronics"
path =/obj/item/weapon/circuitboard/microwave
+6 -5
View File
@@ -49,12 +49,9 @@ datum/track/New(var/title_name, var/audio)
/obj/machinery/media/jukebox/New()
..()
component_parts = list()
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
component_parts += new /obj/item/weapon/stock_parts/console_screen(src)
component_parts += new /obj/item/stack/cable_coil(src, 5)
RefreshParts()
default_apply_parts()
wires = new/datum/wires/jukebox(src)
update_icon()
/obj/machinery/media/jukebox/Destroy()
StopPlaying()
@@ -78,6 +75,10 @@ datum/track/New(var/title_name, var/audio)
return
if(default_deconstruction_crowbar(user, W))
return
if(istype(W, /obj/item/weapon/wirecutters))
return wires.Interact(user)
if(istype(W, /obj/item/device/multitool))
return wires.Interact(user)
if(istype(W, /obj/item/weapon/wrench))
if(playing)
StopPlaying()
+7
View File
@@ -283,6 +283,13 @@ Class Procs:
return 1
return 0
/obj/machinery/proc/default_apply_parts()
var/obj/item/weapon/circuitboard/CB = circuit
if(!istype(CB))
return
CB.apply_default_parts(src)
RefreshParts()
/obj/machinery/proc/default_part_replacement(var/mob/user, var/obj/item/weapon/storage/part_replacer/R)
if(!istype(R))
return 0
@@ -35,3 +35,22 @@
if(istype(M, build_path))
return 1
return 0
//Should be called from the constructor of any machine to automatically populate the default parts
/obj/item/weapon/circuitboard/proc/apply_default_parts(var/obj/machinery/M)
if(!istype(M))
return
if(!req_components)
return
M.component_parts = list()
for(var/comp_path in req_components)
var/comp_amt = req_components[comp_path]
if(!comp_amt)
continue
if(ispath(comp_path, /obj/item/stack))
M.component_parts += new comp_path(contain_parts ? M : null, comp_amt)
else
for(var/i in 1 to comp_amt)
M.component_parts += new comp_path(contain_parts ? M : null)
return
@@ -0,0 +1,13 @@
#ifndef T_BOARD
#error T_BOARD macro is not defined but we need it!
#endif
/obj/item/weapon/circuitboard/papershredder
name = T_BOARD("papershredder")
build_path = /obj/machinery/papershredder
board_type = new /datum/frame/frame_types/machine
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
req_components = list(
/obj/item/weapon/stock_parts/motor = 1,
/obj/item/weapon/stock_parts/gear = 2,
/obj/item/weapon/stock_parts/micro_laser = 1)
+2 -2
View File
@@ -21,12 +21,12 @@
// 'basic' language; spoken by default.
/datum/language/common
name = LANGUAGE_GALCOM
desc = "The common galactic tongue."
desc = "The common galactic tongue, engineered for cross-species communication."
speech_verb = "says"
whisper_verb = "whispers"
key = "0"
flags = RESTRICTED
syllables = list("blah","blah","blah","bleh","meh","neh","nah","wah")
syllables = list("vol", "zum", "coo","zoo","bi","do","ooz","ite","og","re","si","ite","ish","ar","at","on","ee","east","ma","da", "rim")
//TODO flag certain languages to use the mob-type specific say_quote and then get rid of these.
/datum/language/common/get_spoken_verb(var/msg_end)
+39 -7
View File
@@ -72,24 +72,25 @@
/datum/language/skrell
name = LANGUAGE_SKRELLIAN
desc = "A melodic and complex language spoken by the Skrell of Qerrbalak. Some of the notes are inaudible to humans."
desc = "A set of warbles and hums, the language itself a complex mesh of both melodic and rhythmic components, exceptionally capable of conveying intent and emotion of the speaker."
speech_verb = "warbles"
ask_verb = "warbles"
exclaim_verb = "warbles"
exclaim_verb = "sings"
whisper_verb = "hums"
colour = "skrell"
key = "k"
space_chance = 30
flags = WHITELISTED
syllables = list("qr","qrr","xuq","qil","quum","xuqm","vol","xrim","zaoo","qu-uu","qix","qoo","zix","*","!")
syllables = list("qr","qrr","xuq","qil","quum","xuqm","vol","xrim","zaoo","qu-uu","qix","qoo","zix","*","!", "'")
/datum/language/human
name = LANGUAGE_SOL_COMMON
desc = "A bastardized hybrid of informal English and elements of Mandarin Chinese; the common language of the Sol system."
desc = "A bastardized hybrid of many languages, including Chinese, English, French, and more; it is the common language of the Sol system."
speech_verb = "says"
whisper_verb = "whispers"
colour = "solcom"
key = "1"
flags = WHITELISTED
//syllables are at the bottom of the file
/datum/language/human/get_spoken_verb(var/msg_end)
@@ -118,7 +119,7 @@
colour = "changeling"
key = "6"
flags = NO_STUTTER
syllables = list("beep","beep","beep","beep","beep","boop","boop","boop","bop","bop","dee","dee","doo","doo","hiss","hss","buzz","buzz","bzz","ksssh","keey","wurr","wahh","tzzz")
syllables = list("beep","beep","beep","beep","beep","boop","boop","boop","bop","bop","dee","dee","doo","doo","hiss","hss","buzz","buzz","bzz","ksssh","keey","wurr","wahh","tzzz","shh","shk")
space_chance = 10
/datum/language/machine/can_speak_special(var/mob/speaker)
@@ -155,9 +156,13 @@
/*
This list really long, mainly because I can't make up my mind about which mandarin syllables should be removed,
and the english syllables had to be duplicated so that there is roughly a 50-50 weighting.
The other 3 languages were duplicated just so they could show occasionally.
Sources:
http://www.sttmedia.com/syllablefrequency-english
http://www.sttmedia.com/syllablefrequency-spanish
http://www.sttmedia.com/syllablefrequency-russian
http://www.sttmedia.com/syllablefrequency-french
http://www.chinahighlights.com/travelguide/learning-chinese/pinyin-syllables.htm
*/
/datum/language/human/syllables = list(
@@ -210,4 +215,31 @@
"al", "an", "ar", "as", "at", "ea", "ed", "en", "er", "es", "ha", "he", "hi", "in", "is", "it",
"le", "me", "nd", "ne", "ng", "nt", "on", "or", "ou", "re", "se", "st", "te", "th", "ti", "to",
"ve", "wa", "all", "and", "are", "but", "ent", "era", "ere", "eve", "for", "had", "hat", "hen", "her", "hin",
"his", "ing", "ion", "ith", "not", "ome", "oul", "our", "sho", "ted", "ter", "tha", "the", "thi")
"his", "ing", "ion", "ith", "not", "ome", "oul", "our", "sho", "ted", "ter", "tha", "the", "thi",
"ah", "be", "bo", "eh", "ep", "et", "ka", "ko", "ha", "he", "ho", "ob", "oh", "op", "oc", "ot", "pa", "pe", "ct", "ta", "te", "to",
"vse", "tak", "nak", "no", "epo", "pre", "kan", "dly", "ime", "sha", "kur", "yey", "khi", "yeg", "ne",
"ion", "ne", "nas", "v",
"ah", "be", "bo", "eh", "ep", "et", "ka", "ko", "ha", "he", "ho", "ob", "oh", "op", "oc", "ot", "pa", "pe", "ct", "ta", "te", "to",
"vse", "tak", "nak", "no", "epo", "pre", "kan", "dly", "ime", "sha", "kur", "yey", "khi", "yeg", "ne",
"ion", "ne", "nas", "v",
"ah", "be", "bo", "eh", "ep", "et", "ka", "ko", "ha", "he", "ho", "ob", "oh", "op", "oc", "ot", "pa", "pe", "ct", "ta", "te", "to",
"vse", "tak", "nak", "no", "epo", "pre", "kan", "dly", "ime", "sha", "kur", "yey", "khi", "yeg", "ne",
"ion", "ne", "nas", "v",
"ai", "an", "ar", "au", "ce", "ch", "co", "de", "em", "en", "er", "es", "et", "eu", "il", "in", "is", "la", "le",
"ma", "me", "ne", "ns", "nt", "on", "ou", "pa", "qu", "ra", "re", "se", "te", "ti", "tr", "ue", "ur", "us", "ve",
"tou", "e", "eve", "hen", "son", "non", "not", "le",
"ai", "an", "ar", "au", "ce", "ch", "co", "de", "em", "en", "er", "es", "et", "eu", "il", "in", "is", "la", "le",
"ma", "me", "ne", "ns", "nt", "on", "ou", "pa", "qu", "ra", "re", "se", "te", "ti", "tr", "ue", "ur", "us", "ve",
"tou", "e", "eve", "hen", "son", "non", "not", "le",
"ai", "an", "ar", "au", "ce", "ch", "co", "de", "em", "en", "er", "es", "et", "eu", "il", "in", "is", "la", "le",
"ma", "me", "ne", "ns", "nt", "on", "ou", "pa", "qu", "ra", "re", "se", "te", "ti", "tr", "ue", "ur", "us", "ve",
"tou", "e", "eve", "hen", "son", "non", "not", "le",
"ad", "al", "an", "ar", "as", "ci", "co", "de", "do", "el", "en", "er", "es", "ie", "in", "la", "lo", "me", "na",
"no", "nt", "or", "os", "pa", "qu", "ra", "re", "ro", "se", "st", "ta", "te", "to", "ue", "un",
"tod", "ser", "su", "no", "nue", "el",
"ad", "al", "an", "ar", "as", "ci", "co", "de", "do", "el", "en", "er", "es", "ie", "in", "la", "lo", "me", "na",
"no", "nt", "or", "os", "pa", "qu", "ra", "re", "ro", "se", "st", "ta", "te", "to", "ue", "un",
"tod", "ser", "su", "no", "nue", "el",
"ad", "al", "an", "ar", "as", "ci", "co", "de", "do", "el", "en", "er", "es", "ie", "in", "la", "lo", "me", "na",
"no", "nt", "or", "os", "pa", "qu", "ra", "re", "ro", "se", "st", "ta", "te", "to", "ue", "un",
"tod", "ser", "su", "no", "nue", "el")
+68 -18
View File
@@ -1,10 +1,19 @@
//
// Paper Shredder Machine
//
/obj/machinery/papershredder
name = "paper shredder"
desc = "For those documents you don't want seen."
icon = 'icons/obj/bureaucracy.dmi'
icon_state = "papershredder0"
icon = 'icons/obj/papershredder.dmi'
icon_state = "shredder-off"
var/shred_anim = "shredder-shredding"
density = 1
anchored = 1
use_power = 1
idle_power_usage = 10
active_power_usage = 200
power_channel = EQUIP
circuit = /obj/item/weapon/circuitboard/papershredder
var/max_paper = 10
var/paperamount = 0
var/list/shred_amounts = list(
@@ -16,17 +25,40 @@
/obj/item/weapon/paper_bundle = 3,
)
/obj/machinery/papershredder/New()
..()
component_parts = list()
component_parts += new /obj/item/weapon/stock_parts/motor(src)
component_parts += new /obj/item/weapon/stock_parts/gear(src)
component_parts += new /obj/item/weapon/stock_parts/gear(src)
component_parts += new /obj/item/weapon/stock_parts/micro_laser(src)
RefreshParts()
update_icon()
/obj/machinery/papershredder/attackby(var/obj/item/W, var/mob/user)
if(istype(W, /obj/item/weapon/storage))
empty_bin(user, W)
return
else if(istype(W, /obj/item/weapon/wrench))
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
anchored = !anchored
user << "<span class='notice'>You [anchored ? "wrench" : "unwrench"] \the [src].</span>"
return
else if(default_part_replacement(user, W))
return
else if(default_deconstruction_screwdriver(user, W))
return
else if(default_deconstruction_crowbar(user, W))
return
else
var/paper_result
for(var/shred_type in shred_amounts)
if(istype(W, shred_type))
paper_result = shred_amounts[shred_type]
if(paper_result)
if(inoperable())
return // Need powah!
if(paperamount == max_paper)
user << "<span class='warning'>\The [src] is full; please empty it before you continue.</span>"
return
@@ -34,6 +66,7 @@
user.drop_from_inventory(W)
qdel(W)
playsound(src.loc, 'sound/items/pshred.ogg', 75, 1)
flick(shred_anim, src)
if(paperamount > max_paper)
user <<"<span class='danger'>\The [src] was too full, and shredded paper goes everywhere!</span>"
for(var/i=(paperamount-max_paper);i>0;i--)
@@ -92,8 +125,40 @@
paperamount--
return PoolOrNew(/obj/item/weapon/shreddedp, get_turf(src))
/obj/machinery/papershredder/power_change()
..()
spawn(rand(0,15))
update_icon()
/obj/machinery/papershredder/update_icon()
icon_state = "papershredder[max(0,min(5,Floor(paperamount/2)))]"
overlays.Cut()
if(operable())
icon_state = "shredder-on"
else
icon_state = "shredder-off"
// Fullness overlay
overlays += "shredder-[max(0,min(5,Floor(paperamount/max_paper*5)))]"
if (panel_open)
overlays += "panel_open"
//
// Shredded Paper Item
//
/obj/item/weapon/shreddedp
name = "shredded paper"
icon = 'icons/obj/bureaucracy.dmi'
icon_state = "shredp"
throwforce = 0
w_class = ITEMSIZE_TINY
throw_range = 3
throw_speed = 1
/obj/item/weapon/shreddedp/New()
..()
pixel_x = rand(-5,5)
pixel_y = rand(-5,5)
if(prob(65)) color = pick("#BABABA","#7F7F7F")
/obj/item/weapon/shreddedp/attackby(var/obj/item/W as obj, var/mob/user)
if(istype(W, /obj/item/weapon/flame/lighter))
@@ -122,18 +187,3 @@
M.drop_from_inventory(src)
PoolOrNew(/obj/effect/decal/cleanable/ash,get_turf(src))
qdel(src)
/obj/item/weapon/shreddedp
name = "shredded paper"
icon = 'icons/obj/bureaucracy.dmi'
icon_state = "shredp"
throwforce = 0
w_class = ITEMSIZE_TINY
throw_range = 3
throw_speed = 1
/obj/item/weapon/shreddedp/New()
..()
pixel_x = rand(-5,5)
pixel_y = rand(-5,5)
if(prob(65)) color = pick("#BABABA","#7F7F7F")
Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

+4
View File
@@ -212,6 +212,10 @@ h4 {
font-size: 10px;
}
.multiLine {
white-space: pre-wrap;
}
.noticePlaceholder {
position: relative;
font-size: 12px;
+1 -1
View File
@@ -75,7 +75,7 @@ code/modules/mob/living/silicon/pai/software_modules.dm
</div>
<div class="item">
<div class="itemLabel">Important Notes</div>
<div class="itemContent">{{:data.medical.notes}}</div>
<div class="itemContent multiLine">{{:data.medical.notes}}</div>
</div>
{{/if}}
+1 -1
View File
@@ -65,7 +65,7 @@ code/modules/mob/living/silicon/pai/software_modules.dm
</div>
<div class="item">
<div class="itemLabel">Important Notes</div>
<div class="itemContent">{{:data.security.notes}}</div>
<div class="itemContent multiLine">{{:data.security.notes}}</div>
</div>
{{/if}}
+2 -2
View File
@@ -591,7 +591,7 @@ Used In File(s): \code\game\objects\items\devices\PDA\PDA.dm
<span class="good">Details: </span> <span class="average">{{:data.records.medical.alg_d}} </span><br><br>
<span class="good">Current Disease: </span> <span class="average">{{:data.records.medical.cdi}} </span><br>
<span class="good">Details: </span> <span class="average">{{:data.records.medical.alg_d}} </span><br><br>
<span class="good">Important Notes: </span> <span class="average">{{:data.records.medical.notes}} </span>
<span class="good">Important Notes: </span> <span class="average multiLine">{{:data.records.medical.notes}} </span>
{{else}}
<span class="bad">
Medical Record Lost!
@@ -643,7 +643,7 @@ Used In File(s): \code\game\objects\items\devices\PDA\PDA.dm
<span class="good">Details: </span><span class="average">{{:data.records.security.mi_crim_d}} </span><br><br>
<span class="good">Major Crimes: </span><span class="average">{{:data.records.security.ma_crim}} </span><br>
<span class="good">Details: </span><span class="average">{{:data.records.security.ma_crim_d}} </span><br><br>
<span class="good">Important Notes: </span><span class="average">{{:data.records.security.notes}} </span>
<span class="good">Important Notes: </span><span class="average multiLine">{{:data.records.security.notes}} </span>
{{else}}
<span class="bad">
Security Record Lost!<br><br>
+1
View File
@@ -903,6 +903,7 @@
#include "code\game\objects\items\weapons\circuitboards\machinery\mech_recharger.dm"
#include "code\game\objects\items\weapons\circuitboards\machinery\mining_drill.dm"
#include "code\game\objects\items\weapons\circuitboards\machinery\pacman.dm"
#include "code\game\objects\items\weapons\circuitboards\machinery\papershredder.dm"
#include "code\game\objects\items\weapons\circuitboards\machinery\power.dm"
#include "code\game\objects\items\weapons\circuitboards\machinery\recharge_station.dm"
#include "code\game\objects\items\weapons\circuitboards\machinery\research.dm"