Merge branch 'master' into heterochromia

This commit is contained in:
Timothy Teakettle
2020-09-24 22:09:03 +01:00
committed by GitHub
804 changed files with 36413 additions and 20835 deletions
-1
View File
@@ -70,7 +70,6 @@ interface with the mining shuttle at the landing site if a mobile beacon is also
var/datum/browser/popup = new(user, "computer", "base management", 550, 300) //width, height
popup.set_content("<center>[dat]</center>")
popup.set_title_image(usr.browse_rsc_icon(src.icon, src.icon_state))
popup.open()
@@ -12,13 +12,14 @@
slot_flags = ITEM_SLOT_BELT
var/cooldown = 35
var/current_cooldown = 0
var/range = 7
/obj/item/mining_scanner/attack_self(mob/user)
if(!user.client)
return
if(current_cooldown <= world.time)
current_cooldown = world.time + cooldown
mineral_scan_pulse(get_turf(user))
mineral_scan_pulse(get_turf(user), range)
//Debug item to identify all ore spread quickly
/obj/item/mining_scanner/admin
@@ -66,6 +66,16 @@
force = 19
custom_materials = list(/datum/material/diamond=4000)
/obj/item/pickaxe/rosegold
name = "rose gold pickaxe"
icon_state = "rgpickaxe"
item_state = "rgpickaxe"
toolspeed = 0.1
desc = "A pickaxe with a light rose gold head and some red glowing runes. Extremely robust at cracking rock walls and digging up dirt."
force = 19
custom_materials = list(/datum/material/gold=4000)
digrange = 3
/obj/item/pickaxe/plasteel
name = "plasteel-tipped pickaxe"
icon_state = "titaxe"
@@ -18,6 +18,15 @@
SSblackbox.record_feedback("tally", "jaunter", 1, "User") // user activated
activate(user, TRUE)
/obj/item/wormhole_jaunter/equipped(mob/user, slot)
. = ..()
if(slot == SLOT_BELT)
RegisterSignal(user, COMSIG_MOVABLE_CHASM_DROP, .proc/chasm_react)
/obj/item/wormhole_jaunter/dropped(mob/user)
. = ..()
UnregisterSignal(user, COMSIG_MOVABLE_CHASM_DROP)
/obj/item/wormhole_jaunter/proc/turf_check(mob/user)
var/turf/device_turf = get_turf(user)
if(!device_turf || is_centcom_level(device_turf.z) || is_reserved_level(device_turf.z))
@@ -71,13 +80,14 @@
SSblackbox.record_feedback("tally", "jaunter", 1, "EMP") // EMP accidental activation
activate(M)
/obj/item/wormhole_jaunter/proc/chasm_react(mob/user)
if(user.get_item_by_slot(SLOT_BELT) == src)
to_chat(user, "Your [name] activates, saving you from the chasm!</span>")
SSblackbox.record_feedback("tally", "jaunter", 1, "Chasm") // chasm automatic activation
activate(user, FALSE, TRUE)
else
to_chat(user, "[src] is not attached to your belt, preventing it from saving you from the chasm. RIP.</span>")
/obj/item/wormhole_jaunter/proc/chasm_react(mob/source, datum/component/chasm/C)
to_chat(source, "Your [name] activates, saving you from the chasm!</span>")
SSblackbox.record_feedback("tally", "jaunter", 1, "Chasm") // chasm automatic activation
activate(source, FALSE, TRUE)
if(C)
var/atom/A = C.parent
A.visible_message("<span class='boldwarning'>[source] falls into [A]!</span>")
return TRUE
//jaunter tunnel
/obj/effect/portal/jaunt_tunnel
+16 -12
View File
@@ -6,7 +6,6 @@
possible_destinations = "laborcamp_home;laborcamp_away"
req_access = list(ACCESS_BRIG)
/obj/machinery/computer/shuttle/labor/one_way
name = "prisoner shuttle console"
desc = "A one-way shuttle console, used to summon the shuttle to the labor camp."
@@ -14,14 +13,19 @@
circuit = /obj/item/circuitboard/computer/labor_shuttle/one_way
req_access = list( )
/obj/machinery/computer/shuttle/labor/one_way/Topic(href, href_list)
if(href_list["move"])
var/obj/docking_port/mobile/M = SSshuttle.getShuttle("laborcamp")
if(!M)
to_chat(usr, "<span class='warning'>Cannot locate shuttle!</span>")
return 0
var/obj/docking_port/stationary/S = M.get_docked()
if(S && S.name == "laborcamp_away")
to_chat(usr, "<span class='warning'>Shuttle is already at the outpost!</span>")
return 0
..()
/obj/machinery/computer/shuttle/labor/one_way/ui_act(action, params)
if(!allowed(usr))
to_chat(usr, "<span class='danger'>Access denied.</span>")
return
switch(action)
if("move")
var/obj/docking_port/mobile/M = SSshuttle.getShuttle("laborcamp")
if(!M)
to_chat(usr, "<span class='warning'>Cannot locate shuttle!</span>")
return
var/obj/docking_port/stationary/S = M.get_docked()
if(S?.name == "laborcamp_away")
to_chat(usr, "<span class='warning'>Shuttle is already at the outpost!</span>")
return
return ..()
+173 -54
View File
@@ -7,81 +7,199 @@
icon_state = "necrocrate"
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
/obj/structure/closet/crate/necropolis/tendril/random
name = "necropolis crate"
desc = "A chest for a chest, a head for a head."
/obj/structure/closet/crate/necropolis/tendril/random/PopulateContents()
var/loot = rand(1,3)
switch(loot)
if(1)
new /obj/structure/closet/crate/necropolis/tendril/magic(src)
if(2)
new /obj/structure/closet/crate/necropolis/tendril/weapon_armor(src)
if(3)
new /obj/structure/closet/crate/necropolis/tendril/misc(src)
/obj/structure/closet/crate/necropolis/tendril
desc = "It's watching you suspiciously."
/obj/structure/closet/crate/necropolis/tendril/PopulateContents()
/obj/structure/closet/crate/necropolis/tendril/magic
name = "relic necropolis chest"
/obj/structure/closet/crate/necropolis/tendril/weapon_armor
name = "armament necropolis chest"
/obj/structure/closet/crate/necropolis/tendril/misc
/obj/structure/closet/crate/necropolis/tendril/all
desc = "It's watching you suspiciously."
/obj/structure/closet/crate/necropolis/tendril/magic/PopulateContents()
var/loot = rand(1,10)
switch(loot)
if(1)
new /obj/item/soulstone/anybody(src)
if(2)
new /obj/item/rod_of_asclepius(src)
if(3)
new /obj/item/organ/heart/cursed/wizard(src)
if(4)
new /obj/item/book/granter/spell/summonitem(src)
if(5)
new /obj/item/borg/upgrade/modkit/lifesteal(src)
new /obj/item/bedsheet/cult(src)
if(6)
new /obj/item/clothing/neck/necklace/memento_mori(src)
if(7)
new /obj/item/warp_cube/red(src)
if(8)
new /obj/item/immortality_talisman(src)
if(9)
new /obj/item/gun/magic/wand/book/healing(src)
if(10)
new /obj/item/reagent_containers/glass/bottle/ichor/red(src)
new /obj/item/reagent_containers/glass/bottle/ichor/blue(src)
new /obj/item/reagent_containers/glass/bottle/ichor/green(src)
/obj/structure/closet/crate/necropolis/tendril/weapon_armor/PopulateContents()
var/loot = rand(1,11)
switch(loot)
if(1)
new /obj/item/clothing/suit/space/hardsuit/cult(src)
if(2)
new /obj/item/katana/lavaland(src)
if(3)
if(prob(50))
new /obj/item/disk/design_disk/modkit_disc/resonator_blast(src)
else
new /obj/item/disk/design_disk/modkit_disc/rapid_repeater(src)
if(4)
new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker/old(src)
if(5)
new /obj/item/nullrod/scythe/talking(src)
if(6)
new /obj/item/nullrod/armblade(src)
if(7)
new /obj/item/reagent_containers/food/drinks/bottle/holywater/hell(src)
new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor/old(src)
if(8)
new /obj/item/grenade/clusterbuster/inferno(src)
if(9)
new /obj/item/gun/magic/wand/book/shock(src)
if(10)
new /obj/item/gun/magic/wand/book/page(src)
if(11)
new /obj/item/gun/magic/wand/book/spark(src)
/obj/structure/closet/crate/necropolis/tendril/misc/PopulateContents()
var/loot = rand(1,14)
switch(loot)
if(1)
new /obj/item/shared_storage/red(src)
if(2)
new /obj/item/reagent_containers/glass/bottle/potion/flight(src)
if(3)
new /obj/item/ship_in_a_bottle(src)
if(4)
new /obj/item/voodoo(src)
if(5)
new /obj/item/book_of_babel(src)
if(6)
new /obj/item/jacobs_ladder(src)
if(7)
if(prob(50))
new /obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe(src)
else
new /obj/item/disk/design_disk/modkit_disc/bounty(src)
if(8)
new /obj/item/wisp_lantern(src)
if(9)
new /obj/item/pickaxe/rosegold(src)
if(10)
new /obj/item/bedsheet/cosmos(src)
new /obj/item/melee/skateboard/hoverboard(src)
if(11)
new /obj/item/disk/tech_disk/illegal(src)
if(12)
new /obj/item/clothing/suit/space/hardsuit/cult(src)
if(13)
new /obj/item/katana/lavaland(src)
if(14)
if(prob(50))
new /obj/item/disk/design_disk/modkit_disc/resonator_blast(src)
else
new /obj/item/disk/design_disk/modkit_disc/rapid_repeater(src)
/obj/structure/closet/crate/necropolis/tendril/all/PopulateContents()
var/loot = rand(1,29)
switch(loot)
if(1)
new /obj/item/shared_storage/red(src)
if(2)
new /obj/item/clothing/suit/space/hardsuit/cult(src)
if(3)
new /obj/item/soulstone/anybody(src)
if(4)
new /obj/item/katana/cursed(src)
if(5)
new /obj/item/clothing/glasses/godeye(src)
if(6)
new /obj/item/reagent_containers/glass/bottle/potion/flight(src)
if(7)
new /obj/item/pickaxe/diamond(src)
if(8)
if(prob(50))
new /obj/item/disk/design_disk/modkit_disc/resonator_blast(src)
else
new /obj/item/disk/design_disk/modkit_disc/rapid_repeater(src)
if(9)
new /obj/item/rod_of_asclepius(src)
if(10)
new /obj/item/organ/heart/cursed/wizard(src)
if(11)
if(3)
new /obj/item/ship_in_a_bottle(src)
if(12)
new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker/old(src)
if(13)
if(4)
new /obj/item/voodoo(src)
if(5)
new /obj/item/book_of_babel(src)
if(6)
new /obj/item/jacobs_ladder(src)
if(14)
new /obj/item/nullrod/scythe/talking(src)
if(15)
new /obj/item/nullrod/armblade(src)
if(16)
new /obj/item/guardiancreator(src)
if(17)
if(7)
if(prob(50))
new /obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe(src)
else
new /obj/item/disk/design_disk/modkit_disc/bounty(src)
if(18)
new /obj/item/warp_cube/red(src)
if(19)
if(8)
new /obj/item/wisp_lantern(src)
if(20)
new /obj/item/immortality_talisman(src)
if(21)
new /obj/item/gun/magic/hook(src)
if(22)
new /obj/item/voodoo(src)
if(23)
new /obj/item/grenade/clusterbuster/inferno(src)
if(24)
if(9)
new /obj/item/pickaxe/rosegold(src)
if(10)
new /obj/item/bedsheet/cosmos(src)
new /obj/item/melee/skateboard/hoverboard(src)
if(11)
new /obj/item/disk/tech_disk/illegal(src)
if(12)
new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker/old(src)
if(13)
new /obj/item/nullrod/scythe/talking(src)
if(14)
new /obj/item/nullrod/armblade(src)
if(15)
new /obj/item/reagent_containers/food/drinks/bottle/holywater/hell(src)
new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor/old(src)
if(25)
if(16)
new /obj/item/grenade/clusterbuster/inferno(src)
if(17)
new /obj/item/gun/magic/wand/book/shock(src)
if(18)
new /obj/item/gun/magic/wand/book/page(src)
if(19)
new /obj/item/gun/magic/wand/book/spark(src)
if(20)
new /obj/item/soulstone/anybody(src)
if(21)
new /obj/item/rod_of_asclepius(src)
if(22)
new /obj/item/organ/heart/cursed/wizard(src)
if(23)
new /obj/item/book/granter/spell/summonitem(src)
if(26)
new /obj/item/book_of_babel(src)
if(27)
if(24)
new /obj/item/borg/upgrade/modkit/lifesteal(src)
new /obj/item/bedsheet/cult(src)
if(28)
if(25)
new /obj/item/clothing/neck/necklace/memento_mori(src)
if(26)
new /obj/item/warp_cube/red(src)
if(27)
new /obj/item/immortality_talisman(src)
if(28)
new /obj/item/gun/magic/wand/book/healing(src)
if(29)
if(prob(50))
new /obj/item/malf_upgrade(src)
else
new /obj/item/disk/tech_disk/illegal(src)
new /obj/item/reagent_containers/glass/bottle/ichor/red(src)
new /obj/item/reagent_containers/glass/bottle/ichor/blue(src)
new /obj/item/reagent_containers/glass/bottle/ichor/green(src)
//KA modkit design discs
/obj/item/disk/design_disk/modkit_disc
@@ -747,7 +865,7 @@
new /obj/item/lava_staff(src)
if(3)
new /obj/item/book/granter/spell/sacredflame(src)
new /obj/item/gun/magic/wand/fireball(src)
new /obj/item/gun/magic/hook(src)
if(4)
new /obj/item/dragons_blood(src)
@@ -987,7 +1105,7 @@
if(2)
new /obj/item/gun/ballistic/revolver/doublebarrel/super(src)
if(3)
new /obj/item/gun/magic/staff/spellblade(src)
new /obj/item/guardiancreator(src)
/obj/structure/closet/crate/necropolis/bubblegum/crusher
name = "bloody bubblegum chest"
@@ -1076,6 +1194,7 @@
var/random_crystal = pick(choices)
new random_crystal(src)
new /obj/item/organ/vocal_cords/colossus(src)
new /obj/item/clothing/glasses/godeye(src)
/obj/structure/closet/crate/necropolis/colossus/crusher
name = "angelic colossus chest"
+1 -1
View File
@@ -76,7 +76,7 @@
circuit = /obj/item/circuitboard/computer/mining_shuttle
shuttleId = "mining"
possible_destinations = "mining_home;mining_away;landing_zone_dock;mining_public"
no_destination_swap = 1
no_destination_swap = TRUE
var/static/list/dumb_rev_heads = list()
/obj/machinery/computer/shuttle/mining/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)