Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into OrganRefactor

This commit is contained in:
Aurorablade
2016-02-02 15:35:54 -05:00
145 changed files with 1485 additions and 1290 deletions
+30 -13
View File
@@ -18,7 +18,8 @@
var/list/eng = new()
var/list/med = new()
var/list/sci = new()
var/list/supp = new()
var/list/ser = new()
var/list/sup = new()
var/list/bot = new()
var/list/misc = new()
var/list/isactive = new()
@@ -67,8 +68,11 @@
if(real_rank in science_positions)
sci[name] = rank
department = 1
if(real_rank in support_positions)
supp[name] = rank
if(real_rank in service_positions)
ser[name] = rank
department = 1
if(real_rank in supply_positions)
sup[name] = rank
department = 1
if(real_rank in nonhuman_positions)
bot[name] = rank
@@ -100,10 +104,15 @@
for(name in sci)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[sci[name]]</td><td>[isactive[name]]</td></tr>"
even = !even
if(supp.len > 0)
dat += "<tr><th colspan=3>Support</th></tr>"
for(name in supp)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[supp[name]]</td><td>[isactive[name]]</td></tr>"
if(ser.len > 0)
dat += "<tr><th colspan=3>Service</th></tr>"
for(name in ser)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[ser[name]]</td><td>[isactive[name]]</td></tr>"
even = !even
if(sup.len > 0)
dat += "<tr><th colspan=3>Supply</th></tr>"
for(name in sup)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[sup[name]]</td><td>[isactive[name]]</td></tr>"
even = !even
// in case somebody is insane and added them to the manifest, why not
if(bot.len > 0)
@@ -142,7 +151,8 @@ var/global/ManifestJSON
var/eng[0]
var/med[0]
var/sci[0]
var/supp[0]
var/ser[0]
var/sup[0]
var/bot[0]
var/misc[0]
for(var/datum/data/record/t in data_core.general)
@@ -183,11 +193,17 @@ var/global/ManifestJSON
if(depthead && sci.len != 1)
sci.Swap(1,sci.len)
if(real_rank in support_positions)
supp[++supp.len] = list("name" = name, "rank" = rank, "active" = isactive)
if(real_rank in service_positions)
ser[++ser.len] = list("name" = name, "rank" = rank, "active" = isactive)
department = 1
if(depthead && supp.len != 1)
supp.Swap(1,supp.len)
if(depthead && ser.len != 1)
ser.Swap(1,ser.len)
if(real_rank in supply_positions)
sup[++sup.len] = list("name" = name, "rank" = rank, "active" = isactive)
department = 1
if(depthead && sup.len != 1)
sup.Swap(1,sup.len)
if(real_rank in nonhuman_positions)
bot[++bot.len] = list("name" = name, "rank" = rank, "active" = isactive)
@@ -203,7 +219,8 @@ var/global/ManifestJSON
"eng" = eng,\
"med" = med,\
"sci" = sci,\
"supp" = supp,\
"ser" = ser,\
"sup" = sup,\
"bot" = bot,\
"misc" = misc\
)
@@ -271,7 +271,7 @@
singular_name = "glass sheet"
icon_state = "sheet-plasmaglass"
materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT*2)
origin_tech = "materials=3;plasma=2"
origin_tech = "materials=3;plasmatech=2"
var/created_window = /obj/structure/window/plasmabasic
var/full_window = /obj/structure/window/full/plasmabasic
@@ -360,7 +360,7 @@
singular_name = "reinforced plasma glass sheet"
icon_state = "sheet-plasmarglass"
materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT/2, MAT_GLASS=MINERAL_MATERIAL_AMOUNT*2)
origin_tech = "materials=3;plasma=2"
origin_tech = "materials=3;plasmatech=2"
var/created_window = /obj/structure/window/plasmareinforced
var/full_window = /obj/structure/window/full/plasmareinforced
@@ -152,6 +152,7 @@ var/global/list/datum/stack_recipe/wood_recipes = list ( \
new/datum/stack_recipe("coffin", /obj/structure/closet/coffin, 5, time = 15, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("apiary", /obj/item/apiary, 10, time = 25, one_per_turf = 0, on_floor = 0), \
new/datum/stack_recipe("easel", /obj/structure/easel, 3, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("wooden buckler", /obj/item/weapon/shield/riot/buckler, 20, time = 40), \
)
/obj/item/stack/sheet/wood
+30 -1
View File
@@ -1753,4 +1753,33 @@ obj/item/toy/cards/deck/syndicate/black
/obj/item/toy/figure/warden
name = "Warden action figure"
icon_state = "warden"
toysay = "Execute him for breaking in!"
toysay = "Execute him for breaking in!"
//////////////////////////////////////////////////////
// Magic 8-Ball / Conch //
//////////////////////////////////////////////////////
/obj/item/toy/eight_ball
name = "Magic 8-Ball"
desc = "Mystical! Magical! Ages 8+!"
icon = 'icons/obj/toy.dmi'
icon_state = "eight-ball"
var/use_action = "shakes the ball"
var/cooldown = 0
var/list/possible_answers = list("Definitely", "All signs point to yes.", "Most likely.", "Yes.", "Ask again later.", "Better not tell you now.", "Future Unclear.", "Maybe.", "Doubtful.", "No.", "Don't count on it.", "Never.")
/obj/item/toy/eight_ball/attack_self(mob/user as mob)
if(!cooldown)
var/answer = pick(possible_answers)
user.visible_message("<span class='notice'>[user] focuses on their question and [use_action]...</span>")
user.visible_message("<span class='notice'>\icon[src] The [src] says \"[answer]\"</span>")
spawn(30)
cooldown = 0
return
/obj/item/toy/eight_ball/conch
name = "Magic Conch Shell"
desc = "All hail the Magic Conch!"
icon_state = "conch"
use_action = "pulls the string"
possible_answers = list("Yes.", "No.", "Try asking again.", "Nothing.", "I don't think so.", "Neither.", "Maybe someday.")
+8
View File
@@ -30,6 +30,14 @@ LIGHTERS ARE IN LIGHTERS.DM
var/lastHolder = null
var/smoketime = 300
var/chem_volume = 30
species_fit = list("Vox", "Unathi", "Tajaran", "Vulpkanin")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/mask.dmi',
"Unathi" = 'icons/mob/species/unathi/mask.dmi',
"Tajaran" = 'icons/mob/species/tajaran/mask.dmi',
"Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi'
)
/obj/item/clothing/mask/cigarette/New()
..()
@@ -99,7 +99,7 @@
if(ishuman(M)) // Would've done this via species instead of type, but the basic mob doesn't have a species, go figure.
var/mob/living/carbon/human/H = M
if(H.species.flags & NO_DNA_RAD)
if(H.species.flags & NO_DNA)
return 0
if (!user.IsAdvancedToolUser())
+14 -1
View File
@@ -7,7 +7,7 @@
icon = 'icons/obj/weapons.dmi'
icon_state = "riot"
slot_flags = SLOT_BACK
force = 8
force = 10
throwforce = 5
throw_speed = 2
throw_range = 3
@@ -35,6 +35,19 @@
icon_state = "roman_shield"
item_state = "roman_shield"
/obj/item/weapon/shield/riot/buckler
name = "wooden buckler"
desc = "A medieval wooden buckler."
icon_state = "buckler"
item_state = "buckler"
materials = list()
/obj/item/weapon/shield/riot/buckler/IsShield()
if(prob(60))
return 1
else
return 0
/obj/item/weapon/shield/energy
name = "energy combat shield"
desc = "A shield capable of stopping most melee attacks. Protects user from almost all energy projectiles. It can be retracted, expanded, and stored anywhere."
+1 -1
View File
@@ -461,7 +461,7 @@
max_fuel = 40
w_class = 3.0
materials = list(MAT_METAL=70, MAT_GLASS=120)
origin_tech = "engineering=4;plasma=3"
origin_tech = "engineering=4;plasmatech=3"
var/last_gen = 0
change_icons = 0
can_off_process = 1
+11 -6
View File
@@ -466,7 +466,7 @@
vortex(target,user)
/obj/item/weapon/twohanded/mjollnir
name = "Mjollnir"
name = "Mjolnir"
desc = "A weapon worthy of a god, able to strike with the force of a lightning bolt. It crackles with barely contained energy."
icon_state = "mjollnir0"
flags = CONDUCT
@@ -474,7 +474,7 @@
no_embed = 1
force = 5
force_unwielded = 5
force_wielded = 20
force_wielded = 25
throwforce = 30
throw_range = 7
w_class = 5
@@ -485,25 +485,30 @@
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread()
s.set_up(5, 1, target.loc)
s.start()
target.take_organ_damage(0,30)
target.visible_message("<span class='danger'>[target.name] was shocked by the [src.name]!</span>", \
"<span class='userdanger'>You feel a powerful shock course through your body sending you flying!</span>", \
"<span class='danger'>You hear a heavy electrical crack.</span>")
"<span class='italics'>You hear a heavy electrical crack!</span>")
var/atom/throw_target = get_edge_target_turf(target, get_dir(src, get_step_away(target, src)))
target.throw_at(throw_target, 200, 4)
return
/obj/item/weapon/twohanded/mjollnir/attack(mob/M as mob, mob/user as mob)
..()
spawn(0)
if(wielded)
//if(charged == 5)
//charged = 0
playsound(src.loc, "sparks", 50, 1)
if(istype(M, /mob/living))
M.Stun(10)
M.Stun(3)
shock(M)
/obj/item/weapon/twohanded/mjollnir/throw_impact(atom/target)
. = ..()
if(istype(target, /mob/living))
var/mob/living/L = target
L.Stun(3)
shock(L)
/obj/item/weapon/twohanded/mjollnir/update_icon() //Currently only here to fuck with the on-mob icons.
icon_state = "mjollnir[wielded]"
return
@@ -115,7 +115,7 @@
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
new /obj/item/weapon/storage/lockbox/loyalty(src)
new /obj/item/weapon/storage/box/flashbangs(src)
new /obj/item/clothing/mask/gas/sechailer/swat(src)
new /obj/item/clothing/mask/gas/sechailer/hos(src)
new /obj/item/weapon/shield/riot/tele(src)
new /obj/item/weapon/melee/baton/loaded(src)
new /obj/item/weapon/storage/belt/security/sec(src)
@@ -152,7 +152,7 @@
new /obj/item/clothing/under/rank/warden/formal(src)
new /obj/item/clothing/under/rank/warden/corp(src)
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
new /obj/item/clothing/mask/gas/sechailer(src)
new /obj/item/clothing/mask/gas/sechailer/warden(src)
new /obj/item/taperoll/police(src)
new /obj/item/weapon/storage/box/zipties(src)
new /obj/item/weapon/storage/box/flashbangs(src)