here we go again (#2456)
This commit is contained in:
@@ -23,33 +23,33 @@
|
||||
var/loot = rand(1,100) //100 different crates with varying chances of spawning
|
||||
switch(loot)
|
||||
if(1 to 5) //5% chance
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/bottle/rum(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/deus(src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey(src)
|
||||
new /obj/item/weapon/lighter(src)
|
||||
new /obj/item/reagent_containers/food/drinks/bottle/rum(src)
|
||||
new /obj/item/reagent_containers/food/snacks/grown/ambrosia/deus(src)
|
||||
new /obj/item/reagent_containers/food/drinks/bottle/whiskey(src)
|
||||
new /obj/item/lighter(src)
|
||||
if(6 to 10)
|
||||
new /obj/item/weapon/bedsheet(src)
|
||||
new /obj/item/weapon/kitchen/knife(src)
|
||||
new /obj/item/weapon/wirecutters(src)
|
||||
new /obj/item/weapon/screwdriver(src)
|
||||
new /obj/item/weapon/weldingtool(src)
|
||||
new /obj/item/weapon/hatchet(src)
|
||||
new /obj/item/weapon/crowbar(src)
|
||||
new /obj/item/bedsheet(src)
|
||||
new /obj/item/kitchen/knife(src)
|
||||
new /obj/item/wirecutters(src)
|
||||
new /obj/item/screwdriver(src)
|
||||
new /obj/item/weldingtool(src)
|
||||
new /obj/item/hatchet(src)
|
||||
new /obj/item/crowbar(src)
|
||||
if(11 to 15)
|
||||
new /obj/item/weapon/reagent_containers/glass/beaker/bluespace(src)
|
||||
new /obj/item/reagent_containers/glass/beaker/bluespace(src)
|
||||
if(16 to 20)
|
||||
for(var/i in 1 to 10)
|
||||
new /obj/item/weapon/ore/diamond(src)
|
||||
new /obj/item/ore/diamond(src)
|
||||
if(21 to 25)
|
||||
for(var/i in 1 to 5)
|
||||
new /obj/item/weapon/poster/random_contraband(src)
|
||||
new /obj/item/poster/random_contraband(src)
|
||||
if(26 to 30)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/reagent_containers/glass/beaker/noreact(src)
|
||||
new /obj/item/reagent_containers/glass/beaker/noreact(src)
|
||||
if(31 to 35)
|
||||
new /obj/item/seeds/firelemon(src)
|
||||
if(36 to 40)
|
||||
new /obj/item/weapon/melee/baton(src)
|
||||
new /obj/item/melee/baton(src)
|
||||
if(41 to 45)
|
||||
new /obj/item/clothing/under/shorts/red(src)
|
||||
new /obj/item/clothing/under/shorts/blue(src)
|
||||
@@ -58,7 +58,7 @@
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/clothing/neck/tie/horrible(src)
|
||||
if(51 to 52) // 2% chance
|
||||
new /obj/item/weapon/melee/classic_baton(src)
|
||||
new /obj/item/melee/classic_baton(src)
|
||||
if(53 to 54)
|
||||
new /obj/item/toy/balloon(src)
|
||||
if(55 to 56)
|
||||
@@ -76,35 +76,35 @@
|
||||
new /obj/item/clothing/neck/petcollar(src)
|
||||
if(63 to 64)
|
||||
for(var/i in 1 to rand(4, 7))
|
||||
var/newcoin = pick(/obj/item/weapon/coin/silver, /obj/item/weapon/coin/silver, /obj/item/weapon/coin/silver, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/iron, /obj/item/weapon/coin/gold, /obj/item/weapon/coin/diamond, /obj/item/weapon/coin/plasma, /obj/item/weapon/coin/uranium)
|
||||
var/newcoin = pick(/obj/item/coin/silver, /obj/item/coin/silver, /obj/item/coin/silver, /obj/item/coin/iron, /obj/item/coin/iron, /obj/item/coin/iron, /obj/item/coin/gold, /obj/item/coin/diamond, /obj/item/coin/plasma, /obj/item/coin/uranium)
|
||||
new newcoin(src)
|
||||
if(65 to 66)
|
||||
new /obj/item/clothing/suit/ianshirt(src)
|
||||
new /obj/item/clothing/suit/hooded/ian_costume(src)
|
||||
if(67 to 68)
|
||||
for(var/i in 1 to rand(4, 7))
|
||||
var /newitem = pick(subtypesof(/obj/item/weapon/stock_parts) - /obj/item/weapon/stock_parts/subspace)
|
||||
var /newitem = pick(subtypesof(/obj/item/stock_parts) - /obj/item/stock_parts/subspace)
|
||||
new newitem(src)
|
||||
if(69 to 70)
|
||||
for(var/i in 1 to 5)
|
||||
new /obj/item/weapon/ore/bluespace_crystal(src)
|
||||
new /obj/item/ore/bluespace_crystal(src)
|
||||
if(71 to 72)
|
||||
new /obj/item/weapon/pickaxe/drill(src)
|
||||
new /obj/item/pickaxe/drill(src)
|
||||
if(73 to 74)
|
||||
new /obj/item/weapon/pickaxe/drill/jackhammer(src)
|
||||
new /obj/item/pickaxe/drill/jackhammer(src)
|
||||
if(75 to 76)
|
||||
new /obj/item/weapon/pickaxe/diamond(src)
|
||||
new /obj/item/pickaxe/diamond(src)
|
||||
if(77 to 78)
|
||||
new /obj/item/weapon/pickaxe/drill/diamonddrill(src)
|
||||
new /obj/item/pickaxe/drill/diamonddrill(src)
|
||||
if(79 to 80)
|
||||
new /obj/item/weapon/cane(src)
|
||||
new /obj/item/cane(src)
|
||||
new /obj/item/clothing/head/collectable/tophat(src)
|
||||
if(81 to 82)
|
||||
new /obj/item/weapon/gun/energy/plasmacutter(src)
|
||||
new /obj/item/gun/energy/plasmacutter(src)
|
||||
if(83 to 84)
|
||||
new /obj/item/toy/katana(src)
|
||||
if(85 to 86)
|
||||
new /obj/item/weapon/defibrillator/compact(src)
|
||||
new /obj/item/defibrillator/compact(src)
|
||||
if(87) //1% chance
|
||||
new /obj/item/weed_extract(src)
|
||||
if(88)
|
||||
@@ -116,18 +116,18 @@
|
||||
if(91)
|
||||
new /obj/item/device/soulstone/anybody(src)
|
||||
if(92)
|
||||
new /obj/item/weapon/katana(src)
|
||||
new /obj/item/katana(src)
|
||||
if(93)
|
||||
new /obj/item/weapon/dnainjector/xraymut(src)
|
||||
new /obj/item/dnainjector/xraymut(src)
|
||||
if(94)
|
||||
new /obj/item/weapon/storage/backpack/clown(src)
|
||||
new /obj/item/storage/backpack/clown(src)
|
||||
new /obj/item/clothing/under/rank/clown(src)
|
||||
new /obj/item/clothing/shoes/clown_shoes(src)
|
||||
new /obj/item/device/pda/clown(src)
|
||||
new /obj/item/clothing/mask/gas/clown_hat(src)
|
||||
new /obj/item/weapon/bikehorn(src)
|
||||
new /obj/item/bikehorn(src)
|
||||
new /obj/item/toy/crayon/rainbow(src)
|
||||
new /obj/item/weapon/reagent_containers/spray/waterflower(src)
|
||||
new /obj/item/reagent_containers/spray/waterflower(src)
|
||||
if(95)
|
||||
new /obj/item/clothing/under/rank/mime(src)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
@@ -137,17 +137,17 @@
|
||||
new /obj/item/clothing/head/beret(src)
|
||||
new /obj/item/clothing/suit/suspenders(src)
|
||||
new /obj/item/toy/crayon/mime(src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing(src)
|
||||
new /obj/item/reagent_containers/food/drinks/bottle/bottleofnothing(src)
|
||||
if(96)
|
||||
new /obj/item/weapon/hand_tele(src)
|
||||
new /obj/item/hand_tele(src)
|
||||
if(97)
|
||||
new /obj/item/clothing/mask/balaclava
|
||||
new /obj/item/weapon/gun/ballistic/automatic/pistol(src)
|
||||
new /obj/item/gun/ballistic/automatic/pistol(src)
|
||||
new /obj/item/ammo_box/magazine/m10mm(src)
|
||||
if(98)
|
||||
new /obj/item/weapon/katana/cursed(src)
|
||||
new /obj/item/katana/cursed(src)
|
||||
if(99)
|
||||
new /obj/item/weapon/storage/belt/champion(src)
|
||||
new /obj/item/storage/belt/champion(src)
|
||||
new /obj/item/clothing/mask/luchador(src)
|
||||
if(100)
|
||||
new /obj/item/clothing/head/bearpelt(src)
|
||||
@@ -186,9 +186,9 @@
|
||||
return
|
||||
attack_hand(user)
|
||||
|
||||
/obj/structure/closet/crate/secure/loot/attackby(obj/item/weapon/W, mob/user)
|
||||
/obj/structure/closet/crate/secure/loot/attackby(obj/item/W, mob/user)
|
||||
if(locked)
|
||||
if(istype(W, /obj/item/weapon/card/emag))
|
||||
if(istype(W, /obj/item/card/emag))
|
||||
boom(user)
|
||||
return
|
||||
else if(istype(W, /obj/item/device/multitool))
|
||||
|
||||
@@ -24,7 +24,7 @@ interface with the mining shuttle at the landing site if a mobile beacon is also
|
||||
var/possible_destinations
|
||||
clockwork = TRUE
|
||||
var/obj/item/device/gps/internal/base/locator
|
||||
circuit = /obj/item/weapon/circuitboard/computer/auxillary_base
|
||||
circuit = /obj/item/circuitboard/computer/auxillary_base
|
||||
|
||||
/obj/machinery/computer/auxillary_base/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
dir = direct //This camera eye is visible as a drone, and needs to keep the dir updated
|
||||
..()
|
||||
|
||||
/obj/item/weapon/construction/rcd/internal //Base console's internal RCD. Roundstart consoles are filled, rebuilt cosoles start empty.
|
||||
/obj/item/construction/rcd/internal //Base console's internal RCD. Roundstart consoles are filled, rebuilt cosoles start empty.
|
||||
name = "internal RCD"
|
||||
max_matter = 600 //Bigger container and faster speeds due to being specialized and stationary.
|
||||
no_ammo_message = "<span class='warning'>Internal matter exhausted. Please add additional materials.</span>"
|
||||
@@ -30,8 +30,8 @@
|
||||
name = "base construction console"
|
||||
desc = "An industrial computer integrated with a camera-assisted rapid construction drone."
|
||||
networks = list("SS13")
|
||||
var/obj/item/weapon/construction/rcd/internal/RCD //Internal RCD. The computer passes user commands to this in order to avoid massive copypaste.
|
||||
circuit = /obj/item/weapon/circuitboard/computer/base_construction
|
||||
var/obj/item/construction/rcd/internal/RCD //Internal RCD. The computer passes user commands to this in order to avoid massive copypaste.
|
||||
circuit = /obj/item/circuitboard/computer/base_construction
|
||||
off_action = new/datum/action/innate/camera_off/base_construction
|
||||
jump_action = null
|
||||
var/datum/action/innate/aux_base/switch_mode/switch_mode_action = new //Action for switching the RCD's build modes
|
||||
@@ -79,7 +79,7 @@
|
||||
|
||||
|
||||
/obj/machinery/computer/camera_advanced/base_construction/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/weapon/rcd_ammo) || istype(W, /obj/item/stack/sheet))
|
||||
if(istype(W, /obj/item/rcd_ammo) || istype(W, /obj/item/stack/sheet))
|
||||
RCD.attackby(W, user, params) //If trying to feed the console more materials, pass it along to the RCD.
|
||||
else
|
||||
return ..()
|
||||
@@ -140,7 +140,7 @@
|
||||
remote_eye = C.remote_control
|
||||
B = target
|
||||
if(!B.RCD) //The console must always have an RCD.
|
||||
B.RCD = new /obj/item/weapon/construction/rcd/internal(src) //If the RCD is lost somehow, make a new (empty) one!
|
||||
B.RCD = new /obj/item/construction/rcd/internal(src) //If the RCD is lost somehow, make a new (empty) one!
|
||||
|
||||
/datum/action/innate/aux_base/proc/check_spot()
|
||||
//Check a loction to see if it is inside the aux base at the station. Camera visbility checks omitted so as to not hinder construction.
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
heat_protection = CHEST|GROIN|LEGS|ARMS
|
||||
hoodtype = /obj/item/clothing/head/hooded/explorer
|
||||
armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 50, bio = 100, rad = 50, fire = 50, acid = 50)
|
||||
allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/internals, /obj/item/weapon/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/weapon/gun/energy/kinetic_accelerator, /obj/item/weapon/pickaxe)
|
||||
allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe)
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/head/hooded/explorer
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*********************Mining Hammer****************/
|
||||
/obj/item/weapon/twohanded/required/kinetic_crusher
|
||||
/obj/item/twohanded/required/kinetic_crusher
|
||||
icon = 'icons/obj/mining.dmi'
|
||||
icon_state = "mining_hammer1"
|
||||
item_state = "mining_hammer1"
|
||||
@@ -26,11 +26,11 @@
|
||||
var/charged = TRUE
|
||||
var/charge_time = 15
|
||||
|
||||
/obj/item/weapon/twohanded/required/kinetic_crusher/Destroy()
|
||||
/obj/item/twohanded/required/kinetic_crusher/Destroy()
|
||||
QDEL_LIST(trophies)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/twohanded/required/kinetic_crusher/examine(mob/living/user)
|
||||
/obj/item/twohanded/required/kinetic_crusher/examine(mob/living/user)
|
||||
..()
|
||||
to_chat(user, "<span class='notice'>Mark a large creature with the destabilizing force, then hit them in melee to do <b>50</b> damage.</span>")
|
||||
to_chat(user, "<span class='notice'>Does <b>80</b> damage if the target is backstabbed, instead of <b>50</b>.</span>")
|
||||
@@ -38,8 +38,8 @@
|
||||
var/obj/item/crusher_trophy/T = t
|
||||
to_chat(user, "<span class='notice'>It has \a [T] attached, which cause [T.effect_desc()].</span>")
|
||||
|
||||
/obj/item/weapon/twohanded/required/kinetic_crusher/attackby(obj/item/A, mob/living/user)
|
||||
if(istype(A, /obj/item/weapon/crowbar))
|
||||
/obj/item/twohanded/required/kinetic_crusher/attackby(obj/item/A, mob/living/user)
|
||||
if(istype(A, /obj/item/crowbar))
|
||||
if(LAZYLEN(trophies))
|
||||
to_chat(user, "<span class='notice'>You remove [src]'s trophies.</span>")
|
||||
playsound(loc, A.usesound, 100, 1)
|
||||
@@ -54,7 +54,7 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/twohanded/required/kinetic_crusher/attack(mob/living/target, mob/living/carbon/user)
|
||||
/obj/item/twohanded/required/kinetic_crusher/attack(mob/living/target, mob/living/carbon/user)
|
||||
var/datum/status_effect/crusher_damage/C = target.has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING)
|
||||
var/target_health = target.health
|
||||
..()
|
||||
@@ -65,7 +65,7 @@
|
||||
if(!QDELETED(C) && !QDELETED(target))
|
||||
C.total_damage += target_health - target.health //we did some damage, but let's not assume how much we did
|
||||
|
||||
/obj/item/weapon/twohanded/required/kinetic_crusher/afterattack(atom/target, mob/living/user, proximity_flag)
|
||||
/obj/item/twohanded/required/kinetic_crusher/afterattack(atom/target, mob/living/user, proximity_flag)
|
||||
if(!proximity_flag && charged)//Mark a target, or mine a tile.
|
||||
var/turf/proj_turf = user.loc
|
||||
if(!isturf(proj_turf))
|
||||
@@ -109,7 +109,7 @@
|
||||
C.total_damage += 50
|
||||
L.apply_damage(50, BRUTE, blocked = def_check)
|
||||
|
||||
/obj/item/weapon/twohanded/required/kinetic_crusher/proc/Recharge()
|
||||
/obj/item/twohanded/required/kinetic_crusher/proc/Recharge()
|
||||
if(!charged)
|
||||
charged = TRUE
|
||||
icon_state = "mining_hammer1"
|
||||
@@ -125,7 +125,7 @@
|
||||
flag = "bomb"
|
||||
range = 6
|
||||
log_override = TRUE
|
||||
var/obj/item/weapon/twohanded/required/kinetic_crusher/hammer_synced
|
||||
var/obj/item/twohanded/required/kinetic_crusher/hammer_synced
|
||||
|
||||
/obj/item/projectile/destabilizer/Destroy()
|
||||
hammer_synced = null
|
||||
@@ -164,12 +164,12 @@
|
||||
return "errors"
|
||||
|
||||
/obj/item/crusher_trophy/attackby(obj/item/A, mob/living/user)
|
||||
if(istype(A, /obj/item/weapon/twohanded/required/kinetic_crusher))
|
||||
if(istype(A, /obj/item/twohanded/required/kinetic_crusher))
|
||||
add_to(A, user)
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/crusher_trophy/proc/add_to(obj/item/weapon/twohanded/required/kinetic_crusher/H, mob/living/user)
|
||||
/obj/item/crusher_trophy/proc/add_to(obj/item/twohanded/required/kinetic_crusher/H, mob/living/user)
|
||||
for(var/t in H.trophies)
|
||||
var/obj/item/crusher_trophy/T = t
|
||||
if(istype(T, denied_type) || istype(src, T.denied_type))
|
||||
@@ -181,7 +181,7 @@
|
||||
to_chat(user, "<span class='notice'>You attach [src] to [H].</span>")
|
||||
return TRUE
|
||||
|
||||
/obj/item/crusher_trophy/proc/remove_from(obj/item/weapon/twohanded/required/kinetic_crusher/H, mob/living/user)
|
||||
/obj/item/crusher_trophy/proc/remove_from(obj/item/twohanded/required/kinetic_crusher/H, mob/living/user)
|
||||
forceMove(get_turf(H))
|
||||
H.trophies -= src
|
||||
return TRUE
|
||||
@@ -242,12 +242,12 @@
|
||||
/obj/item/crusher_trophy/legion_skull/effect_desc()
|
||||
return "a kinetic crusher to recharge <b>[bonus_value*0.1]</b> second[bonus_value*0.1 == 1 ? "":"s"] faster"
|
||||
|
||||
/obj/item/crusher_trophy/legion_skull/add_to(obj/item/weapon/twohanded/required/kinetic_crusher/H, mob/living/user)
|
||||
/obj/item/crusher_trophy/legion_skull/add_to(obj/item/twohanded/required/kinetic_crusher/H, mob/living/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
H.charge_time -= bonus_value
|
||||
|
||||
/obj/item/crusher_trophy/legion_skull/remove_from(obj/item/weapon/twohanded/required/kinetic_crusher/H, mob/living/user)
|
||||
/obj/item/crusher_trophy/legion_skull/remove_from(obj/item/twohanded/required/kinetic_crusher/H, mob/living/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
H.charge_time += bonus_value
|
||||
@@ -300,14 +300,14 @@
|
||||
/obj/item/crusher_trophy/demon_claws/effect_desc()
|
||||
return "melee hits to do <b>[bonus_value * 0.2]</b> more damage and heal you for <b>[bonus_value * 0.1]</b>; this effect is increased by <b>500%</b> during mark detonation"
|
||||
|
||||
/obj/item/crusher_trophy/demon_claws/add_to(obj/item/weapon/twohanded/required/kinetic_crusher/H, mob/living/user)
|
||||
/obj/item/crusher_trophy/demon_claws/add_to(obj/item/twohanded/required/kinetic_crusher/H, mob/living/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
H.force += bonus_value * 0.2
|
||||
H.force_unwielded += bonus_value * 0.2
|
||||
H.force_wielded += bonus_value * 0.2
|
||||
|
||||
/obj/item/crusher_trophy/demon_claws/remove_from(obj/item/weapon/twohanded/required/kinetic_crusher/H, mob/living/user)
|
||||
/obj/item/crusher_trophy/demon_claws/remove_from(obj/item/twohanded/required/kinetic_crusher/H, mob/living/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
H.force -= bonus_value * 0.2
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**********************Lazarus Injector**********************/
|
||||
/obj/item/weapon/lazarus_injector
|
||||
/obj/item/lazarus_injector
|
||||
name = "lazarus injector"
|
||||
desc = "An injector with a cocktail of nanomachines and chemicals, this device can seemingly raise animals from the dead, making them become friendly to the user. Unfortunately, the process is useless on higher forms of life and incredibly costly, so these were hidden in storage until an executive thought they'd be great motivation for some of their employees."
|
||||
icon = 'icons/obj/syringe.dmi'
|
||||
@@ -16,7 +16,7 @@
|
||||
var/revive_type = SENTIENCE_ORGANIC //So you can't revive boss monsters or robots with it
|
||||
origin_tech = "biotech=4;magnets=6"
|
||||
|
||||
/obj/item/weapon/lazarus_injector/afterattack(atom/target, mob/user, proximity_flag)
|
||||
/obj/item/lazarus_injector/afterattack(atom/target, mob/user, proximity_flag)
|
||||
if(!loaded)
|
||||
return
|
||||
if(isliving(target) && proximity_flag)
|
||||
@@ -51,11 +51,11 @@
|
||||
to_chat(user, "<span class='info'>[src] is only effective on lesser beings.</span>")
|
||||
return
|
||||
|
||||
/obj/item/weapon/lazarus_injector/emp_act()
|
||||
/obj/item/lazarus_injector/emp_act()
|
||||
if(!malfunctioning)
|
||||
malfunctioning = 1
|
||||
|
||||
/obj/item/weapon/lazarus_injector/examine(mob/user)
|
||||
/obj/item/lazarus_injector/examine(mob/user)
|
||||
..()
|
||||
if(!loaded)
|
||||
to_chat(user, "<span class='info'>[src] is empty.</span>")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*****************Pickaxes & Drills & Shovels****************/
|
||||
/obj/item/weapon/pickaxe
|
||||
/obj/item/pickaxe
|
||||
name = "pickaxe"
|
||||
icon = 'icons/obj/mining.dmi'
|
||||
icon_state = "pickaxe"
|
||||
@@ -17,7 +17,7 @@
|
||||
origin_tech = "materials=2;engineering=3"
|
||||
attack_verb = list("hit", "pierced", "sliced", "attacked")
|
||||
|
||||
/obj/item/weapon/pickaxe/mini
|
||||
/obj/item/pickaxe/mini
|
||||
name = "compact pickaxe"
|
||||
desc = "A smaller, compact version of the standard pickaxe."
|
||||
icon_state = "minipick"
|
||||
@@ -27,10 +27,10 @@
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
materials = list(MAT_METAL=1000)
|
||||
|
||||
/obj/item/weapon/pickaxe/proc/playDigSound()
|
||||
/obj/item/pickaxe/proc/playDigSound()
|
||||
playsound(src, pick(digsound),50,1)
|
||||
|
||||
/obj/item/weapon/pickaxe/silver
|
||||
/obj/item/pickaxe/silver
|
||||
name = "silver-plated pickaxe"
|
||||
icon_state = "spickaxe"
|
||||
item_state = "spickaxe"
|
||||
@@ -39,7 +39,7 @@
|
||||
desc = "A silver-plated pickaxe that mines slightly faster than standard-issue."
|
||||
force = 17
|
||||
|
||||
/obj/item/weapon/pickaxe/diamond
|
||||
/obj/item/pickaxe/diamond
|
||||
name = "diamond-tipped pickaxe"
|
||||
icon_state = "dpickaxe"
|
||||
item_state = "dpickaxe"
|
||||
@@ -48,7 +48,7 @@
|
||||
desc = "A pickaxe with a diamond pick head. Extremely robust at cracking rock walls and digging up dirt."
|
||||
force = 19
|
||||
|
||||
/obj/item/weapon/pickaxe/drill
|
||||
/obj/item/pickaxe/drill
|
||||
name = "mining drill"
|
||||
icon_state = "handdrill"
|
||||
item_state = "jackhammer"
|
||||
@@ -59,24 +59,24 @@
|
||||
origin_tech = "materials=2;powerstorage=2;engineering=3"
|
||||
desc = "An electric mining drill for the especially scrawny."
|
||||
|
||||
/obj/item/weapon/pickaxe/drill/cyborg
|
||||
/obj/item/pickaxe/drill/cyborg
|
||||
name = "cyborg mining drill"
|
||||
desc = "An integrated electric mining drill."
|
||||
flags_1 = NODROP_1
|
||||
|
||||
/obj/item/weapon/pickaxe/drill/diamonddrill
|
||||
/obj/item/pickaxe/drill/diamonddrill
|
||||
name = "diamond-tipped mining drill"
|
||||
icon_state = "diamonddrill"
|
||||
digspeed = 7
|
||||
origin_tech = "materials=6;powerstorage=4;engineering=4"
|
||||
desc = "Yours is the drill that will pierce the heavens!"
|
||||
|
||||
/obj/item/weapon/pickaxe/drill/cyborg/diamond //This is the BORG version!
|
||||
/obj/item/pickaxe/drill/cyborg/diamond //This is the BORG version!
|
||||
name = "diamond-tipped cyborg mining drill" //To inherit the NODROP_1 flag, and easier to change borg specific drill mechanics.
|
||||
icon_state = "diamonddrill"
|
||||
digspeed = 7
|
||||
|
||||
/obj/item/weapon/pickaxe/drill/jackhammer
|
||||
/obj/item/pickaxe/drill/jackhammer
|
||||
name = "sonic jackhammer"
|
||||
icon_state = "jackhammer"
|
||||
item_state = "jackhammer"
|
||||
@@ -86,7 +86,7 @@
|
||||
hitsound = 'sound/weapons/sonic_jackhammer.ogg'
|
||||
desc = "Cracks rocks with sonic blasts, and doubles as a demolition power tool for smashing walls."
|
||||
|
||||
/obj/item/weapon/shovel
|
||||
/obj/item/shovel
|
||||
name = "shovel"
|
||||
desc = "A large tool for digging and moving dirt."
|
||||
icon = 'icons/obj/mining.dmi'
|
||||
@@ -105,7 +105,7 @@
|
||||
attack_verb = list("bashed", "bludgeoned", "thrashed", "whacked")
|
||||
sharpness = IS_SHARP
|
||||
|
||||
/obj/item/weapon/shovel/spade
|
||||
/obj/item/shovel/spade
|
||||
name = "spade"
|
||||
desc = "A small tool for digging and moving dirt."
|
||||
icon_state = "spade"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*********************Hivelord stabilizer****************/
|
||||
/obj/item/weapon/hivelordstabilizer
|
||||
/obj/item/hivelordstabilizer
|
||||
name = "stabilizing serum"
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle19"
|
||||
@@ -7,7 +7,7 @@
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
origin_tech = "biotech=3"
|
||||
|
||||
/obj/item/weapon/hivelordstabilizer/afterattack(obj/item/organ/M, mob/user)
|
||||
/obj/item/hivelordstabilizer/afterattack(obj/item/organ/M, mob/user)
|
||||
var/obj/item/organ/regenerative_core/C = M
|
||||
if(!istype(C, /obj/item/organ/regenerative_core))
|
||||
to_chat(user, "<span class='warning'>The stabilizer only works on certain types of monster organs, generally regenerative in nature.</span>")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**********************Resonator**********************/
|
||||
/obj/item/weapon/resonator
|
||||
/obj/item/resonator
|
||||
name = "resonator"
|
||||
icon = 'icons/obj/mining.dmi'
|
||||
icon_state = "resonator"
|
||||
@@ -16,7 +16,7 @@
|
||||
var/quick_burst_mod = 0.8
|
||||
origin_tech = "magnets=3;engineering=3"
|
||||
|
||||
/obj/item/weapon/resonator/upgraded
|
||||
/obj/item/resonator/upgraded
|
||||
name = "upgraded resonator"
|
||||
desc = "An upgraded version of the resonator that can produce more fields at once, as well as having no damage penalty for bursting a resonance field early."
|
||||
icon_state = "resonator_u"
|
||||
@@ -25,7 +25,7 @@
|
||||
fieldlimit = 6
|
||||
quick_burst_mod = 1
|
||||
|
||||
/obj/item/weapon/resonator/attack_self(mob/user)
|
||||
/obj/item/resonator/attack_self(mob/user)
|
||||
if(burst_time == 50)
|
||||
burst_time = 30
|
||||
to_chat(user, "<span class='info'>You set the resonator's fields to detonate after 3 seconds.</span>")
|
||||
@@ -33,7 +33,7 @@
|
||||
burst_time = 50
|
||||
to_chat(user, "<span class='info'>You set the resonator's fields to detonate after 5 seconds.</span>")
|
||||
|
||||
/obj/item/weapon/resonator/proc/CreateResonance(target, mob/user)
|
||||
/obj/item/resonator/proc/CreateResonance(target, mob/user)
|
||||
var/turf/T = get_turf(target)
|
||||
var/obj/effect/temp_visual/resonance/R = locate(/obj/effect/temp_visual/resonance) in T
|
||||
if(R)
|
||||
@@ -44,7 +44,7 @@
|
||||
new /obj/effect/temp_visual/resonance(T, user, src, burst_time)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
|
||||
/obj/item/weapon/resonator/pre_attackby(atom/target, mob/user, params)
|
||||
/obj/item/resonator/pre_attackby(atom/target, mob/user, params)
|
||||
if(check_allowed_items(target, 1))
|
||||
CreateResonance(target, user)
|
||||
return TRUE
|
||||
@@ -59,7 +59,7 @@
|
||||
var/resonance_damage = 20
|
||||
var/damage_multiplier = 1
|
||||
var/creator
|
||||
var/obj/item/weapon/resonator/res
|
||||
var/obj/item/resonator/res
|
||||
|
||||
/obj/effect/temp_visual/resonance/Initialize(mapload, set_creator, set_resonator, set_duration)
|
||||
duration = set_duration
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
has_gravity = TRUE
|
||||
|
||||
//Survival Capsule
|
||||
/obj/item/weapon/survivalcapsule
|
||||
/obj/item/survivalcapsule
|
||||
name = "bluespace shelter capsule"
|
||||
desc = "An emergency shelter stored within a pocket of bluespace."
|
||||
icon_state = "capsule"
|
||||
@@ -18,7 +18,7 @@
|
||||
var/datum/map_template/shelter/template
|
||||
var/used = FALSE
|
||||
|
||||
/obj/item/weapon/survivalcapsule/proc/get_template()
|
||||
/obj/item/survivalcapsule/proc/get_template()
|
||||
if(template)
|
||||
return
|
||||
template = SSmapping.shelter_templates[template_id]
|
||||
@@ -26,17 +26,17 @@
|
||||
throw EXCEPTION("Shelter template ([template_id]) not found!")
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/survivalcapsule/Destroy()
|
||||
/obj/item/survivalcapsule/Destroy()
|
||||
template = null // without this, capsules would be one use. per round.
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/survivalcapsule/examine(mob/user)
|
||||
/obj/item/survivalcapsule/examine(mob/user)
|
||||
. = ..()
|
||||
get_template()
|
||||
to_chat(user, "This capsule has the [template.name] stored.")
|
||||
to_chat(user, template.description)
|
||||
|
||||
/obj/item/weapon/survivalcapsule/attack_self()
|
||||
/obj/item/survivalcapsule/attack_self()
|
||||
//Can't grab when capsule is New() because templates aren't loaded then
|
||||
get_template()
|
||||
if(!used)
|
||||
@@ -67,7 +67,7 @@
|
||||
new /obj/effect/particle_effect/smoke(get_turf(src))
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/survivalcapsule/luxury
|
||||
/obj/item/survivalcapsule/luxury
|
||||
name = "luxury bluespace shelter capsule"
|
||||
desc = "An exorbitantly expensive luxury suite stored within a pocket of bluespace."
|
||||
origin_tech = "engineering=3;bluespace=4"
|
||||
@@ -166,8 +166,8 @@
|
||||
density = TRUE
|
||||
pixel_y = -32
|
||||
|
||||
/obj/item/device/gps/computer/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if(istype(W, /obj/item/weapon/wrench) && !(flags_1&NODECONSTRUCT_1))
|
||||
/obj/item/device/gps/computer/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/wrench) && !(flags_1&NODECONSTRUCT_1))
|
||||
playsound(src.loc, W.usesound, 50, 1)
|
||||
user.visible_message("<span class='warning'>[user] disassembles the gps.</span>", \
|
||||
"<span class='notice'>You start to disassemble the gps...</span>", "You hear clanking and banging noises.")
|
||||
@@ -206,10 +206,10 @@
|
||||
if(empty)
|
||||
return
|
||||
for(var/i in 1 to 5)
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/warm/W = new(src)
|
||||
var/obj/item/reagent_containers/food/snacks/donkpocket/warm/W = new(src)
|
||||
load(W)
|
||||
if(prob(50))
|
||||
var/obj/item/weapon/storage/pill_bottle/dice/D = new(src)
|
||||
var/obj/item/storage/pill_bottle/dice/D = new(src)
|
||||
load(D)
|
||||
else
|
||||
var/obj/item/device/instrument/guitar/G = new(src)
|
||||
@@ -242,8 +242,8 @@
|
||||
new buildstacktype(loc,buildstackamount)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/fans/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if(istype(W, /obj/item/weapon/wrench) && !(flags_1&NODECONSTRUCT_1))
|
||||
/obj/structure/fans/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/wrench) && !(flags_1&NODECONSTRUCT_1))
|
||||
playsound(src.loc, W.usesound, 50, 1)
|
||||
user.visible_message("<span class='warning'>[user] disassembles the fan.</span>", \
|
||||
"<span class='notice'>You start to disassemble the fan...</span>", "You hear clanking and banging noises.")
|
||||
@@ -301,24 +301,24 @@
|
||||
icon = 'icons/mob/screen_gen.dmi'
|
||||
icon_state = "x2"
|
||||
var/possible = list(/obj/item/ship_in_a_bottle,
|
||||
/obj/item/weapon/gun/energy/pulse,
|
||||
/obj/item/weapon/sleeping_carp_scroll,
|
||||
/obj/item/weapon/melee/supermatter_sword,
|
||||
/obj/item/weapon/shield/changeling,
|
||||
/obj/item/weapon/lava_staff,
|
||||
/obj/item/weapon/dash/energy_katana,
|
||||
/obj/item/weapon/hierophant_club,
|
||||
/obj/item/weapon/his_grace,
|
||||
/obj/item/weapon/gun/ballistic/minigun,
|
||||
/obj/item/weapon/gun/ballistic/automatic/l6_saw,
|
||||
/obj/item/weapon/gun/magic/staff/chaos,
|
||||
/obj/item/weapon/gun/magic/staff/spellblade,
|
||||
/obj/item/weapon/gun/magic/wand/death,
|
||||
/obj/item/weapon/gun/magic/wand/fireball,
|
||||
/obj/item/gun/energy/pulse,
|
||||
/obj/item/sleeping_carp_scroll,
|
||||
/obj/item/melee/supermatter_sword,
|
||||
/obj/item/shield/changeling,
|
||||
/obj/item/lava_staff,
|
||||
/obj/item/dash/energy_katana,
|
||||
/obj/item/hierophant_club,
|
||||
/obj/item/his_grace,
|
||||
/obj/item/gun/ballistic/minigun,
|
||||
/obj/item/gun/ballistic/automatic/l6_saw,
|
||||
/obj/item/gun/magic/staff/chaos,
|
||||
/obj/item/gun/magic/staff/spellblade,
|
||||
/obj/item/gun/magic/wand/death,
|
||||
/obj/item/gun/magic/wand/fireball,
|
||||
/obj/item/stack/telecrystal/twenty,
|
||||
/obj/item/nuke_core,
|
||||
/obj/item/phylactery,
|
||||
/obj/item/weapon/banhammer)
|
||||
/obj/item/banhammer)
|
||||
|
||||
/obj/item/fakeartefact/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
GLOBAL_LIST_EMPTY(total_extraction_beacons)
|
||||
|
||||
/obj/item/weapon/extraction_pack
|
||||
/obj/item/extraction_pack
|
||||
name = "fulton extraction pack"
|
||||
desc = "A balloon that can be used to extract equipment or personnel to a Fulton Recovery Beacon. Anything not bolted down can be moved. Link the pack to a beacon by using the pack in hand."
|
||||
icon = 'icons/obj/fulton.dmi'
|
||||
@@ -12,11 +12,11 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons)
|
||||
var/can_use_indoors
|
||||
var/safe_for_living_creatures = 1
|
||||
|
||||
/obj/item/weapon/extraction_pack/examine()
|
||||
/obj/item/extraction_pack/examine()
|
||||
. = ..()
|
||||
usr.show_message("It has [uses_left] uses remaining.", 1)
|
||||
|
||||
/obj/item/weapon/extraction_pack/attack_self(mob/user)
|
||||
/obj/item/extraction_pack/attack_self(mob/user)
|
||||
var/list/possible_beacons = list()
|
||||
for(var/B in GLOB.total_extraction_beacons)
|
||||
var/obj/structure/extraction_point/EP = B
|
||||
@@ -37,7 +37,7 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons)
|
||||
beacon = A
|
||||
to_chat(user, "You link the extraction pack to the beacon system.")
|
||||
|
||||
/obj/item/weapon/extraction_pack/afterattack(atom/movable/A, mob/living/carbon/human/user, flag, params)
|
||||
/obj/item/extraction_pack/afterattack(atom/movable/A, mob/living/carbon/human/user, flag, params)
|
||||
if(!beacon)
|
||||
to_chat(user, "[src] is not linked to a beacon, and cannot be used.")
|
||||
return
|
||||
@@ -61,8 +61,8 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons)
|
||||
to_chat(user, "<span class='notice'>You start attaching the pack to [A]...</span>")
|
||||
if(do_after(user,50,target=A))
|
||||
to_chat(user, "<span class='notice'>You attach the pack to [A] and activate it.</span>")
|
||||
if(loc == user && istype(user.back, /obj/item/weapon/storage/backpack))
|
||||
var/obj/item/weapon/storage/backpack/B = user.back
|
||||
if(loc == user && istype(user.back, /obj/item/storage/backpack))
|
||||
var/obj/item/storage/backpack/B = user.back
|
||||
if(B.can_be_inserted(src,stop_messages = 1))
|
||||
B.handle_item_insertion(src)
|
||||
uses_left--
|
||||
@@ -173,7 +173,7 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons)
|
||||
desc = "you shouldnt see this"
|
||||
var/atom/movable/stored_obj
|
||||
|
||||
/obj/item/weapon/extraction_pack/proc/check_for_living_mobs(atom/A)
|
||||
/obj/item/extraction_pack/proc/check_for_living_mobs(atom/A)
|
||||
if(isliving(A))
|
||||
var/mob/living/L = A
|
||||
if(L.stat != DEAD)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/machinery/computer/shuttle/labor
|
||||
name = "labor shuttle console"
|
||||
desc = "Used to call and send the labor camp shuttle."
|
||||
circuit = /obj/item/weapon/circuitboard/computer/labor_shuttle
|
||||
circuit = /obj/item/circuitboard/computer/labor_shuttle
|
||||
shuttleId = "laborcamp"
|
||||
possible_destinations = "laborcamp_home;laborcamp_away"
|
||||
req_access = list(ACCESS_BRIG)
|
||||
@@ -11,7 +11,7 @@
|
||||
name = "prisoner shuttle console"
|
||||
desc = "A one-way shuttle console, used to summon the shuttle to the labor camp."
|
||||
possible_destinations = "laborcamp_away"
|
||||
circuit = /obj/item/weapon/circuitboard/computer/labor_shuttle/one_way
|
||||
circuit = /obj/item/circuitboard/computer/labor_shuttle/one_way
|
||||
req_access = list( )
|
||||
|
||||
/obj/machinery/computer/shuttle/labor/one_way/Topic(href, href_list)
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
anchored = TRUE
|
||||
var/obj/machinery/mineral/stacking_machine/laborstacker/stacking_machine = null
|
||||
var/machinedir = SOUTH
|
||||
var/obj/item/weapon/card/id/prisoner/inserted_id
|
||||
var/obj/item/card/id/prisoner/inserted_id
|
||||
var/obj/machinery/door/airlock/release_door
|
||||
var/door_tag = "prisonshuttle"
|
||||
var/obj/item/device/radio/Radio //needed to send messages to sec radio
|
||||
@@ -22,7 +22,7 @@
|
||||
locate_stacking_machine()
|
||||
|
||||
/obj/machinery/mineral/labor_claim_console/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/card/id/prisoner))
|
||||
if(istype(I, /obj/item/card/id/prisoner))
|
||||
if(!inserted_id)
|
||||
if(!user.drop_item())
|
||||
return
|
||||
@@ -82,7 +82,7 @@
|
||||
inserted_id = null
|
||||
else
|
||||
var/obj/item/I = usr.get_active_held_item()
|
||||
if(istype(I, /obj/item/weapon/card/id/prisoner))
|
||||
if(istype(I, /obj/item/card/id/prisoner))
|
||||
if(!usr.drop_item())
|
||||
return
|
||||
I.forceMove(src)
|
||||
@@ -155,9 +155,9 @@
|
||||
user.examinate(src)
|
||||
|
||||
/obj/machinery/mineral/labor_points_checker/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/card/id))
|
||||
if(istype(I, /obj/item/weapon/card/id/prisoner))
|
||||
var/obj/item/weapon/card/id/prisoner/prisoner_id = I
|
||||
if(istype(I, /obj/item/card/id))
|
||||
if(istype(I, /obj/item/card/id/prisoner))
|
||||
var/obj/item/card/id/prisoner/prisoner_id = I
|
||||
to_chat(user, "<span class='notice'><B>ID: [prisoner_id.registered_name]</B></span>")
|
||||
to_chat(user, "<span class='notice'>Points Collected:[prisoner_id.points]</span>")
|
||||
to_chat(user, "<span class='notice'>Point Quota: [prisoner_id.goal]</span>")
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
var/harvested_name = "shortened mushrooms"
|
||||
var/harvested_desc = "Some quickly regrowing mushrooms, formerly known to be quite large."
|
||||
var/needs_sharp_harvest = TRUE
|
||||
var/harvest = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/shavings
|
||||
var/harvest = /obj/item/reagent_containers/food/snacks/grown/ash_flora/shavings
|
||||
var/harvest_amount_low = 1
|
||||
var/harvest_amount_high = 3
|
||||
var/harvest_time = 60
|
||||
@@ -55,7 +55,7 @@
|
||||
desc = initial(desc)
|
||||
harvested = FALSE
|
||||
|
||||
/obj/structure/flora/ash/attackby(obj/item/weapon/W, mob/user, params)
|
||||
/obj/structure/flora/ash/attackby(obj/item/W, mob/user, params)
|
||||
if(!harvested && needs_sharp_harvest && W.sharpness)
|
||||
user.visible_message("<span class='notice'>[user] starts to harvest from [src] with [W].</span>","<span class='notice'>You begin to harvest from [src] with [W].</span>")
|
||||
if(do_after(user, harvest_time, target = src))
|
||||
@@ -80,7 +80,7 @@
|
||||
desc = "A number of mushrooms, each of which surrounds a greenish sporangium with a number of leaf-like structures."
|
||||
harvested_name = "leafless mushrooms"
|
||||
harvested_desc = "A bunch of formerly-leafed mushrooms, with their sporangiums exposed. Scandalous?"
|
||||
harvest = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf
|
||||
harvest = /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf
|
||||
needs_sharp_harvest = FALSE
|
||||
harvest_amount_high = 4
|
||||
harvest_time = 20
|
||||
@@ -96,7 +96,7 @@
|
||||
desc = "Several mushrooms, the larger of which have a ring of conks at the midpoint of their stems."
|
||||
harvested_name = "small mushrooms"
|
||||
harvested_desc = "Several small mushrooms near the stumps of what likely were larger mushrooms."
|
||||
harvest = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap
|
||||
harvest = /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap
|
||||
harvest_amount_high = 4
|
||||
harvest_time = 50
|
||||
harvest_message_low = "You slice the cap off a mushroom."
|
||||
@@ -112,7 +112,7 @@
|
||||
luminosity = 1
|
||||
harvested_name = "tiny mushrooms"
|
||||
harvested_desc = "A few tiny mushrooms around larger stumps. You can already see them growing back."
|
||||
harvest = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem
|
||||
harvest = /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem
|
||||
harvest_amount_high = 4
|
||||
harvest_time = 40
|
||||
harvest_message_low = "You pick and slice the cap off a mushroom, leaving the stem."
|
||||
@@ -127,7 +127,7 @@
|
||||
desc = "Several prickly cacti, brimming with ripe fruit and covered in a thin layer of ash."
|
||||
harvested_name = "cacti"
|
||||
harvested_desc = "A bunch of prickly cacti. You can see fruits slowly growing beneath the covering of ash."
|
||||
harvest = /obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit
|
||||
harvest = /obj/item/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit
|
||||
needs_sharp_harvest = FALSE
|
||||
harvest_amount_high = 2
|
||||
harvest_time = 10
|
||||
@@ -150,7 +150,7 @@
|
||||
H.visible_message("<span class='danger'>[H] steps on a cactus!</span>", \
|
||||
"<span class='userdanger'>You step on a cactus!</span>")
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora
|
||||
name = "mushroom shavings"
|
||||
desc = "Some shavings from a tall mushroom. With enough, might serve as a bowl."
|
||||
icon = 'icons/obj/lavaland/ash_flora.dmi'
|
||||
@@ -161,15 +161,15 @@
|
||||
max_integrity = 100
|
||||
seed = /obj/item/seeds/lavaland/polypore
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/New()
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora/New()
|
||||
..()
|
||||
pixel_x = rand(-4, 4)
|
||||
pixel_y = rand(-4, 4)
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/shavings //for actual crafting
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora/shavings //for actual crafting
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf
|
||||
name = "mushroom leaf"
|
||||
desc = "A leaf, from a mushroom."
|
||||
list_reagents = list("nutriment" = 3, "vitfro" = 2, "nicotine" = 2)
|
||||
@@ -177,7 +177,7 @@
|
||||
seed = /obj/item/seeds/lavaland/porcini
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap
|
||||
name = "mushroom cap"
|
||||
desc = "The cap of a large mushroom."
|
||||
list_reagents = list("mindbreaker" = 2, "entpoly" = 4, "mushroomhallucinogen" = 2)
|
||||
@@ -185,7 +185,7 @@
|
||||
seed = /obj/item/seeds/lavaland/inocybe
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem
|
||||
name = "mushroom stem"
|
||||
desc = "A long mushroom stem. It's slightly glowing."
|
||||
list_reagents = list("tinlux" = 2, "vitamin" = 1, "space_drugs" = 1)
|
||||
@@ -193,7 +193,7 @@
|
||||
luminosity = 1
|
||||
seed = /obj/item/seeds/lavaland/ember
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit
|
||||
name = "cactus fruit"
|
||||
list_reagents = list("vitamin" = 2, "nutriment" = 2, "vitfro" = 4)
|
||||
desc = "A cactus fruit covered in a thick, reddish skin. And some ash."
|
||||
@@ -213,7 +213,7 @@
|
||||
//what you can craft with these things
|
||||
/datum/crafting_recipe/mushroom_bowl
|
||||
name = "Mushroom Bowl"
|
||||
result = /obj/item/weapon/reagent_containers/food/drinks/mushroom_bowl
|
||||
reqs = list(/obj/item/weapon/reagent_containers/food/snacks/grown/ash_flora/shavings = 5)
|
||||
result = /obj/item/reagent_containers/food/drinks/mushroom_bowl
|
||||
reqs = list(/obj/item/reagent_containers/food/snacks/grown/ash_flora/shavings = 5)
|
||||
time = 30
|
||||
category = CAT_PRIMAL
|
||||
|
||||
@@ -20,15 +20,15 @@
|
||||
if(3)
|
||||
new /obj/item/device/soulstone/anybody(src)
|
||||
if(4)
|
||||
new /obj/item/weapon/katana/cursed(src)
|
||||
new /obj/item/katana/cursed(src)
|
||||
if(5)
|
||||
new /obj/item/clothing/glasses/godeye(src)
|
||||
if(6)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/potion/flight(src)
|
||||
new /obj/item/reagent_containers/glass/bottle/potion/flight(src)
|
||||
if(7)
|
||||
new /obj/item/weapon/pickaxe/diamond(src)
|
||||
new /obj/item/pickaxe/diamond(src)
|
||||
if(8)
|
||||
new /obj/item/weapon/disk/design_disk/modkit_disc/resonator_blast(src)
|
||||
new /obj/item/disk/design_disk/modkit_disc/resonator_blast(src)
|
||||
if(9)
|
||||
new /obj/item/organ/brain/alien(src)
|
||||
if(10)
|
||||
@@ -38,15 +38,15 @@
|
||||
if(12)
|
||||
new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker(src)
|
||||
if(13)
|
||||
new /obj/item/weapon/disk/design_disk/modkit_disc/rapid_repeater(src)
|
||||
new /obj/item/disk/design_disk/modkit_disc/rapid_repeater(src)
|
||||
if(14)
|
||||
new /obj/item/weapon/nullrod/scythe/talking(src)
|
||||
new /obj/item/nullrod/scythe/talking(src)
|
||||
if(15)
|
||||
new /obj/item/weapon/nullrod/armblade(src)
|
||||
new /obj/item/nullrod/armblade(src)
|
||||
if(16)
|
||||
new /obj/item/weapon/guardiancreator(src)
|
||||
new /obj/item/guardiancreator(src)
|
||||
if(17)
|
||||
new /obj/item/weapon/disk/design_disk/modkit_disc/mob_and_turf_aoe(src)
|
||||
new /obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe(src)
|
||||
if(18)
|
||||
new /obj/item/device/warp_cube/red(src)
|
||||
if(19)
|
||||
@@ -54,48 +54,48 @@
|
||||
if(20)
|
||||
new /obj/item/device/immortality_talisman(src)
|
||||
if(21)
|
||||
new /obj/item/weapon/gun/magic/hook(src)
|
||||
new /obj/item/gun/magic/hook(src)
|
||||
if(22)
|
||||
new /obj/item/voodoo(src)
|
||||
if(23)
|
||||
new /obj/item/weapon/grenade/clusterbuster/inferno(src)
|
||||
new /obj/item/grenade/clusterbuster/inferno(src)
|
||||
if(24)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater/hell(src)
|
||||
new /obj/item/reagent_containers/food/drinks/bottle/holywater/hell(src)
|
||||
new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor(src)
|
||||
if(25)
|
||||
new /obj/item/weapon/spellbook/oneuse/summonitem(src)
|
||||
new /obj/item/spellbook/oneuse/summonitem(src)
|
||||
if(26)
|
||||
new /obj/item/book_of_babel(src)
|
||||
if(27)
|
||||
new /obj/item/borg/upgrade/modkit/lifesteal(src)
|
||||
new /obj/item/weapon/bedsheet/cult(src)
|
||||
new /obj/item/bedsheet/cult(src)
|
||||
if(28)
|
||||
new /obj/item/weapon/disk/design_disk/modkit_disc/bounty(src)
|
||||
new /obj/item/disk/design_disk/modkit_disc/bounty(src)
|
||||
|
||||
//KA modkit design discs
|
||||
/obj/item/weapon/disk/design_disk/modkit_disc
|
||||
/obj/item/disk/design_disk/modkit_disc
|
||||
name = "KA Mod Disk"
|
||||
desc = "A design disc containing the design for a unique kinetic accelerator modkit."
|
||||
icon_state = "datadisk1"
|
||||
var/modkit_design = /datum/design/unique_modkit
|
||||
|
||||
/obj/item/weapon/disk/design_disk/modkit_disc/Initialize()
|
||||
/obj/item/disk/design_disk/modkit_disc/Initialize()
|
||||
. = ..()
|
||||
blueprints[1] = new modkit_design
|
||||
|
||||
/obj/item/weapon/disk/design_disk/modkit_disc/mob_and_turf_aoe
|
||||
/obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe
|
||||
name = "Offensive Mining Explosion Mod Disk"
|
||||
modkit_design = /datum/design/unique_modkit/offensive_turf_aoe
|
||||
|
||||
/obj/item/weapon/disk/design_disk/modkit_disc/rapid_repeater
|
||||
/obj/item/disk/design_disk/modkit_disc/rapid_repeater
|
||||
name = "Rapid Repeater Mod Disk"
|
||||
modkit_design = /datum/design/unique_modkit/rapid_repeater
|
||||
|
||||
/obj/item/weapon/disk/design_disk/modkit_disc/resonator_blast
|
||||
/obj/item/disk/design_disk/modkit_disc/resonator_blast
|
||||
name = "Resonator Blast Mod Disk"
|
||||
modkit_design = /datum/design/unique_modkit/resonator_blast
|
||||
|
||||
/obj/item/weapon/disk/design_disk/modkit_disc/bounty
|
||||
/obj/item/disk/design_disk/modkit_disc/bounty
|
||||
name = "Death Syphon Mod Disk"
|
||||
modkit_design = /datum/design/unique_modkit/bounty
|
||||
|
||||
@@ -255,7 +255,7 @@
|
||||
return
|
||||
|
||||
//Meat Hook
|
||||
/obj/item/weapon/gun/magic/hook
|
||||
/obj/item/gun/magic/hook
|
||||
name = "meat hook"
|
||||
desc = "Mid or feed."
|
||||
ammo_type = /obj/item/ammo_casing/magic/hook
|
||||
@@ -374,7 +374,7 @@
|
||||
|
||||
//Internal
|
||||
|
||||
/obj/item/weapon/storage/backpack/shared
|
||||
/obj/item/storage/backpack/shared
|
||||
name = "paradox bag"
|
||||
desc = "Somehow, it's in two places at once."
|
||||
max_combined_w_class = 60
|
||||
@@ -389,7 +389,7 @@
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
icon_state = "cultpack"
|
||||
slot_flags = SLOT_BACK
|
||||
var/obj/item/weapon/storage/backpack/shared/bag
|
||||
var/obj/item/storage/backpack/shared/bag
|
||||
|
||||
|
||||
/obj/item/device/shared_storage/red
|
||||
@@ -399,7 +399,7 @@
|
||||
/obj/item/device/shared_storage/red/Initialize()
|
||||
..()
|
||||
if(!bag)
|
||||
var/obj/item/weapon/storage/backpack/shared/S = new(src)
|
||||
var/obj/item/storage/backpack/shared/S = new(src)
|
||||
var/obj/item/device/shared_storage/blue = new(src.loc)
|
||||
|
||||
src.bag = S
|
||||
@@ -475,7 +475,7 @@
|
||||
. = ..()
|
||||
riding_datum = new/datum/riding/boat
|
||||
|
||||
/obj/item/weapon/oar
|
||||
/obj/item/oar
|
||||
name = "oar"
|
||||
icon = 'icons/obj/vehicles.dmi'
|
||||
icon_state = "oar"
|
||||
@@ -487,7 +487,7 @@
|
||||
|
||||
/datum/crafting_recipe/oar
|
||||
name = "goliath bone oar"
|
||||
result = /obj/item/weapon/oar
|
||||
result = /obj/item/oar
|
||||
reqs = list(/obj/item/stack/sheet/bone = 2)
|
||||
time = 15
|
||||
category = CAT_PRIMAL
|
||||
@@ -524,16 +524,16 @@
|
||||
riding_datum = new/datum/riding/boat/dragon
|
||||
|
||||
//Potion of Flight
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/potion
|
||||
/obj/item/reagent_containers/glass/bottle/potion
|
||||
icon = 'icons/obj/lavaland/artefacts.dmi'
|
||||
icon_state = "potionflask"
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/potion/flight
|
||||
/obj/item/reagent_containers/glass/bottle/potion/flight
|
||||
name = "strange elixir"
|
||||
desc = "A flask with an almost-holy aura emitting from it. The label on the bottle says: 'erqo'hyy tvi'rf lbh jv'atf'."
|
||||
list_reagents = list("flightpotion" = 5)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/potion/update_icon()
|
||||
/obj/item/reagent_containers/glass/bottle/potion/update_icon()
|
||||
if(reagents.total_volume)
|
||||
icon_state = "potionflask"
|
||||
else
|
||||
@@ -567,7 +567,7 @@
|
||||
|
||||
//Miniboss Miner
|
||||
|
||||
/obj/item/weapon/melee/transforming/cleaving_saw
|
||||
/obj/item/melee/transforming/cleaving_saw
|
||||
name = "cleaving saw"
|
||||
desc = "This saw, effective at drawing the blood of beasts, transforms into a long cleaver that makes use of centrifugal force."
|
||||
force = 12
|
||||
@@ -593,19 +593,19 @@
|
||||
var/transform_cooldown
|
||||
var/swiping = FALSE
|
||||
|
||||
/obj/item/weapon/melee/transforming/cleaving_saw/examine(mob/user)
|
||||
/obj/item/melee/transforming/cleaving_saw/examine(mob/user)
|
||||
..()
|
||||
to_chat(user, "<span class='notice'>It is [active ? "open, and will cleave enemies in a wide arc":"closed, and can be used for rapid consecutive attacks that cause beastly enemies to bleed"].<br>\
|
||||
Both modes will build up existing bleed effects, doing a burst of high damage if the bleed is built up high enough.<br>\
|
||||
Transforming it immediately after an attack causes the next attack to come out faster.</span>")
|
||||
|
||||
/obj/item/weapon/melee/transforming/cleaving_saw/suicide_act(mob/user)
|
||||
/obj/item/melee/transforming/cleaving_saw/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is [active ? "closing [src] on [user.p_their()] neck" : "opening [src] into [user.p_their()] chest"]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
transform_cooldown = 0
|
||||
transform_weapon(user, TRUE)
|
||||
return BRUTELOSS
|
||||
|
||||
/obj/item/weapon/melee/transforming/cleaving_saw/transform_weapon(mob/living/user, supress_message_text)
|
||||
/obj/item/melee/transforming/cleaving_saw/transform_weapon(mob/living/user, supress_message_text)
|
||||
if(transform_cooldown > world.time)
|
||||
return FALSE
|
||||
. = ..()
|
||||
@@ -613,7 +613,7 @@
|
||||
transform_cooldown = world.time + (CLICK_CD_MELEE * 0.5)
|
||||
user.changeNext_move(CLICK_CD_MELEE * 0.25)
|
||||
|
||||
/obj/item/weapon/melee/transforming/cleaving_saw/transform_messages(mob/living/user, supress_message_text)
|
||||
/obj/item/melee/transforming/cleaving_saw/transform_messages(mob/living/user, supress_message_text)
|
||||
if(!supress_message_text)
|
||||
if(active)
|
||||
to_chat(user, "<span class='notice'>You open [src]. It will now cleave enemies in a wide arc.</span>")
|
||||
@@ -621,17 +621,17 @@
|
||||
to_chat(user, "<span class='notice'>You close [src]. It will now attack rapidly and cause beastly enemies to bleed.</span>")
|
||||
playsound(user, 'sound/magic/clockwork/fellowship_armory.ogg', 35, TRUE, frequency = 90000 - (active * 30000))
|
||||
|
||||
/obj/item/weapon/melee/transforming/cleaving_saw/clumsy_transform_effect(mob/living/user)
|
||||
/obj/item/melee/transforming/cleaving_saw/clumsy_transform_effect(mob/living/user)
|
||||
if(user.disabilities & CLUMSY && prob(50))
|
||||
to_chat(user, "<span class='warning'>You accidentally cut yourself with [src], like a doofus!</span>")
|
||||
user.take_bodypart_damage(10)
|
||||
|
||||
/obj/item/weapon/melee/transforming/cleaving_saw/melee_attack_chain(mob/user, atom/target, params)
|
||||
/obj/item/melee/transforming/cleaving_saw/melee_attack_chain(mob/user, atom/target, params)
|
||||
..()
|
||||
if(!active)
|
||||
user.changeNext_move(CLICK_CD_MELEE * 0.5) //when closed, it attacks very rapidly
|
||||
|
||||
/obj/item/weapon/melee/transforming/cleaving_saw/nemesis_effects(mob/living/user, mob/living/target)
|
||||
/obj/item/melee/transforming/cleaving_saw/nemesis_effects(mob/living/user, mob/living/target)
|
||||
var/datum/status_effect/saw_bleed/B = target.has_status_effect(STATUS_EFFECT_SAWBLEED)
|
||||
if(!B)
|
||||
if(!active) //This isn't in the above if-check so that the else doesn't care about active
|
||||
@@ -639,7 +639,7 @@
|
||||
else
|
||||
B.add_bleed(B.bleed_buildup)
|
||||
|
||||
/obj/item/weapon/melee/transforming/cleaving_saw/attack(mob/living/target, mob/living/carbon/human/user)
|
||||
/obj/item/melee/transforming/cleaving_saw/attack(mob/living/target, mob/living/carbon/human/user)
|
||||
if(!active || swiping || !target.density || get_turf(target) == get_turf(user))
|
||||
if(!active)
|
||||
faction_bonus_force = 0
|
||||
@@ -667,14 +667,14 @@
|
||||
var/loot = rand(1,4)
|
||||
switch(loot)
|
||||
if(1)
|
||||
new /obj/item/weapon/melee/ghost_sword(src)
|
||||
new /obj/item/melee/ghost_sword(src)
|
||||
if(2)
|
||||
new /obj/item/weapon/lava_staff(src)
|
||||
new /obj/item/lava_staff(src)
|
||||
if(3)
|
||||
new /obj/item/weapon/spellbook/oneuse/sacredflame(src)
|
||||
new /obj/item/weapon/gun/magic/wand/fireball(src)
|
||||
new /obj/item/spellbook/oneuse/sacredflame(src)
|
||||
new /obj/item/gun/magic/wand/fireball(src)
|
||||
if(4)
|
||||
new /obj/item/weapon/dragons_blood(src)
|
||||
new /obj/item/dragons_blood(src)
|
||||
|
||||
/obj/structure/closet/crate/necropolis/dragon/crusher
|
||||
name = "firey dragon chest"
|
||||
@@ -683,7 +683,7 @@
|
||||
..()
|
||||
new /obj/item/crusher_trophy/tail_spike(src)
|
||||
|
||||
/obj/item/weapon/melee/ghost_sword
|
||||
/obj/item/melee/ghost_sword
|
||||
name = "\improper spectral blade"
|
||||
desc = "A rusted and dulled blade. It doesn't look like it'd do much damage. It glows weakly."
|
||||
icon_state = "spectral"
|
||||
@@ -700,13 +700,13 @@
|
||||
var/summon_cooldown = 0
|
||||
var/list/mob/dead/observer/spirits
|
||||
|
||||
/obj/item/weapon/melee/ghost_sword/Initialize()
|
||||
/obj/item/melee/ghost_sword/Initialize()
|
||||
..()
|
||||
spirits = list()
|
||||
START_PROCESSING(SSobj, src)
|
||||
GLOB.poi_list |= src
|
||||
|
||||
/obj/item/weapon/melee/ghost_sword/Destroy()
|
||||
/obj/item/melee/ghost_sword/Destroy()
|
||||
for(var/mob/dead/observer/G in spirits)
|
||||
G.invisibility = GLOB.observer_default_invisibility
|
||||
spirits.Cut()
|
||||
@@ -714,7 +714,7 @@
|
||||
GLOB.poi_list -= src
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/melee/ghost_sword/attack_self(mob/user)
|
||||
/obj/item/melee/ghost_sword/attack_self(mob/user)
|
||||
if(summon_cooldown > world.time)
|
||||
to_chat(user, "You just recently called out for aid. You don't want to annoy the spirits.")
|
||||
return
|
||||
@@ -726,16 +726,16 @@
|
||||
|
||||
summon_cooldown = world.time + 600
|
||||
|
||||
/obj/item/weapon/melee/ghost_sword/Topic(href, href_list)
|
||||
/obj/item/melee/ghost_sword/Topic(href, href_list)
|
||||
if(href_list["orbit"])
|
||||
var/mob/dead/observer/ghost = usr
|
||||
if(istype(ghost))
|
||||
ghost.ManualFollow(src)
|
||||
|
||||
/obj/item/weapon/melee/ghost_sword/process()
|
||||
/obj/item/melee/ghost_sword/process()
|
||||
ghost_check()
|
||||
|
||||
/obj/item/weapon/melee/ghost_sword/proc/ghost_check()
|
||||
/obj/item/melee/ghost_sword/proc/ghost_check()
|
||||
var/ghost_counter = 0
|
||||
var/turf/T = get_turf(src)
|
||||
var/list/contents = T.GetAllContents()
|
||||
@@ -761,7 +761,7 @@
|
||||
|
||||
return ghost_counter
|
||||
|
||||
/obj/item/weapon/melee/ghost_sword/attack(mob/living/target, mob/living/carbon/human/user)
|
||||
/obj/item/melee/ghost_sword/attack(mob/living/target, mob/living/carbon/human/user)
|
||||
force = 0
|
||||
var/ghost_counter = ghost_check()
|
||||
|
||||
@@ -769,7 +769,7 @@
|
||||
user.visible_message("<span class='danger'>[user] strikes with the force of [ghost_counter] vengeful spirits!</span>")
|
||||
..()
|
||||
|
||||
/obj/item/weapon/melee/ghost_sword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
|
||||
/obj/item/melee/ghost_sword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
|
||||
var/ghost_counter = ghost_check()
|
||||
final_block_chance += Clamp((ghost_counter * 5), 0, 75)
|
||||
owner.visible_message("<span class='danger'>[owner] is protected by a ring of [ghost_counter] ghosts!</span>")
|
||||
@@ -777,13 +777,13 @@
|
||||
|
||||
//Blood
|
||||
|
||||
/obj/item/weapon/dragons_blood
|
||||
/obj/item/dragons_blood
|
||||
name = "bottle of dragons blood"
|
||||
desc = "You're not actually going to drink this, are you?"
|
||||
icon = 'icons/obj/wizard.dmi'
|
||||
icon_state = "vial"
|
||||
|
||||
/obj/item/weapon/dragons_blood/attack_self(mob/living/carbon/human/user)
|
||||
/obj/item/dragons_blood/attack_self(mob/living/carbon/human/user)
|
||||
if(!istype(user))
|
||||
return
|
||||
|
||||
@@ -830,7 +830,7 @@
|
||||
|
||||
//Lava Staff
|
||||
|
||||
/obj/item/weapon/lava_staff
|
||||
/obj/item/lava_staff
|
||||
name = "staff of lava"
|
||||
desc = "The ability to fill the emergency shuttle with lava. What more could you want out of life?"
|
||||
icon_state = "staffofstorms"
|
||||
@@ -852,11 +852,11 @@
|
||||
var/timer = 0
|
||||
var/banned_turfs
|
||||
|
||||
/obj/item/weapon/lava_staff/Initialize()
|
||||
/obj/item/lava_staff/Initialize()
|
||||
. = ..()
|
||||
banned_turfs = typecacheof(list(/turf/open/space/transit, /turf/closed))
|
||||
|
||||
/obj/item/weapon/lava_staff/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||
/obj/item/lava_staff/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||
..()
|
||||
if(timer > world.time)
|
||||
return
|
||||
@@ -909,7 +909,7 @@
|
||||
if(2)
|
||||
new /obj/item/blood_contract(src)
|
||||
if(3)
|
||||
new /obj/item/weapon/gun/magic/staff/spellblade(src)
|
||||
new /obj/item/gun/magic/staff/spellblade(src)
|
||||
|
||||
/obj/structure/closet/crate/necropolis/bubblegum/crusher
|
||||
name = "bloody bubblegum chest"
|
||||
@@ -973,7 +973,7 @@
|
||||
if(H == L)
|
||||
continue
|
||||
to_chat(H, "<span class='userdanger'>You have an overwhelming desire to kill [L]. [L.p_they(TRUE)] [L.p_have()] been marked red! Go kill [L.p_them()]!</span>")
|
||||
H.put_in_hands_or_del(new /obj/item/weapon/kitchen/knife/butcher(H))
|
||||
H.put_in_hands_or_del(new /obj/item/kitchen/knife/butcher(H))
|
||||
|
||||
qdel(src)
|
||||
|
||||
@@ -995,7 +995,7 @@
|
||||
new /obj/item/crusher_trophy/blaster_tubes(src)
|
||||
|
||||
//Hierophant
|
||||
/obj/item/weapon/hierophant_club
|
||||
/obj/item/hierophant_club
|
||||
name = "hierophant club"
|
||||
desc = "The strange technology of this large club allows various nigh-magical feats. It used to beat you, but now you can set the beat."
|
||||
icon_state = "hierophant_club_ready_beacon"
|
||||
@@ -1020,11 +1020,11 @@
|
||||
var/teleporting = FALSE //if we ARE teleporting
|
||||
var/friendly_fire_check = FALSE //if the blasts we make will consider our faction against the faction of hit targets
|
||||
|
||||
/obj/item/weapon/hierophant_club/examine(mob/user)
|
||||
/obj/item/hierophant_club/examine(mob/user)
|
||||
..()
|
||||
to_chat(user, "<span class='hierophant_warning'>The[beacon ? " beacon is not currently":"re is a beacon"] attached.</span>")
|
||||
|
||||
/obj/item/weapon/hierophant_club/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||
/obj/item/hierophant_club/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||
..()
|
||||
var/turf/T = get_turf(target)
|
||||
if(!T || timer > world.time)
|
||||
@@ -1054,7 +1054,7 @@
|
||||
timer = world.time
|
||||
INVOKE_ASYNC(src, .proc/prepare_icon_update)
|
||||
|
||||
/obj/item/weapon/hierophant_club/proc/calculate_anger_mod(mob/user) //we get stronger as the user loses health
|
||||
/obj/item/hierophant_club/proc/calculate_anger_mod(mob/user) //we get stronger as the user loses health
|
||||
chaser_cooldown = initial(chaser_cooldown)
|
||||
cooldown_time = initial(cooldown_time)
|
||||
chaser_speed = initial(chaser_speed)
|
||||
@@ -1067,7 +1067,7 @@
|
||||
chaser_speed = max(chaser_speed + health_percent, 0.5) //one tenth of a second faster for each missing 10% of health
|
||||
blast_range -= round(health_percent * 10) //one additional range for each missing 10% of health
|
||||
|
||||
/obj/item/weapon/hierophant_club/update_icon()
|
||||
/obj/item/hierophant_club/update_icon()
|
||||
icon_state = "hierophant_club[timer <= world.time ? "_ready":""][(beacon && !QDELETED(beacon)) ? "":"_beacon"]"
|
||||
item_state = icon_state
|
||||
if(ismob(loc))
|
||||
@@ -1075,12 +1075,12 @@
|
||||
M.update_inv_hands()
|
||||
M.update_inv_back()
|
||||
|
||||
/obj/item/weapon/hierophant_club/proc/prepare_icon_update()
|
||||
/obj/item/hierophant_club/proc/prepare_icon_update()
|
||||
update_icon()
|
||||
sleep(timer - world.time)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/hierophant_club/ui_action_click(mob/user, action)
|
||||
/obj/item/hierophant_club/ui_action_click(mob/user, action)
|
||||
if(istype(action, /datum/action/item_action/toggle_unfriendly_fire)) //toggle friendly fire...
|
||||
friendly_fire_check = !friendly_fire_check
|
||||
to_chat(user, "<span class='warning'>You toggle friendly fire [friendly_fire_check ? "off":"on"]!</span>")
|
||||
@@ -1185,7 +1185,7 @@
|
||||
if(user)
|
||||
user.update_action_buttons_icon()
|
||||
|
||||
/obj/item/weapon/hierophant_club/proc/teleport_mob(turf/source, mob/M, turf/target, mob/user)
|
||||
/obj/item/hierophant_club/proc/teleport_mob(turf/source, mob/M, turf/target, mob/user)
|
||||
var/turf/turf_to_teleport_to = get_step(target, get_dir(source, M)) //get position relative to caster
|
||||
if(!turf_to_teleport_to || is_blocked_turf(turf_to_teleport_to, TRUE))
|
||||
return
|
||||
@@ -1209,7 +1209,7 @@
|
||||
if(user != M)
|
||||
add_logs(user, M, "teleported", null, "from ([source.x],[source.y],[source.z])")
|
||||
|
||||
/obj/item/weapon/hierophant_club/proc/cardinal_blasts(turf/T, mob/living/user) //fire cardinal cross blasts with a delay
|
||||
/obj/item/hierophant_club/proc/cardinal_blasts(turf/T, mob/living/user) //fire cardinal cross blasts with a delay
|
||||
if(!T)
|
||||
return
|
||||
new /obj/effect/temp_visual/hierophant/telegraph/cardinal(T, user)
|
||||
@@ -1219,7 +1219,7 @@
|
||||
for(var/d in GLOB.cardinals)
|
||||
INVOKE_ASYNC(src, .proc/blast_wall, T, d, user)
|
||||
|
||||
/obj/item/weapon/hierophant_club/proc/blast_wall(turf/T, dir, mob/living/user) //make a wall of blasts blast_range tiles long
|
||||
/obj/item/hierophant_club/proc/blast_wall(turf/T, dir, mob/living/user) //make a wall of blasts blast_range tiles long
|
||||
if(!T)
|
||||
return
|
||||
var/range = blast_range
|
||||
@@ -1234,7 +1234,7 @@
|
||||
previousturf = J
|
||||
J = get_step(previousturf, dir)
|
||||
|
||||
/obj/item/weapon/hierophant_club/proc/aoe_burst(turf/T, mob/living/user) //make a 3x3 blast around a target
|
||||
/obj/item/hierophant_club/proc/aoe_burst(turf/T, mob/living/user) //make a 3x3 blast around a target
|
||||
if(!T)
|
||||
return
|
||||
new /obj/effect/temp_visual/hierophant/telegraph(T, user)
|
||||
|
||||
@@ -85,10 +85,10 @@
|
||||
return ..()
|
||||
|
||||
/obj/machinery/mineral/processing_unit/HasProximity(atom/movable/AM)
|
||||
if(istype(AM, /obj/item/weapon/ore) && AM.loc == get_step(src, input_dir))
|
||||
if(istype(AM, /obj/item/ore) && AM.loc == get_step(src, input_dir))
|
||||
process_ore(AM)
|
||||
|
||||
/obj/machinery/mineral/processing_unit/proc/process_ore(obj/item/weapon/ore/O)
|
||||
/obj/machinery/mineral/processing_unit/proc/process_ore(obj/item/ore/O)
|
||||
var/material_amount = materials.get_item_material_amount(O)
|
||||
if(!materials.has_space(material_amount))
|
||||
unload_mineral(O)
|
||||
|
||||
@@ -12,9 +12,9 @@
|
||||
output_dir = SOUTH
|
||||
req_access = list(ACCESS_MINERAL_STOREROOM)
|
||||
speed_process = 1
|
||||
circuit = /obj/item/weapon/circuitboard/machine/ore_redemption
|
||||
circuit = /obj/item/circuitboard/machine/ore_redemption
|
||||
var/req_access_reclaim = ACCESS_MINING_STATION
|
||||
var/obj/item/weapon/card/id/inserted_id
|
||||
var/obj/item/card/id/inserted_id
|
||||
var/points = 0
|
||||
var/ore_pickup_rate = 15
|
||||
var/sheet_per_ore = 1
|
||||
@@ -24,7 +24,7 @@
|
||||
var/list/ore_buffer = list()
|
||||
var/datum/material_container/materials
|
||||
var/datum/research/files
|
||||
var/obj/item/weapon/disk/design_disk/inserted_disk
|
||||
var/obj/item/disk/design_disk/inserted_disk
|
||||
|
||||
/obj/machinery/mineral/ore_redemption/Initialize()
|
||||
. = ..()
|
||||
@@ -40,17 +40,17 @@
|
||||
var/ore_pickup_rate_temp = 15
|
||||
var/point_upgrade_temp = 1
|
||||
var/sheet_per_ore_temp = 1
|
||||
for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts)
|
||||
for(var/obj/item/stock_parts/matter_bin/B in component_parts)
|
||||
sheet_per_ore_temp = 0.65 + (0.35 * B.rating)
|
||||
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
|
||||
for(var/obj/item/stock_parts/manipulator/M in component_parts)
|
||||
ore_pickup_rate_temp = 15 * M.rating
|
||||
for(var/obj/item/weapon/stock_parts/micro_laser/L in component_parts)
|
||||
for(var/obj/item/stock_parts/micro_laser/L in component_parts)
|
||||
point_upgrade_temp = 0.65 + (0.35 * L.rating)
|
||||
ore_pickup_rate = ore_pickup_rate_temp
|
||||
point_upgrade = point_upgrade_temp
|
||||
sheet_per_ore = sheet_per_ore_temp
|
||||
|
||||
/obj/machinery/mineral/ore_redemption/proc/smelt_ore(obj/item/weapon/ore/O)
|
||||
/obj/machinery/mineral/ore_redemption/proc/smelt_ore(obj/item/ore/O)
|
||||
|
||||
ore_buffer -= O
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
if(OB)
|
||||
input = OB
|
||||
|
||||
for(var/obj/item/weapon/ore/O in input)
|
||||
for(var/obj/item/ore/O in input)
|
||||
if(QDELETED(O))
|
||||
continue
|
||||
ore_buffer |= O
|
||||
@@ -145,7 +145,7 @@
|
||||
else if(!message_sent)
|
||||
send_console_message()
|
||||
|
||||
/obj/machinery/mineral/ore_redemption/attackby(obj/item/weapon/W, mob/user, params)
|
||||
/obj/machinery/mineral/ore_redemption/attackby(obj/item/W, mob/user, params)
|
||||
if(exchange_parts(user, W))
|
||||
return
|
||||
if(default_pry_open(W))
|
||||
@@ -161,8 +161,8 @@
|
||||
|
||||
if(!powered())
|
||||
return
|
||||
if(istype(W, /obj/item/weapon/card/id))
|
||||
var/obj/item/weapon/card/id/I = user.get_active_held_item()
|
||||
if(istype(W, /obj/item/card/id))
|
||||
var/obj/item/card/id/I = user.get_active_held_item()
|
||||
if(istype(I) && !istype(inserted_id))
|
||||
if(!user.drop_item())
|
||||
return
|
||||
@@ -177,7 +177,7 @@
|
||||
to_chat(user, "<span class='notice'>You change [src]'s I/O settings, setting the input to [dir2text(input_dir)] and the output to [dir2text(output_dir)].</span>")
|
||||
return
|
||||
|
||||
if(istype(W, /obj/item/weapon/disk/design_disk))
|
||||
if(istype(W, /obj/item/disk/design_disk))
|
||||
if(user.transferItemToLoc(W, src))
|
||||
inserted_disk = W
|
||||
return TRUE
|
||||
@@ -244,7 +244,7 @@
|
||||
inserted_id = null
|
||||
return TRUE
|
||||
if("Insert")
|
||||
var/obj/item/weapon/card/id/I = usr.get_active_held_item()
|
||||
var/obj/item/card/id/I = usr.get_active_held_item()
|
||||
if(istype(I))
|
||||
if(!usr.transferItemToLoc(I,src))
|
||||
return
|
||||
@@ -286,7 +286,7 @@
|
||||
to_chat(usr, "<span class='warning'>Required access not found.</span>")
|
||||
return TRUE
|
||||
if("diskInsert")
|
||||
var/obj/item/weapon/disk/design_disk/disk = usr.get_active_held_item()
|
||||
var/obj/item/disk/design_disk/disk = usr.get_active_held_item()
|
||||
if(istype(disk))
|
||||
if(!usr.transferItemToLoc(disk,src))
|
||||
return
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
if(T)
|
||||
var/limit
|
||||
for(var/obj/structure/ore_box/B in T)
|
||||
for (var/obj/item/weapon/ore/O in B)
|
||||
for (var/obj/item/ore/O in B)
|
||||
B.contents -= O
|
||||
unload_mineral(O)
|
||||
limit++
|
||||
|
||||
@@ -7,40 +7,40 @@
|
||||
icon_state = "mining"
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
circuit = /obj/item/weapon/circuitboard/machine/mining_equipment_vendor
|
||||
var/obj/item/weapon/card/id/inserted_id
|
||||
circuit = /obj/item/circuitboard/machine/mining_equipment_vendor
|
||||
var/obj/item/card/id/inserted_id
|
||||
var/list/prize_list = list( //if you add something to this, please, for the love of god, use tabs and not spaces.
|
||||
new /datum/data/mining_equipment("1 Marker Beacon", /obj/item/stack/marker_beacon, 10),
|
||||
new /datum/data/mining_equipment("10 Marker Beacons", /obj/item/stack/marker_beacon/ten, 100),
|
||||
new /datum/data/mining_equipment("30 Marker Beacons", /obj/item/stack/marker_beacon/thirty, 300),
|
||||
new /datum/data/mining_equipment("Whiskey", /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey, 100),
|
||||
new /datum/data/mining_equipment("Absinthe", /obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe/premium,100),
|
||||
new /datum/data/mining_equipment("Whiskey", /obj/item/reagent_containers/food/drinks/bottle/whiskey, 100),
|
||||
new /datum/data/mining_equipment("Absinthe", /obj/item/reagent_containers/food/drinks/bottle/absinthe/premium,100),
|
||||
new /datum/data/mining_equipment("Cigar", /obj/item/clothing/mask/cigarette/cigar/havana, 150),
|
||||
new /datum/data/mining_equipment("Soap", /obj/item/weapon/soap/nanotrasen, 200),
|
||||
new /datum/data/mining_equipment("Soap", /obj/item/soap/nanotrasen, 200),
|
||||
new /datum/data/mining_equipment("Laser Pointer", /obj/item/device/laser_pointer, 300),
|
||||
new /datum/data/mining_equipment("Alien Toy", /obj/item/clothing/mask/facehugger/toy, 300),
|
||||
new /datum/data/mining_equipment("Advanced Scanner", /obj/item/device/t_scanner/adv_mining_scanner, 800),
|
||||
new /datum/data/mining_equipment("Stabilizing Serum", /obj/item/weapon/hivelordstabilizer, 400),
|
||||
new /datum/data/mining_equipment("Stabilizing Serum", /obj/item/hivelordstabilizer, 400),
|
||||
new /datum/data/mining_equipment("Fulton Beacon", /obj/item/fulton_core, 400),
|
||||
new /datum/data/mining_equipment("Shelter Capsule", /obj/item/weapon/survivalcapsule, 400),
|
||||
new /datum/data/mining_equipment("Shelter Capsule", /obj/item/survivalcapsule, 400),
|
||||
new /datum/data/mining_equipment("GAR Meson Scanners", /obj/item/clothing/glasses/meson/gar, 500),
|
||||
new /datum/data/mining_equipment("Explorer's Webbing", /obj/item/weapon/storage/belt/mining, 500),
|
||||
new /datum/data/mining_equipment("Survival Medipen", /obj/item/weapon/reagent_containers/hypospray/medipen/survival, 500),
|
||||
new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/weapon/storage/firstaid/brute, 600),
|
||||
new /datum/data/mining_equipment("Tracking Implant Kit", /obj/item/weapon/storage/box/minertracker, 600),
|
||||
new /datum/data/mining_equipment("Explorer's Webbing", /obj/item/storage/belt/mining, 500),
|
||||
new /datum/data/mining_equipment("Survival Medipen", /obj/item/reagent_containers/hypospray/medipen/survival, 500),
|
||||
new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/storage/firstaid/brute, 600),
|
||||
new /datum/data/mining_equipment("Tracking Implant Kit", /obj/item/storage/box/minertracker, 600),
|
||||
new /datum/data/mining_equipment("Jaunter", /obj/item/device/wormhole_jaunter, 750),
|
||||
new /datum/data/mining_equipment("Kinetic Crusher", /obj/item/weapon/twohanded/required/kinetic_crusher, 750),
|
||||
new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/weapon/gun/energy/kinetic_accelerator, 750),
|
||||
new /datum/data/mining_equipment("Resonator", /obj/item/weapon/resonator, 800),
|
||||
new /datum/data/mining_equipment("Fulton Pack", /obj/item/weapon/extraction_pack, 1000),
|
||||
new /datum/data/mining_equipment("Lazarus Injector", /obj/item/weapon/lazarus_injector, 1000),
|
||||
new /datum/data/mining_equipment("Silver Pickaxe", /obj/item/weapon/pickaxe/silver, 1000),
|
||||
new /datum/data/mining_equipment("Jetpack Upgrade", /obj/item/weapon/tank/jetpack/suit, 2000),
|
||||
new /datum/data/mining_equipment("Kinetic Crusher", /obj/item/twohanded/required/kinetic_crusher, 750),
|
||||
new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/gun/energy/kinetic_accelerator, 750),
|
||||
new /datum/data/mining_equipment("Resonator", /obj/item/resonator, 800),
|
||||
new /datum/data/mining_equipment("Fulton Pack", /obj/item/extraction_pack, 1000),
|
||||
new /datum/data/mining_equipment("Lazarus Injector", /obj/item/lazarus_injector, 1000),
|
||||
new /datum/data/mining_equipment("Silver Pickaxe", /obj/item/pickaxe/silver, 1000),
|
||||
new /datum/data/mining_equipment("Jetpack Upgrade", /obj/item/tank/jetpack/suit, 2000),
|
||||
new /datum/data/mining_equipment("Space Cash", /obj/item/stack/spacecash/c1000, 2000),
|
||||
new /datum/data/mining_equipment("Mining Hardsuit", /obj/item/clothing/suit/space/hardsuit/mining, 2000),
|
||||
new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/weapon/pickaxe/diamond, 2000),
|
||||
new /datum/data/mining_equipment("Super Resonator", /obj/item/weapon/resonator/upgraded, 2500),
|
||||
new /datum/data/mining_equipment("Luxury Shelter Capsule", /obj/item/weapon/survivalcapsule/luxury, 3000),
|
||||
new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/pickaxe/diamond, 2000),
|
||||
new /datum/data/mining_equipment("Super Resonator", /obj/item/resonator/upgraded, 2500),
|
||||
new /datum/data/mining_equipment("Luxury Shelter Capsule", /obj/item/survivalcapsule/luxury, 3000),
|
||||
new /datum/data/mining_equipment("KA White Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer, 100),
|
||||
new /datum/data/mining_equipment("KA Adjustable Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer/adjustable, 150),
|
||||
new /datum/data/mining_equipment("KA Super Chassis", /obj/item/borg/upgrade/modkit/chassis_mod, 250),
|
||||
@@ -49,7 +49,7 @@
|
||||
new /datum/data/mining_equipment("KA Damage Increase", /obj/item/borg/upgrade/modkit/damage, 1000),
|
||||
new /datum/data/mining_equipment("KA Cooldown Decrease", /obj/item/borg/upgrade/modkit/cooldown, 1000),
|
||||
new /datum/data/mining_equipment("KA AoE Damage", /obj/item/borg/upgrade/modkit/aoe/mobs, 2000),
|
||||
new /datum/data/mining_equipment("Point Transfer Card", /obj/item/weapon/card/mining_point_card, 500),
|
||||
new /datum/data/mining_equipment("Point Transfer Card", /obj/item/card/mining_point_card, 500),
|
||||
new /datum/data/mining_equipment("Mining Drone", /mob/living/simple_animal/hostile/mining_drone, 800),
|
||||
new /datum/data/mining_equipment("Drone Melee Upgrade", /obj/item/device/mine_bot_ugprade, 400),
|
||||
new /datum/data/mining_equipment("Drone Health Upgrade", /obj/item/device/mine_bot_ugprade/health, 400),
|
||||
@@ -112,7 +112,7 @@
|
||||
inserted_id.verb_pickup()
|
||||
inserted_id = null
|
||||
else if(href_list["choice"] == "insert")
|
||||
var/obj/item/weapon/card/id/I = usr.get_active_held_item()
|
||||
var/obj/item/card/id/I = usr.get_active_held_item()
|
||||
if(istype(I))
|
||||
if(!usr.drop_item())
|
||||
return
|
||||
@@ -136,11 +136,11 @@
|
||||
return
|
||||
|
||||
/obj/machinery/mineral/equipment_vendor/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/mining_voucher))
|
||||
if(istype(I, /obj/item/mining_voucher))
|
||||
RedeemVoucher(I, user)
|
||||
return
|
||||
if(istype(I, /obj/item/weapon/card/id))
|
||||
var/obj/item/weapon/card/id/C = usr.get_active_held_item()
|
||||
if(istype(I, /obj/item/card/id))
|
||||
var/obj/item/card/id/C = usr.get_active_held_item()
|
||||
if(istype(C) && !istype(inserted_id))
|
||||
if(!usr.drop_item())
|
||||
return
|
||||
@@ -155,7 +155,7 @@
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/machinery/mineral/equipment_vendor/proc/RedeemVoucher(obj/item/weapon/mining_voucher/voucher, mob/redeemer)
|
||||
/obj/machinery/mineral/equipment_vendor/proc/RedeemVoucher(obj/item/mining_voucher/voucher, mob/redeemer)
|
||||
var/items = list("Survival Capsule and Explorer's Webbing", "Resonator and Advanced Scanner", "Mining Drone", "Extraction and Rescue Kit", "Crusher Kit", "Mining Conscription Kit")
|
||||
|
||||
var/selection = input(redeemer, "Pick your equipment", "Mining Voucher Redemption") as null|anything in items
|
||||
@@ -163,24 +163,24 @@
|
||||
return
|
||||
switch(selection)
|
||||
if("Survival Capsule and Explorer's Webbing")
|
||||
new /obj/item/weapon/storage/belt/mining/vendor(src.loc)
|
||||
new /obj/item/storage/belt/mining/vendor(src.loc)
|
||||
if("Resonator and Advanced Scanner")
|
||||
new /obj/item/weapon/resonator(src.loc)
|
||||
new /obj/item/resonator(src.loc)
|
||||
new /obj/item/device/t_scanner/adv_mining_scanner(src.loc)
|
||||
if("Mining Drone")
|
||||
new /mob/living/simple_animal/hostile/mining_drone(src.loc)
|
||||
new /obj/item/weapon/weldingtool/hugetank(src.loc)
|
||||
new /obj/item/weldingtool/hugetank(src.loc)
|
||||
new /obj/item/clothing/glasses/welding(src.loc)
|
||||
if("Extraction and Rescue Kit")
|
||||
new /obj/item/weapon/extraction_pack(loc)
|
||||
new /obj/item/extraction_pack(loc)
|
||||
new /obj/item/fulton_core(loc)
|
||||
new /obj/item/stack/marker_beacon/thirty(loc)
|
||||
if("Crusher Kit")
|
||||
new /obj/item/weapon/twohanded/required/kinetic_crusher(loc)
|
||||
new /obj/item/weapon/storage/belt/mining/alt(loc)
|
||||
new /obj/item/weapon/extinguisher/mini(loc)
|
||||
new /obj/item/twohanded/required/kinetic_crusher(loc)
|
||||
new /obj/item/storage/belt/mining/alt(loc)
|
||||
new /obj/item/extinguisher/mini(loc)
|
||||
if("Mining Conscription Kit")
|
||||
new /obj/item/weapon/storage/backpack/duffelbag/mining_conscript(loc)
|
||||
new /obj/item/storage/backpack/duffelbag/mining_conscript(loc)
|
||||
|
||||
SSblackbox.add_details("mining_voucher_redeemed", selection)
|
||||
qdel(voucher)
|
||||
@@ -195,28 +195,28 @@
|
||||
|
||||
/obj/machinery/mineral/equipment_vendor/golem
|
||||
name = "golem ship equipment vendor"
|
||||
circuit = /obj/item/weapon/circuitboard/machine/mining_equipment_vendor/golem
|
||||
circuit = /obj/item/circuitboard/machine/mining_equipment_vendor/golem
|
||||
|
||||
/obj/machinery/mineral/equipment_vendor/golem/Initialize()
|
||||
. = ..()
|
||||
desc += "\nIt seems a few selections have been added."
|
||||
prize_list += list(
|
||||
new /datum/data/mining_equipment("Extra Id", /obj/item/weapon/card/id/mining, 250),
|
||||
new /datum/data/mining_equipment("Extra Id", /obj/item/card/id/mining, 250),
|
||||
new /datum/data/mining_equipment("Science Goggles", /obj/item/clothing/glasses/science, 250),
|
||||
new /datum/data/mining_equipment("Monkey Cube", /obj/item/weapon/reagent_containers/food/snacks/monkeycube, 300),
|
||||
new /datum/data/mining_equipment("Toolbelt", /obj/item/weapon/storage/belt/utility, 350),
|
||||
new /datum/data/mining_equipment("Sulphuric Acid", /obj/item/weapon/reagent_containers/glass/beaker/sulphuric, 500),
|
||||
new /datum/data/mining_equipment("Monkey Cube", /obj/item/reagent_containers/food/snacks/monkeycube, 300),
|
||||
new /datum/data/mining_equipment("Toolbelt", /obj/item/storage/belt/utility, 350),
|
||||
new /datum/data/mining_equipment("Sulphuric Acid", /obj/item/reagent_containers/glass/beaker/sulphuric, 500),
|
||||
new /datum/data/mining_equipment("Grey Slime Extract", /obj/item/slime_extract/grey, 1000),
|
||||
new /datum/data/mining_equipment("Modification Kit", /obj/item/borg/upgrade/modkit/trigger_guard, 1700),
|
||||
new /datum/data/mining_equipment("The Liberator's Legacy", /obj/item/weapon/storage/box/rndboards, 2000),
|
||||
new /datum/data/mining_equipment("Royal Cape of the Liberator", /obj/item/weapon/bedsheet/rd/royal_cape, 500)
|
||||
new /datum/data/mining_equipment("The Liberator's Legacy", /obj/item/storage/box/rndboards, 2000),
|
||||
new /datum/data/mining_equipment("Royal Cape of the Liberator", /obj/item/bedsheet/rd/royal_cape, 500)
|
||||
)
|
||||
|
||||
/**********************Mining Equipment Vendor Items**************************/
|
||||
|
||||
/**********************Mining Equipment Voucher**********************/
|
||||
|
||||
/obj/item/weapon/mining_voucher
|
||||
/obj/item/mining_voucher
|
||||
name = "mining voucher"
|
||||
desc = "A token to redeem a piece of equipment. Use it on a mining equipment vendor."
|
||||
icon = 'icons/obj/mining.dmi'
|
||||
@@ -225,16 +225,16 @@
|
||||
|
||||
/**********************Mining Point Card**********************/
|
||||
|
||||
/obj/item/weapon/card/mining_point_card
|
||||
/obj/item/card/mining_point_card
|
||||
name = "mining points card"
|
||||
desc = "A small card preloaded with mining points. Swipe your ID card over it to transfer the points, then discard."
|
||||
icon_state = "data"
|
||||
var/points = 500
|
||||
|
||||
/obj/item/weapon/card/mining_point_card/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/card/id))
|
||||
/obj/item/card/mining_point_card/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/card/id))
|
||||
if(points)
|
||||
var/obj/item/weapon/card/id/C = I
|
||||
var/obj/item/card/id/C = I
|
||||
C.mining_points += points
|
||||
to_chat(user, "<span class='info'>You transfer [points] points to [C].</span>")
|
||||
points = 0
|
||||
@@ -242,19 +242,19 @@
|
||||
to_chat(user, "<span class='info'>There's no points left on [src].</span>")
|
||||
..()
|
||||
|
||||
/obj/item/weapon/card/mining_point_card/examine(mob/user)
|
||||
/obj/item/card/mining_point_card/examine(mob/user)
|
||||
..()
|
||||
to_chat(user, "There's [points] point\s on the card.")
|
||||
|
||||
///Conscript kit
|
||||
/obj/item/weapon/card/mining_access_card
|
||||
/obj/item/card/mining_access_card
|
||||
name = "mining access card"
|
||||
desc = "A small card, that when used on any ID, will add mining access."
|
||||
icon_state = "data"
|
||||
|
||||
/obj/item/weapon/card/mining_access_card/afterattack(atom/movable/AM, mob/user, proximity)
|
||||
if(istype(AM, /obj/item/weapon/card/id) && proximity)
|
||||
var/obj/item/weapon/card/id/I = AM
|
||||
/obj/item/card/mining_access_card/afterattack(atom/movable/AM, mob/user, proximity)
|
||||
if(istype(AM, /obj/item/card/id) && proximity)
|
||||
var/obj/item/card/id/I = AM
|
||||
I.access |= ACCESS_MINING
|
||||
I.access |= ACCESS_MINING_STATION
|
||||
I.access |= ACCESS_MINERAL_STOREROOM
|
||||
@@ -263,17 +263,17 @@
|
||||
qdel(src)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/storage/backpack/duffelbag/mining_conscript
|
||||
/obj/item/storage/backpack/duffelbag/mining_conscript
|
||||
name = "mining conscription kit"
|
||||
desc = "A kit containing everything a crewmember needs to support a shaft miner in the field."
|
||||
|
||||
/obj/item/weapon/storage/backpack/duffelbag/mining_conscript/New()
|
||||
/obj/item/storage/backpack/duffelbag/mining_conscript/New()
|
||||
..()
|
||||
new /obj/item/weapon/pickaxe/mini(src)
|
||||
new /obj/item/pickaxe/mini(src)
|
||||
new /obj/item/clothing/glasses/meson(src)
|
||||
new /obj/item/device/t_scanner/adv_mining_scanner/lesser(src)
|
||||
new /obj/item/weapon/storage/bag/ore(src)
|
||||
new /obj/item/storage/bag/ore(src)
|
||||
new /obj/item/clothing/suit/hooded/explorer(src)
|
||||
new /obj/item/device/encryptionkey/headset_cargo(src)
|
||||
new /obj/item/clothing/mask/gas/explorer(src)
|
||||
new /obj/item/weapon/card/mining_access_card(src)
|
||||
new /obj/item/card/mining_access_card(src)
|
||||
|
||||
@@ -19,9 +19,9 @@
|
||||
icon_door = "mixed"
|
||||
|
||||
/obj/structure/closet/wardrobe/miner/PopulateContents()
|
||||
new /obj/item/weapon/storage/backpack/duffelbag(src)
|
||||
new /obj/item/weapon/storage/backpack/explorer(src)
|
||||
new /obj/item/weapon/storage/backpack/satchel/explorer(src)
|
||||
new /obj/item/storage/backpack/duffelbag(src)
|
||||
new /obj/item/storage/backpack/explorer(src)
|
||||
new /obj/item/storage/backpack/satchel/explorer(src)
|
||||
new /obj/item/clothing/under/rank/miner/lavaland(src)
|
||||
new /obj/item/clothing/under/rank/miner/lavaland(src)
|
||||
new /obj/item/clothing/under/rank/miner/lavaland(src)
|
||||
@@ -43,17 +43,17 @@
|
||||
/obj/structure/closet/secure_closet/miner/PopulateContents()
|
||||
..()
|
||||
new /obj/item/stack/sheet/mineral/sandbags(src, 5)
|
||||
new /obj/item/weapon/storage/box/emptysandbags(src)
|
||||
new /obj/item/weapon/shovel(src)
|
||||
new /obj/item/weapon/pickaxe/mini(src)
|
||||
new /obj/item/storage/box/emptysandbags(src)
|
||||
new /obj/item/shovel(src)
|
||||
new /obj/item/pickaxe/mini(src)
|
||||
new /obj/item/device/radio/headset/headset_cargo/mining(src)
|
||||
new /obj/item/device/flashlight/seclite(src)
|
||||
new /obj/item/weapon/storage/bag/plants(src)
|
||||
new /obj/item/weapon/storage/bag/ore(src)
|
||||
new /obj/item/storage/bag/plants(src)
|
||||
new /obj/item/storage/bag/ore(src)
|
||||
new /obj/item/device/t_scanner/adv_mining_scanner/lesser(src)
|
||||
new /obj/item/weapon/gun/energy/kinetic_accelerator(src)
|
||||
new /obj/item/gun/energy/kinetic_accelerator(src)
|
||||
new /obj/item/clothing/glasses/meson(src)
|
||||
new /obj/item/weapon/survivalcapsule(src)
|
||||
new /obj/item/survivalcapsule(src)
|
||||
new /obj/item/device/assault_pod/mining(src)
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
/obj/machinery/computer/shuttle/mining
|
||||
name = "mining shuttle console"
|
||||
desc = "Used to call and send the mining shuttle."
|
||||
circuit = /obj/item/weapon/circuitboard/computer/mining_shuttle
|
||||
circuit = /obj/item/circuitboard/computer/mining_shuttle
|
||||
shuttleId = "mining"
|
||||
possible_destinations = "mining_home;mining_away;landing_zone_dock;mining_public"
|
||||
no_destination_swap = 1
|
||||
|
||||
@@ -36,9 +36,9 @@
|
||||
projectiletype = /obj/item/projectile/kinetic
|
||||
projectilesound = 'sound/weapons/gunshot4.ogg'
|
||||
speak_emote = list("states")
|
||||
wanted_objects = list(/obj/item/weapon/ore/diamond, /obj/item/weapon/ore/gold, /obj/item/weapon/ore/silver,
|
||||
/obj/item/weapon/ore/plasma, /obj/item/weapon/ore/uranium, /obj/item/weapon/ore/iron,
|
||||
/obj/item/weapon/ore/bananium, /obj/item/weapon/ore/titanium)
|
||||
wanted_objects = list(/obj/item/ore/diamond, /obj/item/ore/gold, /obj/item/ore/silver,
|
||||
/obj/item/ore/plasma, /obj/item/ore/uranium, /obj/item/ore/iron,
|
||||
/obj/item/ore/bananium, /obj/item/ore/titanium)
|
||||
healable = 0
|
||||
var/mode = MINEDRONE_COLLECT
|
||||
var/light_on = 0
|
||||
@@ -63,8 +63,8 @@
|
||||
check_friendly_fire = 0
|
||||
|
||||
/mob/living/simple_animal/hostile/mining_drone/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/W = I
|
||||
if(istype(I, /obj/item/weldingtool))
|
||||
var/obj/item/weldingtool/W = I
|
||||
if(W.welding && !stat)
|
||||
if(AIStatus != AI_OFF && AIStatus != AI_IDLE)
|
||||
to_chat(user, "<span class='info'>[src] is moving around too much to repair!</span>")
|
||||
@@ -124,13 +124,13 @@
|
||||
to_chat(src, "<span class='info'>You are set to attack mode. You can now attack from range.</span>")
|
||||
|
||||
/mob/living/simple_animal/hostile/mining_drone/AttackingTarget()
|
||||
if(istype(target, /obj/item/weapon/ore) && mode == MINEDRONE_COLLECT)
|
||||
if(istype(target, /obj/item/ore) && mode == MINEDRONE_COLLECT)
|
||||
CollectOre()
|
||||
return
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/mining_drone/proc/CollectOre()
|
||||
var/obj/item/weapon/ore/O
|
||||
var/obj/item/ore/O
|
||||
for(O in src.loc)
|
||||
O.loc = src
|
||||
for(var/dir in GLOB.alldirs)
|
||||
@@ -146,7 +146,7 @@
|
||||
return
|
||||
if(message)
|
||||
to_chat(src, "<span class='notice'>You dump your stored ore.</span>")
|
||||
for(var/obj/item/weapon/ore/O in contents)
|
||||
for(var/obj/item/ore/O in contents)
|
||||
contents -= O
|
||||
O.loc = src.loc
|
||||
return
|
||||
|
||||
@@ -100,8 +100,8 @@
|
||||
var/turf/T = get_step(src,output_dir)
|
||||
if(T)
|
||||
var/obj/item/O = new P(src)
|
||||
var/obj/item/weapon/storage/bag/money/M = locate(/obj/item/weapon/storage/bag/money, T)
|
||||
var/obj/item/storage/bag/money/M = locate(/obj/item/storage/bag/money, T)
|
||||
if(!M)
|
||||
M = new /obj/item/weapon/storage/bag/money(src)
|
||||
M = new /obj/item/storage/bag/money(src)
|
||||
unload_mineral(M)
|
||||
O.loc = M
|
||||
@@ -1,6 +1,6 @@
|
||||
/*****************************Money bag********************************/
|
||||
|
||||
/obj/item/weapon/storage/bag/money
|
||||
/obj/item/storage/bag/money
|
||||
name = "money bag"
|
||||
icon_state = "moneybag"
|
||||
force = 10
|
||||
@@ -11,15 +11,15 @@
|
||||
max_w_class = WEIGHT_CLASS_NORMAL
|
||||
storage_slots = 80
|
||||
max_combined_w_class = 40
|
||||
can_hold = list(/obj/item/weapon/coin, /obj/item/stack/spacecash)
|
||||
can_hold = list(/obj/item/coin, /obj/item/stack/spacecash)
|
||||
|
||||
|
||||
/obj/item/weapon/storage/bag/money/vault/New()
|
||||
/obj/item/storage/bag/money/vault/New()
|
||||
..()
|
||||
new /obj/item/weapon/coin/silver(src)
|
||||
new /obj/item/weapon/coin/silver(src)
|
||||
new /obj/item/weapon/coin/silver(src)
|
||||
new /obj/item/weapon/coin/silver(src)
|
||||
new /obj/item/weapon/coin/gold(src)
|
||||
new /obj/item/weapon/coin/gold(src)
|
||||
new /obj/item/weapon/coin/adamantine(src)
|
||||
new /obj/item/coin/silver(src)
|
||||
new /obj/item/coin/silver(src)
|
||||
new /obj/item/coin/silver(src)
|
||||
new /obj/item/coin/silver(src)
|
||||
new /obj/item/coin/gold(src)
|
||||
new /obj/item/coin/gold(src)
|
||||
new /obj/item/coin/adamantine(src)
|
||||
@@ -5,16 +5,16 @@
|
||||
|
||||
/**********************Mineral ores**************************/
|
||||
|
||||
/obj/item/weapon/ore
|
||||
/obj/item/ore
|
||||
name = "rock"
|
||||
icon = 'icons/obj/mining.dmi'
|
||||
icon_state = "ore"
|
||||
var/points = 0 //How many points this ore gets you from the ore redemption machine
|
||||
var/refined_type = null //What this ore defaults to being refined into
|
||||
|
||||
/obj/item/weapon/ore/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/W = I
|
||||
/obj/item/ore/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weldingtool))
|
||||
var/obj/item/weldingtool/W = I
|
||||
if(W.remove_fuel(15) && refined_type)
|
||||
new refined_type(get_turf(src.loc))
|
||||
qdel(src)
|
||||
@@ -22,22 +22,22 @@
|
||||
to_chat(user, "<span class='info'>Not enough fuel to smelt [src].</span>")
|
||||
..()
|
||||
|
||||
/obj/item/weapon/ore/Crossed(atom/movable/AM)
|
||||
/obj/item/ore/Crossed(atom/movable/AM)
|
||||
set waitfor = FALSE
|
||||
var/show_message = TRUE
|
||||
for(var/obj/item/weapon/ore/O in loc)
|
||||
for(var/obj/item/ore/O in loc)
|
||||
if(O != src)
|
||||
show_message = FALSE
|
||||
break
|
||||
var/obj/item/weapon/storage/bag/ore/OB
|
||||
var/obj/item/storage/bag/ore/OB
|
||||
if(ishuman(AM))
|
||||
var/mob/living/carbon/human/H = AM
|
||||
OB = locate(/obj/item/weapon/storage/bag/ore) in H.get_storage_slots()
|
||||
OB = locate(/obj/item/storage/bag/ore) in H.get_storage_slots()
|
||||
if(!OB)
|
||||
OB = locate(/obj/item/weapon/storage/bag/ore) in H.held_items
|
||||
OB = locate(/obj/item/storage/bag/ore) in H.held_items
|
||||
else if(iscyborg(AM))
|
||||
var/mob/living/silicon/robot/R = AM
|
||||
OB = locate(/obj/item/weapon/storage/bag/ore) in R.held_items
|
||||
OB = locate(/obj/item/storage/bag/ore) in R.held_items
|
||||
if(OB)
|
||||
var/obj/structure/ore_box/box
|
||||
if(!OB.can_be_inserted(src, TRUE, AM))
|
||||
@@ -53,7 +53,7 @@
|
||||
var/mob/living/L = AM
|
||||
if(istype(L.pulling, /obj/structure/ore_box))
|
||||
box = L.pulling
|
||||
for(var/obj/item/weapon/ore/O in OB)
|
||||
for(var/obj/item/ore/O in OB)
|
||||
OB.remove_from_storage(src, box)
|
||||
if(show_message)
|
||||
playsound(L, "rustle", 50, TRUE)
|
||||
@@ -65,7 +65,7 @@
|
||||
"<span class='notice'>You scoop up the ores beneath you with your [OB.name].</span>")
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/ore/uranium
|
||||
/obj/item/ore/uranium
|
||||
name = "uranium ore"
|
||||
icon_state = "Uranium ore"
|
||||
origin_tech = "materials=5"
|
||||
@@ -73,7 +73,7 @@
|
||||
materials = list(MAT_URANIUM=MINERAL_MATERIAL_AMOUNT)
|
||||
refined_type = /obj/item/stack/sheet/mineral/uranium
|
||||
|
||||
/obj/item/weapon/ore/iron
|
||||
/obj/item/ore/iron
|
||||
name = "iron ore"
|
||||
icon_state = "Iron ore"
|
||||
origin_tech = "materials=1"
|
||||
@@ -81,7 +81,7 @@
|
||||
materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT)
|
||||
refined_type = /obj/item/stack/sheet/metal
|
||||
|
||||
/obj/item/weapon/ore/glass
|
||||
/obj/item/ore/glass
|
||||
name = "sand pile"
|
||||
icon_state = "Glass ore"
|
||||
origin_tech = "materials=1"
|
||||
@@ -90,10 +90,10 @@
|
||||
refined_type = /obj/item/stack/sheet/glass
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
|
||||
/obj/item/weapon/ore/glass/attack_self(mob/living/user)
|
||||
/obj/item/ore/glass/attack_self(mob/living/user)
|
||||
to_chat(user, "<span class='notice'>You use the sand to make sandstone.</span>")
|
||||
var/sandAmt = 1
|
||||
for(var/obj/item/weapon/ore/glass/G in user.loc) // The sand on the floor
|
||||
for(var/obj/item/ore/glass/G in user.loc) // The sand on the floor
|
||||
sandAmt += 1
|
||||
qdel(G)
|
||||
while(sandAmt > 0)
|
||||
@@ -109,7 +109,7 @@
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/ore/glass/throw_impact(atom/hit_atom)
|
||||
/obj/item/ore/glass/throw_impact(atom/hit_atom)
|
||||
if(..() || !ishuman(hit_atom))
|
||||
return
|
||||
var/mob/living/carbon/human/C = hit_atom
|
||||
@@ -128,11 +128,11 @@
|
||||
to_chat(C, "<span class='userdanger'>\The [src] gets into your eyes! The pain, it burns!</span>")
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/ore/glass/basalt
|
||||
/obj/item/ore/glass/basalt
|
||||
name = "volcanic ash"
|
||||
icon_state = "volcanic_sand"
|
||||
|
||||
/obj/item/weapon/ore/plasma
|
||||
/obj/item/ore/plasma
|
||||
name = "plasma ore"
|
||||
icon_state = "Plasma ore"
|
||||
origin_tech = "plasmatech=2;materials=2"
|
||||
@@ -140,16 +140,16 @@
|
||||
materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT)
|
||||
refined_type = /obj/item/stack/sheet/mineral/plasma
|
||||
|
||||
/obj/item/weapon/ore/plasma/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/W = I
|
||||
/obj/item/ore/plasma/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weldingtool))
|
||||
var/obj/item/weldingtool/W = I
|
||||
if(W.welding)
|
||||
to_chat(user, "<span class='warning'>You can't hit a high enough temperature to smelt [src] properly!</span>")
|
||||
else
|
||||
..()
|
||||
|
||||
|
||||
/obj/item/weapon/ore/silver
|
||||
/obj/item/ore/silver
|
||||
name = "silver ore"
|
||||
icon_state = "Silver ore"
|
||||
origin_tech = "materials=3"
|
||||
@@ -157,7 +157,7 @@
|
||||
materials = list(MAT_SILVER=MINERAL_MATERIAL_AMOUNT)
|
||||
refined_type = /obj/item/stack/sheet/mineral/silver
|
||||
|
||||
/obj/item/weapon/ore/gold
|
||||
/obj/item/ore/gold
|
||||
name = "gold ore"
|
||||
icon_state = "Gold ore"
|
||||
origin_tech = "materials=4"
|
||||
@@ -165,7 +165,7 @@
|
||||
materials = list(MAT_GOLD=MINERAL_MATERIAL_AMOUNT)
|
||||
refined_type = /obj/item/stack/sheet/mineral/gold
|
||||
|
||||
/obj/item/weapon/ore/diamond
|
||||
/obj/item/ore/diamond
|
||||
name = "diamond ore"
|
||||
icon_state = "Diamond ore"
|
||||
origin_tech = "materials=6"
|
||||
@@ -173,7 +173,7 @@
|
||||
materials = list(MAT_DIAMOND=MINERAL_MATERIAL_AMOUNT)
|
||||
refined_type = /obj/item/stack/sheet/mineral/diamond
|
||||
|
||||
/obj/item/weapon/ore/bananium
|
||||
/obj/item/ore/bananium
|
||||
name = "bananium ore"
|
||||
icon_state = "Clown ore"
|
||||
origin_tech = "materials=4"
|
||||
@@ -181,7 +181,7 @@
|
||||
materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT)
|
||||
refined_type = /obj/item/stack/sheet/mineral/bananium
|
||||
|
||||
/obj/item/weapon/ore/titanium
|
||||
/obj/item/ore/titanium
|
||||
name = "titanium ore"
|
||||
icon_state = "Titanium ore"
|
||||
origin_tech = "materials=4"
|
||||
@@ -189,12 +189,12 @@
|
||||
materials = list(MAT_TITANIUM=MINERAL_MATERIAL_AMOUNT)
|
||||
refined_type = /obj/item/stack/sheet/mineral/titanium
|
||||
|
||||
/obj/item/weapon/ore/slag
|
||||
/obj/item/ore/slag
|
||||
name = "slag"
|
||||
desc = "Completely useless"
|
||||
icon_state = "slag"
|
||||
|
||||
/obj/item/weapon/twohanded/required/gibtonite
|
||||
/obj/item/twohanded/required/gibtonite
|
||||
name = "gibtonite ore"
|
||||
desc = "Extremely explosive if struck with mining equipment, Gibtonite is often used by miners to speed up their work by using it as a mining charge. This material is illegal to possess by unauthorized personnel under space law."
|
||||
icon = 'icons/obj/mining.dmi'
|
||||
@@ -208,12 +208,12 @@
|
||||
var/attacher = "UNKNOWN"
|
||||
var/det_timer
|
||||
|
||||
/obj/item/weapon/twohanded/required/gibtonite/Destroy()
|
||||
/obj/item/twohanded/required/gibtonite/Destroy()
|
||||
qdel(wires)
|
||||
wires = null
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/twohanded/required/gibtonite/attackby(obj/item/I, mob/user, params)
|
||||
/obj/item/twohanded/required/gibtonite/attackby(obj/item/I, mob/user, params)
|
||||
if(!wires && istype(I, /obj/item/device/assembly/igniter))
|
||||
user.visible_message("[user] attaches [I] to [src].", "<span class='notice'>You attach [I] to [src].</span>")
|
||||
wires = new /datum/wires/explosive/gibtonite(src)
|
||||
@@ -227,7 +227,7 @@
|
||||
wires.interact(user)
|
||||
return
|
||||
|
||||
if(istype(I, /obj/item/weapon/pickaxe) || istype(I, /obj/item/weapon/resonator) || I.force >= 10)
|
||||
if(istype(I, /obj/item/pickaxe) || istype(I, /obj/item/resonator) || I.force >= 10)
|
||||
GibtoniteReaction(user)
|
||||
return
|
||||
if(primed)
|
||||
@@ -241,22 +241,22 @@
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/weapon/twohanded/required/gibtonite/attack_self(user)
|
||||
/obj/item/twohanded/required/gibtonite/attack_self(user)
|
||||
if(wires)
|
||||
wires.interact(user)
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/weapon/twohanded/required/gibtonite/bullet_act(obj/item/projectile/P)
|
||||
/obj/item/twohanded/required/gibtonite/bullet_act(obj/item/projectile/P)
|
||||
GibtoniteReaction(P.firer)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/twohanded/required/gibtonite/ex_act()
|
||||
/obj/item/twohanded/required/gibtonite/ex_act()
|
||||
GibtoniteReaction(null, 1)
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/required/gibtonite/proc/GibtoniteReaction(mob/user, triggered_by = 0)
|
||||
/obj/item/twohanded/required/gibtonite/proc/GibtoniteReaction(mob/user, triggered_by = 0)
|
||||
if(!primed)
|
||||
primed = TRUE
|
||||
playsound(src,'sound/effects/hit_on_shattered_glass.ogg',50,1)
|
||||
@@ -283,7 +283,7 @@
|
||||
log_game("[key_name(user)] has primed a [name] for detonation at [A][COORD(bombturf)]")
|
||||
det_timer = addtimer(CALLBACK(src, .proc/detonate, notify_admins), det_time, TIMER_STOPPABLE)
|
||||
|
||||
/obj/item/weapon/twohanded/required/gibtonite/proc/detonate(notify_admins)
|
||||
/obj/item/twohanded/required/gibtonite/proc/detonate(notify_admins)
|
||||
if(primed)
|
||||
switch(quality)
|
||||
if(GIBTONITE_QUALITY_HIGH)
|
||||
@@ -294,12 +294,12 @@
|
||||
explosion(src,0,1,3,adminlog = notify_admins)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/ore/Initialize()
|
||||
/obj/item/ore/Initialize()
|
||||
..()
|
||||
pixel_x = rand(0,16)-8
|
||||
pixel_y = rand(0,8)-8
|
||||
|
||||
/obj/item/weapon/ore/ex_act()
|
||||
/obj/item/ore/ex_act()
|
||||
return
|
||||
|
||||
/*****************************Coin********************************/
|
||||
@@ -307,7 +307,7 @@
|
||||
// The coin's value is a value of it's materials.
|
||||
// Yes, the gold standard makes a come-back!
|
||||
// This is the only way to make coins that are possible to produce on station actually worth anything.
|
||||
/obj/item/weapon/coin
|
||||
/obj/item/coin
|
||||
icon = 'icons/obj/economy.dmi'
|
||||
name = "coin"
|
||||
icon_state = "coin__heads"
|
||||
@@ -321,78 +321,78 @@
|
||||
var/cooldown = 0
|
||||
var/value = 1
|
||||
|
||||
/obj/item/weapon/coin/Initialize()
|
||||
/obj/item/coin/Initialize()
|
||||
..()
|
||||
pixel_x = rand(0,16)-8
|
||||
pixel_y = rand(0,8)-8
|
||||
|
||||
/obj/item/weapon/coin/examine(mob/user)
|
||||
/obj/item/coin/examine(mob/user)
|
||||
..()
|
||||
if(value)
|
||||
to_chat(user, "<span class='info'>It's worth [value] credit\s.</span>")
|
||||
|
||||
/obj/item/weapon/coin/gold
|
||||
/obj/item/coin/gold
|
||||
name = "gold coin"
|
||||
cmineral = "gold"
|
||||
icon_state = "coin_gold_heads"
|
||||
value = 50
|
||||
materials = list(MAT_GOLD = MINERAL_MATERIAL_AMOUNT*0.2)
|
||||
|
||||
/obj/item/weapon/coin/silver
|
||||
/obj/item/coin/silver
|
||||
name = "silver coin"
|
||||
cmineral = "silver"
|
||||
icon_state = "coin_silver_heads"
|
||||
value = 20
|
||||
materials = list(MAT_SILVER = MINERAL_MATERIAL_AMOUNT*0.2)
|
||||
|
||||
/obj/item/weapon/coin/diamond
|
||||
/obj/item/coin/diamond
|
||||
name = "diamond coin"
|
||||
cmineral = "diamond"
|
||||
icon_state = "coin_diamond_heads"
|
||||
value = 500
|
||||
materials = list(MAT_DIAMOND = MINERAL_MATERIAL_AMOUNT*0.2)
|
||||
|
||||
/obj/item/weapon/coin/iron
|
||||
/obj/item/coin/iron
|
||||
name = "iron coin"
|
||||
cmineral = "iron"
|
||||
icon_state = "coin_iron_heads"
|
||||
value = 1
|
||||
materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT*0.2)
|
||||
|
||||
/obj/item/weapon/coin/plasma
|
||||
/obj/item/coin/plasma
|
||||
name = "plasma coin"
|
||||
cmineral = "plasma"
|
||||
icon_state = "coin_plasma_heads"
|
||||
value = 100
|
||||
materials = list(MAT_PLASMA = MINERAL_MATERIAL_AMOUNT*0.2)
|
||||
|
||||
/obj/item/weapon/coin/uranium
|
||||
/obj/item/coin/uranium
|
||||
name = "uranium coin"
|
||||
cmineral = "uranium"
|
||||
icon_state = "coin_uranium_heads"
|
||||
value = 80
|
||||
materials = list(MAT_URANIUM = MINERAL_MATERIAL_AMOUNT*0.2)
|
||||
|
||||
/obj/item/weapon/coin/clown
|
||||
/obj/item/coin/clown
|
||||
name = "bananium coin"
|
||||
cmineral = "bananium"
|
||||
icon_state = "coin_bananium_heads"
|
||||
value = 1000 //makes the clown cry
|
||||
materials = list(MAT_BANANIUM = MINERAL_MATERIAL_AMOUNT*0.2)
|
||||
|
||||
/obj/item/weapon/coin/adamantine
|
||||
/obj/item/coin/adamantine
|
||||
name = "adamantine coin"
|
||||
cmineral = "adamantine"
|
||||
icon_state = "coin_adamantine_heads"
|
||||
value = 1500
|
||||
|
||||
/obj/item/weapon/coin/mythril
|
||||
/obj/item/coin/mythril
|
||||
name = "mythril coin"
|
||||
cmineral = "mythril"
|
||||
icon_state = "coin_mythril_heads"
|
||||
value = 3000
|
||||
|
||||
/obj/item/weapon/coin/twoheaded
|
||||
/obj/item/coin/twoheaded
|
||||
cmineral = "iron"
|
||||
icon_state = "coin_iron_heads"
|
||||
desc = "Hey, this coin's the same on both sides!"
|
||||
@@ -400,7 +400,7 @@
|
||||
materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT*0.2)
|
||||
value = 1
|
||||
|
||||
/obj/item/weapon/coin/antagtoken
|
||||
/obj/item/coin/antagtoken
|
||||
name = "antag token"
|
||||
icon_state = "coin_valid_valid"
|
||||
cmineral = "valid"
|
||||
@@ -408,7 +408,7 @@
|
||||
sideslist = list("valid", "salad")
|
||||
value = 0
|
||||
|
||||
/obj/item/weapon/coin/attackby(obj/item/weapon/W, mob/user, params)
|
||||
/obj/item/coin/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/CC = W
|
||||
if(string_attached)
|
||||
@@ -423,7 +423,7 @@
|
||||
to_chat(user, "<span class='warning'>You need one length of cable to attach a string to the coin!</span>")
|
||||
return
|
||||
|
||||
else if(istype(W, /obj/item/weapon/wirecutters))
|
||||
else if(istype(W, /obj/item/wirecutters))
|
||||
if(!string_attached)
|
||||
..()
|
||||
return
|
||||
@@ -436,7 +436,7 @@
|
||||
to_chat(user, "<span class='notice'>You detach the string from the coin.</span>")
|
||||
else ..()
|
||||
|
||||
/obj/item/weapon/coin/attack_self(mob/user)
|
||||
/obj/item/coin/attack_self(mob/user)
|
||||
if(cooldown < world.time)
|
||||
if(string_attached) //does the coin have a wire attached
|
||||
to_chat(user, "<span class='warning'>The coin won't flip very well with something attached!</span>" )
|
||||
|
||||
@@ -9,19 +9,19 @@
|
||||
density = TRUE
|
||||
pressure_resistance = 5*ONE_ATMOSPHERE
|
||||
|
||||
/obj/structure/ore_box/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if (istype(W, /obj/item/weapon/ore))
|
||||
/obj/structure/ore_box/attackby(obj/item/W, mob/user, params)
|
||||
if (istype(W, /obj/item/ore))
|
||||
if(!user.drop_item())
|
||||
return
|
||||
W.forceMove(src)
|
||||
else if (istype(W, /obj/item/weapon/storage))
|
||||
var/obj/item/weapon/storage/S = W
|
||||
for(var/obj/item/weapon/ore/O in S.contents)
|
||||
else if (istype(W, /obj/item/storage))
|
||||
var/obj/item/storage/S = W
|
||||
for(var/obj/item/ore/O in S.contents)
|
||||
S.remove_from_storage(O, src) //This will move the item to this item's contents
|
||||
to_chat(user, "<span class='notice'>You empty the ore in [S] into \the [src].</span>")
|
||||
else if(istype(W, /obj/item/weapon/crowbar))
|
||||
else if(istype(W, /obj/item/crowbar))
|
||||
playsound(loc, W.usesound, 50, 1)
|
||||
var/obj/item/weapon/crowbar/C = W
|
||||
var/obj/item/crowbar/C = W
|
||||
if(do_after(user, 50*C.toolspeed, target = src))
|
||||
user.visible_message("[user] pries \the [src] apart.", "<span class='notice'>You pry apart \the [src].</span>", "<span class='italics'>You hear splitting wood.</span>")
|
||||
deconstruct(TRUE, user)
|
||||
@@ -44,16 +44,16 @@
|
||||
/obj/structure/ore_box/proc/show_contents(mob/user)
|
||||
var/dat = text("<b>The contents of the ore box reveal...</b><br>")
|
||||
var/list/oretypes = list()
|
||||
for(var/obj/item/weapon/ore/O in contents)
|
||||
for(var/obj/item/ore/O in contents)
|
||||
oretypes |= O.type
|
||||
for(var/i in oretypes)
|
||||
var/obj/item/weapon/ore/T = locate(i) in contents
|
||||
var/obj/item/ore/T = locate(i) in contents
|
||||
dat += "[capitalize(T.name)]: [count_by_type(contents, T.type)]<br>"
|
||||
dat += text("<br><br><A href='?src=\ref[src];removeall=1'>Empty box</A>")
|
||||
user << browse(dat, "window=orebox")
|
||||
|
||||
/obj/structure/ore_box/proc/dump_box_contents()
|
||||
for(var/obj/item/weapon/ore/O in contents)
|
||||
for(var/obj/item/ore/O in contents)
|
||||
O.forceMove(loc)
|
||||
|
||||
/obj/structure/ore_box/Topic(href, href_list)
|
||||
|
||||
Reference in New Issue
Block a user