mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-21 19:17:50 +01:00
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into OrganRefactor
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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.")
|
||||
@@ -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())
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user